Wiktionary
zhwiktionary
https://zh.wiktionary.org/wiki/Wiktionary:%E9%A6%96%E9%A1%B5
MediaWiki 1.47.0-wmf.1
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
9752984
9751997
2026-05-06T04:40:35Z
TongcyBot
83009
機器人:更新每日統計數據 (2026-05-06)
9752984
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-05-01
| fr | mg | zh | th | el
| 6910311 | 5911338 | 2317075 | 2180613 | 1578407
| 6910465 | 5911778 | 2317733 | 2180625 | 1578438
| 6910902 | 5911947 | 2318306 | 2180659 | 1578642
| 6911431 | 5912087 | 2318644 | 2180659 | 1578727
| 6911789 | 5912618 | 2319200 | 2180693 | 1578858
| 6912182 | 5912774 | 2319756 | 2180695 | 1578878
| 6912997 | 5913101 | 2320558 | 2180707 | 1578945
}}
* 来源:[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:維基詞典統計]]
dsuguhb2scedjf3942cexsrew5bmqg8
三不五時
0
138706
9752878
7228777
2026-05-05T13:20:00Z
Fglffer
55252
9752878
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=三不五时}}
===發音===
{{zh-pron
|m=sān不wǔshí
|c=saam1 bat1 ng5 si4
|h=pfs=sâm-put-ńg-sṳ̀
|mn=xm,zz,tw:sam-put-gō͘-sî/qz,jj,ph:sam-put-gǒ͘-sî
|cat=cy
}}
===成語===
{{head|zh|成語}}
# {{lb|zh|Cantonese|Southern Min|Taiwanese Mandarin|Taiwanese Hakka}} [[不時]],[[經常]],[[時常]]
#* {{quote-song|zh|year=1997|title=w:[[世界第一等 (歌曲)|世界第一等]]|artist=w:劉德華|composer=w:伍佰|lyricist=w:李安修;陳富榮}}
#*: {{zh-q|一 杯 酒 兩{nn̄g} 角 銀 三不五時 嘛 來 鬥陣|一杯酒 兩分錢 '''經常'''湊在一起|TW}}
#* {{zh-x|她 說:「^剃頭 不 好看;我 要 做 菜姑。三不五時 還 可以 去 看 歌仔戲、歌劇。」||M-TW|ref='''2005年12月20日''',{{lang|zh|釋悟因}},{{lang|zh|〈戰後佛教在台灣——佛教面對現代挑戰的回應〉}},刊於{{lang|zh|《香光莊嚴雜誌》}}第84期[https://books.google.com/books?id=E6H_AgAAQBAJ&pg=PA19 第19頁]}}
====同義詞====
* {{zh-l|隔三差五}}
* {{qual|客家語}} {{zh-l|三不二時}}
===來源===
* {{thcwd|242}}
lgebhx8f35mqzil6xilllp5uy1kiqv0
斯威士蘭
0
144711
9752912
9752853
2026-05-05T14:46:38Z
TongcyDai
53191
9752912
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=斯威士兰|gloss=-}}
===發音===
{{zh-pron
|m=Sīwēishìlán
|c=si1 wai1 si6 laan4
|mn=qz:Sir-ui-sǐr-lân/xm,zz:Su-ui-sū-lân
|cat=pn
}}
===專有名詞===
{{head|zh|專有名詞}}
# {{lb|zh|中國大陸|香港}} {{place|zh|國家|r/南部非洲}}
====用法說明====
* 雖然該國官方名稱已於2018年從 Swaziland 更改為 eSwatini in 2018,中國大陸仍用譯名{{zh-l|斯威士蘭|tr=-}}作為該國的正式名稱。臺灣則隨著國名變更將譯名替換為{{zh-l|史瓦帝尼|tr-}}。
====近義詞====
* {{qualifier|臺灣}} {{zh-l|史瓦帝尼}}
imynf37pgzvu8bhowryhtcpbr3p3c23
9752913
9752912
2026-05-05T14:46:46Z
TongcyDai
53191
9752913
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=斯威士兰|gloss=-}}
===發音===
{{zh-pron
|m=Sīwēishìlán
|c=si1 wai1 si6 laan4
|mn=qz:Sir-ui-sǐr-lân/xm,zz:Su-ui-sū-lân
|cat=pn
}}
===專有名詞===
{{head|zh|專有名詞}}
# {{lb|zh|中國大陸|香港}} {{place|zh|國家|r/南部非洲}}
====用法說明====
* 雖然該國官方名稱已於2018年從 Swaziland 更改為 eSwatini in 2018,中國大陸仍用譯名{{zh-l|斯威士蘭|tr=-}}作為該國的正式名稱。臺灣則隨著國名變更將譯名替換為{{zh-l|史瓦帝尼|tr=-}}。
====近義詞====
* {{qualifier|臺灣}} {{zh-l|史瓦帝尼}}
bdpn2yzreg9p0i9ctj5ql3krxcyog8w
doch
0
296526
9752927
9556618
2026-05-05T19:08:06Z
Tc14Hd
98425
/* 语气助词 */
9752927
wikitext
text/x-wiki
==德语==
===发音===
* {{IPA|de|/dɔx/}} {{a|de|standard}}
* {{IPA|de|/dɔ/|/do/}} {{a|de|主要见于德国南部和奥地利;在德国北部,处于部分位置,如{{l|de|nicht}}前时会如此发音}}
* {{audio|de|De-doch.ogg}}
* {{audio|de|De-doch2.ogg|a=柏林}}
===连词===
#可是、然而、但仍然、不过另一方面、却
===副词===
#却、还是、仍然
#[重读](用于对否定的问题作肯定回答)
#因为…
===语气助词===
#但是、不过、然而
#::''[[ich|Ich]] [[sehe]] [[ihn]] [[oft]], doch [[kennen]] [[wir]] [[uns]] [[kaum]].'' 我们常见面,但不熟。
#[重读]毕竟、究竟、归根结底、还是、依然
#::''[[ich|Ich]] [[habe]] [[ihm]] [[abgeraten]], [[aber]] [[er]] [[hat]] [[es]] ([[nun]]) doch [[getan]].'' 我劝过他了,但他还是照做不误。
#::''[[also|Also]] doch!'' 我跟你说过了的。
#(用于加强命令式的语气,表示请求或不耐烦;''doch [[mal]]'' 表示鼓励)
#::''[[lassen|Lassen]] [[Sie]] [[mich]] doch [[mal]] [[das]] [[Foto]] [[sehen]]!'' 让我看那张照片!
#::''[[aufregen|Reg]] [[dich]] doch [[nicht]] [[so]] [[aufregen|auf]]!'' 不要那么激动
#::''[[gehen|Gehen]] [[Sie]] doch [[mal]] [[nach]] [[Italien]]!'' 你为什么不去意大利呢?
#(将陈述句转变为问句,期望对方给出肯定或有利的回复)= ''[[nicht wahr]]''
#::''[[du|Du]] [[kannst]] [[mir]] doch [[helfen]]?'' 你能帮我的,对吧?
#::''[[er|Er]] [[kommt]] doch [[heute]]?'' 他今天要来的,对吧?
#::''[[du|Du]] [[glaubst]] doch [[nicht]], [[dass]] [[ich]] [[es]] [[getan]] [[habe]]?'' 你不认为那件事是我做的吗?
#(对另一讲话者进行回应)
##(对另一讲话者的否定陈述句表示不同意)
##::''[[er|Er]] [[hat]] [[nie]] [[etwas]] [[für]] [[uns]] [[getan]]. — Doch, [[er]] [[hat]] [[mir]] [[einmal]] 100 [[Mark]] [[geliehen]].'' 他从来没为我们做过什么。—不的,以前他有借100马克给我。
##(对另一讲话者的肯定陈述句表示同意)
##::''[[er|Er]] [[ist]] [[eigentlich]] [[ganz]] [[intelligent]]. — Doch, (doch).'' 他真的很聪明。—嗯。
##(用反语、讽刺的手法达到强调目的)
##::''[[und|Und]] [[die]] [[Anzeigen]], doch, [[das]] [[interessiert]] [[mich]] [[immer]]''. 还有那些总是很“有意思”的通告。
##(对否定疑问句作出肯定答复,=法:''[[si]]'')
##::''[[bist|Bist]] [[du]] [[nicht]] [[zufrieden]]? — Doch!'' 你不满意吗?—不,我很满意了。
##(单用或与 ''[[ich]] [[glaube]]/[[denke]]/[[dächte]]'' 连用,表达肯定/同意语气)
##::''[[kommt|Kommt]] [[er]] [[bald]]? — Doch!'' 他很快就到吗?—嗯。
##(在否定答复中加强 ''[[nein]]/[[nicht]]'' 的语气)
##::''[[Mutti]], [[kann]] [[ich]] [[ein]] [[Stück]] [[Schokolade]] [[haben]]? — [[nein|Nein]] doch, [[du]] [[hast]] [[jetzt]] [[genug]] [[gegessen]].'' 妈妈,我能再吃一块巧克力吗?—不行,吃的已经够多了。
#(加强感叹句的语气)
#::''[[wie|Wie]] [[haben]] [[wir]] doch [[gelacht]]!'' 我们那笑的啊
#::''[[wie|Wie]] [[winzig]] doch [[alles]] [[von]] [[hier]] [[oben]] [[aussieht]]!'' 从这里看去,一切都多么的渺小啊!
#(用在表达愿望的感叹句中)
#::''[[wenn|Wenn]] [[er]] doch [[jetzt]] [[käme]]!'' 他要是现在来多好。
#(表示记忆/理解能力受限,想不起来/无法理解)
#::''[[wie|Wie]] [[hieß]] [[er]] doch/[[noch]]?'' 他叫什么来着?
#::''[[was|Was]] [[hat]] [[er]] doch [[gesagt]]?'' 他说什么来着?
#::''[[wie|Wie]] [[konnte]] [[er]] doch [[so]] [[was]] [[tun]]?''
#(''[[oder]] doch'')至少,无论怎样
#::''[[es|Es]] [[geht]] [[ihm]] [[wieder]] [[gut]], [[oder]] doch [[viel]] [[besser]].'' 他又恢复健康了——至少是好多了。
[[Category:德语连词]]
[[Category:德语副词]]
bai1b8qhdwa1wfyb3mpdsc406y7iicn
gesehen
0
297055
9752910
8941991
2026-05-05T14:43:27Z
TongcyDai
53191
9752910
wikitext
text/x-wiki
==德語==
===發音===
* {{IPA|de|/ɡəˈzeːən/}}
* {{audio|de|LL-Q188 (deu)-Sebastian Wallroth-gesehen.wav}}
* {{audio|de|De-gesehen.ogg|a=柏林}}
* {{rhymes|de|eːən|s=3}}
===分詞===
{{head|de|過去分詞}}
# {{past participle of|de|sehen}}
====變格====
{{de-adecl}}
grg1z265xdw7wka1lzcyspusslmw0vd
妳
0
306477
9752879
8537597
2026-05-05T13:22:40Z
Fglffer
55252
/* 釋義 */
9752879
wikitext
text/x-wiki
{{character info}}
==跨語言==
{{stroke order|strokes=8}}
===漢字===
{{Han char|rn=38|rad=女|as=05|sn=8|four=47492|canj=VNF|ids=⿰女尔}}
====來源====
* {{Han ref|kx=0257.200|dkj=06130|dj=0522.160|hdz=21039.090|ch=3830002.08|uh=59B3|ud=22963|bh=A970|bd=43376}}
==漢語==
===字源===
; 詞源1
: 衍生自{{zh-l|*你}},將偏旁{{zh-l|*亻}}變為{{zh-l|*女}}。對照{{zh-l|*她}},來自{{zh-l|*他}}。
; 詞源2
: {{Han simp|嬭|f=爾|t=尔}}。
===詞源1===
{{zh-forms|t2=你|s=你}}
====發音====
{{zh-pron
|m=nǐ
|m-s=nyi3
|c=nei5
|c-t=nei1
|g=n3
|h=pfs=ngì/ǹ/n:ǹg/n:nì;gd=ngi2/n2
|j=ni2
|md=nī
|mn=xm,zz,kh,tn,tc,yl,hc,sg:lí/qz,lk,sx,km,hc,sg:lír/tp,mg,sg,pn:lú/ní
|mn_note=lí/lír/lú - 白讀 (代替{{zh-l|*汝}}); ní - 文讀
|mn-t=le2
|w=sh:6gni,5ni
|x=nyi3
|ma=y
|ca=yue-nei5.ogg
|cat=pron
}}
====釋義====
{{head|zh|漢字}}
# {{lb|zh|chiefly|Taiwanese|香港}} [[稱呼]][[女性]]的第三人稱
=====使用說明=====
該字主要用於繁體中文,雖然簡體中文很少用該字,但某些情況下仍會出現。
=====參見=====
{{cmn-personal pronouns}}
===詞源2===
{{zh-see|嬭|v}}
===組詞===
{{col3|zh|妳們|乾阿妳|小妳妳|芋妳|阿妳|馬妳子|黃妳}}
==日語==
{{ja-kanji forms|妳|嬭|ex=y}}
===漢字===
{{ja-kanji|grade=|rs=女05}}
# {{ja-ex shin|嬭|sort=女05}}
====讀法====
{{ja-readings
|goon=ない, ね, に
|kanon=だい, でい, じ
|kun=はは-, はぐく-む, あね-}}
jbwg3udfzkigu90y0oavlfljt01ps5d
熗
0
310217
9752914
6765243
2026-05-05T14:48:40Z
Fglffer
55252
9752914
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=86|rad=火|as=10|sn=14|four=98861|canj=FOIR|ids=⿰火倉}}
====來源====
* {{Han ref|kx=0680.101|hdz=32223.170|uh=7197}}
==漢語==
{{zh-forms|s=炝}}
===發音===
{{zh-pron
|m=qiàng
|c=coeng3
|mn=tw:chhèng
|cat=v
}}
===釋義===
{{head|zh|漢字}}
# 先用[[沸水]]或[[油]]稍微[[烹調]],再加[[醬汁]][[調味]]
# {{alt form|zh|嗆|tr=qiàng}}
===來源===
* {{thcwd|10647}}
7pkolxo8lae59y4v2x4fmoja4l34u1g
阿媽
0
573464
9752900
9367871
2026-05-05T13:53:02Z
Fglffer
55252
/* 漢語 */
9752900
wikitext
text/x-wiki
==漢語==
===詞源1===
====發音1====
{{zh-forms|s=阿妈|alt=亞媽}}
{{zh-pron
|m=āmā
|c=aa3 maa1
|mn=a-mâ
|mn-t=a1 ma5
|cat=n,pn
}}
=====名詞=====
{{head|zh|名詞}}
# {{lb|zh|regional}} [[媽媽]],[[母親]]
# {{lb|zh|regional}} [[女傭]],[[奶媽]]
======近義詞======
{{zh-dial|媽媽}}
=====衍生詞=====
{{col3|zh|阿媽係女人|阿媽都唔認得}}
====發音2====
{{zh-forms|s=阿妈|alt=阿嬤,俺媽,俺嬤,阿罵-臺灣;非標準:āmà}}
{{zh-pron
|m=āmā,āmà,2n=發音模仿閩南語
|c=aa3 maa5
|mn=a-má
|mn-t=a1 ma2
|cat=n
}}
=====名詞=====
{{head|zh|名詞}}
# {{lb|zh|chiefly|Taiwan Mandarin|Southern Min|Puxian Min|dialectal Eastern Min|Zhao'an Hakka}} [[祖母]];[[外祖母]]
# {{lb|zh|閩南語}} [[年長]][[女性]]
======近義詞======
{{zh-dial|祖母}}
{{zh-dial|外祖母}}
====派生詞====
* {{desc|en|ama|bor=1}}
* {{desc|tl|ama|bor=1}}
=====專有名詞=====
{{zh-proper noun}}
# {{lb|zh|Hong Kong|chiefly|Tanka|Weitou|Hakka|religion}} [[媽祖]]
===詞源2===
{{zh-forms|s=阿妈|alt=阿馬,阿瑪|gloss=-}}
源自{{bor|zh|juc|-}}或{{bor|zh|mnc|ᠠᠮᠠ}}。
====發音====
{{zh-pron
|m=àmā,āmā,tl=y
|c=aa3 maa5,aa3 maa1
|cat=n
}}
====名詞====
{{head|zh|名詞}}
# {{lb|zh|historical}} {{zh-alt-form|阿瑪||[[父親]]:常見於蒙古語、女真語、滿語的語境下}}
===來源===
* {{thcwd|4621}}
* {{cite-book|2009|周樹佳|香港諸神——起源、廟宇與崇拜|pageurl=https://books.google.ca/books?id=6TqqAAAAQBAJ&pg=PA49||49}}
{{zh-cat|女性家庭成員}}
56q9omj4nlf4mxssjcp61lekvw005g7
不同凡響
0
588106
9752876
7618227
2026-05-05T13:10:50Z
Fglffer
55252
Fglffer移动页面[[不同凡响]]至[[不同凡響]],不留重定向
7618227
wikitext
text/x-wiki
==漢語==
===寫法===
{{漢語寫法|简=[[不]][[同]][[凡]][[响]]|正=}}
===讀音===
{{zh-pron|m=bùtóngfánxiǎng}}
===翻譯===
{{翻译-顶}}
*德语:
*英语:
*西班牙语:
*葡萄牙语:
*法语:
*意大利语:
*俄语:[[необычное]] [[звучание]], [[необычный]] [[голос]] (''[[обр.]]'' [[в]] знач. [[выдающийся]], [[незаурядный]], [[необычный]], [[исключительный]])
*日语:
*韩语:
*越南语:
{{翻译-底}}
taoou0t7cv96ur9kpzdzipi2uf52krq
9752877
9752876
2026-05-05T13:13:23Z
Fglffer
55252
9752877
wikitext
text/x-wiki
==漢語==
{{zh-forms|type=22|s=不同凡响|lit=不平凡的和弦}}
===發音===
{{zh-pron
|m=不tóngfánxiǎng
|c=bat1 tung4 faan4 hoeng2
|cat=cy
}}
===成語===
{{head|zh|成語}}
# {{lb|zh|比喻}} [[特出]]、不[[平凡]]的[[人]]或[[事物]]
====同義詞====
* {{zh-l|非同凡響}}
====衍生詞====
{{col3|zh|神仙放屁——不同凡響}}
s0m2y18gcg9jcb50l7m0pn1a4w77ao8
步人後塵
0
589169
9753749
8165359
2026-05-06T07:30:21Z
Fglffer
55252
9753749
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=步人后尘|type=112}}
===發音===
{{zh-pron
|m=bùrénhòuchén
|c=bou6 jan4 hau6 can4
|cat=cy
}}
===成語===
{{head|zh|成語}}
# [[跟隨]][[別人]]的[[腳印]][[前進]]
# {{lb|zh|比喻}} [[追隨]]或[[效仿]]他人的[[言行]],缺乏[[創見]]
====同義詞====
* {{zh-l|步後塵}}
cnesf81lr62yqstsb21cvnobiki7p06
孤苦伶仃
0
609235
9752952
9245078
2026-05-05T22:55:51Z
Fglffer
55252
/* 漢語 */
9752952
wikitext
text/x-wiki
==漢語==
{{zh-forms|alt=孤苦零丁,孤苦伶丁,孤苦零仃|type=22}}
===發音===
{{zh-pron
|m=gūkǔlíngdīng
|c=gu1 fu2 ling4 ding1
|cat=cy
}}
===成語===
{{head|zh|成語}}
# [[孤單]][[貧苦]],[[無依無靠]]
====近義詞====
* {{zh-l|舉目無親}}
* {{zh-l|孤身隻影}}
* {{zh-l|顧影自憐}}
* {{zh-l|形影相弔}}
* {{zh-l|形單影隻}}
* {{zh-l|孑然一身}}
9thv4b2ja56w65hh485uj0yp63czn68
9752955
9752952
2026-05-05T23:01:52Z
Fglffer
55252
/* 近義詞 */
9752955
wikitext
text/x-wiki
==漢語==
{{zh-forms|alt=孤苦零丁,孤苦伶丁,孤苦零仃|type=22}}
===發音===
{{zh-pron
|m=gūkǔlíngdīng
|c=gu1 fu2 ling4 ding1
|cat=cy
}}
===成語===
{{head|zh|成語}}
# [[孤單]][[貧苦]],[[無依無靠]]
====同義詞====
* {{zh-l|舉目無親}}
* {{zh-l|孤身隻影}}
* {{zh-l|形單影隻}}
* {{zh-l|形影相弔}}
* {{zh-l|顧影自憐}}
* {{zh-l|孑然一身}}
2jgzthqhmopmso9ieg11zhchiu0hj7p
後塵
0
629300
9753166
8136731
2026-05-06T06:41:45Z
Fglffer
55252
9753166
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=后尘}}
===發音===
{{zh-pron
|m=hòuchén
|c=hau6 can4
|mn=qz:hiǒ-tîn/tw,xm,zz:hō͘-tîn/xm:āu-tîn
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# {{lb|zh|formal}} [[行走]]時後面[[揚起]]的[[塵土]]
# {{lb|zh|figurative}} 某人的[[腳步]]後
# {{lb|zh|figurative}} [[生命]][[歷程]];[[前人]]走過的[[道路]]
====衍生詞====
{{col3|zh|步人後塵}}
99snvbsd6p6rxluaj5riauipyub6bar
9753751
9753166
2026-05-06T07:34:43Z
Sayonzei
40728
/* 名詞 */
9753751
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=后尘}}
===發音===
{{zh-pron
|m=hòuchén
|c=hau6 can4
|mn=qz:hiǒ-tîn/tw,xm,zz:hō͘-tîn/xm:āu-tîn
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# {{lb|zh|formal}} [[行走]]時後面[[揚起]]的[[塵土]]
# {{lb|zh|figurative}} 某人的[[腳步]]後
# {{lb|zh|figurative}} [[生命]][[歷程]];[[前人]]走過的[[道路]]
====衍生詞====
{{col3|zh|步人後塵}}
==日語==
{{ja-kanjitab|こう|じん|yomi=o}}
===發音===
{{ja-pron|こうじん|acc=0|acc_ref=DJR,NHK,NKD2}}
===名詞===
{{ja-noun|こうじん|hhira=こうぢん}}
# [[行走]]時後面[[揚起]]的[[塵土]]
====衍生詞====
* {{ja-r|後塵を拝する|こうじん を はい する}}
===參考資料===
<references/>
==朝鮮語==
{{ko-hanjatab}}
===名詞===
{{ko-noun|hangeul=후진}}
# {{hanja form of|후진}}
e1ftovle9j70f7ps54c7oludk75ur8h
跡象
0
635463
9752873
8295336
2026-05-05T12:37:56Z
~2026-27332-72
133188
/* */ 我多數我和第一位
9752873
wikitext
text/x-wiki
呼籲警方團體反對的童話阿道歉地鐵qi愛誒二誒黃浦江唔拖地
==漢語==
{{zh-forms|s=迹象}}
===讀音===
{{zh-pron
|m=跡xiàng
|c=zik1 zoeng6
|mn=xm:chek-siōng/qz:chiak-siǒng/zz:chek-chhiāng
|cat=n}}
===名詞===
{{head|zh|名詞}}
# [[表露]]出的不[[明显]]的[[痕迹]]、[[现象]](可借以[[推断]][[过去]]或[[将来]])。
===翻譯===
{{翻译-顶}}
*俄语:[[следы]], [[признаки]]
{{翻译-底}}
3vtsk5r2he5cssi76t361dkndcjhpax
9752888
9752873
2026-05-05T13:35:48Z
Sayonzei
40728
取消[[Special:Contributions/~2026-27332-72|~2026-27332-72]] ([[User talk:~2026-27332-72|对话]])的编辑;更改回[[Special:Contributions/TongcyBot|TongcyBot]]的最后一个版本
8295336
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=迹象}}
===讀音===
{{zh-pron
|m=跡xiàng
|c=zik1 zoeng6
|mn=xm:chek-siōng/qz:chiak-siǒng/zz:chek-chhiāng
|cat=n}}
===名詞===
{{head|zh|名詞}}
# [[表露]]出的不[[明显]]的[[痕迹]]、[[现象]](可借以[[推断]][[过去]]或[[将来]])。
===翻譯===
{{翻译-顶}}
*俄语:[[следы]], [[признаки]]
{{翻译-底}}
qiux10f9zpxjxv5p92jjtgxajdolaji
舉目無親
0
639715
9752953
8122094
2026-05-05T22:59:16Z
Fglffer
55252
9752953
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=举目无亲|type=211|lit=四處張望看不到親人}}
===發音===
{{zh-pron
|m=jǔmùwúqīn
|c=geoi2 muk6 mou4 can1
|cat=cy
}}
===成語===
{{head|zh|成語}}
# 一人[[單身]]在外,[[孤單]]無[[依靠]]
hfwowxygzfz1pyy75ovb1g93ca5o99h
落胎
0
669130
9752891
9694908
2026-05-05T13:40:05Z
Fglffer
55252
9752891
wikitext
text/x-wiki
==漢語==
{{zh-forms}}
===發音===
{{zh-pron
|m=luòtāi
|c=lok6 toi1
|h=pfs=lau-thôi
|mn=xm,zz,tp,kh,hc,mg,tc,tn,yl:làu-the/qz,km,hc,lk,sx:làu-ther/sg:làu-thai
|cat=v
}}
===動詞===
{{zh-verb}}
# [[墮胎]]
# {{lb|zh|chiefly|Southern Min|Taiwanese Hakka|Taiwanese Mandarin}} [[流產]]
====同義詞====
{{zh-dial|墮胎}}
{{zh-dial|流產}}
{{C|zh|醫學|流產}}
==朝鮮語==
{{ko-hanjatab}}
===名詞===
{{ko-noun|hj|hangeul=낙태}}
# {{hanja form of|낙태|流產}}
gl3xwr9h64i0x3e39flapx3mpsagg80
こぐ
0
715958
9752887
5490422
2026-05-05T13:34:43Z
Sayonzei
40728
9752887
wikitext
text/x-wiki
==日語==
{{ja-see|漕ぐ}}
nqurg630kk5sbpi8c2yehnkaxnz55xq
せんこう
0
726749
9752906
5444945
2026-05-05T14:03:20Z
Fglffer
55252
9752906
wikitext
text/x-wiki
{{also|せんごう|ぜんこう|ぜんごう}}
==日語==
{{ja-see|先行|選考|専攻|線香|閃光|選好|潜航|穿孔|戦功|潜行|専行|先公|先攻|鮮紅|繊巧|選鉱|浅香|先考|遷幸|潜幸|銑鋼|潜降|先后|先後|先皇|千行|染工|浅紅|浅黄|潜考|践行|占考|宣誥|扇工|旋行|栓孔|船工|賤工|跣行|餞行|鮮好|旋光}}
fweyyteye88e41v1eymkp9t5ctdz78c
専攻
0
920536
9752907
7326829
2026-05-05T14:41:52Z
Fglffer
55252
9752907
wikitext
text/x-wiki
==日語==
{{ja-kanjitab|せん|こう|yomi=o}}
===發音===
{{ja-pron|せんこう|acc=0|acc_ref=NHK}}
{{ja-suru-acc-table|せんこう|acc=0}}
===名詞===
{{ja-noun|せんこう}}
# [[專業]][[領域]]
====同義詞====
* {{ja-r|専門|せんもん|專業科目}}
===動詞===
{{ja-verb-suru|せんこう|tr=transitive}}
# [[專攻]]
#* {{quote-web|ja
|work=ja:国会会議録検索システム
|publisher=ja:国立国会図書館
|title=ja:第204回国会 参議院 憲法審査会 第4号 令和3年6月2日
|date=2021-06-02
|url=https://kokkai.ndl.go.jp/txt/120414183X00420210602/4
|quotee=ja:飯島滋明
|text=経済学部の教員ですけれども、憲法を'''専攻'''しています名古屋学院大学の飯島と申します。
|transliteration=Keizai gakubu no kyōin desu keredo mo, kenpō o '''senkō''' shite i-masu Nagoya Gakuin Daigaku no Ījima to mōshi-masu.
|translation=我叫飯島,是名古屋學院大學經濟學系的教授,'''專攻'''憲法。}}
====活用====
{{ja-suru|せんこう}}
===來源===
<references/>
:* {{R:Kanjipedia Kotoba|0004055100}}
e7e9c5cedbg1gg5nt7g276k1ipsw6zd
友邦
0
991064
9752863
7771466
2026-05-05T12:11:48Z
Fglffer
55252
9752863
wikitext
text/x-wiki
==漢語==
{{zh-forms}}
===發音===
{{zh-pron
|m=yǒubāng
|c=jau5 bong1
|h=pfs=yû-pâng
|mn=iú-pang
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# [[保持]][[親密]][[友好]]關係的[[國家]]
====同義詞====
{{syn-saurus|zh|盟國}}
====反義詞====
{{ant-saurus|zh|盟國}}
==日語==
{{ja-kanjitab|ゆう|ほう|yomi=o}}
===發音===
{{ja-pron|ゆうほう|acc=0|acc_ref=DJR}}
===名詞===
{{ja-noun|ゆうほう}}
# [[保持]][[親密]][[友好]]關係的[[國家]]
===來源===
<references/>
==朝鮮語==
{{ko-hanjatab}}
===Noun===
{{ko-noun|hangeul=우방}}
# {{hanja form of|우방}}
==越南語==
{{vi-hantutab}}
===名詞===
{{vi-noun|sc=Hani}}
# {{han tu form of|hữu bang}}
llw4iuzziq1mb7k3diuxq7b4msn4ih8
9752864
9752863
2026-05-05T12:12:02Z
Fglffer
55252
/* 朝鮮語 */
9752864
wikitext
text/x-wiki
==漢語==
{{zh-forms}}
===發音===
{{zh-pron
|m=yǒubāng
|c=jau5 bong1
|h=pfs=yû-pâng
|mn=iú-pang
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# [[保持]][[親密]][[友好]]關係的[[國家]]
====同義詞====
{{syn-saurus|zh|盟國}}
====反義詞====
{{ant-saurus|zh|盟國}}
==日語==
{{ja-kanjitab|ゆう|ほう|yomi=o}}
===發音===
{{ja-pron|ゆうほう|acc=0|acc_ref=DJR}}
===名詞===
{{ja-noun|ゆうほう}}
# [[保持]][[親密]][[友好]]關係的[[國家]]
===來源===
<references/>
==朝鮮語==
{{ko-hanjatab}}
===名詞===
{{ko-noun|hangeul=우방}}
# {{hanja form of|우방}}
==越南語==
{{vi-hantutab}}
===名詞===
{{vi-noun|sc=Hani}}
# {{han tu form of|hữu bang}}
cpx0xqmq5vp7p95gydqwjdczudnycjd
𩢦
0
1030466
9752939
5634008
2026-05-05T20:16:49Z
Fglffer
55252
9752939
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=187|rad=馬|as=05|sn=15|four=|canj=SFHEY|ids=⿰馬冬}}
====來源====
* {{Han ref|kx=1437.121|uh=298A6}}
==漢語==
{{zh-forms}}
===發音===
{{zh-pron
|m=dōng
|c=
|cat=
}}
===釋義===
{{head|zh|漢字}}
# {{lb|zh|Taiwan}} {{zh-used2|n}}
==越南語==
===字源===
{{Han compound|lang=vi|ls=psc|馬|冬|c1=s|c2=p|tr2={{vi-l|đông}}}}。
===漢字===
{{vi-readings
|rs=馬05
|nom=rong-tdcndg;gdhn;btcn, giong-tdcndg;btcn
}}
# {{vi-Nom form of|rong|[[漫遊]]}}
====組詞====
{{col3|vi
|{{vi-l|𩢦𩧍|[[rong ruổi]], [[giong ruổi]]}}
}}
===來源===
<references/>
bq8m9e8bixwm3e0hj4tiww9el73t6cm
閃光
0
1055318
9752903
9185577
2026-05-05T14:01:57Z
Fglffer
55252
/* 漢語 */
9752903
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=闪光}}
===發音===
{{zh-pron
|m=shǎnguāng
|c=sim2 gwong1
|mn=qz,tw,xm:siám-kng/zz:siám-kuiⁿ/qz,xm:siám-kong
|cat=n,v
}}
===名詞===
{{head|zh|名詞}}
# [[突然]]一現或[[忽明忽暗]]的[[光亮]]
# {{lb|zh|網路|新詞|臺灣}} 指自己的[[男朋友]]、[[女朋友]]
===動詞===
{{zh-verb}}
# [[光亮]]突然一現或忽明忽暗
====同義詞====
{{syn-saurus|zh|閃動}}
===衍生詞===
{{col3|zh|閃光彈|閃光燈|閃光點}}
==日語==
{{ja-kanjitab|せん|こう|yomi=o}}
===發音===
{{ja-pron|せんこう|acc=0|acc_ref=DJR}}
===名詞===
{{ja-noun|せんこう|hhira=せんくわう}}
# [[突然]]一現或[[忽明忽暗]]的[[光亮]]
====衍生詞====
* {{ja-r|緑閃光|りょくせんこう|gloss=[[green flash]]}}
===來源===
<references/>
:* {{R:Kanjipedia Kotoba|0004070600|<sup>▲</sup>閃光}}
==朝鮮語==
{{ko-hanjatab}}
===名詞===
{{ko-noun|hj|hangeul=섬광}}
# {{hanja form of|섬광}}
==日語==
{{ja-kanjitab|せん|こう|yomi=o}}
===發音===
{{ja-pron|せんこう|acc=0|acc_ref=DJR}}
===名詞===
{{ja-noun|せんこう|hhira=せんくわう}}
# 突然一現或忽明忽暗的[[光亮]]
====派生詞彙====
* {{ja-r|緑閃光|りょくせんこう}}
===參考資料===
<references/>
5qbyey7cunsz520thlhul56qswxsahs
9752904
9752903
2026-05-05T14:02:21Z
Fglffer
55252
9752904
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=闪光}}
===發音===
{{zh-pron
|m=shǎnguāng
|c=sim2 gwong1
|mn=qz,tw,xm:siám-kng/zz:siám-kuiⁿ/qz,xm:siám-kong
|cat=n,v
}}
===名詞===
{{head|zh|名詞}}
# [[突然]]一現或[[忽明忽暗]]的[[光亮]]
# {{lb|zh|網路|新詞|臺灣}} 指自己的[[男朋友]]、[[女朋友]]
===動詞===
{{zh-verb}}
# [[光亮]]突然一現或忽明忽暗
====同義詞====
{{syn-saurus|zh|閃動}}
===衍生詞===
{{col3|zh|閃光彈|閃光燈|閃光點}}
==日語==
{{ja-kanjitab|せん|こう|yomi=o}}
===發音===
{{ja-pron|せんこう|acc=0|acc_ref=DJR}}
===名詞===
{{ja-noun|せんこう|hhira=せんくわう}}
# [[突然]]一現或[[忽明忽暗]]的[[光亮]]
====衍生詞====
* {{ja-r|緑閃光|りょくせんこう|gloss=[[green flash]]}}
===來源===
<references/>
:* {{R:Kanjipedia Kotoba|0004070600|<sup>▲</sup>閃光}}
==朝鮮語==
{{ko-hanjatab}}
===名詞===
{{ko-noun|hj|hangeul=섬광}}
# {{hanja form of|섬광}}
rklwv9l5d13oc6nkeqbybcbhcanofl8
9752905
9752904
2026-05-05T14:02:54Z
Fglffer
55252
9752905
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=闪光}}
===發音===
{{zh-pron
|m=shǎnguāng
|c=sim2 gwong1
|mn=qz,tw,xm:siám-kng/zz:siám-kuiⁿ/qz,xm:siám-kong
|cat=n,v
}}
===名詞===
{{head|zh|名詞}}
# [[突然]]一現或[[忽明忽暗]]的[[光亮]]
# {{lb|zh|網路|新詞|臺灣}} 指自己的[[男朋友]]、[[女朋友]]
===動詞===
{{zh-verb}}
# [[光亮]]突然一現或忽明忽暗
====同義詞====
{{syn-saurus|zh|閃動}}
===衍生詞===
{{col3|zh|閃光彈|閃光燈|閃光點}}
==日語==
{{ja-kanjitab|せん|こう|yomi=o}}
===發音===
{{ja-pron|せんこう|acc=0|acc_ref=DJR}}
===名詞===
{{ja-noun|せんこう|hhira=せんくわう}}
# [[突然]]一現或[[忽明忽暗]]的[[光亮]]
====衍生詞====
* {{ja-r|緑閃光|りょくせんこう}}
===來源===
<references/>
:* {{R:Kanjipedia Kotoba|0004070600|<sup>▲</sup>閃光}}
==朝鮮語==
{{ko-hanjatab}}
===名詞===
{{ko-noun|hj|hangeul=섬광}}
# {{hanja form of|섬광}}
ms2w3cyp6f9msezk3qb8cy19hrxygij
特務
0
1071446
9752928
8172721
2026-05-05T19:44:43Z
Fglffer
55252
9752928
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=特务}}
===詞源===
{{bor+|zh|ja|[[特務]][[機関]]}} - 日本帝國陸軍在佔領區或戰區內的情報機構。參見{{w|特務機関|lang=ja}}。
===發音===
{{zh-pron
|m=tèwù
|c=dak6 mou6
|mn=qz:tia̍k-bū/tw,xm,zz:te̍k-bū
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# 從事[[特別]][[任務]]的[[人員]]
====同義詞====
{{syn-saurus|zh|間諜}}
====衍生詞====
{{col3|zh|敵特}}
{{zh-cat|Intermediate}}
{{C|zh|諜報|職業|人}}
==日語==
{{ja-kanjitab|とく|む|yomi=o}}
===發音===
* {{ja-pron|とくむ|acc=1|acc_ref=DJR,NHK}}
===名詞===
{{ja-noun|とくむ}}
# [[特別]][[任務]]
===來源===
<references/>
:* {{R:Kanjipedia Kotoba|0005302200}}
==越南語==
{{vi-hantutab}}
===名詞===
{{vi-noun|sc=Hani}}
# {{vi-Han form of|đặc vụ}}
1sn5gpw3o65dsdluwml51oc9n3rzkvv
9752930
9752928
2026-05-05T19:51:35Z
Fglffer
55252
9752930
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=特务}}
===詞源===
{{bor+|zh|ja|[[特務]][[機関]]}} - 日本帝國陸軍在佔領區或戰區內的情報機構。參見{{w|特務機関|lang=ja}}。
===發音===
{{zh-pron
|m=tèwù
|c=dak6 mou6
|mn=qz:tia̍k-bū/tw,xm,zz:te̍k-bū
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# 從事[[特別]][[任務]]的[[人員]]
====同義詞====
{{syn-saurus|zh|間諜}}
====衍生詞====
{{col3|zh|敵特}}
{{zh-cat|Intermediate}}
{{C|zh|諜報|職業|人}}
==日語==
{{ja-kanjitab|とく|む|yomi=o}}
===發音===
* {{ja-pron|とくむ|acc=1|acc_ref=DJR,NHK}}
===名詞===
{{ja-noun|とくむ}}
# [[特別]][[任務]]
===來源===
<references/>
:* {{R:Kanjipedia Kotoba|0005302200}}
==朝鮮語==
{{ko-hanjatab}}
===名詞===
{{ko-noun|hangeul=특무}}
# {{hanja form of|특무}}
==越南語==
{{vi-hantutab}}
===名詞===
{{vi-noun|sc=Hani}}
# {{vi-Han form of|đặc vụ}}
kntbfsmelrnrnno43mucqvlvh3naxf7
形影相弔
0
1084241
9753752
8150877
2026-05-06T07:42:37Z
Fglffer
55252
9753752
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=形影相吊|type=22|lit=身體和影子互相慰問}}
===發音===
{{zh-pron
|m=xíngyǐngxiàngdiào
|cat=cy
}}
===成語===
{{head|zh|成語}}
# [[孤獨]]無[[依靠]]
msey440hvijn4onqfu8flo2ybhv0n93
下腳
0
1112698
9752983
8511677
2026-05-06T02:38:15Z
Sayonzei
40728
/* 漢語 */
9752983
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=下脚}}
===詞源1===
====發音====
{{zh-pron
|m=xiàjiǎo
|cat=n,v
}}
====名詞====
{{head|zh|名詞}}
# [[狎妓]]的[[赏钱]]。
# [[原材料]][[加工]]、[[利用]]後剩下的[[材料]]。
====衍生词====
{{col3|zh|下腳料}}
====動詞====
{{zh-verb}}
# [[站立]]
#: {{zh-x|沒有 下腳 的 地方。}}
===詞源2===
{{zh-see|下跤}}
c17bi1gwupoc15lzgd1hvac8nfm2uja
族長
0
1124556
9752931
9311943
2026-05-05T20:00:45Z
Fglffer
55252
9752931
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=族长}}
===發音===
{{zh-pron
|m=zúzhǎng
|c=zuk6 zoeng2
|md=cŭk-diōng
|mn=xm,qz,tw:cho̍k-tiúⁿ/zz:cho̍k-tióⁿ
|w=nb:8dzoq cian3
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# 一族中[[輩分]]、[[權勢]]或[[地位]]最高的人
====相關詞====
* {{zh-l|酋長}}
====派生詞====
{{CJKV||ぞくちょう|족장|tộc trưởng}}
{{C|zh|人}}
==日語==
{{wp|ja:[[族長|族長:聖經首長]]}}
{{ja-kanjitab|ぞく|ちょう|yomi=o}}
===詞源===
來自{{der|ja|zhx|sort=ぞくちょう}} {{m|zh|族長}}。
===發音===
{{ja-pron|ぞくちょう}}
===名詞===
{{ja-noun|ぞくちょう}}
# 一族中[[輩分]]、[[權勢]]或[[地位]]最高的人
# [[聖經]][[記載]]的[[古代]][[以色列]][[首長]]
====使用說明====
從歷史上看,這個角色通常由男性擔任。然而,這個詞本身通常不具性別特徵,可以指代男性或女性的首長。若要指明特定性別,可在詞前加上{{m|ja|女|tr=onna}}或{{m|ja|男|tr=otoko}}。
====同義詞====
* {{sense|一族首領}} {{ja-r|家長|かちょう}}
====衍生詞====
* {{ja-r|族長時代|^ぞくちょう ^じだい}}:族長時代
====參見====
* {{ja-r|女族長|おんな ぞくちょう}}
* {{ja-r|男族長|おとこ ぞくちょう}}
* {{ja-r|女家長|おんな かちょう}}
* {{ja-r|男家長|おとこ かちょう}}
==朝鮮語==
{{ko-hanjatab}}
===名詞===
{{ko-noun|hj|hangeul=족장}}
# {{hanja form of|족장}}
==越南語==
{{vi-hantutab}}
===名詞===
{{vi-noun|sc=Hani}}
# {{vi-Han form of|tộc trưởng}}
mkqggaw4diq42cquql16tvzmhrz8ls3
9752958
9752931
2026-05-06T01:40:40Z
Sayonzei
40728
/* 日語 */
9752958
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=族长}}
===發音===
{{zh-pron
|m=zúzhǎng
|c=zuk6 zoeng2
|md=cŭk-diōng
|mn=xm,qz,tw:cho̍k-tiúⁿ/zz:cho̍k-tióⁿ
|w=nb:8dzoq cian3
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# 一族中[[輩分]]、[[權勢]]或[[地位]]最高的人
====相關詞====
* {{zh-l|酋長}}
====派生詞====
{{CJKV||ぞくちょう|족장|tộc trưởng}}
{{C|zh|人}}
==日語==
{{wp|ja:[[族長|族長:聖經首長]]}}
{{ja-kanjitab|ぞく|ちょう|yomi=o}}
===詞源===
來自{{der|ja|zhx|sort=ぞくちょう}} {{m|zh|族長}}。
===發音===
{{ja-pron|ぞくちょう|acc=0|acc_ref=DJR,NHK,SMK7,NKD2}}
===名詞===
{{ja-noun|ぞくちょう|hhira=ぞくちやう}}
# 一族中[[輩分]]、[[權勢]]或[[地位]]最高的人
# [[聖經]][[記載]]的[[古代]][[以色列]][[首長]]
====使用說明====
從歷史上看,這個角色通常由男性擔任。然而,這個詞本身通常不具性別特徵,可以指代男性或女性的首長。若要指明特定性別,可在詞前加上{{m|ja|女|tr=onna}}或{{m|ja|男|tr=otoko}}。
====同義詞====
* {{sense|一族首領}} {{ja-r|家%長|か%ちょう}}
====衍生詞====
* {{ja-r|族%長%時%代|^ぞく%ちょう% ^じ%だい}}
====參見====
* {{ja-r|女%族%長|おんな% ぞく%ちょう}}
* {{ja-r|男%族%長|おとこ% ぞく%ちょう}}
* {{ja-r|女%家%長|おんな% か%ちょう}}
* {{ja-r|男%家%長|おとこ% か%ちょう}}
===参考资料===
<references/>
==朝鮮語==
{{ko-hanjatab}}
===名詞===
{{ko-noun|hj|hangeul=족장}}
# {{hanja form of|족장}}
==越南語==
{{vi-hantutab}}
===名詞===
{{vi-noun|sc=Hani}}
# {{vi-Han form of|tộc trưởng}}
ch3oxdqrhvqzqph2tcqw47r9xdriu0v
克羅埃西亞
0
1143186
9752874
7456866
2026-05-05T12:38:12Z
Fglffer
55252
9752874
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=克罗埃西亚|gloss=-}}
===發音===
{{zh-pron
|m=Kèluó'āixī亞
|c=hak1 lo4 oi1 sai1 aa3
|cat=pn
}}
===專有名詞===
{{head|zh|專有名詞}}
# {{lb|zh|臺灣}} [[國家]]名,位於[[中歐]]、[[地中海]]和[[巴爾幹半島]]交會處
====同義詞====
* {{qualifier|中國大陸|香港|澳門}} {{zh-l|克羅地亞}}
===翻譯===
{{trans-see|國家|克羅地亞}}
{{zh-cat|歐洲國家|國家}}
asw07u84m6nlbnymlhxbi2wdr7bvte7
國民中學
0
1162509
9752871
8300842
2026-05-05T12:35:13Z
Fglffer
55252
9752871
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=国民中学|type=22}}
{{zh-wp}}
===發音===
{{zh-pron
|m=guómín zhōngxué
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# {{lb|zh|臺灣}} [[中學]]
====同義詞====
* {{zh-l|國中}}{{gl|簡稱}}
qbun2keu284myjd3tf2p7hg6vxyxicr
基金會
0
1165379
9752921
8373175
2026-05-05T17:15:39Z
TongcyDai
53191
9752921
wikitext
text/x-wiki
{{also|基金会}}
==漢語==
{{zh-forms|s=基金会|type=21}}
===發音===
{{zh-pron
|m=jījīnhuì
|c=gei1 gam1 wui6-2
|h=pfs=kî-kîm-fi;hrs=h:giˋ gimˋ fui˖
|mn=ml,tw:ki-kim-hōe
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# 利用[[自然人]]、[[法人]]或者其他組織捐贈的[[財產]],從事[[慈善]]、[[公益]]事業的非營利性[[社會]][[組織]]
#: {{zh-x|^維基詞典 是 ^維基 ^媒體 ^基金會 代管 的 專案 之一。|}}
====翻譯====
{{trans-top|一種非營利性社會組織}}
{{trans-top|endowed institution or charity}}
* 阿拉伯語:{{t+|ar|مُؤَسَّسَة|f}}
* 亞美尼亞語:{{t+|hy|հիմնադրամ}}
* 巴什基爾語:{{t|ba|хәйриә}}
* 布列塔尼語:{{t|br|diazezadur|m}}
* 保加利亞語:{{t|bg|фонда́ция|f}}
* 加泰羅尼亞語:{{t+|ca|fundació|f}}
* 切羅基語:{{t|chr|ᎦᎫᏍᏓᎥ}}
* 捷克語:{{t+|cs|nadace|f}}
* 荷蘭語:{{t+|nl|stichting|f}}
* 英語:{{t+|en|foundation}}
* 世界語:{{t|eo|fondaĵo}}
* 芬蘭語:{{t+|fi|säätiö}}
* 法語:{{t+|fr|fondation|f}}
* 加利西亞語:{{t+|gl|fundación|f}}
* 德語:{{t+|de|Stiftung|f}}
* 希臘語:{{t+|el|ίδρυμα|n}}
* 希伯來語:{{t+|he|קֶרֶן|f|tr=kéren}}
* 匈牙利語:{{t+|hu|alapítvány}}
* 冰島語:{{t|is|stofnun|f}}
* 意大利語:{{t+|it|fondazione|f}}
* 日語:{{t+|ja|基金|tr=ききん, kikin}}、{{t+|ja|財団|tr=ざいだん, zaidan}}
* 哈薩克語:{{t|kk|қор}}
* 庫爾德語:
*: 中庫爾德語:{{t|ckb|دەسگا}}、{{t|ckb|دەزگا}}
* 馬來語:{{t|ms|yayasan}}
* 梅安語:{{t|fit|stiftelsi}}
* 挪威語:
*: 書面挪威語:{{t|nb|stiftelse|m}}
*: 新挪威語:{{t|nn|stiftelse|m}}、{{t|nn|stifting|f}}
* 奧克語:{{t+|oc|fondacion|f}}
* 波蘭語:{{t+|pl|fundacja|f}}
* 葡萄牙語:{{t+|pt|fundação|f}}
* 羅馬尼亞語:{{t+|ro|fundație|f}}、{{t+|ro|așezământ|n}}
* 俄語:{{t+|ru|фонд|m}}
* 信德語:{{t|sd|پِيڙهڪا|f}}
* 索布語:
*: 下索布語:{{t|dsb|załožba|f}}
*: 上索布語:{{t|hsb|załožba|f}}
* 西班牙語:{{t+|es|fundación|f}}
* 瑞典語:{{t+|sv|stiftelse|c}}、{{t+|sv|fond|c}}
* 泰語:{{t+|th|มูลนิธิ}}
* 土耳其語:{{t+|tr|vakıf}}、{{t|tr|yardım kurumu}}
* 烏克蘭語:{{t|uk|фонд|m}}、{{t|uk|фундація|f}}
* 威爾士語:{{t+|cy|sefydliad|m}}
{{trans-bottom}}
{{C|zh|集體}}
o9s4623t0woixyejmvyc607dh8ig06g
9752922
9752921
2026-05-05T17:16:06Z
TongcyDai
53191
9752922
wikitext
text/x-wiki
{{also|基金会}}
==漢語==
{{zh-forms|s=基金会|type=21}}
===發音===
{{zh-pron
|m=jījīnhuì
|c=gei1 gam1 wui6-2
|h=pfs=kî-kîm-fi;hrs=h:giˋ gimˋ fui˖
|mn=ml,tw:ki-kim-hōe
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# 利用[[自然人]]、[[法人]]或者其他組織捐贈的[[財產]],從事[[慈善]]、[[公益]]事業的非營利性[[社會]][[組織]]
#: {{zh-x|^維基詞典 是 ^維基 ^媒體 ^基金會 代管 的 專案 之一。|}}
====翻譯====
{{trans-top|一種非營利性社會組織}}
* 阿拉伯語:{{t+|ar|مُؤَسَّسَة|f}}
* 亞美尼亞語:{{t+|hy|հիմնադրամ}}
* 巴什基爾語:{{t|ba|хәйриә}}
* 布列塔尼語:{{t|br|diazezadur|m}}
* 保加利亞語:{{t|bg|фонда́ция|f}}
* 加泰羅尼亞語:{{t+|ca|fundació|f}}
* 切羅基語:{{t|chr|ᎦᎫᏍᏓᎥ}}
* 捷克語:{{t+|cs|nadace|f}}
* 荷蘭語:{{t+|nl|stichting|f}}
* 英語:{{t+|en|foundation}}
* 世界語:{{t|eo|fondaĵo}}
* 芬蘭語:{{t+|fi|säätiö}}
* 法語:{{t+|fr|fondation|f}}
* 加利西亞語:{{t+|gl|fundación|f}}
* 德語:{{t+|de|Stiftung|f}}
* 希臘語:{{t+|el|ίδρυμα|n}}
* 希伯來語:{{t+|he|קֶרֶן|f|tr=kéren}}
* 匈牙利語:{{t+|hu|alapítvány}}
* 冰島語:{{t|is|stofnun|f}}
* 意大利語:{{t+|it|fondazione|f}}
* 日語:{{t+|ja|基金|tr=ききん, kikin}}、{{t+|ja|財団|tr=ざいだん, zaidan}}
* 哈薩克語:{{t|kk|қор}}
* 庫爾德語:
*: 中庫爾德語:{{t|ckb|دەسگا}}、{{t|ckb|دەزگا}}
* 馬來語:{{t|ms|yayasan}}
* 梅安語:{{t|fit|stiftelsi}}
* 挪威語:
*: 書面挪威語:{{t|nb|stiftelse|m}}
*: 新挪威語:{{t|nn|stiftelse|m}}、{{t|nn|stifting|f}}
* 奧克語:{{t+|oc|fondacion|f}}
* 波蘭語:{{t+|pl|fundacja|f}}
* 葡萄牙語:{{t+|pt|fundação|f}}
* 羅馬尼亞語:{{t+|ro|fundație|f}}、{{t+|ro|așezământ|n}}
* 俄語:{{t+|ru|фонд|m}}
* 信德語:{{t|sd|پِيڙهڪا|f}}
* 索布語:
*: 下索布語:{{t|dsb|załožba|f}}
*: 上索布語:{{t|hsb|załožba|f}}
* 西班牙語:{{t+|es|fundación|f}}
* 瑞典語:{{t+|sv|stiftelse|c}}、{{t+|sv|fond|c}}
* 泰語:{{t+|th|มูลนิธิ}}
* 土耳其語:{{t+|tr|vakıf}}、{{t|tr|yardım kurumu}}
* 烏克蘭語:{{t|uk|фонд|m}}、{{t|uk|фундація|f}}
* 威爾士語:{{t+|cy|sefydliad|m}}
{{trans-bottom}}
{{C|zh|集體}}
braofjsmgsxh333g2bnm8sjbb0c902o
𠀐
0
1172250
9753758
8325873
2026-05-06T07:52:49Z
Fglffer
55252
9753758
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=1|rad=一|as=4|sn=5|four=|canj=LM|ids=⿱中一}}
====衍生字====
* {{charlist|sc=Hani|貴𭑲𣆊𥅌𠳋貴𮓱𮓰}}
* {{charlist|sc=Hani|𭲑𱧹𣻲𰮺𮈨𥀒𥀖𫁁𦃠𰹟𩞒𩞮𩻨𩺅𦵰𦸜𥲞𡔽𧕕𢈮}}
====來源====
{{Han ref|kx=0078.021|uh=20010}}
==漢語==
{{zh-forms}}
===發音===
{{zh-pron
|m=zhōng
|cat=
}}
===釋義===
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{n-g|僅用於人名。}}
===來源===
* {{R:zh:CNS|f|213f}}
==日語==
===漢字===
{{ja-kanji}}
====讀法====
{{ja-readings
|goon=き<き<くゐ, ちゅう<ちゆう
|kanon=き<き<くゐ, ちゅう<ちゆう
|kun=むし}}
hzjsff3zq1nh66polcwj5djdu61qtuc
𠨏
0
1176772
9752949
5647614
2026-05-05T21:08:40Z
Fglffer
55252
9752949
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=26|rad=卩|as=2|sn=4|four=|canj=NKSL|ids=⿰又卩}}
====來源====
* {{Han ref|kx=0159.021|dkj=|dj=|hdz=|uh=20A0F}}
==漢語==
{{zh-forms}}
===發音===
{{zh-pron
|m=yòu
|cat=
}}
===釋義===
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
sa1tbwgvx6kq1k3lb1x6ab6mihj5xzd
𠩇
0
1176893
9753761
5647819
2026-05-06T08:09:31Z
Fglffer
55252
9753761
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=27|rad=厂|as=05|sn=7|canj=MKNH|four=71212|ids=⿸厂𢒂}}
====來源====
* {{Han ref|kx=161.061|dkj=|dj=|hdz=|uh=20A47}}
==漢語==
{{zh-forms}}
===詞源1===
====發音====
{{zh-pron
|m=páng
|cat=pn
}}
====釋義====
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
===詞源2===
{{zh-see|厖|v}}
==越南語==
===漢字===
{{vi-readings|rs=厂05|hanviet=bàng}}
# {{m|vi|龐}}的異體字
nxg3ay90gelut4k4xl5ewfi28po2yo4
孑然一身
0
1176903
9752956
6973870
2026-05-05T23:05:38Z
Fglffer
55252
9752956
wikitext
text/x-wiki
==漢語==
{{zh-forms|type=22}}
===發音===
{{zh-pron
|m=jiérán一shēn
|c=kit3 jin4 jat1 san1
|mn=xm:kiat-liân-it-sin/twk:kiat-jiân-it-sin
|cat=cy
}}
===成語===
{{head|zh|成語}}
# 形容[[孤獨]]而沒有[[依靠]]
mznuj6gl6gidpo7ip47huei6okjlxx9
孤身隻影
0
1177778
9752954
6974128
2026-05-05T23:00:49Z
Fglffer
55252
9752954
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=孤身只影|type=211|lit=自己孤獨的身影}}
===發音===
{{zh-pron
|m=gūshēnzhīyǐng
|c=gu1 san1 zek3 jing2
|cat=ch
}}
===成語===
{{head|zh|成語}}
# [[孤單]][[一人]]
sy0v2jvm3p7yli52yvmwjira5nu3gwe
妙探
0
1178260
9752865
6974293
2026-05-05T12:12:12Z
Fglffer
55252
Fglffer移动页面[[妙探尋兇]]至[[妙探]],不留重定向
6974293
wikitext
text/x-wiki
==漢語==
{{百科}}
* 简体:<big>'''-{[[妙]]}- -{[[探]]}- -{[[寻]]}- -{[[凶]]}-'''</big>
* 繁体:<big>'''-{[[妙]]}- -{[[探]]}- -{[[尋]]}- -{[[兇]]}-'''</big>
===讀音===
* 汉语拼音:Miào tàn xún xiōng
===翻譯===
{{翻譯-頂}}
* {{en}}:Cluedo (board game);
{{翻譯-底}}
{{CC-CEDICT}}
[[Category:待分類的漢語詞]]
[[Category:漢語|女04手08寸09儿04]]
n2cyqmsn4uycscougmyhrn62hw0yczv
9752867
9752865
2026-05-05T12:19:37Z
Fglffer
55252
9752867
wikitext
text/x-wiki
==漢語==
{{zh-forms}}
===發音===
{{zh-pron
|m=miàotàn
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# [[巧妙]][[機智]]的[[偵探]]、[[調查員]]
81q6j2h5nxe7di7r3idfblm7rweg9ik
𦓑
0
1213923
9752951
5669108
2026-05-05T22:11:35Z
Fglffer
55252
9752951
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=126|rad=而|as=2|sn=8|four=|canj=|ids=⿱而九}}
====來源====
* {{Han ref|kx=0961.211|dkj=|dj=|hdz=|uh=264D1}}
==漢語==
{{zh-forms}}
===發音===
{{zh-pron
|m=jiǔ
|cat=
}}
===釋義===
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
l3quysdr2lzrcm2y5cka22441ww8br4
𧈸
0
1219489
9753759
5672128
2026-05-06T07:55:02Z
Fglffer
55252
9753759
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=142|rad=虫|as=03|sn=9|canj=HELMI|four=27136|ids=⿱夂虫}}
====衍生字====
* {{charlist|sc=Hani|𭫂𧎓𮬃𡩓𧊮}}
===來源===
* {{Han ref|kx=1077.111|uh=27238}}
==漢語==
===詞源1===
{{zh-forms}}
可能是{{Han compound|夂|虫|ls=psc|c1=p|c2=s|t2=昆蟲|nocap=1}}。
====發音====
{{zh-pron
|m=zǐ
|cat=pn
}}
====釋義====
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
===詞源2===
{{zh-see|蚤|o}}
===詞源3===
{{zh-see|螽|o}}
==日語==
===漢字===
{{ja-kanji|rs=虫03}}
{{ja-see|蚤}}
====讀法====
{{ja-readings|on=しょう,そう|kun=のみ-,はや-い}}
rvs1k2t1ptpdv5lsfkqm2bk08vs9xyk
𧈹
0
1219490
9753760
6987691
2026-05-06T07:56:45Z
Fglffer
55252
9753760
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=142|rad=虫|as=03|sn=9|canj=KLMI|four=40136|ids=⿱大虫}}
===來源===
* {{Han ref|kx=1077.111|dkj=32841|hdz=42834.130|uh=27239}}
==漢語==
===詞源1===
{{zh-forms}}
{{Han compound|大|虫|ls=psc|c1=p|c2=s}}。
====發音====
{{zh-pron
|m=dà
|cat=pn
}}
====釋義====
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
===詞源2===
{{zh-see|蚤|o}}
===來源===
* {{R:zh:CNS|15|2D41}}
nq9aoka0ox8e63b8352ed1d2w3lpqd7
𧦌
0
1221789
9753755
5673742
2026-05-06T07:46:24Z
Fglffer
55252
9753755
wikitext
text/x-wiki
{{character info}}
==Translingual==
===Han character===
{{Han char|rn=149|rad=言|as=4|sn=11|four=|canj=|ids=⿰訁手}}
====References====
* {{Han ref|kx=1152.121|dkj=|dj=|hdz=|uh=2798C}}
==漢語==
{{zh-forms}}
===詞源1===
====發音====
{{zh-pron
|m=shǒu
|c=
|cat=
}}
====釋義====
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
===詞源2===
{{zh-pron
|m=fēng
|c=
|cat=
}}
====釋義====
{{head|zh|漢字}}
# {{def-uncertain|zh|nohypothesis=1}}
e1zeoogb979dzo27n19h4jut1l24hxz
9753756
9753755
2026-05-06T07:46:45Z
Fglffer
55252
9753756
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=149|rad=言|as=4|sn=11|four=|canj=|ids=⿰訁手}}
====來源====
* {{Han ref|kx=1152.121|dkj=|dj=|hdz=|uh=2798C}}
==漢語==
{{zh-forms}}
===詞源1===
====發音====
{{zh-pron
|m=shǒu
|c=
|cat=
}}
====釋義====
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
===詞源2===
{{zh-pron
|m=fēng
|c=
|cat=
}}
====釋義====
{{head|zh|漢字}}
# {{def-uncertain|zh|nohypothesis=1}}
64cl7rmws7o5j5olstt21pz8l8a1ll4
9753757
9753756
2026-05-06T07:46:56Z
Fglffer
55252
/* 漢語 */
9753757
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=149|rad=言|as=4|sn=11|four=|canj=|ids=⿰訁手}}
====來源====
* {{Han ref|kx=1152.121|dkj=|dj=|hdz=|uh=2798C}}
==漢語==
{{zh-forms}}
===詞源1===
====發音====
{{zh-pron
|m=shǒu
|c=
|cat=
}}
====釋義====
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
===詞源2===
====發音====
{{zh-pron
|m=fēng
|c=
|cat=
}}
====釋義====
{{head|zh|漢字}}
# {{def-uncertain|zh|nohypothesis=1}}
qbso3the9qktqe50qlemh6v7at5cx72
𧦱
0
1221860
9753754
5673774
2026-05-06T07:44:57Z
Fglffer
55252
9753754
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=149|rad=言|as=5|sn=12|four=|canj=|ids=⿱穴言}}
====來源====
* {{Han ref|kx=1156.171|dkj=|dj=|hdz=|uh=279B1}}
==漢語==
===詞源1===
{{zh-see|䛎|v}}
===詞源2===
{{zh-forms}}
====發音====
{{zh-pron
|m=xuè
|cat=
}}
====釋義====
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
idit861rat53vxr8rlwyua2iz9fenri
𧦲
0
1221862
9753753
5673775
2026-05-06T07:43:51Z
Fglffer
55252
9753753
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=149|rad=言|as=5|sn=12|four=|canj=|ids=⿱加言}}
====來源====
* {{Han ref|kx=1156.171|dkj=|dj=|hdz=|uh=279B2}}
==漢語==
===詞源1===
{{zh-see|𧦤|v}}
===詞源2===
{{zh-forms}}
====發音====
{{zh-pron
|m=jiā
|c=
|mc=
|oc=
|cat=
}}
====釋義====
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
30g2werp01hj9w55r8gswakchdrqmjc
𧩌
0
1222117
9752948
5673925
2026-05-05T21:07:48Z
Fglffer
55252
9752948
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=149|rad=言|as=8|sn=15|four=|canj=YRNDT|ids=⿰訁孟}}
====來源====
* {{Han ref|kx=1169.151|dkj=|dj=|hdz=|uh=27A4C}}
==漢語==
===發音===
{{zh-pron
|m=měng
|cat=
}}
===釋義===
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
26cdlkqoy0w1m1uvzrrah3svjnmvfd3
𨄥
0
1223942
9752947
5639056
2026-05-05T21:07:07Z
Fglffer
55252
9752947
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=157|rad=足|as=11|sn=18|canj=RMYPD|four=61149|ids=⿰𧾷虖}}
====來源====
{{Han ref|kx=1232.441|dkj=|dj=|hdz=|uh=28125}}
==漢語==
===字源1===
{{zh-forms}}
{{Han etym}}
{{Han compound|足|虖|ls=psc|c1=s|t1=腳|c2=p}}。
====發音====
{{zh-pron
|m=hū
|cat=pn
}}
====釋義====
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
===字源2===
{{zh-m|*罅}}的訛化。
====詞源====
{{zh-see|罅|err}}
b2hidsvax2h2qzwppnsvynblp9eygrl
𨩝
0
1227566
9752944
5644401
2026-05-05T21:01:40Z
Fglffer
55252
9752944
wikitext
text/x-wiki
{{also|𨩽}}
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=167|rad=金|as=09|sn=17|canj=CYPM|four=81174|ids=⿰金𫊞}}
====來源====
* {{Han ref|kx=1316.111|dkj=|dj=|hdz=|uh=28A5D}}
==漢語==
===字源1===
{{zh-forms}}
{{Han etym}}
{{Han compound|金|虐|alt2=𫊞|ls=psc|c1=s|t1=金屬|c2=p}}。
====發音====
{{zh-pron
|m=nüè
|mc=y
|oc=y
|cat=pn
}}
====釋義====
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
===字源2===
{{zh-m|*罅}}的訛化。
====詞源====
{{zh-see|罅|err}}
77j7tjcfe28jid86wqk90gsb4294h8h
𨰼
0
1228356
9752945
5645499
2026-05-05T21:02:24Z
Fglffer
55252
9752945
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=167|rad=金|as=27|sn=35|ids=⿰釒鑾}}
====來源====
{{Han ref|kx=1328.061|uh=28C3C}}
==漢語==
{{zh-forms}}
===發音===
{{zh-pron
|m=luán
|cat=
}}
===釋義===
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
4sah5u3a4dxlboabfubewj9b3vslbwq
𩾐
0
1234689
9752937
7778484
2026-05-05T20:14:26Z
Fglffer
55252
9752937
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=196|rad=鳥|as=1|sn=12|four=|canj=|ids=⿰鳥乚}}
====來源====
* {{Han ref|kx=1481.021|dkj=|dj=|hdz=|uh=29F90}}
==漢語==
{{zh-forms|s=𬷻}}
===詞源1===
{{zh-see|鳦|v}}
===詞源2===
====發音====
{{zh-pron
|m=yǐ
|c=
}}
====釋義====
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
d8poae56tjftsnywrqlxrr47nz0zuou
𪋿
0
1235777
9752935
5661014
2026-05-05T20:09:57Z
Fglffer
55252
9752935
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=199|rad=麥|as=2|sn=13|four=|canj=JNY|ids=⿺麥卜}}
====來源====
{{Han ref|kx=1512.121|uh=2A2FF}}
==漢語==
{{zh-forms|s=𫧮}}
===發音===
{{zh-pron
|m=bǔ
|c=buk1
|cat=
}}
===釋義===
{{head|zh|漢字}}
# {{lb|zh|Taiwanese}} {{zh-used2|n}}
aei00dk4l3dsc8e8gsidghipbfsgiv8
𫧮
0
1241735
9752936
5676758
2026-05-05T20:10:57Z
Fglffer
55252
9752936
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=25|rad=卜|as=6|sn=9|four=|canj=|ids=⿺麦卜}}
====來源====
{{Han ref|uh=2B9EE}}
==漢語==
{{zh-see|𪋿}}
ani0138msgidna4n4cef30s1vn0hhnn
𬷻
0
1248202
9752938
5685066
2026-05-05T20:15:01Z
Fglffer
55252
9752938
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=196|rad=鸟|as=1|sn=6|four=|canj=|ids=⿰鸟乚}}
====來源====
{{Han ref|uh=2CDFB}}
==漢語==
{{zh-see|𩾐}}
tug1uq60o0wrq120i917lwr4oa7lifa
soliloquy
0
1280926
9753762
6671407
2026-05-06T08:26:12Z
Chihunglu83
87715
9753762
wikitext
text/x-wiki
==英語==
{{wikipedia|lang=en}}
===發音===
* {{enPR|səlĭlʹəkwē}}, {{IPA|en|/səˈlɪləkwi/}}
* {{audio|en|en-us-soliloquy.ogg|a=US}}
* {{audio|en|en-au-soliloquy.ogg|a=AU}}
* {{hyph|en|so|lil|o|quy}}
===名詞===
{{en-noun|~}}
{{翻譯-頂}}
* {{zh-hans}}:-{[[独语]]}-
* {{zh-hant}}:-{[[獨語]]}-
{{翻譯-底}}
{{CC-CEDICT}}
[[Category:待分類的英語詞]]
[[Category:英語]]
[[分类:拉丁文字]]
5rihzuj2ujyua6crbtux5pg69rtxez5
芭樂
0
1316960
9752889
9728532
2026-05-05T13:37:52Z
Fglffer
55252
9752889
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=芭乐|gloss=-|alt=巴樂}}
{{wp|zh:}}
===發音===
{{zh-pron
|m=bālè
|cat=n
}}
===詞源1===
{{bor+|cmn|nan-hbl|菝仔|tr=pa̍t-á}}。
====名詞====
{{head|zh|名詞}}
# [[番石榴]]
=====同義詞=====
{{zh-dial|番石榴}}
=====衍生詞=====
{{col3|zh|土芭樂}}
===詞源2===
{{psm|zh|en|ballad}}
====名詞====
{{head|zh|名詞}}
# {{lb|zh|music|chiefly|Taiwan}} [[民謠]]
{{C|zh|果實|桃金孃科植物}}
6mertbwwom6u8x03opj6yfafgqw9wh9
9752890
9752889
2026-05-05T13:38:05Z
Fglffer
55252
9752890
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=芭乐|gloss=-|alt=巴樂}}
{{wp|zh:}}
===發音===
{{zh-pron
|m=bālè
|cat=n
}}
===詞源1===
{{bor+|cmn|nan-hbl|菝仔|tr=pa̍t-á}}。
====名詞====
{{head|zh|名詞}}
# [[番石榴]]
=====同義詞=====
{{zh-dial|番石榴}}
=====衍生詞=====
{{col3|zh|土芭樂}}
===詞源2===
{{psm|zh|en|ballad}}。
====名詞====
{{head|zh|名詞}}
# {{lb|zh|music|chiefly|Taiwan}} [[民謠]]
{{C|zh|果實|桃金孃科植物}}
9krb4x76n2znpck8bnv0xxosif2nwx3
走山
0
1327296
9752894
9172206
2026-05-05T13:45:49Z
Fglffer
55252
/* 漢語 */
9752894
wikitext
text/x-wiki
==漢語==
{{zh-forms}}
===發音===
{{zh-pron
|m=zǒushān
|mn=xm,tw:cháu-soaⁿ
|cat=v
}}
===動詞===
{{zh-verb}}
# {{lb|zh|Xiamen|&|Taiwanese Hokkien|Taiwan Mandarin}} [[山體]][[滑坡]]
#* {{quote-song|nan-hbl|year=2015|lyricist=武雄|composer=w:陳建瑋|title=傷心的我傷心的歌|album=古倫美亞|artist=w:陳建瑋|titleurl=https://www.youtube.com/watch?v=xGrXISLgvec}}
#*: {{zh-q|海水 無 變~乾{ta} 你 的 愛 竟然{liân} 先 走山|海水未乾枯 你的愛竟然先'''走山'''|TW}}
# {{lb|zh|奉節|_|官話方言}} [[地震]]
# {{lb|zh|忻州|_|晉語}} 趕[[牲畜]]到山上[[放牧]]
===參考資料===
*{{R:zh:HYFYDCD}}
1gubl1x846sz2ww01xyimfh1bxa0b22
阿姨洗鐵路
0
1357901
9752982
9747641
2026-05-06T02:34:38Z
InternetArchiveBot
95668
Rescuing 0 sources and tagging 1 as dead.) #IABot (v2.0.9.5
9752982
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=阿姨洗铁路|type=212}}
===詞源===
{{translit|zh|ja|-|nocap=y}} {{ja-r|愛 してる|あい してる|gloss=我愛你}}。來自中國大陸網民對《[[w:聰明的一休|聰明的一休]]》、《[[w:創聖的大天使|創聖的大天使]]》主題曲的惡搞。
===發音===
{{zh-pron
|m=āyí xǐ tiělù
|c=aa3 ji4-1 sai2 tit3 lou6
|cat=ph
}}
===短語===
{{head|zh|短語}}
# {{lb|zh|網路用語|新詞}} [[我愛你]]
===延伸閱讀===
*[http://zh.moegirl.org/%E9%98%BF%E5%A7%A8%E6%B4%97%E9%93%81%E8%B7%AF 阿姨洗铁路 - 萌娘百科 万物皆可萌的百科全书]{{Dead link|date=May 2026 |bot=InternetArchiveBot |fix-attempted=yes }}
*[http://jp.hjenglish.com/new/p193264/ 【网络热词的日语说法】打酱油、YY、阿姨洗铁路_新沪江日语网]
fo0uk0b54q4gy3cg2r2lvwb7rhk0uls
喺度
0
1376616
9752920
9255702
2026-05-05T16:36:09Z
TongcyDai
53191
9752920
wikitext
text/x-wiki
==漢語==
{{zh-forms|alt=喺道}}
===發音===
{{zh-pron
|c=hai2 dou6
|cat=v,adv
}}
===動詞===
{{zh-verb|type=vo}}
# {{lb|zh|粵語}} (在)[[這裏]]
#: {{zh-x|我 喺度!|我'''在這裏'''!|C}}
#: {{zh-x|有 隻 雀{zoek3-2} 死 咗 喺度。|有隻鳥死'''在這'''。|C}}
#: {{zh-x|全部 都 '''@喺''' 嗮 '''@度'''。|全部都'''在這裡'''。|C}}
#: {{zh-x|你 喺度 睇 住 我 啲 嘢。|你'''在這'''看好我的東西。|C}}
====近義詞====
* {{qualifier|粵語}} {{zh-l|喺處}}、{{zh-l|響度|tr=-}}、{{zh-l|響處}}
* {{qualifier|潮州話}} {{zh-l|在塊}}
====派生詞彙====
{{col3|zh|唔喺度}}
===副詞===
{{head|zh|副詞}}
# {{lb|zh|粵語|通常接{{zh-l|緊|tr=-}}}} [[現在]];[[正在]]
#: {{zh-x|我 喺度 食 緊 飯。|我'''在'''吃飯。|C}}
#: {{zh-x|做 咩 啫 你,喺度?|你到底'''在'''幹嘛?<!-- {{qualifier|with {{zh-l|喺度|tr=-}} moved to the end of the sentence}}-->|C}}
#* {{quote-song|zh|artist={{w|陳慧嫻}}|title=《{{w|紅茶館_(歌曲)|紅茶館}}》|year=1992}}
#*: {{zh-q|欸{e1}!'''喺度''' 諗 '''緊''' 咩 呀?|欸!你'''在'''想些甚麽呀?}}
====近義詞====
{{zh-dial|正在}}
e5uxhgjz0m88x2kae5wvcpw3wrrtidl
黑輪
0
1429875
9752901
8303561
2026-05-05T13:57:46Z
Fglffer
55252
/* 漢語 */
9752901
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=黑轮}}
===詞源===
{{calque|zh|nan|烏輪|tr=o͘-lián}},衍生自{{der|zh|ja|-}} {{ja-r|御%田|お%でん}}。
===發音===
{{zh-pron
|m=hēilún
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# {{label|zh|臺灣}} [[關東煮]]
# {{label|zh|臺灣}} [[甜不辣]]
mzusig4tqgg8mrvcgkfadm3h28f0023
9752902
9752901
2026-05-05T13:58:14Z
Fglffer
55252
/* 漢語 */
9752902
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=黑轮}}
===詞源===
{{calque|zh|nan|烏輪|tr=o͘-lián}},衍生自{{der|zh|ja|-}} {{ja-r|御%田|お%でん}}。
===發音===
{{zh-pron
|m=hēilún
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# {{lb|zh|臺灣}} [[關東煮]]
# {{lb|zh|臺灣}} [[甜不辣]]
c2ei2f8xv063r38uyoduh2o9d4t6pbf
Module:Zh/data/dial-syn/鋸末
828
1469226
9752896
5898209
2026-05-05T13:48:46Z
Fglffer
55252
9752896
Scribunto
text/plain
local export = {}
export.list = {
["meaning"] = "sawdust",
["note"] = "GT - 通用臺灣話(無地區差異)",
["Classical"] = { "" },
["Formal"] = { "鋸末", "鋸屑", "木屑" },
["Taxonomic"] = { "" },
["Beijing"] = { "" },
["Beijing-PG"] = { "" },
["Beijing-MY"] = { "" },
["Beijing-HR"] = { "" },
["Beijing-YQ"] = { "" },
["Beijing-CP"] = { "" },
["Beijing-MTG"] = { "" },
["Beijing-FS"] = { "" },
["Taiwan"] = { "" },
["Tianjin-WQ"] = { "" },
["Langfang"] = { "" },
["Chengde"] = { "" },
["Ulan Hot"] = { "" },
["Tongliao"] = { "" },
["Chifeng"] = { "" },
["Hailar"] = { "" },
["Heihe"] = { "" },
["Nenjiang"] = { "" },
["Mohe"] = { "" },
["Qiqihar"] = { "" },
["Tailai"] = { "" },
["Jixian-HLJ"] = { "" },
["Lanxi-M"] = { "" },
["Boli"] = { "" },
["Jiayin"] = { "" },
["Muling"] = { "" },
["Dongning"] = { "" },
["Ning'an"] = { "" },
["Linkou"] = { "" },
["Zhaozhou"] = { "" },
["Zhaodong"] = { "" },
["Jixi-M"] = { "" },
["Mishan"] = { "" },
["Harbin"] = { "鋸末子" },
["Shangzhi"] = { "" },
["Yingchengzi"] = { "" },
["Jiamusi"] = { "" },
["Tongjiang-M"] = { "" },
["Baicheng"] = { "" },
["Da'an"] = { "" },
["Songyuan"] = { "" },
["Changchun"] = { "" },
["Yushu"] = { "" },
["Jilin"] = { "" },
["Siping"] = { "" },
["Liaoyuan"] = { "" },
["Dunhua"] = { "" },
["Hunchun"] = { "" },
["Baishan"] = { "" },
["Tonghua"] = { "" },
["Shenyang"] = { "" },
["Anshan"] = { "" },
["Tieling"] = { "" },
["Jinzhou"] = { "" },
["Malaysia-M"] = { "" },
["Singapore-M"] = { "" },
["Taz"] = { "" },
["Tianjin"] = { "" },
["Tianjin-JZ"] = { "" },
["Tianjin-BD"] = { "" },
["Tianjin-NH"] = { "" },
["Tianjin-HG"] = { "" },
["Tianjin-TG"] = { "" },
["Tianjin-DG"] = { "" },
["Tianjin-JN"] = { "" },
["Tianjin-DL"] = { "" },
["Tianjin-JH"] = { "" },
["Tianjin-XQ"] = { "" },
["Tianjin-BC"] = { "" },
["Tangshan"] = { "" },
["Qinhuangdao"] = { "" },
["Cangzhou"] = { "" },
["Xianxian"] = { "" },
["Xianxian-XY"] = { "" },
["Baoding"] = { "" },
["Dingxing"] = { "" },
["Xiong'an"] = { "" },
["Shijiazhuang"] = { "" },
["Xingtai"] = { "" },
["Hengshui"] = { "" },
["Lijin"] = { "" },
["Binzhou"] = { "" },
["Wudi"] = { "" },
["Weicheng"] = { "" },
["Fangzi"] = { "" },
["Changle-WF"] = { "" },
["Shouguang"] = { "" },
["Rizhao"] = { "" },
["Wulian"] = { "" },
["Jinan"] = { "鋸末" },
["Zhangqiu"] = { "" },
["Liaocheng"] = { "" },
["Dezhou"] = { "" },
["Tai'an"] = { "" },
["Xintai"] = { "" },
["Zibo"] = { "" },
["Zichuan"] = { "" },
["Boshan"] = { "" },
["Yinan"] = { "" },
["Dalian"] = { "" },
["Dandong"] = { "" },
["Yantai"] = { "" },
["Muping"] = { "" },
["Laizhou"] = { "" },
["Weihai"] = { "" },
["Rongcheng"] = { "" },
["Qingdao"] = { "" },
["Hanting"] = { "" },
["Changyi"] = { "" },
["Gaomi"] = { "" },
["Zhucheng"] = { "" },
["Anqiu"] = { "" },
["Linqu"] = { "" },
["Qingzhou"] = { "" },
["Yishui"] = { "" },
["Hulin-XL"] = { "" },
["Linjiang"] = { "" },
["Ji'an-M"] = { "" },
["Luoyang"] = { "鋸末兒" },
["Luoning"] = { "" },
["Sanmenxia"] = { "" },
["Lingbao"] = { "" },
["Luohe"] = { "" },
["Zhumadian"] = { "" },
["Biyang"] = { "" },
["Zhoukou"] = { "" },
["Dancheng"] = { "" },
["Xuchang"] = { "" },
["Changge"] = { "" },
["Pingdingshan"] = { "" },
["Lushan-M"] = { "" },
["Nanyang"] = { "" },
["Xixia"] = { "" },
["Dengzhou"] = { "" },
["Zaozhuang"] = { "" },
["Ningyang"] = { "" },
["Jining-M"] = { "" },
["Linyi"] = { "" },
["Heze"] = { "" },
["Daming"] = { "" },
["Yuncheng"] = { "" },
["Wenxi"] = { "" },
["Longxing"] = { "" },
["Yongji"] = { "" },
["Wanrong"] = { "" },
["Ronghe"] = { "" },
["Linfen"] = { "" },
["Jixian"] = { "" },
["Huozhou"] = { "" },
["Hongtong"] = { "" },
["Shangqiu"] = { "" },
["Yongcheng"] = { "" },
["Yuanyang"] = { "" },
["Zhengzhou"] = { "" },
["Kaifeng"] = { "" },
["Lankao"] = { "" },
["Changyuan"] = { "" },
["Xunxian"] = { "" },
["Puyang"] = { "" },
["Fanxian"] = { "" },
["Xinyang"] = { "" },
["Gushi"] = { "" },
["Shangluo"] = { "" },
["Luonan"] = { "" },
["Danfeng"] = { "" },
["Shangnan"] = { "" },
["Shanyang"] = { "" },
["Zhen'an"] = { "" },
["Hanbin"] = { "" },
["Hanbin-XH"] = { "" },
["Baihe"] = { "" },
["Baihe-MP"] = { "" },
["Pingli"] = { "" },
["Xunyang"] = { "" },
["Lueyang"] = { "" },
["Mianxian"] = { "" },
["Yangxian"] = { "" },
["Xi'an"] = { "鋸末子" },
["Weiyang"] = { "" },
["Baqiao"] = { "" },
["Yanliang"] = { "" },
["Lintong"] = { "" },
["Chang'an"] = { "" },
["Huyi"] = { "" },
["Gaoling"] = { "" },
["Zhouzhi"] = { "" },
["Lantian"] = { "" },
["Xianyang"] = { "" },
["Xingping"] = { "" },
["Wugong"] = { "" },
["Qianxian"] = { "" },
["Liquan"] = { "" },
["Jingyang"] = { "" },
["Sanyuan-M"] = { "" },
["Yongshou"] = { "" },
["Changwu"] = { "" },
["Tongchuan"] = { "" },
["Yaozhou"] = { "" },
["Yijun"] = { "" },
["Weinan"] = { "" },
["Weinan-HZ"] = { "" },
["Hancheng"] = { "" },
["Huayin"] = { "" },
["Tongguan"] = { "" },
["Dali-SX"] = { "" },
["Heyang"] = { "" },
["Chengcheng"] = { "" },
["Baishui"] = { "" },
["Pucheng-M"] = { "" },
["Fuping"] = { "" },
["Huanglong"] = { "" },
["Yichuan"] = { "" },
["Huangling"] = { "" },
["Luochuan"] = { "" },
["Fuxian"] = { "" },
["Dingbian"] = { "" },
["Baoji"] = { "" },
["Baoji-CC"] = { "" },
["Fengxiang"] = { "" },
["Qishan"] = { "" },
["Fufeng"] = { "" },
["Meixian-M"] = { "" },
["Taibai"] = { "" },
["Fengxian-SX"] = { "" },
["Qianyang"] = { "" },
["Longxian"] = { "" },
["Linyou"] = { "" },
["Tongxin"] = { "" },
["Yanchi"] = { "" },
["Guyuan"] = { "" },
["Xiji"] = { "" },
["Longde"] = { "" },
["Jingyuan"] = { "" },
["Tianshui"] = { "" },
["Xining"] = { "鋸末" },
["Menyuan"] = { "" },
["Yanqi"] = { "" },
["Xuzhou"] = { "鋸末", "鋸末兒" },
["Xuzhou-JW"] = { "" },
["Pizhou"] = { "" },
["Suining"] = { "" },
["Peixian"] = { "" },
["Xinyi-M"] = { "" },
["Fengxian-M"] = { "" },
["Suqian"] = { "" },
["Ganyu"] = { "" },
["Donghai"] = { "" },
["Fuyang"] = { "" },
["Bengbu"] = { "" },
["Suzhou-M"] = { "" },
["Huaibei"] = { "" },
["Bozhou"] = { "" },
["Guangde-QC"] = { "" },
["Qimen-AL-Jun"] = { "" },
["Anji-HN"] = { "" },
["Gansu-DG"] = { "" },
["Shaanxi-DG"] = { "" },
["Yinchuan"] = { "鋸末渣" },
["Wuzhong"] = { "" },
["Zhongwei"] = { "" },
["Bayanhot"] = { "" },
["Lanzhou"] = { "" },
["Jiuquan"] = { "" },
["Dunhuang"] = { "" },
["Shandan"] = { "" },
["Tianzhu"] = { "" },
["Hami"] = { "" },
["Changji"] = { "" },
["Ürümqi"] = { "鋸末子" },
["Dabancheng-XG"] = { "" },
["Midong-CSZ"] = { "" },
["Ürümqi-BFG"] = { "" },
["Jimsar"] = { "" },
["Chengdu"] = { "鋸末子", "鋸木麵" },
["Xindu"] = { "" },
["Xindu-XF"] = { "" },
["Huayang"] = { "" },
["Pidu"] = { "" },
["Wenjiang"] = { "" },
["Shuangliu"] = { "" },
["Xinjin"] = { "" },
["Jintang"] = { "" },
["Pengzhou"] = { "" },
["Dujiangyan"] = { "" },
["Chongzhou"] = { "" },
["Dayi"] = { "" },
["Pujiang-M"] = { "" },
["Qionglai"] = { "" },
["Jianyang-M"] = { "" },
["Xiaojin"] = { "" },
["Jinchuan"] = { "" },
["Songpan"] = { "" },
["Maoxian"] = { "" },
["Lixian"] = { "" },
["Wenchuan"] = { "" },
["Deyang"] = { "" },
["Luojiang"] = { "" },
["Mianzhu"] = { "" },
["Shifang"] = { "" },
["Guanghan"] = { "" },
["Zhongjiang"] = { "" },
["Ziyang-SC"] = { "" },
["Anyue"] = { "" },
["Lezhi"] = { "" },
["Mianyang"] = { "" },
["Anzhou"] = { "" },
["Zitong"] = { "" },
["Jiangyou"] = { "" },
["Jiangyou-ZM"] = { "" },
["Pingwu"] = { "" },
["Beichuan"] = { "" },
["Yanting"] = { "" },
["Santai"] = { "" },
["Guangyuan"] = { "" },
["Zhaohua"] = { "" },
["Cangxi"] = { "" },
["Jiange"] = { "" },
["Meishan"] = { "" },
["Pengshan"] = { "" },
["Danling"] = { "" },
["Hongya"] = { "" },
["Qingshen"] = { "" },
["Renshou"] = { "" },
["Luzhou"] = { "" },
["Naxi"] = { "" },
["Luxian"] = { "" },
["Xuyong"] = { "" },
["Gulin"] = { "" },
["Hejiang"] = { "" },
["Yibin"] = { "" },
["Nanxi"] = { "" },
["Pingshan-M"] = { "" },
["Gaoxian"] = { "" },
["Changning-M"] = { "" },
["Gongxian"] = { "" },
["Xingwen-GS"] = { "" },
["Xingwen-BWS"] = { "" },
["Jiang'an"] = { "" },
["Junlian"] = { "" },
["Leshan"] = { "" },
["Jiajiang"] = { "" },
["Emeishan"] = { "" },
["Ebian"] = { "" },
["Qianwei"] = { "" },
["Mabian"] = { "" },
["Jingyan"] = { "" },
["Neijiang"] = { "" },
["Zizhong"] = { "" },
["Weiyuan"] = { "" },
["Longchang"] = { "" },
["Suining-SC"] = { "" },
["Pengxi"] = { "" },
["Shehong"] = { "" },
["Guang'an"] = { "" },
["Yuechi"] = { "" },
["Wusheng"] = { "" },
["Linshui"] = { "" },
["Nanchong"] = { "" },
["Nanbu"] = { "" },
["Langzhong"] = { "" },
["Yilong"] = { "" },
["Yingshan"] = { "" },
["Peng'an"] = { "" },
["Dazhou"] = { "" },
["Dazhu"] = { "" },
["Kaijiang"] = { "" },
["Wanyuan"] = { "" },
["Xuanhan"] = { "" },
["Bazhong"] = { "" },
["Tongjiang"] = { "" },
["Nanjiang"] = { "" },
["Hanyuan"] = { "" },
["Xichang"] = { "" },
["Zigong"] = { "" },
["Fushun"] = { "" },
["Rongxian-M"] = { "" },
["Muli"] = { "" },
["Leibo"] = { "" },
["Chongqing"] = { "" },
["Chongqing-JB"] = { "" },
["Chongqing-JLP"] = { "" },
["Chongqing-DDK"] = { "" },
["Chongqing-SPB"] = { "" },
["Chongqing-BN"] = { "" },
["Chongqing-NA"] = { "" },
["Chongqing-QIJ"] = { "" },
["Chongqing-QJ-WS"] = { "" },
["Chongqing-YB"] = { "" },
["Chongqing-BB"] = { "" },
["Chongqing-NC"] = { "" },
["Chongqing-WL"] = { "" },
["Chongqing-DZ"] = { "" },
["Chongqing-RC"] = { "" },
["Chongqing-YC"] = { "" },
["Chongqing-BS"] = { "" },
["Chongqing-TL"] = { "" },
["Chongqing-TN"] = { "" },
["Chongqing-HC"] = { "" },
["Chongqing-CS"] = { "" },
["Chongqing-FL"] = { "" },
["Chongqing-JJ"] = { "" },
["Chongqing-WZ"] = { "" },
["Chongqing-SZ"] = { "" },
["Chongqing-KZ"] = { "" },
["Chongqing-CK"] = { "" },
["Chongqing-DJ"] = { "" },
["Chongqing-LP"] = { "" },
["Chongqing-FD"] = { "" },
["Chongqing-ZX"] = { "" },
["Chongqing-QJ"] = { "" },
["Chongqing-PS"] = { "" },
["Chongqing-YY"] = { "" },
["Chongqing-XS"] = { "" },
["Chongqing-YNY"] = { "" },
["Chongqing-WX"] = { "" },
["Chongqing-FJ"] = { "" },
["Chongqing-WS"] = { "" },
["Wuhan"] = { "鋸末子" },
["Jiangxia"] = { "" },
["Caidian"] = { "" },
["Xinzhou-HB"] = { "" },
["Huangpi"] = { "" },
["Hanchuan"] = { "" },
["Suizhou"] = { "" },
["Suixian"] = { "" },
["Yichang"] = { "" },
["Dangyang"] = { "" },
["Zhijiang"] = { "" },
["Yidu"] = { "" },
["Changyang"] = { "" },
["Xingshan"] = { "" },
["Zigui"] = { "" },
["Wufeng"] = { "" },
["Enshi"] = { "" },
["Hefeng"] = { "" },
["Badong"] = { "" },
["Xuan'en"] = { "" },
["Laifeng"] = { "" },
["Lichuan-M"] = { "" },
["Jianshi"] = { "" },
["Xianfeng"] = { "" },
["Xiangyang"] = { "" },
["Laohekou"] = { "" },
["Baokang"] = { "" },
["Nanzhang"] = { "" },
["Zaoyang"] = { "" },
["Yicheng"] = { "" },
["Gucheng"] = { "" },
["Jingzhou"] = { "" },
["Jingzhou-SS"] = { "" },
["Jiangling"] = { "" },
["Shishou"] = { "" },
["Gong'an"] = { "" },
["Songzi"] = { "" },
["Jingmen"] = { "" },
["Zhongxiang"] = { "" },
["Jingshan"] = { "" },
["Tianmen"] = { "" },
["Xiantao"] = { "" },
["Qianjiang"] = { "" },
["Shennongjia"] = { "" },
["Shiyan"] = { "" },
["Zhuxi"] = { "" },
["Zhushan"] = { "" },
["Yunxi"] = { "" },
["Yunyang"] = { "" },
["Danjiangkou"] = { "" },
["Fangxian"] = { "" },
["Lhasa"] = { "" },
["Guiyang"] = { "鋸木麵" },
["Huaxi"] = { "" },
["Zunyi"] = { "" },
["Tongzi"] = { "" },
["Renhuai"] = { "" },
["Bijie"] = { "" },
["Jinsha-M"] = { "" },
["Dafang"] = { "" },
["Weining"] = { "" },
["Liupanshui"] = { "" },
["Liuzhi"] = { "" },
["Xingyi"] = { "" },
["Anshun"] = { "" },
["Duyun"] = { "" },
["Pingtang"] = { "" },
["Fuquan"] = { "" },
["Weng'an"] = { "" },
["Kaili"] = { "" },
["Liping-GZ"] = { "" },
["Zhenyuan"] = { "" },
["Tongren"] = { "" },
["Sinan"] = { "" },
["Yuping"] = { "" },
["Liping"] = { "" },
["Zhaotong"] = { "" },
["Baoshan-M"] = { "" },
["Dali"] = { "" },
["Kunming"] = { "" },
["Qujing"] = { "" },
["Wenshan"] = { "" },
["Mengzi"] = { "" },
["Lancang"] = { "" },
["Weixi"] = { "" },
["Pu'er"] = { "" },
["Lincang"] = { "" },
["Guilin"] = { "" },
["Lingui"] = { "" },
["Guanyang"] = { "" },
["Lipu"] = { "" },
["Pingle"] = { "" },
["Yangshuo"] = { "" },
["Liuzhou"] = { "木糠" },
["Liuzhou-LR"] = { "" },
["Luzhai"] = { "" },
["Sanjiang-DZ"] = { "" },
["Nanning-M"] = { "" },
["Yongning-FJ"] = { "" },
["Wuming"] = { "" },
["Wuming-FC"] = { "" },
["Binyang-M"] = { "" },
["Shanglin"] = { "" },
["Yizhou"] = { "" },
["Jinchengjiang"] = { "" },
["Luocheng"] = { "" },
["Fengshan"] = { "" },
["Tianlin-LP"] = { "" },
["Tianlin-PT"] = { "" },
["Leye"] = { "" },
["Lingyun"] = { "" },
["Longlin"] = { "" },
["Xilin"] = { "" },
["Xiangzhou-NL"] = { "" },
["Qinzhou-M"] = { "" },
["Jishou"] = { "" },
["Changde"] = { "" },
["Zhangjiajie"] = { "" },
["Yongzhou"] = { "" },
["Chenzhou"] = { "" },
["Huaihua"] = { "" },
["Huitong"] = { "" },
["Xiangtan-JN"] = { "" },
["Ganzhou-M"] = { "" },
["Shiquan"] = { "" },
["Ziyang"] = { "" },
["Ningshan"] = { "" },
["Langao"] = { "" },
["Zhenping"] = { "" },
["Hanzhong"] = { "" },
["Nanzheng"] = { "" },
["Ningqiang"] = { "" },
["Liuba"] = { "" },
["Chenggu"] = { "" },
["Foping"] = { "" },
["Xixiang"] = { "" },
["Zhenba"] = { "" },
["Anji-HB"] = { "" },
["Kokang"] = { "" },
["Dagudi"] = { "" },
["Reshuitang"] = { "" },
["Mae Salong"] = { "" },
["Mae Sai"] = { "" },
["Oudomxay"] = { "" },
["Siantar"] = { "" },
["Nanjing"] = { "鋸木屑兒" },
["Pukou"] = { "" },
["Luhe-M"] = { "" },
["Lishui-M"] = { "" },
["Yangzhou"] = { "鋸屑", "鋸屑子" },
["Jiangdu"] = { "" },
["Baoying"] = { "" },
["Gaoyou"] = { "" },
["Yizheng"] = { "" },
["Taizhou-M"] = { "" },
["Taixing"] = { "" },
["Jiangyan"] = { "" },
["Jingjiang-DX"] = { "" },
["Zhenjiang"] = { "" },
["Jurong"] = { "" },
["Yangzhong"] = { "" },
["Lianyungang"] = { "" },
["Haizhou"] = { "" },
["Guanyun"] = { "" },
["Guannan"] = { "" },
["Huai'an"] = { "" },
["Huai'an-HA"] = { "" },
["Huaiyin"] = { "" },
["Hongze"] = { "" },
["Lianshui"] = { "" },
["Xuyi"] = { "" },
["Jinhu"] = { "" },
["Xinghua"] = { "" },
["Nantong"] = { "" },
["Rugao"] = { "" },
["Rudong"] = { "" },
["Hai'an"] = { "" },
["Yancheng"] = { "" },
["Dongtai"] = { "" },
["Binhai"] = { "" },
["Sheyang"] = { "" },
["Dafeng"] = { "" },
["Funing"] = { "" },
["Jianhu"] = { "" },
["Xiangshui"] = { "" },
["Shuyang"] = { "" },
["Sihong"] = { "" },
["Siyang"] = { "" },
["Anqing"] = { "" },
["Tongcheng"] = { "" },
["Zongyang"] = { "" },
["Chizhou"] = { "" },
["Qingyang"] = { "" },
["Wuhu"] = { "" },
["Wuhu-QS"] = { "" },
["Wanzhi"] = { "" },
["Jinghu"] = { "" },
["Fanchang"] = { "" },
["Wuwei"] = { "" },
["Hanshan"] = { "" },
["Hexian"] = { "" },
["Ma'anshan"] = { "" },
["Dangtu"] = { "" },
["Xuancheng"] = { "" },
["Tongling"] = { "" },
["Hefei"] = { "" },
["Feidong"] = { "" },
["Feixi"] = { "" },
["Chaohu"] = { "" },
["Lujiang"] = { "" },
["Changfeng"] = { "" },
["Huainan"] = { "" },
["Lu'an"] = { "" },
["Jin'an-QSH"] = { "" },
["Shucheng"] = { "" },
["Huoshan"] = { "" },
["Chuzhou"] = { "" },
["Lai'an"] = { "" },
["Quanjiao"] = { "" },
["Mingguang"] = { "" },
["Tianchang"] = { "" },
["Echeng"] = { "" },
["Huangshi"] = { "" },
["Huanggang"] = { "" },
["Hong'an"] = { "" },
["Macheng"] = { "" },
["Luotian"] = { "" },
["Yingshan-HB"] = { "" },
["Xishui"] = { "" },
["Huangmei"] = { "" },
["Wuxue"] = { "" },
["Qichun"] = { "" },
["Xiaogan"] = { "" },
["Anlu"] = { "" },
["Yingcheng"] = { "" },
["Yunmeng"] = { "" },
["Dawu"] = { "" },
["Guangshui"] = { "" },
["Zhashui"] = { "" },
["Jiujiang"] = { "" },
["Ruichang"] = { "" },
["Anji-AQ"] = { "" },
["Najiahu"] = { "" },
["Dianbai-Jun"] = { "" },
["Ningguo-GK"] = { "" },
["Langxi"] = { "" },
["Changle-QJ"] = { "" },
["Yanping"] = { "" },
["Jiangshan-M-NBD"] = { "" },
["Kaihua-M-HB"] = { "" },
["Yushan-M-HY"] = { "" },
["Juexi"] = { "" },
["Taiyuan"] = { "鋸末" },
["Jiancaoping"] = { "" },
["Jinyuan"] = { "" },
["Qingxu"] = { "" },
["Loufan"] = { "" },
["Taigu"] = { "" },
["Pingyao"] = { "" },
["Heshun"] = { "" },
["Qixian"] = { "" },
["Yangyuan"] = { "" },
["Datong"] = { "" },
["Yunzhou"] = { "" },
["Yunzhou-XCT"] = { "" },
["Tianzhen"] = { "" },
["Guangling"] = { "" },
["Shuozhou"] = { "" },
["Shanyin"] = { "" },
["Pinglu"] = { "" },
["Pingding"] = { "" },
["Xinzhou"] = { "鋸木麵子" },
["Wutai"] = { "" },
["Daixian"] = { "" },
["Wuzhai"] = { "" },
["Lishi"] = { "" },
["Shilou"] = { "" },
["Fenyang"] = { "" },
["Lanxian"] = { "" },
["Linxian"] = { "" },
["Wenshui"] = { "" },
["Xiaoyi"] = { "" },
["Fenxi"] = { "" },
["Xixian"] = { "" },
["Changzhi"] = { "" },
["Tunliu"] = { "" },
["Baochang"] = { "" },
["Linhe"] = { "" },
["Pingshun"] = { "" },
["Zhangzi"] = { "" },
["Qinxian"] = { "" },
["Jincheng"] = { "" },
["Lingchuan"] = { "" },
["Yangcheng"] = { "" },
["Gaoping"] = { "" },
["Jining"] = { "" },
["Liangcheng"] = { "" },
["Hohhot"] = { "" },
["Baotou"] = { "" },
["Dongsheng"] = { "" },
["Haibowan"] = { "" },
["Erenhot"] = { "" },
["Pingshan"] = { "" },
["Zhangjiakou"] = { "" },
["Chongli"] = { "" },
["Handan"] = { "" },
["Linzhang"] = { "" },
["Anyang"] = { "" },
["Linzhou"] = { "" },
["Hebi"] = { "" },
["Xinxiang"] = { "" },
["Jiaozuo"] = { "" },
["Qinyang"] = { "" },
["Wenxian"] = { "" },
["Wuzhi"] = { "" },
["Jiyuan"] = { "" },
["Suide"] = { "" },
["Zizhou"] = { "" },
["Mizhi"] = { "" },
["Jiaxian"] = { "" },
["Wubu"] = { "" },
["Shenmu"] = { "" },
["Fugu"] = { "" },
["Yulin-J"] = { "" },
["Hengshan-J"] = { "" },
["Jingbian"] = { "" },
["Yan'an"] = { "" },
["Ansai"] = { "" },
["Ganquan"] = { "" },
["Zhidan"] = { "" },
["Wuqi-J"] = { "" },
["Qingjian"] = { "" },
["Zichang"] = { "" },
["Yanchuan"] = { "" },
["Yanchang"] = { "" },
["Shanghai"] = { "木屑" },
["Yangpu"] = { "" },
["Xinzhuang"] = { "" },
["Zhenru"] = { "" },
["Songjiang"] = { "" },
["Chuansha"] = { "" },
["Nanhui"] = { "" },
["Zhoupu"] = { "" },
["Huinan"] = { "" },
["Fengxian"] = { "" },
["Jinshan"] = { "" },
["Qingpu"] = { "" },
["Jiading"] = { "" },
["Baoshan-SCD"] = { "" },
["Baoshan-LD"] = { "" },
["Baoshan-YP"] = { "" },
["Chongming"] = { "木屑" },
["Suzhou"] = { "木屑" },
["Shengpu"] = { "" },
["Xishan"] = { "" },
["Wujiang-SL"] = { "" },
["Wujiang-LL"] = { "" },
["Wujiang-SZ"] = { "" },
["Wuxi"] = { "" },
["Changshu"] = { "" },
["Kunshan"] = { "" },
["Taicang"] = { "" },
["Zhangjiagang"] = { "" },
["Tongzhou"] = { "" },
["Qidong"] = { "" },
["Qidong-LS"] = { "" },
["Haimen"] = { "" },
["Haimen-SJ"] = { "" },
["Rudong-W"] = { "" },
["Jiaxing"] = { "" },
["Jiashan"] = { "" },
["Pinghu"] = { "" },
["Haining-YG"] = { "" },
["Haining-XS"] = { "" },
["Tongxiang"] = { "" },
["Haiyan"] = { "" },
["Changzhou"] = { "" },
["Liyang"] = { "" },
["Jintan"] = { "" },
["Yixing"] = { "" },
["Danyang"] = { "木屑" },
["Danyang-TJQ"] = { "" },
["Jingjiang"] = { "" },
["Jiangyin"] = { "" },
["Gaochun"] = { "" },
["Gaochun-ZB"] = { "" },
["Huzhou"] = { "" },
["Huzhou-SL"] = { "" },
["Changxing"] = { "" },
["Anji"] = { "" },
["Anji-XF"] = { "" },
["Deqing-W"] = { "" },
["Deqing-GT"] = { "" },
["Hangzhou"] = { "" },
["Yuhang"] = { "" },
["Lin'an"] = { "" },
["Lin'an-CH"] = { "" },
["Lin'an-YQ"] = { "" },
["Fuyang-W"] = { "" },
["Fuyang-XD"] = { "" },
["Xiaoshan"] = { "" },
["Tonglu"] = { "" },
["Fenshui-WS"] = { "" },
["Shaoxing"] = { "" },
["Shaoxing-KQ"] = { "" },
["Shangyu"] = { "" },
["Zhuji"] = { "" },
["Zhuji-WJJ"] = { "" },
["Shengzhou"] = { "" },
["Shengzhou-CR"] = { "" },
["Shengzhou-TP"] = { "" },
["Xinchang"] = { "" },
["Ningbo"] = { "鋸屑" },
["Zhenhai"] = { "" },
["Fenghua"] = { "" },
["Beilun"] = { "" },
["Yinzhou"] = { "" },
["Yuyao"] = { "" },
["Cixi"] = { "" },
["Xiangshan"] = { "" },
["Ninghai"] = { "" },
["Zhoushan"] = { "" },
["Dinghai"] = { "" },
["Daishan"] = { "" },
["Shengsi"] = { "" },
["Jiaojiang"] = { "" },
["Huangyan"] = { "" },
["Tiantai"] = { "" },
["Xianju"] = { "" },
["Sanmen"] = { "" },
["Linhai"] = { "" },
["Wenling"] = { "" },
["Yuhuan"] = { "" },
["Yuhuan-DMY"] = { "" },
["Yuhuan-CM"] = { "" },
["Wenzhou"] = { "鋸末" },
["Yueqing"] = { "" },
["Yongjia"] = { "" },
["Yongjia-FL"] = { "" },
["Rui'an"] = { "" },
["Longgang"] = { "" },
["Dongtou"] = { "" },
["Cangnan-JX"] = { "" },
["Pingyang"] = { "" },
["Taishun"] = { "" },
["Wencheng"] = { "" },
["Lishui"] = { "" },
["Qingtian"] = { "" },
["Jinyun"] = { "" },
["Xuanping"] = { "" },
["Songyang-XP"] = { "" },
["Songyang-GS"] = { "" },
["Yunhe"] = { "" },
["Jingning"] = { "" },
["Qingyuan-W"] = { "" },
["Longquan"] = { "" },
["Quzhou"] = { "" },
["Qujiang-DZ"] = { "" },
["Suichang"] = { "" },
["Jiangshan"] = { "" },
["Changshan"] = { "" },
["Kaihua"] = { "" },
["Longyou"] = { "" },
["Jinhua"] = { "鋸末" },
["Tangxi"] = { "" },
["Yiwu"] = { "" },
["Yongkang"] = { "" },
["Pujiang"] = { "" },
["Dongyang"] = { "" },
["Pan'an"] = { "" },
["Wuyi"] = { "" },
["Lanxi"] = { "" },
["Shangrao"] = { "" },
["Shangrao-Rail"] = { "" },
["Guangfeng"] = { "" },
["Yushan"] = { "" },
["Xuancheng-YC"] = { "" },
["Xuancheng-JP"] = { "" },
["Wuhu-LL"] = { "" },
["Tongling-W"] = { "" },
["Nanling"] = { "" },
["Yi'an-WS"] = { "" },
["Huangshan"] = { "" },
["Jingxian"] = { "" },
["Jingxian-ZJ"] = { "" },
["Shitai-JZ"] = { "" },
["Pucheng"] = { "" },
["Changsha"] = { "鋸木屑", "鋸木灰" },
["Yiyang-X"] = { "" },
["Liuyang-YA"] = { "" },
["Xiangtan"] = { "" },
["Miluo-CL"] = { "" },
["Xiangxiang"] = { "" },
["Xiangxiang-MQ"] = { "" },
["Loudi"] = { "" },
["Shuangfeng"] = { "" },
["Xinhua"] = { "" },
["Lianyuan"] = { "" },
["Shaoyang"] = { "" },
["Lengshuitan"] = { "" },
["Zhuzhou"] = { "" },
["Longhui"] = { "" },
["Suining-X"] = { "" },
["Dongkou-HQ"] = { "" },
["Wugang"] = { "" },
["Hengyang"] = { "" },
["Hengshan"] = { "" },
["Hengshan-BG"] = { "" },
["Qiyang"] = { "" },
["Quanzhou-X"] = { "" },
["Guanyang-X"] = { "" },
["Qinglong-CL"] = { "" },
["Nanchong-CL"] = { "" },
["Nanchang"] = { "鋸屑" },
["Xinjian-WC"] = { "" },
["Nanchang-TC"] = { "" },
["Anyi"] = { "" },
["Hukou"] = { "" },
["Lushan"] = { "" },
["Yongxiu"] = { "" },
["Gongqingcheng-JY"] = { "" },
["Xiushui"] = { "" },
["Pengze"] = { "" },
["Duchang"] = { "" },
["Duchang-TT"] = { "" },
["Duchang-YF"] = { "" },
["Wuning-QK"] = { "" },
["Poyang"] = { "" },
["Poyang-MT"] = { "" },
["Yugan"] = { "" },
["Wannian"] = { "" },
["Yiyang"] = { "" },
["Hengfeng"] = { "" },
["Yanshan-HK"] = { "" },
["Yanshan-YP"] = { "" },
["Shangrao-SX"] = { "" },
["Shangrao-HM"] = { "" },
["Jingdezhen"] = { "" },
["Leping"] = { "" },
["Yichun"] = { "" },
["Yifeng"] = { "" },
["Gao'an"] = { "" },
["Fengxin"] = { "" },
["Shanggao"] = { "" },
["Wanzai"] = { "" },
["Fengcheng"] = { "" },
["Fengcheng-ST"] = { "" },
["Xinyu"] = { "" },
["Fuzhou-G"] = { "" },
["Linchuan-SDD"] = { "" },
["Dongxiang"] = { "" },
["Nancheng"] = { "" },
["Nanfeng"] = { "" },
["Yihuang"] = { "" },
["Lichuan"] = { "鋸屑" },
["Chongren"] = { "" },
["Pingxiang"] = { "鋸屑" },
["Lianhua"] = { "" },
["Luxi"] = { "" },
["Ji'an"] = { "" },
["Jishui-LT"] = { "" },
["Yongfeng"] = { "" },
["Taihe"] = { "" },
["Xiajiang"] = { "" },
["Yongxin"] = { "" },
["Yingtan"] = { "" },
["Yujiang"] = { "" },
["Guixi"] = { "" },
["Susong"] = { "" },
["Susong-HT"] = { "" },
["Susong-GL"] = { "" },
["Wangjiang"] = { "" },
["Qianshan"] = { "" },
["Huaining"] = { "" },
["Huaining-SP"] = { "" },
["Yuexi"] = { "" },
["Taihu"] = { "" },
["Dongzhi"] = { "" },
["Shitai"] = { "" },
["Yangxin"] = { "" },
["Yangxin-GH"] = { "" },
["Daye"] = { "" },
["Xianning"] = { "" },
["Xianning-MQ"] = { "" },
["Jiayu"] = { "" },
["Chongyang"] = { "" },
["Chibi"] = { "" },
["Tongshan"] = { "" },
["Tongcheng-G"] = { "" },
["Jianli"] = { "" },
["Yueyang"] = { "" },
["Yueyang-BX"] = { "" },
["Linxiang"] = { "" },
["Pingjiang-XJ"] = { "" },
["Pingjiang-NJ"] = { "" },
["Liuyang"] = { "" },
["Liuyang-DY"] = { "" },
["Liuyang-FY"] = { "" },
["Liling-BTT"] = { "" },
["Liling-BS"] = { "" },
["Youxian"] = { "" },
["Chaling"] = { "" },
["Changning"] = { "" },
["Changning-TS"] = { "" },
["Leiyang"] = { "" },
["Anren"] = { "" },
["Zixing-XN"] = { "" },
["Longhui-LDZ"] = { "" },
["Dongkou"] = { "" },
["Dongkou-SJ"] = { "" },
["Jianning"] = { "" },
["Taining"] = { "" },
["Hanbin-NT"] = { "" },
["Jinxian"] = { "" },
["Jinxi"] = { "" },
["Le'an"] = { "" },
["Guangchang"] = { "" },
["Anfu"] = { "" },
["Suichuan"] = { "" },
["Wan'an"] = { "" },
["Jing'an"] = { "" },
["Zhangshu"] = { "" },
["Xingan"] = { "" },
["Fenyi"] = { "" },
["Meixian"] = { "鋸屎", "木糠" },
["Xingning"] = { "" },
["Dabu-XH"] = { "" },
["Dabu-GB"] = { "" },
["Fengshun-TK"] = { "" },
["Fengshun-LH"] = { "" },
["Fengshun-HJ"] = { "" },
["Fengshun-FL"] = { "" },
["Fengshun-PT"] = { "" },
["Huizhou"] = { "" },
["Huizhou-SK"] = { "" },
["Huizhou-HL"] = { "" },
["Huiyang"] = { "" },
["Huidong-PS"] = { "" },
["Huidong-DL"] = { "" },
["Dongguan-H"] = { "" },
["Longmen-PL"] = { "" },
["Longmen-LX"] = { "" },
["Boluo"] = { "" },
["Shenzhen-H"] = { "" },
["Shenzhen-H-LH"] = { "" },
["Zengcheng-ZG"] = { "" },
["Zhongshan-WGS"] = { "" },
["Zhongshan-NLHS"] = { "" },
["Wuhua-SZ"] = { "" },
["Wuhua-HC"] = { "" },
["Wuhua-CB"] = { "" },
["Wuhua-MY"] = { "" },
["Wuhua-ML"] = { "" },
["Heyuan"] = { "" },
["Zijin"] = { "" },
["Zijin-GZ"] = { "" },
["Longchuan-TC"] = { "" },
["Longchuan-SD"] = { "" },
["Heping-LZ"] = { "" },
["Lianping"] = { "" },
["Lianping-ZX"] = { "" },
["Lianping-LJ"] = { "" },
["Wengyuan"] = { "" },
["Nanxiong-ZJ"] = { "木屎" },
["Qujiang"] = { "" },
["Xinfeng-MT"] = { "" },
["Xinfeng-DX"] = { "" },
["Xiaosanjiang"] = { "" },
["Liannan"] = { "" },
["Conghua-H"] = { "" },
["Jiexi"] = { "" },
["Luhe"] = { "" },
["Raoping-XF"] = { "" },
["Xiuzhuan"] = { "" },
["Pinghe-JF"] = { "" },
["Nanjing-ML"] = { "" },
["Nanjing-BL"] = { "" },
["Changting"] = { "" },
["Shanghang"] = { "" },
["Yongding"] = { "" },
["Yongding-XY"] = { "" },
["Yongding-GB"] = { "" },
["Yongding-HK"] = { "" },
["Wuping"] = { "" },
["Wuping-ZS"] = { "" },
["Wuping-Y"] = { "" },
["Wuping-WD"] = { "" },
["Pingyu"] = { "" },
["Liancheng"] = { "" },
["Liancheng-PT"] = { "" },
["Liancheng-JX"] = { "" },
["Liancheng-ZB"] = { "" },
["Liancheng-LY"] = { "" },
["Ninghua"] = { "" },
["Qingliu"] = { "" },
["Yudu"] = { "" },
["Ningdu"] = { "" },
["Ruijin"] = { "" },
["Shicheng"] = { "" },
["Shangyou"] = { "" },
["Sandu"] = { "" },
["Ganzhou-PL"] = { "" },
["Nankang"] = { "" },
["Dayu"] = { "" },
["Quannan"] = { "" },
["Dingnan"] = { "" },
["Longnan"] = { "" },
["Xunwu"] = { "" },
["Anyuan"] = { "" },
["Huichang"] = { "" },
["Chongyi"] = { "" },
["Xingguo"] = { "" },
["Yunhe-JST"] = { "" },
["Tonggu"] = { "" },
["Fengxin-ZX"] = { "" },
["Taoyuan"] = { "" },
["Miaoli"] = { "鋸屑", "鋸屎" },
["Zaoqiao"] = { "" },
["Touwu"] = { "" },
["Nanzhuang"] = { "" },
["Shitan"] = { "" },
["Sanwan"] = { "" },
["Toufen"] = { "" },
["Gongguan"] = { "" },
["Zhuolan-SX"] = { "" },
["Liudui"] = { "鋸屑", "鋸屎" },
["Wuluo"] = { "" },
["Meinong"] = { "" },
["Shanlin"] = { "" },
["Hsinchu"] = { "鋸屑", "鋸屎" },
["Dongshi"] = { "鋸屑" },
["Raoping"] = { "鋸屑", "鋸屎" },
["Zhuolan-RP"] = { "" },
["Yunlin"] = { "鋸屑", "鋸屎" },
["Guoxing"] = { "" },
["Hong Kong-H"] = { "" },
["Tangkou"] = { "" },
["Sanjia"] = { "" },
["Sihe"] = { "" },
["Qianpai"] = { "" },
["Xindong"] = { "" },
["Shalang"] = { "" },
["Xin'an"] = { "" },
["Shijiao"] = { "" },
["Qingping"] = { "" },
["Xihe"] = { "" },
["Fumian-XS"] = { "" },
["Luchuan-LC"] = { "" },
["Luchuan-DQ"] = { "" },
["Luchuan-SH"] = { "" },
["Bobai-SH"] = { "" },
["Bobai-LT"] = { "" },
["Bobai-LP"] = { "" },
["Bobai-LJ"] = { "" },
["Bobai-CT"] = { "" },
["Tang'an"] = { "" },
["Beiliu-GH"] = { "" },
["Beiliu-MM"] = { "" },
["Xingye-GF"] = { "" },
["Rongxian-XD"] = { "" },
["Mashan-PL"] = { "" },
["Binyang-WL"] = { "" },
["Hengxian-XY"] = { "" },
["Lingui-H-XJ"] = { "" },
["Lipu-SDT"] = { "" },
["Lipu-DSG"] = { "" },
["Pingle-H"] = { "" },
["Yangshuo-JB"] = { "" },
["Tianlin-GL"] = { "" },
["Qinzhou-H"] = { "" },
["Guidong"] = { "" },
["Rongchang-PL"] = { "" },
["Chengdu-H-LT"] = { "" },
["Longquanyi-H-SL"] = { "" },
["Qingbaijiang-H-LW"] = { "" },
["Xindu-H-SBT"] = { "" },
["Xindu-H-HXC"] = { "" },
["Xindu-H-XD"] = { "" },
["Weiyuan-H"] = { "" },
["Yilong-H"] = { "" },
["Xichang-H"] = { "" },
["Sabah-B"] = { "" },
["Sabah-L"] = { "" },
["Sabah-HY"] = { "" },
["Sabah-HP"] = { "" },
["Kuala Lumpur-H-HY"] = { "" },
["Kuala Lumpur-H"] = { "" },
["Senai"] = { "" },
["Senai-JX"] = { "" },
["Kuching"] = { "" },
["Sungai Tapang"] = { "" },
["Singkawang"] = { "" },
["Pontianak-MX"] = { "" },
["Mempawah"] = { "" },
["Metal"] = { "" },
["Singapore-MX"] = { "" },
["Singapore-DB"] = { "" },
["Belait-H"] = { "" },
["Bangkok-MX"] = { "" },
["Bangkok-FS"] = { "" },
["Bangkok-JX"] = { "" },
["Yangon-H"] = { "" },
["Ho Chi Minh City-H"] = { "" },
["Jixi"] = { "" },
["Shexian"] = { "" },
["Shexian-XG"] = { "" },
["Shexian-DGY"] = { "" },
["Tunxi"] = { "" },
["Huizhou-HZ"] = { "" },
["Xiuning"] = { "" },
["Yixian"] = { "" },
["Qimen"] = { "" },
["Qimen-AL-Min"] = { "" },
["Wuyuan"] = { "" },
["Fuliang"] = { "" },
["Dexing"] = { "" },
["Jingde"] = { "" },
["Zhanda"] = { "" },
["Chun'an"] = { "" },
["Sui'an"] = { "" },
["Jiande"] = { "" },
["Shouchang"] = { "" },
["Guangzhou"] = { "木糠" },
["Hong Kong"] = { "木糠" },
["HK Weitou"] = { "" },
["Kam Tin"] = { "" },
["Shek Pik"] = { "" },
["Ting Kok"] = { "" },
["Tung Ping Chau"] = { "" },
["Macau"] = { "" },
["Panyu"] = { "" },
["Huadu"] = { "" },
["Conghua"] = { "" },
["Zengcheng"] = { "" },
["Foshan"] = { "" },
["Nanhai"] = { "" },
["Shunde"] = { "" },
["Sanshui"] = { "" },
["Gaoming"] = { "" },
["Zhongshan"] = { "" },
["Zhongshan-HC"] = { "" },
["Zhongshan-NL"] = { "" },
["Zhongshan-CKM"] = { "" },
["Zhongshan-XL"] = { "" },
["Zhongshan-DS"] = { "" },
["Zhongshan-TB"] = { "" },
["Zhongshan-HL"] = { "" },
["Zhongshan-DF"] = { "" },
["Zhongshan-NT"] = { "" },
["Zhongshan-FS"] = { "" },
["Zhongshan-SL"] = { "" },
["Zhongshan-GK"] = { "" },
["Zhongshan-HP"] = { "" },
["Zhongshan-SJ"] = { "" },
["Zhongshan-LW"] = { "" },
["Zhongshan-MZ"] = { "" },
["Zhongshan-GZ"] = { "" },
["Zhongshan-BF"] = { "" },
["Zhongshan-TZ"] = { "" },
["Zhuhai"] = { "" },
["Doumen-T"] = { "" },
["Doumen-S"] = { "" },
["Jiangmen"] = { "" },
["Xinhui"] = { "" },
["Taishan"] = { "" },
["Taishan-GH"] = { "" },
["Kaiping"] = { "" },
["Enping"] = { "" },
["Heshan"] = { "" },
["Malan"] = { "" },
["Malan-BTQ"] = { "" },
["Malan-MHD"] = { "" },
["Malan-SZP"] = { "" },
["Malan-BLH"] = { "" },
["Dongguan"] = { "" },
["Shenzhen-C-LH"] = { "" },
["Bao'an"] = { "" },
["Dapeng"] = { "" },
["Shenzhen-PD"] = { "" },
["Pingshan-ZM"] = { "" },
["Ebu-ZM"] = { "" },
["Qingyuan"] = { "" },
["Fogang"] = { "" },
["Yingde"] = { "" },
["Yangshan"] = { "" },
["Lianshan"] = { "" },
["Lianshan-YH"] = { "" },
["Lianzhou"] = { "" },
["Shaoguan"] = { "" },
["Qujiang-C"] = { "" },
["Renhua"] = { "" },
["Lechang"] = { "" },
["Gaoyao"] = { "" },
["Sihui"] = { "" },
["Guangning"] = { "" },
["Deqing"] = { "" },
["Huaiji"] = { "" },
["Fengkai"] = { "" },
["Yunfu"] = { "" },
["Xinxing"] = { "" },
["Luoding"] = { "" },
["Yunan"] = { "" },
["Yangjiang"] = { "" },
["Yangdong"] = { "" },
["Yangdong-YS"] = { "" },
["Yangchun"] = { "" },
["Yangxi"] = { "" },
["Xinyi"] = { "" },
["Maoming"] = { "" },
["Maoming-YJ"] = { "" },
["Gaozhou"] = { "" },
["Huazhou"] = { "" },
["Huazhou-CQ"] = { "" },
["Zhanjiang"] = { "" },
["Lianjiang"] = { "" },
["Wuchuan"] = { "" },
["Nanning"] = { "" },
["Nanning-Tanka"] = { "" },
["Wuzhou"] = { "" },
["Cangwu-LB"] = { "" },
["Yulin"] = { "" },
["Rongxian"] = { "" },
["Hepu"] = { "" },
["Hepu-ST"] = { "" },
["Guiping"] = { "" },
["Guiping-JT"] = { "" },
["Guiping-JK"] = { "" },
["Guiping-MD"] = { "" },
["Guiping-ML"] = { "" },
["Pingnan-PN"] = { "" },
["Pingnan-DZ"] = { "" },
["Mengshan"] = { "" },
["Mengshan-XX"] = { "" },
["Mengshan-CT"] = { "" },
["Guigang-GC"] = { "" },
["Guigang-NJ"] = { "" },
["Guigang-PD"] = { "" },
["Beiliu"] = { "" },
["Beiliu-TL"] = { "" },
["Beiliu-XL"] = { "" },
["Baise"] = { "" },
["Tiandong"] = { "" },
["Tiandong-LF"] = { "" },
["Tianyang"] = { "" },
["Pingguo"] = { "" },
["Pingguo-SX"] = { "" },
["Bobai"] = { "" },
["Lingshan"] = { "" },
["Pubei"] = { "" },
["Qinzhou"] = { "" },
["Qinzhou-XD"] = { "" },
["Qinzhou-CT"] = { "" },
["Qinzhou-NS"] = { "" },
["Qinzhou-XNJ"] = { "" },
["Beihai"] = { "" },
["Beihai-NK"] = { "" },
["Beihai-YP"] = { "" },
["Beihai-QG"] = { "" },
["Beihai-QG-CB"] = { "" },
["Ningming"] = { "" },
["Hengxian"] = { "" },
["Pumen"] = { "" },
["Fangchenggang-FC"] = { "" },
["Dongxing"] = { "" },
["Chongzuo-LT"] = { "" },
["Fusui-QJ"] = { "" },
["Lingchuan-C-YJ"] = { "" },
["Pingle-C-MJ"] = { "" },
["Pingle-C-SS"] = { "" },
["Lipu-ZC"] = { "" },
["Danzhou"] = { "" },
["Sanya-YL"] = { "" },
["Kuala Lumpur"] = { "" },
["Penang-C"] = { "" },
["Ipoh"] = { "" },
["Sarikei-C"] = { "" },
["Singapore-C"] = { "" },
["Jakarta-C"] = { "" },
["Ho Chi Minh City"] = { "" },
["Mong Cai"] = { "" },
["Phnom Penh-C"] = { "" },
["Yangon-C"] = { "" },
["Mandalay-C"] = { "" },
["Bangkok-C"] = { "" },
["Betong"] = { "" },
["Manila-C"] = { "" },
["Nanning-P"] = { "木糠" },
["Nanning-P-SJ"] = { "" },
["Nanning-P-GJY"] = { "" },
["Nanning-P-ZGL"] = { "" },
["Nanning-P-XXJD"] = { "" },
["Nanning-P-SL"] = { "" },
["Nanning-P-XX"] = { "" },
["Nanning-P-SC"] = { "" },
["Binyang"] = { "" },
["Binyang-XQ"] = { "" },
["Hengxian-P"] = { "" },
["Wuxuan-JJ"] = { "" },
["Chongzuo-P"] = { "" },
["Liucheng-P"] = { "" },
["Liucheng-P-GZ"] = { "" },
["Yizhou-P-DS"] = { "" },
["Luocheng-P"] = { "" },
["Guilin-P"] = { "" },
["Guilin-P-CY"] = { "" },
["Guilin-P-DBZ"] = { "" },
["Guilin-P-ZY"] = { "" },
["Guilin-P-DB"] = { "" },
["Guilin-P-YJ"] = { "" },
["Guilin-P-QJ"] = { "" },
["Lingui-P-WT"] = { "" },
["Lingui-P-HS"] = { "" },
["Lingui-P-LJ"] = { "" },
["Lingui-P-LT"] = { "" },
["Lingchuan-P"] = { "" },
["Lingchuan-P-GQ"] = { "" },
["Lingchuan-P-GD"] = { "" },
["Lingchuan-P-TX"] = { "" },
["Lingchuan-P-SZ"] = { "" },
["Lingchuan-P-GP"] = { "" },
["Lingchuan-P-LT"] = { "" },
["Guanyang-P"] = { "" },
["Quanzhou-P"] = { "" },
["Pingle-P"] = { "" },
["Pingle-P-XTM"] = { "" },
["Yangshuo-P"] = { "" },
["Yangshuo-P-PT"] = { "" },
["Yongfu-P-JX"] = { "" },
["Yongfu-P-CS"] = { "" },
["Zhongshan-GA"] = { "" },
["Xiamen"] = { "柴幼", "鋸屑麩", "鋸屑" },
["Xiamen-HS"] = { "" },
["Tong'an"] = { "" },
["Quanzhou"] = { "鋸屑" },
["Jinjiang"] = { "" },
["Nan'an"] = { "" },
["Shishi"] = { "" },
["Hui'an"] = { "" },
["Anxi"] = { "" },
["Yongchun"] = { "" },
["Dehua"] = { "" },
["Zhangzhou"] = { "柴幼", "鋸屑麩" },
["Longhai"] = { "" },
["Changtai"] = { "" },
["Hua'an"] = { "" },
["Nanjing-MN"] = { "" },
["Pinghe"] = { "" },
["Zhangpu"] = { "" },
["Yunxiao"] = { "" },
["Zhao'an"] = { "" },
["Zhao'an-SD"] = { "" },
["Zhao'an-TY"] = { "" },
["Zhao'an-WS"] = { "" },
["Dongshan"] = { "" },
["Taipei"] = { "" },
["Wanhua"] = { "" },
["Tamsui"] = { "" },
["Sanxia"] = { "" },
["Pingxi"] = { "" },
["Kaohsiung"] = { "" },
["Cijin"] = { "" },
["Hongmaogang"] = { "" },
["Dalinpu"] = { "" },
["Tianliao"] = { "" },
["Yilan"] = { "" },
["Luodong"] = { "" },
["Toucheng"] = { "" },
["Lukang"] = { "" },
["Yongjing-MN"] = { "" },
["Taichung"] = { "" },
["Wuqi"] = { "" },
["Tainan"] = { "鋸屑麩", "柴屑:GT" }, --鋸屑麩 written as 鋸屑灰
["Anping"] = { "" },
["Shanhua"] = { "" },
["Taitung"] = { "" },
["Green Island"] = { "" },
["Hsinchu-MN"] = { "" },
["Miaoli-MN"] = { "" },
["Mailiao"] = { "" },
["Chiayi"] = { "" },
["Chiayi-DS"] = { "" },
["Baoli"] = { "" },
["Liuqiu"] = { "" },
["Kinmen"] = { "" },
["Jinsha"] = { "" },
["Magong"] = { "" },
["Pengnan"] = { "" },
["Xiyu"] = { "" },
["Huxi"] = { "" },
["Wangan"] = { "" },
["Cimei"] = { "" },
["Huayu"] = { "" },
["Zhongtun"] = { "" },
["Houliao"] = { "" },
["Tongliang"] = { "" },
["Jibei"] = { "" },
["Malaysia-MN"] = { "" },
["Melaka"] = { "" },
["Labuan"] = { "" },
["Singapore-MN"] = { "" },
["Philippine-MN"] = { "柴屑" },
["Medan"] = { "" },
["Seri Begawan"] = { "" },
["Ho Chi Minh City-MN"] = { "" },
["Yangon-MN"] = { "" },
["Longyan"] = { "" },
["Zhangping"] = { "" },
["Yongfu"] = { "" },
["Datian"] = { "" },
["Datian-GP"] = { "" },
["Youxi-JM"] = { "" },
["Youxi-XQ"] = { "" },
["Shunchang-PS"] = { "" },
["Pingnan"] = { "" },
["Pingnan-PT"] = { "" },
["Pingnan-SJ"] = { "" },
["Guiping-XW"] = { "" },
["Guiping-DS"] = { "" },
["Guilin-MN-BYG"] = { "" },
["Pingle-MN"] = { "" },
["Qinzhou-MN"] = { "" },
["Lechang-TT"] = { "" },
["Renhua-CSB"] = { "" },
["Yingde-YZ"] = { "" },
["Yunan-LT"] = { "" },
["Hangzhou-PF"] = { "" },
["Cangnan-MN"] = { "" },
["Yuhuan-KM"] = { "" },
["Wenling-RS"] = { "" },
["Yixing-SB"] = { "" },
["Langxi-FL"] = { "" },
["Chaozhou"] = { "柴粕" }, --solely based on Teochew entry in Wiktionary
["Raoping-MN-T"] = { "" },
["Shantou"] = { "鋸屑" },
["Chenghai"] = { "" },
["Chenghai-DX"] = { "" },
["Chaoyang"] = { "" },
["Nan'ao-HZ"] = { "" },
["Nan'ao-YA"] = { "" },
["Jieyang"] = { "鋸屑" },
["Puning"] = { "" },
["Lufeng"] = { "" },
["Haifeng"] = { "" },
["Fengshun-MN-LH"] = { "" },
["Fengshun-MN-HJ"] = { "" },
["Yuen Chau Tsai-MN"] = { "" },
["Sha Tau Kok-MN"] = { "" },
["Thailand-MN-T"] = { "" },
["Chiang Mai-MN-T"] = { "" },
["Hat Yai-MN-T"] = { "" },
["Cambodia-MN-T"] = { "" },
["Ho Chi Minh City-MN-T"] = { "" },
["Vientiane-MN-T"] = { "" },
["Johor Bahru"] = { "" },
["Penang-MN-T"] = { "" },
["Singapore-MN-T"] = { "" },
["Batam-MN-T"] = { "" },
["Pontianak-MN-T"] = { "" },
["Leizhou"] = { "鋸糠" },
["Dianbai-XD"] = { "" },
["Wenchang"] = { "" },
["Haikou"] = { "" },
["Chengmai"] = { "" },
["Qionghai"] = { "" },
["Wanning"] = { "" },
["Tunchang"] = { "" },
["Singapore-MN-H"] = { "" },
["Belait-MN-H"] = { "" },
["Putian"] = { "" },
["Putian-DH"] = { "" },
["Putian-JK"] = { "" },
["Putian-NR"] = { "" },
["Xianyou"] = { "柴幼" },
["Xianyou-FT"] = { "" },
["Xianyou-YY"] = { "" },
["Fuding-AY"] = { "" },
["Shaxi"] = { "" },
["Sanxiang"] = { "" },
["Fuzhou"] = { "鋸糠" },
["Changle"] = { "" },
["Lianjiang-MD"] = { "" },
["Fuqing"] = { "" },
["Pingtan"] = { "" },
["Yongtai"] = { "" },
["Minqing"] = { "" },
["Gutian"] = { "" },
["Pingnan-MD"] = { "" },
["Luoyuan"] = { "" },
["Fu'an"] = { "" },
["Ningde"] = { "" },
["Xiapu"] = { "" },
["Zherong"] = { "" },
["Shouning"] = { "" },
["Zhouning"] = { "" },
["Fuding"] = { "" },
["Youxi"] = { "" },
["Youxi-XY"] = { "" },
["Youxi-YZ"] = { "" },
["Youxi-TC"] = { "" },
["Youxi-ZX"] = { "" },
["Matsu"] = { "" },
["Taishun-MD"] = { "" },
["Cangnan-MD"] = { "" },
["Guanhaiwei"] = { "" },
["Singapore-MD-FQ"] = { "" },
["Sitiawan-MD-GT"] = { "" },
["Sibu-MD-MQ"] = { "" },
["Jian'ou"] = { "鋸屑" },
["Dikou"] = { "" },
["Yanping-XY"] = { "" },
["Songxi"] = { "" },
["Zhenghe"] = { "" },
["Zhenqian"] = { "" },
["Shunchang-YD"] = { "" },
["Jianyang"] = { "" },
["Huangkeng"] = { "" },
["Wuyishan"] = { "" },
["Shibei"] = { "" },
["Yong'an"] = { "" },
["Sanyuan"] = { "" },
["Shaxian"] = { "" },
["Yanping-WT"] = { "" },
["Shaowu"] = { "" },
["Guangze"] = { "" },
["Jiangle"] = { "" },
["Mingxi"] = { "" },
["Shunchang"] = { "" },
["Ningde-She"] = { "" },
["Fu'an-She"] = { "" },
["Fuding-She"] = { "" },
["Zhouning-She"] = { "" },
["Xiapu-She"] = { "" },
["Shouning-She"] = { "" },
["Gutian-She"] = { "" },
["Luoyuan-She"] = { "" },
["Sanming-She"] = { "" },
["Shunchang-She"] = { "" },
["Hua'an-She"] = { "" },
["Guixi-She"] = { "" },
["Yanshan-She"] = { "" },
["Cangnan-She"] = { "" },
["Jingning-She"] = { "" },
["Jingning-ZK-She"] = { "" },
["Lishui-She"] = { "" },
["Longyou-She"] = { "" },
["Lin'an-She"] = { "" },
["Jiande-She"] = { "" },
["Ningguo-She"] = { "" },
["Chaozhou-She"] = { "" },
["Fengshun-She"] = { "" },
["Guzhang-WX"] = { "" },
["Yuanling-WX"] = { "" },
["Luxi-WX"] = { "" },
["Luxi-WX-LJT"] = { "" },
["Luxi-WX-LJT-2"] = { "" },
["Chengbu-WX"] = { "" },
["Jiande-JXYM"] = { "" },
["Jinhua-JXYM"] = { "" },
["Lanxi-JXYM"] = { "" },
["Tunxi-JXYM"] = { "" },
["Jiangyong"] = { "" },
["Dong'an"] = { "" },
["Qujiang-DC"] = { "" },
["Wujiang-XY"] = { "" },
["Zhenjiang-SB"] = { "" },
["Renhua-ZT"] = { "" },
["Renhua-ST"] = { "" },
["Ruyuan-GT"] = { "" },
["Lechang-CL"] = { "" },
["Lechang-BX"] = { "" },
["Lechang-HP"] = { "" },
["Lechang-GT"] = { "" },
["Lechang-SX"] = { "" },
}
return export
k1iessx8gxv37w722v1rslc19s7js9e
鋸木屑
0
1469302
9752895
8304107
2026-05-05T13:47:35Z
Fglffer
55252
/* 漢語 */
9752895
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=锯木屑}}
===發音===
{{zh-pron
|m=jùmùxiè
|x=ge4 mo6 sie6
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# {{lb|zh|湘語}} [[鋸末]],鋸[[木材]]時落下的[[細末]]
====同義詞====
{{zh-dial|鋸末}}
mvxwm33zf25hgwlaho0lc8fv0cuxp0d
塞爾維亞-克羅埃西亞語
0
1494697
9752875
9127353
2026-05-05T12:40:27Z
Fglffer
55252
9752875
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=塞尔维亚-克罗埃西亚语|type=451}}
{{zh-wp}}
===發音===
{{zh-pron
|m=Sài'ěrwéi亚-kèluó'āixī亚yǔ
|c=coi3 ji5 wai4 aa3 hak1 lo4 oi1 sai1 aa3 jyu5
|cat=propn
}}
===專有名詞===
{{head|zh|專有名詞}}
# {{lb|zh|臺灣}} 一種通行在[[東南歐]][[巴爾幹半島]]前[[南斯拉夫]]諸國的[[語言]]
====同義詞====
* {{qual|中國大陸|香港}} {{zh-l|塞爾維亞-克羅地亞語}}
====翻譯====
{{trans-see|斯拉夫語族語言|塞爾維亞-克羅地亞語}}
{{C|zh|語言名稱}}
in57gih6l4ged2rq9pga05mjhlcnu91
Cungguek Gungcanjdangj
0
1502673
9753775
6020378
2026-05-06T08:43:59Z
TongcyDai
53191
9753775
wikitext
text/x-wiki
==壯語==
===詞源===
{{com|za|Cungguek|gungcanjdangj}}。
===發音===
* {{za-pron|new_bor=2}}
===專有名詞===
{{za-head|專有名詞}}
# [[中國共產黨]]
#: {{syn|za|Cunghgoz Gungcanjdangj}}
csdxqwe65pqxxc6f9t2px3rv39sc7oh
Adomas ir Ieva
0
1518796
9753780
6051444
2026-05-06T08:54:14Z
TongcyDai
53191
9753780
wikitext
text/x-wiki
==立陶宛語==
{{wp|lt:}}
===發音===
{{lt-pr|Adõmas ir̃ Ievà}}
===專有名詞===
{{head|lt|專有名詞|g=m|g2=f|head=[[Adõmas]] [[ir̃]] [[Ievà]]}}
# [[亞當和伊夫]],[[亞當和夏娃]]
====變格====
{{lt-decl-noun-unc|Adõmas ir Ievà|Adõmo ir Ievõs|Adõmui ir Iẽvai|Adõmą ir Iẽvą|Adomù ir Ievà|Adomè ir Ievojè|Adõmai ir Iẽva}}
{{C|lt|聖經人物}}
ggjxeuv1hoeh7qpkgawybjq666r4xi7
demokratinis socializmas
0
1522663
9753776
6057020
2026-05-06T08:50:53Z
TongcyDai
53191
9753776
wikitext
text/x-wiki
==立陶宛語==
{{wp|lt:}}
===發音===
{{lt-pr|demokrãtinis socialìzmas}}
===名詞===
{{lt-noun|m|-|head=[[demokrãtinis]] [[socialìzmas]]}}
# [[民主社會主義]]
====變格====
{{lt-adj+noun|demokrat|inis|socializm|as}}
{{C|lt|社會主義}}
mnitibzmoscjyrwbsq608lv0rgwgu7r
gimtoji kalba
0
1524806
9752943
9120732
2026-05-05T20:36:33Z
TongcyDai
53191
9752943
wikitext
text/x-wiki
==立陶宛語==
===發音===
* {{IPA|lt|[ɡʲɪm¹ˈtoːjɪ kɐlˈbɐ]}}
===名詞===
{{lt-noun|f|gimtosios kalbos|head=[[gimtas|gimtóji]] [[kalbà]]}}
# [[母語]],[[本族語]]
====變格====
{{lt-adj+noun|gimt|oji|kalb|a}}
grco7qpn80gn61tgl45l6f03zxiwew3
indoeuropiečių prokalbė
0
1535886
9752941
9530771
2026-05-05T20:30:26Z
TongcyDai
53191
9752941
wikitext
text/x-wiki
==立陶宛語==
===發音===
* {{IPA|lt|[ɪndɔ.ɛʊrɔ²ˈpʲiɛt͡ʃʲu̟ː ¹ˈproːkɐlʲbʲeː]}}
===名詞===
{{lt-noun|f|head=[[indoeuropietis|indoeuropiẽčių]] [[prókalbė]]}}
# {{lb|lt|語言學}} [[Proto-Indo-European]]
====變格====
{{lt-noun-f-ė-1|indoeuropiẽčių prokalb|indoeuropiẽčių prókalb|n=s}}
72rd8mcbwyyfek4wslj3tbrfwja169h
9752942
9752941
2026-05-05T20:30:39Z
TongcyDai
53191
9752942
wikitext
text/x-wiki
==立陶宛語==
===發音===
* {{IPA|lt|[ɪndɔ.ɛʊrɔ²ˈpʲiɛt͡ʃʲu̟ː ¹ˈproːkɐlʲbʲeː]}}
===名詞===
{{lt-noun|f|head=[[indoeuropietis|indoeuropiẽčių]] [[prókalbė]]}}
# {{lb|lt|語言學}} [[原始印歐語]]
====變格====
{{lt-noun-f-ė-1|indoeuropiẽčių prokalb|indoeuropiẽčių prókalb|n=s}}
50fdjk6s7wv1j3961idtat2dw59keva
taip
0
1543783
9752917
6089169
2026-05-05T16:29:38Z
TongcyDai
53191
9752917
wikitext
text/x-wiki
==立陶宛語==
===詞源===
源自 {{af|lt|taĩ|t1=那|-aĩp|t2=副詞後綴}}。更多資訊請見 {{m|lt|-aĩp}}。
{{m|lt||taĩp}} 這個形式是從[[小立陶宛]]引入標準立陶宛語的,而非[[蘇瓦爾基亞]]的 {{m|lt||teĩp, tèp}}。<ref>{{cite-journal|title=Dėl lietuvių bendrinės kalbos kilmės|author=Zigmas Zinkevičius|year=1994|journal=Baltistica|doi=10.15388/baltistica.0.4.829|page=147}}</ref>
===發音===
* {{IPA|lt|[tɐjp]}}
===副詞===
{{lt-adv|-|head=taĩp}}
# [[是]],[[對]]
# [[好的]],[[當然]]
# [[如此]],[[這樣]],[[這麼]]
#: {{coi|lt|'''taip''' lengviau|t='''這樣'''比較容易}}
====近義詞====
* {{qualifier|好的}} {{l|lt|gerai}}
====反義詞====
* {{l|lt|ne}}
====派生詞彙====
* {{l|lt|taip pat}}
===參考資料===
<references/>
===延伸閱讀===
* {{R:LKZ}}
* {{R:lt:LKEŽDUB}}
* {{cite-book|title=Lithuanian Grammar|author= Vytautas Ambrazas|year=2006|chapter=3. Morphology § 6.8|edition=2nd revised|page=381|isbn=9955230355}}
==馬來語==
===詞源===
{{bor+|ms|en|type}}。
===發音===
{{ms-IPA}}
===動詞===
{{ms-verb|j=تاءيڤ}}
# to [[type]] {{gl|of keyboard, typewriter}}
====派生詞彙====
{{ms-der|21|310|310+221
|mesin taip:[[typewriter]]
|muka taip:[[typeface]]
|rupa taip:[[typeface]]
}}
===延伸閱讀===
* {{R:PRPM}}
bu9p2nb156ghuip14be9xvjzxi49uey
9752919
9752917
2026-05-05T16:30:47Z
TongcyDai
53191
9752919
wikitext
text/x-wiki
==立陶宛語==
===詞源===
源自 {{af|lt|taĩ|t1=那|-aĩp|t2=副詞後綴}}。更多資訊請見 {{m|lt|-aĩp}}。
{{m|lt||taĩp}} 這個形式是從[[小立陶宛]]引入標準立陶宛語的,而非[[蘇瓦爾基亞]]的 {{m|lt||teĩp, tèp}}。<ref>{{cite-journal|title=Dėl lietuvių bendrinės kalbos kilmės|author=Zigmas Zinkevičius|year=1994|journal=Baltistica|doi=10.15388/baltistica.0.4.829|page=147}}</ref>
===發音===
* {{IPA|lt|[tɐjp]}}
===副詞===
{{lt-adv|-|head=taĩp}}
# [[是]],[[對]]
# [[好的]],[[當然]]
# [[如此]],[[這樣]],[[這麼]]
#: {{coi|lt|'''taip''' lengviau|t='''這樣'''比較容易}}
====近義詞====
* {{qualifier|好的}} {{l|lt|gerai}}
====反義詞====
* {{l|lt|ne}}
====派生詞彙====
* {{l|lt|taip pat}}
===參考資料===
<references/>
===延伸閱讀===
* {{R:LKZ}}
* {{R:lt:LKEŽDUB}}
* {{cite-book|title=Lithuanian Grammar|author= Vytautas Ambrazas|year=2006|chapter=3. Morphology § 6.8|edition=2nd revised|page=381|isbn=9955230355}}
==馬來語==
===詞源===
{{bor+|ms|en|type}}。
===發音===
{{ms-IPA}}
===動詞===
{{ms-verb|j=تاءيڤ}}
# [[打字]]{{gl|鍵盤、打字機等}}
====派生詞彙====
{{ms-der|21|310|310+221
|mesin taip:[[打字機]]
|muka taip:[[字體]]
|rupa taip:[[字體]]
}}
===延伸閱讀===
* {{R:PRPM}}
tsomd6gfnmsncroedn2exkfx8q941p0
米克斯
0
1632024
9752880
6236533
2026-05-05T13:28:59Z
Fglffer
55252
/* 漢語 */
9752880
wikitext
text/x-wiki
==漢語==
{{zh-forms|gloss=-}}
===詞源===
源自{{der|zh|en|mix}}。
===發音===
{{zh-pron
|m=mǐkèsī
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# {{lb|zh|臺灣}} 兩種以上不同[[品種]]的生物交配產生的下代,常用於指稱[[狗]]、[[貓]]等動物
====近義詞====
* {{zh-l|混種}}
* {{zh-l|雜種}} {{qualifier|貶義}}
9g3n1up4888x11bwaibb80pwlvmbc8o
臺灣尾
0
1632456
9752883
9143885
2026-05-05T13:33:35Z
Fglffer
55252
/* 漢語 */
9752883
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=台湾尾|t2=台灣尾|type=21}}
===發音===
{{zh-pron
|m=táiwānwěi
|mn=tp,hc,mg:tâi-oân-bé/lk,sx,km,hc:tâi-oân-bér/yl,tn,kh,tc:tâi-oân-bóe
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# {{lb|zh|臺灣話|臺灣}} [[臺灣]]的南端
#: {{zh-x|對 臺灣頭 食 甲 臺灣尾|從臺灣北吃到'''臺灣南'''|TW}}
====相關詞彙====
* {{zh-l|臺灣頭}}
====參考資料====
* {{R:nan:tdj|56719|p=14}}
4rldhvv6u8sqkihae1u74p5613zf3l5
9752885
9752883
2026-05-05T13:34:23Z
Fglffer
55252
/* 名詞 */
9752885
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=台湾尾|t2=台灣尾|type=21}}
===發音===
{{zh-pron
|m=táiwānwěi
|mn=tp,hc,mg:tâi-oân-bé/lk,sx,km,hc:tâi-oân-bér/yl,tn,kh,tc:tâi-oân-bóe
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# {{lb|zh|主要用於|_|臺灣|臺灣話}} [[臺灣]]的南端
#: {{zh-x|對 臺灣頭 食 甲 臺灣尾|從臺灣北吃到'''臺灣南'''|TW}}
====相關詞彙====
* {{zh-l|臺灣頭}}
====參考資料====
* {{R:nan:tdj|56719|p=14}}
eeggahbq727euxpwyash5lrzinmq311
臺灣頭
0
1632460
9752886
9143886
2026-05-05T13:34:40Z
Fglffer
55252
/* 漢語 */
9752886
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=台湾头|t2=台灣頭|type=21}}
===發音===
{{zh-pron
|m=táiwāntóu
|mn=tâi-oân-thâu
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# {{lb|zh|主要用於|_|臺灣|臺灣話}} [[臺灣]]的北端
#: {{zh-x|對 臺灣頭 食 甲 臺灣尾|從'''臺灣北'''吃到臺灣南|TW}}
====相關詞彙====
* {{zh-l|臺灣尾}}
====參考資料====
* {{R:nan:tdj|56721|p=14}}
f1apl9r2nwe2xngclfikihwjybw8izq
天道虫
0
1680786
9752950
9747640
2026-05-05T21:36:54Z
InternetArchiveBot
95668
Rescuing 0 sources and tagging 1 as dead.) #IABot (v2.0.9.5
9752950
wikitext
text/x-wiki
{{DEFAULTSORT:てんとうむし}}
==日語==
{{ja-kanjitab|yomi=kanon2,kun|てん|とう|むし|alt=てんとう虫,瓢虫,紅娘}}
{{wiki|lang=ja|テントウムシ}}
[[File:Coccinella_septempunctata_detail.jpg|thumb|250px|{{m|ja||天道虫|tr=tentō mushi}}]]
===詞源===
{{compound|ja|sort=てんとうむし|天道|tr1=tentō|t1=天空;天上的道路;太陽|虫|tr2=mushi|t2=[[蟲子]]}}。
來源有多種說法,包括:
* 來自其向上飛朝向太陽的姿勢。
* 來自其降落在枝條上時朝天的姿勢。
衍生種類基本帶 ''-tentō'' 的後綴。
===發音===
{{ja-pron|てんとう むし|acc=3|acc_ref=DJR}}
===名詞===
{{ja-noun|てんとう むし|テントウ ムシ|hist1=てんたうむし|hist2=テンタウムシ}}
# [[瓢蟲]] {{gloss|[[Coccinellidae]]}}
#: {{hypernyms|ja|甲虫|tr=kōchū}}
# {{synonym of|ja|並瓢虫|tr=namitentō}}:異色瓢蟲,{{taxlink|Harmonia axyridis|species|ver=180426}}
====使用說明====
{{U:ja:biology|テントウムシ}}
====衍生詞====
{{col|ja
|{{ja-r|偽瓢虫|てんとう むし だまし}}
|{{ja-r|赤%星 瓢虫|あか%ぼし てんとう|{{taxlink|Chilocorus rubidus|species}}}}
|{{ja-r|七%星 瓢虫|なな%ほし てんとう}}
|{{ja-r|並 瓢虫|なみ てんとう}}
|{{ja-r|二%十%八%星 瓢虫|に%じゅう%はち%ほし てんとう|{{taxlink|Henosepilachna vigintioctopunctata|species}}}}
}}
===來源===
<references/>
:* {{R:Kanjipedia Kotoba|0005044400}}
===延伸閱讀===
* [http://www.nihonjiten.com/data/46555.html {{lang|ja|日本辞典}}]{{Dead link|date=May 2026 |bot=InternetArchiveBot |fix-attempted=yes }} (日語)
{{C|ja|甲蟲}}
qujjac9y4oibklwn1a276crqn5ssk2z
Category:一天裡的時刻
14
1755754
9752940
7060717
2026-05-05T20:27:39Z
Fglffer
55252
9752940
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
再生数
0
1821521
9752898
7177560
2026-05-05T13:49:21Z
YeBoy371
43905
/* 名詞 */
9752898
wikitext
text/x-wiki
==日語==
{{ja-kanjitab|さい|せい|すう|yomi=o}}
===詞源===
源自{{ja-compound|再生|さいせい|数|すう|t1=播放(影像、音頻)|t2=數}}。
===發音===
{{ja-pron|さいせいすう|acc=3}}
===名詞===
{{ja-noun|さいせいすう|hhira=さいせいすう}}
# {{lb|ja|網際網路|sort=さいせいすう}} [[影片]]/[[視頻]]的[[播放]]次數
#: {{syn|ja|再生回数<tr:saisei kaisū>|視聴回数<tr:shichō kaisū>}}
{{C|ja|社群媒體|sort=さいせいすう}}
dj2lfz7psdily1iejl1v37jlrqg4zo6
再生回数
0
1821522
9752897
7177561
2026-05-05T13:49:18Z
YeBoy371
43905
/* 名詞 */
9752897
wikitext
text/x-wiki
==日語==
{{ja-kanjitab|さい|せい|かい|すう|yomi=o}}
===詞源===
源自{{ja-compound|再生|さいせい|回数|かいすう|t1=播放(影像、音頻)|t2=次數}}。
===發音===
{{ja-pron|さいせい かいすう|acc=5}}
===名詞===
{{ja-noun|head=[[再生]][[回数]]|さいせい かいすう|hhira=さいせいくわいすう}}
# {{lb|ja|網際網路|sort=さいせいかいすう}} [[影片]]/[[視頻]]的[[播放]]次數
#: {{syn|ja|再生数<tr:saiseisū>|視聴回数<tr:shichō kaisū>}}
{{C|ja|社群媒體|sort=さいせいかいすう}}
7qotpfl57tqlhco4rpnqh7dq4f3g7br
9752899
9752897
2026-05-05T13:50:01Z
YeBoy371
43905
/* 發音 */
9752899
wikitext
text/x-wiki
==日語==
{{ja-kanjitab|さい|せい|かい|すう|yomi=o}}
===詞源===
源自{{ja-compound|再生|さいせい|回数|かいすう|t1=播放(影像、音頻)|t2=次數}}。
===發音===
{{ja-pron|さいせい かいすう|acc=7|acc2=5}}
===名詞===
{{ja-noun|head=[[再生]][[回数]]|さいせい かいすう|hhira=さいせいくわいすう}}
# {{lb|ja|網際網路|sort=さいせいかいすう}} [[影片]]/[[視頻]]的[[播放]]次數
#: {{syn|ja|再生数<tr:saiseisū>|視聴回数<tr:shichō kaisū>}}
{{C|ja|社群媒體|sort=さいせいかいすう}}
ab6qbnuplaq5482hhadbhduhiknxchf
ஐரோப்பா
0
1986386
9752925
7352746
2026-05-05T17:18:56Z
TongcyDai
53191
9752925
wikitext
text/x-wiki
==泰米爾語==
===其他形式===
* {{alter|ta|அய்ரோப்பா||替代拼寫}}
===詞源===
可能{{bor+|ta|de|Europa}},最终源自{{der|ta|grc|Εὐρώπη}}。
===發音===
* {{ta-IPA}}
* {{audio|ta|LL-Q5885 (tam)-Sriveenkat-ஐரோப்பா.wav|a=India}}
===專有名詞===
{{ta-proper noun}}
# [[歐洲]]{{gl|大洲}}{{c|ta|大洲}}
#: {{syn|ta|சீமை}}
# [[歐羅巴]]{{gl|木星的衛星}}
====變格====
{{ta-decl|num=sg}}
====派生詞彙====
{{col3|ta|ஐரோப்பியர்<t:歐洲人>}}
===參見===
{{table:continents/ta}}
{{table:Solar System/ta}}
===參考資料===
* {{R:TAL|ஐரோப்பியன்}}
bdio230asbwgk1aa31ickqbfbtpo0dn
複製文
0
2136834
9752893
7559173
2026-05-05T13:42:06Z
Fglffer
55252
/* 漢語 */
9752893
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=复制文|type=21}}
===發音===
{{zh-pron
|m=fùzhìwén
|cat=n
}}
===名詞===
{{head|zh|名詞}}
# {{lb|zh|臺灣|網路俚語}} 從其他地方[[複製]][[貼上]]/[[粘貼]]的長[[文本]]
#: {{syn|zh|潮文|q1=香港粵語}}
====翻譯====
{{trans-top|從其他地方複製貼上/粘貼的長文本}}
* 英語:{{t+|en|copypasta}}
* 法語:{{t+|fr|copié-collé|m}}
* 日語:{{t+|ja|コピペ|tr=kopipe}}
* 朝鮮語:{{t|ko|복붙}}
* 馬其頓語:{{t|mk|копипа́ста|f}}
* 葡萄牙語:{{t|pt|copypasta}}
* 俄語:{{t+|ru|копипа́ста|f}}
{{trans-bottom}}
h517mq33yl172ksx4li8nvpzmaks4s1
菜瓜布
0
2220463
9752881
9580269
2026-05-05T13:32:15Z
Fglffer
55252
/* 漢語 */
9752881
wikitext
text/x-wiki
==漢語==
{{zh-forms|type=21}}
{{wikipedia|zh:}}
[[File:Luffa sponge.png|thumb|200px|right]]
===發音===
{{zh-pron
|m=càiguābù
|h=pfs=chhoi-kôa-pu;hrs=h:coiˇ guaˋ buˇ
|mn=tw:chhài-koe-pò͘
|cat=n
}}
===名詞===
{{head|zh|名詞}} {{tlb|zh|mainly|臺灣|臺灣話|臺灣客家語}}
# [[絲瓜]][[乾燥]][[成熟]][[果實]]的[[維管束]],常用於[[清潔]][[器皿]]
# {{lb|zh|引申}} 清潔器皿用的[[海綿]]
====近義詞====
{{syn-saurus|zh|絲瓜絡}}
===參考資料===
* {{thcwd|8941}}
* {{R:hak:HDT}}
dwlffqxfg1mqn4h40iy8ie3u2esx310
9752882
9752881
2026-05-05T13:32:27Z
Fglffer
55252
/* 漢語 */
9752882
wikitext
text/x-wiki
==漢語==
{{zh-forms|type=21}}
{{wp|zh:}}
[[File:Luffa sponge.png|thumb|200px|right]]
===發音===
{{zh-pron
|m=càiguābù
|h=pfs=chhoi-kôa-pu;hrs=h:coiˇ guaˋ buˇ
|mn=tw:chhài-koe-pò͘
|cat=n
}}
===名詞===
{{head|zh|名詞}} {{tlb|zh|mainly|臺灣|臺灣話|臺灣客家語}}
# [[絲瓜]][[乾燥]][[成熟]][[果實]]的[[維管束]],常用於[[清潔]][[器皿]]
# {{lb|zh|引申}} 清潔器皿用的[[海綿]]
====近義詞====
{{syn-saurus|zh|絲瓜絡}}
===參考資料===
* {{thcwd|8941}}
* {{R:hak:HDT}}
hnyhsl4eq5dr8nzqdm0px1m2bjjud0h
ㄅㄧㄤˋ
0
2266828
9752870
7914495
2026-05-05T12:32:26Z
Fglffer
55252
9752870
wikitext
text/x-wiki
==漢語==
{{zh-forms|type=4|delink=y|gloss=-}}
===詞源===
{{contraction|zh|不一樣}}。
===發音===
{{zh-pron
|m=biàng
|cat=a
}}
===形容詞===
{{head|zh|形容詞}}
# {{lb|zh|Taiwan|俚語}} 很[[酷]],很[[厲害]]
#* {{quote-song|zh|lyricist=阿雅、于光中|artist=w:阿雅|year=1998|title=ㄘㄨㄚˋ冰進行曲}}
#*: {{zh-q|立.正 站 好 看 這裡 太 緊張 的 先 稍息{xí} 英雄 馬上 就要 出現 最 ㄅ{}ㄧ{}ㄤ{}ˋ{biàng} 的 人 得 第 一||M-TW}}
#* {{quote-song|zh|lyricist=Izumi, {{lang|zh|石三浩}}, G-NICE|artist={{lw|zh|丁小芹}}, G-NICE|year=1999|title=Walking 2000}}
#*: {{zh-q|穿.上 你 最 ㄅ{}ㄧ{}ㄤ{}ˋ{biàng} 的 衣服 走 上 街頭 秀 自己||M-TW}}
#* {{quote-song|zh|lyricist=|artist=鐵竹堂|year=2003|title=你殺不了我}}
#*: {{zh-q|我 看 很 多 人 在 裝 流氓 他們 的 幫 自以為{wéi} 自己 很 ㄅ{}ㄧ{}ㄤ{}ˋ{biàng} 我 兄弟 馬上 開.槍||M-TW}}
#* {{quote-song|zh|lyricist={{lang|zh|徐光義}}, {{lang|zh|王美蓮}}|artist=火星人|year=2006|title=不同凡響}}
#*: {{zh-q|我 的 世界 就 是 ㄅ{}ㄧ{}ㄤ{}ˋ{biàng} 不.同.凡.響||M-TW}}
{{cat|zh|臺灣華語}}
rv3036g6rr6vilkz7ppt5dwdqw2k4d8
Stryj
0
2366523
9752916
8755870
2026-05-05T16:24:01Z
Ziv
125057
([[c:GR|GR]]) [[c:COM:Duplicate|Duplicate]]: [[File:Budynek Stryjskiej Miejskiej Rady.jpg]] → [[File:ВП Стрый горсовет.jpg]] Exact or scaled-down duplicate: [[c::File:ВП Стрый горсовет.jpg]]
9752916
wikitext
text/x-wiki
{{also|stryj}}
==波蘭語==
{{wikipedia|lang=pl}}
[[File:ВП Стрый горсовет.jpg|thumb|Stryj (#2.1)]]
[[File:Ukraine-Stryi River-3.jpg|thumb|Stryj (2.2)]]
===發音===
{{pl-pr|hh=stryj}}
===詞源1===
源自 {{m|pl|stryj}}。
====專有名詞====
{{pl-prop|m-pr}}
# {{surname|pl|g=m}}
=====變格=====
{{pl-decl-noun-m-pr|nomp=Stryjowie|genp=Stryjów}}
=====其他形式=====
* {{alt|pl|Stryi}}
====專有名詞====
{{pl-prop|m-in|adj=stryjski}}
# {{place|pl|村|co:Suf/雷基|voi/盧布林|c/波蘭}}
=====變格=====
{{pl-decl-noun-m-in|gens=Stryja|tantum=s}}
====專有名詞====
{{pl-prop|f|indecl=1}}
# {{surname|pl|g=f}}
===詞源2===
{{bor+|pl|uk|Стрий}}。
====專有名詞====
{{pl-prop|m-in|adj=stryjski}}
# {{place|pl|城市/行政中心/and/區|obl/利沃夫|c/烏克蘭|t=斯特雷}}
# {{place|pl|河|c/烏克蘭|t=謝伊姆河}}
=====變格=====
{{pl-decl-noun-m-in|gens=Stryja|tantum=s}}
===延伸閱讀===
* {{R:pl:PWN}}
* {{R:pl:PWN Encyclopedia}}
{{cln|pl|外名}}
64szee2mnhlpayx52t9alj0kan0kk7o
蛋雕
0
2980957
9752892
9081868
2026-05-05T13:41:17Z
Fglffer
55252
/* 漢語 */
9752892
wikitext
text/x-wiki
==漢語==
{{zh-forms}}
===詞源===
;“丟掉”
{{bor+|cmn|nan-hbl|[[掟]][[掉]]|tr=tàn tiāu}}。
===發音===
{{zh-pron
|m=dàndiāo
|cat=n,v
}}
===名詞===
{{head|zh|名詞}}
# 用[[蛋殼]]作為材料的[[工藝]]或[[藝術]][[作品]]
===動詞===
{{zh-verb}}
# {{lb|zh|臺灣華語|俚語}} [[丟掉]]
lqyowevxfpab2bkck7mur0eaia0jglf
Category:臺灣華語
14
3139504
9752872
9285300
2026-05-05T12:36:22Z
Fglffer
55252
9752872
wikitext
text/x-wiki
{{auto cat|lect=1}}
ertee7cys9kcm61xm19ibbz6xr74sxz
0
3229160
9752933
9405894
2026-05-05T20:05:24Z
Fglffer
55252
9752933
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=61|rad=心|as=08|sn=11|canj=PUMJ|four=92041|ids=⿰忄岸}}
===來源===
{{Han ref|kx=392.181|uh=32806}}
==漢語==
{{zh-forms}}
===字源===
{{Han compound|心|岸|ls=psc|c1=s|c2=p|t1=內心,心靈|tr2=àn}}。
===發音===
{{zh-pron
|m=àn
|ma=y
|cat=pn
}}
===釋義===
{{head|zh|漢字}}
# {{lb|zh|Taiwan}} {{n-g|用於[[公司]]名}}
===來源===
* {{R:zh:CNS|11|7B4F}}
==越南語==
===字源===
{{Han compound|lang=vi|心|alt1=忄|岸|ls=psc|tr=|c1=s|c2=p|t1=內心,心靈|tr2=ngạn}}。
===漢字===
{{vi-readings|rs=心08|nom=ngẩn-tdcndg}}
# {{vi-Nom form of|ngẩn|恍惚}}
====組詞====
{{col|vi
|{{vi-l|䁩|ngẩn ngơ}}
}}
===來源===
<references/>
jh3n3kw93u5qeotri4rgvd0469aj0ri
0
3229429
9752934
9406163
2026-05-05T20:08:34Z
Fglffer
55252
9752934
wikitext
text/x-wiki
{{character info}}
==跨語言==
===漢字===
{{Han char|rn=72|rad=日|as=05|sn=9|canj=AHMY|four=62041(G),62031(T)|ids=⿰日斥}}
===來源===
* {{Han ref|kx=494.181|uh=32916}}
==漢語==
{{zh-forms}}
===字源===
{{Han compound|日|斥|ls=psc|c1=s|c2=p}}。
===詞源1===
====發音====
{{zh-pron
|m=sù
|ma=y
|cat=pn
}}
====釋義====
{{head|zh|漢字}}
# {{lb|zh|Taiwan}} {{zh-used2|n}}
===詞源2===
{{zh-see|坼|o}}
===來源===
* {{R:zh:CNS|12|3C6F}}
m5rg3l25druc6qrt8dh3st8h04lksis
扮蟹
0
3433402
9752909
9752854
2026-05-05T14:43:18Z
Sayonzei
40728
/* 動詞 */
9752909
wikitext
text/x-wiki
==漢語==
{{zh-forms}}
===發音===
{{zh-pron
|c=baan6 haai5
|cat=v
}}
===動詞===
{{zh-verb|type=vo}}
# {{lb|zh|粵語}} [[裝模作樣]],[[不懂裝懂]]
#: {{zh-x|你 唔好 喺度 '''@扮''' 嗮 '''@蟹''' 喎{wo3}。|你別在這裡'''裝模作樣'''的。|C}}
====派生詞彙====
{{col3|zh|扮死蟹}}
45dozo193gxyg16jrn16lgzmega8uwt
ゆうほう
0
3433408
9752866
2026-05-05T12:13:15Z
Fglffer
55252
新詞條
9752866
wikitext
text/x-wiki
==日語==
{{ja-see|友邦|有朋|雄峰}}
giw8an6hnusg32dcnfuahnz6ynq4z0v
作育英才
0
3433409
9752868
2026-05-05T12:21:53Z
Fglffer
55252
新詞條
9752868
wikitext
text/x-wiki
==漢語==
{{zh-forms|type=22}}
===發音===
{{zh-pron
|m=zuòyùyīngcái
|cat=cy
}}
===成語===
{{head|zh|成語}}
# [[培育]][[優秀]]的[[人才]]
565remih91zvz9zupxr34ppepi9wi0e
貝戈戈
0
3433410
9752869
2026-05-05T12:28:31Z
Fglffer
55252
新詞條
9752869
wikitext
text/x-wiki
==漢語==
{{zh-forms|s=贝戈戈}}
===詞源===
漢字{{zh-l|*賤}}的字符分解。
===發音===
{{zh-pron
|m=bèigēgē
|cat=a
}}
===形容詞===
{{head|zh|形容詞}}
# {{lb|zh|Taiwan}} {{syn of|zh|賤|t=卑鄙}}
====參見====
* {{zh-l|春虫虫}}
3xr6n5he3ryfqmx5rs0z9njoyt2u5lf
sōtō
0
3433411
9752884
2026-05-05T13:33:46Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「{{also|Appendix:"soto"的變體}} ==日語== ===羅馬化=== {{ja-romaji}} # {{ja-romanization of|そうとう}}」的新頁面
9752884
wikitext
text/x-wiki
{{also|Appendix:"soto"的變體}}
==日語==
===羅馬化===
{{ja-romaji}}
# {{ja-romanization of|そうとう}}
bnz5i0eord3rkupdwg90e6xv07be0rn
Template:Ja-suru-acc-table
10
3433412
9752908
2026-05-05T14:43:08Z
Fglffer
55252
新詞條
9752908
wikitext
text/x-wiki
<includeonly>{{#if:{{{acc|}}}|{{ja-acc-table|verb-suru|する|acc=0|て-form-acc=0|lemma={{{lemma|{{SUBPAGENAME}}}}}する|complex={{{1|{{SUBPAGENAME}}}}} kana = {{replace|plain=false|1={{replace|plain=false|1={{replace|plain=false|1=,{{replace|plain=false|1={{{acc}}}|2=,%s+|3=,}}|2=,%s*([^A-Za-z0-9]+)%s*([ A-Za-z0-9%+]+)%s*[^,]*|3=,%1+kana %2+acc}}|2=,%s*([A-Za-z0-9]+)%s*[^,]*|3=,{{{1|{{SUBPAGENAME}}}}}+kana %1+acc}}|2=^,|3=}}}}|{{error|acc is required}}}}</includeonly><noinclude>{{documentation}}</noinclude>
sf6ur6jq7melexk11utznm6e69onqb3
senkō
0
3433413
9752911
2026-05-05T14:43:50Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==日語== ===羅馬化=== {{ja-romaji}} # {{ja-romanization of|せんこう}}」的新頁面
9752911
wikitext
text/x-wiki
==日語==
===羅馬化===
{{ja-romaji}}
# {{ja-romanization of|せんこう}}
i1aqctvlr77zqwva5ml1tixs4pxq2vf
Čekijos Respublika
0
3433414
9752915
2026-05-05T15:25:01Z
TongcyDai
53191
[[w:WP:AES|←]]建立內容為「{{also|Čekijos Respubliką}} ==立陶宛語== ===發音=== * {{IPA|lt|[ˈt͡ʃʲɛkʲɪjo̟ːs rʲɛˈspʊbʲlʲɪkɐ]}} ===專有名詞=== {{lt-proper noun|f|head=[[Čèkijos]] [[respublika|Respùblika]]|1}} # {{place|lt|t=捷克共和國|國家|r/中歐}} ====變格==== {{lt-noun-f-a-unc-1|Čekijos Respublik|Čèkijos Respùblik}} ====近義詞==== * {{l|lt|Čèkija}} ====參見==== {{list:countries in Europe/lt}}」的新頁面
9752915
wikitext
text/x-wiki
{{also|Čekijos Respubliką}}
==立陶宛語==
===發音===
* {{IPA|lt|[ˈt͡ʃʲɛkʲɪjo̟ːs rʲɛˈspʊbʲlʲɪkɐ]}}
===專有名詞===
{{lt-proper noun|f|head=[[Čèkijos]] [[respublika|Respùblika]]|1}}
# {{place|lt|t=捷克共和國|國家|r/中歐}}
====變格====
{{lt-noun-f-a-unc-1|Čekijos Respublik|Čèkijos Respùblik}}
====近義詞====
* {{l|lt|Čèkija}}
====參見====
{{list:countries in Europe/lt}}
qvri5dttbj8jhhvbvnylryxxybrr5fb
Category:含有後綴-aip的立陶宛語詞
14
3433415
9752918
2026-05-05T16:30:06Z
TongcyBot
83009
養貓
9752918
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Category:帶「熗」的漢語詞
14
3433416
9752923
2026-05-05T17:16:32Z
TongcyBot
83009
養貓
9752923
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Category:帶「熗」的詞
14
3433417
9752924
2026-05-05T17:16:38Z
TongcyBot
83009
養貓
9752924
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
とくむ
0
3433419
9752929
2026-05-05T19:46:27Z
Fglffer
55252
新詞條
9752929
wikitext
text/x-wiki
==日語==
{{ja-see|特務}}
ji4i0i59zz83ay4gzwz5q0g9eqti9hg
ぞくちょう
0
3433420
9752932
2026-05-05T20:02:04Z
Fglffer
55252
新詞條
9752932
wikitext
text/x-wiki
==日語==
{{ja-see|族長|俗調|続貂}}
awkg8px97c758ce818otkh0x9qk7lsg
しんちょく
0
3433421
9752946
2026-05-05T21:04:11Z
Fglffer
55252
新詞條
9752946
wikitext
text/x-wiki
==日語==
{{ja-see|真直|進捗}}
tpnpgop4h0cxkl5ubcmsw6jycm8u602
sumata
0
3433422
9752957
2026-05-06T01:38:20Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==哥特語== ===羅馬化=== {{got-rom}} # {{romanization of|got|𐍃𐌿𐌼𐌰𐍄𐌰}} ==日語== ===羅馬化=== {{ja-romaji}} # {{ja-romanization of|すまた}}」的新頁面
9752957
wikitext
text/x-wiki
==哥特語==
===羅馬化===
{{got-rom}}
# {{romanization of|got|𐍃𐌿𐌼𐌰𐍄𐌰}}
==日語==
===羅馬化===
{{ja-romaji}}
# {{ja-romanization of|すまた}}
0s5og52syeigve3c4vbr2w8id8vm1hl
abusaba
0
3433425
9752985
2026-05-06T06:37:49Z
TongcyBot
83009
半自動導入非詞元形式
9752985
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusabais
0
3433426
9752986
2026-05-06T06:37:50Z
TongcyBot
83009
半自動導入非詞元形式
9752986
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusaban
0
3433427
9752987
2026-05-06T06:37:52Z
TongcyBot
83009
半自動導入非詞元形式
9752987
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusabas
0
3433428
9752988
2026-05-06T06:37:53Z
TongcyBot
83009
半自動導入非詞元形式
9752988
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusad
0
3433429
9752989
2026-05-06T06:37:54Z
TongcyBot
83009
半自動導入非詞元形式
9752989
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusada
0
3433430
9752990
2026-05-06T06:37:55Z
TongcyBot
83009
半自動導入非詞元形式
9752990
wikitext
text/x-wiki
==加泰羅尼亞語==
===發音===
* {{ca-IPA}}
===分詞===
{{head|ca|過去分詞變格形|g=f-s}}
# {{feminine singular of|ca|abusat}}
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=f-s}}
# {{feminine singular of|pt|abusado}}
==西班牙語==
===發音===
{{es-pr}}
===形容詞===
{{head|es|形容詞變格形|g=f}}
# {{adj form of|es|abusado||f|s}}
===分詞===
{{head|es|過去分詞變格形|g=f-s}}
# {{feminine singular of|es|abusado}}
==他加祿語==
===詞源===
{{bor+|tl|es|abusada}}。
===發音===
{{tl-pr|audio=LL-Q34057 (tgl)-Geoffjop0908-abusada.wav}}
===形容詞===
{{tl-adj|b=+}}
# {{feminine of|tl|abusado}}
b0lxdxonn0skh9f95x5fwh8il4f1dm5
abusadas
0
3433431
9752991
2026-05-06T06:37:57Z
TongcyBot
83009
半自動導入非詞元形式
9752991
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=f-p}}
# {{feminine plural of|pt|abusado}}
==西班牙語==
===發音===
{{es-pr}}
===形容詞===
{{head|es|形容詞變格形|g=f-p}}
# {{adj form of|es|abusado||f|p}}
===分詞===
{{head|es|過去分詞變格形|g=f-p}}
# {{feminine plural of|es|abusado}}
08xj0cqmpkac45qdw6612iykhv82t69
abusades
0
3433432
9752992
2026-05-06T06:37:58Z
TongcyBot
83009
半自動導入非詞元形式
9752992
wikitext
text/x-wiki
==加泰羅尼亞語==
===發音===
* {{ca-IPA}}
===分詞===
{{head|ca|過去分詞變格形|g=f-p}}
# {{feminine plural of|ca|abusat}}
0x3bdw074vwszu5esq228gd8v9wc6tm
abusado
0
3433433
9752993
2026-05-06T06:37:59Z
TongcyBot
83009
半自動導入非詞元形式
9752993
wikitext
text/x-wiki
==葡萄牙語==
===詞源===
源自 {{af|pt|abusar|-ado}}。
===發音===
{{pt-IPA}}
===形容詞===
{{pt-adj}}
# {{lb|pt|Brazil|非正式}} [[cheeky]], [[sassy]], [[impertinent]], [[meddlesome]]
#: {{syn|pt|atrevido}}
===分詞===
{{pt-pp}}
# {{past participle of|pt|abusar}}
===延伸閱讀===
* {{R:pt:Aulete}}
* {{R:pt:Priberam}}
==西班牙語==
===發音===
{{es-pr}}
===詞源1===
====分詞====
{{es-past participle}}
# {{past participle of|es|abusar}}
===詞源2===
源自 {{m|es|aguzado|t=sharp}}, influenced by {{m|es|abusar}}。
====形容詞====
{{es-adj}}
# {{lb|es|Mexico|Central America}} [[witty]], [[sharp]], [[shrewd]]
===延伸閱讀===
* {{R:es:DRAE}}
==他加祿語==
===詞源===
{{bor+|tl|es|abusado|t=abused}}。 {{surf|tl|abuso|-ado}}。
===發音===
{{tl-pr|audio=LL-Q34057 (tgl)-Geoffjop0908-abusado.wav}}
===形容詞===
{{tl-adj|b=+|f=abusada}}
# [[abusive]]
#: {{syn|tl|mapagmalabis|mapagsamantala|mapang-api|abusero<q:male>|abusera<q:female>|mapang-abuso|abusibo}}
====相關詞彙====
{{col|tl|abusada|abuso|abusero|abusera|abusibo|abusyon}}
===延伸閱讀===
* {{R:KWF Diksiyonaryo}}
* {{R:Pambansang Diksiyonaryo}}
* {{R:tl:Hispanismos 1972|page=5|q=abusado}}
alfu99y5ke8dbhkqof6r8m1n5b65wkz
9753736
9752993
2026-05-06T07:18:20Z
Sayonzei
40728
9753736
wikitext
text/x-wiki
==葡萄牙語==
===詞源===
源自 {{af|pt|abusar|-ado}}。
===發音===
{{pt-IPA}}
===形容詞===
{{pt-adj}}
# [[滥用]]的
# {{lb|pt|Brazil|非正式}} [[胆大妄为]]的;[[爱管闲事]]的
#: {{syn|pt|atrevido}}
===分詞===
{{pt-pp}}
# {{past participle of|pt|abusar}}
===延伸閱讀===
* {{R:pt:Aulete}}
* {{R:pt:Priberam}}
==西班牙語==
===發音===
{{es-pr}}
===詞源1===
====分詞====
{{es-past participle}}
# {{past participle of|es|abusar}}
===詞源2===
源自 {{m|es|aguzado|t=锐利,锋利;敏锐}},受 {{m|es|abusar}} 的影响。
====形容詞====
{{es-adj}}
# {{lb|es|Mexico|Central America}} [[机智]]的,[[敏锐]]的,[[聪明]]的
===延伸閱讀===
* {{R:es:DRAE}}
==他加祿語==
===詞源===
{{bor+|tl|es|abusado}}。{{surf|tl|abuso|-ado}}。
===發音===
{{tl-pr|audio=LL-Q34057 (tgl)-Geoffjop0908-abusado.wav}}
===形容詞===
{{tl-adj|b=+|f=abusada}}
# [[滥用]]的
#: {{syn|tl|mapagmalabis|mapagsamantala|mapang-api|abusero<q:男性>|abusera<q:女性>|mapang-abuso|abusibo}}
====相關詞彙====
{{col|tl|abusada|abuso|abusero|abusera|abusibo|abusyon}}
===延伸閱讀===
* {{R:KWF Diksiyonaryo}}
* {{R:Pambansang Diksiyonaryo}}
* {{R:tl:Hispanismos 1972|page=5|q=abusado}}
fhtxpci1mvrj8wpi2i80dcn1wdp983v
abusados
0
3433434
9752994
2026-05-06T06:38:00Z
TongcyBot
83009
半自動導入非詞元形式
9752994
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=m-p}}
# {{masculine plural of|pt|abusado}}
==西班牙語==
===發音===
{{es-pr}}
===形容詞===
{{head|es|形容詞變格形|g=m-p}}
# {{adj form of|es|abusado||m|p}}
===分詞===
{{head|es|過去分詞變格形|g=m-p}}
# {{masculine plural of|es|abusado}}
r394vzbr1eku7mfqjrlt38a7jlofs3f
abusam
0
3433435
9752995
2026-05-06T06:38:02Z
TongcyBot
83009
半自動導入非詞元形式
9752995
wikitext
text/x-wiki
==拉丁語==
===發音===
* {{la-IPA|abūsam}}
===分詞===
{{head|la|分詞變格形|head=abūsam}}
# {{infl of|la|abūsus||acc|f|s}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
1t3eip98yoi6mzmqto2slkbl5n2ud0w
abusamos
0
3433436
9752996
2026-05-06T06:38:03Z
TongcyBot
83009
半自動導入非詞元形式
9752996
wikitext
text/x-wiki
{{also|abusámos}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
9d4qwqdiwui9zv73ad1fiug72duwuzb
abusan
0
3433437
9752997
2026-05-06T06:38:04Z
TongcyBot
83009
半自動導入非詞元形式
9752997
wikitext
text/x-wiki
==日語==
===羅馬化===
{{ja-romaji}}
# {{ja-romanization of|アブサン}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
0ouix9thd2idztbimi0k2htyek8bufx
abusara
0
3433438
9752998
2026-05-06T06:38:06Z
TongcyBot
83009
半自動導入非詞元形式
9752998
wikitext
text/x-wiki
{{also|abusará}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
9393jdgo3zuzcmbwby0f7xre7dhd1fg
abusarais
0
3433439
9752999
2026-05-06T06:38:07Z
TongcyBot
83009
半自動導入非詞元形式
9752999
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusaram
0
3433440
9753000
2026-05-06T06:38:08Z
TongcyBot
83009
半自動導入非詞元形式
9753000
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abusaran
0
3433441
9753001
2026-05-06T06:38:09Z
TongcyBot
83009
半自動導入非詞元形式
9753001
wikitext
text/x-wiki
{{also|abusarán}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
evdc7al1pk27d5wo1z8aaga9s220dsx
abusaras
0
3433442
9753002
2026-05-06T06:38:11Z
TongcyBot
83009
半自動導入非詞元形式
9753002
wikitext
text/x-wiki
{{also|abusarás}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
fo17ke5ni9kqgmifyndpg7tdaxhp7jq
abusardes
0
3433443
9753003
2026-05-06T06:38:13Z
TongcyBot
83009
半自動導入非詞元形式
9753003
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abusarei
0
3433444
9753004
2026-05-06T06:38:14Z
TongcyBot
83009
半自動導入非詞元形式
9753004
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abusareis
0
3433445
9753005
2026-05-06T06:38:15Z
TongcyBot
83009
半自動導入非詞元形式
9753005
wikitext
text/x-wiki
{{also|abusaréis|abusáreis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
bae6a9ccmwwq4cjvyd0m39il97nlzk1
abusarem
0
3433446
9753006
2026-05-06T06:38:16Z
TongcyBot
83009
半自動導入非詞元形式
9753006
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
aayx2698ggub8wqyf0d2r32ryw12myt
abusaremos
0
3433447
9753007
2026-05-06T06:38:18Z
TongcyBot
83009
半自動導入非詞元形式
9753007
wikitext
text/x-wiki
{{also|abusáremos}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
mp31q42bkvd7wl86eq076zx372ltim1
abusaren
0
3433448
9753008
2026-05-06T06:38:19Z
TongcyBot
83009
半自動導入非詞元形式
9753008
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
8cqns5clk9ik41fwa88oqrfgfr94982
abusares
0
3433449
9753009
2026-05-06T06:38:20Z
TongcyBot
83009
半自動導入非詞元形式
9753009
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
iu802iqpzgatkttd0qahz40espfr3m6
abusareu
0
3433450
9753010
2026-05-06T06:38:21Z
TongcyBot
83009
半自動導入非詞元形式
9753010
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusaria
0
3433451
9753011
2026-05-06T06:38:23Z
TongcyBot
83009
半自動導入非詞元形式
9753011
wikitext
text/x-wiki
{{also|abusaría}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
dszc4g4etsp00mlzuou8tdqptdydv0j
abusariam
0
3433452
9753012
2026-05-06T06:38:24Z
TongcyBot
83009
半自動導入非詞元形式
9753012
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abusarias
0
3433453
9753013
2026-05-06T06:38:26Z
TongcyBot
83009
半自動導入非詞元形式
9753013
wikitext
text/x-wiki
{{also|abusarías}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
prsxk07rjogk9668m1vhja6zmfsplgs
abusarien
0
3433454
9753014
2026-05-06T06:38:27Z
TongcyBot
83009
半自動導入非詞元形式
9753014
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusaries
0
3433455
9753015
2026-05-06T06:38:28Z
TongcyBot
83009
半自動導入非詞元形式
9753015
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusarla
0
3433456
9753016
2026-05-06T06:38:30Z
TongcyBot
83009
半自動導入非詞元形式
9753016
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{it-compound of}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
6tb3zi79hu6v2x221yctt4d19a4136f
abusarlas
0
3433457
9753017
2026-05-06T06:38:31Z
TongcyBot
83009
半自動導入非詞元形式
9753017
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusarle
0
3433458
9753018
2026-05-06T06:38:32Z
TongcyBot
83009
半自動導入非詞元形式
9753018
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{it-compound of}}
===異序詞===
* {{anagrams|it|a=aabelrsu|sbaulare}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
b88xnkmo02dw4wj2m5m9s0q0f6hzj6c
abusarles
0
3433459
9753019
2026-05-06T06:38:33Z
TongcyBot
83009
半自動導入非詞元形式
9753019
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusarlo
0
3433460
9753020
2026-05-06T06:38:35Z
TongcyBot
83009
半自動導入非詞元形式
9753020
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{it-compound of}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
6tb3zi79hu6v2x221yctt4d19a4136f
abusarlos
0
3433461
9753021
2026-05-06T06:38:36Z
TongcyBot
83009
半自動導入非詞元形式
9753021
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusarme
0
3433462
9753022
2026-05-06T06:38:37Z
TongcyBot
83009
半自動導入非詞元形式
9753022
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusarmos
0
3433463
9753023
2026-05-06T06:38:38Z
TongcyBot
83009
半自動導入非詞元形式
9753023
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abusarnos
0
3433464
9753024
2026-05-06T06:38:40Z
TongcyBot
83009
半自動導入非詞元形式
9753024
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusaron
0
3433465
9753025
2026-05-06T06:38:41Z
TongcyBot
83009
半自動導入非詞元形式
9753025
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusaros
0
3433466
9753026
2026-05-06T06:38:42Z
TongcyBot
83009
半自動導入非詞元形式
9753026
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusarse
0
3433467
9753027
2026-05-06T06:38:44Z
TongcyBot
83009
半自動導入非詞元形式
9753027
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusarte
0
3433468
9753028
2026-05-06T06:38:45Z
TongcyBot
83009
半自動導入非詞元形式
9753028
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusarà
0
3433469
9753029
2026-05-06T06:38:46Z
TongcyBot
83009
半自動導入非詞元形式
9753029
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusaràs
0
3433470
9753030
2026-05-06T06:38:47Z
TongcyBot
83009
半自動導入非詞元形式
9753030
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusará
0
3433471
9753031
2026-05-06T06:38:49Z
TongcyBot
83009
半自動導入非詞元形式
9753031
wikitext
text/x-wiki
{{also|abusara}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
69isw6pj6ltagoxtm8w35lv4waq0w32
abusarán
0
3433472
9753032
2026-05-06T06:38:50Z
TongcyBot
83009
半自動導入非詞元形式
9753032
wikitext
text/x-wiki
{{also|abusaran}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
012kgcqqjmsuwba5zsc83wq6n7txdxb
abusarás
0
3433473
9753033
2026-05-06T06:38:51Z
TongcyBot
83009
半自動導入非詞元形式
9753033
wikitext
text/x-wiki
{{also|abusaras}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
4l2dzivcoh8tspxovhnt34whzq8z8dn
abusarão
0
3433474
9753034
2026-05-06T06:38:52Z
TongcyBot
83009
半自動導入非詞元形式
9753034
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abusaré
0
3433475
9753035
2026-05-06T06:38:54Z
TongcyBot
83009
半自動導入非詞元形式
9753035
wikitext
text/x-wiki
{{also|abusare}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
7rlh2d32y8p7p6qn9vuudem3hs0gzdv
abusaréis
0
3433476
9753036
2026-05-06T06:38:55Z
TongcyBot
83009
半自動導入非詞元形式
9753036
wikitext
text/x-wiki
{{also|abusareis|abusáreis}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
tpjbsj1cgjiyoi7sdd54fj3c21mvplo
abusaría
0
3433477
9753037
2026-05-06T06:38:57Z
TongcyBot
83009
半自動導入非詞元形式
9753037
wikitext
text/x-wiki
{{also|abusaria}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
iuz5rrjulzejewknwnbdxoevsg5c1t3
abusaríais
0
3433478
9753038
2026-05-06T06:38:58Z
TongcyBot
83009
半自動導入非詞元形式
9753038
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusaríamos
0
3433479
9753039
2026-05-06T06:39:00Z
TongcyBot
83009
半自動導入非詞元形式
9753039
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
eyg9aw65ku9ovcbmgg3769zigvv7ywu
abusarían
0
3433480
9753040
2026-05-06T06:39:00Z
TongcyBot
83009
半自動導入非詞元形式
9753040
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusarías
0
3433481
9753041
2026-05-06T06:39:02Z
TongcyBot
83009
半自動導入非詞元形式
9753041
wikitext
text/x-wiki
{{also|abusarias}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
5f0nac7lt29qxbbqb7d0nc348pfalt3
abusaríeis
0
3433482
9753042
2026-05-06T06:39:03Z
TongcyBot
83009
半自動導入非詞元形式
9753042
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abusaríem
0
3433483
9753043
2026-05-06T06:39:05Z
TongcyBot
83009
半自動導入非詞元形式
9753043
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusaríeu
0
3433484
9753044
2026-05-06T06:39:08Z
TongcyBot
83009
半自動導入非詞元形式
9753044
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusase
0
3433485
9753045
2026-05-06T06:39:09Z
TongcyBot
83009
半自動導入非詞元形式
9753045
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusaseis
0
3433486
9753046
2026-05-06T06:39:10Z
TongcyBot
83009
半自動導入非詞元形式
9753046
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusasen
0
3433487
9753047
2026-05-06T06:39:12Z
TongcyBot
83009
半自動導入非詞元形式
9753047
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusases
0
3433488
9753048
2026-05-06T06:39:13Z
TongcyBot
83009
半自動導入非詞元形式
9753048
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusassem
0
3433489
9753049
2026-05-06T06:39:14Z
TongcyBot
83009
半自動導入非詞元形式
9753049
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abusasteis
0
3433490
9753050
2026-05-06T06:39:16Z
TongcyBot
83009
半自動導入非詞元形式
9753050
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusastes
0
3433491
9753051
2026-05-06T06:39:17Z
TongcyBot
83009
半自動導入非詞元形式
9753051
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abusat
0
3433492
9753052
2026-05-06T06:39:18Z
TongcyBot
83009
半自動導入非詞元形式
9753052
wikitext
text/x-wiki
==加泰羅尼亞語==
===發音===
* {{ca-IPA}}
* {{rhymes|ca|at|s=3}}
===分詞===
{{ca-pp}}
# {{past participle of|ca|abusar}}
pbgrxrock523ot5veun0ov8couhvno1
abusats
0
3433493
9753053
2026-05-06T06:39:21Z
TongcyBot
83009
半自動導入非詞元形式
9753053
wikitext
text/x-wiki
==加泰羅尼亞語==
===發音===
* {{ca-IPA}}
* {{rhymes|ca|ats|s=3}}
===分詞===
{{head|ca|過去分詞變格形|g=m-p}}
# {{masculine plural of|ca|abusat}}
dtgrv5ds17mbzi3x9pauelganlayvmp
abusavam
0
3433494
9753054
2026-05-06T06:39:22Z
TongcyBot
83009
半自動導入非詞元形式
9753054
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abusavas
0
3433495
9753055
2026-05-06T06:39:24Z
TongcyBot
83009
半自動導入非詞元形式
9753055
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abusaven
0
3433496
9753056
2026-05-06T06:39:25Z
TongcyBot
83009
半自動導入非詞元形式
9753056
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusaves
0
3433497
9753057
2026-05-06T06:39:27Z
TongcyBot
83009
半自動導入非詞元形式
9753057
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusei
0
3433498
9753058
2026-05-06T06:39:28Z
TongcyBot
83009
半自動導入非詞元形式
9753058
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abuseis
0
3433499
9753059
2026-05-06T06:39:29Z
TongcyBot
83009
半自動導入非詞元形式
9753059
wikitext
text/x-wiki
{{also|abuséis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
sqtrzg5uoxwsv1i2gwamkrapyfevx7b
abusem
0
3433500
9753060
2026-05-06T06:39:30Z
TongcyBot
83009
半自動導入非詞元形式
9753060
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
aayx2698ggub8wqyf0d2r32ryw12myt
abusemos
0
3433501
9753061
2026-05-06T06:39:32Z
TongcyBot
83009
半自動導入非詞元形式
9753061
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
eyg9aw65ku9ovcbmgg3769zigvv7ywu
abusen
0
3433502
9753062
2026-05-06T06:39:33Z
TongcyBot
83009
半自動導入非詞元形式
9753062
wikitext
text/x-wiki
{{also|Abusen}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
==中古英語==
===詞源===
{{bor+|enm|fro|abuser}}。
===發音===
* {{IPA|enm|/aˈbiu̯zən/}}
===動詞===
{{head|enm|動詞}}
# To [[misuse]]; to [[use]] [[improperly]].
# To [[injure]]; to [[mistreat]]:
## {{lb|enm|rare}} To [[mislead]]; to [[abuse]] trust.
## {{lb|enm|rare}} To [[sexually]] [[abuse]].
# {{lb|enm|rare}} To [[adulterate]].
# {{lb|enm|rare}} To [[behave]] [[poorly]].
====變位====
{{enm-conj-wk|abus|y=0}}
====派生語彙====
* {{desc|en|abuse}}
* {{desc|sco|abuise|alts=1}}
====參考資料====
* {{R:MED Online|entry=abūsen|pos=v|id=MED240}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
5r98kyd069s5f454w3stpev9qq735ru
9753738
9753062
2026-05-06T07:19:48Z
Sayonzei
40728
/* 動詞 */
9753738
wikitext
text/x-wiki
{{also|Abusen}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
==中古英語==
===詞源===
{{bor+|enm|fro|abuser}}。
===發音===
* {{IPA|enm|/aˈbiu̯zən/}}
===動詞===
{{head|enm|動詞}}
# [[誤用]]
# [[傷害]];[[虐待]]
## {{lb|enm|rare}} [[誤導]];[[濫用]]他人的[[信任]]
## {{lb|enm|rare}} [[性虐待]]
# {{lb|enm|rare}} [[摻假]]
# {{lb|enm|rare}} [[行為]][[不端]]
====變位====
{{enm-conj-wk|abus|y=0}}
====派生語彙====
* {{desc|en|abuse}}
* {{desc|sco|abuise|alts=1}}
====參考資料====
* {{R:MED Online|entry=abūsen|pos=v|id=MED240}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
53i6fa13aerf783osmqpaf8b9umdlyf
abusessin
0
3433503
9753063
2026-05-06T06:39:34Z
TongcyBot
83009
半自動導入非詞元形式
9753063
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusessis
0
3433504
9753064
2026-05-06T06:39:36Z
TongcyBot
83009
半自動導入非詞元形式
9753064
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abuseu
0
3433505
9753065
2026-05-06T06:39:37Z
TongcyBot
83009
半自動導入非詞元形式
9753065
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusin
0
3433506
9753066
2026-05-06T06:39:38Z
TongcyBot
83009
半自動導入非詞元形式
9753066
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusis
0
3433507
9753067
2026-05-06T06:39:39Z
TongcyBot
83009
半自動導入非詞元形式
9753067
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
==康沃爾語==
===動詞===
{{head|kw|vf}}
# {{infl of|kw|abusya||1|s|pret:ind}}
==拉丁語==
===發音===
* {{la-IPA|abūsīs}}
===分詞===
{{head|la|分詞變格形|head=abūsīs}}
# {{infl of|la|abūsus||dat//abl|m//f//n|p}}
p738hqiz15btiudho55po7bx3hu8jgu
9753737
9753067
2026-05-06T07:18:49Z
Sayonzei
40728
/* 康沃爾語 */
9753737
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
==康沃爾語==
===動詞===
{{head|kw|動詞變位形式}}
# {{infl of|kw|abusya||1|s|pret:ind}}
==拉丁語==
===發音===
* {{la-IPA|abūsīs}}
===分詞===
{{head|la|分詞變格形|head=abūsīs}}
# {{infl of|la|abūsus||dat//abl|m//f//n|p}}
osx6m3hcq2hs4dzbrsi836edtr88763
abusou
0
3433508
9753068
2026-05-06T06:39:40Z
TongcyBot
83009
半自動導入非詞元形式
9753068
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abusà
0
3433509
9753069
2026-05-06T06:39:42Z
TongcyBot
83009
半自動導入非詞元形式
9753069
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusàrem
0
3433510
9753070
2026-05-06T06:39:43Z
TongcyBot
83009
半自動導入非詞元形式
9753070
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusàreu
0
3433511
9753071
2026-05-06T06:39:44Z
TongcyBot
83009
半自動導入非詞元形式
9753071
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusàvem
0
3433512
9753072
2026-05-06T06:39:46Z
TongcyBot
83009
半自動導入非詞元形式
9753072
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusàveu
0
3433513
9753073
2026-05-06T06:39:47Z
TongcyBot
83009
半自動導入非詞元形式
9753073
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusá
0
3433514
9753074
2026-05-06T06:39:48Z
TongcyBot
83009
半自動導入非詞元形式
9753074
wikitext
text/x-wiki
{{also|abusa}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
h2tppkv41mzit5xhwgksp1a94w49m8j
abusábamos
0
3433515
9753075
2026-05-06T06:39:49Z
TongcyBot
83009
半自動導入非詞元形式
9753075
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusáis
0
3433516
9753076
2026-05-06T06:39:50Z
TongcyBot
83009
半自動導入非詞元形式
9753076
wikitext
text/x-wiki
{{also|abusais}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
hrc4xova1dpexjpokryfy4j7ie06zeg
abusámos
0
3433517
9753077
2026-05-06T06:39:51Z
TongcyBot
83009
半自動導入非詞元形式
9753077
wikitext
text/x-wiki
{{also|abusamos}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
5kpqt22p3ipzq93oz3gcsxy8c2viko0
abusándola
0
3433518
9753078
2026-05-06T06:39:53Z
TongcyBot
83009
半自動導入非詞元形式
9753078
wikitext
text/x-wiki
{{also|abusandola}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
3n062fpjigeljflaqynij5olcv8zzsz
abusándolas
0
3433519
9753079
2026-05-06T06:39:54Z
TongcyBot
83009
半自動導入非詞元形式
9753079
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusándole
0
3433520
9753080
2026-05-06T06:39:55Z
TongcyBot
83009
半自動導入非詞元形式
9753080
wikitext
text/x-wiki
{{also|abusandole}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
ddm3l02xun6306if5k9na2ty2mbv16j
abusándoles
0
3433521
9753081
2026-05-06T06:39:57Z
TongcyBot
83009
半自動導入非詞元形式
9753081
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusándolo
0
3433522
9753082
2026-05-06T06:39:58Z
TongcyBot
83009
半自動導入非詞元形式
9753082
wikitext
text/x-wiki
{{also|abusandolo}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
ilvwawa4hx7qovgzl8ff5nxdppnejed
abusándolos
0
3433523
9753083
2026-05-06T06:39:59Z
TongcyBot
83009
半自動導入非詞元形式
9753083
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusándome
0
3433524
9753084
2026-05-06T06:40:00Z
TongcyBot
83009
半自動導入非詞元形式
9753084
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusándonos
0
3433525
9753085
2026-05-06T06:40:01Z
TongcyBot
83009
半自動導入非詞元形式
9753085
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusándoos
0
3433526
9753086
2026-05-06T06:40:03Z
TongcyBot
83009
半自動導入非詞元形式
9753086
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusándose
0
3433527
9753087
2026-05-06T06:40:04Z
TongcyBot
83009
半自動導入非詞元形式
9753087
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusándote
0
3433528
9753088
2026-05-06T06:40:05Z
TongcyBot
83009
半自動導入非詞元形式
9753088
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusáreis
0
3433529
9753089
2026-05-06T06:40:08Z
TongcyBot
83009
半自動導入非詞元形式
9753089
wikitext
text/x-wiki
{{also|abusareis|abusaréis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rpbc5vc99v3zf3swbdwc7d4ecjcht37
abusáramos
0
3433530
9753090
2026-05-06T06:40:07Z
TongcyBot
83009
半自動導入非詞元形式
9753090
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
eyg9aw65ku9ovcbmgg3769zigvv7ywu
abusáremos
0
3433531
9753091
2026-05-06T06:40:11Z
TongcyBot
83009
半自動導入非詞元形式
9753091
wikitext
text/x-wiki
{{also|abusaremos}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
nlg1navne40860ydwc73x5pgxs4gmw9
abusás
0
3433532
9753092
2026-05-06T06:40:12Z
TongcyBot
83009
半自動導入非詞元形式
9753092
wikitext
text/x-wiki
{{also|abusas}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
0wlw1zwabnrub3r5kmqaqrvzod99x42
abusásemos
0
3433533
9753093
2026-05-06T06:40:13Z
TongcyBot
83009
半自動導入非詞元形式
9753093
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
rvf4bpawehbqgsktrfz6d8vx99ghtr4
abusásseis
0
3433534
9753094
2026-05-06T06:40:14Z
TongcyBot
83009
半自動導入非詞元形式
9753094
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abusássemos
0
3433535
9753095
2026-05-06T06:40:15Z
TongcyBot
83009
半自動導入非詞元形式
9753095
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abusávamos
0
3433536
9753096
2026-05-06T06:40:17Z
TongcyBot
83009
半自動導入非詞元形式
9753096
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
rxne0i8755xlwrkl9hzr8f9jvnglvnm
abuséis
0
3433537
9753097
2026-05-06T06:40:19Z
TongcyBot
83009
半自動導入非詞元形式
9753097
wikitext
text/x-wiki
{{also|abuseis}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
3nc109fktunaepht46ia2dm3sbhmdwm
abusáveis
0
3433538
9753098
2026-05-06T06:40:18Z
TongcyBot
83009
半自動導入非詞元形式
9753098
wikitext
text/x-wiki
==葡萄牙語==
===形容詞===
{{head|pt|形容詞變格形}}
# {{plural of|pt|abusável}}
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|abusar}}
0kup7h1skubebgrdahujgi3l69fac1j
abuséssim
0
3433539
9753099
2026-05-06T06:40:22Z
TongcyBot
83009
半自動導入非詞元形式
9753099
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abuséssiu
0
3433540
9753100
2026-05-06T06:40:23Z
TongcyBot
83009
半自動導入非詞元形式
9753100
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusí
0
3433541
9753101
2026-05-06T06:40:24Z
TongcyBot
83009
半自動導入非詞元形式
9753101
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|abusar}}
4ltsj1wid3wmnubzphq8qul3l2h9s1b
abusó
0
3433542
9753102
2026-05-06T06:40:25Z
TongcyBot
83009
半自動導入非詞元形式
9753102
wikitext
text/x-wiki
{{also|abuso|abusò}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|abusar}}
3cov885b34cyfjdz8xnlo9p428q6zyy
acercaba
0
3433543
9753103
2026-05-06T06:40:26Z
TongcyBot
83009
半自動導入非詞元形式
9753103
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercabais
0
3433544
9753104
2026-05-06T06:40:28Z
TongcyBot
83009
半自動導入非詞元形式
9753104
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercaban
0
3433545
9753105
2026-05-06T06:40:29Z
TongcyBot
83009
半自動導入非詞元形式
9753105
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercabas
0
3433546
9753106
2026-05-06T06:40:30Z
TongcyBot
83009
半自動導入非詞元形式
9753106
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercad
0
3433547
9753107
2026-05-06T06:40:31Z
TongcyBot
83009
半自動導入非詞元形式
9753107
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercada
0
3433548
9753108
2026-05-06T06:40:32Z
TongcyBot
83009
半自動導入非詞元形式
9753108
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=f-s}}
# {{feminine singular of|pt|acercado}}
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|過去分詞變格形|g=f-s}}
# {{feminine singular of|es|acercado}}
57jnth4n27u3v9a21xn9oc3rzd03xbo
acercadas
0
3433549
9753109
2026-05-06T06:40:34Z
TongcyBot
83009
半自動導入非詞元形式
9753109
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=f-p}}
# {{feminine plural of|pt|acercado}}
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|過去分詞變格形|g=f-p}}
# {{feminine plural of|es|acercado}}
irey234isu0tpovwl7n5z5h0uyhvxkb
acercado
0
3433550
9753110
2026-05-06T06:40:35Z
TongcyBot
83009
半自動導入非詞元形式
9753110
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{pt-pp}}
# {{past participle of|pt|acercar}}
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{es-past participle}}
# {{past participle of|es|acercar}}
mo44i1ibbiy7954kpupfctlyqovzpyg
acercados
0
3433551
9753111
2026-05-06T06:40:36Z
TongcyBot
83009
半自動導入非詞元形式
9753111
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=m-p}}
# {{masculine plural of|pt|acercado}}
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|過去分詞變格形|g=m-p}}
# {{masculine plural of|es|acercado}}
5fcyhtqta44rynedmels05ggm1ip1ci
acercai
0
3433552
9753112
2026-05-06T06:40:38Z
TongcyBot
83009
半自動導入非詞元形式
9753112
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercais
0
3433553
9753113
2026-05-06T06:40:38Z
TongcyBot
83009
半自動導入非詞元形式
9753113
wikitext
text/x-wiki
{{also|acercáis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
kbmd2g8eb4uca3kfu3ixi3hayj7886e
acercam
0
3433554
9753114
2026-05-06T06:40:40Z
TongcyBot
83009
半自動導入非詞元形式
9753114
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercamos
0
3433555
9753115
2026-05-06T06:40:41Z
TongcyBot
83009
半自動導入非詞元形式
9753115
wikitext
text/x-wiki
{{also|acercámos}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
llpnt2huav8ooh3xlzq0636c4o4abbj
acercan
0
3433556
9753116
2026-05-06T06:40:43Z
TongcyBot
83009
半自動導入非詞元形式
9753116
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercando
0
3433557
9753117
2026-05-06T06:40:44Z
TongcyBot
83009
半自動導入非詞元形式
9753117
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動名詞}}
# {{gerund of|pt|acercar}}
==西班牙語==
===動詞===
{{head|es|動名詞}}
# {{es-verb form of|acercar}}
iy6bceye4gi7fj59ogngvjcjj8fxt4h
acercaos
0
3433558
9753118
2026-05-06T06:40:45Z
TongcyBot
83009
半自動導入非詞元形式
9753118
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercara
0
3433559
9753119
2026-05-06T06:40:46Z
TongcyBot
83009
半自動導入非詞元形式
9753119
wikitext
text/x-wiki
{{also|acercará}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
sxneuqoex4nrtvulhg1p0cxuj5nbg2m
acercarais
0
3433560
9753120
2026-05-06T06:40:48Z
TongcyBot
83009
半自動導入非詞元形式
9753120
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercaram
0
3433561
9753121
2026-05-06T06:40:49Z
TongcyBot
83009
半自動導入非詞元形式
9753121
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercaran
0
3433562
9753122
2026-05-06T06:40:50Z
TongcyBot
83009
半自動導入非詞元形式
9753122
wikitext
text/x-wiki
{{also|acercarán}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
s9451k59ve1bwmf1u6qipux36ru6a1k
acercaras
0
3433563
9753123
2026-05-06T06:40:51Z
TongcyBot
83009
半自動導入非詞元形式
9753123
wikitext
text/x-wiki
{{also|acercarás}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
7sbqnt98wu6mimjlmxtg4qnuodq41bh
acercardes
0
3433564
9753124
2026-05-06T06:40:52Z
TongcyBot
83009
半自動導入非詞元形式
9753124
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercare
0
3433565
9753125
2026-05-06T06:40:54Z
TongcyBot
83009
半自動導入非詞元形式
9753125
wikitext
text/x-wiki
{{also|acercaré}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
iz3ybo6y8gzpihxgqujf0f3tbzyvn0s
acercarei
0
3433566
9753126
2026-05-06T06:40:55Z
TongcyBot
83009
半自動導入非詞元形式
9753126
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercareis
0
3433567
9753127
2026-05-06T06:40:56Z
TongcyBot
83009
半自動導入非詞元形式
9753127
wikitext
text/x-wiki
{{also|acercaréis|acercáreis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
lu7cv9hlhysvwul5ovndj47y5i3lnvv
acercarem
0
3433568
9753128
2026-05-06T06:40:57Z
TongcyBot
83009
半自動導入非詞元形式
9753128
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercaremos
0
3433569
9753129
2026-05-06T06:40:58Z
TongcyBot
83009
半自動導入非詞元形式
9753129
wikitext
text/x-wiki
{{also|acercáremos}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
a0g4ze012s09q8pon32cqog560zry8n
acercaren
0
3433570
9753130
2026-05-06T06:41:00Z
TongcyBot
83009
半自動導入非詞元形式
9753130
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercares
0
3433571
9753131
2026-05-06T06:41:02Z
TongcyBot
83009
半自動導入非詞元形式
9753131
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ehh5scfrvov2265lu8rgsje7i69ns2l
acercaria
0
3433572
9753132
2026-05-06T06:41:02Z
TongcyBot
83009
半自動導入非詞元形式
9753132
wikitext
text/x-wiki
{{also|acercaría}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
9pvzl4pwyj0b4ohm30558qdkapsi2os
acercariam
0
3433573
9753133
2026-05-06T06:41:04Z
TongcyBot
83009
半自動導入非詞元形式
9753133
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercarias
0
3433574
9753134
2026-05-06T06:41:05Z
TongcyBot
83009
半自動導入非詞元形式
9753134
wikitext
text/x-wiki
{{also|acercarías}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
c7m2gf6lspoo7fp8upfgpszzny2vxjc
acercarla
0
3433575
9753135
2026-05-06T06:41:06Z
TongcyBot
83009
半自動導入非詞元形式
9753135
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercarlas
0
3433576
9753136
2026-05-06T06:41:08Z
TongcyBot
83009
半自動導入非詞元形式
9753136
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercarle
0
3433577
9753137
2026-05-06T06:41:09Z
TongcyBot
83009
半自動導入非詞元形式
9753137
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercarles
0
3433578
9753138
2026-05-06T06:41:10Z
TongcyBot
83009
半自動導入非詞元形式
9753138
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercarlo
0
3433579
9753139
2026-05-06T06:41:11Z
TongcyBot
83009
半自動導入非詞元形式
9753139
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercarlos
0
3433580
9753140
2026-05-06T06:41:13Z
TongcyBot
83009
半自動導入非詞元形式
9753140
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercarme
0
3433581
9753141
2026-05-06T06:41:14Z
TongcyBot
83009
半自動導入非詞元形式
9753141
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercarmos
0
3433582
9753142
2026-05-06T06:41:15Z
TongcyBot
83009
半自動導入非詞元形式
9753142
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercarnos
0
3433583
9753143
2026-05-06T06:41:16Z
TongcyBot
83009
半自動導入非詞元形式
9753143
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercaron
0
3433584
9753144
2026-05-06T06:41:18Z
TongcyBot
83009
半自動導入非詞元形式
9753144
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercaros
0
3433585
9753145
2026-05-06T06:41:19Z
TongcyBot
83009
半自動導入非詞元形式
9753145
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercarte
0
3433586
9753146
2026-05-06T06:41:21Z
TongcyBot
83009
半自動導入非詞元形式
9753146
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercará
0
3433587
9753147
2026-05-06T06:41:22Z
TongcyBot
83009
半自動導入非詞元形式
9753147
wikitext
text/x-wiki
{{also|acercara}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
3gcoknkzyp37vx7s9e2ukl6rm1ghg5u
acercarán
0
3433588
9753148
2026-05-06T06:41:23Z
TongcyBot
83009
半自動導入非詞元形式
9753148
wikitext
text/x-wiki
{{also|acercaran}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
16xnb69t9op8kf599wxzyszii2kargi
acercarás
0
3433589
9753149
2026-05-06T06:41:24Z
TongcyBot
83009
半自動導入非詞元形式
9753149
wikitext
text/x-wiki
{{also|acercaras}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
adhb6gi1pqrlcceg2dyd1d09yq8makq
acercarão
0
3433590
9753150
2026-05-06T06:41:25Z
TongcyBot
83009
半自動導入非詞元形式
9753150
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercaré
0
3433591
9753151
2026-05-06T06:41:26Z
TongcyBot
83009
半自動導入非詞元形式
9753151
wikitext
text/x-wiki
{{also|acercare}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ckbrv96gh6y8jfts04nnkuixzn31od6
acercaréis
0
3433592
9753152
2026-05-06T06:41:27Z
TongcyBot
83009
半自動導入非詞元形式
9753152
wikitext
text/x-wiki
{{also|acercareis|acercáreis}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
3mzosrrej9jra8kppneu7p4b8anjrda
acercaría
0
3433593
9753153
2026-05-06T06:41:29Z
TongcyBot
83009
半自動導入非詞元形式
9753153
wikitext
text/x-wiki
{{also|acercaria}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
den2b6n0xkfmwbisrc2pgxcdrq0oyjf
acercaríais
0
3433594
9753154
2026-05-06T06:41:30Z
TongcyBot
83009
半自動導入非詞元形式
9753154
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercaríamos
0
3433595
9753155
2026-05-06T06:41:31Z
TongcyBot
83009
半自動導入非詞元形式
9753155
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ehh5scfrvov2265lu8rgsje7i69ns2l
acercarían
0
3433596
9753156
2026-05-06T06:41:33Z
TongcyBot
83009
半自動導入非詞元形式
9753156
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercarías
0
3433597
9753157
2026-05-06T06:41:34Z
TongcyBot
83009
半自動導入非詞元形式
9753157
wikitext
text/x-wiki
{{also|acercarias}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
eds5ywvsuzckefcxo18028hfzx5vylg
acercaríeis
0
3433598
9753158
2026-05-06T06:41:35Z
TongcyBot
83009
半自動導入非詞元形式
9753158
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercas
0
3433599
9753159
2026-05-06T06:41:36Z
TongcyBot
83009
半自動導入非詞元形式
9753159
wikitext
text/x-wiki
{{also|acercás}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
d0ag6gv7a3n56k8x2cph1zhe3s29xsf
acercase
0
3433600
9753160
2026-05-06T06:41:38Z
TongcyBot
83009
半自動導入非詞元形式
9753160
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercaseis
0
3433601
9753161
2026-05-06T06:41:39Z
TongcyBot
83009
半自動導入非詞元形式
9753161
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercasen
0
3433602
9753162
2026-05-06T06:41:40Z
TongcyBot
83009
半自動導入非詞元形式
9753162
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercases
0
3433603
9753163
2026-05-06T06:41:41Z
TongcyBot
83009
半自動導入非詞元形式
9753163
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercasse
0
3433604
9753164
2026-05-06T06:41:43Z
TongcyBot
83009
半自動導入非詞元形式
9753164
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercassem
0
3433605
9753165
2026-05-06T06:41:44Z
TongcyBot
83009
半自動導入非詞元形式
9753165
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercasses
0
3433606
9753167
2026-05-06T06:41:46Z
TongcyBot
83009
半自動導入非詞元形式
9753167
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercaste
0
3433607
9753168
2026-05-06T06:41:47Z
TongcyBot
83009
半自動導入非詞元形式
9753168
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ehh5scfrvov2265lu8rgsje7i69ns2l
acercasteis
0
3433608
9753169
2026-05-06T06:41:48Z
TongcyBot
83009
半自動導入非詞元形式
9753169
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercastes
0
3433609
9753170
2026-05-06T06:41:49Z
TongcyBot
83009
半自動導入非詞元形式
9753170
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercava
0
3433610
9753171
2026-05-06T06:41:51Z
TongcyBot
83009
半自動導入非詞元形式
9753171
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercavam
0
3433611
9753172
2026-05-06T06:41:52Z
TongcyBot
83009
半自動導入非詞元形式
9753172
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercavas
0
3433612
9753173
2026-05-06T06:41:53Z
TongcyBot
83009
半自動導入非詞元形式
9753173
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acerco
0
3433613
9753174
2026-05-06T06:41:55Z
TongcyBot
83009
半自動導入非詞元形式
9753174
wikitext
text/x-wiki
{{also|acercó}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
q6tjias518pcm4t3byvuwt1eujecr35
acercou
0
3433614
9753175
2026-05-06T06:41:56Z
TongcyBot
83009
半自動導入非詞元形式
9753175
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercá
0
3433615
9753176
2026-05-06T06:41:59Z
TongcyBot
83009
半自動導入非詞元形式
9753176
wikitext
text/x-wiki
{{also|acerca}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
aqnescju8zqfppgkt2k4nu0qzi8dqjo
acercábamos
0
3433616
9753177
2026-05-06T06:42:00Z
TongcyBot
83009
半自動導入非詞元形式
9753177
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercáis
0
3433617
9753178
2026-05-06T06:42:01Z
TongcyBot
83009
半自動導入非詞元形式
9753178
wikitext
text/x-wiki
{{also|acercais}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
imz01f8td23tz3o9k2jyi44hgms2bas
acercámos
0
3433618
9753179
2026-05-06T06:42:02Z
TongcyBot
83009
半自動導入非詞元形式
9753179
wikitext
text/x-wiki
{{also|acercamos}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
3o1vo5a4745agpbq1oh35uf5bl3wv3u
acercándola
0
3433619
9753180
2026-05-06T06:42:03Z
TongcyBot
83009
半自動導入非詞元形式
9753180
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercándolas
0
3433620
9753181
2026-05-06T06:42:04Z
TongcyBot
83009
半自動導入非詞元形式
9753181
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercándole
0
3433621
9753182
2026-05-06T06:42:06Z
TongcyBot
83009
半自動導入非詞元形式
9753182
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercándoles
0
3433622
9753183
2026-05-06T06:42:07Z
TongcyBot
83009
半自動導入非詞元形式
9753183
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercándolo
0
3433623
9753184
2026-05-06T06:42:08Z
TongcyBot
83009
半自動導入非詞元形式
9753184
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercándolos
0
3433624
9753185
2026-05-06T06:42:10Z
TongcyBot
83009
半自動導入非詞元形式
9753185
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercándome
0
3433625
9753186
2026-05-06T06:42:11Z
TongcyBot
83009
半自動導入非詞元形式
9753186
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercándonos
0
3433626
9753187
2026-05-06T06:42:12Z
TongcyBot
83009
半自動導入非詞元形式
9753187
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercándoos
0
3433627
9753188
2026-05-06T06:42:14Z
TongcyBot
83009
半自動導入非詞元形式
9753188
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercándose
0
3433628
9753189
2026-05-06T06:42:15Z
TongcyBot
83009
半自動導入非詞元形式
9753189
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercándote
0
3433629
9753190
2026-05-06T06:42:17Z
TongcyBot
83009
半自動導入非詞元形式
9753190
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercáramos
0
3433630
9753191
2026-05-06T06:42:18Z
TongcyBot
83009
半自動導入非詞元形式
9753191
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ehh5scfrvov2265lu8rgsje7i69ns2l
acercáreis
0
3433631
9753192
2026-05-06T06:42:19Z
TongcyBot
83009
半自動導入非詞元形式
9753192
wikitext
text/x-wiki
{{also|acercareis|acercaréis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
qpq0t5qr6pyay9ky8yn2lafekdo8n7z
acercáremos
0
3433632
9753193
2026-05-06T06:42:21Z
TongcyBot
83009
半自動導入非詞元形式
9753193
wikitext
text/x-wiki
{{also|acercaremos}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
5nd5a7hmc43thyiru13gpdhl3dsdeb9
acercás
0
3433633
9753194
2026-05-06T06:42:22Z
TongcyBot
83009
半自動導入非詞元形式
9753194
wikitext
text/x-wiki
{{also|acercas}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
f4ah8vcypvo4zerh89mw9bbxrrzuzhx
acercásemos
0
3433634
9753195
2026-05-06T06:42:23Z
TongcyBot
83009
半自動導入非詞元形式
9753195
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acercásseis
0
3433635
9753196
2026-05-06T06:42:25Z
TongcyBot
83009
半自動導入非詞元形式
9753196
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercássemos
0
3433636
9753197
2026-05-06T06:42:26Z
TongcyBot
83009
半自動導入非詞元形式
9753197
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercávamos
0
3433637
9753198
2026-05-06T06:42:27Z
TongcyBot
83009
半自動導入非詞元形式
9753198
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercáveis
0
3433638
9753199
2026-05-06T06:42:28Z
TongcyBot
83009
半自動導入非詞元形式
9753199
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acercó
0
3433639
9753200
2026-05-06T06:42:31Z
TongcyBot
83009
半自動導入非詞元形式
9753200
wikitext
text/x-wiki
{{also|acerco}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
a9rl06bzunsttqu258ugt0tbgowph41
acerque
0
3433640
9753201
2026-05-06T06:42:32Z
TongcyBot
83009
半自動導入非詞元形式
9753201
wikitext
text/x-wiki
{{also|acerqué}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
p2320ok6e3f2xcykq1owb3kwi6ugqla
acerquei
0
3433641
9753202
2026-05-06T06:42:33Z
TongcyBot
83009
半自動導入非詞元形式
9753202
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acerqueis
0
3433642
9753203
2026-05-06T06:42:35Z
TongcyBot
83009
半自動導入非詞元形式
9753203
wikitext
text/x-wiki
{{also|acerquéis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
aarvshvb83dnu1cx3wtb45f94w3gxs8
acerquem
0
3433643
9753204
2026-05-06T06:42:36Z
TongcyBot
83009
半自動導入非詞元形式
9753204
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
h6pufag1d41224lzukiicw4j1x532ad
acerquemos
0
3433644
9753205
2026-05-06T06:42:37Z
TongcyBot
83009
半自動導入非詞元形式
9753205
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ehh5scfrvov2265lu8rgsje7i69ns2l
acerquen
0
3433645
9753206
2026-05-06T06:42:39Z
TongcyBot
83009
半自動導入非詞元形式
9753206
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acerques
0
3433646
9753207
2026-05-06T06:42:40Z
TongcyBot
83009
半自動導入非詞元形式
9753207
wikitext
text/x-wiki
{{also|acerqués}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|acercar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
5wkdspv1qutwskw3vqawy3aog97kjnj
acerqué
0
3433647
9753208
2026-05-06T06:42:41Z
TongcyBot
83009
半自動導入非詞元形式
9753208
wikitext
text/x-wiki
{{also|acerque}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
4ohp4g8fh96iw63gvwx6fkvv42c41kv
acerquéis
0
3433648
9753209
2026-05-06T06:42:42Z
TongcyBot
83009
半自動導入非詞元形式
9753209
wikitext
text/x-wiki
{{also|acerqueis}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
e8vl9bm7h8h38rnrnjqpixkl2xklt56
acerquémonos
0
3433649
9753210
2026-05-06T06:42:44Z
TongcyBot
83009
半自動導入非詞元形式
9753210
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acerquémosla
0
3433650
9753211
2026-05-06T06:42:45Z
TongcyBot
83009
半自動導入非詞元形式
9753211
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acerqués
0
3433651
9753212
2026-05-06T06:42:47Z
TongcyBot
83009
半自動導入非詞元形式
9753212
wikitext
text/x-wiki
{{also|acerques}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
3e7dqrdxm3o6icg984j2pewcvqx1d0f
acérquense
0
3433652
9753213
2026-05-06T06:42:48Z
TongcyBot
83009
半自動導入非詞元形式
9753213
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
acérquese
0
3433653
9753214
2026-05-06T06:42:50Z
TongcyBot
83009
半自動導入非詞元形式
9753214
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|acercar}}
ca5qyuuxh99lq1y90rdevii2p508dvp
validaba
0
3433654
9753215
2026-05-06T06:42:50Z
TongcyBot
83009
半自動導入非詞元形式
9753215
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validabais
0
3433655
9753216
2026-05-06T06:42:52Z
TongcyBot
83009
半自動導入非詞元形式
9753216
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validaban
0
3433656
9753217
2026-05-06T06:42:53Z
TongcyBot
83009
半自動導入非詞元形式
9753217
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validabas
0
3433657
9753218
2026-05-06T06:42:55Z
TongcyBot
83009
半自動導入非詞元形式
9753218
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validad
0
3433658
9753219
2026-05-06T06:42:56Z
TongcyBot
83009
半自動導入非詞元形式
9753219
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validada
0
3433659
9753220
2026-05-06T06:42:57Z
TongcyBot
83009
半自動導入非詞元形式
9753220
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=f-s}}
# {{feminine singular of|pt|validado}}
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|過去分詞變格形|g=f-s}}
# {{feminine singular of|es|validado}}
h1zlfuwdyqy6tnnhojxov7h25p6ikz7
validadas
0
3433660
9753221
2026-05-06T06:42:59Z
TongcyBot
83009
半自動導入非詞元形式
9753221
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=f-p}}
# {{feminine plural of|pt|validado}}
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|過去分詞變格形|g=f-p}}
# {{feminine plural of|es|validado}}
6zsvk9b8gqn5m7fgbhyjms0svxmxjpu
validades
0
3433661
9753222
2026-05-06T06:43:00Z
TongcyBot
83009
半自動導入非詞元形式
9753222
wikitext
text/x-wiki
==葡萄牙語==
===名詞===
{{head|pt|名詞變格形}}
# {{plural of|pt|validade}}
823f7wddmixq6gx0u4turdibb4d8ppm
validado
0
3433662
9753223
2026-05-06T06:43:02Z
TongcyBot
83009
半自動導入非詞元形式
9753223
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{pt-pp}}
# {{past participle of|pt|validar}}
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{es-past participle}}
# {{past participle of|es|validar}}
guolo9fdbiyt3c8rq2kjiopavroy79f
validados
0
3433663
9753224
2026-05-06T06:43:03Z
TongcyBot
83009
半自動導入非詞元形式
9753224
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=m-p}}
# {{masculine plural of|pt|validado}}
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|過去分詞變格形|g=m-p}}
# {{masculine plural of|es|validado}}
rpqh8utgpi83zx1j04bj4yxm51gn3fk
validai
0
3433664
9753225
2026-05-06T06:43:04Z
TongcyBot
83009
半自動導入非詞元形式
9753225
wikitext
text/x-wiki
==法語==
===發音===
* {{fr-IPA|pos=v}}
* {{homophones|fr|validé|validée|validées|valider|validés|validez}}
===動詞===
{{head|fr|動詞變位形式}}
# {{inflection of|fr|valider||1|s|phis}}
==意大利語==
===發音===
{{it-pr|validài}}
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|validare||1|s|phis}}
===異序詞===
* {{anagrams|it|a=aadiilv|alidiva|dilavai}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
i6e082w1luxwiw1ypr3q1262boktqbp
validais
0
3433665
9753226
2026-05-06T06:43:05Z
TongcyBot
83009
半自動導入非詞元形式
9753226
wikitext
text/x-wiki
{{also|validáis}}
==法語==
===發音===
* {{fr-IPA}}
===動詞===
{{head|fr|動詞變位形式}}
# {{inflection of|fr|valider||1//2|s|impf|indc}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
9tfncu78iwvra5005prsekb7kq57jl9
validam
0
3433666
9753227
2026-05-06T06:43:07Z
TongcyBot
83009
半自動導入非詞元形式
9753227
wikitext
text/x-wiki
==拉丁語==
===發音===
* {{la-IPA}}
===形容詞===
{{head|la|形容詞變格形}}
# {{inflection of|la|validus||acc|f|s}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
cz0ycz98sprmbpy7rajqnfwh670brgt
validamos
0
3433667
9753228
2026-05-06T06:43:08Z
TongcyBot
83009
半自動導入非詞元形式
9753228
wikitext
text/x-wiki
{{also|validámos}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
ad5q7xt32i3myorjr6wb55bhfeg9yaq
validando
0
3433668
9753229
2026-05-06T06:43:10Z
TongcyBot
83009
半自動導入非詞元形式
9753229
wikitext
text/x-wiki
==意大利語==
===發音===
{{it-pr}}
===動詞===
{{head|it|動名詞}}
# {{gerund of|it|validare}}
===異序詞===
* {{anagrams|it|a=aaddilnov|dilavando}}
==葡萄牙語==
===動詞===
{{head|pt|動名詞}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動名詞}}
# {{es-verb form of|validar}}
rbiqams3f678t6cqmdoayz70wq36x6o
validant
0
3433669
9753230
2026-05-06T06:43:11Z
TongcyBot
83009
半自動導入非詞元形式
9753230
wikitext
text/x-wiki
==法語==
===分詞===
{{head|fr|現在分詞}}
# {{present participle of|fr|valider}}
a8bocp0n9y57gttw1wx6vwas6mh27vd
validara
0
3433670
9753231
2026-05-06T06:43:13Z
TongcyBot
83009
半自動導入非詞元形式
9753231
wikitext
text/x-wiki
{{also|validará}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
6cyd4b41gl6l7ykruroeeaql1ogmn9i
validarais
0
3433671
9753232
2026-05-06T06:43:14Z
TongcyBot
83009
半自動導入非詞元形式
9753232
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validaram
0
3433672
9753233
2026-05-06T06:43:15Z
TongcyBot
83009
半自動導入非詞元形式
9753233
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validaran
0
3433673
9753234
2026-05-06T06:43:16Z
TongcyBot
83009
半自動導入非詞元形式
9753234
wikitext
text/x-wiki
{{also|validarán}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
8qel5ybru5thbsg7e34hokymik9lyc5
validaras
0
3433674
9753235
2026-05-06T06:43:17Z
TongcyBot
83009
半自動導入非詞元形式
9753235
wikitext
text/x-wiki
{{also|validarás}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
1w2b5ey89qo9rscudovxl2rziroljxy
validardes
0
3433675
9753236
2026-05-06T06:43:19Z
TongcyBot
83009
半自動導入非詞元形式
9753236
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validare
0
3433676
9753237
2026-05-06T06:43:20Z
TongcyBot
83009
半自動導入非詞元形式
9753237
wikitext
text/x-wiki
{{also|validaré}}
==意大利語==
===詞源===
源自{{der|it|la|valido|validāre}},源自 {{m|la|validus}}。
===發音===
{{it-pr}}
===動詞===
{{it-verb|a/à}}
# {{lb|it|及物}} to [[validate]]
#: {{syn|it|convalidare}}
====變位====
{{it-conj|a/à}}
====相關詞彙====
* {{l|it|validatrice}}
* {{l|it|valido}}
* {{l|it|validazione}}
* {{l|it|convalidare}}
===異序詞===
* {{anagrams|it|a=aadeilrv|delirava|dilavare|dilaverà|validerà}}
==拉丁語==
===發音===
* {{la-IPA|validāre}}
===動詞===
{{head|la|動詞變位形式|head=validāre}}
# {{inflection of|la|validō||pres|actv|inf|;|2|s|pres|pasv|imp//ind}}
==羅馬尼亞語==
===詞源===
源自 {{suffix|ro|valida|-re}}。
===名詞===
{{ro-noun|f|validări}}
# [[validation]]
====變格====
{{ro-noun-f-e|validar|validăr}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
ef7mrm7cskok0c91h7ybkbjbi6rgvby
9753740
9753237
2026-05-06T07:23:06Z
Sayonzei
40728
9753740
wikitext
text/x-wiki
{{also|validaré}}
==意大利語==
===詞源===
源自{{der|it|la|valido|validāre}},源自 {{m|la|validus}}。
===發音===
{{it-pr}}
===動詞===
{{it-verb|a/à}}
# {{lb|it|及物}} 使[[生效]],[[確認]],[[驗證]]
#: {{syn|it|convalidare}}
====變位====
{{it-conj|a/à}}
====相關詞彙====
* {{l|it|validatrice}}
* {{l|it|valido}}
* {{l|it|validazione}}
* {{l|it|convalidare}}
===異序詞===
* {{anagrams|it|a=aadeilrv|delirava|dilavare|dilaverà|validerà}}
==拉丁語==
===發音===
* {{la-IPA|validāre}}
===動詞===
{{head|la|動詞變位形式|head=validāre}}
# {{inflection of|la|validō||pres|actv|inf|;|2|s|pres|pasv|imp//ind}}
==羅馬尼亞語==
===詞源===
源自 {{suffix|ro|valida|-re}}。
===名詞===
{{ro-noun|f|validări}}
# [[確認]],[[驗證]]
====變格====
{{ro-noun-f-e|validar|validăr}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
e62xt6rd1xllfl2syr1o6x5o3wxsmcy
validarei
0
3433677
9753238
2026-05-06T06:43:21Z
TongcyBot
83009
半自動導入非詞元形式
9753238
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validareis
0
3433678
9753239
2026-05-06T06:43:24Z
TongcyBot
83009
半自動導入非詞元形式
9753239
wikitext
text/x-wiki
{{also|validaréis|validáreis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
aytpnkm4748uo09506mrl3dkrgyp11j
validarem
0
3433679
9753240
2026-05-06T06:43:25Z
TongcyBot
83009
半自動導入非詞元形式
9753240
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validaremos
0
3433680
9753241
2026-05-06T06:43:26Z
TongcyBot
83009
半自動導入非詞元形式
9753241
wikitext
text/x-wiki
{{also|validáremos}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
1u7ei2rhqk9gckfhkk29tm10uotl4w9
validaren
0
3433681
9753242
2026-05-06T06:43:27Z
TongcyBot
83009
半自動導入非詞元形式
9753242
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validares
0
3433682
9753243
2026-05-06T06:43:29Z
TongcyBot
83009
半自動導入非詞元形式
9753243
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
iesxvw5n0dz352b3vqny1fidcounu5e
validaria
0
3433683
9753244
2026-05-06T06:43:30Z
TongcyBot
83009
半自動導入非詞元形式
9753244
wikitext
text/x-wiki
{{also|validaría}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
5q5c8br9ls8jr5zfet6xbsmsn584ujm
validariam
0
3433684
9753245
2026-05-06T06:43:31Z
TongcyBot
83009
半自動導入非詞元形式
9753245
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validarias
0
3433685
9753246
2026-05-06T06:43:32Z
TongcyBot
83009
半自動導入非詞元形式
9753246
wikitext
text/x-wiki
{{also|validarías}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
8o7w5vlcxgbqbo7sop4m1fw85ks2u4f
validarla
0
3433686
9753247
2026-05-06T06:43:34Z
TongcyBot
83009
半自動導入非詞元形式
9753247
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validarlas
0
3433687
9753248
2026-05-06T06:43:35Z
TongcyBot
83009
半自動導入非詞元形式
9753248
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validarle
0
3433688
9753249
2026-05-06T06:43:37Z
TongcyBot
83009
半自動導入非詞元形式
9753249
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validarles
0
3433689
9753250
2026-05-06T06:43:38Z
TongcyBot
83009
半自動導入非詞元形式
9753250
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validarlo
0
3433690
9753251
2026-05-06T06:43:40Z
TongcyBot
83009
半自動導入非詞元形式
9753251
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validarlos
0
3433691
9753252
2026-05-06T06:43:41Z
TongcyBot
83009
半自動導入非詞元形式
9753252
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validarme
0
3433692
9753253
2026-05-06T06:43:43Z
TongcyBot
83009
半自動導入非詞元形式
9753253
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validarmos
0
3433693
9753254
2026-05-06T06:43:44Z
TongcyBot
83009
半自動導入非詞元形式
9753254
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validarnos
0
3433694
9753255
2026-05-06T06:43:45Z
TongcyBot
83009
半自動導入非詞元形式
9753255
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validaron
0
3433695
9753256
2026-05-06T06:43:46Z
TongcyBot
83009
半自動導入非詞元形式
9753256
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validaros
0
3433696
9753257
2026-05-06T06:43:48Z
TongcyBot
83009
半自動導入非詞元形式
9753257
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validarse
0
3433697
9753258
2026-05-06T06:43:49Z
TongcyBot
83009
半自動導入非詞元形式
9753258
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validarte
0
3433698
9753259
2026-05-06T06:43:50Z
TongcyBot
83009
半自動導入非詞元形式
9753259
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validará
0
3433699
9753260
2026-05-06T06:43:51Z
TongcyBot
83009
半自動導入非詞元形式
9753260
wikitext
text/x-wiki
{{also|validara}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
5zhpyhaeqgm1liusddz1w3g1hek12xv
validarán
0
3433700
9753261
2026-05-06T06:43:52Z
TongcyBot
83009
半自動導入非詞元形式
9753261
wikitext
text/x-wiki
{{also|validaran}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
3hqn7la3b5vkzdm7yzryt6pxs03lxym
validarás
0
3433701
9753262
2026-05-06T06:43:54Z
TongcyBot
83009
半自動導入非詞元形式
9753262
wikitext
text/x-wiki
{{also|validaras}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
hgxuqna7d28e99cjzmdwz04nmm0see3
validarão
0
3433702
9753263
2026-05-06T06:43:55Z
TongcyBot
83009
半自動導入非詞元形式
9753263
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validaré
0
3433703
9753264
2026-05-06T06:43:57Z
TongcyBot
83009
半自動導入非詞元形式
9753264
wikitext
text/x-wiki
{{also|validare}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
5w62o1saodnmj25ezrndtdjq5x05ben
validaréis
0
3433704
9753265
2026-05-06T06:43:58Z
TongcyBot
83009
半自動導入非詞元形式
9753265
wikitext
text/x-wiki
{{also|validareis|validáreis}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
hw6rsm93uro2mhcl0no9fjccqtyc5zz
validaría
0
3433705
9753266
2026-05-06T06:44:00Z
TongcyBot
83009
半自動導入非詞元形式
9753266
wikitext
text/x-wiki
{{also|validaria}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
h3oj7n6squejrh2gijr3vax5aq8cf0y
validaríais
0
3433706
9753267
2026-05-06T06:44:01Z
TongcyBot
83009
半自動導入非詞元形式
9753267
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validaríamos
0
3433707
9753268
2026-05-06T06:44:03Z
TongcyBot
83009
半自動導入非詞元形式
9753268
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
iesxvw5n0dz352b3vqny1fidcounu5e
validarían
0
3433708
9753269
2026-05-06T06:44:04Z
TongcyBot
83009
半自動導入非詞元形式
9753269
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validarías
0
3433709
9753270
2026-05-06T06:44:05Z
TongcyBot
83009
半自動導入非詞元形式
9753270
wikitext
text/x-wiki
{{also|validarias}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
0vxzvfqveaf4pvyjwi8t29qt6ss3bxr
validaríeis
0
3433710
9753271
2026-05-06T06:44:06Z
TongcyBot
83009
半自動導入非詞元形式
9753271
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validas
0
3433711
9753272
2026-05-06T06:44:08Z
TongcyBot
83009
半自動導入非詞元形式
9753272
wikitext
text/x-wiki
{{also|validás|válidas}}
==法語==
===動詞===
{{head|fr|動詞變位形式}}
# {{inflection of|fr|valider||2|s|phis}}
==拉丁語==
===形容詞===
{{head|la|形容詞變格形|head=validās}}
# {{inflection of|la|validus||acc|f|p}}
==葡萄牙語==
===詞源1===
====形容詞====
{{head|pt|形容詞變格形}}
# {{adj form of|pt|valido||f|p}}
====分詞====
{{head|pt|過去分詞變格形}}
# {{feminine plural of|pt|valido}}
===詞源2===
====動詞====
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===形容詞===
{{head|es|形容詞變格形|g=f-p}}
# {{adj form of|es|valido||f|p}}
===分詞===
{{head|es|過去分詞變格形|g=f-p}}
# {{feminine plural of|es|valido}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
75nlrcudcl8m9mjw5yor9owsxfbueaj
validase
0
3433712
9753273
2026-05-06T06:44:09Z
TongcyBot
83009
半自動導入非詞元形式
9753273
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validaseis
0
3433713
9753274
2026-05-06T06:44:10Z
TongcyBot
83009
半自動導入非詞元形式
9753274
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validasen
0
3433714
9753275
2026-05-06T06:44:11Z
TongcyBot
83009
半自動導入非詞元形式
9753275
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validases
0
3433715
9753276
2026-05-06T06:44:12Z
TongcyBot
83009
半自動導入非詞元形式
9753276
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validasse
0
3433716
9753277
2026-05-06T06:44:13Z
TongcyBot
83009
半自動導入非詞元形式
9753277
wikitext
text/x-wiki
==法語==
===發音===
* {{fr-IPA}}
===動詞===
{{head|fr|動詞變位形式}}
# {{inflection of|fr|valider||1|s|impf|subj}}
===異序詞===
* {{anagrams|fr|a=aadeilssv|dévalisas}}
==意大利語==
===發音===
{{it-pr|validàsse}}
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|validare||3|s|impf|subj}}
===異序詞===
* {{anagrams|it|a=aadeilssv|dilavasse}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
ie3v9x6yxnb6vhcvm3artge2lmf8t2y
validassem
0
3433717
9753278
2026-05-06T06:44:15Z
TongcyBot
83009
半自動導入非詞元形式
9753278
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validasses
0
3433718
9753279
2026-05-06T06:44:16Z
TongcyBot
83009
半自動導入非詞元形式
9753279
wikitext
text/x-wiki
==法語==
===發音===
* {{fr-IPA}}
===動詞===
{{head|fr|動詞變位形式}}
# {{inflection of|fr|valider||2|s|impf|subj}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
hoge83yyhlbtm47zvhhyz8jd1y93pp6
validaste
0
3433719
9753280
2026-05-06T06:44:17Z
TongcyBot
83009
半自動導入非詞元形式
9753280
wikitext
text/x-wiki
==意大利語==
===發音===
{{it-pr|validàste}}
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|validare||2|p|phis|;|2|p|impf|sub}}
===異序詞===
* {{anagrams|it|a=aadeilstv|dilavaste|disvelata|saldatevi}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
aprfdc7xadftda8yhd3i3wrbebhr781
validasteis
0
3433720
9753281
2026-05-06T06:44:19Z
TongcyBot
83009
半自動導入非詞元形式
9753281
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validastes
0
3433721
9753282
2026-05-06T06:44:20Z
TongcyBot
83009
半自動導入非詞元形式
9753282
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validat
0
3433722
9753283
2026-05-06T06:44:22Z
TongcyBot
83009
半自動導入非詞元形式
9753283
wikitext
text/x-wiki
==羅馬尼亞語==
===詞源===
Past participle of {{m|ro|valida}}。
===形容詞===
{{ro-adj}}
# [[validated]]
====變格====
{{ro-decl-adj}}
===動詞===
{{ro-past|valida}}
# {{past participle of|ro|valida}}
===參考資料===
* {{R:MDA2}}
nn24wzo891zmkjv4le9op8r1hzoy41o
9753739
9753283
2026-05-06T07:21:09Z
Sayonzei
40728
9753739
wikitext
text/x-wiki
==羅馬尼亞語==
===詞源===
{{m|ro|valida}} 的過去分詞。
===形容詞===
{{ro-adj}}
# 經過[[確認]]的,經過[[驗證]]的
====變格====
{{ro-decl-adj}}
===動詞===
{{ro-past|valida}}
# {{past participle of|ro|valida}}
===參考資料===
* {{R:MDA2}}
ntmg57xcq9hydl8ivzqsesborucjtk0
validato
0
3433723
9753284
2026-05-06T06:44:23Z
TongcyBot
83009
半自動導入非詞元形式
9753284
wikitext
text/x-wiki
==意大利語==
===分詞===
{{it-pp}}
# {{past participle of|it|validare}}
===異序詞===
* {{anagrams|it|a=aadilotv|dilatavo|dilavato|lodativa}}
1tv2g0bmlfnxynjfmyrg9qfxm8rpu06
validava
0
3433724
9753285
2026-05-06T06:44:25Z
TongcyBot
83009
半自動導入非詞元形式
9753285
wikitext
text/x-wiki
==意大利語==
===發音===
{{it-pr|validàva}}
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|validare||3|s|impf|indc}}
===異序詞===
* {{anagrams|it|a=aaadilvv|dilavava}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
5uq6jy9co6ihhelw8pyj7qp9x3mltc3
validavam
0
3433725
9753286
2026-05-06T06:44:26Z
TongcyBot
83009
半自動導入非詞元形式
9753286
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validavas
0
3433726
9753287
2026-05-06T06:44:27Z
TongcyBot
83009
半自動導入非詞元形式
9753287
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validavi
0
3433727
9753288
2026-05-06T06:44:28Z
TongcyBot
83009
半自動導入非詞元形式
9753288
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|validare||2|s|impf|indc}}
===異序詞===
* {{anagrams|it|a=aadiilvv|dilavavi}}
kttc2ek0rfklxlvdl8gh0906s1ae717
validei
0
3433728
9753289
2026-05-06T06:44:30Z
TongcyBot
83009
半自動導入非詞元形式
9753289
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
valideis
0
3433729
9753290
2026-05-06T06:44:31Z
TongcyBot
83009
半自動導入非詞元形式
9753290
wikitext
text/x-wiki
{{also|validéis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
iswp437jyserikvt0hekt620wf2ekfu
validem
0
3433730
9753291
2026-05-06T06:44:32Z
TongcyBot
83009
半自動導入非詞元形式
9753291
wikitext
text/x-wiki
==德語==
===發音===
* {{audio|de|De-validem.ogg|a=<<Germany>> (<<Berlin>>)}}
===形容詞===
{{head|de|形容詞變格形}}
# {{de-adj form of|valid}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
gj4s22104ncpodwdhnsar62588nyx0u
validemos
0
3433731
9753292
2026-05-06T06:44:33Z
TongcyBot
83009
半自動導入非詞元形式
9753292
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
iesxvw5n0dz352b3vqny1fidcounu5e
validen
0
3433732
9753293
2026-05-06T06:44:35Z
TongcyBot
83009
半自動導入非詞元形式
9753293
wikitext
text/x-wiki
==德語==
===發音===
* {{audio|de|De-validen.ogg|a=<<Germany>> (<<Berlin>>)}}
===形容詞===
{{head|de|形容詞變格形}}
# {{de-adj form of|valid}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
r18k1sa9a7r8w36ri2j9bu7nne7eege
valident
0
3433733
9753294
2026-05-06T06:44:36Z
TongcyBot
83009
半自動導入非詞元形式
9753294
wikitext
text/x-wiki
==法語==
===動詞===
{{head|fr|動詞變位形式}}
# {{inflection of|fr|valider||3|p|pres|ind//sub}}
4y7xaaz6g0wu67v5fbmkdwd0f0pd3yf
validere
0
3433734
9753295
2026-05-06T06:44:37Z
TongcyBot
83009
半自動導入非詞元形式
9753295
wikitext
text/x-wiki
==荷蘭語==
===發音===
* {{audio|nl|Nl-validere.ogg}}
===形容詞===
{{head|nl|形容詞變格形}}
# {{inflection of|nl|valide||indef|m|and|f|s|comd|;|indef|p|comd|;|def|comd}}
ru22mxzsyh897zzcvkjpp3slsdrgim2
valides
0
3433735
9753296
2026-05-06T06:44:38Z
TongcyBot
83009
半自動導入非詞元形式
9753296
wikitext
text/x-wiki
{{also|validés|vàlides}}
==荷蘭語==
===發音===
* {{audio|nl|Nl-valides.ogg}}
===形容詞===
{{head|nl|形容詞變格形}}
# {{inflection of|nl|valide||par}}
==法語==
===發音===
* {{fr-IPA}}
* {{homophones|fr|valide}}
===形容詞===
{{head|fr|形容詞變格形}}
# {{adj form of|fr|valide||p}}
==德語==
===發音===
* {{audio|de|De-valides.ogg|a=<<Germany>> (<<Berlin>>)}}
===形容詞===
{{head|de|形容詞變格形}}
# {{de-adj form of|valid}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
brnoxq0gj6aaugc6ocq4yro5z2w62b4
validi
0
3433736
9753297
2026-05-06T06:44:40Z
TongcyBot
83009
半自動導入非詞元形式
9753297
wikitext
text/x-wiki
==世界語==
===發音===
{{eo-pr}}
===動詞===
{{eo-head}}
# to be [[valid]]
====變位====
{{eo-conj|intr=yes}}
===延伸閱讀===
* {{R:eo:PIV 2020}}
* {{R:eo:ReVo}}
==芬蘭語==
===詞源===
{{internationalism|fi}} (see {{cog|en|valid}}),最终源自{{der|fi|la|validus}}。
===發音===
{{fi-p}}
===形容詞===
{{fi-adj|valid|impi|ein}}
# [[valid]]
====變格====
{{fi-decl-risti|pos=adj|valid|||a}}
====派生詞彙====
{{col|fi
|validisti
|validiteetti
|validius
}}
====相關詞彙====
* {{l|fi|validiteetti}}
===延伸閱讀===
* {{R:fi:KTSK|accessdate=2023-07-04}}
===異序詞===
* {{anagrams|fi|a=adiilv|divali}}
==意大利語==
===形容詞===
{{head|it|形容詞變格形|g=m-p}}
# {{adj form of|it|valido||m|p}}
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|validare||2|s|pres|;|1//2//3|s|pres|subj|;|3|s|impr}}
===異序詞===
* {{anagrams|it|a=adiilv|Vidali|dilavi|livida}}
==拉丁語==
===形容詞===
{{head|la|形容詞變格形|head=validī}}
# {{inflection of|la|validus||nom//voc|m|p|;|gen|m//n|s}}
0gvybjtr1zd051w5a77dsqtwm9p4u3r
9753743
9753297
2026-05-06T07:25:25Z
Sayonzei
40728
9753743
wikitext
text/x-wiki
==世界語==
===發音===
{{eo-pr}}
===動詞===
{{eo-head}}
# [[有效]]
====變位====
{{eo-conj|intr=yes}}
===延伸閱讀===
* {{R:eo:PIV 2020}}
* {{R:eo:ReVo}}
==芬蘭語==
===詞源===
{{internationalism|fi}}(參見{{cog|en|valid}}),最终源自{{der|fi|la|validus}}。
===發音===
{{fi-p}}
===形容詞===
{{fi-adj|valid|impi|ein}}
# [[有效]]的
====變格====
{{fi-decl-risti|pos=adj|valid|||a}}
====派生詞彙====
{{col|fi
|validisti
|validiteetti
|validius
}}
====相關詞彙====
* {{l|fi|validiteetti}}
===延伸閱讀===
* {{R:fi:KTSK|accessdate=2023-07-04}}
===異序詞===
* {{anagrams|fi|a=adiilv|divali}}
==意大利語==
===形容詞===
{{head|it|形容詞變格形|g=m-p}}
# {{adj form of|it|valido||m|p}}
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|validare||2|s|pres|;|1//2//3|s|pres|subj|;|3|s|impr}}
===異序詞===
* {{anagrams|it|a=adiilv|Vidali|dilavi|livida}}
==拉丁語==
===形容詞===
{{head|la|形容詞變格形|head=validī}}
# {{inflection of|la|validus||nom//voc|m|p|;|gen|m//n|s}}
fr1hobu237q9pxc7ktml9ch0f2h7moh
validis
0
3433737
9753298
2026-05-06T06:44:41Z
TongcyBot
83009
半自動導入非詞元形式
9753298
wikitext
text/x-wiki
==拉丁語==
===形容詞===
{{head|la|形容詞變格形|head=validīs}}
# {{inflection of|la|validus||dat//abl|m//f//n|p}}
cuugva1g1514l6pnqs8m232t3d7pun0
validou
0
3433738
9753299
2026-05-06T06:44:43Z
TongcyBot
83009
半自動導入非詞元形式
9753299
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validá
0
3433739
9753300
2026-05-06T06:44:44Z
TongcyBot
83009
半自動導入非詞元形式
9753300
wikitext
text/x-wiki
{{also|valida|válida|vàlida}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
3y1ixqk7mbepumgoo9nhggiehv8utjz
validábamos
0
3433740
9753301
2026-05-06T06:44:46Z
TongcyBot
83009
半自動導入非詞元形式
9753301
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validáis
0
3433741
9753302
2026-05-06T06:44:47Z
TongcyBot
83009
半自動導入非詞元形式
9753302
wikitext
text/x-wiki
{{also|validais}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
jrssl5u7jvcj3zftmvcf4eu07z60d6o
validámos
0
3433742
9753303
2026-05-06T06:44:49Z
TongcyBot
83009
半自動導入非詞元形式
9753303
wikitext
text/x-wiki
{{also|validamos}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
fyoqf1headxfkykt2bzgr4z11zpans1
validándola
0
3433743
9753304
2026-05-06T06:44:50Z
TongcyBot
83009
半自動導入非詞元形式
9753304
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validándolas
0
3433744
9753305
2026-05-06T06:44:52Z
TongcyBot
83009
半自動導入非詞元形式
9753305
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validándole
0
3433745
9753306
2026-05-06T06:44:53Z
TongcyBot
83009
半自動導入非詞元形式
9753306
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validándoles
0
3433746
9753307
2026-05-06T06:44:54Z
TongcyBot
83009
半自動導入非詞元形式
9753307
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validándolo
0
3433747
9753308
2026-05-06T06:44:55Z
TongcyBot
83009
半自動導入非詞元形式
9753308
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validándolos
0
3433748
9753309
2026-05-06T06:44:56Z
TongcyBot
83009
半自動導入非詞元形式
9753309
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validándome
0
3433749
9753310
2026-05-06T06:44:58Z
TongcyBot
83009
半自動導入非詞元形式
9753310
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validándonos
0
3433750
9753311
2026-05-06T06:44:59Z
TongcyBot
83009
半自動導入非詞元形式
9753311
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validándoos
0
3433751
9753312
2026-05-06T06:45:01Z
TongcyBot
83009
半自動導入非詞元形式
9753312
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validándose
0
3433752
9753313
2026-05-06T06:45:02Z
TongcyBot
83009
半自動導入非詞元形式
9753313
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validándote
0
3433753
9753314
2026-05-06T06:45:05Z
TongcyBot
83009
半自動導入非詞元形式
9753314
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validáramos
0
3433754
9753315
2026-05-06T06:45:05Z
TongcyBot
83009
半自動導入非詞元形式
9753315
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
iesxvw5n0dz352b3vqny1fidcounu5e
validáreis
0
3433755
9753316
2026-05-06T06:45:07Z
TongcyBot
83009
半自動導入非詞元形式
9753316
wikitext
text/x-wiki
{{also|validareis|validaréis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
iwbs3pvhi6wby5svsvavef0er7mz5vz
validáremos
0
3433756
9753317
2026-05-06T06:45:08Z
TongcyBot
83009
半自動導入非詞元形式
9753317
wikitext
text/x-wiki
{{also|validaremos}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
5y4934fntrzhv3hm5ucmcjeuvmz76eg
validás
0
3433757
9753318
2026-05-06T06:45:10Z
TongcyBot
83009
半自動導入非詞元形式
9753318
wikitext
text/x-wiki
{{also|validas|válidas}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
m54asdzh1cfuzt75twwgiq027t8gnw4
validásemos
0
3433758
9753319
2026-05-06T06:45:11Z
TongcyBot
83009
半自動導入非詞元形式
9753319
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
9rknu8i59birhzbkgvnm4r2jl67m5t0
validásseis
0
3433759
9753320
2026-05-06T06:45:13Z
TongcyBot
83009
半自動導入非詞元形式
9753320
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validássemos
0
3433760
9753321
2026-05-06T06:45:14Z
TongcyBot
83009
半自動導入非詞元形式
9753321
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validávamos
0
3433761
9753322
2026-05-06T06:45:15Z
TongcyBot
83009
半自動導入非詞元形式
9753322
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validáveis
0
3433762
9753323
2026-05-06T06:45:16Z
TongcyBot
83009
半自動導入非詞元形式
9753323
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|validar}}
dlitofm44z7iyha0pyc4s8lebbmmss0
validé
0
3433763
9753324
2026-05-06T06:45:18Z
TongcyBot
83009
半自動導入非詞元形式
9753324
wikitext
text/x-wiki
{{also|valide}}
==法語==
===分詞===
{{fr-past participle}}
# {{past participle of|fr|valider}}
==皮埃蒙特語==
===發音===
* {{IPA|pms|/valiˈde/}}
===動詞===
{{head|pms|動詞}}
# to [[validate]]
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
7vz2vrdd9ay3ih8jey31q0z3vosiuq1
9753746
9753324
2026-05-06T07:25:55Z
Sayonzei
40728
/* 動詞 */
9753746
wikitext
text/x-wiki
{{also|valide}}
==法語==
===分詞===
{{fr-past participle}}
# {{past participle of|fr|valider}}
==皮埃蒙特語==
===發音===
* {{IPA|pms|/valiˈde/}}
===動詞===
{{head|pms|動詞}}
# [[確認]],[[驗證]]
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
m6yoba2nvap0nm2a2cs6dfy0iawu9uh
validéis
0
3433764
9753325
2026-05-06T06:45:19Z
TongcyBot
83009
半自動導入非詞元形式
9753325
wikitext
text/x-wiki
{{also|valideis}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
ak1selr4jn3epq6h15o09el4cy4ikms
validés
0
3433765
9753326
2026-05-06T06:45:20Z
TongcyBot
83009
半自動導入非詞元形式
9753326
wikitext
text/x-wiki
{{also|valides|vàlides}}
==法語==
===分詞===
{{head|fr|過去分詞變格形|g=m-p}}
# {{masculine plural of|fr|validé}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
evv2dg3a69t21wrn4ytd8xwfo05gzk1
validó
0
3433766
9753327
2026-05-06T06:45:21Z
TongcyBot
83009
半自動導入非詞元形式
9753327
wikitext
text/x-wiki
{{also|valido|válido|validò}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|validar}}
db69q8otdry8m0cevcoeix2ej82r5io
valorice
0
3433767
9753328
2026-05-06T06:45:22Z
TongcyBot
83009
半自動導入非詞元形式
9753328
wikitext
text/x-wiki
{{also|valoricé}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
ktiuh81768znza5j4o1cwkxp8rbe7wu
valoricemos
0
3433768
9753329
2026-05-06T06:45:24Z
TongcyBot
83009
半自動導入非詞元形式
9753329
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valoricen
0
3433769
9753330
2026-05-06T06:45:25Z
TongcyBot
83009
半自動導入非詞元形式
9753330
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorices
0
3433770
9753331
2026-05-06T06:45:26Z
TongcyBot
83009
半自動導入非詞元形式
9753331
wikitext
text/x-wiki
{{also|valoricés}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
5l8o4yajps6py173p6chfqelcprxz3k
valoricé
0
3433771
9753332
2026-05-06T06:45:27Z
TongcyBot
83009
半自動導入非詞元形式
9753332
wikitext
text/x-wiki
{{also|valorice}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
6xhu4pxkrx4vil22um4cbio34swmr0m
valoricéis
0
3433772
9753333
2026-05-06T06:45:28Z
TongcyBot
83009
半自動導入非詞元形式
9753333
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valoricés
0
3433773
9753334
2026-05-06T06:45:29Z
TongcyBot
83009
半自動導入非詞元形式
9753334
wikitext
text/x-wiki
{{also|valorices}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
3n2g9o3oovmtwgtgkaahjk5x7itydyy
valoriza
0
3433774
9753335
2026-05-06T06:45:31Z
TongcyBot
83009
半自動導入非詞元形式
9753335
wikitext
text/x-wiki
{{also|valorizá}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==羅馬尼亞語==
===詞源===
{{bor+|ro|fr|valoriser}}。
===動詞===
{{ro-verb|conj=1|valorizează|valorizat}}
# to [[valorize]]
====變位====
{{ro-conj-a-ez}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
d4rimgom2gmeq4k7yi1vyfb6b4t2cjx
9753741
9753335
2026-05-06T07:24:09Z
Sayonzei
40728
/* 動詞 */
9753741
wikitext
text/x-wiki
{{also|valorizá}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==羅馬尼亞語==
===詞源===
{{bor+|ro|fr|valoriser}}。
===動詞===
{{ro-verb|conj=1|valorizează|valorizat}}
# 使有[[價值]],[[賦予]]價值
#(通過補貼)[[維持]][[價格]]
====變位====
{{ro-conj-a-ez}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
37buieu6nvzknrs8jfa24iq0j6na89f
valorizaba
0
3433775
9753336
2026-05-06T06:45:32Z
TongcyBot
83009
半自動導入非詞元形式
9753336
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizabais
0
3433776
9753337
2026-05-06T06:45:33Z
TongcyBot
83009
半自動導入非詞元形式
9753337
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizaban
0
3433777
9753338
2026-05-06T06:45:34Z
TongcyBot
83009
半自動導入非詞元形式
9753338
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizabas
0
3433778
9753339
2026-05-06T06:45:36Z
TongcyBot
83009
半自動導入非詞元形式
9753339
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizad
0
3433779
9753340
2026-05-06T06:45:37Z
TongcyBot
83009
半自動導入非詞元形式
9753340
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizada
0
3433780
9753341
2026-05-06T06:45:38Z
TongcyBot
83009
半自動導入非詞元形式
9753341
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=f-s}}
# {{feminine singular of|pt|valorizado}}
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|過去分詞變格形|g=f-s}}
# {{feminine singular of|es|valorizado}}
1ukbx60vmciv5mvdwfbl8u9vdlyf0rh
valorizadas
0
3433781
9753342
2026-05-06T06:45:39Z
TongcyBot
83009
半自動導入非詞元形式
9753342
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=f-p}}
# {{feminine plural of|pt|valorizado}}
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|過去分詞變格形|g=f-p}}
# {{feminine plural of|es|valorizado}}
qdmglw5c5eb3lkbjj1nwukrotv2vaa9
valorizado
0
3433782
9753343
2026-05-06T06:45:41Z
TongcyBot
83009
半自動導入非詞元形式
9753343
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{pt-pp}}
# {{past participle of|pt|valorizar}}
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{es-past participle}}
# {{past participle of|es|valorizar}}
17lgsk8ah734bthxaz8bv45ggo2elcv
valorizados
0
3433783
9753344
2026-05-06T06:45:42Z
TongcyBot
83009
半自動導入非詞元形式
9753344
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=m-p}}
# {{masculine plural of|pt|valorizado}}
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|過去分詞變格形|g=m-p}}
# {{masculine plural of|es|valorizado}}
cnmmsgeqm8ddmom4si2smvys58unlfp
valorizai
0
3433784
9753345
2026-05-06T06:45:43Z
TongcyBot
83009
半自動導入非詞元形式
9753345
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizais
0
3433785
9753346
2026-05-06T06:45:44Z
TongcyBot
83009
半自動導入非詞元形式
9753346
wikitext
text/x-wiki
{{also|valorizáis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
7wjuabjtxft306z7s4bw0qtel6qtkca
valorizam
0
3433786
9753347
2026-05-06T06:45:45Z
TongcyBot
83009
半自動導入非詞元形式
9753347
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizamos
0
3433787
9753348
2026-05-06T06:45:47Z
TongcyBot
83009
半自動導入非詞元形式
9753348
wikitext
text/x-wiki
{{also|valorizámos}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
czjintmdjsmidrncfokjnipbhacur2u
valorizan
0
3433788
9753349
2026-05-06T06:45:48Z
TongcyBot
83009
半自動導入非詞元形式
9753349
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizando
0
3433789
9753350
2026-05-06T06:45:49Z
TongcyBot
83009
半自動導入非詞元形式
9753350
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動名詞}}
# {{pt-verb form of|valorizar}}
==西班牙語==
===動詞===
{{head|es|動名詞}}
# {{es-verb form of|valorizar}}
c88yqe62ajwthqobgz12oce7ruwlett
valorizara
0
3433790
9753351
2026-05-06T06:45:50Z
TongcyBot
83009
半自動導入非詞元形式
9753351
wikitext
text/x-wiki
{{also|valorizará}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
mtv6nfss1h2wx5c5ps0lm16ffnamte5
valorizarais
0
3433791
9753352
2026-05-06T06:45:51Z
TongcyBot
83009
半自動導入非詞元形式
9753352
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizaram
0
3433792
9753353
2026-05-06T06:45:52Z
TongcyBot
83009
半自動導入非詞元形式
9753353
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizaran
0
3433793
9753354
2026-05-06T06:45:53Z
TongcyBot
83009
半自動導入非詞元形式
9753354
wikitext
text/x-wiki
{{also|valorizarán}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
9fl7zkw95bb8oxum0v8i1znzah7gs75
valorizaras
0
3433794
9753355
2026-05-06T06:45:55Z
TongcyBot
83009
半自動導入非詞元形式
9753355
wikitext
text/x-wiki
{{also|valorizarás}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
qdej873dmxu66v5fbygv6hjokbt2vlt
valorizardes
0
3433795
9753356
2026-05-06T06:45:56Z
TongcyBot
83009
半自動導入非詞元形式
9753356
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizare
0
3433796
9753357
2026-05-06T06:45:58Z
TongcyBot
83009
半自動導入非詞元形式
9753357
wikitext
text/x-wiki
{{also|valorizaré}}
==羅馬尼亞語==
===詞源===
源自 {{suffix|ro|valoriza|-re}}。
===名詞===
{{ro-noun|f|valorizări}}
# [[valorisation]]
====變格====
{{ro-noun-f-e|valorizar|valorizăr}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
kavnyh5f4a54b6e8rvn6evzntvro0z7
9753742
9753357
2026-05-06T07:24:30Z
Sayonzei
40728
9753742
wikitext
text/x-wiki
{{also|valorizaré}}
==羅馬尼亞語==
===詞源===
源自 {{suffix|ro|valoriza|-re}}。
===名詞===
{{ro-noun|f|valorizări}}
# [[賦予]][[價值]]
#(通過補貼)[[維持]][[價格]]
====變格====
{{ro-noun-f-e|valorizar|valorizăr}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
ac62tu8cefbiyo2b02hms4xkfnq40fo
valorizarei
0
3433797
9753358
2026-05-06T06:45:58Z
TongcyBot
83009
半自動導入非詞元形式
9753358
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizareis
0
3433798
9753359
2026-05-06T06:46:01Z
TongcyBot
83009
半自動導入非詞元形式
9753359
wikitext
text/x-wiki
{{also|valorizáreis|valorizaréis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
lzw7hpc8wjr9p2co5w7mkpodsnes29h
valorizarem
0
3433799
9753360
2026-05-06T06:46:02Z
TongcyBot
83009
半自動導入非詞元形式
9753360
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizaremos
0
3433800
9753361
2026-05-06T06:46:03Z
TongcyBot
83009
半自動導入非詞元形式
9753361
wikitext
text/x-wiki
{{also|valorizáremos}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
nhiqbfvjxh8lxs8jr1k4i3vcqpxpae9
valorizaren
0
3433801
9753362
2026-05-06T06:46:04Z
TongcyBot
83009
半自動導入非詞元形式
9753362
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizares
0
3433802
9753363
2026-05-06T06:46:06Z
TongcyBot
83009
半自動導入非詞元形式
9753363
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
5ep0x4zcq4mt007r3e1dyl8cto1x1ka
valorizaria
0
3433803
9753364
2026-05-06T06:46:07Z
TongcyBot
83009
半自動導入非詞元形式
9753364
wikitext
text/x-wiki
{{also|valorizaría}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
iem8torq06fqnxht4ce2ex5mfkomyqy
valorizariam
0
3433804
9753365
2026-05-06T06:46:09Z
TongcyBot
83009
半自動導入非詞元形式
9753365
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizarias
0
3433805
9753366
2026-05-06T06:46:10Z
TongcyBot
83009
半自動導入非詞元形式
9753366
wikitext
text/x-wiki
{{also|valorizarías}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
8olhsae358idkslhz1tl9xkkkfghlbp
valorizarla
0
3433806
9753367
2026-05-06T06:46:11Z
TongcyBot
83009
半自動導入非詞元形式
9753367
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizarlas
0
3433807
9753368
2026-05-06T06:46:13Z
TongcyBot
83009
半自動導入非詞元形式
9753368
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizarle
0
3433808
9753369
2026-05-06T06:46:14Z
TongcyBot
83009
半自動導入非詞元形式
9753369
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizarles
0
3433809
9753370
2026-05-06T06:46:15Z
TongcyBot
83009
半自動導入非詞元形式
9753370
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizarlo
0
3433810
9753371
2026-05-06T06:46:17Z
TongcyBot
83009
半自動導入非詞元形式
9753371
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizarlos
0
3433811
9753372
2026-05-06T06:46:18Z
TongcyBot
83009
半自動導入非詞元形式
9753372
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizarme
0
3433812
9753373
2026-05-06T06:46:19Z
TongcyBot
83009
半自動導入非詞元形式
9753373
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizarmos
0
3433813
9753374
2026-05-06T06:46:20Z
TongcyBot
83009
半自動導入非詞元形式
9753374
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizarnos
0
3433814
9753375
2026-05-06T06:46:21Z
TongcyBot
83009
半自動導入非詞元形式
9753375
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizaron
0
3433815
9753376
2026-05-06T06:46:23Z
TongcyBot
83009
半自動導入非詞元形式
9753376
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizaros
0
3433816
9753377
2026-05-06T06:46:24Z
TongcyBot
83009
半自動導入非詞元形式
9753377
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizarse
0
3433817
9753378
2026-05-06T06:46:25Z
TongcyBot
83009
半自動導入非詞元形式
9753378
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizarte
0
3433818
9753379
2026-05-06T06:46:26Z
TongcyBot
83009
半自動導入非詞元形式
9753379
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizará
0
3433819
9753380
2026-05-06T06:46:27Z
TongcyBot
83009
半自動導入非詞元形式
9753380
wikitext
text/x-wiki
{{also|valorizara}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
aefghr6e5r74ta1honcot0oyg3as1sk
valorizarán
0
3433820
9753381
2026-05-06T06:46:29Z
TongcyBot
83009
半自動導入非詞元形式
9753381
wikitext
text/x-wiki
{{also|valorizaran}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
7zz32ygpr6rprzg4118km1qqtd7jev6
valorizarás
0
3433821
9753382
2026-05-06T06:46:30Z
TongcyBot
83009
半自動導入非詞元形式
9753382
wikitext
text/x-wiki
{{also|valorizaras}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
8cjtkdb38l61cwor6kcwq5n1oix5314
valorizarão
0
3433822
9753383
2026-05-06T06:46:31Z
TongcyBot
83009
半自動導入非詞元形式
9753383
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizaré
0
3433823
9753384
2026-05-06T06:46:33Z
TongcyBot
83009
半自動導入非詞元形式
9753384
wikitext
text/x-wiki
{{also|valorizare}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
jsy4k8vouwgt2vhvpvuzqc4ioe1p1g3
valorizaréis
0
3433824
9753385
2026-05-06T06:46:34Z
TongcyBot
83009
半自動導入非詞元形式
9753385
wikitext
text/x-wiki
{{also|valorizareis|valorizáreis}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
9it0iqda2mrciaccowcrigl7ebvho3q
valorizaría
0
3433825
9753386
2026-05-06T06:46:36Z
TongcyBot
83009
半自動導入非詞元形式
9753386
wikitext
text/x-wiki
{{also|valorizaria}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
6l1cwcnjncat7onlypxzja9lb7a42rf
valorizaríais
0
3433826
9753387
2026-05-06T06:46:36Z
TongcyBot
83009
半自動導入非詞元形式
9753387
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizaríamos
0
3433827
9753388
2026-05-06T06:46:39Z
TongcyBot
83009
半自動導入非詞元形式
9753388
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
5ep0x4zcq4mt007r3e1dyl8cto1x1ka
valorizarían
0
3433828
9753389
2026-05-06T06:46:40Z
TongcyBot
83009
半自動導入非詞元形式
9753389
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizarías
0
3433829
9753390
2026-05-06T06:46:41Z
TongcyBot
83009
半自動導入非詞元形式
9753390
wikitext
text/x-wiki
{{also|valorizarias}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
p30dag5ycojr90mnz4yvisvz9tcsds4
valorizaríeis
0
3433830
9753391
2026-05-06T06:46:42Z
TongcyBot
83009
半自動導入非詞元形式
9753391
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizas
0
3433831
9753392
2026-05-06T06:46:43Z
TongcyBot
83009
半自動導入非詞元形式
9753392
wikitext
text/x-wiki
{{also|valorizás}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
afb5ua1yw48lf698935cdxbkj6oqy90
valorizase
0
3433832
9753393
2026-05-06T06:46:44Z
TongcyBot
83009
半自動導入非詞元形式
9753393
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizaseis
0
3433833
9753394
2026-05-06T06:46:46Z
TongcyBot
83009
半自動導入非詞元形式
9753394
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizasen
0
3433834
9753395
2026-05-06T06:46:47Z
TongcyBot
83009
半自動導入非詞元形式
9753395
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizases
0
3433835
9753396
2026-05-06T06:46:48Z
TongcyBot
83009
半自動導入非詞元形式
9753396
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizasse
0
3433836
9753397
2026-05-06T06:46:50Z
TongcyBot
83009
半自動導入非詞元形式
9753397
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizassem
0
3433837
9753398
2026-05-06T06:46:51Z
TongcyBot
83009
半自動導入非詞元形式
9753398
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizasses
0
3433838
9753399
2026-05-06T06:46:52Z
TongcyBot
83009
半自動導入非詞元形式
9753399
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizaste
0
3433839
9753400
2026-05-06T06:46:53Z
TongcyBot
83009
半自動導入非詞元形式
9753400
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
5ep0x4zcq4mt007r3e1dyl8cto1x1ka
valorizasteis
0
3433840
9753401
2026-05-06T06:46:55Z
TongcyBot
83009
半自動導入非詞元形式
9753401
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizastes
0
3433841
9753402
2026-05-06T06:46:56Z
TongcyBot
83009
半自動導入非詞元形式
9753402
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizava
0
3433842
9753403
2026-05-06T06:46:57Z
TongcyBot
83009
半自動導入非詞元形式
9753403
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizavam
0
3433843
9753404
2026-05-06T06:46:59Z
TongcyBot
83009
半自動導入非詞元形式
9753404
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizavas
0
3433844
9753405
2026-05-06T06:47:00Z
TongcyBot
83009
半自動導入非詞元形式
9753405
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizei
0
3433845
9753406
2026-05-06T06:47:02Z
TongcyBot
83009
半自動導入非詞元形式
9753406
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizeis
0
3433846
9753407
2026-05-06T06:47:03Z
TongcyBot
83009
半自動導入非詞元形式
9753407
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizem
0
3433847
9753408
2026-05-06T06:47:04Z
TongcyBot
83009
半自動導入非詞元形式
9753408
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizemos
0
3433848
9753409
2026-05-06T06:47:05Z
TongcyBot
83009
半自動導入非詞元形式
9753409
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizes
0
3433849
9753410
2026-05-06T06:47:07Z
TongcyBot
83009
半自動導入非詞元形式
9753410
wikitext
text/x-wiki
==英語==
===動詞===
{{head|en|動詞變位形式}}
# {{infl of|en|valorize||s-verb-form}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
hjv5g5dacagrk5ra1x65w03po0shoqg
valorizo
0
3433850
9753411
2026-05-06T06:47:08Z
TongcyBot
83009
半自動導入非詞元形式
9753411
wikitext
text/x-wiki
{{also|valorizó}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
g3xe5bz23rjufoua1qkyicx0ks2f6tg
valorizou
0
3433851
9753412
2026-05-06T06:47:10Z
TongcyBot
83009
半自動導入非詞元形式
9753412
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizá
0
3433852
9753413
2026-05-06T06:47:11Z
TongcyBot
83009
半自動導入非詞元形式
9753413
wikitext
text/x-wiki
{{also|valoriza}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
fk2alhwdipnhepp6cf7iyzej08vqye1
valorizábamos
0
3433853
9753414
2026-05-06T06:47:12Z
TongcyBot
83009
半自動導入非詞元形式
9753414
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizáis
0
3433854
9753415
2026-05-06T06:47:13Z
TongcyBot
83009
半自動導入非詞元形式
9753415
wikitext
text/x-wiki
{{also|valorizais}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
e957ysybc8dzy7vyb4ga60dttq0xfub
valorizámos
0
3433855
9753416
2026-05-06T06:47:15Z
TongcyBot
83009
半自動導入非詞元形式
9753416
wikitext
text/x-wiki
{{also|valorizamos}}
==葡萄牙語==
===其他形式===
* {{qualifier|Brazil}} {{l|pt|valorizamos}}
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
2xswoqtmp7hys9gb4zmuqp38iwpmak0
valorizándola
0
3433856
9753417
2026-05-06T06:47:16Z
TongcyBot
83009
半自動導入非詞元形式
9753417
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizándolas
0
3433857
9753418
2026-05-06T06:47:17Z
TongcyBot
83009
半自動導入非詞元形式
9753418
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizándole
0
3433858
9753419
2026-05-06T06:47:18Z
TongcyBot
83009
半自動導入非詞元形式
9753419
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizándoles
0
3433859
9753420
2026-05-06T06:47:19Z
TongcyBot
83009
半自動導入非詞元形式
9753420
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizándolo
0
3433860
9753421
2026-05-06T06:47:21Z
TongcyBot
83009
半自動導入非詞元形式
9753421
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizándolos
0
3433861
9753422
2026-05-06T06:47:22Z
TongcyBot
83009
半自動導入非詞元形式
9753422
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizándome
0
3433862
9753423
2026-05-06T06:47:23Z
TongcyBot
83009
半自動導入非詞元形式
9753423
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizándonos
0
3433863
9753424
2026-05-06T06:47:25Z
TongcyBot
83009
半自動導入非詞元形式
9753424
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizándoos
0
3433864
9753425
2026-05-06T06:47:26Z
TongcyBot
83009
半自動導入非詞元形式
9753425
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizándose
0
3433865
9753426
2026-05-06T06:47:28Z
TongcyBot
83009
半自動導入非詞元形式
9753426
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizándote
0
3433866
9753427
2026-05-06T06:47:29Z
TongcyBot
83009
半自動導入非詞元形式
9753427
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizáramos
0
3433867
9753428
2026-05-06T06:47:31Z
TongcyBot
83009
半自動導入非詞元形式
9753428
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
5ep0x4zcq4mt007r3e1dyl8cto1x1ka
valorizáreis
0
3433868
9753429
2026-05-06T06:47:31Z
TongcyBot
83009
半自動導入非詞元形式
9753429
wikitext
text/x-wiki
{{also|valorizareis|valorizaréis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
bwi29yciuu27m7riljbcvhgzwyxecfb
valorizáremos
0
3433869
9753430
2026-05-06T06:47:33Z
TongcyBot
83009
半自動導入非詞元形式
9753430
wikitext
text/x-wiki
{{also|valorizaremos}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
igkxm6863qp5h3ko2dju5lsfm4klf7u
valorizás
0
3433870
9753431
2026-05-06T06:47:34Z
TongcyBot
83009
半自動導入非詞元形式
9753431
wikitext
text/x-wiki
{{also|valorizas}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
dse324rxp913arn6u8cr24c89cnadf4
valorizásemos
0
3433871
9753432
2026-05-06T06:47:36Z
TongcyBot
83009
半自動導入非詞元形式
9753432
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
f7cle3a8qixw85thxb7kxjpi629rl9r
valorizásseis
0
3433872
9753433
2026-05-06T06:47:37Z
TongcyBot
83009
半自動導入非詞元形式
9753433
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizássemos
0
3433873
9753434
2026-05-06T06:47:39Z
TongcyBot
83009
半自動導入非詞元形式
9753434
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizávamos
0
3433874
9753435
2026-05-06T06:47:40Z
TongcyBot
83009
半自動導入非詞元形式
9753435
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizáveis
0
3433875
9753436
2026-05-06T06:47:41Z
TongcyBot
83009
半自動導入非詞元形式
9753436
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|valorizar}}
0bgllpeh0xck7pxdqk2gofbs39b7fbc
valorizó
0
3433876
9753437
2026-05-06T06:47:42Z
TongcyBot
83009
半自動導入非詞元形式
9753437
wikitext
text/x-wiki
{{also|valorizo}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|valorizar}}
fqbl6ie69qv18ixiqxvohfnx9zcf473
violaba
0
3433877
9753438
2026-05-06T06:47:43Z
TongcyBot
83009
半自動導入非詞元形式
9753438
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violabais
0
3433878
9753439
2026-05-06T06:47:45Z
TongcyBot
83009
半自動導入非詞元形式
9753439
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violaban
0
3433879
9753440
2026-05-06T06:47:46Z
TongcyBot
83009
半自動導入非詞元形式
9753440
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violabas
0
3433880
9753441
2026-05-06T06:47:48Z
TongcyBot
83009
半自動導入非詞元形式
9753441
wikitext
text/x-wiki
==拉丁語==
===動詞===
{{head|la|動詞變位形式|head=violābās}}
# {{inflection of|la|violō||2|s|impf|actv|indc}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
jef80ne0o719q0szu2xsrexl5xyxwg1
violad
0
3433881
9753442
2026-05-06T06:47:49Z
TongcyBot
83009
半自動導入非詞元形式
9753442
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violada
0
3433882
9753443
2026-05-06T06:47:50Z
TongcyBot
83009
半自動導入非詞元形式
9753443
wikitext
text/x-wiki
==加泰羅尼亞語==
===發音===
* {{ca-IPA}}
===形容詞===
{{head|ca|形容詞變格形|g=f-s}}
# {{feminine singular of|ca|violat}}
===分詞===
{{head|ca|過去分詞變格形|g=f-s}}
# {{feminine singular of|ca|violat}}
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=f-s}}
# {{feminine singular of|pt|violado}}
==西班牙語==
===發音===
{{es-pr}}
===形容詞===
{{head|es|形容詞變格形|g=f}}
# {{adj form of|es|violado||f|s}}
===分詞===
{{head|es|過去分詞變格形|g=f-s}}
# {{feminine singular of|es|violado}}
sejhqqm9qq8j95d1iwxx1nvo8rw0v0m
violadas
0
3433883
9753444
2026-05-06T06:47:52Z
TongcyBot
83009
半自動導入非詞元形式
9753444
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=f-p}}
# {{feminine plural of|pt|violado}}
==西班牙語==
===發音===
{{es-pr}}
===形容詞===
{{head|es|形容詞變格形|g=f-p}}
# {{adj form of|es|violado||f|p}}
===分詞===
{{head|es|過去分詞變格形|g=f-p}}
# {{feminine plural of|es|violado}}
j66rnnl6739jpapy0lwqmewoc246t84
violades
0
3433884
9753445
2026-05-06T06:47:53Z
TongcyBot
83009
半自動導入非詞元形式
9753445
wikitext
text/x-wiki
==加泰羅尼亞語==
===發音===
* {{ca-IPA}}
===形容詞===
{{head|ca|形容詞變格形|g=f-p}}
# {{feminine plural of|ca|violat}}
===分詞===
{{head|ca|過去分詞變格形|g=f-p}}
# {{feminine plural of|ca|violat}}
l9xa4j7f4c4bfmh3a5jv2e7b7kayt2k
violados
0
3433885
9753446
2026-05-06T06:47:54Z
TongcyBot
83009
半自動導入非詞元形式
9753446
wikitext
text/x-wiki
==葡萄牙語==
===分詞===
{{head|pt|過去分詞變格形|g=m-p}}
# {{masculine plural of|pt|violado}}
==西班牙語==
===發音===
{{es-pr}}
===形容詞===
{{head|es|形容詞變格形|g=m-p}}
# {{adj form of|es|violado||m|p}}
===分詞===
{{head|es|過去分詞變格形|g=m-p}}
# {{masculine plural of|es|violado}}
mkrl6me64nhxwsfu0wx9elrayjrzntn
violam
0
3433886
9753447
2026-05-06T06:47:55Z
TongcyBot
83009
半自動導入非詞元形式
9753447
wikitext
text/x-wiki
{{also|violăm}}
==拉丁語==
===名詞===
{{head|la|名詞變格形}}
# {{inflection of|la|viola||acc|s}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==羅馬尼亞語==
===發音===
* {{IPA|ro|[vioˈlam]}}
===動詞===
{{head|ro|動詞變位形式}}
# {{verb form of|ro|viola||1|s//p|impf|ind}}
j41vxlqmbrfyziehutnsbmox327t7ic
violamos
0
3433887
9753448
2026-05-06T06:47:56Z
TongcyBot
83009
半自動導入非詞元形式
9753448
wikitext
text/x-wiki
{{also|violámos}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
sihtpl5eerlumj9pook6dhocsfomfrw
violando
0
3433888
9753449
2026-05-06T06:47:58Z
TongcyBot
83009
半自動導入非詞元形式
9753449
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動名詞}}
# {{gerund of|it|violare}}
==拉丁語==
===分詞===
{{head|la|分詞變格形|head=violandō}}
# {{inflection of|la|violandus||dat//abl|m//n|s}}
==葡萄牙語==
===動詞===
{{head|pt|動名詞}}
# {{pt-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動名詞}}
# {{es-verb form of|violar}}
6fnvg2ogyehqww7gc469ns1ol3le6s3
violara
0
3433889
9753450
2026-05-06T06:47:59Z
TongcyBot
83009
半自動導入非詞元形式
9753450
wikitext
text/x-wiki
{{also|violará|violarà}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
m824vtvovdmq5ot05v3ds8i8rpacvyz
violarais
0
3433890
9753451
2026-05-06T06:48:00Z
TongcyBot
83009
半自動導入非詞元形式
9753451
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violaram
0
3433891
9753452
2026-05-06T06:48:01Z
TongcyBot
83009
半自動導入非詞元形式
9753452
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violaran
0
3433892
9753453
2026-05-06T06:48:03Z
TongcyBot
83009
半自動導入非詞元形式
9753453
wikitext
text/x-wiki
{{also|violarán}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
atp8gbjrh194gjw9j6v8ugnvtgjd7vf
violaras
0
3433893
9753454
2026-05-06T06:48:04Z
TongcyBot
83009
半自動導入非詞元形式
9753454
wikitext
text/x-wiki
{{also|violarás|violaràs}}
==拉丁語==
===動詞===
{{head|la|動詞變位形式|head=violārās}}
# {{inflection of|la|violō||2|s|plup|actv|indc}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
mkzzdc4pvfbntfcxpo2rse44jxy9wh3
violardes
0
3433894
9753455
2026-05-06T06:48:05Z
TongcyBot
83009
半自動導入非詞元形式
9753455
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violarei
0
3433895
9753456
2026-05-06T06:48:06Z
TongcyBot
83009
半自動導入非詞元形式
9753456
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violareis
0
3433896
9753457
2026-05-06T06:48:08Z
TongcyBot
83009
半自動導入非詞元形式
9753457
wikitext
text/x-wiki
{{also|violáreis|violaréis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
47xn3aajw1lstwwnwkfsryzekpnp1dq
violarem
0
3433897
9753458
2026-05-06T06:48:09Z
TongcyBot
83009
半自動導入非詞元形式
9753458
wikitext
text/x-wiki
{{also|violàrem}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
==拉丁語==
===動詞===
{{head|la|動詞變位形式|head=violārem}}
# {{inflection of|la|violō||1|s|impf|actv|subj}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
8wrcdja2t4x7h3c3pi2alhpk3vpin7z
violaremos
0
3433898
9753459
2026-05-06T06:48:10Z
TongcyBot
83009
半自動導入非詞元形式
9753459
wikitext
text/x-wiki
{{also|violáremos}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
28eodsess0ck9fk0zwkigal50eurze8
violaren
0
3433899
9753460
2026-05-06T06:48:12Z
TongcyBot
83009
半自動導入非詞元形式
9753460
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
mro4uohbeqdrtn60qz095p7hphk3z4l
violares
0
3433900
9753461
2026-05-06T06:48:13Z
TongcyBot
83009
半自動導入非詞元形式
9753461
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
==拉丁語==
===動詞===
{{head|la|動詞變位形式|head=violārēs}}
# {{inflection of|la|violō||2|s|impf|actv|subj}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
8714m1jeeqwsd6drglrm3agvbgqwtlh
violareu
0
3433901
9753462
2026-05-06T06:48:14Z
TongcyBot
83009
半自動導入非詞元形式
9753462
wikitext
text/x-wiki
{{also|violàreu}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
bixl1evj212y3tikjo3jfdz8wqj5eix
violaria
0
3433902
9753463
2026-05-06T06:48:16Z
TongcyBot
83009
半自動導入非詞元形式
9753463
wikitext
text/x-wiki
{{also|violaría}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
lb1dxheulvbci0oiwn09sf83lrfqljh
violariam
0
3433903
9753464
2026-05-06T06:48:17Z
TongcyBot
83009
半自動導入非詞元形式
9753464
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violarias
0
3433904
9753465
2026-05-06T06:48:18Z
TongcyBot
83009
半自動導入非詞元形式
9753465
wikitext
text/x-wiki
{{also|violarías}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
btiojr6583278sbwfsg52z4h8rpct7n
violarien
0
3433905
9753466
2026-05-06T06:48:19Z
TongcyBot
83009
半自動導入非詞元形式
9753466
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
fmupaaricb1vmbijf7jtm1p5uojmv9e
violaries
0
3433906
9753467
2026-05-06T06:48:21Z
TongcyBot
83009
半自動導入非詞元形式
9753467
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
fmupaaricb1vmbijf7jtm1p5uojmv9e
violarla
0
3433907
9753468
2026-05-06T06:48:22Z
TongcyBot
83009
半自動導入非詞元形式
9753468
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violarlas
0
3433908
9753469
2026-05-06T06:48:23Z
TongcyBot
83009
半自動導入非詞元形式
9753469
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violarle
0
3433909
9753470
2026-05-06T06:48:24Z
TongcyBot
83009
半自動導入非詞元形式
9753470
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violarles
0
3433910
9753471
2026-05-06T06:48:25Z
TongcyBot
83009
半自動導入非詞元形式
9753471
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violarlo
0
3433911
9753472
2026-05-06T06:48:26Z
TongcyBot
83009
半自動導入非詞元形式
9753472
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violarlos
0
3433912
9753473
2026-05-06T06:48:28Z
TongcyBot
83009
半自動導入非詞元形式
9753473
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violarme
0
3433913
9753474
2026-05-06T06:48:29Z
TongcyBot
83009
半自動導入非詞元形式
9753474
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violarmos
0
3433914
9753475
2026-05-06T06:48:31Z
TongcyBot
83009
半自動導入非詞元形式
9753475
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violarnos
0
3433915
9753476
2026-05-06T06:48:32Z
TongcyBot
83009
半自動導入非詞元形式
9753476
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violaron
0
3433916
9753477
2026-05-06T06:48:33Z
TongcyBot
83009
半自動導入非詞元形式
9753477
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violaros
0
3433917
9753478
2026-05-06T06:48:34Z
TongcyBot
83009
半自動導入非詞元形式
9753478
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violarse
0
3433918
9753479
2026-05-06T06:48:36Z
TongcyBot
83009
半自動導入非詞元形式
9753479
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violarte
0
3433919
9753480
2026-05-06T06:48:37Z
TongcyBot
83009
半自動導入非詞元形式
9753480
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violarà
0
3433920
9753481
2026-05-06T06:48:38Z
TongcyBot
83009
半自動導入非詞元形式
9753481
wikitext
text/x-wiki
{{also|violara|violará}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
rlju6a1zp8nis0r5x3y2lsiudlq16vz
violaràs
0
3433921
9753482
2026-05-06T06:48:40Z
TongcyBot
83009
半自動導入非詞元形式
9753482
wikitext
text/x-wiki
{{also|violaras|violarás}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
e01x8ay4qybe65ejnje2rdft4q25t6e
violará
0
3433922
9753483
2026-05-06T06:48:41Z
TongcyBot
83009
半自動導入非詞元形式
9753483
wikitext
text/x-wiki
{{also|violara|violarà}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
gm5eu8cu4fo3cee8xbdd70yt0526zya
violarán
0
3433923
9753484
2026-05-06T06:48:42Z
TongcyBot
83009
半自動導入非詞元形式
9753484
wikitext
text/x-wiki
{{also|violaran}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
bomfplzrdjnmawbsscszaexgfz2neel
violarás
0
3433924
9753485
2026-05-06T06:48:43Z
TongcyBot
83009
半自動導入非詞元形式
9753485
wikitext
text/x-wiki
{{also|violaras|violaràs}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
iy90szwcq3r5ixb6eoy97o57c9cbxz8
violarão
0
3433925
9753486
2026-05-06T06:48:45Z
TongcyBot
83009
半自動導入非詞元形式
9753486
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violaré
0
3433926
9753487
2026-05-06T06:48:46Z
TongcyBot
83009
半自動導入非詞元形式
9753487
wikitext
text/x-wiki
{{also|violare}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
jzb4dql8qssi847i903v6vf0ytfpob4
violaréis
0
3433927
9753488
2026-05-06T06:48:47Z
TongcyBot
83009
半自動導入非詞元形式
9753488
wikitext
text/x-wiki
{{also|violareis|violáreis}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
h3cq80ohne0ihu2m8d88nwjaf3ifsqr
violaría
0
3433928
9753489
2026-05-06T06:48:48Z
TongcyBot
83009
半自動導入非詞元形式
9753489
wikitext
text/x-wiki
{{also|violaria}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
4kg8gz5br2nyutyftvavrjlzkz8oslz
violaríais
0
3433929
9753490
2026-05-06T06:48:49Z
TongcyBot
83009
半自動導入非詞元形式
9753490
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violaríamos
0
3433930
9753491
2026-05-06T06:48:51Z
TongcyBot
83009
半自動導入非詞元形式
9753491
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
584xc3mm6ddybz9kbtmntfvz90o7igt
violarían
0
3433931
9753492
2026-05-06T06:48:52Z
TongcyBot
83009
半自動導入非詞元形式
9753492
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violarías
0
3433932
9753493
2026-05-06T06:48:54Z
TongcyBot
83009
半自動導入非詞元形式
9753493
wikitext
text/x-wiki
{{also|violarias}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
21mhajqb0g9k65b04nl4wyep3gj5oop
violaríeis
0
3433933
9753494
2026-05-06T06:48:55Z
TongcyBot
83009
半自動導入非詞元形式
9753494
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violaríem
0
3433934
9753495
2026-05-06T06:48:56Z
TongcyBot
83009
半自動導入非詞元形式
9753495
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
fmupaaricb1vmbijf7jtm1p5uojmv9e
violaríeu
0
3433935
9753496
2026-05-06T06:48:58Z
TongcyBot
83009
半自動導入非詞元形式
9753496
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
fmupaaricb1vmbijf7jtm1p5uojmv9e
violase
0
3433936
9753497
2026-05-06T06:48:58Z
TongcyBot
83009
半自動導入非詞元形式
9753497
wikitext
text/x-wiki
==羅馬尼亞語==
===發音===
* {{IPA|ro|[vioˈlase]}}
===動詞===
{{head|ro|動詞變位形式}}
# {{verb form of|ro|viola||3s|pluperf|ind}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
s4s4ozwf4y4ivbhujpuibx14ix6vhon
violaseis
0
3433937
9753498
2026-05-06T06:49:00Z
TongcyBot
83009
半自動導入非詞元形式
9753498
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violasen
0
3433938
9753499
2026-05-06T06:49:01Z
TongcyBot
83009
半自動導入非詞元形式
9753499
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violases
0
3433939
9753500
2026-05-06T06:49:02Z
TongcyBot
83009
半自動導入非詞元形式
9753500
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violassem
0
3433940
9753501
2026-05-06T06:49:03Z
TongcyBot
83009
半自動導入非詞元形式
9753501
wikitext
text/x-wiki
==拉丁語==
===動詞===
{{head|la|動詞變位形式|head=violāssem}}
# {{inflection of|la|violō||1|s|plup|actv|subj}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
mdketr23wopygxgx4tm8u4tg9xlv41z
violaste
0
3433941
9753502
2026-05-06T06:49:05Z
TongcyBot
83009
半自動導入非詞元形式
9753502
wikitext
text/x-wiki
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|violare||2|p|phis|;|2|p|impf|sub}}
===異序詞===
* {{anagrams|it|a=aeilostv|solviate|svoliate}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
1jsf6jse3yhrzhurdl6ducqcj8lpr9e
violasteis
0
3433942
9753503
2026-05-06T06:49:06Z
TongcyBot
83009
半自動導入非詞元形式
9753503
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violastes
0
3433943
9753504
2026-05-06T06:49:07Z
TongcyBot
83009
半自動導入非詞元形式
9753504
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violats
0
3433944
9753505
2026-05-06T06:49:08Z
TongcyBot
83009
半自動導入非詞元形式
9753505
wikitext
text/x-wiki
==加泰羅尼亞語==
===發音===
* {{ca-IPA}}
* {{rhymes|ca|ats|s=3}}
===形容詞===
{{head|ca|形容詞變格形|g=m-p}}
# {{masculine plural of|ca|violat}}
===名詞===
{{head|ca|名詞變格形|g=m-p}}
# {{masculine plural of|ca|violat}}
===分詞===
{{head|ca|過去分詞變格形|g=m-p}}
# {{masculine plural of|ca|violat}}
9rn6h4ml7d3rr297w5wwzj1ioiwip57
violava
0
3433945
9753506
2026-05-06T06:49:09Z
TongcyBot
83009
半自動導入非詞元形式
9753506
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
==意大利語==
===動詞===
{{head|it|動詞變位形式}}
# {{inflection of|it|violare||3|s|impf|indc}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
cfpmnd4qv0ev50n5pt8e0z71zothwin
violavam
0
3433946
9753507
2026-05-06T06:49:11Z
TongcyBot
83009
半自動導入非詞元形式
9753507
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violavas
0
3433947
9753508
2026-05-06T06:49:12Z
TongcyBot
83009
半自動導入非詞元形式
9753508
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violaven
0
3433948
9753509
2026-05-06T06:49:13Z
TongcyBot
83009
半自動導入非詞元形式
9753509
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
fmupaaricb1vmbijf7jtm1p5uojmv9e
violaves
0
3433949
9753510
2026-05-06T06:49:14Z
TongcyBot
83009
半自動導入非詞元形式
9753510
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
fmupaaricb1vmbijf7jtm1p5uojmv9e
violei
0
3433950
9753511
2026-05-06T06:49:15Z
TongcyBot
83009
半自動導入非詞元形式
9753511
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violeis
0
3433951
9753512
2026-05-06T06:49:17Z
TongcyBot
83009
半自動導入非詞元形式
9753512
wikitext
text/x-wiki
{{also|violéis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
gkvxwx9f2j6eclchf016q1i7z2fj7uz
violem
0
3433952
9753513
2026-05-06T06:49:18Z
TongcyBot
83009
半自動導入非詞元形式
9753513
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
==拉丁語==
===動詞===
{{head|la|動詞變位形式}}
# {{inflection of|la|violō||1|s|pres|actv|subj}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
7ddnrqtjhweof1b5p8l6g0r5hk8rg3w
violemos
0
3433953
9753514
2026-05-06T06:49:19Z
TongcyBot
83009
半自動導入非詞元形式
9753514
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
584xc3mm6ddybz9kbtmntfvz90o7igt
violen
0
3433954
9753515
2026-05-06T06:49:20Z
TongcyBot
83009
半自動導入非詞元形式
9753515
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
==荷蘭語==
===發音===
* {{IPA|nl|/viˈjoːlə(n)/}}
* {{audio|nl|Nl-violen.ogg}}
===名詞===
{{head|nl|名詞變格形}}
# {{plural of|nl|viool}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
==瑞典語==
===名詞===
{{head|sv|名詞變格形}}
# {{noun form of|sv|viol||def|s}}
r771iru5xp3xu02t7kvl2495u4um3f9
violessin
0
3433955
9753516
2026-05-06T06:49:21Z
TongcyBot
83009
半自動導入非詞元形式
9753516
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
fmupaaricb1vmbijf7jtm1p5uojmv9e
violessis
0
3433956
9753517
2026-05-06T06:49:23Z
TongcyBot
83009
半自動導入非詞元形式
9753517
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
fmupaaricb1vmbijf7jtm1p5uojmv9e
violeu
0
3433957
9753518
2026-05-06T06:49:24Z
TongcyBot
83009
半自動導入非詞元形式
9753518
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
fmupaaricb1vmbijf7jtm1p5uojmv9e
violis
0
3433958
9753519
2026-05-06T06:49:25Z
TongcyBot
83009
半自動導入非詞元形式
9753519
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
==拉丁語==
===名詞===
{{head|la|名詞變格形|head=violīs}}
# {{inflection of|la|viola||dat//abl|p}}
l7yqlxqv0hg5lol8zjcghdggq76vja0
violo
0
3433959
9753520
2026-05-06T06:49:26Z
TongcyBot
83009
半自動導入非詞元形式
9753520
wikitext
text/x-wiki
{{also|violó|violò}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
==世界語==
===詞源===
{{bor+|eo|it|viola}}、{{bor|eo|en|violet}}、{{bor|eo|fr|violette}} and {{bor|eo|pl|fiołek}}。
===發音===
{{eo-pr|a=LL-Q143 (epo)-Lepticed7-violo.wav;LL-Q143 (epo)-Robin van der Vliet-violo.wav}}
===名詞===
{{eo-head}}
# [[violet]] {{gloss|flower}}
# {{lb|eo|rare}} [[violet]] {{gloss|color}}
#: {{syn|eo|violkoloro}}
#* {{quote-book|eo|editor=Johannes Dietterle|title=La Vendreda Klubo: 11 Diversaj Originalaj Artikoloj Verkitaj de la “Vendredoklubanoj” en Leipzig<t:The Friday Club: 11 Diverse Original Articles Written by the “Friday Club Members” in Leipzig>|location=Leipzig|publisher=Ferdinand Hirt & Sohn|year=1921|page=77|passage=Kiel la cirklo de l’ puraj koloroj estas ordigota? Ĉu ekzemple la interspaco inter sulfuro kaj oranĝo estas pli aŭ malpli granda ol la interspaco inter '''violo''' kaj cejano?|t=How is the circle of pure colors to be ordered? For example, is the gap between sulfur and orange larger or smaller than the gap between '''violet''' and cyan?}}
#* {{quote-book|eo|author=[[w:Montagu C. Butler|Montagu C[hristie] Butler]]|title=Step by Step in Esperanto: A Simple Textbook for English-Speaking Students, with Graduated Reading-Matter and Numerous Exercises for Class Teaching or for Home Study|publisher=The Esperanto Publishing Company Ltd.|year=1948|page=54|passage=La ses koloroj de la ĉielarko (''rainbow'') estas: '''violo''', bluo, verdo, flavo, oranĝo, kaj ruĝo.|t=The six colors of the rainbow are: '''violet''', blue, green, yellow, orange, and red.}}
#* {{quote-book|eo|editor=w:Paul Neergaard|title=Sciencaj Studoj: Bazitaj sur Originalaj Esploroj kaj Observoj: Eldonita Okaze de la 50-Jara Jubileo de Internacia Scienca Asocio Esperantista<t:Scientific Studies: Based on Original Research and Observations: Published on the Occasion of the 50th Anniversary of the International Scientific Esperanto Association>|location=Kopenhago<t:Copenhagen>|publisher=Internacia Scienca Asocio Esperantista<t:International Scientific Esperanto Association>|year=1958|page=168|oclc=5579846|passage=Tre maldense okupitaj estas la regionoj de '''violo''' kaj purpuro. Ŝajne ekzistas grandaj diferencoj en la kolorbezonoj.|t=The regions of '''violet''' and purple are very sparsely occupied. Seemingly there exist big differences in the color needs.}}
{{Universala Vortaro}}
{{c|eo|Colors|Flowers}}
==意大利語==
===詞源1===
====發音====
{{it-pr|vi.òlo<r:DiPI><r:Olivetti:VIOLO100,alt#violo>}}
====名詞====
{{it-noun|m}} {{tlb|it|regional|Tuscan}}
# [[violet]] {{qualifier|plant}}
#: {{syn|it|viola|q=normal register}}
# [[carnation]]
#: {{syn|it|garofano|q=normal register}}
===詞源2===
====發音====
{{it-pr|vi.òlo<r:Olivetti:VIOLO200,alt#violo>}}
====名詞====
{{it-noun|m}} {{tlb|it|regional|Venetian}}
# [[path]]
#: {{syn|it|viottolo|q=normal register}}
===詞源3===
====發音====
{{it-pr|vìolo}}
====動詞====
{{head|it|動詞變位形式}}
# {{inflection of|it|violare||1|s|pres|ind}}
===參考資料===
<references />
===異序詞===
* {{anagrams|it|a=iloov|olivo|ovoli}}
==拉丁語==
===詞源===
{{etymon|la|:from|vīs}}
Traditionally derived from {{m|la|vīs|t=strength}}, as if from some diminutive {{m|la||*viola}}。 De Vaan prefers to derive the word instead from a deverbal adjective, which he reconstructs as {{inh|la|ine-pro||*weyh₁-elos}}。 Either way,源自{{der|la|ine-pro|*weyh₁-|t=to chase, strive after}}。<ref>{{R:itc:EDL|page=680}}</ref>
===發音===
* {{la-IPA|violō}}
===動詞===
{{la-verb|1+|violō}}
# to treat with [[violence]]; to [[maltreat]]
#* {{Q|la||CIL|11|04766|quote=Honce loucom / nequs violatod / neque exvehito neque / exferto quod louci / siet neque cedito / nesei quo die res deina / anua fiat eod die / quod rei dinai causa / [f]iat sine dolo cedre / [l]icetod seiquis // '''violasit''' Iove bovid / piaclum datod / seiquis scies / '''violasit''' dolo malo / Iovei bovid piaclum / datod et a(sses) CCC / moltai suntod / eius piacli / moltaique dicator[e] / exactio est[od]}}
# to [[violate]], [[defile]], [[profane]], [[rape]]
#: {{syn|la|rumpō|irrumpō|frangō|īnfringō}}
#* {{Q|la|Ovid|Fasti|6|167|quote=post illud nec avēs cūnās '''violāsse''' feruntur|trans=''Nor after that were they suffering the birds '''to have violated''' cradles''<br/>(A goddess intervenes after a baby is attacked by [[striges]] and her divine prayers impart lasting protection.)}}
====變位====
{{la-conj|1+.poetsyncperf.sigm|violō}}
====派生詞彙====
* {{l|la|violātor}}
* {{l|la|violentus}}
====派生語彙====
{{top3}}
* {{desc|ca|violar}}
* {{desc|en|violate|bor=1}}
* {{desc|fr|violer}}
* {{desc|gl|violar}}
* {{desc|it|violare}}
* {{desc|pms|violé}}
* {{desc|pt|violar}}
* {{desc|ro|viola}}
* {{desc|scn|viulari}}
* {{desc|es|violar}}
{{bottom}}
===參考資料===
* {{R:la:L&S}}
* {{R:la:Elementary Lewis}}
* {{R:la:Gaffiot}}
* {{R:la:M&A}}
<references />
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
5tize0eeu6bszfxemvqn4imv7dfvzpy
9753750
9753520
2026-05-06T07:32:31Z
Sayonzei
40728
9753750
wikitext
text/x-wiki
{{also|violó|violò}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
==世界語==
===詞源===
{{bor+|eo|it|viola}}、{{bor|eo|en|violet}}、{{bor|eo|fr|violette}} 和{{bor|eo|pl|fiołek}}。
===發音===
{{eo-pr|a=LL-Q143 (epo)-Lepticed7-violo.wav;LL-Q143 (epo)-Robin van der Vliet-violo.wav}}
===名詞===
{{eo-head}}
# [[堇菜]];[[紫羅蘭]]
# {{lb|eo|rare}} 紫羅蘭色
#: {{syn|eo|violkoloro}}
#* {{quote-book|eo|editor=Johannes Dietterle|title=La Vendreda Klubo: 11 Diversaj Originalaj Artikoloj Verkitaj de la “Vendredoklubanoj” en Leipzig<t:星期五俱乐部:莱比锡“星期五俱乐部成员”撰写的 11 篇多样化原创文章>|location=Leipzig|publisher=Ferdinand Hirt & Sohn|year=1921|page=77|passage=Kiel la cirklo de l’ puraj koloroj estas ordigota? Ĉu ekzemple la interspaco inter sulfuro kaj oranĝo estas pli aŭ malpli granda ol la interspaco inter '''violo''' kaj cejano?|t=纯色环应该如何排序?例如,硫磺色和橙色之间的间隔比'''紫色'''和青色之间的间隔大还是小?}}
#* {{quote-book|eo|author=[[w:en:Montagu C. Butler|Montagu C[hristie] Butler]]|title=Step by Step in Esperanto: A Simple Textbook for English-Speaking Students, with Graduated Reading-Matter and Numerous Exercises for Class Teaching or for Home Study|publisher=The Esperanto Publishing Company Ltd.|year=1948|page=54|passage=La ses koloroj de la ĉielarko (''rainbow'') estas: '''violo''', bluo, verdo, flavo, oranĝo, kaj ruĝo.|t=彩虹的六种颜色是:'''紫色'''、蓝色、绿色、黄色、橙色和红色。}}
#* {{quote-book|eo|editor=w:en:Paul Neergaard|title=Sciencaj Studoj: Bazitaj sur Originalaj Esploroj kaj Observoj: Eldonita Okaze de la 50-Jara Jubileo de Internacia Scienca Asocio Esperantista<t:科学研究:基于原始研究和观察:在国际科学世界语协会成立 50 周年之际出版>|location=Kopenhago<t:哥本哈根>|publisher=Internacia Scienca Asocio Esperantista<t:国际科学世界语协会>|year=1958|page=168|oclc=5579846|passage=Tre maldense okupitaj estas la regionoj de '''violo''' kaj purpuro. Ŝajne ekzistas grandaj diferencoj en la kolorbezonoj.|t='''紫罗兰色'''和紫色的区域人口非常稀少。看来人们对颜色的需求存在很大差异。}}
{{Universala Vortaro}}
{{c|eo|花|顏色}}
==意大利語==
===詞源1===
====發音====
{{it-pr|vi.òlo<r:DiPI><r:Olivetti:VIOLO100,alt#violo>}}
====名詞====
{{it-noun|m}} {{tlb|it|regional|Tuscan}}
# [[堇菜]];[[紫羅蘭]]
#: {{syn|it|viola|q=一般用詞}}
# [[康乃馨]]
#: {{syn|it|garofano|q=一般用詞}}
===詞源2===
====發音====
{{it-pr|vi.òlo<r:Olivetti:VIOLO200,alt#violo>}}
====名詞====
{{it-noun|m}} {{tlb|it|regional|Venetian}}
# [[路]],[[路徑]]
#: {{syn|it|viottolo|q=一般用詞}}
===詞源3===
====發音====
{{it-pr|vìolo}}
====動詞====
{{head|it|動詞變位形式}}
# {{inflection of|it|violare||1|s|pres|ind}}
===參考資料===
<references />
===異序詞===
* {{anagrams|it|a=iloov|olivo|ovoli}}
==拉丁語==
===詞源===
{{etymon|la|:from|vīs}}
傳統認為派生自 {{m|la|vīs|t=力量}},源自其指小詞 {{m|la||*viola}}。De Vaan 認為本詞不是派生自形容詞(構擬作{{inh|la|ine-pro||*weyh₁-elos}}),而是源自{{der|la|ine-pro|*weyh₁-|t=追逐,追求}}。<ref>{{R:itc:EDL|page=680}}</ref>
===發音===
* {{la-IPA|violō}}
===動詞===
{{la-verb|1+|violō}}
# [[虐待]]
#* {{Q|la||CIL|11|04766|quote=Honce loucom / nequs violatod / neque exvehito neque / exferto quod louci / siet neque cedito / nesei quo die res deina / anua fiat eod die / quod rei dinai causa / [f]iat sine dolo cedre / [l]icetod seiquis // '''violasit''' Iove bovid / piaclum datod / seiquis scies / '''violasit''' dolo malo / Iovei bovid piaclum / datod et a(sses) CCC / moltai suntod / eius piacli / moltaique dicator[e] / exactio est[od]}}
# [[玷污]],[[褻瀆]],[[侵犯]]
#: {{syn|la|rumpō|irrumpō|frangō|īnfringō}}
#* {{Q|la|Ovid|Fasti|6|167|quote=post illud nec avēs cūnās '''violāsse''' feruntur|trans=此后,他们也不再容忍鸟类'''玷污'''摇篮}}
====變位====
{{la-conj|1+.poetsyncperf.sigm|violō}}
====派生詞彙====
* {{l|la|violātor}}
* {{l|la|violentus}}
====派生語彙====
{{top3}}
* {{desc|ca|violar}}
* {{desc|en|violate|bor=1}}
* {{desc|fr|violer}}
* {{desc|gl|violar}}
* {{desc|it|violare}}
* {{desc|pms|violé}}
* {{desc|pt|violar}}
* {{desc|ro|viola}}
* {{desc|scn|viulari}}
* {{desc|es|violar}}
{{bottom}}
===參考資料===
* {{R:la:L&S}}
* {{R:la:Elementary Lewis}}
* {{R:la:Gaffiot}}
* {{R:la:M&A}}
<references />
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
oexvom87ulw9o3s6v9epcadlmctyidb
violou
0
3433960
9753521
2026-05-06T06:49:27Z
TongcyBot
83009
半自動導入非詞元形式
9753521
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violàrem
0
3433961
9753522
2026-05-06T06:49:30Z
TongcyBot
83009
半自動導入非詞元形式
9753522
wikitext
text/x-wiki
{{also|violarem}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
bjtinbxm0d4iiz6y332juh42bresh8o
violàreu
0
3433962
9753523
2026-05-06T06:49:31Z
TongcyBot
83009
半自動導入非詞元形式
9753523
wikitext
text/x-wiki
{{also|violareu}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
058f60qc2kab1oxbslbc9uye99h42rr
violàvem
0
3433963
9753524
2026-05-06T06:49:32Z
TongcyBot
83009
半自動導入非詞元形式
9753524
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
fmupaaricb1vmbijf7jtm1p5uojmv9e
violàveu
0
3433964
9753525
2026-05-06T06:49:34Z
TongcyBot
83009
半自動導入非詞元形式
9753525
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
fmupaaricb1vmbijf7jtm1p5uojmv9e
violábamos
0
3433965
9753526
2026-05-06T06:49:35Z
TongcyBot
83009
半自動導入非詞元形式
9753526
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violáis
0
3433966
9753527
2026-05-06T06:49:36Z
TongcyBot
83009
半自動導入非詞元形式
9753527
wikitext
text/x-wiki
{{also|violais}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
paxypb5eql153xqjd2h2g8jxwlso26y
violámos
0
3433967
9753528
2026-05-06T06:49:37Z
TongcyBot
83009
半自動導入非詞元形式
9753528
wikitext
text/x-wiki
{{also|violamos}}
==葡萄牙語==
===其他形式===
* {{qualifier|Brazil}} {{l|pt|violamos}}
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
7dhq5gecqfsec7w20lorf5ak6xf4nad
violándola
0
3433968
9753529
2026-05-06T06:49:39Z
TongcyBot
83009
半自動導入非詞元形式
9753529
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violándolas
0
3433969
9753530
2026-05-06T06:49:40Z
TongcyBot
83009
半自動導入非詞元形式
9753530
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violándole
0
3433970
9753531
2026-05-06T06:49:42Z
TongcyBot
83009
半自動導入非詞元形式
9753531
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violándoles
0
3433971
9753532
2026-05-06T06:49:43Z
TongcyBot
83009
半自動導入非詞元形式
9753532
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violándolo
0
3433972
9753533
2026-05-06T06:49:45Z
TongcyBot
83009
半自動導入非詞元形式
9753533
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violándolos
0
3433973
9753534
2026-05-06T06:49:46Z
TongcyBot
83009
半自動導入非詞元形式
9753534
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violándome
0
3433974
9753535
2026-05-06T06:49:47Z
TongcyBot
83009
半自動導入非詞元形式
9753535
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violándonos
0
3433975
9753536
2026-05-06T06:49:48Z
TongcyBot
83009
半自動導入非詞元形式
9753536
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violándoos
0
3433976
9753537
2026-05-06T06:49:50Z
TongcyBot
83009
半自動導入非詞元形式
9753537
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violándose
0
3433977
9753538
2026-05-06T06:49:51Z
TongcyBot
83009
半自動導入非詞元形式
9753538
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violándote
0
3433978
9753539
2026-05-06T06:49:53Z
TongcyBot
83009
半自動導入非詞元形式
9753539
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violáramos
0
3433979
9753540
2026-05-06T06:49:54Z
TongcyBot
83009
半自動導入非詞元形式
9753540
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
584xc3mm6ddybz9kbtmntfvz90o7igt
violáreis
0
3433980
9753541
2026-05-06T06:49:55Z
TongcyBot
83009
半自動導入非詞元形式
9753541
wikitext
text/x-wiki
{{also|violareis|violaréis}}
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
8ufhm9xvl0lb876zyknyt04gjdqpbfy
violáremos
0
3433981
9753542
2026-05-06T06:49:56Z
TongcyBot
83009
半自動導入非詞元形式
9753542
wikitext
text/x-wiki
{{also|violaremos}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
852q3g937mvycaugqnfoz61b73493y0
violás
0
3433982
9753543
2026-05-06T06:49:57Z
TongcyBot
83009
半自動導入非詞元形式
9753543
wikitext
text/x-wiki
{{also|violas}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
ozlzoy9nm7grehjo1hvro7efr63cukp
violásemos
0
3433983
9753544
2026-05-06T06:49:59Z
TongcyBot
83009
半自動導入非詞元形式
9753544
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
violásseis
0
3433984
9753545
2026-05-06T06:50:00Z
TongcyBot
83009
半自動導入非詞元形式
9753545
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violássemos
0
3433985
9753546
2026-05-06T06:50:02Z
TongcyBot
83009
半自動導入非詞元形式
9753546
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violávamos
0
3433986
9753547
2026-05-06T06:50:03Z
TongcyBot
83009
半自動導入非詞元形式
9753547
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violáveis
0
3433987
9753548
2026-05-06T06:50:04Z
TongcyBot
83009
半自動導入非詞元形式
9753548
wikitext
text/x-wiki
==葡萄牙語==
===動詞===
{{head|pt|動詞變位形式}}
# {{pt-verb form of|violar}}
1e9ecl7n52zmv9jexk1xy5p60qep2dd
violéis
0
3433988
9753549
2026-05-06T06:50:06Z
TongcyBot
83009
半自動導入非詞元形式
9753549
wikitext
text/x-wiki
{{also|violeis}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
3le22tifwt4aqkywcjffx9dqblt8821
violés
0
3433989
9753550
2026-05-06T06:50:07Z
TongcyBot
83009
半自動導入非詞元形式
9753550
wikitext
text/x-wiki
{{also|violes}}
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
==法語==
===分詞===
{{head|fr|過去分詞變格形|g=m-p}}
# {{masculine plural of|fr|violé}}
===異序詞===
* {{l|fr|solive}}
* {{l|fr|voiles}}、{{l|fr|Voiles}}、{{l|fr|voilés}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
1t9uvdht3sm3p9wjz6uj4bb40bifwom
violéssim
0
3433990
9753551
2026-05-06T06:50:08Z
TongcyBot
83009
半自動導入非詞元形式
9753551
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
fmupaaricb1vmbijf7jtm1p5uojmv9e
violéssiu
0
3433991
9753552
2026-05-06T06:50:10Z
TongcyBot
83009
半自動導入非詞元形式
9753552
wikitext
text/x-wiki
==加泰羅尼亞語==
===動詞===
{{head|ca|動詞變位形式}}
# {{ca-verb form of|violar}}
fmupaaricb1vmbijf7jtm1p5uojmv9e
violó
0
3433992
9753553
2026-05-06T06:50:11Z
TongcyBot
83009
半自動導入非詞元形式
9753553
wikitext
text/x-wiki
{{also|violo|violò}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
sxsgag1595fodibzubf3mtx9e2v52xt
vióleme
0
3433993
9753554
2026-05-06T06:50:12Z
TongcyBot
83009
半自動導入非詞元形式
9753554
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|violar}}
72n095wd4ub5zrdn9uns5y2a4fxbn42
zarabutea
0
3433994
9753555
2026-05-06T06:50:13Z
TongcyBot
83009
半自動導入非詞元形式
9753555
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteaba
0
3433995
9753556
2026-05-06T06:50:14Z
TongcyBot
83009
半自動導入非詞元形式
9753556
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteabais
0
3433996
9753557
2026-05-06T06:50:16Z
TongcyBot
83009
半自動導入非詞元形式
9753557
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteaban
0
3433997
9753558
2026-05-06T06:50:17Z
TongcyBot
83009
半自動導入非詞元形式
9753558
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteabas
0
3433998
9753559
2026-05-06T06:50:19Z
TongcyBot
83009
半自動導入非詞元形式
9753559
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutead
0
3433999
9753560
2026-05-06T06:50:20Z
TongcyBot
83009
半自動導入非詞元形式
9753560
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteada
0
3434000
9753561
2026-05-06T06:50:21Z
TongcyBot
83009
半自動導入非詞元形式
9753561
wikitext
text/x-wiki
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|分詞變格形}}
# {{feminine singular of|es|zarabuteado}}
pj5owlijfeoafivctzfdgrg0vafck3f
zarabuteadas
0
3434001
9753562
2026-05-06T06:50:22Z
TongcyBot
83009
半自動導入非詞元形式
9753562
wikitext
text/x-wiki
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|分詞變格形}}
# {{feminine plural of|es|zarabuteado}}
rqwf51q7msgviw78xbnrsrstr3vsnlj
zarabuteado
0
3434002
9753563
2026-05-06T06:50:24Z
TongcyBot
83009
半自動導入非詞元形式
9753563
wikitext
text/x-wiki
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{es-past participle}}
# {{past participle of|es|zarabutear}}
ihsfoefsqn0gdvbr9riczlauyu5veri
zarabuteados
0
3434003
9753564
2026-05-06T06:50:25Z
TongcyBot
83009
半自動導入非詞元形式
9753564
wikitext
text/x-wiki
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|分詞變格形}}
# {{masculine plural of|es|zarabuteado}}
np09rb8yos2ubzhg2zm8k4ukma7k1m9
zarabuteamos
0
3434004
9753565
2026-05-06T06:50:26Z
TongcyBot
83009
半自動導入非詞元形式
9753565
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutean
0
3434005
9753566
2026-05-06T06:50:28Z
TongcyBot
83009
半自動導入非詞元形式
9753566
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteando
0
3434006
9753567
2026-05-06T06:50:29Z
TongcyBot
83009
半自動導入非詞元形式
9753567
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動名詞}}
# {{es-verb form of|zarabutear}}
go5qzjerxtkl8ftd2be57d2s39otqxb
zarabuteara
0
3434007
9753568
2026-05-06T06:50:31Z
TongcyBot
83009
半自動導入非詞元形式
9753568
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearais
0
3434008
9753569
2026-05-06T06:50:32Z
TongcyBot
83009
半自動導入非詞元形式
9753569
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearan
0
3434009
9753570
2026-05-06T06:50:34Z
TongcyBot
83009
半自動導入非詞元形式
9753570
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearas
0
3434010
9753571
2026-05-06T06:50:35Z
TongcyBot
83009
半自動導入非詞元形式
9753571
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteare
0
3434011
9753572
2026-05-06T06:50:36Z
TongcyBot
83009
半自動導入非詞元形式
9753572
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteareis
0
3434012
9753573
2026-05-06T06:50:37Z
TongcyBot
83009
半自動導入非詞元形式
9753573
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearemos
0
3434013
9753574
2026-05-06T06:50:38Z
TongcyBot
83009
半自動導入非詞元形式
9753574
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearen
0
3434014
9753575
2026-05-06T06:50:40Z
TongcyBot
83009
半自動導入非詞元形式
9753575
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteares
0
3434015
9753576
2026-05-06T06:50:41Z
TongcyBot
83009
半自動導入非詞元形式
9753576
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearle
0
3434016
9753577
2026-05-06T06:50:43Z
TongcyBot
83009
半自動導入非詞元形式
9753577
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearles
0
3434017
9753578
2026-05-06T06:50:44Z
TongcyBot
83009
半自動導入非詞元形式
9753578
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearme
0
3434018
9753579
2026-05-06T06:50:46Z
TongcyBot
83009
半自動導入非詞元形式
9753579
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearnos
0
3434019
9753580
2026-05-06T06:50:47Z
TongcyBot
83009
半自動導入非詞元形式
9753580
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearon
0
3434020
9753581
2026-05-06T06:50:49Z
TongcyBot
83009
半自動導入非詞元形式
9753581
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearos
0
3434021
9753582
2026-05-06T06:50:50Z
TongcyBot
83009
半自動導入非詞元形式
9753582
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearse
0
3434022
9753583
2026-05-06T06:50:51Z
TongcyBot
83009
半自動導入非詞元形式
9753583
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearte
0
3434023
9753584
2026-05-06T06:50:52Z
TongcyBot
83009
半自動導入非詞元形式
9753584
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteará
0
3434024
9753585
2026-05-06T06:50:54Z
TongcyBot
83009
半自動導入非詞元形式
9753585
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearán
0
3434025
9753586
2026-05-06T06:50:55Z
TongcyBot
83009
半自動導入非詞元形式
9753586
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearé
0
3434026
9753587
2026-05-06T06:50:58Z
TongcyBot
83009
半自動導入非詞元形式
9753587
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearás
0
3434027
9753588
2026-05-06T06:50:59Z
TongcyBot
83009
半自動導入非詞元形式
9753588
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearéis
0
3434028
9753589
2026-05-06T06:51:01Z
TongcyBot
83009
半自動導入非詞元形式
9753589
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearía
0
3434029
9753590
2026-05-06T06:51:02Z
TongcyBot
83009
半自動導入非詞元形式
9753590
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearíais
0
3434030
9753591
2026-05-06T06:51:03Z
TongcyBot
83009
半自動導入非詞元形式
9753591
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearíamos
0
3434031
9753592
2026-05-06T06:51:04Z
TongcyBot
83009
半自動導入非詞元形式
9753592
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearían
0
3434032
9753593
2026-05-06T06:51:06Z
TongcyBot
83009
半自動導入非詞元形式
9753593
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutearías
0
3434033
9753594
2026-05-06T06:51:07Z
TongcyBot
83009
半自動導入非詞元形式
9753594
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteas
0
3434034
9753595
2026-05-06T06:51:09Z
TongcyBot
83009
半自動導入非詞元形式
9753595
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutease
0
3434035
9753596
2026-05-06T06:51:10Z
TongcyBot
83009
半自動導入非詞元形式
9753596
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteaseis
0
3434036
9753597
2026-05-06T06:51:12Z
TongcyBot
83009
半自動導入非詞元形式
9753597
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteasen
0
3434037
9753598
2026-05-06T06:51:12Z
TongcyBot
83009
半自動導入非詞元形式
9753598
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteases
0
3434038
9753599
2026-05-06T06:51:14Z
TongcyBot
83009
半自動導入非詞元形式
9753599
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteaste
0
3434039
9753600
2026-05-06T06:51:15Z
TongcyBot
83009
半自動導入非詞元形式
9753600
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteasteis
0
3434040
9753601
2026-05-06T06:51:16Z
TongcyBot
83009
半自動導入非詞元形式
9753601
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutee
0
3434041
9753602
2026-05-06T06:51:18Z
TongcyBot
83009
半自動導入非詞元形式
9753602
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteemos
0
3434042
9753603
2026-05-06T06:51:19Z
TongcyBot
83009
半自動導入非詞元形式
9753603
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteen
0
3434043
9753604
2026-05-06T06:51:20Z
TongcyBot
83009
半自動導入非詞元形式
9753604
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabutees
0
3434044
9753605
2026-05-06T06:51:21Z
TongcyBot
83009
半自動導入非詞元形式
9753605
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteo
0
3434045
9753606
2026-05-06T06:51:22Z
TongcyBot
83009
半自動導入非詞元形式
9753606
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteá
0
3434046
9753607
2026-05-06T06:51:24Z
TongcyBot
83009
半自動導入非詞元形式
9753607
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteábamos
0
3434047
9753608
2026-05-06T06:51:25Z
TongcyBot
83009
半自動導入非詞元形式
9753608
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteáis
0
3434048
9753609
2026-05-06T06:51:27Z
TongcyBot
83009
半自動導入非詞元形式
9753609
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteándola
0
3434049
9753610
2026-05-06T06:51:28Z
TongcyBot
83009
半自動導入非詞元形式
9753610
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteándole
0
3434050
9753611
2026-05-06T06:51:29Z
TongcyBot
83009
半自動導入非詞元形式
9753611
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteándolo
0
3434051
9753612
2026-05-06T06:51:30Z
TongcyBot
83009
半自動導入非詞元形式
9753612
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteándome
0
3434052
9753613
2026-05-06T06:51:32Z
TongcyBot
83009
半自動導入非詞元形式
9753613
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteándose
0
3434053
9753614
2026-05-06T06:51:33Z
TongcyBot
83009
半自動導入非詞元形式
9753614
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteándote
0
3434054
9753615
2026-05-06T06:51:34Z
TongcyBot
83009
半自動導入非詞元形式
9753615
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteáramos
0
3434055
9753616
2026-05-06T06:51:36Z
TongcyBot
83009
半自動導入非詞元形式
9753616
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteáremos
0
3434056
9753617
2026-05-06T06:51:37Z
TongcyBot
83009
半自動導入非詞元形式
9753617
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteás
0
3434057
9753618
2026-05-06T06:51:39Z
TongcyBot
83009
半自動導入非詞元形式
9753618
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteásemos
0
3434058
9753619
2026-05-06T06:51:39Z
TongcyBot
83009
半自動導入非詞元形式
9753619
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteé
0
3434059
9753620
2026-05-06T06:51:41Z
TongcyBot
83009
半自動導入非詞元形式
9753620
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteéis
0
3434060
9753621
2026-05-06T06:51:43Z
TongcyBot
83009
半自動導入非詞元形式
9753621
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zarabuteó
0
3434061
9753622
2026-05-06T06:51:45Z
TongcyBot
83009
半自動導入非詞元形式
9753622
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zaragutea
0
3434062
9753623
2026-05-06T06:51:47Z
TongcyBot
83009
半自動導入非詞元形式
9753623
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zarabuteés
0
3434063
9753624
2026-05-06T06:51:48Z
TongcyBot
83009
半自動導入非詞元形式
9753624
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zarabutear}}
hspwkvz2z008rj4hb9mu4t1xweu018q
zaraguteaba
0
3434064
9753625
2026-05-06T06:51:49Z
TongcyBot
83009
半自動導入非詞元形式
9753625
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteabais
0
3434065
9753626
2026-05-06T06:51:51Z
TongcyBot
83009
半自動導入非詞元形式
9753626
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteaban
0
3434066
9753627
2026-05-06T06:51:52Z
TongcyBot
83009
半自動導入非詞元形式
9753627
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteabas
0
3434067
9753628
2026-05-06T06:51:53Z
TongcyBot
83009
半自動導入非詞元形式
9753628
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutead
0
3434068
9753629
2026-05-06T06:51:55Z
TongcyBot
83009
半自動導入非詞元形式
9753629
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteada
0
3434069
9753630
2026-05-06T06:51:56Z
TongcyBot
83009
半自動導入非詞元形式
9753630
wikitext
text/x-wiki
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|分詞變格形}}
# {{feminine singular of|es|zaraguteado}}
2qz9uu1mr8cxswe26zrbg5jzevrdhqz
zaraguteadas
0
3434070
9753631
2026-05-06T06:51:57Z
TongcyBot
83009
半自動導入非詞元形式
9753631
wikitext
text/x-wiki
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|分詞變格形}}
# {{feminine plural of|es|zaraguteado}}
44kt4dn7mf2h89wts03g2u7rx9dfc48
zaraguteado
0
3434071
9753632
2026-05-06T06:51:59Z
TongcyBot
83009
半自動導入非詞元形式
9753632
wikitext
text/x-wiki
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{es-past participle}}
# {{past participle of|es|zaragutear}}
m1d9yv3ncyrsq8kfsr9fvi15rowcd6i
zaraguteados
0
3434072
9753633
2026-05-06T06:52:00Z
TongcyBot
83009
半自動導入非詞元形式
9753633
wikitext
text/x-wiki
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|分詞變格形}}
# {{masculine plural of|es|zaraguteado}}
knzb93fd85ko8c542psjnjfxqyz6dv9
zaraguteamos
0
3434073
9753634
2026-05-06T06:52:02Z
TongcyBot
83009
半自動導入非詞元形式
9753634
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutean
0
3434074
9753635
2026-05-06T06:52:03Z
TongcyBot
83009
半自動導入非詞元形式
9753635
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteando
0
3434075
9753636
2026-05-06T06:52:05Z
TongcyBot
83009
半自動導入非詞元形式
9753636
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動名詞}}
# {{es-verb form of|zaragutear}}
3hqueubu5vvw108xg42mnfarb009ygk
zaraguteara
0
3434076
9753637
2026-05-06T06:52:05Z
TongcyBot
83009
半自動導入非詞元形式
9753637
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearais
0
3434077
9753638
2026-05-06T06:52:08Z
TongcyBot
83009
半自動導入非詞元形式
9753638
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearan
0
3434078
9753639
2026-05-06T06:52:09Z
TongcyBot
83009
半自動導入非詞元形式
9753639
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearas
0
3434079
9753640
2026-05-06T06:52:10Z
TongcyBot
83009
半自動導入非詞元形式
9753640
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteare
0
3434080
9753641
2026-05-06T06:52:12Z
TongcyBot
83009
半自動導入非詞元形式
9753641
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteareis
0
3434081
9753642
2026-05-06T06:52:13Z
TongcyBot
83009
半自動導入非詞元形式
9753642
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearemos
0
3434082
9753643
2026-05-06T06:52:14Z
TongcyBot
83009
半自動導入非詞元形式
9753643
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearen
0
3434083
9753644
2026-05-06T06:52:15Z
TongcyBot
83009
半自動導入非詞元形式
9753644
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteares
0
3434084
9753645
2026-05-06T06:52:16Z
TongcyBot
83009
半自動導入非詞元形式
9753645
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearon
0
3434085
9753646
2026-05-06T06:52:18Z
TongcyBot
83009
半自動導入非詞元形式
9753646
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteará
0
3434086
9753647
2026-05-06T06:52:20Z
TongcyBot
83009
半自動導入非詞元形式
9753647
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearán
0
3434087
9753648
2026-05-06T06:52:21Z
TongcyBot
83009
半自動導入非詞元形式
9753648
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearás
0
3434088
9753649
2026-05-06T06:52:22Z
TongcyBot
83009
半自動導入非詞元形式
9753649
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearé
0
3434089
9753650
2026-05-06T06:52:24Z
TongcyBot
83009
半自動導入非詞元形式
9753650
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearéis
0
3434090
9753651
2026-05-06T06:52:25Z
TongcyBot
83009
半自動導入非詞元形式
9753651
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearía
0
3434091
9753652
2026-05-06T06:52:27Z
TongcyBot
83009
半自動導入非詞元形式
9753652
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearíais
0
3434092
9753653
2026-05-06T06:52:28Z
TongcyBot
83009
半自動導入非詞元形式
9753653
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearíamos
0
3434093
9753654
2026-05-06T06:52:29Z
TongcyBot
83009
半自動導入非詞元形式
9753654
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearían
0
3434094
9753655
2026-05-06T06:52:30Z
TongcyBot
83009
半自動導入非詞元形式
9753655
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutearías
0
3434095
9753656
2026-05-06T06:52:32Z
TongcyBot
83009
半自動導入非詞元形式
9753656
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteas
0
3434096
9753657
2026-05-06T06:52:33Z
TongcyBot
83009
半自動導入非詞元形式
9753657
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutease
0
3434097
9753658
2026-05-06T06:52:34Z
TongcyBot
83009
半自動導入非詞元形式
9753658
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteaseis
0
3434098
9753659
2026-05-06T06:52:36Z
TongcyBot
83009
半自動導入非詞元形式
9753659
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteasen
0
3434099
9753660
2026-05-06T06:52:37Z
TongcyBot
83009
半自動導入非詞元形式
9753660
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteases
0
3434100
9753661
2026-05-06T06:52:38Z
TongcyBot
83009
半自動導入非詞元形式
9753661
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteaste
0
3434101
9753662
2026-05-06T06:52:40Z
TongcyBot
83009
半自動導入非詞元形式
9753662
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteasteis
0
3434102
9753663
2026-05-06T06:52:41Z
TongcyBot
83009
半自動導入非詞元形式
9753663
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutee
0
3434103
9753664
2026-05-06T06:52:42Z
TongcyBot
83009
半自動導入非詞元形式
9753664
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteemos
0
3434104
9753665
2026-05-06T06:52:44Z
TongcyBot
83009
半自動導入非詞元形式
9753665
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteen
0
3434105
9753666
2026-05-06T06:52:46Z
TongcyBot
83009
半自動導入非詞元形式
9753666
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaragutees
0
3434106
9753667
2026-05-06T06:52:47Z
TongcyBot
83009
半自動導入非詞元形式
9753667
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteo
0
3434107
9753668
2026-05-06T06:52:48Z
TongcyBot
83009
半自動導入非詞元形式
9753668
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteá
0
3434108
9753669
2026-05-06T06:52:49Z
TongcyBot
83009
半自動導入非詞元形式
9753669
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteábamos
0
3434109
9753670
2026-05-06T06:52:51Z
TongcyBot
83009
半自動導入非詞元形式
9753670
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteáis
0
3434110
9753671
2026-05-06T06:52:52Z
TongcyBot
83009
半自動導入非詞元形式
9753671
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteáramos
0
3434111
9753672
2026-05-06T06:52:53Z
TongcyBot
83009
半自動導入非詞元形式
9753672
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteáremos
0
3434112
9753673
2026-05-06T06:52:55Z
TongcyBot
83009
半自動導入非詞元形式
9753673
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteás
0
3434113
9753674
2026-05-06T06:52:56Z
TongcyBot
83009
半自動導入非詞元形式
9753674
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteásemos
0
3434114
9753675
2026-05-06T06:52:58Z
TongcyBot
83009
半自動導入非詞元形式
9753675
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteé
0
3434115
9753676
2026-05-06T06:52:59Z
TongcyBot
83009
半自動導入非詞元形式
9753676
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteés
0
3434116
9753677
2026-05-06T06:53:01Z
TongcyBot
83009
半自動導入非詞元形式
9753677
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteéis
0
3434117
9753678
2026-05-06T06:53:02Z
TongcyBot
83009
半自動導入非詞元形式
9753678
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zaraguteó
0
3434118
9753679
2026-05-06T06:53:03Z
TongcyBot
83009
半自動導入非詞元形式
9753679
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zaragutear}}
h7jevkxo7eno6obycqnvar53sqjf8lc
zigzaguea
0
3434119
9753680
2026-05-06T06:53:05Z
TongcyBot
83009
半自動導入非詞元形式
9753680
wikitext
text/x-wiki
{{also|zigzagueá}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
6u0ed73tigsduu022g5tei0jxre1ji7
zigzagueaba
0
3434120
9753681
2026-05-06T06:53:06Z
TongcyBot
83009
半自動導入非詞元形式
9753681
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueabais
0
3434121
9753682
2026-05-06T06:53:07Z
TongcyBot
83009
半自動導入非詞元形式
9753682
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueaban
0
3434122
9753683
2026-05-06T06:53:10Z
TongcyBot
83009
半自動導入非詞元形式
9753683
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueabas
0
3434123
9753684
2026-05-06T06:53:11Z
TongcyBot
83009
半自動導入非詞元形式
9753684
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzaguead
0
3434124
9753685
2026-05-06T06:53:14Z
TongcyBot
83009
半自動導入非詞元形式
9753685
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueada
0
3434125
9753686
2026-05-06T06:53:15Z
TongcyBot
83009
半自動導入非詞元形式
9753686
wikitext
text/x-wiki
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|過去分詞變格形|g=f-s}}
# {{feminine singular of|es|zigzagueado}}
isb9m96me10igd7bo4xlq0h0oku8mdn
zigzagueadas
0
3434126
9753687
2026-05-06T06:53:16Z
TongcyBot
83009
半自動導入非詞元形式
9753687
wikitext
text/x-wiki
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|過去分詞變格形|g=f-p}}
# {{feminine plural of|es|zigzagueado}}
07is2gd37vdiepj3oh7yb2ut4u1t24z
zigzagueado
0
3434127
9753688
2026-05-06T06:53:17Z
TongcyBot
83009
半自動導入非詞元形式
9753688
wikitext
text/x-wiki
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{es-past participle}}
# {{past participle of|es|zigzaguear}}
9yunxkilenaffq1f91f2eth9xnc9097
zigzagueados
0
3434128
9753689
2026-05-06T06:53:19Z
TongcyBot
83009
半自動導入非詞元形式
9753689
wikitext
text/x-wiki
==西班牙語==
===發音===
{{es-pr}}
===分詞===
{{head|es|過去分詞變格形|g=m-p}}
# {{masculine plural of|es|zigzagueado}}
4lqkwaagpqgu4u3jk0g3v6350j82g26
zigzagueamos
0
3434129
9753690
2026-05-06T06:53:20Z
TongcyBot
83009
半自動導入非詞元形式
9753690
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzaguean
0
3434130
9753691
2026-05-06T06:53:21Z
TongcyBot
83009
半自動導入非詞元形式
9753691
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueando
0
3434131
9753692
2026-05-06T06:53:22Z
TongcyBot
83009
半自動導入非詞元形式
9753692
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動名詞}}
# {{es-verb form of|zigzaguear}}
hj3bbncidcsxwimdlq110cfnnjjwh64
zigzagueara
0
3434132
9753693
2026-05-06T06:53:24Z
TongcyBot
83009
半自動導入非詞元形式
9753693
wikitext
text/x-wiki
{{also|zigzagueará}}
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
aujkzxnc903bli4j4qfot7t28racuxj
zigzaguearais
0
3434133
9753694
2026-05-06T06:53:25Z
TongcyBot
83009
半自動導入非詞元形式
9753694
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzaguearan
0
3434134
9753695
2026-05-06T06:53:27Z
TongcyBot
83009
半自動導入非詞元形式
9753695
wikitext
text/x-wiki
{{also|zigzaguearán}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
nbgr9mny7t5iln3foblivtzme4o4hlk
zigzaguearas
0
3434135
9753696
2026-05-06T06:53:28Z
TongcyBot
83009
半自動導入非詞元形式
9753696
wikitext
text/x-wiki
{{also|zigzaguearás}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
6z51czttejk5lt62bksvu523eiywkak
zigzagueare
0
3434136
9753697
2026-05-06T06:53:30Z
TongcyBot
83009
半自動導入非詞元形式
9753697
wikitext
text/x-wiki
{{also|zigzaguearé}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
d17279k4ek4044m1zr1ed4h4gfqg4ab
zigzagueareis
0
3434137
9753698
2026-05-06T06:53:30Z
TongcyBot
83009
半自動導入非詞元形式
9753698
wikitext
text/x-wiki
{{also|zigzaguearéis}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
eaq6ozisgc1at44xiezdq9ajnjwwcy0
zigzaguearemos
0
3434138
9753699
2026-05-06T06:53:32Z
TongcyBot
83009
半自動導入非詞元形式
9753699
wikitext
text/x-wiki
{{also|zigzagueáremos}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
39134g7ynzcvevppl658c8jjpzn2ylh
zigzaguearen
0
3434139
9753700
2026-05-06T06:53:33Z
TongcyBot
83009
半自動導入非詞元形式
9753700
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueares
0
3434140
9753701
2026-05-06T06:53:35Z
TongcyBot
83009
半自動導入非詞元形式
9753701
wikitext
text/x-wiki
==西班牙語==
===發音===
{{es-pr}}
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
rkitpl6kd11m6qq6istmnajd8at4m7e
zigzaguearon
0
3434141
9753702
2026-05-06T06:53:36Z
TongcyBot
83009
半自動導入非詞元形式
9753702
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueará
0
3434142
9753703
2026-05-06T06:53:37Z
TongcyBot
83009
半自動導入非詞元形式
9753703
wikitext
text/x-wiki
{{also|zigzagueara}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
gx5kh4k5s3i3imq0qoi9resmcj3m1wg
zigzaguearán
0
3434143
9753704
2026-05-06T06:53:38Z
TongcyBot
83009
半自動導入非詞元形式
9753704
wikitext
text/x-wiki
{{also|zigzaguearan}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
t96go75lpeak4pzelbk87i6vjmiik39
zigzaguearás
0
3434144
9753705
2026-05-06T06:53:40Z
TongcyBot
83009
半自動導入非詞元形式
9753705
wikitext
text/x-wiki
{{also|zigzaguearas}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
7hsp1b500i5lqk1zesit23pviyxb8o1
zigzaguearé
0
3434145
9753706
2026-05-06T06:53:41Z
TongcyBot
83009
半自動導入非詞元形式
9753706
wikitext
text/x-wiki
{{also|zigzagueare}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
qrpdytfq24yiwbun7f76i02w8bkmjw8
zigzaguearéis
0
3434146
9753707
2026-05-06T06:53:42Z
TongcyBot
83009
半自動導入非詞元形式
9753707
wikitext
text/x-wiki
{{also|zigzagueareis}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
1rkc91n0fhavck0mf7iweodfahjh45b
zigzaguearía
0
3434147
9753708
2026-05-06T06:53:43Z
TongcyBot
83009
半自動導入非詞元形式
9753708
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzaguearíais
0
3434148
9753709
2026-05-06T06:53:45Z
TongcyBot
83009
半自動導入非詞元形式
9753709
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzaguearíamos
0
3434149
9753710
2026-05-06T06:53:46Z
TongcyBot
83009
半自動導入非詞元形式
9753710
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzaguearían
0
3434150
9753711
2026-05-06T06:53:47Z
TongcyBot
83009
半自動導入非詞元形式
9753711
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzaguearías
0
3434151
9753712
2026-05-06T06:53:49Z
TongcyBot
83009
半自動導入非詞元形式
9753712
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueas
0
3434152
9753713
2026-05-06T06:53:50Z
TongcyBot
83009
半自動導入非詞元形式
9753713
wikitext
text/x-wiki
{{also|zigzagueás}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
nm0234a6f6i7yy07v5e3i7f0vxw8szx
zigzaguease
0
3434153
9753714
2026-05-06T06:53:51Z
TongcyBot
83009
半自動導入非詞元形式
9753714
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueaseis
0
3434154
9753715
2026-05-06T06:53:53Z
TongcyBot
83009
半自動導入非詞元形式
9753715
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueasen
0
3434155
9753716
2026-05-06T06:53:54Z
TongcyBot
83009
半自動導入非詞元形式
9753716
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueases
0
3434156
9753717
2026-05-06T06:53:56Z
TongcyBot
83009
半自動導入非詞元形式
9753717
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueaste
0
3434157
9753718
2026-05-06T06:53:57Z
TongcyBot
83009
半自動導入非詞元形式
9753718
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueasteis
0
3434158
9753719
2026-05-06T06:53:58Z
TongcyBot
83009
半自動導入非詞元形式
9753719
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzaguee
0
3434159
9753720
2026-05-06T06:54:00Z
TongcyBot
83009
半自動導入非詞元形式
9753720
wikitext
text/x-wiki
{{also|zigzagueé|zigzaguée}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
pliwf9fnlxe0uhkjgj6lk0ywt6euf93
zigzagueemos
0
3434160
9753721
2026-05-06T06:54:01Z
TongcyBot
83009
半自動導入非詞元形式
9753721
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueen
0
3434161
9753722
2026-05-06T06:54:02Z
TongcyBot
83009
半自動導入非詞元形式
9753722
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzaguees
0
3434162
9753723
2026-05-06T06:54:03Z
TongcyBot
83009
半自動導入非詞元形式
9753723
wikitext
text/x-wiki
{{also|zigzagueés|zigzaguées}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
o340hypxt6sk2mkilg5r6ztljbjzf5y
zigzagueo
0
3434163
9753724
2026-05-06T06:54:04Z
TongcyBot
83009
半自動導入非詞元形式
9753724
wikitext
text/x-wiki
{{also|zigzagueó}}
==西班牙語==
===發音===
{{es-pr|+,tsigzagueo}}
===詞源1===
源自 {{af|es|zigzaguear|gloss1=to zigzag|-eo}}。
====名詞====
{{es-noun|m}}
# the action of [[zigzagging]]
===詞源2===
====動詞====
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
===延伸閱讀===
* {{R:es:DRAE}}
toq7vbq814qilq88bkff19h107vuhrj
9753747
9753724
2026-05-06T07:26:38Z
Sayonzei
40728
/* 詞源1 */
9753747
wikitext
text/x-wiki
{{also|zigzagueó}}
==西班牙語==
===發音===
{{es-pr|+,tsigzagueo}}
===詞源1===
源自 {{af|es|zigzaguear|-eo}}。
====名詞====
{{es-noun|m}}
# [[蜿蜒]]
===詞源2===
====動詞====
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
===延伸閱讀===
* {{R:es:DRAE}}
dx4zy4tb4lah7nefjo8un6yw41x9oid
zigzagueá
0
3434164
9753725
2026-05-06T06:54:06Z
TongcyBot
83009
半自動導入非詞元形式
9753725
wikitext
text/x-wiki
{{also|zigzaguea}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
ggs9eqh1vmgbqll38z3mafvj6p02t3l
zigzagueábamos
0
3434165
9753726
2026-05-06T06:54:08Z
TongcyBot
83009
半自動導入非詞元形式
9753726
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueáis
0
3434166
9753727
2026-05-06T06:54:09Z
TongcyBot
83009
半自動導入非詞元形式
9753727
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueáramos
0
3434167
9753728
2026-05-06T06:54:10Z
TongcyBot
83009
半自動導入非詞元形式
9753728
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueáremos
0
3434168
9753729
2026-05-06T06:54:11Z
TongcyBot
83009
半自動導入非詞元形式
9753729
wikitext
text/x-wiki
{{also|zigzaguearemos}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
jnyur1909ry8gxxutcwu5lm946fh7ri
zigzagueás
0
3434169
9753730
2026-05-06T06:54:13Z
TongcyBot
83009
半自動導入非詞元形式
9753730
wikitext
text/x-wiki
{{also|zigzagueas}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
1isgmt37whqobng1mthynljhxldsw58
zigzagueásemos
0
3434170
9753731
2026-05-06T06:54:14Z
TongcyBot
83009
半自動導入非詞元形式
9753731
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueé
0
3434171
9753732
2026-05-06T06:54:15Z
TongcyBot
83009
半自動導入非詞元形式
9753732
wikitext
text/x-wiki
{{also|zigzaguee|zigzaguée}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
c9kprpzlskxhnaojwbovl58xmqm2ti0
zigzagueéis
0
3434172
9753733
2026-05-06T06:54:16Z
TongcyBot
83009
半自動導入非詞元形式
9753733
wikitext
text/x-wiki
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
8tgbvg0hk78xj97cd1vlptj69fz2isn
zigzagueés
0
3434173
9753734
2026-05-06T06:54:17Z
TongcyBot
83009
半自動導入非詞元形式
9753734
wikitext
text/x-wiki
{{also|zigzaguees|zigzaguées}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
9j1uenpopwlrsq6dabxqxops09373gd
zigzagueó
0
3434174
9753735
2026-05-06T06:54:19Z
TongcyBot
83009
半自動導入非詞元形式
9753735
wikitext
text/x-wiki
{{also|zigzagueo}}
==西班牙語==
===動詞===
{{head|es|動詞變位形式}}
# {{es-verb form of|zigzaguear}}
40sqvkiqnoiwargl7437m18zh9qhss8
validée
0
3434175
9753744
2026-05-06T07:25:42Z
Sayonzei
40728
創建法語「[[validé]]」的非詞元形式([[WT:ACCEL|ACCEL]])
9753744
wikitext
text/x-wiki
==法語==
===分詞===
{{head|fr|過去分詞變格形|g=f-s}}
# {{feminine singular of|fr|validé}}
3432lwfnxo4vlypq6nvl5b69p5xhlg7
validées
0
3434176
9753745
2026-05-06T07:25:44Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==法語== ===分詞=== {{head|fr|過去分詞變格形|g=f-p}} # {{feminine plural of|fr|validé}} ===異序詞=== * {{l|fr|dévalise}}、{{l|fr|dévalisé}}」的新頁面
9753745
wikitext
text/x-wiki
==法語==
===分詞===
{{head|fr|過去分詞變格形|g=f-p}}
# {{feminine plural of|fr|validé}}
===異序詞===
* {{l|fr|dévalise}}、{{l|fr|dévalisé}}
s7u4485xx1xft1mnx7v3ekz646497wo
zigzagueos
0
3434177
9753748
2026-05-06T07:26:54Z
Sayonzei
40728
[[w:WP:AES|←]]建立內容為「==西班牙語== ===名詞=== {{head|es|名詞變格形}} # {{plural of|es|zigzagueo}}」的新頁面
9753748
wikitext
text/x-wiki
==西班牙語==
===名詞===
{{head|es|名詞變格形}}
# {{plural of|es|zigzagueo}}
mqjo1t0dr1tznazw2k9b84nifjnkedu
Category:帶「𠩇」的漢語詞
14
3434178
9753763
2026-05-06T08:31:34Z
TongcyBot
83009
養貓
9753763
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Category:帶「𠩇」的詞
14
3434179
9753764
2026-05-06T08:31:40Z
TongcyBot
83009
養貓
9753764
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Category:帶「𧈹」的漢語詞
14
3434180
9753765
2026-05-06T08:31:47Z
TongcyBot
83009
養貓
9753765
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Category:帶「𧈹」的詞
14
3434181
9753766
2026-05-06T08:31:52Z
TongcyBot
83009
養貓
9753766
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Category:帶「𧈸」的漢語詞
14
3434182
9753767
2026-05-06T08:31:59Z
TongcyBot
83009
養貓
9753767
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Category:帶「𧈸」的詞
14
3434183
9753768
2026-05-06T08:32:05Z
TongcyBot
83009
養貓
9753768
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Category:帶「𧦌」的漢語詞
14
3434184
9753769
2026-05-06T08:32:12Z
TongcyBot
83009
養貓
9753769
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Category:帶「𧦌」的詞
14
3434185
9753770
2026-05-06T08:32:18Z
TongcyBot
83009
養貓
9753770
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Category:帶「𧦱」的漢語詞
14
3434186
9753771
2026-05-06T08:32:25Z
TongcyBot
83009
養貓
9753771
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Category:帶「𧦱」的詞
14
3434187
9753772
2026-05-06T08:32:31Z
TongcyBot
83009
養貓
9753772
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Category:帶「𧦲」的漢語詞
14
3434188
9753773
2026-05-06T08:32:38Z
TongcyBot
83009
養貓
9753773
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Category:帶「𧦲」的詞
14
3434189
9753774
2026-05-06T08:32:44Z
TongcyBot
83009
養貓
9753774
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Module:Lt-pron
828
3434190
9753777
2026-05-06T08:51:32Z
TongcyDai
53191
[[w:WP:AES|←]]建立內容為「--[==[ Backend for {{lt-pr}}: IPA, hyphenation, and rhyme generation. Author: TongcyDai ]==] local export = {} local m_debug = require("Module:debug") local m_str = require("Module:string utilities") local m_langdata = require("Module:languages/data") local u = m_str.char local ulower = m_str.lower local usub = m_str.sub local ulen = m_str.len -- Accent mark constants local c = m_langdata.chars local GRAVE = c.grave -- U+03…」的新頁面
9753777
Scribunto
text/plain
--[==[
Backend for {{lt-pr}}: IPA, hyphenation, and rhyme generation.
Author: TongcyDai
]==]
local export = {}
local m_debug = require("Module:debug")
local m_str = require("Module:string utilities")
local m_langdata = require("Module:languages/data")
local u = m_str.char
local ulower = m_str.lower
local usub = m_str.sub
local ulen = m_str.len
-- Accent mark constants
local c = m_langdata.chars
local GRAVE = c.grave -- U+0300
local ACUTE = c.acute -- U+0301
local TILDE = c.tilde -- U+0303
-- Lazy-loaded external modules
local m_IPA
local audio_module = "Module:audio"
local homophones_module = "Module:homophones"
local hyphenation_module = "Module:hyphenation"
local rhymes_module = "Module:rhymes"
local parameters_module = "Module:parameters"
local parse_util_module = "Module:parse utilities"
local concat = table.concat
local insert = table.insert
local lang_obj
local function get_lang()
if not lang_obj then
lang_obj = require("Module:languages").getByCode("lt")
end
return lang_obj
end
local function track(reason)
m_debug.track("lt-pron/" .. reason)
end
-- ============================================================================
-- SECTION 1: Orthography & Phonology Definitions
-- ============================================================================
-- Suffix table for automatic phonetic adjustments (currently disabled)
-- Exact matching lists (must include precomposed normalized tone markers)
--[[
local SUFFIX_LOAN = {
["fòbas"]=true, ["fòbė"]=true, ["fòbija"]=true, ["fònas"]=true, ["fònė"]=true,
["lògas"]=true, ["lògija"]=true, ["skòpas"]=true
}
--]]
-- Consonant classes for syllabification (Sonority Hierarchy)
local CLASS = {
R = {["l"]=true, ["m"]=true, ["n"]=true, ["r"]=true, ["v"]=true, ["j"]=true},
S = {["s"]=true, ["z"]=true, ["š"]=true, ["ž"]=true, ["f"]=true, ["x"]=true, ["h"]=true, ["ch"]=true},
T = {["p"]=true, ["b"]=true, ["t"]=true, ["d"]=true, ["k"]=true, ["g"]=true, ["c"]=true, ["dz"]=true, ["č"]=true, ["dž"]=true}
}
-- Front vowels trigger palatalization
local FRONT_V = {
["e"]=true, ["ę"]=true, ["ė"]=true, ["i"]=true, ["į"]=true, ["y"]=true, ["ie"]=true, ["ei"]=true, ["eu"]=true
}
-- Vowel -> Base IPA mapping (Unstressed short/inherent)
local V_IPA = {
["a"] = "ɐ", ["ą"] = "ɑː", ["e"] = "ɛ", ["ę"] = "æː", ["ė"] = "eː",
["i"] = "ɪ", ["į"] = "iː", ["y"] = "iː",
["u"] = "ʊ", ["ų"] = "uː", ["ū"] = "uː", ["o"] = "oː",
["ie"] = "iɛ", ["uo"] = "uɔ",
-- Unstressed simple diphthongs
["ai"] = "ɐɪ", ["au"] = "ɒʊ", ["ei"] = "ɛɪ", ["eu"] = "ɛʊ",
["ui"] = "ʊɪ", ["oi"] = "ɔɪ", ["ou"] = "ɔʊ"
}
-- Consonant -> Base IPA mapping (Unpalatalized)
local CONS_IPA = {
["b"] = "b", ["c"] = "t͡s", ["č"] = "t͡ʃ", ["d"] = "d",
["dz"] = "d͡z", ["dž"] = "d͡ʒ", ["ch"] = "x",
["f"] = "f", ["g"] = "ɡ", ["h"] = "ɣ", ["j"] = "j",
["k"] = "k", ["l"] = "l", ["m"] = "m", ["n"] = "n",
["p"] = "p", ["r"] = "r", ["s"] = "s", ["š"] = "ʃ",
["t"] = "t", ["v"] = "ʋ", ["z"] = "z", ["ž"] = "ʒ",
}
-- Voicing pairs for Voicing Assimilation
local VOICING_PAIRS = {
["p"]="b", ["b"]="p", ["t"]="d", ["d"]="t", ["k"]="g", ["g"]="k",
["c"]="dz", ["dz"]="c", ["č"]="dž", ["dž"]="č",
["s"]="z", ["z"]="s", ["š"]="ž", ["ž"]="š", ["x"]="ɣ", ["ɣ"]="x"
}
local function is_voiced(c)
local voiced_set = {["b"]=true, ["d"]=true, ["g"]=true, ["dz"]=true, ["dž"]=true, ["z"]=true, ["ž"]=true, ["ɣ"]=true}
return voiced_set[c] == true
end
-- Accent pairs for conjugation module support
-- Maps base vowel/diphthong to accented forms (falling/rising)
local ACCENT_PAIRS = {
-- Long vowels (acute or tilde)
["ą"] = {acute="ą"..ACUTE, tilde="ą"..TILDE},
["ę"] = {acute="ę"..ACUTE, tilde="ę"..TILDE},
["ė"] = {acute="ė"..ACUTE, tilde="ė"..TILDE},
["y"] = {acute="y"..ACUTE, tilde="y"..TILDE},
["į"] = {acute="į"..ACUTE, tilde="į"..TILDE},
["ū"] = {acute="ū"..ACUTE, tilde="ū"..TILDE},
["ų"] = {acute="ų"..ACUTE, tilde="ų"..TILDE},
-- a/e can be short (grave) or long (tilde)
["a"] = {grave="a"..GRAVE, tilde="a"..TILDE},
["e"] = {grave="e"..GRAVE, tilde="e"..TILDE},
-- o: ó/õ/o are long, ò is short
["o"] = {acute="o"..ACUTE, grave="o"..GRAVE, tilde="o"..TILDE},
-- Short vowels i/u (only grave)
["i"] = {grave="i"..GRAVE},
["u"] = {grave="u"..GRAVE},
-- Simple diphthongs
["ai"] = {acute="a"..ACUTE.."i", tilde="a".."i"..TILDE},
["au"] = {acute="a"..ACUTE.."u", tilde="a".."u"..TILDE},
["ei"] = {acute="e"..ACUTE.."i", tilde="e".."i"..TILDE},
["ui"] = {grave="u"..GRAVE.."i", tilde="u".."i"..TILDE},
-- Complex diphthongs
["ie"] = {acute="i"..ACUTE.."e", tilde="i".."e"..TILDE},
["uo"] = {acute="u"..ACUTE.."o", tilde="u".."o"..TILDE},
-- Mixed diphthongs (a series - acute/tilde)
["al"] = {acute="a"..ACUTE.."l", tilde="a".."l"..TILDE},
["am"] = {acute="a"..ACUTE.."m", tilde="a".."m"..TILDE},
["an"] = {acute="a"..ACUTE.."n", tilde="a".."n"..TILDE},
["ar"] = {acute="a"..ACUTE.."r", tilde="a".."r"..TILDE},
-- Mixed diphthongs (e series - acute/grave/tilde, grave for foreign)
["el"] = {acute="e"..ACUTE.."l", grave="e"..GRAVE.."l", tilde="e".."l"..TILDE},
["em"] = {acute="e"..ACUTE.."m", grave="e"..GRAVE.."m", tilde="e".."m"..TILDE},
["en"] = {acute="e"..ACUTE.."n", grave="e"..GRAVE.."n", tilde="e".."n"..TILDE},
["er"] = {acute="e"..ACUTE.."r", grave="e"..GRAVE.."r", tilde="e".."r"..TILDE},
-- Mixed diphthongs (i series - grave/tilde)
["il"] = {grave="i"..GRAVE.."l", tilde="i".."l"..TILDE},
["im"] = {grave="i"..GRAVE.."m", tilde="i".."m"..TILDE},
["in"] = {grave="i"..GRAVE.."n", tilde="i".."n"..TILDE},
["ir"] = {grave="i"..GRAVE.."r", tilde="i".."r"..TILDE},
-- Mixed diphthongs (u series - grave/tilde)
["ul"] = {grave="u"..GRAVE.."l", tilde="u".."l"..TILDE},
["um"] = {grave="u"..GRAVE.."m", tilde="u".."m"..TILDE},
["un"] = {grave="u"..GRAVE.."n", tilde="u".."n"..TILDE},
["ur"] = {grave="u"..GRAVE.."r", tilde="u".."r"..TILDE},
-- Foreign diphthongs (grave only)
["eu"] = {grave="e"..GRAVE.."u"},
["oi"] = {grave="o"..GRAVE.."i"},
["ou"] = {grave="o"..GRAVE.."u"},
["ol"] = {grave="o"..GRAVE.."l"},
["om"] = {grave="o"..GRAVE.."m"},
["on"] = {grave="o"..GRAVE.."n"},
["or"] = {grave="o"..GRAVE.."r"},
}
-- ============================================================================
-- SECTION 2: Lexical Normalization (Avoid NFD destruction)
-- ============================================================================
-- Helper: Remove all accent marks from text (moved here for early use)
local function remove_all_accents(text)
-- Convert to NFD to separate base characters from combining marks
local nfd = mw.ustring.toNFD(text)
-- Remove combining accent marks (grave, acute, tilde)
local clean = mw.ustring.gsub(nfd, "["..GRAVE..ACUTE..TILDE.."]", "")
-- Return as NFD (don't convert back to NFC)
return clean
end
-- Extract pagename from input or load from headword data
local function get_pagename(input)
-- Check for manual override: <base:xxx>
local manual = input:match("<base:([^>]+)>")
if manual then
return manual, input:gsub("<base:[^>]+>", "")
end
-- Load from headword data
local success, data = pcall(function()
return mw.loadData("Module:headword/data").pagename
end)
if success and data then
return data, input
end
return nil, input
end
-- Identify respelling j and (j) positions
local function identify_respelling_glides(input_with_accents, pagename)
if not pagename then
return {} -- No pagename, no respelling detection
end
-- Remove all accents from input
local input_clean = remove_all_accents(input_with_accents)
-- Remove special markers (^, .)
input_clean = mw.ustring.gsub(input_clean, "[%^%.]", "")
-- Remove <base:...> if present
input_clean = mw.ustring.gsub(input_clean, "<base:[^>]+>", "")
-- Remove literal ˌ
input_clean = mw.ustring.gsub(input_clean, "ˌ", "")
-- Remove softening mark ʼ
input_clean = mw.ustring.gsub(input_clean, "ʼ", "")
-- Remove (j) markers - replace with j for comparison
input_clean = mw.ustring.gsub(input_clean, "%(j%)", "j")
-- Remove spaces for comparison
input_clean = mw.ustring.gsub(input_clean, " ", "")
-- Convert to NFC for comparison
input_clean = mw.ustring.toNFC(input_clean)
-- Normalize pagename (lowercase, remove spaces)
local pagename_clean = ulower(pagename)
pagename_clean = mw.ustring.gsub(pagename_clean, " ", "")
-- Find respelling j positions (j in input but not in pagename)
local respelling_positions = {}
local input_idx = 1
local page_idx = 1
while input_idx <= mw.ustring.len(input_clean) do
local input_char = mw.ustring.sub(input_clean, input_idx, input_idx)
if input_char == "j" then
-- Check if this j exists in pagename at corresponding position
local page_char = page_idx <= mw.ustring.len(pagename_clean)
and mw.ustring.sub(pagename_clean, page_idx, page_idx)
if page_char ~= "j" then
-- This is a respelling j
insert(respelling_positions, input_idx)
input_idx = input_idx + 1
-- Don't advance page_idx
else
-- This is an original j
input_idx = input_idx + 1
page_idx = page_idx + 1
end
else
input_idx = input_idx + 1
page_idx = page_idx + 1
end
end
return respelling_positions
end
-- Safe mapping to extract tones without destroying precomposed characters
local TONE_MAP = {
["á"]="a,acute", ["à"]="a,grave", ["ã"]="a,tilde",
["é"]="e,acute", ["è"]="e,grave", ["ẽ"]="e,tilde",
["í"]="i,acute", ["ì"]="i,grave", ["ĩ"]="i,tilde",
["ý"]="y,acute", ["ỳ"]="y,grave", ["ỹ"]="y,tilde",
["ú"]="u,acute", ["ù"]="u,grave", ["ũ"]="u,tilde",
["ó"]="o,acute", ["ò"]="o,grave", ["õ"]="o,tilde",
-- Precomposed vowels with macrons/ogoneks + tones (represented here via standard combinations)
["ą́"]="ą,acute", ["ą̃"]="ą,tilde",
["ę́"]="ę,acute", ["ę̃"]="ę,tilde",
["ė́"]="ė,acute", ["ė̃"]="ė,tilde",
["į́"]="į,acute", ["į̃"]="į,tilde",
["ų́"]="ų,acute", ["ų̃"]="ų,tilde",
["ū́"]="ū,acute", ["ū̃"]="ū,tilde",
-- Tilde on liquids (for semi-diphthongs)
["l̃"]="l,tilde", ["m̃"]="m,tilde", ["ñ"]="n,tilde", ["r̃"]="r,tilde",
["j̃"]="j,tilde"
}
-- Resolves NFD back to safe representation if input was somehow NFD
local function safe_normalize(text)
local INVALID_CHARS = {
[0xE001] = { replace = "ą́" },
[0xE003] = { replace = "ą̃" },
[0xE005] = { replace = "ę́" },
[0xE007] = { replace = "ę̃" },
[0xE009] = { replace = "ė́" },
[0xE00B] = { replace = "ė̃" },
[0xE00C] = { replace = "i̇̀" },
[0xE00D] = { replace = "i̇́" },
[0xE00E] = { replace = "i̇̃" },
[0xE010] = { replace = "į̇́" },
[0xE012] = { replace = "į̇̃" },
[0xE014] = { replace = "j̇̃" },
[0xE016] = { replace = "l̃" },
[0xE018] = { replace = "m̃" },
[0xE01A] = { replace = "r̃" },
[0xE01C] = { replace = "ų́" },
[0xE01E] = { replace = "ų̃" },
[0xE020] = { replace = "ū́" },
[0xE022] = { replace = "ū̃" },
-- Note: U+0307 (dotabove) is no longer rejected, but normalized below
}
-- Reject non-standard/PUA characters to enforce clean Wiktionary source
for codepoint, data in pairs(INVALID_CHARS) do
local char = mw.ustring.char(codepoint)
if mw.ustring.find(text, char) then
if data.custom_msg then
error(data.custom_msg)
else
local hex_str = string.format("%04X", codepoint)
error(string.format(
'lt-pron: Private use area character U+%s "%s" detected. Please use "%s" instead.',
hex_str, char, data.replace
))
end
end
end
-- Convert to NFD for normalization
text = mw.ustring.toNFD(text)
-- Track non-standard input formats (before normalization)
local DOT_AB = u(0x0307)
local OGONEK = u(0x0328)
-- Detect dotless i/j
if mw.ustring.find(text, "[ıȷ]") then
track('dotless-ij')
end
-- Detect precomposed i/j with accents (should be i + dotabove + accent)
if mw.ustring.find(text, "[íìĩ]") then
track('precomposed-i-accent')
end
-- Detect explicit dotabove usage (which is actually correct for accented i/j)
if mw.ustring.find(text, "[ij]" .. DOT_AB) then
track('explicit-dotabove')
end
-- Normalize i/j with dotabove (remove dotabove, convert dotless to standard)
-- This handles: i̇, j̇, ı, ȷ, į̇ -> i, j, i, j, į
text = mw.ustring.gsub(text, "([iıjȷ])(" .. OGONEK .. "?)" .. DOT_AB, function(base, below)
base = (base == "ı") and "i" or (base == "ȷ") and "j" or base
return base .. below
end)
-- Convert any remaining dotless forms to standard dotted forms
text = mw.ustring.gsub(text, "ı", "i")
text = mw.ustring.gsub(text, "ȷ", "j")
-- Convert back to NFC and parse tones
text = mw.ustring.toNFC(text)
local result = {}
local i = 1
while i <= mw.ustring.len(text) do
local c = mw.ustring.sub(text, i, i)
local c_lower = ulower(c) -- Convert to lowercase for TONE_MAP lookup
-- Look ahead for combining marks if any slipped through
local next_c = mw.ustring.sub(text, i+1, i+1)
local next_c_lower = ulower(next_c)
local combined = c_lower .. next_c_lower
if TONE_MAP[combined] then
local parts = mw.text.split(TONE_MAP[combined], ",")
-- Preserve original case of base character
local base_char = parts[1]
if c ~= c_lower then
base_char = mw.ustring.upper(base_char)
end
insert(result, {char = base_char, tone = parts[2]})
i = i + 2
elseif TONE_MAP[c_lower] then
local parts = mw.text.split(TONE_MAP[c_lower], ",")
-- Preserve original case of base character
local base_char = parts[1]
if c ~= c_lower then
base_char = mw.ustring.upper(base_char)
end
insert(result, {char = base_char, tone = parts[2]})
i = i + 1
else
insert(result, {char = c, tone = nil})
i = i + 1
end
end
return result
end
-- Display text helper: Insert dotabove between i/j and accent marks
-- (Based on Module:lt-common.makeDisplayText)
local function makeDisplayText(text)
local DOT_AB = u(0x0307)
local OGONEK = u(0x0328)
-- Convert to NFD for processing
text = mw.ustring.toNFD(text)
-- Insert dotabove between i/j and accent marks
text = mw.ustring.gsub(text, "([ij])(" .. OGONEK .. "?)([" .. GRAVE .. ACUTE .. TILDE .. "])",
function(base, below, accent)
return base .. below .. DOT_AB .. accent
end)
-- Convert back to NFC
return mw.ustring.toNFC(text)
end
-- ============================================================================
-- SECTION 3: Tokenization & Diphthong/Digraph resolution
-- ============================================================================
local function get_type(c)
local lc = ulower(c)
if V_IPA[lc] then return "V" end
if CLASS.R[lc] then return "R" end
if CLASS.S[lc] then return "S" end
if CLASS.T[lc] then return "T" end
return "UNKNOWN"
end
-- Helper: Convert token array back to NFC string for suffix/prefix matching
local function tokens_to_string(tok_list)
local s = ""
for _, t in ipairs(tok_list) do
local c = t.char
if t.tone == "grave" then c = c .. GRAVE
elseif t.tone == "acute" then c = c .. ACUTE
elseif t.tone == "tilde" then c = c .. TILDE
end
s = s .. c
end
return mw.ustring.toNFC(s)
end
-- Apply automatic properties based on word structure (e.g. loanwords)
local function apply_auto_properties(tokens)
local word_str = ulower(tokens_to_string(tokens))
--[[ Suffix detection for loanword quality (currently disabled)
local matched_loan_suff = nil
for suff, _ in pairs(SUFFIX_LOAN) do
if mw.ustring.sub(word_str, -mw.ustring.len(suff)) == suff then
matched_loan_suff = suff; break
end
end
if matched_loan_suff then
local suff_len = mw.ustring.len(matched_loan_suff)
local acc_len = 0
for i = #tokens, 1, -1 do
local t = tokens[i]
acc_len = acc_len + mw.ustring.len(tokens_to_string({t}))
if t.type == "V" and ulower(t.char) == "o" then
t.auto_targeted = true
if not t.force_default then t.loan_quality = true end
end
if acc_len >= suff_len then break end
end
end
-- Check for redundant asterisks globally
for _, t in ipairs(tokens) do
if t.force_default and not t.auto_targeted then
track('redundant-asterisk')
end
end
--]]
return tokens
end
-- Strict whitelist for valid diphthong and tone combinations
local function is_strict_diphthong(c1, t1, c2, t2)
local combo = c1 .. c2
-- Unstressed: neither element has a tone
if not t1 and not t2 then
return (combo == "ie" or combo == "uo" or combo == "ai" or combo == "au" or combo == "ei" or combo == "ui" or combo == "oi" or combo == "ou" or combo == "eu")
end
-- Tone on the first element (acute or grave)
if t1 and not t2 then
if t1 == "acute" then
return (combo == "ai" or combo == "au" or combo == "ei" or combo == "ie" or combo == "uo" or combo == "oi")
elseif t1 == "grave" then
return (combo == "ui" or combo == "oi" or combo == "ou" or combo == "eu")
end
end
-- Tone on the second element (tilde)
if not t1 and t2 then
if t2 == "tilde" then
return (combo == "ai" or combo == "au" or combo == "ei" or combo == "ui" or combo == "ie" or combo == "uo" or combo == "eu")
end
end
return false
end
local function tokenize(text_str, pagename)
local raw_chars = safe_normalize(text_str)
-- Identify respelling glides
local respelling_j_positions = identify_respelling_glides(text_str, pagename)
local tokens = {}
local i = 1
while i <= #raw_chars do
local curr = raw_chars[i]
local nxt = raw_chars[i+1]
local lc_curr = ulower(curr.char)
local lc_nxt = nxt and ulower(nxt.char)
-- Explicit Modifiers
if curr.char == "^" then
local last_v = nil
for j = #tokens, 1, -1 do
if tokens[j].type == "V" then last_v = tokens[j]; break end
end
if last_v then
local lc_v = ulower(last_v.char)
local base_v = mw.ustring.sub(lc_v, -1) -- Last char for silent i combinations
local is_e_base = (lc_v == "e") or (base_v == "e")
local is_o_base = (lc_v == "o") or (base_v == "o")
-- Check for valid e: no tone or grave only
if is_e_base then
if not last_v.tone or last_v.tone == "grave" then
last_v.loan_quality = true
elseif last_v.tone == "acute" then
error("lt-pron: '^' cannot be used with acute 'é' (use only with plain 'e' or grave 'è')")
elseif last_v.tone == "tilde" then
error("lt-pron: '^' cannot be used with tilde 'ẽ' (use only with plain 'e' or grave 'è')")
end
-- Check for valid o: no tone only
elseif is_o_base then
if not last_v.tone then
last_v.loan_quality = true
elseif last_v.tone == "grave" then
error("lt-pron: '^' is redundant for 'ò' (already pronounced [ɔ])")
elseif last_v.tone == "acute" or last_v.tone == "tilde" then
error("lt-pron: '^' cannot be used with 'ó' or 'õ' (native long vowels)")
end
else
error("lt-pron: '^' can only be used with 'e' (plain/grave) or 'o' (plain). Found: '" .. lc_v .. "'")
end
end
i = i + 1
-- Check for (j) marker
elseif curr.char == "(" and i + 2 <= #raw_chars then
local char2 = raw_chars[i+1]
local char3 = raw_chars[i+2]
if char2.char == "j" and char3.char == ")" then
insert(tokens, {char = "j", type = "R", tone = nil, is_respelling = true, is_optional = true, original_char = "-"})
i = i + 3
else
error("lt-pron: '(' must be followed by 'j)' to form the (j) glide marker")
end
--[[ Asterisk modifier (currently disabled)
elseif curr.char == "*" then
local last_v = nil
for j = #tokens, 1, -1 do
if tokens[j].type == "V" then last_v = tokens[j]; break end
end
if last_v then last_v.force_default = true end
i = i + 1
--]]
elseif curr.char == "." then
insert(tokens, {char = ".", type = "BOUNDARY"})
i = i + 1
elseif curr.char == "ˌ" then
insert(tokens, {char = "ˌ", type = "SECONDARY_STRESS_BOUNDARY"})
i = i + 1
elseif curr.char == "ʼ" then
-- Softening mark: palatalize the preceding consonant
for j = #tokens, 1, -1 do
local tok = tokens[j]
if tok.type == "T" or tok.type == "S" or tok.type == "R" then
tok.softening_mark = true
break
end
end
i = i + 1
elseif lc_curr == "d" and nxt and (lc_nxt == "z" or lc_nxt == "ž") then
insert(tokens, {char = curr.char .. nxt.char, type = "T", tone = nil})
i = i + 2
elseif lc_curr == "c" and nxt and lc_nxt == "h" then
insert(tokens, {char = curr.char .. nxt.char, type = "S", tone = nil})
i = i + 2
-- Special handling for V + j̃ (final j with tilde): treat as V + ĩ diphthong
elseif curr.type ~= "BOUNDARY" and get_type(curr.char) == "V" and nxt and ulower(nxt.char) == "j" and nxt.tone == "tilde" then
-- Check if this is word-final (no more non-boundary tokens after j̃)
local is_final = true
for k = i + 2, #raw_chars do
if raw_chars[k].char ~= " " then
is_final = false
break
end
end
if is_final then
-- Combine V + j̃ as a diphthong V + ĩ (e.g., uj̃ → ui̇̃)
local v_char = ulower(curr.char)
local combined_char = v_char .. "i" -- e.g., "u" + "i" = "ui"
local tone = "tilde" -- j̃'s tilde
local tone_position = 2 -- Tilde is on the second vowel (i)
insert(tokens, {
char = combined_char,
type = "V",
tone = tone,
tone_position = tone_position,
original_char = v_char .. "j" -- For hyphenation: display as "uj̃"
})
i = i + 2
else
-- Not final, treat as regular V + j
insert(tokens, {char = curr.char, type = "V", tone = curr.tone})
i = i + 1
end
elseif curr.type ~= "BOUNDARY" and get_type(curr.char) == "V" and nxt and get_type(nxt.char) == "V" then
local nxt_nxt = raw_chars[i+2]
local lc_nxt_nxt = nxt_nxt and ulower(nxt_nxt.char)
local back_diph = lc_nxt and lc_nxt_nxt and (lc_nxt .. lc_nxt_nxt)
local is_silent_i_diph = (lc_curr == "i" and not curr.tone) and
(back_diph == "au" or back_diph == "ai" or back_diph == "ou" or back_diph == "oi" or back_diph == "uo")
local is_silent_i_mono = (lc_curr == "i" and not curr.tone) and
(lc_nxt == "a" or lc_nxt == "ą" or lc_nxt == "o" or
lc_nxt == "u" or lc_nxt == "ų" or lc_nxt == "ū" or lc_nxt == "ɔ")
local is_valid_diph = is_strict_diphthong(lc_curr, curr.tone, lc_nxt, nxt and nxt.tone)
if is_valid_diph and nxt_nxt and get_type(nxt_nxt.char) == "V" then
local lc_nxt_nxt = ulower(nxt_nxt.char)
local is_next_valid_diph = is_strict_diphthong(lc_nxt, nxt.tone, lc_nxt_nxt, nxt_nxt.tone)
if is_next_valid_diph then
-- Resolve ambiguous triplets (e.g., auo -> a.uo is standard)
-- Break the first valid diphthong unless explicitly stressed
if not curr.tone then
is_valid_diph = false
end
end
end
if is_silent_i_diph then
local tone = nxt.tone or nxt_nxt.tone
local tone_position = nil
if tone then
-- For silent i diphthongs (e.g., iau), position is relative to the full string
-- Position 2 = middle vowel, Position 3 = last vowel
if nxt.tone then
tone_position = 2
elseif nxt_nxt.tone then
tone_position = 3
end
end
insert(tokens, {char = curr.char .. nxt.char .. nxt_nxt.char, type = "V", tone = tone, has_silent_i = true, tone_position = tone_position})
i = i + 3
elseif is_silent_i_mono then
local tone = nxt.tone
local tone_position = nil
if tone then
-- For silent i monosyllables (e.g., ia), position 2 = second character
tone_position = 2
end
insert(tokens, {char = curr.char .. nxt.char, type = "V", tone = tone, has_silent_i = true, tone_position = tone_position})
i = i + 2
elseif is_valid_diph then
local tone = curr.tone or nxt.tone
local tone_position = nil
if tone then
-- Record which vowel carries the tone (1 = first, 2 = second)
if curr.tone then
tone_position = 1
elseif nxt.tone then
tone_position = 2
end
end
insert(tokens, {char = curr.char .. nxt.char, type = "V", tone = tone, tone_position = tone_position})
i = i + 2
else
insert(tokens, {char = curr.char, type = "V", tone = curr.tone})
i = i + 1
end
else
if curr.char ~= " " then
local tok_type = get_type(curr.char)
local is_respelling_j = false
-- Check if this is a respelling j
if ulower(curr.char) == "j" and #respelling_j_positions > 0 then
-- Build cleaned string up to current position to find clean position
local cleaned_so_far = ""
for k = 1, i do
local c = raw_chars[k]
if c.char ~= "^" and c.char ~= "." and c.char ~= " " and c.char ~= "ʼ" and c.char ~= "ˌ" then
local char_clean = c.char
-- Don't add tone marks to cleaned string
if not c.tone then
cleaned_so_far = cleaned_so_far .. char_clean
else
-- Add base character without tone
cleaned_so_far = cleaned_so_far .. char_clean
end
end
end
local clean_pos = mw.ustring.len(cleaned_so_far)
-- Check if this position is in respelling list
for _, pos in ipairs(respelling_j_positions) do
if pos == clean_pos then
is_respelling_j = true
break
end
end
end
if ulower(curr.char) == "j" then
local tok_data = {char = curr.char, type = tok_type, tone = curr.tone, is_respelling = is_respelling_j, is_optional = false}
if is_respelling_j then
tok_data.original_char = "-" -- Respelling: use "-" to indicate not in orthography
end
insert(tokens, tok_data)
else
insert(tokens, {char = curr.char, type = tok_type, tone = curr.tone})
end
end
i = i + 1
end
end
-- Validate respelling glides are between vowels
for i, tok in ipairs(tokens) do
if tok.is_respelling then
local prev_is_vowel = false
local next_is_vowel = false
-- Check previous non-boundary token
for j = i - 1, 1, -1 do
if tokens[j].type ~= "BOUNDARY" and tokens[j].type ~= "SECONDARY_STRESS_BOUNDARY" then
prev_is_vowel = (tokens[j].type == "V")
break
end
end
-- Check next non-boundary token
for j = i + 1, #tokens do
if tokens[j].type ~= "BOUNDARY" and tokens[j].type ~= "SECONDARY_STRESS_BOUNDARY" then
next_is_vowel = (tokens[j].type == "V")
break
end
end
if not (prev_is_vowel and next_is_vowel) then
error("lt-pron: Respelling glide 'j' or '(j)' must be between two vowels")
end
end
end
return apply_auto_properties(tokens)
end
-- ============================================================================
-- SECTION 4: Syllabification
-- ============================================================================
-- Pre-syllabification: Merge geminate (doubled) consonants
-- This must happen BEFORE syllabification to prevent false mixed diphthongs
-- For example: pérrašo → pér-ra-šo would incorrectly treat ér as a mixed diphthong
-- By merging rr→r first, we get pé-ra-šo, correctly keeping é as a pure vowel
local function merge_geminate_consonants(tokens)
local SIBILANTS = {["s"]=true, ["z"]=true, ["š"]=true, ["ž"]=true}
local i = 1
while i < #tokens do
local tok = tokens[i]
local nxt = tokens[i+1]
local tok_is_cons = (tok.type == "T" or tok.type == "S" or tok.type == "R")
local nxt_is_cons = (nxt.type == "T" or nxt.type == "S" or nxt.type == "R")
if tok_is_cons and nxt_is_cons then
local tok_char = ulower(tok.char)
local nxt_char = ulower(nxt.char)
local tok_is_sib = SIBILANTS[tok_char]
local nxt_is_sib = SIBILANTS[nxt_char]
-- Merge if: (1) both are sibilants, or (2) identical consonants
if (tok_is_sib and nxt_is_sib) or (tok_char == nxt_char) then
-- Remove the first token (keep the second)
table.remove(tokens, i)
-- Don't increment i, check the same position again
else
i = i + 1
end
else
i = i + 1
end
end
end
local function syllabify(tokens)
local syllables = {}
local current_syl = {}
-- Check for leading secondary stress marker
local has_initial_secondary_stress = false
if #tokens > 0 and tokens[1].type == "SECONDARY_STRESS_BOUNDARY" then
has_initial_secondary_stress = true
end
local v_indices = {}
for i, tok in ipairs(tokens) do
if tok.type == "V" then insert(v_indices, i) end
end
if #v_indices == 0 then return {tokens} end -- Edge case: no vowels
local boundaries = {}
-- Sonority Sequencing Algorithm combined with Morphophonological Maximum Onset
for idx = 1, #v_indices - 1 do
local v1_idx = v_indices[idx]
local v2_idx = v_indices[idx + 1]
local raw_c_tokens = {}
local forced_boundary_idx = nil
for i = v1_idx + 1, v2_idx - 1 do
if tokens[i].type == "BOUNDARY" or tokens[i].type == "SECONDARY_STRESS_BOUNDARY" then
forced_boundary_idx = i
else
insert(raw_c_tokens, {t=tokens[i], orig_idx=i})
end
end
if forced_boundary_idx then
boundaries[forced_boundary_idx] = true
elseif #raw_c_tokens == 0 then
-- Hiatus
boundaries[v2_idx] = true
else
-- Macro-Token Grouping: Treat consecutive sibilants (S) as a single phonological unit
local macro_c = {}
local i = 1
while i <= #raw_c_tokens do
local current = raw_c_tokens[i]
if current.t.type == "S" then
local absorbed = {current}
local j = i + 1
-- Absorb any subsequent S tokens into this macro unit, keeping track of them
while j <= #raw_c_tokens and raw_c_tokens[j].t.type == "S" do
insert(absorbed, raw_c_tokens[j])
j = j + 1
end
insert(macro_c, {type = "S", orig_idx = current.orig_idx, tokens = absorbed})
i = j
else
insert(macro_c, {type = current.t.type, orig_idx = current.orig_idx, tokens = {current}})
i = i + 1
end
end
local m_count = #macro_c
if m_count == 1 then
-- V.CV (or V.SSV, e.g., sausšala -> sau.sšala)
boundaries[macro_c[1].orig_idx] = true
elseif m_count == 2 then
local t1, t2 = macro_c[1].type, macro_c[2].type
-- ST, SR, TR -> V.CCV
if (t1=="S" and t2=="T") or (t1=="S" and t2=="R") or (t1=="T" and t2=="R") then
boundaries[macro_c[1].orig_idx] = true
else
-- Handle TSS and RSS sequences properly (e.g., Oksfordas, transformavo).
-- If the macro cluster is T+S or R+S, and the S unit absorbed multiple sibilants,
-- split between the first and second sibilant (TS.S, RS.S).
if (t1=="T" or t1=="R") and t2=="S" and #macro_c[2].tokens > 1 then
boundaries[macro_c[2].tokens[2].orig_idx] = true
else
-- Default VC.CV
boundaries[macro_c[2].orig_idx] = true
end
end
elseif m_count == 3 then
local t1, t2, t3 = macro_c[1].type, macro_c[2].type, macro_c[3].type
if t1=="S" and t2=="T" and t3=="R" then
boundaries[macro_c[1].orig_idx] = true -- V.CCCV
elseif (t1=="T" and t2=="S" and t3=="T") or
(t1=="R" and t2=="S" and t3=="T") or
(t1=="T" and t2=="S" and t3=="R") or
(t1=="R" and t2=="T" and t3=="R") or
(t1=="T" and t2=="T" and t3=="R") or
(t1=="R" and t2=="S" and t3=="R") then
boundaries[macro_c[2].orig_idx] = true -- VC.CCV (includes RSR, e.g., konfliktas)
else
boundaries[macro_c[3].orig_idx] = true -- VCC.CV
end
elseif m_count == 4 then
-- Identify the 4-consonant pattern according to the 8 documented combinations
local pattern = macro_c[1].type .. macro_c[2].type .. macro_c[3].type .. macro_c[4].type
if pattern == "RSTR" or pattern == "TSTR" then
-- R.STR, T.STR -> VC.CCCV
boundaries[macro_c[2].orig_idx] = true
elseif pattern == "RTRR" or pattern == "TSTS" then
-- RTR.R, TST.S -> VCCC.CV
boundaries[macro_c[4].orig_idx] = true
else
-- RT.ST, RT.SR, RT.TR, ST.TR -> VCC.CCV
boundaries[macro_c[3].orig_idx] = true
end
elseif m_count >= 5 then
-- Fallback for >=5 logical consonant units
track('complex-consonant-cluster')
boundaries[macro_c[3].orig_idx] = true
end
end
end
-- Construct syllables
local secondary_stress_syllables = {}
for i, tok in ipairs(tokens) do
if boundaries[i] and #current_syl > 0 then
insert(syllables, current_syl)
-- If this is a secondary stress boundary, mark the NEXT syllable
if tok.type == "SECONDARY_STRESS_BOUNDARY" then
secondary_stress_syllables[#syllables + 1] = true
end
current_syl = {}
end
if tok.type ~= "BOUNDARY" and tok.type ~= "SECONDARY_STRESS_BOUNDARY" then
insert(current_syl, tok)
end
end
if #current_syl > 0 then insert(syllables, current_syl) end
-- Apply secondary stress marks
for idx, _ in pairs(secondary_stress_syllables) do
if syllables[idx] then
syllables[idx].secondary_stress = true
end
end
-- Apply initial secondary stress if present
if has_initial_secondary_stress and #syllables > 0 then
syllables[1].secondary_stress = true
end
return syllables
end
-- ============================================================================
-- SECTION 5: Base IPA Mapping & Stress Assignment
-- ============================================================================
local function is_mixed_diphthong(syl, v_idx)
local v_tok = syl[v_idx]
local lc_v = ulower(v_tok.char)
-- Strip silent 'i' for accurate length calculation
if v_tok.has_silent_i then
lc_v = mw.ustring.sub(lc_v, 2)
end
-- Digraphs (ie, uo, ai, au, etc.) or natively long vowels (ą, ę, ė, į, y, ų, ū)
-- do NOT form mixed diphthongs with subsequent resonants.
-- Only short a, e, i, u, o can form true mixed diphthongs.
if mw.ustring.len(lc_v) > 1 then return false end
local LONG_V = {["ą"]=true, ["ę"]=true, ["ė"]=true, ["į"]=true, ["y"]=true, ["ų"]=true, ["ū"]=true}
if LONG_V[lc_v] then return false end
-- V + R in the SAME syllable (coda)
if v_idx < #syl and syl[v_idx+1].type == "R" then
-- j and v are not considered for typical liquid semi-diphthongs length rules
if syl[v_idx+1].char ~= "j" and syl[v_idx+1].char ~= "v" then
return true
end
end
return false
end
local function map_base_phonetics(syllables)
local stress_prefix = nil
for _, syl in ipairs(syllables) do
local v_idx = nil
for i, tok in ipairs(syl) do
if tok.type == "V" then v_idx = i; break end
end
if v_idx then
local v_tok = syl[v_idx]
local v_char = v_tok.char
local lc_v_char = ulower(v_char)
local tone = v_tok.tone
local is_mixed = is_mixed_diphthong(syl, v_idx)
if is_mixed and not tone then
local r_tok = syl[v_idx+1]
if r_tok.tone then tone = r_tok.tone end
end
if v_tok.has_silent_i then
v_tok.silent_i = true
local actual_vowel = mw.ustring.sub(lc_v_char, 2)
v_tok.ipa = V_IPA[actual_vowel] or "ɐ"
lc_v_char = actual_vowel
else
-- Apply loan quality base default for 'o' and 'e'
v_tok.ipa = V_IPA[lc_v_char] or "ɐ"
if lc_v_char == "o" and v_tok.loan_quality then
v_tok.ipa = "ɔ"
end
if lc_v_char == "e" and v_tok.loan_quality then
v_tok.ipa = "e"
end
-- Automatically prepend glide 'j' to syllable-initial 'ie'
if lc_v_char == "ie" and v_idx == 1 then
v_tok.ipa = "jiɛ"
end
end
if tone then
local s_mark = ""
local v_base = mw.ustring.sub(lc_v_char, 1, 1)
if tone == "acute" then
s_mark = "¹ˈ"
if lc_v_char == "a" then
if is_mixed then v_tok.ipa = "ɑˑ" else v_tok.ipa = "ɑː" end
elseif lc_v_char == "e" then
-- Note: '^' modifier not allowed with acute 'é' as of current rules
-- This code path preserved for consistency
if is_mixed and v_tok.loan_quality then
v_tok.ipa = "ɛ" -- Loanword é in mixed diphthongs is short /ɛ/ without length
elseif is_mixed then
v_tok.ipa = "æˑ" -- Mixed diphthong: half-long
else
v_tok.ipa = "æː" -- Pure vowel: full-long
end
elseif lc_v_char == "ai" then v_tok.ipa = "ɑˑɪ"
elseif lc_v_char == "au" then v_tok.ipa = "ɑˑʊ"
elseif lc_v_char == "ei" then v_tok.ipa = "æˑɪ"
elseif lc_v_char == "eu" then v_tok.ipa = "æˑʊ"
elseif lc_v_char == "oi" then v_tok.ipa = "oˑɪ"
end
elseif tone == "grave" then
if is_mixed and (v_base == "i" or v_base == "u" or v_base == "e" or v_base == "o") then
s_mark = "¹ˈ"
elseif lc_v_char == "ui" or lc_v_char == "oi" or lc_v_char == "ou" or lc_v_char == "eu" then
s_mark = "¹ˈ"
else
s_mark = "ˈ"
end
-- Handle loanword variants for grave
if lc_v_char == "e" and v_tok.loan_quality then
v_tok.ipa = "e" -- è^ (loanword) → [e]
end
if lc_v_char == "o" then
v_tok.ipa = "ɔ" -- ò (always loanword) → [ɔ]
end
elseif tone == "tilde" then
s_mark = "²ˈ"
if lc_v_char == "ai" then v_tok.ipa = "ɐɪˑ"
elseif lc_v_char == "au" then v_tok.ipa = "ɒʊˑ"
elseif lc_v_char == "ei" then v_tok.ipa = "ɛɪˑ"
elseif lc_v_char == "eu" then v_tok.ipa = "ɛʊˑ"
elseif lc_v_char == "ui" then v_tok.ipa = "ʊɪˑ"
elseif lc_v_char == "a" then
if is_mixed then v_tok.ipa = "ɐ" else v_tok.ipa = "ɑː" end
elseif lc_v_char == "e" then
if is_mixed then v_tok.ipa = "ɛ" else v_tok.ipa = "æː" end
end
end
syl.stress = s_mark
end
-- Set base IPA for consonants (case-insensitive mapping)
for i, tok in ipairs(syl) do
if tok.type ~= "V" then
local lc_c = ulower(tok.char)
tok.ipa = CONS_IPA[lc_c] or lc_c
end
end
-- Handle tilde half-length on mixed diphthong coda
if tone == "tilde" and is_mixed then
local r_tok = syl[v_idx+1]
r_tok.half_long = true
end
else
-- Syllable with no vowel (e.g. leftover consonant)
for i, tok in ipairs(syl) do
tok.ipa = CONS_IPA[tok.char] or tok.char
end
end
end
end
-- ============================================================================
-- SECTION 6: Phonetic Polish Passes
-- ============================================================================
-- Pass 1: Palatalization Spreading (Right-to-Left)
local function apply_palatalization(syllables)
-- Flatten tokens for cross-syllable spreading
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
-- First pass: Apply softening marks (no spreading)
for i = 1, #flat_tokens do
local tok = flat_tokens[i]
if tok.softening_mark and tok.ipa ~= "" then
tok.ipa = tok.ipa .. "ʲ"
tok.is_palatalized = true
end
end
local spread_active = false
for i = #flat_tokens, 1, -1 do
local tok = flat_tokens[i]
local lc_char = ulower(tok.char)
if tok.type == "V" then
if tok.silent_i or FRONT_V[lc_char] then
spread_active = true
else
spread_active = false
end
elseif lc_char == "j" then
-- Preserve special IPA for final j (ɪ̯), don't override it
if tok.ipa ~= "ɪ̯" and tok.ipa ~= "" then
tok.ipa = "j"
end
tok.is_palatalized = true
spread_active = true
else
if spread_active then
-- Check if the palatalization is DIRECT (immediate contact with front V or j)
local is_direct = false
local nxt = flat_tokens[i+1]
if nxt then
local nxt_lc = ulower(nxt.char)
if (nxt.type == "V" and (nxt.silent_i or FRONT_V[nxt_lc])) or nxt_lc == "j" then
is_direct = true
end
end
tok.is_palatalized = true
if lc_char == "k" or lc_char == "g" then
if is_direct and tok.ipa ~= "" then
tok.ipa = tok.ipa .. "ʲ"
end
-- DO NOT set spread_active to false! k/g are transparent to spreading.
else
if tok.ipa ~= "" then
tok.ipa = tok.ipa .. "ʲ"
end
end
end
end
end
end
-- Pass 2: Voicing Assimilation (Right-to-Left)
local function apply_voicing_assimilation(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
local target_voice = nil
for i = #flat_tokens, 1, -1 do
local tok = flat_tokens[i]
if tok.type == "V" or tok.type == "R" then
target_voice = nil -- Blocked by vowels and resonants
elseif tok.type == "S" or tok.type == "T" then
if target_voice == nil then
-- Establish new assimilation target
target_voice = is_voiced(tok.char) and "voiced" or "voiceless"
else
-- Assimilate
local current_is_voiced = is_voiced(tok.char)
if target_voice == "voiced" and not current_is_voiced then
tok.char = VOICING_PAIRS[tok.char] or tok.char
elseif target_voice == "voiceless" and current_is_voiced then
tok.char = VOICING_PAIRS[tok.char] or tok.char
end
-- Update IPA based on new character, preserving palatalization
local new_ipa = CONS_IPA[tok.char] or tok.char
if tok.is_palatalized and tok.char ~= "k" and tok.char ~= "g" then
new_ipa = new_ipa .. "ʲ"
end
tok.ipa = new_ipa
end
end
end
end
-- Pass 3: Nasal Assimilation (n -> ŋ before k/g)
local function apply_nasal_assimilation(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
for i = 1, #flat_tokens - 1 do
local tok = flat_tokens[i]
-- Ignore vowels for lookahead
local lookahead = i + 1
while lookahead <= #flat_tokens and flat_tokens[lookahead].type == "V" do
if flat_tokens[lookahead].silent_i then
lookahead = lookahead + 1
else
break
end
end
local nxt = flat_tokens[lookahead]
if nxt and ulower(tok.char) == "n" then
local lc_nxt = ulower(nxt.char)
if lc_nxt == "k" or lc_nxt == "g" then
-- Check actual IPA string for direct palatalization
if mw.ustring.find(nxt.ipa, "ʲ") then
tok.ipa = "ŋʲ"
else
tok.ipa = "ŋ"
end
end
end
end
end
-- Pass 4: Vowel Quality Adjustments after Palatalization
local function adjust_vowel_quality(syllables)
for _, syl in ipairs(syllables) do
local has_palatal_onset = false
for i, tok in ipairs(syl) do
if tok.type ~= "V" and (tok.is_palatalized or ulower(tok.char) == "j") then
has_palatal_onset = true
elseif tok.type == "V" and has_palatal_onset then
local ipa = tok.ipa
-- Shift a/e quality
if ipa == "ɐ" then ipa = "ɛ"
elseif ipa == "ɑː" then ipa = "æː"
-- Diphthong shifts for iau / iai
elseif ipa == "ɒʊ" then ipa = "ɛʊ"
elseif ipa == "ɑˑʊ" then ipa = "æˑʊ"
elseif ipa == "ɒʊˑ" then ipa = "ɛʊˑ"
elseif ipa == "ɐɪ" then ipa = "ɛɪ"
elseif ipa == "ɑˑɪ" then ipa = "æˑɪ"
elseif ipa == "ɐɪˑ" then ipa = "ɛɪˑ"
end
-- Dynamic fronting for u/o/ɔ (adds U+031F)
-- Matches ONLY the first character (^) to avoid double fronting in uɔ
ipa = mw.ustring.gsub(ipa, "^([uʊoɔ])", "%1̟")
tok.ipa = ipa
has_palatal_onset = false
end
end
end
end
-- Pass 5: Terminal Devoicing (Word-final obstruent devoicing)
local function apply_terminal_devoicing(syllables)
if #syllables == 0 then return end
local last_syl = syllables[#syllables]
local last_tok = last_syl[#last_syl]
if last_tok and (last_tok.type == "S" or last_tok.type == "T") then
local lc_char = ulower(last_tok.char)
if is_voiced(lc_char) then
local devoiced = VOICING_PAIRS[lc_char]
if devoiced then
last_tok.char = devoiced
local new_ipa = CONS_IPA[devoiced] or devoiced
if last_tok.is_palatalized then new_ipa = new_ipa .. "ʲ" end
last_tok.ipa = new_ipa
end
end
end
end
-- Pass 6: Place Assimilation (Sibilant + Affricate)
-- When a sibilant meets an affricate, the sibilant adjusts its place of articulation:
-- s+č→š, z+dž→ž, š+c→s, ž+dz→z
local function apply_place_assimilation(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
local PLACE_ASSIM = {
["s"] = {["t͡ʃ"] = "ʃ"},
["z"] = {["d͡ʒ"] = "ʒ"},
["ʃ"] = {["t͡s"] = "s"},
["ʒ"] = {["d͡z"] = "z"},
}
for i = 1, #flat_tokens - 1 do
local tok = flat_tokens[i]
local nxt = flat_tokens[i+1]
if tok.type == "S" and nxt.type == "T" then
local rule = PLACE_ASSIM[tok.ipa]
if rule and rule[nxt.ipa] then
tok.ipa = rule[nxt.ipa]
end
end
end
end
-- Pass 7: Geminate Simplification (Double consonant reduction)
-- NOTE: Original geminates (rr, ll, etc.) are already merged in merge_geminate_consonants.
-- This pass handles geminates created by phonetic rules (e.g., voicing assimilation: td→dd).
-- Sibilants: any two sibilants merge into one (keeping the second)
-- Other consonants: only identical pairs merge
local function apply_geminate_simplification(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
local SIBILANTS = {["s"]=true, ["z"]=true, ["ʃ"]=true, ["ʒ"]=true}
for i = 1, #flat_tokens - 1 do
local tok = flat_tokens[i]
local nxt = flat_tokens[i+1]
local tok_is_cons = (tok.type == "T" or tok.type == "S" or tok.type == "R")
local nxt_is_cons = (nxt.type == "T" or nxt.type == "S" or nxt.type == "R")
if tok_is_cons and nxt_is_cons then
local tok_is_sib = SIBILANTS[tok.ipa]
local nxt_is_sib = SIBILANTS[nxt.ipa]
if tok_is_sib and nxt_is_sib then
tok.ipa = ""
elseif tok.ipa == nxt.ipa and tok.ipa ~= "" then
tok.ipa = ""
end
end
end
end
-- Pass 8: Final Consonant Vocalization (v → ʊ̯, j → ɪ̯)
-- Word-final v and j (without tilde) become non-syllabic vowels
-- Note: j with tilde is already converted to i with tilde in tokenization
local function apply_final_consonant_vocalization(syllables)
if #syllables == 0 then return end
local last_syl = syllables[#syllables]
local last_tok = last_syl[#last_syl]
if last_tok then
local lc_char = ulower(last_tok.char)
-- Final v → ʊ̯
if lc_char == "v" then
last_tok.ipa = "ʊ̯"
-- Keep type as "R" (resonant) for now - it's treated as non-syllabic
end
-- Final j (without tilde) → ɪ̯
-- Note: j with tilde is already converted to i in tokenization, so won't reach here
if lc_char == "j" and last_tok.tone ~= "tilde" then
last_tok.ipa = "ɪ̯"
-- Keep type as "R" (resonant) for now - it's treated as non-syllabic
end
end
end
-- ============================================================================
-- SECTION 7: Output Assembly
-- ============================================================================
-- Core IPA processor for a single word
local function process_single_word_ipa(word, pagename)
local tokens = tokenize(word, pagename)
merge_geminate_consonants(tokens)
local syllables = syllabify(tokens)
map_base_phonetics(syllables)
-- Phonetic Polish Pipeline
apply_terminal_devoicing(syllables)
apply_voicing_assimilation(syllables)
apply_place_assimilation(syllables)
apply_geminate_simplification(syllables)
apply_final_consonant_vocalization(syllables)
apply_palatalization(syllables)
apply_nasal_assimilation(syllables)
adjust_vowel_quality(syllables)
local parts = {}
for s_idx, syl in ipairs(syllables) do
local syl_str = ""
local hiatus_sep = ""
if s_idx > 1 then
local prev_syl = syllables[s_idx - 1]
local prev_last_tok = prev_syl[#prev_syl]
local curr_first_tok = syl[1]
local prev_ends_with_v = (prev_last_tok and prev_last_tok.type == "V" and not prev_last_tok.silent_i)
local curr_starts_with_v = (curr_first_tok and curr_first_tok.type == "V" and not curr_first_tok.silent_i)
if prev_ends_with_v and curr_starts_with_v then
local prev_v_char = ulower(prev_last_tok.char)
local curr_v_char = ulower(curr_first_tok.char)
-- Only handle ie special case
if curr_v_char == "ie" then
-- 'ie' has implicit 'j' from map_base_phonetics.
syl_str = ""
hiatus_sep = ""
else
-- Standard hiatus without glide insertion
syl_str = "."
hiatus_sep = ""
end
end
end
-- Check for conflict between primary and secondary stress
if syl.secondary_stress and syl.stress then
error("lt-pron: A syllable cannot have both primary stress (tone mark) and secondary stress (ˌ)")
end
-- Add stress markers (primary or secondary, mutually exclusive)
if syl.secondary_stress then
syl_str = syl_str .. "ˌ"
elseif syl.stress then
syl_str = syl_str .. syl.stress
end
syl_str = syl_str .. hiatus_sep
for _, tok in ipairs(syl) do
if tok.is_respelling then
if tok.is_optional then
syl_str = syl_str .. "(j)"
else
syl_str = syl_str .. tok.ipa
end
else
syl_str = syl_str .. tok.ipa
end
if tok.half_long then syl_str = syl_str .. "ˑ" end
end
insert(parts, syl_str)
end
return concat(parts, "")
end
-- Multi-word IPA assembler with liaison `‿`
local function to_ipa(term, provided_pagename)
-- Use provided pagename if available, otherwise try to extract from term
local pagename, clean_term
if provided_pagename then
pagename = provided_pagename
clean_term = term
else
pagename, clean_term = get_pagename(term)
end
term = clean_term
local words = mw.text.split(term, " ")
local processed_words = {}
for i, word in ipairs(words) do
if word ~= "" then
local w_ipa = process_single_word_ipa(word, pagename)
insert(processed_words, w_ipa)
end
end
local result = ""
for i, w_ipa in ipairs(processed_words) do
if i == 1 then
result = w_ipa
else
-- If the PREVIOUS word has NO stress mark, use liaison `‿`
if not mw.ustring.find(processed_words[i-1], "ˈ") then
result = result .. "‿" .. w_ipa
else
result = result .. " " .. w_ipa
end
end
end
return result
end
-- Rhyme Extractor
local IPA_VOWELS = "aɐɑæɛeəɪiɔoʊuɒɜ"
local function get_rhyme(ipa)
-- Remove liaison and spaces before rhyme calculation
local clean_ipa = mw.ustring.gsub(ipa, "[‿ ]", "")
-- Search for the last stress mark from right to left
local last_stress_pos = nil
for i = mw.ustring.len(clean_ipa), 1, -1 do
local char = mw.ustring.sub(clean_ipa, i, i)
if char == "ˈ" then
-- Skip superscript if present
if i > 1 then
local prev = mw.ustring.sub(clean_ipa, i - 1, i - 1)
if prev == "¹" or prev == "²" then
last_stress_pos = i -- Point to ˈ, skip superscript
else
last_stress_pos = i
end
else
last_stress_pos = i
end
break
end
end
if not last_stress_pos then return nil end
-- Extract content after the stress mark
local after = mw.ustring.sub(clean_ipa, last_stress_pos + 1)
-- Remove hiatus dots for rhyme grouping
after = mw.ustring.gsub(after, "%.", "")
-- Find first vowel position (skip onset consonants)
local vstart = mw.ustring.match(after, "()[" .. IPA_VOWELS .. "]")
if vstart then
return mw.ustring.sub(after, vstart)
end
return after
end
-- Hyphenation generator (supports multi-word phrases)
local function get_hyphenation(term, provided_pagename)
-- Use provided pagename if available, otherwise try to extract from term
local pagename, clean_term
if provided_pagename then
pagename = provided_pagename
clean_term = term
else
pagename, clean_term = get_pagename(term)
end
term = clean_term
local words = mw.text.split(term, " ")
local all_word_parts = {}
for _, word in ipairs(words) do
if word ~= "" then
local tokens = tokenize(word, pagename)
local syllables = syllabify(tokens)
local parts = {}
for _, syl in ipairs(syllables) do
local text = ""
for _, tok in ipairs(syl) do
-- Skip respelling characters (original_char == "-" means not in orthography)
if tok.original_char ~= "-" then
-- Re-attach original tone visually for display
local t_mark = ""
if tok.tone == "acute" then t_mark = ACUTE
elseif tok.tone == "grave" then t_mark = GRAVE
elseif tok.tone == "tilde" then t_mark = TILDE
end
-- Use original_char if set (e.g., j̃ → i internally but j in display)
-- Otherwise use tok.char
local disp_char = tok.original_char or tok.char
-- Restore original orthography for ɔ
if disp_char == "ɔ" then disp_char = "o" end
if disp_char == "Ɔ" then disp_char = "O" end
-- Handle tone placement for diphthongs
if tok.tone_position then
-- Diphthong: place tone on the specified vowel
local char_len = mw.ustring.len(disp_char)
if char_len == 2 then
-- Two-character diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2
else
text = text .. v1 .. v2 .. t_mark
end
elseif char_len == 3 then
-- Three-character (silent i) diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
local v3 = mw.ustring.sub(disp_char, 3, 3)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2 .. v3
elseif tok.tone_position == 2 then
text = text .. v1 .. v2 .. t_mark .. v3
else
text = text .. v1 .. v2 .. v3 .. t_mark
end
end
else
-- Single vowel or consonant: tone goes after the character
text = text .. disp_char .. t_mark
end
end
end
parts[#parts + 1] = makeDisplayText(text)
end
insert(all_word_parts, concat(parts, "‧")) -- Use ‧ instead of standard - internally to preserve word boundaries
end
end
-- Build combined string for display (preserves correct formatting)
local combined_string = concat(all_word_parts, " ")
local final_parts = {}
for _, piece in ipairs(mw.text.split(combined_string, "‧")) do
insert(final_parts, piece)
end
-- Calculate actual syllable count (for correct num_syl)
local syllable_count = 0
for _, word_part in ipairs(all_word_parts) do
local word_syls = mw.text.split(word_part, "‧")
syllable_count = syllable_count + #word_syls
end
-- Store actual syllable count as a field (since __len doesn't work on tables in Lua 5.1)
final_parts.syllable_count = syllable_count
return final_parts
end
-- ============================================================================
-- SECTION 7.5: Conjugation Module Support Functions
-- ============================================================================
-- Export: Get syllables as string array with accents
function export.get_syllables(term)
local pagename, clean_term = get_pagename(term)
term = clean_term
local tokens = tokenize(term, pagename)
local syllables = syllabify(tokens)
local result = {}
for _, syl in ipairs(syllables) do
local text = ""
for _, tok in ipairs(syl) do
-- Skip respelling glides in syllable output
if not tok.is_respelling then
-- Re-attach original tone
local t_mark = ""
if tok.tone == "acute" then t_mark = ACUTE
elseif tok.tone == "grave" then t_mark = GRAVE
elseif tok.tone == "tilde" then t_mark = TILDE
end
-- Restore original orthography for ɔ
local disp_char = tok.char
if disp_char == "ɔ" then disp_char = "o" end
if disp_char == "Ɔ" then disp_char = "O" end
-- Handle tone placement for diphthongs
if tok.tone_position then
-- Diphthong: place tone on the specified vowel
local char_len = mw.ustring.len(disp_char)
if char_len == 2 then
-- Two-character diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2
else
text = text .. v1 .. v2 .. t_mark
end
elseif char_len == 3 then
-- Three-character (silent i) diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
local v3 = mw.ustring.sub(disp_char, 3, 3)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2 .. v3
elseif tok.tone_position == 2 then
text = text .. v1 .. v2 .. t_mark .. v3
else
text = text .. v1 .. v2 .. v3 .. t_mark
end
end
else
-- Single vowel or consonant: tone goes after the character
text = text .. disp_char .. t_mark
end
end
end
-- Return NFC format with proper dotabove insertion
insert(result, makeDisplayText(text))
end
return result
end
-- Export: Check if a syllable is heavy or light
function export.is_heavy_syllable(syllable)
local pagename, clean_syllable = get_pagename(syllable)
syllable = clean_syllable
-- Validate single syllable
local tokens = tokenize(syllable, pagename)
local syllables = syllabify(tokens)
if #syllables ~= 1 then
error("is_heavy_syllable: input must be a single syllable, got " .. #syllables .. " syllables")
end
local syl = syllables[1]
-- Find the vowel token
local v_idx = nil
for i, tok in ipairs(syl) do
if tok.type == "V" then
v_idx = i
break
end
end
if not v_idx then
error("is_heavy_syllable: no vowel found in syllable")
end
local v_tok = syl[v_idx]
local lc_v = ulower(v_tok.char)
-- Handle silent i (e.g., "iau" where i is silent)
if v_tok.has_silent_i then
lc_v = mw.ustring.sub(lc_v, 2)
end
-- Long vowels (inherently long, regardless of accent)
local LONG_VOWELS = {
["ą"]=true, ["ę"]=true, ["ė"]=true, ["į"]=true, ["y"]=true, ["ų"]=true, ["ū"]=true,
["o"]=true, ["ɔ"]=true -- o/ɔ are always long (except ò, but we treat all o as long)
}
if LONG_VOWELS[lc_v] then
return true
end
-- Diphthongs (length > 1)
if mw.ustring.len(lc_v) > 1 then
return true
end
-- Mixed diphthongs: short vowel + liquid in coda position
local SHORT_VOWELS = {["a"]=true, ["e"]=true, ["i"]=true, ["u"]=true}
if SHORT_VOWELS[lc_v] and v_idx < #syl then
local next_tok = syl[v_idx + 1]
-- Liquid in coda (not j or v, which don't form mixed diphthongs)
if next_tok.type == "R" and next_tok.char ~= "j" and next_tok.char ~= "v" then
return true
end
end
-- Otherwise, it's a light syllable
return false
end
-- Export: Change accent of a syllable
function export.change_accent(syllable, target_accent)
local pagename, clean_syllable = get_pagename(syllable)
syllable = clean_syllable
-- Validate target_accent parameter
local VALID_ACCENTS = {acute=true, tilde=true, grave=true, none=true}
if not VALID_ACCENTS[target_accent] then
error("change_accent: invalid target_accent '" .. tostring(target_accent) ..
"', must be 'acute', 'tilde', 'grave', or 'none'")
end
-- Validate single syllable
local tokens = tokenize(syllable, pagename)
local syllables = syllabify(tokens)
if #syllables ~= 1 then
error("change_accent: input must be a single syllable, got " .. #syllables .. " syllables")
end
-- Remove all existing accents
local clean = remove_all_accents(syllable)
-- If target is 'none', return clean syllable
if target_accent == "none" then
return clean
end
-- Re-tokenize the clean syllable to analyze structure
local clean_tokens = tokenize(clean, pagename)
local clean_syllables = syllabify(clean_tokens)
local syl = clean_syllables[1]
-- Find vowel position and extract vowel part
local onset = ""
local vowel_part = ""
local coda = ""
local v_idx = nil
for i, tok in ipairs(syl) do
if tok.type == "V" then
v_idx = i
break
else
onset = onset .. tok.char
end
end
if not v_idx then
error("change_accent: no vowel found in syllable")
end
local v_tok = syl[v_idx]
vowel_part = ulower(v_tok.char)
-- Handle silent i
if v_tok.has_silent_i then
vowel_part = mw.ustring.sub(vowel_part, 2)
end
-- Check if this is a mixed diphthong
local is_mixed = false
if v_idx < #syl then
local next_tok = syl[v_idx + 1]
if next_tok.type == "R" and next_tok.char ~= "j" and next_tok.char ~= "v" then
-- Mixed diphthong: vowel + liquid
vowel_part = vowel_part .. ulower(next_tok.char)
is_mixed = true
-- Collect remaining coda after the liquid
for i = v_idx + 2, #syl do
coda = coda .. syl[i].char
end
else
-- Regular syllable: collect all coda
for i = v_idx + 1, #syl do
coda = coda .. syl[i].char
end
end
end
-- Look up the accented form in ACCENT_PAIRS
if not ACCENT_PAIRS[vowel_part] then
error("change_accent: vowel/diphthong '" .. vowel_part .. "' not found in accent pairs table")
end
local accented_vowel = ACCENT_PAIRS[vowel_part][target_accent]
if not accented_vowel then
error("change_accent: accent type '" .. target_accent ..
"' is not allowed for vowel/diphthong '" .. vowel_part .. "'")
end
-- Reconstruct the syllable with new accent (in NFD format)
local result = onset .. accented_vowel .. coda
return result
end
-- ============================================================================
-- SECTION 8: Module Exports & Template Formatting (Preserved)
-- ============================================================================
local q_spec = {store = "insert-flattened", type = "qualifier"}
local a_spec = {store = "insert-flattened", type = "labels"}
local ref_spec = {store = "insert-flattened", item_dest = "refs", type = "references"}
-- Generate audio object, supporting file#caption syntax
local function generate_audio_obj(arg)
local file, caption = arg:match("^(.-)%s*#%s*(.*)$")
file = file or arg
return {file = file, caption = caption}
end
-- Parse rhyme specification with optional syllable count
local function parse_rhyme(arg, parse_err)
local function generate_obj(term)
return {rhyme = term}
end
local param_mods = {
s = {
item_dest = "num_syl",
type = "number",
sublist = true,
},
}
-- Add q/qq/a/aa/ref support if inline modifiers are present
if arg:find("<") then
param_mods.q = q_spec
param_mods.qq = q_spec
param_mods.a = a_spec
param_mods.aa = a_spec
param_mods.ref = ref_spec
end
return require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = param_mods,
generate_obj = generate_obj,
parse_err = parse_err,
splitchar = ",",
})
end
-- Parse hyphenation specification (dot-separated syllables)
local function parse_hyph(arg, parse_err)
local function generate_obj(term)
local parts = mw.text.split(term, "%.")
return {hyph = parts, syllabification = term}
end
local param_mods = {}
-- Add q/qq/a/aa/ref support if inline modifiers are present
if arg:find("<") then
param_mods.q = q_spec
param_mods.qq = q_spec
param_mods.a = a_spec
param_mods.aa = a_spec
param_mods.ref = ref_spec
end
return require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = param_mods,
generate_obj = generate_obj,
parse_err = parse_err,
splitchar = ",",
})
end
-- Parse homophone specification
local function parse_homophone(arg, parse_err)
local function generate_obj(term)
return {term = term}
end
local param_mods = {
t = {item_dest = "gloss"},
gloss = {},
pos = {},
alt = {},
lit = {},
id = {},
g = {
item_dest = "genders",
sublist = true,
},
}
-- Add q/qq/a/aa/ref support if inline modifiers are present
if arg:find("<") then
param_mods.q = q_spec
param_mods.qq = q_spec
param_mods.a = a_spec
param_mods.aa = a_spec
param_mods.ref = ref_spec
end
return require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = param_mods,
generate_obj = generate_obj,
parse_err = parse_err,
splitchar = ",",
})
end
local audio_nested_mods = {
["a"] = a_spec, ["aa"] = a_spec,
["q"] = q_spec, ["qq"] = q_spec,
["text"] = {},
["IPA"] = {sublist = true},
["t"] = {item_dest = "gloss"},
["gloss"] = {},
["pos"] = {},
["lit"] = {},
["g"] = {
item_dest = "genders",
sublist = true,
},
}
local function parse_one_term(raw, parse_err)
if not raw:find("<") then
return {term = raw, audio_list = {}, rhyme_list = {}, hyph_list = {}, pagename = nil}
end
-- Extract base spelling before parse_inline_modifiers
local pagename = nil
if raw:find("<base:") then
pagename = raw:match("<base:([^>]+)>")
raw = raw:gsub("<base:[^>]+>", "")
end
local parsed = require(parse_util_module).parse_inline_modifiers(raw, {
param_mods = {
["q"] = q_spec, ["qq"] = q_spec,
["a"] = a_spec, ["aa"] = a_spec,
["ref"] = ref_spec,
["audio"] = {
store = "insert",
item_dest = "audio_list",
convert = function(arg, perr)
if arg:find("<") then
local parsed_audio = require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = audio_nested_mods,
generate_obj = generate_audio_obj,
parse_err = perr,
})
parsed_audio.lang = get_lang()
local textobj = require(audio_module).construct_audio_textobj(parsed_audio)
parsed_audio.text = textobj
parsed_audio.gloss = nil
parsed_audio.pos = nil
parsed_audio.lit = nil
parsed_audio.genders = nil
return parsed_audio
end
local audio_obj = generate_audio_obj(arg)
audio_obj.lang = get_lang()
local textobj = require(audio_module).construct_audio_textobj(audio_obj)
audio_obj.text = textobj
return audio_obj
end,
},
["rhyme"] = {
store = "insert-flattened",
item_dest = "rhyme_list",
convert = parse_rhyme,
},
["hyph"] = {
store = "insert-flattened",
item_dest = "hyph_list",
convert = parse_hyph,
},
["hmp"] = {
store = "insert-flattened",
item_dest = "hmp_list",
convert = parse_homophone,
},
},
generate_obj = function(t)
return {term = t, audio_list = {}, rhyme_list = {}, hyph_list = {}, hmp_list = {}}
end,
parse_err = parse_err,
})
parsed.audio_list = parsed.audio_list or {}
parsed.rhyme_list = parsed.rhyme_list or {}
parsed.hyph_list = parsed.hyph_list or {}
parsed.hmp_list = parsed.hmp_list or {}
parsed.pagename = pagename
return parsed
end
-- Format rhyme objects with qualifiers
local function fmt_rhyme(rhyme_objs, bullet)
if not rhyme_objs or #rhyme_objs == 0 then return nil end
local rhyme_data = {}
for _, robj in ipairs(rhyme_objs) do
insert(rhyme_data, {
rhyme = robj.rhyme,
num_syl = robj.num_syl,
q = robj.q,
qq = robj.qq,
a = robj.a,
aa = robj.aa,
})
end
return bullet .. require(rhymes_module).format_rhymes({
lang = get_lang(),
rhymes = rhyme_data
})
end
-- Format hyphenation objects with qualifiers
local function fmt_hyph(hyph_objs, bullet)
if not hyph_objs or #hyph_objs == 0 then return nil end
local hyph_data = {}
for _, hobj in ipairs(hyph_objs) do
insert(hyph_data, {
hyph = hobj.hyph,
q = hobj.q,
qq = hobj.qq,
a = hobj.a,
aa = hobj.aa,
})
end
return bullet .. require(hyphenation_module).format_hyphenations({
lang = get_lang(),
hyphs = hyph_data,
caption = "Syllabification"
})
end
-- Format audio object
local function fmt_audio(audio_obj, bullet)
return bullet .. require(audio_module).format_audio(audio_obj)
end
-- Format homophone objects with qualifiers
local function fmt_hmp(hmp_objs, bullet)
if not hmp_objs or #hmp_objs == 0 then return nil end
return bullet .. require(homophones_module).format_homophones({
lang = get_lang(),
homophones = hmp_objs,
})
end
function export.show(frame)
local parargs = frame:getParent().args
local args = require(parameters_module).process(parargs, {
[1] = {default = "nãmas"},
["bullets"] = {type = "number", default = 1},
})
local input = args[1]
local nb = args.bullets
local b1 = string.rep("*", nb) .. " "
local b2 = string.rep("*", nb + 1) .. " "
local raw_terms = require(parse_util_module).split_escaping(input, ",")
local parsed_terms = {}
for i, raw in ipairs(raw_terms) do
raw = raw:match("^%s*(.-)%s*$")
local pt = parse_one_term(raw, function(msg)
error("lt-pron: " .. msg .. " (term " .. i .. ")")
end)
parsed_terms[#parsed_terms + 1] = pt
end
m_IPA = m_IPA or require("Module:IPA")
local text_parts = {}
for _, pt in ipairs(parsed_terms) do
-- Determine bullet level: same level as IPA for single pronunciation, indented for multiple
local content_bullet = (#parsed_terms == 1) and b1 or b2
-- Generate IPA
local ipa_str = to_ipa(pt.term, pt.pagename)
-- Handle rhyme: manual override, suppression, or auto-generation
local rhyme_objs = nil
local suppress_rhyme = false
if #pt.rhyme_list > 0 then
for _, robj in ipairs(pt.rhyme_list) do
if robj.rhyme == "-" then
suppress_rhyme = true
break
end
end
if not suppress_rhyme then
rhyme_objs = {}
for _, robj in ipairs(pt.rhyme_list) do
-- If num_syl not specified, try to get from auto-generated hyphenation
if not robj.num_syl then
local auto_hyph = get_hyphenation(pt.term, pt.pagename)
if auto_hyph and #auto_hyph > 0 then
-- Use syllable_count field if available (for multi-word phrases), otherwise use array length
local syl_count = auto_hyph.syllable_count or #auto_hyph
robj.num_syl = {syl_count}
end
end
insert(rhyme_objs, robj)
end
end
else
-- Auto-generate rhyme (skip if term ends with -)
if not pt.term:match("%-$") then
local rhyme_str = get_rhyme(ipa_str)
if rhyme_str then
local auto_hyph = get_hyphenation(pt.term, pt.pagename)
-- Use syllable_count field if available (for multi-word phrases), otherwise use array length
local num_syl = (auto_hyph and #auto_hyph > 0) and {auto_hyph.syllable_count or #auto_hyph} or nil
rhyme_objs = {{rhyme = rhyme_str, num_syl = num_syl}}
end
end
end
-- Handle hyphenation: manual override, suppression, or auto-generation
local hyph_objs = nil
local suppress_hyph = false
if #pt.hyph_list > 0 then
for _, hobj in ipairs(pt.hyph_list) do
if hobj.syllabification == "-" then
suppress_hyph = true
break
end
end
if not suppress_hyph then
hyph_objs = pt.hyph_list
end
else
-- Auto-generate hyphenation
local auto_hyph = get_hyphenation(pt.term, pt.pagename)
if auto_hyph and #auto_hyph > 0 then
hyph_objs = {{hyph = auto_hyph, syllabification = concat(auto_hyph, ".")}}
end
end
-- Format IPA with qualifiers and references
local ipa_item = {pron = "[" .. ipa_str .. "]"}
if pt.q then ipa_item.q = pt.q end
if pt.qq then ipa_item.qq = pt.qq end
if pt.a then ipa_item.a = pt.a end
if pt.aa then ipa_item.aa = pt.aa end
if pt.refs then ipa_item.refs = pt.refs end
text_parts[#text_parts + 1] = b1 .. m_IPA.format_IPA_full({
lang = get_lang(),
items = {ipa_item}
})
-- Audio
for _, aud in ipairs(pt.audio_list or {}) do
text_parts[#text_parts + 1] = fmt_audio(aud, content_bullet)
end
-- Rhyme
if rhyme_objs then
local r = fmt_rhyme(rhyme_objs, content_bullet)
if r then text_parts[#text_parts + 1] = r end
end
-- Hyphenation
if hyph_objs then
local h = fmt_hyph(hyph_objs, content_bullet)
if h then text_parts[#text_parts + 1] = h end
end
-- Homophones
if pt.hmp_list and #pt.hmp_list > 0 then
local hmp = fmt_hmp(pt.hmp_list, content_bullet)
if hmp then text_parts[#text_parts + 1] = hmp end
end
end
return concat(text_parts, "\n")
end
export.toIPA = to_ipa
export.hyphenate = get_hyphenation
export.rhyme = get_rhyme
return export
af1ipulmfkk34ui9xxnk13yb2tkal9n
9753779
9753777
2026-05-06T08:52:15Z
TongcyDai
53191
9753779
Scribunto
text/plain
--[==[
Backend for {{lt-pr}}: IPA, hyphenation, and rhyme generation.
Author: TongcyDai
]==]
local export = {}
local m_debug = require("Module:debug")
local m_str = require("Module:string utilities")
local m_langdata = require("Module:languages/data")
local u = m_str.char
local ulower = m_str.lower
local usub = m_str.sub
local ulen = m_str.len
-- Accent mark constants
local c = m_langdata.chars
local GRAVE = c.grave -- U+0300
local ACUTE = c.acute -- U+0301
local TILDE = c.tilde -- U+0303
-- Lazy-loaded external modules
local m_IPA
local audio_module = "Module:audio"
local homophones_module = "Module:homophones"
local hyphenation_module = "Module:hyphenation"
local rhymes_module = "Module:rhymes"
local parameters_module = "Module:parameters"
local parse_util_module = "Module:parse utilities"
local concat = table.concat
local insert = table.insert
local lang_obj
local function get_lang()
if not lang_obj then
lang_obj = require("Module:languages").getByCode("lt")
end
return lang_obj
end
local function track(reason)
m_debug.track("lt-pron/" .. reason)
end
-- ============================================================================
-- SECTION 1: Orthography & Phonology Definitions
-- ============================================================================
-- Suffix table for automatic phonetic adjustments (currently disabled)
-- Exact matching lists (must include precomposed normalized tone markers)
--[[
local SUFFIX_LOAN = {
["fòbas"]=true, ["fòbė"]=true, ["fòbija"]=true, ["fònas"]=true, ["fònė"]=true,
["lògas"]=true, ["lògija"]=true, ["skòpas"]=true
}
--]]
-- Consonant classes for syllabification (Sonority Hierarchy)
local CLASS = {
R = {["l"]=true, ["m"]=true, ["n"]=true, ["r"]=true, ["v"]=true, ["j"]=true},
S = {["s"]=true, ["z"]=true, ["š"]=true, ["ž"]=true, ["f"]=true, ["x"]=true, ["h"]=true, ["ch"]=true},
T = {["p"]=true, ["b"]=true, ["t"]=true, ["d"]=true, ["k"]=true, ["g"]=true, ["c"]=true, ["dz"]=true, ["č"]=true, ["dž"]=true}
}
-- Front vowels trigger palatalization
local FRONT_V = {
["e"]=true, ["ę"]=true, ["ė"]=true, ["i"]=true, ["į"]=true, ["y"]=true, ["ie"]=true, ["ei"]=true, ["eu"]=true
}
-- Vowel -> Base IPA mapping (Unstressed short/inherent)
local V_IPA = {
["a"] = "ɐ", ["ą"] = "ɑː", ["e"] = "ɛ", ["ę"] = "æː", ["ė"] = "eː",
["i"] = "ɪ", ["į"] = "iː", ["y"] = "iː",
["u"] = "ʊ", ["ų"] = "uː", ["ū"] = "uː", ["o"] = "oː",
["ie"] = "iɛ", ["uo"] = "uɔ",
-- Unstressed simple diphthongs
["ai"] = "ɐɪ", ["au"] = "ɒʊ", ["ei"] = "ɛɪ", ["eu"] = "ɛʊ",
["ui"] = "ʊɪ", ["oi"] = "ɔɪ", ["ou"] = "ɔʊ"
}
-- Consonant -> Base IPA mapping (Unpalatalized)
local CONS_IPA = {
["b"] = "b", ["c"] = "t͡s", ["č"] = "t͡ʃ", ["d"] = "d",
["dz"] = "d͡z", ["dž"] = "d͡ʒ", ["ch"] = "x",
["f"] = "f", ["g"] = "ɡ", ["h"] = "ɣ", ["j"] = "j",
["k"] = "k", ["l"] = "l", ["m"] = "m", ["n"] = "n",
["p"] = "p", ["r"] = "r", ["s"] = "s", ["š"] = "ʃ",
["t"] = "t", ["v"] = "ʋ", ["z"] = "z", ["ž"] = "ʒ",
}
-- Voicing pairs for Voicing Assimilation
local VOICING_PAIRS = {
["p"]="b", ["b"]="p", ["t"]="d", ["d"]="t", ["k"]="g", ["g"]="k",
["c"]="dz", ["dz"]="c", ["č"]="dž", ["dž"]="č",
["s"]="z", ["z"]="s", ["š"]="ž", ["ž"]="š", ["x"]="ɣ", ["ɣ"]="x"
}
local function is_voiced(c)
local voiced_set = {["b"]=true, ["d"]=true, ["g"]=true, ["dz"]=true, ["dž"]=true, ["z"]=true, ["ž"]=true, ["ɣ"]=true}
return voiced_set[c] == true
end
-- Accent pairs for conjugation module support
-- Maps base vowel/diphthong to accented forms (falling/rising)
local ACCENT_PAIRS = {
-- Long vowels (acute or tilde)
["ą"] = {acute="ą"..ACUTE, tilde="ą"..TILDE},
["ę"] = {acute="ę"..ACUTE, tilde="ę"..TILDE},
["ė"] = {acute="ė"..ACUTE, tilde="ė"..TILDE},
["y"] = {acute="y"..ACUTE, tilde="y"..TILDE},
["į"] = {acute="į"..ACUTE, tilde="į"..TILDE},
["ū"] = {acute="ū"..ACUTE, tilde="ū"..TILDE},
["ų"] = {acute="ų"..ACUTE, tilde="ų"..TILDE},
-- a/e can be short (grave) or long (tilde)
["a"] = {grave="a"..GRAVE, tilde="a"..TILDE},
["e"] = {grave="e"..GRAVE, tilde="e"..TILDE},
-- o: ó/õ/o are long, ò is short
["o"] = {acute="o"..ACUTE, grave="o"..GRAVE, tilde="o"..TILDE},
-- Short vowels i/u (only grave)
["i"] = {grave="i"..GRAVE},
["u"] = {grave="u"..GRAVE},
-- Simple diphthongs
["ai"] = {acute="a"..ACUTE.."i", tilde="a".."i"..TILDE},
["au"] = {acute="a"..ACUTE.."u", tilde="a".."u"..TILDE},
["ei"] = {acute="e"..ACUTE.."i", tilde="e".."i"..TILDE},
["ui"] = {grave="u"..GRAVE.."i", tilde="u".."i"..TILDE},
-- Complex diphthongs
["ie"] = {acute="i"..ACUTE.."e", tilde="i".."e"..TILDE},
["uo"] = {acute="u"..ACUTE.."o", tilde="u".."o"..TILDE},
-- Mixed diphthongs (a series - acute/tilde)
["al"] = {acute="a"..ACUTE.."l", tilde="a".."l"..TILDE},
["am"] = {acute="a"..ACUTE.."m", tilde="a".."m"..TILDE},
["an"] = {acute="a"..ACUTE.."n", tilde="a".."n"..TILDE},
["ar"] = {acute="a"..ACUTE.."r", tilde="a".."r"..TILDE},
-- Mixed diphthongs (e series - acute/grave/tilde, grave for foreign)
["el"] = {acute="e"..ACUTE.."l", grave="e"..GRAVE.."l", tilde="e".."l"..TILDE},
["em"] = {acute="e"..ACUTE.."m", grave="e"..GRAVE.."m", tilde="e".."m"..TILDE},
["en"] = {acute="e"..ACUTE.."n", grave="e"..GRAVE.."n", tilde="e".."n"..TILDE},
["er"] = {acute="e"..ACUTE.."r", grave="e"..GRAVE.."r", tilde="e".."r"..TILDE},
-- Mixed diphthongs (i series - grave/tilde)
["il"] = {grave="i"..GRAVE.."l", tilde="i".."l"..TILDE},
["im"] = {grave="i"..GRAVE.."m", tilde="i".."m"..TILDE},
["in"] = {grave="i"..GRAVE.."n", tilde="i".."n"..TILDE},
["ir"] = {grave="i"..GRAVE.."r", tilde="i".."r"..TILDE},
-- Mixed diphthongs (u series - grave/tilde)
["ul"] = {grave="u"..GRAVE.."l", tilde="u".."l"..TILDE},
["um"] = {grave="u"..GRAVE.."m", tilde="u".."m"..TILDE},
["un"] = {grave="u"..GRAVE.."n", tilde="u".."n"..TILDE},
["ur"] = {grave="u"..GRAVE.."r", tilde="u".."r"..TILDE},
-- Foreign diphthongs (grave only)
["eu"] = {grave="e"..GRAVE.."u"},
["oi"] = {grave="o"..GRAVE.."i"},
["ou"] = {grave="o"..GRAVE.."u"},
["ol"] = {grave="o"..GRAVE.."l"},
["om"] = {grave="o"..GRAVE.."m"},
["on"] = {grave="o"..GRAVE.."n"},
["or"] = {grave="o"..GRAVE.."r"},
}
-- ============================================================================
-- SECTION 2: Lexical Normalization (Avoid NFD destruction)
-- ============================================================================
-- Helper: Remove all accent marks from text (moved here for early use)
local function remove_all_accents(text)
-- Convert to NFD to separate base characters from combining marks
local nfd = mw.ustring.toNFD(text)
-- Remove combining accent marks (grave, acute, tilde)
local clean = mw.ustring.gsub(nfd, "["..GRAVE..ACUTE..TILDE.."]", "")
-- Return as NFD (don't convert back to NFC)
return clean
end
-- Extract pagename from input or load from headword data
local function get_pagename(input)
-- Check for manual override: <base:xxx>
local manual = input:match("<base:([^>]+)>")
if manual then
return manual, input:gsub("<base:[^>]+>", "")
end
-- Load from headword data
local success, data = pcall(function()
return mw.loadData("Module:headword/data").pagename
end)
if success and data then
return data, input
end
return nil, input
end
-- Identify respelling j and (j) positions
local function identify_respelling_glides(input_with_accents, pagename)
if not pagename then
return {} -- No pagename, no respelling detection
end
-- Remove all accents from input
local input_clean = remove_all_accents(input_with_accents)
-- Remove special markers (^, .)
input_clean = mw.ustring.gsub(input_clean, "[%^%.]", "")
-- Remove <base:...> if present
input_clean = mw.ustring.gsub(input_clean, "<base:[^>]+>", "")
-- Remove literal ˌ
input_clean = mw.ustring.gsub(input_clean, "ˌ", "")
-- Remove softening mark ʼ
input_clean = mw.ustring.gsub(input_clean, "ʼ", "")
-- Remove (j) markers - replace with j for comparison
input_clean = mw.ustring.gsub(input_clean, "%(j%)", "j")
-- Remove spaces for comparison
input_clean = mw.ustring.gsub(input_clean, " ", "")
-- Convert to NFC for comparison
input_clean = mw.ustring.toNFC(input_clean)
-- Normalize pagename (lowercase, remove spaces)
local pagename_clean = ulower(pagename)
pagename_clean = mw.ustring.gsub(pagename_clean, " ", "")
-- Find respelling j positions (j in input but not in pagename)
local respelling_positions = {}
local input_idx = 1
local page_idx = 1
while input_idx <= mw.ustring.len(input_clean) do
local input_char = mw.ustring.sub(input_clean, input_idx, input_idx)
if input_char == "j" then
-- Check if this j exists in pagename at corresponding position
local page_char = page_idx <= mw.ustring.len(pagename_clean)
and mw.ustring.sub(pagename_clean, page_idx, page_idx)
if page_char ~= "j" then
-- This is a respelling j
insert(respelling_positions, input_idx)
input_idx = input_idx + 1
-- Don't advance page_idx
else
-- This is an original j
input_idx = input_idx + 1
page_idx = page_idx + 1
end
else
input_idx = input_idx + 1
page_idx = page_idx + 1
end
end
return respelling_positions
end
-- Safe mapping to extract tones without destroying precomposed characters
local TONE_MAP = {
["á"]="a,acute", ["à"]="a,grave", ["ã"]="a,tilde",
["é"]="e,acute", ["è"]="e,grave", ["ẽ"]="e,tilde",
["í"]="i,acute", ["ì"]="i,grave", ["ĩ"]="i,tilde",
["ý"]="y,acute", ["ỳ"]="y,grave", ["ỹ"]="y,tilde",
["ú"]="u,acute", ["ù"]="u,grave", ["ũ"]="u,tilde",
["ó"]="o,acute", ["ò"]="o,grave", ["õ"]="o,tilde",
-- Precomposed vowels with macrons/ogoneks + tones (represented here via standard combinations)
["ą́"]="ą,acute", ["ą̃"]="ą,tilde",
["ę́"]="ę,acute", ["ę̃"]="ę,tilde",
["ė́"]="ė,acute", ["ė̃"]="ė,tilde",
["į́"]="į,acute", ["į̃"]="į,tilde",
["ų́"]="ų,acute", ["ų̃"]="ų,tilde",
["ū́"]="ū,acute", ["ū̃"]="ū,tilde",
-- Tilde on liquids (for semi-diphthongs)
["l̃"]="l,tilde", ["m̃"]="m,tilde", ["ñ"]="n,tilde", ["r̃"]="r,tilde",
["j̃"]="j,tilde"
}
-- Resolves NFD back to safe representation if input was somehow NFD
local function safe_normalize(text)
local INVALID_CHARS = {
[0xE001] = { replace = "ą́" },
[0xE003] = { replace = "ą̃" },
[0xE005] = { replace = "ę́" },
[0xE007] = { replace = "ę̃" },
[0xE009] = { replace = "ė́" },
[0xE00B] = { replace = "ė̃" },
[0xE00C] = { replace = "i̇̀" },
[0xE00D] = { replace = "i̇́" },
[0xE00E] = { replace = "i̇̃" },
[0xE010] = { replace = "į̇́" },
[0xE012] = { replace = "į̇̃" },
[0xE014] = { replace = "j̇̃" },
[0xE016] = { replace = "l̃" },
[0xE018] = { replace = "m̃" },
[0xE01A] = { replace = "r̃" },
[0xE01C] = { replace = "ų́" },
[0xE01E] = { replace = "ų̃" },
[0xE020] = { replace = "ū́" },
[0xE022] = { replace = "ū̃" },
-- Note: U+0307 (dotabove) is no longer rejected, but normalized below
}
-- Reject non-standard/PUA characters to enforce clean Wiktionary source
for codepoint, data in pairs(INVALID_CHARS) do
local char = mw.ustring.char(codepoint)
if mw.ustring.find(text, char) then
if data.custom_msg then
error(data.custom_msg)
else
local hex_str = string.format("%04X", codepoint)
error(string.format(
'lt-pron: Private use area character U+%s "%s" detected. Please use "%s" instead.',
hex_str, char, data.replace
))
end
end
end
-- Convert to NFD for normalization
text = mw.ustring.toNFD(text)
-- Track non-standard input formats (before normalization)
local DOT_AB = u(0x0307)
local OGONEK = u(0x0328)
-- Detect dotless i/j
if mw.ustring.find(text, "[ıȷ]") then
track('dotless-ij')
end
-- Detect precomposed i/j with accents (should be i + dotabove + accent)
if mw.ustring.find(text, "[íìĩ]") then
track('precomposed-i-accent')
end
-- Detect explicit dotabove usage (which is actually correct for accented i/j)
if mw.ustring.find(text, "[ij]" .. DOT_AB) then
track('explicit-dotabove')
end
-- Normalize i/j with dotabove (remove dotabove, convert dotless to standard)
-- This handles: i̇, j̇, ı, ȷ, į̇ -> i, j, i, j, į
text = mw.ustring.gsub(text, "([iıjȷ])(" .. OGONEK .. "?)" .. DOT_AB, function(base, below)
base = (base == "ı") and "i" or (base == "ȷ") and "j" or base
return base .. below
end)
-- Convert any remaining dotless forms to standard dotted forms
text = mw.ustring.gsub(text, "ı", "i")
text = mw.ustring.gsub(text, "ȷ", "j")
-- Convert back to NFC and parse tones
text = mw.ustring.toNFC(text)
local result = {}
local i = 1
while i <= mw.ustring.len(text) do
local c = mw.ustring.sub(text, i, i)
local c_lower = ulower(c) -- Convert to lowercase for TONE_MAP lookup
-- Look ahead for combining marks if any slipped through
local next_c = mw.ustring.sub(text, i+1, i+1)
local next_c_lower = ulower(next_c)
local combined = c_lower .. next_c_lower
if TONE_MAP[combined] then
local parts = mw.text.split(TONE_MAP[combined], ",")
-- Preserve original case of base character
local base_char = parts[1]
if c ~= c_lower then
base_char = mw.ustring.upper(base_char)
end
insert(result, {char = base_char, tone = parts[2]})
i = i + 2
elseif TONE_MAP[c_lower] then
local parts = mw.text.split(TONE_MAP[c_lower], ",")
-- Preserve original case of base character
local base_char = parts[1]
if c ~= c_lower then
base_char = mw.ustring.upper(base_char)
end
insert(result, {char = base_char, tone = parts[2]})
i = i + 1
else
insert(result, {char = c, tone = nil})
i = i + 1
end
end
return result
end
-- Display text helper: Insert dotabove between i/j and accent marks
-- (Based on Module:lt-common.makeDisplayText)
local function makeDisplayText(text)
local DOT_AB = u(0x0307)
local OGONEK = u(0x0328)
-- Convert to NFD for processing
text = mw.ustring.toNFD(text)
-- Insert dotabove between i/j and accent marks
text = mw.ustring.gsub(text, "([ij])(" .. OGONEK .. "?)([" .. GRAVE .. ACUTE .. TILDE .. "])",
function(base, below, accent)
return base .. below .. DOT_AB .. accent
end)
-- Convert back to NFC
return mw.ustring.toNFC(text)
end
-- ============================================================================
-- SECTION 3: Tokenization & Diphthong/Digraph resolution
-- ============================================================================
local function get_type(c)
local lc = ulower(c)
if V_IPA[lc] then return "V" end
if CLASS.R[lc] then return "R" end
if CLASS.S[lc] then return "S" end
if CLASS.T[lc] then return "T" end
return "UNKNOWN"
end
-- Helper: Convert token array back to NFC string for suffix/prefix matching
local function tokens_to_string(tok_list)
local s = ""
for _, t in ipairs(tok_list) do
local c = t.char
if t.tone == "grave" then c = c .. GRAVE
elseif t.tone == "acute" then c = c .. ACUTE
elseif t.tone == "tilde" then c = c .. TILDE
end
s = s .. c
end
return mw.ustring.toNFC(s)
end
-- Apply automatic properties based on word structure (e.g. loanwords)
local function apply_auto_properties(tokens)
local word_str = ulower(tokens_to_string(tokens))
--[[ Suffix detection for loanword quality (currently disabled)
local matched_loan_suff = nil
for suff, _ in pairs(SUFFIX_LOAN) do
if mw.ustring.sub(word_str, -mw.ustring.len(suff)) == suff then
matched_loan_suff = suff; break
end
end
if matched_loan_suff then
local suff_len = mw.ustring.len(matched_loan_suff)
local acc_len = 0
for i = #tokens, 1, -1 do
local t = tokens[i]
acc_len = acc_len + mw.ustring.len(tokens_to_string({t}))
if t.type == "V" and ulower(t.char) == "o" then
t.auto_targeted = true
if not t.force_default then t.loan_quality = true end
end
if acc_len >= suff_len then break end
end
end
-- Check for redundant asterisks globally
for _, t in ipairs(tokens) do
if t.force_default and not t.auto_targeted then
track('redundant-asterisk')
end
end
--]]
return tokens
end
-- Strict whitelist for valid diphthong and tone combinations
local function is_strict_diphthong(c1, t1, c2, t2)
local combo = c1 .. c2
-- Unstressed: neither element has a tone
if not t1 and not t2 then
return (combo == "ie" or combo == "uo" or combo == "ai" or combo == "au" or combo == "ei" or combo == "ui" or combo == "oi" or combo == "ou" or combo == "eu")
end
-- Tone on the first element (acute or grave)
if t1 and not t2 then
if t1 == "acute" then
return (combo == "ai" or combo == "au" or combo == "ei" or combo == "ie" or combo == "uo" or combo == "oi")
elseif t1 == "grave" then
return (combo == "ui" or combo == "oi" or combo == "ou" or combo == "eu")
end
end
-- Tone on the second element (tilde)
if not t1 and t2 then
if t2 == "tilde" then
return (combo == "ai" or combo == "au" or combo == "ei" or combo == "ui" or combo == "ie" or combo == "uo" or combo == "eu")
end
end
return false
end
local function tokenize(text_str, pagename)
local raw_chars = safe_normalize(text_str)
-- Identify respelling glides
local respelling_j_positions = identify_respelling_glides(text_str, pagename)
local tokens = {}
local i = 1
while i <= #raw_chars do
local curr = raw_chars[i]
local nxt = raw_chars[i+1]
local lc_curr = ulower(curr.char)
local lc_nxt = nxt and ulower(nxt.char)
-- Explicit Modifiers
if curr.char == "^" then
local last_v = nil
for j = #tokens, 1, -1 do
if tokens[j].type == "V" then last_v = tokens[j]; break end
end
if last_v then
local lc_v = ulower(last_v.char)
local base_v = mw.ustring.sub(lc_v, -1) -- Last char for silent i combinations
local is_e_base = (lc_v == "e") or (base_v == "e")
local is_o_base = (lc_v == "o") or (base_v == "o")
-- Check for valid e: no tone or grave only
if is_e_base then
if not last_v.tone or last_v.tone == "grave" then
last_v.loan_quality = true
elseif last_v.tone == "acute" then
error("lt-pron: '^' cannot be used with acute 'é' (use only with plain 'e' or grave 'è')")
elseif last_v.tone == "tilde" then
error("lt-pron: '^' cannot be used with tilde 'ẽ' (use only with plain 'e' or grave 'è')")
end
-- Check for valid o: no tone only
elseif is_o_base then
if not last_v.tone then
last_v.loan_quality = true
elseif last_v.tone == "grave" then
error("lt-pron: '^' is redundant for 'ò' (already pronounced [ɔ])")
elseif last_v.tone == "acute" or last_v.tone == "tilde" then
error("lt-pron: '^' cannot be used with 'ó' or 'õ' (native long vowels)")
end
else
error("lt-pron: '^' can only be used with 'e' (plain/grave) or 'o' (plain). Found: '" .. lc_v .. "'")
end
end
i = i + 1
-- Check for (j) marker
elseif curr.char == "(" and i + 2 <= #raw_chars then
local char2 = raw_chars[i+1]
local char3 = raw_chars[i+2]
if char2.char == "j" and char3.char == ")" then
insert(tokens, {char = "j", type = "R", tone = nil, is_respelling = true, is_optional = true, original_char = "-"})
i = i + 3
else
error("lt-pron: '(' must be followed by 'j)' to form the (j) glide marker")
end
--[[ Asterisk modifier (currently disabled)
elseif curr.char == "*" then
local last_v = nil
for j = #tokens, 1, -1 do
if tokens[j].type == "V" then last_v = tokens[j]; break end
end
if last_v then last_v.force_default = true end
i = i + 1
--]]
elseif curr.char == "." then
insert(tokens, {char = ".", type = "BOUNDARY"})
i = i + 1
elseif curr.char == "ˌ" then
insert(tokens, {char = "ˌ", type = "SECONDARY_STRESS_BOUNDARY"})
i = i + 1
elseif curr.char == "ʼ" then
-- Softening mark: palatalize the preceding consonant
for j = #tokens, 1, -1 do
local tok = tokens[j]
if tok.type == "T" or tok.type == "S" or tok.type == "R" then
tok.softening_mark = true
break
end
end
i = i + 1
elseif lc_curr == "d" and nxt and (lc_nxt == "z" or lc_nxt == "ž") then
insert(tokens, {char = curr.char .. nxt.char, type = "T", tone = nil})
i = i + 2
elseif lc_curr == "c" and nxt and lc_nxt == "h" then
insert(tokens, {char = curr.char .. nxt.char, type = "S", tone = nil})
i = i + 2
-- Special handling for V + j̃ (final j with tilde): treat as V + ĩ diphthong
elseif curr.type ~= "BOUNDARY" and get_type(curr.char) == "V" and nxt and ulower(nxt.char) == "j" and nxt.tone == "tilde" then
-- Check if this is word-final (no more non-boundary tokens after j̃)
local is_final = true
for k = i + 2, #raw_chars do
if raw_chars[k].char ~= " " then
is_final = false
break
end
end
if is_final then
-- Combine V + j̃ as a diphthong V + ĩ (e.g., uj̃ → ui̇̃)
local v_char = ulower(curr.char)
local combined_char = v_char .. "i" -- e.g., "u" + "i" = "ui"
local tone = "tilde" -- j̃'s tilde
local tone_position = 2 -- Tilde is on the second vowel (i)
insert(tokens, {
char = combined_char,
type = "V",
tone = tone,
tone_position = tone_position,
original_char = v_char .. "j" -- For hyphenation: display as "uj̃"
})
i = i + 2
else
-- Not final, treat as regular V + j
insert(tokens, {char = curr.char, type = "V", tone = curr.tone})
i = i + 1
end
elseif curr.type ~= "BOUNDARY" and get_type(curr.char) == "V" and nxt and get_type(nxt.char) == "V" then
local nxt_nxt = raw_chars[i+2]
local lc_nxt_nxt = nxt_nxt and ulower(nxt_nxt.char)
local back_diph = lc_nxt and lc_nxt_nxt and (lc_nxt .. lc_nxt_nxt)
local is_silent_i_diph = (lc_curr == "i" and not curr.tone) and
(back_diph == "au" or back_diph == "ai" or back_diph == "ou" or back_diph == "oi" or back_diph == "uo")
local is_silent_i_mono = (lc_curr == "i" and not curr.tone) and
(lc_nxt == "a" or lc_nxt == "ą" or lc_nxt == "o" or
lc_nxt == "u" or lc_nxt == "ų" or lc_nxt == "ū" or lc_nxt == "ɔ")
local is_valid_diph = is_strict_diphthong(lc_curr, curr.tone, lc_nxt, nxt and nxt.tone)
if is_valid_diph and nxt_nxt and get_type(nxt_nxt.char) == "V" then
local lc_nxt_nxt = ulower(nxt_nxt.char)
local is_next_valid_diph = is_strict_diphthong(lc_nxt, nxt.tone, lc_nxt_nxt, nxt_nxt.tone)
if is_next_valid_diph then
-- Resolve ambiguous triplets (e.g., auo -> a.uo is standard)
-- Break the first valid diphthong unless explicitly stressed
if not curr.tone then
is_valid_diph = false
end
end
end
if is_silent_i_diph then
local tone = nxt.tone or nxt_nxt.tone
local tone_position = nil
if tone then
-- For silent i diphthongs (e.g., iau), position is relative to the full string
-- Position 2 = middle vowel, Position 3 = last vowel
if nxt.tone then
tone_position = 2
elseif nxt_nxt.tone then
tone_position = 3
end
end
insert(tokens, {char = curr.char .. nxt.char .. nxt_nxt.char, type = "V", tone = tone, has_silent_i = true, tone_position = tone_position})
i = i + 3
elseif is_silent_i_mono then
local tone = nxt.tone
local tone_position = nil
if tone then
-- For silent i monosyllables (e.g., ia), position 2 = second character
tone_position = 2
end
insert(tokens, {char = curr.char .. nxt.char, type = "V", tone = tone, has_silent_i = true, tone_position = tone_position})
i = i + 2
elseif is_valid_diph then
local tone = curr.tone or nxt.tone
local tone_position = nil
if tone then
-- Record which vowel carries the tone (1 = first, 2 = second)
if curr.tone then
tone_position = 1
elseif nxt.tone then
tone_position = 2
end
end
insert(tokens, {char = curr.char .. nxt.char, type = "V", tone = tone, tone_position = tone_position})
i = i + 2
else
insert(tokens, {char = curr.char, type = "V", tone = curr.tone})
i = i + 1
end
else
if curr.char ~= " " then
local tok_type = get_type(curr.char)
local is_respelling_j = false
-- Check if this is a respelling j
if ulower(curr.char) == "j" and #respelling_j_positions > 0 then
-- Build cleaned string up to current position to find clean position
local cleaned_so_far = ""
for k = 1, i do
local c = raw_chars[k]
if c.char ~= "^" and c.char ~= "." and c.char ~= " " and c.char ~= "ʼ" and c.char ~= "ˌ" then
local char_clean = c.char
-- Don't add tone marks to cleaned string
if not c.tone then
cleaned_so_far = cleaned_so_far .. char_clean
else
-- Add base character without tone
cleaned_so_far = cleaned_so_far .. char_clean
end
end
end
local clean_pos = mw.ustring.len(cleaned_so_far)
-- Check if this position is in respelling list
for _, pos in ipairs(respelling_j_positions) do
if pos == clean_pos then
is_respelling_j = true
break
end
end
end
if ulower(curr.char) == "j" then
local tok_data = {char = curr.char, type = tok_type, tone = curr.tone, is_respelling = is_respelling_j, is_optional = false}
if is_respelling_j then
tok_data.original_char = "-" -- Respelling: use "-" to indicate not in orthography
end
insert(tokens, tok_data)
else
insert(tokens, {char = curr.char, type = tok_type, tone = curr.tone})
end
end
i = i + 1
end
end
-- Validate respelling glides are between vowels
for i, tok in ipairs(tokens) do
if tok.is_respelling then
local prev_is_vowel = false
local next_is_vowel = false
-- Check previous non-boundary token
for j = i - 1, 1, -1 do
if tokens[j].type ~= "BOUNDARY" and tokens[j].type ~= "SECONDARY_STRESS_BOUNDARY" then
prev_is_vowel = (tokens[j].type == "V")
break
end
end
-- Check next non-boundary token
for j = i + 1, #tokens do
if tokens[j].type ~= "BOUNDARY" and tokens[j].type ~= "SECONDARY_STRESS_BOUNDARY" then
next_is_vowel = (tokens[j].type == "V")
break
end
end
if not (prev_is_vowel and next_is_vowel) then
error("lt-pron: Respelling glide 'j' or '(j)' must be between two vowels")
end
end
end
return apply_auto_properties(tokens)
end
-- ============================================================================
-- SECTION 4: Syllabification
-- ============================================================================
-- Pre-syllabification: Merge geminate (doubled) consonants
-- This must happen BEFORE syllabification to prevent false mixed diphthongs
-- For example: pérrašo → pér-ra-šo would incorrectly treat ér as a mixed diphthong
-- By merging rr→r first, we get pé-ra-šo, correctly keeping é as a pure vowel
local function merge_geminate_consonants(tokens)
local SIBILANTS = {["s"]=true, ["z"]=true, ["š"]=true, ["ž"]=true}
local i = 1
while i < #tokens do
local tok = tokens[i]
local nxt = tokens[i+1]
local tok_is_cons = (tok.type == "T" or tok.type == "S" or tok.type == "R")
local nxt_is_cons = (nxt.type == "T" or nxt.type == "S" or nxt.type == "R")
if tok_is_cons and nxt_is_cons then
local tok_char = ulower(tok.char)
local nxt_char = ulower(nxt.char)
local tok_is_sib = SIBILANTS[tok_char]
local nxt_is_sib = SIBILANTS[nxt_char]
-- Merge if: (1) both are sibilants, or (2) identical consonants
if (tok_is_sib and nxt_is_sib) or (tok_char == nxt_char) then
-- Remove the first token (keep the second)
table.remove(tokens, i)
-- Don't increment i, check the same position again
else
i = i + 1
end
else
i = i + 1
end
end
end
local function syllabify(tokens)
local syllables = {}
local current_syl = {}
-- Check for leading secondary stress marker
local has_initial_secondary_stress = false
if #tokens > 0 and tokens[1].type == "SECONDARY_STRESS_BOUNDARY" then
has_initial_secondary_stress = true
end
local v_indices = {}
for i, tok in ipairs(tokens) do
if tok.type == "V" then insert(v_indices, i) end
end
if #v_indices == 0 then return {tokens} end -- Edge case: no vowels
local boundaries = {}
-- Sonority Sequencing Algorithm combined with Morphophonological Maximum Onset
for idx = 1, #v_indices - 1 do
local v1_idx = v_indices[idx]
local v2_idx = v_indices[idx + 1]
local raw_c_tokens = {}
local forced_boundary_idx = nil
for i = v1_idx + 1, v2_idx - 1 do
if tokens[i].type == "BOUNDARY" or tokens[i].type == "SECONDARY_STRESS_BOUNDARY" then
forced_boundary_idx = i
else
insert(raw_c_tokens, {t=tokens[i], orig_idx=i})
end
end
if forced_boundary_idx then
boundaries[forced_boundary_idx] = true
elseif #raw_c_tokens == 0 then
-- Hiatus
boundaries[v2_idx] = true
else
-- Macro-Token Grouping: Treat consecutive sibilants (S) as a single phonological unit
local macro_c = {}
local i = 1
while i <= #raw_c_tokens do
local current = raw_c_tokens[i]
if current.t.type == "S" then
local absorbed = {current}
local j = i + 1
-- Absorb any subsequent S tokens into this macro unit, keeping track of them
while j <= #raw_c_tokens and raw_c_tokens[j].t.type == "S" do
insert(absorbed, raw_c_tokens[j])
j = j + 1
end
insert(macro_c, {type = "S", orig_idx = current.orig_idx, tokens = absorbed})
i = j
else
insert(macro_c, {type = current.t.type, orig_idx = current.orig_idx, tokens = {current}})
i = i + 1
end
end
local m_count = #macro_c
if m_count == 1 then
-- V.CV (or V.SSV, e.g., sausšala -> sau.sšala)
boundaries[macro_c[1].orig_idx] = true
elseif m_count == 2 then
local t1, t2 = macro_c[1].type, macro_c[2].type
-- ST, SR, TR -> V.CCV
if (t1=="S" and t2=="T") or (t1=="S" and t2=="R") or (t1=="T" and t2=="R") then
boundaries[macro_c[1].orig_idx] = true
else
-- Handle TSS and RSS sequences properly (e.g., Oksfordas, transformavo).
-- If the macro cluster is T+S or R+S, and the S unit absorbed multiple sibilants,
-- split between the first and second sibilant (TS.S, RS.S).
if (t1=="T" or t1=="R") and t2=="S" and #macro_c[2].tokens > 1 then
boundaries[macro_c[2].tokens[2].orig_idx] = true
else
-- Default VC.CV
boundaries[macro_c[2].orig_idx] = true
end
end
elseif m_count == 3 then
local t1, t2, t3 = macro_c[1].type, macro_c[2].type, macro_c[3].type
if t1=="S" and t2=="T" and t3=="R" then
boundaries[macro_c[1].orig_idx] = true -- V.CCCV
elseif (t1=="T" and t2=="S" and t3=="T") or
(t1=="R" and t2=="S" and t3=="T") or
(t1=="T" and t2=="S" and t3=="R") or
(t1=="R" and t2=="T" and t3=="R") or
(t1=="T" and t2=="T" and t3=="R") or
(t1=="R" and t2=="S" and t3=="R") then
boundaries[macro_c[2].orig_idx] = true -- VC.CCV (includes RSR, e.g., konfliktas)
else
boundaries[macro_c[3].orig_idx] = true -- VCC.CV
end
elseif m_count == 4 then
-- Identify the 4-consonant pattern according to the 8 documented combinations
local pattern = macro_c[1].type .. macro_c[2].type .. macro_c[3].type .. macro_c[4].type
if pattern == "RSTR" or pattern == "TSTR" then
-- R.STR, T.STR -> VC.CCCV
boundaries[macro_c[2].orig_idx] = true
elseif pattern == "RTRR" or pattern == "TSTS" then
-- RTR.R, TST.S -> VCCC.CV
boundaries[macro_c[4].orig_idx] = true
else
-- RT.ST, RT.SR, RT.TR, ST.TR -> VCC.CCV
boundaries[macro_c[3].orig_idx] = true
end
elseif m_count >= 5 then
-- Fallback for >=5 logical consonant units
track('complex-consonant-cluster')
boundaries[macro_c[3].orig_idx] = true
end
end
end
-- Construct syllables
local secondary_stress_syllables = {}
for i, tok in ipairs(tokens) do
if boundaries[i] and #current_syl > 0 then
insert(syllables, current_syl)
-- If this is a secondary stress boundary, mark the NEXT syllable
if tok.type == "SECONDARY_STRESS_BOUNDARY" then
secondary_stress_syllables[#syllables + 1] = true
end
current_syl = {}
end
if tok.type ~= "BOUNDARY" and tok.type ~= "SECONDARY_STRESS_BOUNDARY" then
insert(current_syl, tok)
end
end
if #current_syl > 0 then insert(syllables, current_syl) end
-- Apply secondary stress marks
for idx, _ in pairs(secondary_stress_syllables) do
if syllables[idx] then
syllables[idx].secondary_stress = true
end
end
-- Apply initial secondary stress if present
if has_initial_secondary_stress and #syllables > 0 then
syllables[1].secondary_stress = true
end
return syllables
end
-- ============================================================================
-- SECTION 5: Base IPA Mapping & Stress Assignment
-- ============================================================================
local function is_mixed_diphthong(syl, v_idx)
local v_tok = syl[v_idx]
local lc_v = ulower(v_tok.char)
-- Strip silent 'i' for accurate length calculation
if v_tok.has_silent_i then
lc_v = mw.ustring.sub(lc_v, 2)
end
-- Digraphs (ie, uo, ai, au, etc.) or natively long vowels (ą, ę, ė, į, y, ų, ū)
-- do NOT form mixed diphthongs with subsequent resonants.
-- Only short a, e, i, u, o can form true mixed diphthongs.
if mw.ustring.len(lc_v) > 1 then return false end
local LONG_V = {["ą"]=true, ["ę"]=true, ["ė"]=true, ["į"]=true, ["y"]=true, ["ų"]=true, ["ū"]=true}
if LONG_V[lc_v] then return false end
-- V + R in the SAME syllable (coda)
if v_idx < #syl and syl[v_idx+1].type == "R" then
-- j and v are not considered for typical liquid semi-diphthongs length rules
if syl[v_idx+1].char ~= "j" and syl[v_idx+1].char ~= "v" then
return true
end
end
return false
end
local function map_base_phonetics(syllables)
local stress_prefix = nil
for _, syl in ipairs(syllables) do
local v_idx = nil
for i, tok in ipairs(syl) do
if tok.type == "V" then v_idx = i; break end
end
if v_idx then
local v_tok = syl[v_idx]
local v_char = v_tok.char
local lc_v_char = ulower(v_char)
local tone = v_tok.tone
local is_mixed = is_mixed_diphthong(syl, v_idx)
if is_mixed and not tone then
local r_tok = syl[v_idx+1]
if r_tok.tone then tone = r_tok.tone end
end
if v_tok.has_silent_i then
v_tok.silent_i = true
local actual_vowel = mw.ustring.sub(lc_v_char, 2)
v_tok.ipa = V_IPA[actual_vowel] or "ɐ"
lc_v_char = actual_vowel
else
-- Apply loan quality base default for 'o' and 'e'
v_tok.ipa = V_IPA[lc_v_char] or "ɐ"
if lc_v_char == "o" and v_tok.loan_quality then
v_tok.ipa = "ɔ"
end
if lc_v_char == "e" and v_tok.loan_quality then
v_tok.ipa = "e"
end
-- Automatically prepend glide 'j' to syllable-initial 'ie'
if lc_v_char == "ie" and v_idx == 1 then
v_tok.ipa = "jiɛ"
end
end
if tone then
local s_mark = ""
local v_base = mw.ustring.sub(lc_v_char, 1, 1)
if tone == "acute" then
s_mark = "¹ˈ"
if lc_v_char == "a" then
if is_mixed then v_tok.ipa = "ɑˑ" else v_tok.ipa = "ɑː" end
elseif lc_v_char == "e" then
-- Note: '^' modifier not allowed with acute 'é' as of current rules
-- This code path preserved for consistency
if is_mixed and v_tok.loan_quality then
v_tok.ipa = "ɛ" -- Loanword é in mixed diphthongs is short /ɛ/ without length
elseif is_mixed then
v_tok.ipa = "æˑ" -- Mixed diphthong: half-long
else
v_tok.ipa = "æː" -- Pure vowel: full-long
end
elseif lc_v_char == "ai" then v_tok.ipa = "ɑˑɪ"
elseif lc_v_char == "au" then v_tok.ipa = "ɑˑʊ"
elseif lc_v_char == "ei" then v_tok.ipa = "æˑɪ"
elseif lc_v_char == "eu" then v_tok.ipa = "æˑʊ"
elseif lc_v_char == "oi" then v_tok.ipa = "oˑɪ"
end
elseif tone == "grave" then
if is_mixed and (v_base == "i" or v_base == "u" or v_base == "e" or v_base == "o") then
s_mark = "¹ˈ"
elseif lc_v_char == "ui" or lc_v_char == "oi" or lc_v_char == "ou" or lc_v_char == "eu" then
s_mark = "¹ˈ"
else
s_mark = "ˈ"
end
-- Handle loanword variants for grave
if lc_v_char == "e" and v_tok.loan_quality then
v_tok.ipa = "e" -- è^ (loanword) → [e]
end
if lc_v_char == "o" then
v_tok.ipa = "ɔ" -- ò (always loanword) → [ɔ]
end
elseif tone == "tilde" then
s_mark = "²ˈ"
if lc_v_char == "ai" then v_tok.ipa = "ɐɪˑ"
elseif lc_v_char == "au" then v_tok.ipa = "ɒʊˑ"
elseif lc_v_char == "ei" then v_tok.ipa = "ɛɪˑ"
elseif lc_v_char == "eu" then v_tok.ipa = "ɛʊˑ"
elseif lc_v_char == "ui" then v_tok.ipa = "ʊɪˑ"
elseif lc_v_char == "a" then
if is_mixed then v_tok.ipa = "ɐ" else v_tok.ipa = "ɑː" end
elseif lc_v_char == "e" then
if is_mixed then v_tok.ipa = "ɛ" else v_tok.ipa = "æː" end
end
end
syl.stress = s_mark
end
-- Set base IPA for consonants (case-insensitive mapping)
for i, tok in ipairs(syl) do
if tok.type ~= "V" then
local lc_c = ulower(tok.char)
tok.ipa = CONS_IPA[lc_c] or lc_c
end
end
-- Handle tilde half-length on mixed diphthong coda
if tone == "tilde" and is_mixed then
local r_tok = syl[v_idx+1]
r_tok.half_long = true
end
else
-- Syllable with no vowel (e.g. leftover consonant)
for i, tok in ipairs(syl) do
tok.ipa = CONS_IPA[tok.char] or tok.char
end
end
end
end
-- ============================================================================
-- SECTION 6: Phonetic Polish Passes
-- ============================================================================
-- Pass 1: Palatalization Spreading (Right-to-Left)
local function apply_palatalization(syllables)
-- Flatten tokens for cross-syllable spreading
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
-- First pass: Apply softening marks (no spreading)
for i = 1, #flat_tokens do
local tok = flat_tokens[i]
if tok.softening_mark and tok.ipa ~= "" then
tok.ipa = tok.ipa .. "ʲ"
tok.is_palatalized = true
end
end
local spread_active = false
for i = #flat_tokens, 1, -1 do
local tok = flat_tokens[i]
local lc_char = ulower(tok.char)
if tok.type == "V" then
if tok.silent_i or FRONT_V[lc_char] then
spread_active = true
else
spread_active = false
end
elseif lc_char == "j" then
-- Preserve special IPA for final j (ɪ̯), don't override it
if tok.ipa ~= "ɪ̯" and tok.ipa ~= "" then
tok.ipa = "j"
end
tok.is_palatalized = true
spread_active = true
else
if spread_active then
-- Check if the palatalization is DIRECT (immediate contact with front V or j)
local is_direct = false
local nxt = flat_tokens[i+1]
if nxt then
local nxt_lc = ulower(nxt.char)
if (nxt.type == "V" and (nxt.silent_i or FRONT_V[nxt_lc])) or nxt_lc == "j" then
is_direct = true
end
end
tok.is_palatalized = true
if lc_char == "k" or lc_char == "g" then
if is_direct and tok.ipa ~= "" then
tok.ipa = tok.ipa .. "ʲ"
end
-- DO NOT set spread_active to false! k/g are transparent to spreading.
else
if tok.ipa ~= "" then
tok.ipa = tok.ipa .. "ʲ"
end
end
end
end
end
end
-- Pass 2: Voicing Assimilation (Right-to-Left)
local function apply_voicing_assimilation(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
local target_voice = nil
for i = #flat_tokens, 1, -1 do
local tok = flat_tokens[i]
if tok.type == "V" or tok.type == "R" then
target_voice = nil -- Blocked by vowels and resonants
elseif tok.type == "S" or tok.type == "T" then
if target_voice == nil then
-- Establish new assimilation target
target_voice = is_voiced(tok.char) and "voiced" or "voiceless"
else
-- Assimilate
local current_is_voiced = is_voiced(tok.char)
if target_voice == "voiced" and not current_is_voiced then
tok.char = VOICING_PAIRS[tok.char] or tok.char
elseif target_voice == "voiceless" and current_is_voiced then
tok.char = VOICING_PAIRS[tok.char] or tok.char
end
-- Update IPA based on new character, preserving palatalization
local new_ipa = CONS_IPA[tok.char] or tok.char
if tok.is_palatalized and tok.char ~= "k" and tok.char ~= "g" then
new_ipa = new_ipa .. "ʲ"
end
tok.ipa = new_ipa
end
end
end
end
-- Pass 3: Nasal Assimilation (n -> ŋ before k/g)
local function apply_nasal_assimilation(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
for i = 1, #flat_tokens - 1 do
local tok = flat_tokens[i]
-- Ignore vowels for lookahead
local lookahead = i + 1
while lookahead <= #flat_tokens and flat_tokens[lookahead].type == "V" do
if flat_tokens[lookahead].silent_i then
lookahead = lookahead + 1
else
break
end
end
local nxt = flat_tokens[lookahead]
if nxt and ulower(tok.char) == "n" then
local lc_nxt = ulower(nxt.char)
if lc_nxt == "k" or lc_nxt == "g" then
-- Check actual IPA string for direct palatalization
if mw.ustring.find(nxt.ipa, "ʲ") then
tok.ipa = "ŋʲ"
else
tok.ipa = "ŋ"
end
end
end
end
end
-- Pass 4: Vowel Quality Adjustments after Palatalization
local function adjust_vowel_quality(syllables)
for _, syl in ipairs(syllables) do
local has_palatal_onset = false
for i, tok in ipairs(syl) do
if tok.type ~= "V" and (tok.is_palatalized or ulower(tok.char) == "j") then
has_palatal_onset = true
elseif tok.type == "V" and has_palatal_onset then
local ipa = tok.ipa
-- Shift a/e quality
if ipa == "ɐ" then ipa = "ɛ"
elseif ipa == "ɑː" then ipa = "æː"
-- Diphthong shifts for iau / iai
elseif ipa == "ɒʊ" then ipa = "ɛʊ"
elseif ipa == "ɑˑʊ" then ipa = "æˑʊ"
elseif ipa == "ɒʊˑ" then ipa = "ɛʊˑ"
elseif ipa == "ɐɪ" then ipa = "ɛɪ"
elseif ipa == "ɑˑɪ" then ipa = "æˑɪ"
elseif ipa == "ɐɪˑ" then ipa = "ɛɪˑ"
end
-- Dynamic fronting for u/o/ɔ (adds U+031F)
-- Matches ONLY the first character (^) to avoid double fronting in uɔ
ipa = mw.ustring.gsub(ipa, "^([uʊoɔ])", "%1̟")
tok.ipa = ipa
has_palatal_onset = false
end
end
end
end
-- Pass 5: Terminal Devoicing (Word-final obstruent devoicing)
local function apply_terminal_devoicing(syllables)
if #syllables == 0 then return end
local last_syl = syllables[#syllables]
local last_tok = last_syl[#last_syl]
if last_tok and (last_tok.type == "S" or last_tok.type == "T") then
local lc_char = ulower(last_tok.char)
if is_voiced(lc_char) then
local devoiced = VOICING_PAIRS[lc_char]
if devoiced then
last_tok.char = devoiced
local new_ipa = CONS_IPA[devoiced] or devoiced
if last_tok.is_palatalized then new_ipa = new_ipa .. "ʲ" end
last_tok.ipa = new_ipa
end
end
end
end
-- Pass 6: Place Assimilation (Sibilant + Affricate)
-- When a sibilant meets an affricate, the sibilant adjusts its place of articulation:
-- s+č→š, z+dž→ž, š+c→s, ž+dz→z
local function apply_place_assimilation(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
local PLACE_ASSIM = {
["s"] = {["t͡ʃ"] = "ʃ"},
["z"] = {["d͡ʒ"] = "ʒ"},
["ʃ"] = {["t͡s"] = "s"},
["ʒ"] = {["d͡z"] = "z"},
}
for i = 1, #flat_tokens - 1 do
local tok = flat_tokens[i]
local nxt = flat_tokens[i+1]
if tok.type == "S" and nxt.type == "T" then
local rule = PLACE_ASSIM[tok.ipa]
if rule and rule[nxt.ipa] then
tok.ipa = rule[nxt.ipa]
end
end
end
end
-- Pass 7: Geminate Simplification (Double consonant reduction)
-- NOTE: Original geminates (rr, ll, etc.) are already merged in merge_geminate_consonants.
-- This pass handles geminates created by phonetic rules (e.g., voicing assimilation: td→dd).
-- Sibilants: any two sibilants merge into one (keeping the second)
-- Other consonants: only identical pairs merge
local function apply_geminate_simplification(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
local SIBILANTS = {["s"]=true, ["z"]=true, ["ʃ"]=true, ["ʒ"]=true}
for i = 1, #flat_tokens - 1 do
local tok = flat_tokens[i]
local nxt = flat_tokens[i+1]
local tok_is_cons = (tok.type == "T" or tok.type == "S" or tok.type == "R")
local nxt_is_cons = (nxt.type == "T" or nxt.type == "S" or nxt.type == "R")
if tok_is_cons and nxt_is_cons then
local tok_is_sib = SIBILANTS[tok.ipa]
local nxt_is_sib = SIBILANTS[nxt.ipa]
if tok_is_sib and nxt_is_sib then
tok.ipa = ""
elseif tok.ipa == nxt.ipa and tok.ipa ~= "" then
tok.ipa = ""
end
end
end
end
-- Pass 8: Final Consonant Vocalization (v → ʊ̯, j → ɪ̯)
-- Word-final v and j (without tilde) become non-syllabic vowels
-- Note: j with tilde is already converted to i with tilde in tokenization
local function apply_final_consonant_vocalization(syllables)
if #syllables == 0 then return end
local last_syl = syllables[#syllables]
local last_tok = last_syl[#last_syl]
if last_tok then
local lc_char = ulower(last_tok.char)
-- Final v → ʊ̯
if lc_char == "v" then
last_tok.ipa = "ʊ̯"
-- Keep type as "R" (resonant) for now - it's treated as non-syllabic
end
-- Final j (without tilde) → ɪ̯
-- Note: j with tilde is already converted to i in tokenization, so won't reach here
if lc_char == "j" and last_tok.tone ~= "tilde" then
last_tok.ipa = "ɪ̯"
-- Keep type as "R" (resonant) for now - it's treated as non-syllabic
end
end
end
-- ============================================================================
-- SECTION 7: Output Assembly
-- ============================================================================
-- Core IPA processor for a single word
local function process_single_word_ipa(word, pagename)
local tokens = tokenize(word, pagename)
merge_geminate_consonants(tokens)
local syllables = syllabify(tokens)
map_base_phonetics(syllables)
-- Phonetic Polish Pipeline
apply_terminal_devoicing(syllables)
apply_voicing_assimilation(syllables)
apply_place_assimilation(syllables)
apply_geminate_simplification(syllables)
apply_final_consonant_vocalization(syllables)
apply_palatalization(syllables)
apply_nasal_assimilation(syllables)
adjust_vowel_quality(syllables)
local parts = {}
for s_idx, syl in ipairs(syllables) do
local syl_str = ""
local hiatus_sep = ""
if s_idx > 1 then
local prev_syl = syllables[s_idx - 1]
local prev_last_tok = prev_syl[#prev_syl]
local curr_first_tok = syl[1]
local prev_ends_with_v = (prev_last_tok and prev_last_tok.type == "V" and not prev_last_tok.silent_i)
local curr_starts_with_v = (curr_first_tok and curr_first_tok.type == "V" and not curr_first_tok.silent_i)
if prev_ends_with_v and curr_starts_with_v then
local prev_v_char = ulower(prev_last_tok.char)
local curr_v_char = ulower(curr_first_tok.char)
-- Only handle ie special case
if curr_v_char == "ie" then
-- 'ie' has implicit 'j' from map_base_phonetics.
syl_str = ""
hiatus_sep = ""
else
-- Standard hiatus without glide insertion
syl_str = "."
hiatus_sep = ""
end
end
end
-- Check for conflict between primary and secondary stress
if syl.secondary_stress and syl.stress then
error("lt-pron: A syllable cannot have both primary stress (tone mark) and secondary stress (ˌ)")
end
-- Add stress markers (primary or secondary, mutually exclusive)
if syl.secondary_stress then
syl_str = syl_str .. "ˌ"
elseif syl.stress then
syl_str = syl_str .. syl.stress
end
syl_str = syl_str .. hiatus_sep
for _, tok in ipairs(syl) do
if tok.is_respelling then
if tok.is_optional then
syl_str = syl_str .. "(j)"
else
syl_str = syl_str .. tok.ipa
end
else
syl_str = syl_str .. tok.ipa
end
if tok.half_long then syl_str = syl_str .. "ˑ" end
end
insert(parts, syl_str)
end
return concat(parts, "")
end
-- Multi-word IPA assembler with liaison `‿`
local function to_ipa(term, provided_pagename)
-- Use provided pagename if available, otherwise try to extract from term
local pagename, clean_term
if provided_pagename then
pagename = provided_pagename
clean_term = term
else
pagename, clean_term = get_pagename(term)
end
term = clean_term
local words = mw.text.split(term, " ")
local processed_words = {}
for i, word in ipairs(words) do
if word ~= "" then
local w_ipa = process_single_word_ipa(word, pagename)
insert(processed_words, w_ipa)
end
end
local result = ""
for i, w_ipa in ipairs(processed_words) do
if i == 1 then
result = w_ipa
else
-- If the PREVIOUS word has NO stress mark, use liaison `‿`
if not mw.ustring.find(processed_words[i-1], "ˈ") then
result = result .. "‿" .. w_ipa
else
result = result .. " " .. w_ipa
end
end
end
return result
end
-- Rhyme Extractor
local IPA_VOWELS = "aɐɑæɛeəɪiɔoʊuɒɜ"
local function get_rhyme(ipa)
-- Remove liaison and spaces before rhyme calculation
local clean_ipa = mw.ustring.gsub(ipa, "[‿ ]", "")
-- Search for the last stress mark from right to left
local last_stress_pos = nil
for i = mw.ustring.len(clean_ipa), 1, -1 do
local char = mw.ustring.sub(clean_ipa, i, i)
if char == "ˈ" then
-- Skip superscript if present
if i > 1 then
local prev = mw.ustring.sub(clean_ipa, i - 1, i - 1)
if prev == "¹" or prev == "²" then
last_stress_pos = i -- Point to ˈ, skip superscript
else
last_stress_pos = i
end
else
last_stress_pos = i
end
break
end
end
if not last_stress_pos then return nil end
-- Extract content after the stress mark
local after = mw.ustring.sub(clean_ipa, last_stress_pos + 1)
-- Remove hiatus dots for rhyme grouping
after = mw.ustring.gsub(after, "%.", "")
-- Find first vowel position (skip onset consonants)
local vstart = mw.ustring.match(after, "()[" .. IPA_VOWELS .. "]")
if vstart then
return mw.ustring.sub(after, vstart)
end
return after
end
-- Hyphenation generator (supports multi-word phrases)
local function get_hyphenation(term, provided_pagename)
-- Use provided pagename if available, otherwise try to extract from term
local pagename, clean_term
if provided_pagename then
pagename = provided_pagename
clean_term = term
else
pagename, clean_term = get_pagename(term)
end
term = clean_term
local words = mw.text.split(term, " ")
local all_word_parts = {}
for _, word in ipairs(words) do
if word ~= "" then
local tokens = tokenize(word, pagename)
local syllables = syllabify(tokens)
local parts = {}
for _, syl in ipairs(syllables) do
local text = ""
for _, tok in ipairs(syl) do
-- Skip respelling characters (original_char == "-" means not in orthography)
if tok.original_char ~= "-" then
-- Re-attach original tone visually for display
local t_mark = ""
if tok.tone == "acute" then t_mark = ACUTE
elseif tok.tone == "grave" then t_mark = GRAVE
elseif tok.tone == "tilde" then t_mark = TILDE
end
-- Use original_char if set (e.g., j̃ → i internally but j in display)
-- Otherwise use tok.char
local disp_char = tok.original_char or tok.char
-- Restore original orthography for ɔ
if disp_char == "ɔ" then disp_char = "o" end
if disp_char == "Ɔ" then disp_char = "O" end
-- Handle tone placement for diphthongs
if tok.tone_position then
-- Diphthong: place tone on the specified vowel
local char_len = mw.ustring.len(disp_char)
if char_len == 2 then
-- Two-character diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2
else
text = text .. v1 .. v2 .. t_mark
end
elseif char_len == 3 then
-- Three-character (silent i) diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
local v3 = mw.ustring.sub(disp_char, 3, 3)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2 .. v3
elseif tok.tone_position == 2 then
text = text .. v1 .. v2 .. t_mark .. v3
else
text = text .. v1 .. v2 .. v3 .. t_mark
end
end
else
-- Single vowel or consonant: tone goes after the character
text = text .. disp_char .. t_mark
end
end
end
parts[#parts + 1] = makeDisplayText(text)
end
insert(all_word_parts, concat(parts, "‧")) -- Use ‧ instead of standard - internally to preserve word boundaries
end
end
-- Build combined string for display (preserves correct formatting)
local combined_string = concat(all_word_parts, " ")
local final_parts = {}
for _, piece in ipairs(mw.text.split(combined_string, "‧")) do
insert(final_parts, piece)
end
-- Calculate actual syllable count (for correct num_syl)
local syllable_count = 0
for _, word_part in ipairs(all_word_parts) do
local word_syls = mw.text.split(word_part, "‧")
syllable_count = syllable_count + #word_syls
end
-- Store actual syllable count as a field (since __len doesn't work on tables in Lua 5.1)
final_parts.syllable_count = syllable_count
return final_parts
end
-- ============================================================================
-- SECTION 7.5: Conjugation Module Support Functions
-- ============================================================================
-- Export: Get syllables as string array with accents
function export.get_syllables(term)
local pagename, clean_term = get_pagename(term)
term = clean_term
local tokens = tokenize(term, pagename)
local syllables = syllabify(tokens)
local result = {}
for _, syl in ipairs(syllables) do
local text = ""
for _, tok in ipairs(syl) do
-- Skip respelling glides in syllable output
if not tok.is_respelling then
-- Re-attach original tone
local t_mark = ""
if tok.tone == "acute" then t_mark = ACUTE
elseif tok.tone == "grave" then t_mark = GRAVE
elseif tok.tone == "tilde" then t_mark = TILDE
end
-- Restore original orthography for ɔ
local disp_char = tok.char
if disp_char == "ɔ" then disp_char = "o" end
if disp_char == "Ɔ" then disp_char = "O" end
-- Handle tone placement for diphthongs
if tok.tone_position then
-- Diphthong: place tone on the specified vowel
local char_len = mw.ustring.len(disp_char)
if char_len == 2 then
-- Two-character diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2
else
text = text .. v1 .. v2 .. t_mark
end
elseif char_len == 3 then
-- Three-character (silent i) diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
local v3 = mw.ustring.sub(disp_char, 3, 3)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2 .. v3
elseif tok.tone_position == 2 then
text = text .. v1 .. v2 .. t_mark .. v3
else
text = text .. v1 .. v2 .. v3 .. t_mark
end
end
else
-- Single vowel or consonant: tone goes after the character
text = text .. disp_char .. t_mark
end
end
end
-- Return NFC format with proper dotabove insertion
insert(result, makeDisplayText(text))
end
return result
end
-- Export: Check if a syllable is heavy or light
function export.is_heavy_syllable(syllable)
local pagename, clean_syllable = get_pagename(syllable)
syllable = clean_syllable
-- Validate single syllable
local tokens = tokenize(syllable, pagename)
local syllables = syllabify(tokens)
if #syllables ~= 1 then
error("is_heavy_syllable: input must be a single syllable, got " .. #syllables .. " syllables")
end
local syl = syllables[1]
-- Find the vowel token
local v_idx = nil
for i, tok in ipairs(syl) do
if tok.type == "V" then
v_idx = i
break
end
end
if not v_idx then
error("is_heavy_syllable: no vowel found in syllable")
end
local v_tok = syl[v_idx]
local lc_v = ulower(v_tok.char)
-- Handle silent i (e.g., "iau" where i is silent)
if v_tok.has_silent_i then
lc_v = mw.ustring.sub(lc_v, 2)
end
-- Long vowels (inherently long, regardless of accent)
local LONG_VOWELS = {
["ą"]=true, ["ę"]=true, ["ė"]=true, ["į"]=true, ["y"]=true, ["ų"]=true, ["ū"]=true,
["o"]=true, ["ɔ"]=true -- o/ɔ are always long (except ò, but we treat all o as long)
}
if LONG_VOWELS[lc_v] then
return true
end
-- Diphthongs (length > 1)
if mw.ustring.len(lc_v) > 1 then
return true
end
-- Mixed diphthongs: short vowel + liquid in coda position
local SHORT_VOWELS = {["a"]=true, ["e"]=true, ["i"]=true, ["u"]=true}
if SHORT_VOWELS[lc_v] and v_idx < #syl then
local next_tok = syl[v_idx + 1]
-- Liquid in coda (not j or v, which don't form mixed diphthongs)
if next_tok.type == "R" and next_tok.char ~= "j" and next_tok.char ~= "v" then
return true
end
end
-- Otherwise, it's a light syllable
return false
end
-- Export: Change accent of a syllable
function export.change_accent(syllable, target_accent)
local pagename, clean_syllable = get_pagename(syllable)
syllable = clean_syllable
-- Validate target_accent parameter
local VALID_ACCENTS = {acute=true, tilde=true, grave=true, none=true}
if not VALID_ACCENTS[target_accent] then
error("change_accent: invalid target_accent '" .. tostring(target_accent) ..
"', must be 'acute', 'tilde', 'grave', or 'none'")
end
-- Validate single syllable
local tokens = tokenize(syllable, pagename)
local syllables = syllabify(tokens)
if #syllables ~= 1 then
error("change_accent: input must be a single syllable, got " .. #syllables .. " syllables")
end
-- Remove all existing accents
local clean = remove_all_accents(syllable)
-- If target is 'none', return clean syllable
if target_accent == "none" then
return clean
end
-- Re-tokenize the clean syllable to analyze structure
local clean_tokens = tokenize(clean, pagename)
local clean_syllables = syllabify(clean_tokens)
local syl = clean_syllables[1]
-- Find vowel position and extract vowel part
local onset = ""
local vowel_part = ""
local coda = ""
local v_idx = nil
for i, tok in ipairs(syl) do
if tok.type == "V" then
v_idx = i
break
else
onset = onset .. tok.char
end
end
if not v_idx then
error("change_accent: no vowel found in syllable")
end
local v_tok = syl[v_idx]
vowel_part = ulower(v_tok.char)
-- Handle silent i
if v_tok.has_silent_i then
vowel_part = mw.ustring.sub(vowel_part, 2)
end
-- Check if this is a mixed diphthong
local is_mixed = false
if v_idx < #syl then
local next_tok = syl[v_idx + 1]
if next_tok.type == "R" and next_tok.char ~= "j" and next_tok.char ~= "v" then
-- Mixed diphthong: vowel + liquid
vowel_part = vowel_part .. ulower(next_tok.char)
is_mixed = true
-- Collect remaining coda after the liquid
for i = v_idx + 2, #syl do
coda = coda .. syl[i].char
end
else
-- Regular syllable: collect all coda
for i = v_idx + 1, #syl do
coda = coda .. syl[i].char
end
end
end
-- Look up the accented form in ACCENT_PAIRS
if not ACCENT_PAIRS[vowel_part] then
error("change_accent: vowel/diphthong '" .. vowel_part .. "' not found in accent pairs table")
end
local accented_vowel = ACCENT_PAIRS[vowel_part][target_accent]
if not accented_vowel then
error("change_accent: accent type '" .. target_accent ..
"' is not allowed for vowel/diphthong '" .. vowel_part .. "'")
end
-- Reconstruct the syllable with new accent (in NFD format)
local result = onset .. accented_vowel .. coda
return result
end
-- ============================================================================
-- SECTION 8: Module Exports & Template Formatting (Preserved)
-- ============================================================================
local q_spec = {store = "insert-flattened", type = "qualifier"}
local a_spec = {store = "insert-flattened", type = "labels"}
local ref_spec = {store = "insert-flattened", item_dest = "refs", type = "references"}
-- Generate audio object, supporting file#caption syntax
local function generate_audio_obj(arg)
local file, caption = arg:match("^(.-)%s*#%s*(.*)$")
file = file or arg
return {file = file, caption = caption}
end
-- Parse rhyme specification with optional syllable count
local function parse_rhyme(arg, parse_err)
local function generate_obj(term)
return {rhyme = term}
end
local param_mods = {
s = {
item_dest = "num_syl",
type = "number",
sublist = true,
},
}
-- Add q/qq/a/aa/ref support if inline modifiers are present
if arg:find("<") then
param_mods.q = q_spec
param_mods.qq = q_spec
param_mods.a = a_spec
param_mods.aa = a_spec
param_mods.ref = ref_spec
end
return require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = param_mods,
generate_obj = generate_obj,
parse_err = parse_err,
splitchar = ",",
})
end
-- Parse hyphenation specification (dot-separated syllables)
local function parse_hyph(arg, parse_err)
local function generate_obj(term)
local parts = mw.text.split(term, "%.")
return {hyph = parts, syllabification = term}
end
local param_mods = {}
-- Add q/qq/a/aa/ref support if inline modifiers are present
if arg:find("<") then
param_mods.q = q_spec
param_mods.qq = q_spec
param_mods.a = a_spec
param_mods.aa = a_spec
param_mods.ref = ref_spec
end
return require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = param_mods,
generate_obj = generate_obj,
parse_err = parse_err,
splitchar = ",",
})
end
-- Parse homophone specification
local function parse_homophone(arg, parse_err)
local function generate_obj(term)
return {term = term}
end
local param_mods = {
t = {item_dest = "gloss"},
gloss = {},
pos = {},
alt = {},
lit = {},
id = {},
g = {
item_dest = "genders",
sublist = true,
},
}
-- Add q/qq/a/aa/ref support if inline modifiers are present
if arg:find("<") then
param_mods.q = q_spec
param_mods.qq = q_spec
param_mods.a = a_spec
param_mods.aa = a_spec
param_mods.ref = ref_spec
end
return require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = param_mods,
generate_obj = generate_obj,
parse_err = parse_err,
splitchar = ",",
})
end
local audio_nested_mods = {
["a"] = a_spec, ["aa"] = a_spec,
["q"] = q_spec, ["qq"] = q_spec,
["text"] = {},
["IPA"] = {sublist = true},
["t"] = {item_dest = "gloss"},
["gloss"] = {},
["pos"] = {},
["lit"] = {},
["g"] = {
item_dest = "genders",
sublist = true,
},
}
local function parse_one_term(raw, parse_err)
if not raw:find("<") then
return {term = raw, audio_list = {}, rhyme_list = {}, hyph_list = {}, pagename = nil}
end
-- Extract base spelling before parse_inline_modifiers
local pagename = nil
if raw:find("<base:") then
pagename = raw:match("<base:([^>]+)>")
raw = raw:gsub("<base:[^>]+>", "")
end
local parsed = require(parse_util_module).parse_inline_modifiers(raw, {
param_mods = {
["q"] = q_spec, ["qq"] = q_spec,
["a"] = a_spec, ["aa"] = a_spec,
["ref"] = ref_spec,
["audio"] = {
store = "insert",
item_dest = "audio_list",
convert = function(arg, perr)
if arg:find("<") then
local parsed_audio = require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = audio_nested_mods,
generate_obj = generate_audio_obj,
parse_err = perr,
})
parsed_audio.lang = get_lang()
local textobj = require(audio_module).construct_audio_textobj(parsed_audio)
parsed_audio.text = textobj
parsed_audio.gloss = nil
parsed_audio.pos = nil
parsed_audio.lit = nil
parsed_audio.genders = nil
return parsed_audio
end
local audio_obj = generate_audio_obj(arg)
audio_obj.lang = get_lang()
local textobj = require(audio_module).construct_audio_textobj(audio_obj)
audio_obj.text = textobj
return audio_obj
end,
},
["rhyme"] = {
store = "insert-flattened",
item_dest = "rhyme_list",
convert = parse_rhyme,
},
["hyph"] = {
store = "insert-flattened",
item_dest = "hyph_list",
convert = parse_hyph,
},
["hmp"] = {
store = "insert-flattened",
item_dest = "hmp_list",
convert = parse_homophone,
},
},
generate_obj = function(t)
return {term = t, audio_list = {}, rhyme_list = {}, hyph_list = {}, hmp_list = {}}
end,
parse_err = parse_err,
})
parsed.audio_list = parsed.audio_list or {}
parsed.rhyme_list = parsed.rhyme_list or {}
parsed.hyph_list = parsed.hyph_list or {}
parsed.hmp_list = parsed.hmp_list or {}
parsed.pagename = pagename
return parsed
end
-- Format rhyme objects with qualifiers
local function fmt_rhyme(rhyme_objs, bullet)
if not rhyme_objs or #rhyme_objs == 0 then return nil end
local rhyme_data = {}
for _, robj in ipairs(rhyme_objs) do
insert(rhyme_data, {
rhyme = robj.rhyme,
num_syl = robj.num_syl,
q = robj.q,
qq = robj.qq,
a = robj.a,
aa = robj.aa,
})
end
return bullet .. require(rhymes_module).format_rhymes({
lang = get_lang(),
rhymes = rhyme_data
})
end
-- Format hyphenation objects with qualifiers
local function fmt_hyph(hyph_objs, bullet)
if not hyph_objs or #hyph_objs == 0 then return nil end
local hyph_data = {}
for _, hobj in ipairs(hyph_objs) do
insert(hyph_data, {
hyph = hobj.hyph,
q = hobj.q,
qq = hobj.qq,
a = hobj.a,
aa = hobj.aa,
})
end
return bullet .. require(hyphenation_module).format_hyphenations({
lang = get_lang(),
hyphs = hyph_data,
caption = "音節化"
})
end
-- Format audio object
local function fmt_audio(audio_obj, bullet)
return bullet .. require(audio_module).format_audio(audio_obj)
end
-- Format homophone objects with qualifiers
local function fmt_hmp(hmp_objs, bullet)
if not hmp_objs or #hmp_objs == 0 then return nil end
return bullet .. require(homophones_module).format_homophones({
lang = get_lang(),
homophones = hmp_objs,
})
end
function export.show(frame)
local parargs = frame:getParent().args
local args = require(parameters_module).process(parargs, {
[1] = {default = "nãmas"},
["bullets"] = {type = "number", default = 1},
})
local input = args[1]
local nb = args.bullets
local b1 = string.rep("*", nb) .. " "
local b2 = string.rep("*", nb + 1) .. " "
local raw_terms = require(parse_util_module).split_escaping(input, ",")
local parsed_terms = {}
for i, raw in ipairs(raw_terms) do
raw = raw:match("^%s*(.-)%s*$")
local pt = parse_one_term(raw, function(msg)
error("lt-pron: " .. msg .. " (term " .. i .. ")")
end)
parsed_terms[#parsed_terms + 1] = pt
end
m_IPA = m_IPA or require("Module:IPA")
local text_parts = {}
for _, pt in ipairs(parsed_terms) do
-- Determine bullet level: same level as IPA for single pronunciation, indented for multiple
local content_bullet = (#parsed_terms == 1) and b1 or b2
-- Generate IPA
local ipa_str = to_ipa(pt.term, pt.pagename)
-- Handle rhyme: manual override, suppression, or auto-generation
local rhyme_objs = nil
local suppress_rhyme = false
if #pt.rhyme_list > 0 then
for _, robj in ipairs(pt.rhyme_list) do
if robj.rhyme == "-" then
suppress_rhyme = true
break
end
end
if not suppress_rhyme then
rhyme_objs = {}
for _, robj in ipairs(pt.rhyme_list) do
-- If num_syl not specified, try to get from auto-generated hyphenation
if not robj.num_syl then
local auto_hyph = get_hyphenation(pt.term, pt.pagename)
if auto_hyph and #auto_hyph > 0 then
-- Use syllable_count field if available (for multi-word phrases), otherwise use array length
local syl_count = auto_hyph.syllable_count or #auto_hyph
robj.num_syl = {syl_count}
end
end
insert(rhyme_objs, robj)
end
end
else
-- Auto-generate rhyme (skip if term ends with -)
if not pt.term:match("%-$") then
local rhyme_str = get_rhyme(ipa_str)
if rhyme_str then
local auto_hyph = get_hyphenation(pt.term, pt.pagename)
-- Use syllable_count field if available (for multi-word phrases), otherwise use array length
local num_syl = (auto_hyph and #auto_hyph > 0) and {auto_hyph.syllable_count or #auto_hyph} or nil
rhyme_objs = {{rhyme = rhyme_str, num_syl = num_syl}}
end
end
end
-- Handle hyphenation: manual override, suppression, or auto-generation
local hyph_objs = nil
local suppress_hyph = false
if #pt.hyph_list > 0 then
for _, hobj in ipairs(pt.hyph_list) do
if hobj.syllabification == "-" then
suppress_hyph = true
break
end
end
if not suppress_hyph then
hyph_objs = pt.hyph_list
end
else
-- Auto-generate hyphenation
local auto_hyph = get_hyphenation(pt.term, pt.pagename)
if auto_hyph and #auto_hyph > 0 then
hyph_objs = {{hyph = auto_hyph, syllabification = concat(auto_hyph, ".")}}
end
end
-- Format IPA with qualifiers and references
local ipa_item = {pron = "[" .. ipa_str .. "]"}
if pt.q then ipa_item.q = pt.q end
if pt.qq then ipa_item.qq = pt.qq end
if pt.a then ipa_item.a = pt.a end
if pt.aa then ipa_item.aa = pt.aa end
if pt.refs then ipa_item.refs = pt.refs end
text_parts[#text_parts + 1] = b1 .. m_IPA.format_IPA_full({
lang = get_lang(),
items = {ipa_item}
})
-- Audio
for _, aud in ipairs(pt.audio_list or {}) do
text_parts[#text_parts + 1] = fmt_audio(aud, content_bullet)
end
-- Rhyme
if rhyme_objs then
local r = fmt_rhyme(rhyme_objs, content_bullet)
if r then text_parts[#text_parts + 1] = r end
end
-- Hyphenation
if hyph_objs then
local h = fmt_hyph(hyph_objs, content_bullet)
if h then text_parts[#text_parts + 1] = h end
end
-- Homophones
if pt.hmp_list and #pt.hmp_list > 0 then
local hmp = fmt_hmp(pt.hmp_list, content_bullet)
if hmp then text_parts[#text_parts + 1] = hmp end
end
end
return concat(text_parts, "\n")
end
export.toIPA = to_ipa
export.hyphenate = get_hyphenation
export.rhyme = get_rhyme
return export
07q43hcqw50yzjt0ldmffjgv4bfjc8k
9753781
9753779
2026-05-06T09:13:17Z
TongcyDai
53191
9753781
Scribunto
text/plain
--[==[
Backend for {{lt-pr}}: IPA, hyphenation, and rhyme generation.
Author: TongcyDai
]==]
local export = {}
local m_debug = require("Module:debug")
local m_str = require("Module:string utilities")
local m_langdata = require("Module:languages/data")
local u = m_str.char
local ulower = m_str.lower
local usub = m_str.sub
local ulen = m_str.len
-- Accent mark constants
local c = m_langdata.chars
local GRAVE = c.grave -- U+0300
local ACUTE = c.acute -- U+0301
local TILDE = c.tilde -- U+0303
-- Lazy-loaded external modules
local m_IPA
local audio_module = "Module:audio"
local homophones_module = "Module:homophones"
local hyphenation_module = "Module:hyphenation"
local rhymes_module = "Module:rhymes"
local parameters_module = "Module:parameters"
local parse_util_module = "Module:parse utilities"
local concat = table.concat
local insert = table.insert
local lang_obj
local function get_lang()
if not lang_obj then
lang_obj = require("Module:languages").getByCode("lt")
end
return lang_obj
end
local function track(reason)
m_debug.track("lt-pron/" .. reason)
end
-- ============================================================================
-- SECTION 1: Orthography & Phonology Definitions
-- ============================================================================
-- Suffix table for automatic phonetic adjustments (currently disabled)
-- Exact matching lists (must include precomposed normalized tone markers)
--[[
local SUFFIX_LOAN = {
["fòbas"]=true, ["fòbė"]=true, ["fòbija"]=true, ["fònas"]=true, ["fònė"]=true,
["lògas"]=true, ["lògija"]=true, ["skòpas"]=true
}
--]]
-- Consonant classes for syllabification (Sonority Hierarchy)
local CLASS = {
R = {["l"]=true, ["m"]=true, ["n"]=true, ["r"]=true, ["v"]=true, ["j"]=true},
S = {["s"]=true, ["z"]=true, ["š"]=true, ["ž"]=true, ["f"]=true, ["x"]=true, ["h"]=true, ["ch"]=true},
T = {["p"]=true, ["b"]=true, ["t"]=true, ["d"]=true, ["k"]=true, ["g"]=true, ["c"]=true, ["dz"]=true, ["č"]=true, ["dž"]=true}
}
-- Front vowels trigger palatalization
local FRONT_V = {
["e"]=true, ["ę"]=true, ["ė"]=true, ["i"]=true, ["į"]=true, ["y"]=true, ["ie"]=true, ["ei"]=true, ["eu"]=true
}
-- Vowel -> Base IPA mapping (Unstressed short/inherent)
local V_IPA = {
["a"] = "ɐ", ["ą"] = "ɑː", ["e"] = "ɛ", ["ę"] = "æː", ["ė"] = "eː",
["i"] = "ɪ", ["į"] = "iː", ["y"] = "iː",
["u"] = "ʊ", ["ų"] = "uː", ["ū"] = "uː", ["o"] = "oː",
["ie"] = "iɛ", ["uo"] = "uɔ",
-- Unstressed simple diphthongs
["ai"] = "ɐɪ", ["au"] = "ɒʊ", ["ei"] = "ɛɪ", ["eu"] = "ɛʊ",
["ui"] = "ʊɪ", ["oi"] = "ɔɪ", ["ou"] = "ɔʊ"
}
-- Consonant -> Base IPA mapping (Unpalatalized)
local CONS_IPA = {
["b"] = "b", ["c"] = "t͡s", ["č"] = "t͡ʃ", ["d"] = "d",
["dz"] = "d͡z", ["dž"] = "d͡ʒ", ["ch"] = "x",
["f"] = "f", ["g"] = "ɡ", ["h"] = "ɣ", ["j"] = "j",
["k"] = "k", ["l"] = "l", ["m"] = "m", ["n"] = "n",
["p"] = "p", ["r"] = "r", ["s"] = "s", ["š"] = "ʃ",
["t"] = "t", ["v"] = "ʋ", ["z"] = "z", ["ž"] = "ʒ",
}
-- Voicing pairs for Voicing Assimilation
local VOICING_PAIRS = {
["p"]="b", ["b"]="p", ["t"]="d", ["d"]="t", ["k"]="g", ["g"]="k",
["c"]="dz", ["dz"]="c", ["č"]="dž", ["dž"]="č",
["s"]="z", ["z"]="s", ["š"]="ž", ["ž"]="š", ["x"]="ɣ", ["ɣ"]="x"
}
local function is_voiced(c)
local voiced_set = {["b"]=true, ["d"]=true, ["g"]=true, ["dz"]=true, ["dž"]=true, ["z"]=true, ["ž"]=true, ["ɣ"]=true}
return voiced_set[c] == true
end
-- Accent pairs for conjugation module support
-- Maps base vowel/diphthong to accented forms (falling/rising)
local ACCENT_PAIRS = {
-- Long vowels (acute or tilde)
["ą"] = {acute="ą"..ACUTE, tilde="ą"..TILDE},
["ę"] = {acute="ę"..ACUTE, tilde="ę"..TILDE},
["ė"] = {acute="ė"..ACUTE, tilde="ė"..TILDE},
["y"] = {acute="y"..ACUTE, tilde="y"..TILDE},
["į"] = {acute="į"..ACUTE, tilde="į"..TILDE},
["ū"] = {acute="ū"..ACUTE, tilde="ū"..TILDE},
["ų"] = {acute="ų"..ACUTE, tilde="ų"..TILDE},
-- a/e can be short (grave) or long (tilde)
["a"] = {grave="a"..GRAVE, tilde="a"..TILDE},
["e"] = {grave="e"..GRAVE, tilde="e"..TILDE},
-- o: ó/õ/o are long, ò is short
["o"] = {acute="o"..ACUTE, grave="o"..GRAVE, tilde="o"..TILDE},
-- Short vowels i/u (only grave)
["i"] = {grave="i"..GRAVE},
["u"] = {grave="u"..GRAVE},
-- Simple diphthongs
["ai"] = {acute="a"..ACUTE.."i", tilde="a".."i"..TILDE},
["au"] = {acute="a"..ACUTE.."u", tilde="a".."u"..TILDE},
["ei"] = {acute="e"..ACUTE.."i", tilde="e".."i"..TILDE},
["ui"] = {grave="u"..GRAVE.."i", tilde="u".."i"..TILDE},
-- Complex diphthongs
["ie"] = {acute="i"..ACUTE.."e", tilde="i".."e"..TILDE},
["uo"] = {acute="u"..ACUTE.."o", tilde="u".."o"..TILDE},
-- Mixed diphthongs (a series - acute/tilde)
["al"] = {acute="a"..ACUTE.."l", tilde="a".."l"..TILDE},
["am"] = {acute="a"..ACUTE.."m", tilde="a".."m"..TILDE},
["an"] = {acute="a"..ACUTE.."n", tilde="a".."n"..TILDE},
["ar"] = {acute="a"..ACUTE.."r", tilde="a".."r"..TILDE},
-- Mixed diphthongs (e series - acute/grave/tilde, grave for foreign)
["el"] = {acute="e"..ACUTE.."l", grave="e"..GRAVE.."l", tilde="e".."l"..TILDE},
["em"] = {acute="e"..ACUTE.."m", grave="e"..GRAVE.."m", tilde="e".."m"..TILDE},
["en"] = {acute="e"..ACUTE.."n", grave="e"..GRAVE.."n", tilde="e".."n"..TILDE},
["er"] = {acute="e"..ACUTE.."r", grave="e"..GRAVE.."r", tilde="e".."r"..TILDE},
-- Mixed diphthongs (i series - grave/tilde)
["il"] = {grave="i"..GRAVE.."l", tilde="i".."l"..TILDE},
["im"] = {grave="i"..GRAVE.."m", tilde="i".."m"..TILDE},
["in"] = {grave="i"..GRAVE.."n", tilde="i".."n"..TILDE},
["ir"] = {grave="i"..GRAVE.."r", tilde="i".."r"..TILDE},
-- Mixed diphthongs (u series - grave/tilde)
["ul"] = {grave="u"..GRAVE.."l", tilde="u".."l"..TILDE},
["um"] = {grave="u"..GRAVE.."m", tilde="u".."m"..TILDE},
["un"] = {grave="u"..GRAVE.."n", tilde="u".."n"..TILDE},
["ur"] = {grave="u"..GRAVE.."r", tilde="u".."r"..TILDE},
-- Foreign diphthongs (grave only)
["eu"] = {grave="e"..GRAVE.."u"},
["oi"] = {grave="o"..GRAVE.."i"},
["ou"] = {grave="o"..GRAVE.."u"},
["ol"] = {grave="o"..GRAVE.."l"},
["om"] = {grave="o"..GRAVE.."m"},
["on"] = {grave="o"..GRAVE.."n"},
["or"] = {grave="o"..GRAVE.."r"},
}
-- ============================================================================
-- SECTION 2: Lexical Normalization (Avoid NFD destruction)
-- ============================================================================
-- Helper: Remove all accent marks from text (moved here for early use)
local function remove_all_accents(text)
-- Convert to NFD to separate base characters from combining marks
local nfd = mw.ustring.toNFD(text)
-- Remove combining accent marks (grave, acute, tilde)
local clean = mw.ustring.gsub(nfd, "["..GRAVE..ACUTE..TILDE.."]", "")
-- Return as NFD (don't convert back to NFC)
return clean
end
-- Extract pagename from input or load from headword data
local function get_pagename(input)
-- Check for manual override: <base:xxx>
local manual = input:match("<base:([^>]+)>")
if manual then
return manual, input:gsub("<base:[^>]+>", "")
end
-- Load from headword data
local success, data = pcall(function()
return mw.loadData("Module:headword/data").pagename
end)
if success and data then
return data, input
end
return nil, input
end
-- Identify respelling j and (j) positions
local function identify_respelling_glides(input_with_accents, pagename)
if not pagename then
return {} -- No pagename, no respelling detection
end
-- Remove all accents from input
local input_clean = remove_all_accents(input_with_accents)
-- Remove special markers (^, .)
input_clean = mw.ustring.gsub(input_clean, "[%^%.]", "")
-- Remove <base:...> if present
input_clean = mw.ustring.gsub(input_clean, "<base:[^>]+>", "")
-- Remove literal ˌ
input_clean = mw.ustring.gsub(input_clean, "ˌ", "")
-- Remove softening mark ʼ
input_clean = mw.ustring.gsub(input_clean, "ʼ", "")
-- Remove (j) markers - replace with j for comparison
input_clean = mw.ustring.gsub(input_clean, "%(j%)", "j")
-- Remove spaces for comparison
input_clean = mw.ustring.gsub(input_clean, " ", "")
-- Convert to NFC for comparison
input_clean = mw.ustring.toNFC(input_clean)
-- Normalize pagename (lowercase, remove spaces)
local pagename_clean = ulower(pagename)
pagename_clean = mw.ustring.gsub(pagename_clean, " ", "")
-- Find respelling j positions (j in input but not in pagename)
local respelling_positions = {}
local input_idx = 1
local page_idx = 1
while input_idx <= mw.ustring.len(input_clean) do
local input_char = mw.ustring.sub(input_clean, input_idx, input_idx)
if input_char == "j" then
-- Check if this j exists in pagename at corresponding position
local page_char = page_idx <= mw.ustring.len(pagename_clean)
and mw.ustring.sub(pagename_clean, page_idx, page_idx)
if page_char ~= "j" then
-- This is a respelling j
insert(respelling_positions, input_idx)
input_idx = input_idx + 1
-- Don't advance page_idx
else
-- This is an original j
input_idx = input_idx + 1
page_idx = page_idx + 1
end
else
input_idx = input_idx + 1
page_idx = page_idx + 1
end
end
return respelling_positions
end
-- Safe mapping to extract tones without destroying precomposed characters
local TONE_MAP = {
["á"]="a,acute", ["à"]="a,grave", ["ã"]="a,tilde",
["é"]="e,acute", ["è"]="e,grave", ["ẽ"]="e,tilde",
["í"]="i,acute", ["ì"]="i,grave", ["ĩ"]="i,tilde",
["ý"]="y,acute", ["ỳ"]="y,grave", ["ỹ"]="y,tilde",
["ú"]="u,acute", ["ù"]="u,grave", ["ũ"]="u,tilde",
["ó"]="o,acute", ["ò"]="o,grave", ["õ"]="o,tilde",
-- Precomposed vowels with macrons/ogoneks + tones (represented here via standard combinations)
["ą́"]="ą,acute", ["ą̃"]="ą,tilde",
["ę́"]="ę,acute", ["ę̃"]="ę,tilde",
["ė́"]="ė,acute", ["ė̃"]="ė,tilde",
["į́"]="į,acute", ["į̃"]="į,tilde",
["ų́"]="ų,acute", ["ų̃"]="ų,tilde",
["ū́"]="ū,acute", ["ū̃"]="ū,tilde",
-- Tilde on liquids (for semi-diphthongs)
["l̃"]="l,tilde", ["m̃"]="m,tilde", ["ñ"]="n,tilde", ["r̃"]="r,tilde",
["j̃"]="j,tilde"
}
-- Resolves NFD back to safe representation if input was somehow NFD
local function safe_normalize(text)
local INVALID_CHARS = {
[0xE001] = { replace = "ą́" },
[0xE003] = { replace = "ą̃" },
[0xE005] = { replace = "ę́" },
[0xE007] = { replace = "ę̃" },
[0xE009] = { replace = "ė́" },
[0xE00B] = { replace = "ė̃" },
[0xE00C] = { replace = "i̇̀" },
[0xE00D] = { replace = "i̇́" },
[0xE00E] = { replace = "i̇̃" },
[0xE010] = { replace = "į̇́" },
[0xE012] = { replace = "į̇̃" },
[0xE014] = { replace = "j̇̃" },
[0xE016] = { replace = "l̃" },
[0xE018] = { replace = "m̃" },
[0xE01A] = { replace = "r̃" },
[0xE01C] = { replace = "ų́" },
[0xE01E] = { replace = "ų̃" },
[0xE020] = { replace = "ū́" },
[0xE022] = { replace = "ū̃" },
-- Note: U+0307 (dotabove) is no longer rejected, but normalized below
}
-- Reject non-standard/PUA characters to enforce clean Wiktionary source
for codepoint, data in pairs(INVALID_CHARS) do
local char = mw.ustring.char(codepoint)
if mw.ustring.find(text, char) then
if data.custom_msg then
error(data.custom_msg)
else
local hex_str = string.format("%04X", codepoint)
error(string.format(
'lt-pron: Private use area character U+%s "%s" detected. Please use "%s" instead.',
hex_str, char, data.replace
))
end
end
end
-- Convert to NFD for normalization
text = mw.ustring.toNFD(text)
-- Track non-standard input formats (before normalization)
local DOT_AB = u(0x0307)
local OGONEK = u(0x0328)
-- Detect dotless i/j
if mw.ustring.find(text, "[ıȷ]") then
track('dotless-ij')
end
-- Detect precomposed i/j with accents (should be i + dotabove + accent)
if mw.ustring.find(text, "[íìĩ]") then
track('precomposed-i-accent')
end
-- Detect explicit dotabove usage (which is actually correct for accented i/j)
if mw.ustring.find(text, "[ij]" .. DOT_AB) then
track('explicit-dotabove')
end
-- Normalize i/j with dotabove (remove dotabove, convert dotless to standard)
-- This handles: i̇, j̇, ı, ȷ, į̇ -> i, j, i, j, į
text = mw.ustring.gsub(text, "([iıjȷ])(" .. OGONEK .. "?)" .. DOT_AB, function(base, below)
base = (base == "ı") and "i" or (base == "ȷ") and "j" or base
return base .. below
end)
-- Convert any remaining dotless forms to standard dotted forms
text = mw.ustring.gsub(text, "ı", "i")
text = mw.ustring.gsub(text, "ȷ", "j")
-- Convert back to NFC and parse tones
text = mw.ustring.toNFC(text)
local result = {}
local i = 1
while i <= mw.ustring.len(text) do
local c = mw.ustring.sub(text, i, i)
local c_lower = ulower(c) -- Convert to lowercase for TONE_MAP lookup
-- Look ahead for combining marks if any slipped through
local next_c = mw.ustring.sub(text, i+1, i+1)
local next_c_lower = ulower(next_c)
local combined = c_lower .. next_c_lower
if TONE_MAP[combined] then
local parts = mw.text.split(TONE_MAP[combined], ",")
-- Preserve original case of base character
local base_char = parts[1]
if c ~= c_lower then
base_char = mw.ustring.upper(base_char)
end
insert(result, {char = base_char, tone = parts[2]})
i = i + 2
elseif TONE_MAP[c_lower] then
local parts = mw.text.split(TONE_MAP[c_lower], ",")
-- Preserve original case of base character
local base_char = parts[1]
if c ~= c_lower then
base_char = mw.ustring.upper(base_char)
end
insert(result, {char = base_char, tone = parts[2]})
i = i + 1
else
insert(result, {char = c, tone = nil})
i = i + 1
end
end
return result
end
-- Display text helper: Insert dotabove between i/j and accent marks
-- (Based on Module:lt-common.makeDisplayText)
local function makeDisplayText(text)
local DOT_AB = u(0x0307)
local OGONEK = u(0x0328)
-- Convert to NFD for processing
text = mw.ustring.toNFD(text)
-- Insert dotabove between i/j and accent marks
text = mw.ustring.gsub(text, "([ij])(" .. OGONEK .. "?)([" .. GRAVE .. ACUTE .. TILDE .. "])",
function(base, below, accent)
return base .. below .. DOT_AB .. accent
end)
-- Convert back to NFC
return mw.ustring.toNFC(text)
end
-- ============================================================================
-- SECTION 3: Tokenization & Diphthong/Digraph resolution
-- ============================================================================
local function get_type(c)
local lc = ulower(c)
if V_IPA[lc] then return "V" end
if CLASS.R[lc] then return "R" end
if CLASS.S[lc] then return "S" end
if CLASS.T[lc] then return "T" end
return "UNKNOWN"
end
-- Helper: Convert token array back to NFC string for suffix/prefix matching
local function tokens_to_string(tok_list)
local s = ""
for _, t in ipairs(tok_list) do
local c = t.char
if t.tone == "grave" then c = c .. GRAVE
elseif t.tone == "acute" then c = c .. ACUTE
elseif t.tone == "tilde" then c = c .. TILDE
end
s = s .. c
end
return mw.ustring.toNFC(s)
end
-- Apply automatic properties based on word structure (e.g. loanwords)
local function apply_auto_properties(tokens)
local word_str = ulower(tokens_to_string(tokens))
--[[ Suffix detection for loanword quality (currently disabled)
local matched_loan_suff = nil
for suff, _ in pairs(SUFFIX_LOAN) do
if mw.ustring.sub(word_str, -mw.ustring.len(suff)) == suff then
matched_loan_suff = suff; break
end
end
if matched_loan_suff then
local suff_len = mw.ustring.len(matched_loan_suff)
local acc_len = 0
for i = #tokens, 1, -1 do
local t = tokens[i]
acc_len = acc_len + mw.ustring.len(tokens_to_string({t}))
if t.type == "V" and ulower(t.char) == "o" then
t.auto_targeted = true
if not t.force_default then t.loan_quality = true end
end
if acc_len >= suff_len then break end
end
end
-- Check for redundant asterisks globally
for _, t in ipairs(tokens) do
if t.force_default and not t.auto_targeted then
track('redundant-asterisk')
end
end
--]]
return tokens
end
-- Strict whitelist for valid diphthong and tone combinations
local function is_strict_diphthong(c1, t1, c2, t2)
local combo = c1 .. c2
-- Unstressed: neither element has a tone
if not t1 and not t2 then
return (combo == "ie" or combo == "uo" or combo == "ai" or combo == "au" or combo == "ei" or combo == "ui" or combo == "oi" or combo == "ou" or combo == "eu")
end
-- Tone on the first element (acute or grave)
if t1 and not t2 then
if t1 == "acute" then
return (combo == "ai" or combo == "au" or combo == "ei" or combo == "ie" or combo == "uo" or combo == "oi")
elseif t1 == "grave" then
return (combo == "ui" or combo == "oi" or combo == "ou" or combo == "eu")
end
end
-- Tone on the second element (tilde)
if not t1 and t2 then
if t2 == "tilde" then
return (combo == "ai" or combo == "au" or combo == "ei" or combo == "ui" or combo == "ie" or combo == "uo" or combo == "eu")
end
end
return false
end
local function tokenize(text_str, pagename)
local raw_chars = safe_normalize(text_str)
-- Identify respelling glides
local respelling_j_positions = identify_respelling_glides(text_str, pagename)
local tokens = {}
local i = 1
while i <= #raw_chars do
local curr = raw_chars[i]
local nxt = raw_chars[i+1]
local lc_curr = ulower(curr.char)
local lc_nxt = nxt and ulower(nxt.char)
-- Explicit Modifiers
if curr.char == "^" then
local last_v = nil
for j = #tokens, 1, -1 do
if tokens[j].type == "V" then last_v = tokens[j]; break end
end
if last_v then
local lc_v = ulower(last_v.char)
local base_v = mw.ustring.sub(lc_v, -1) -- Last char for silent i combinations
local is_e_base = (lc_v == "e") or (base_v == "e")
local is_o_base = (lc_v == "o") or (base_v == "o")
-- Check for valid e: no tone or grave only
if is_e_base then
if not last_v.tone or last_v.tone == "grave" then
last_v.loan_quality = true
elseif last_v.tone == "acute" then
error("lt-pron: '^' cannot be used with acute 'é' (use only with plain 'e' or grave 'è')")
elseif last_v.tone == "tilde" then
error("lt-pron: '^' cannot be used with tilde 'ẽ' (use only with plain 'e' or grave 'è')")
end
-- Check for valid o: no tone only
elseif is_o_base then
if not last_v.tone then
last_v.loan_quality = true
elseif last_v.tone == "grave" then
error("lt-pron: '^' is redundant for 'ò' (already pronounced [ɔ])")
elseif last_v.tone == "acute" or last_v.tone == "tilde" then
error("lt-pron: '^' cannot be used with 'ó' or 'õ' (native long vowels)")
end
else
error("lt-pron: '^' can only be used with 'e' (plain/grave) or 'o' (plain). Found: '" .. lc_v .. "'")
end
end
i = i + 1
-- Check for (j) marker
elseif curr.char == "(" and i + 2 <= #raw_chars then
local char2 = raw_chars[i+1]
local char3 = raw_chars[i+2]
if char2.char == "j" and char3.char == ")" then
insert(tokens, {char = "j", type = "R", tone = nil, is_respelling = true, is_optional = true, original_char = "-"})
i = i + 3
else
error("lt-pron: '(' must be followed by 'j)' to form the (j) glide marker")
end
--[[ Asterisk modifier (currently disabled)
elseif curr.char == "*" then
local last_v = nil
for j = #tokens, 1, -1 do
if tokens[j].type == "V" then last_v = tokens[j]; break end
end
if last_v then last_v.force_default = true end
i = i + 1
--]]
elseif curr.char == "." then
insert(tokens, {char = ".", type = "BOUNDARY"})
i = i + 1
elseif curr.char == "ˌ" then
insert(tokens, {char = "ˌ", type = "SECONDARY_STRESS_BOUNDARY"})
i = i + 1
elseif curr.char == "ʼ" then
-- Softening mark: palatalize the preceding consonant
for j = #tokens, 1, -1 do
local tok = tokens[j]
if tok.type == "T" or tok.type == "S" or tok.type == "R" then
tok.softening_mark = true
break
end
end
i = i + 1
elseif lc_curr == "d" and nxt and (lc_nxt == "z" or lc_nxt == "ž") then
insert(tokens, {char = curr.char .. nxt.char, type = "T", tone = nil})
i = i + 2
elseif lc_curr == "c" and nxt and lc_nxt == "h" then
insert(tokens, {char = curr.char .. nxt.char, type = "S", tone = nil})
i = i + 2
-- Special handling for V + j̃ (final j with tilde): treat as V + ĩ diphthong
elseif curr.type ~= "BOUNDARY" and get_type(curr.char) == "V" and nxt and ulower(nxt.char) == "j" and nxt.tone == "tilde" then
-- Check if this is word-final (no more non-boundary tokens after j̃)
local is_final = true
for k = i + 2, #raw_chars do
if raw_chars[k].char ~= " " then
is_final = false
break
end
end
if is_final then
-- Combine V + j̃ as a diphthong V + ĩ (e.g., uj̃ → ui̇̃)
local v_char = ulower(curr.char)
local combined_char = v_char .. "i" -- e.g., "u" + "i" = "ui"
local tone = "tilde" -- j̃'s tilde
local tone_position = 2 -- Tilde is on the second vowel (i)
insert(tokens, {
char = combined_char,
type = "V",
tone = tone,
tone_position = tone_position,
original_char = v_char .. "j" -- For hyphenation: display as "uj̃"
})
i = i + 2
else
-- Not final, treat as regular V + j
insert(tokens, {char = curr.char, type = "V", tone = curr.tone})
i = i + 1
end
elseif curr.type ~= "BOUNDARY" and get_type(curr.char) == "V" and nxt and get_type(nxt.char) == "V" then
local nxt_nxt = raw_chars[i+2]
local lc_nxt_nxt = nxt_nxt and ulower(nxt_nxt.char)
local back_diph = lc_nxt and lc_nxt_nxt and (lc_nxt .. lc_nxt_nxt)
local is_silent_i_diph = (lc_curr == "i" and not curr.tone) and
(back_diph == "au" or back_diph == "ai" or back_diph == "ou" or back_diph == "oi" or back_diph == "uo")
local is_silent_i_mono = (lc_curr == "i" and not curr.tone) and
(lc_nxt == "a" or lc_nxt == "ą" or lc_nxt == "o" or
lc_nxt == "u" or lc_nxt == "ų" or lc_nxt == "ū" or lc_nxt == "ɔ")
local is_valid_diph = is_strict_diphthong(lc_curr, curr.tone, lc_nxt, nxt and nxt.tone)
if is_valid_diph and nxt_nxt and get_type(nxt_nxt.char) == "V" then
local lc_nxt_nxt = ulower(nxt_nxt.char)
local is_next_valid_diph = is_strict_diphthong(lc_nxt, nxt.tone, lc_nxt_nxt, nxt_nxt.tone)
if is_next_valid_diph then
-- Resolve ambiguous triplets (e.g., auo -> a.uo is standard)
-- Break the first valid diphthong unless explicitly stressed
if not curr.tone then
is_valid_diph = false
end
end
end
if is_silent_i_diph then
local tone = nxt.tone or nxt_nxt.tone
local tone_position = nil
if tone then
-- For silent i diphthongs (e.g., iau), position is relative to the full string
-- Position 2 = middle vowel, Position 3 = last vowel
if nxt.tone then
tone_position = 2
elseif nxt_nxt.tone then
tone_position = 3
end
end
insert(tokens, {char = curr.char .. nxt.char .. nxt_nxt.char, type = "V", tone = tone, has_silent_i = true, tone_position = tone_position})
i = i + 3
elseif is_silent_i_mono then
local tone = nxt.tone
local tone_position = nil
if tone then
-- For silent i monosyllables (e.g., ia), position 2 = second character
tone_position = 2
end
insert(tokens, {char = curr.char .. nxt.char, type = "V", tone = tone, has_silent_i = true, tone_position = tone_position})
i = i + 2
elseif is_valid_diph then
local tone = curr.tone or nxt.tone
local tone_position = nil
if tone then
-- Record which vowel carries the tone (1 = first, 2 = second)
if curr.tone then
tone_position = 1
elseif nxt.tone then
tone_position = 2
end
end
insert(tokens, {char = curr.char .. nxt.char, type = "V", tone = tone, tone_position = tone_position})
i = i + 2
else
insert(tokens, {char = curr.char, type = "V", tone = curr.tone})
i = i + 1
end
else
if curr.char ~= " " then
local tok_type = get_type(curr.char)
local is_respelling_j = false
-- Check if this is a respelling j
if ulower(curr.char) == "j" and #respelling_j_positions > 0 then
-- Build cleaned string up to current position to find clean position
local cleaned_so_far = ""
for k = 1, i do
local c = raw_chars[k]
if c.char ~= "^" and c.char ~= "." and c.char ~= " " and c.char ~= "ʼ" and c.char ~= "ˌ" then
local char_clean = c.char
-- Don't add tone marks to cleaned string
if not c.tone then
cleaned_so_far = cleaned_so_far .. char_clean
else
-- Add base character without tone
cleaned_so_far = cleaned_so_far .. char_clean
end
end
end
local clean_pos = mw.ustring.len(cleaned_so_far)
-- Check if this position is in respelling list
for _, pos in ipairs(respelling_j_positions) do
if pos == clean_pos then
is_respelling_j = true
break
end
end
end
if ulower(curr.char) == "j" then
local tok_data = {char = curr.char, type = tok_type, tone = curr.tone, is_respelling = is_respelling_j, is_optional = false}
if is_respelling_j then
tok_data.original_char = "-" -- Respelling: use "-" to indicate not in orthography
end
insert(tokens, tok_data)
else
insert(tokens, {char = curr.char, type = tok_type, tone = curr.tone})
end
end
i = i + 1
end
end
-- Validate respelling glides are between vowels
for i, tok in ipairs(tokens) do
if tok.is_respelling then
local prev_is_vowel = false
local next_is_vowel = false
-- Check previous non-boundary token
for j = i - 1, 1, -1 do
if tokens[j].type ~= "BOUNDARY" and tokens[j].type ~= "SECONDARY_STRESS_BOUNDARY" then
prev_is_vowel = (tokens[j].type == "V")
break
end
end
-- Check next non-boundary token
for j = i + 1, #tokens do
if tokens[j].type ~= "BOUNDARY" and tokens[j].type ~= "SECONDARY_STRESS_BOUNDARY" then
next_is_vowel = (tokens[j].type == "V")
break
end
end
if not (prev_is_vowel and next_is_vowel) then
error("lt-pron: Respelling glide 'j' or '(j)' must be between two vowels")
end
end
end
return apply_auto_properties(tokens)
end
-- ============================================================================
-- SECTION 4: Syllabification
-- ============================================================================
-- Pre-syllabification: Merge geminate (doubled) consonants
-- This must happen BEFORE syllabification to prevent false mixed diphthongs
-- For example: pérrašo → pér-ra-šo would incorrectly treat ér as a mixed diphthong
-- By merging rr→r first, we get pé-ra-šo, correctly keeping é as a pure vowel
local function merge_geminate_consonants(tokens)
local SIBILANTS = {["s"]=true, ["z"]=true, ["š"]=true, ["ž"]=true}
local i = 1
while i < #tokens do
local tok = tokens[i]
local nxt = tokens[i+1]
local tok_is_cons = (tok.type == "T" or tok.type == "S" or tok.type == "R")
local nxt_is_cons = (nxt.type == "T" or nxt.type == "S" or nxt.type == "R")
if tok_is_cons and nxt_is_cons then
local tok_char = ulower(tok.char)
local nxt_char = ulower(nxt.char)
local tok_is_sib = SIBILANTS[tok_char]
local nxt_is_sib = SIBILANTS[nxt_char]
-- Merge if: (1) both are sibilants, or (2) identical consonants
if (tok_is_sib and nxt_is_sib) or (tok_char == nxt_char) then
-- Remove the first token (keep the second)
table.remove(tokens, i)
-- Don't increment i, check the same position again
else
i = i + 1
end
else
i = i + 1
end
end
end
local function syllabify(tokens)
local syllables = {}
local current_syl = {}
-- Check for leading secondary stress marker
local has_initial_secondary_stress = false
if #tokens > 0 and tokens[1].type == "SECONDARY_STRESS_BOUNDARY" then
has_initial_secondary_stress = true
end
local v_indices = {}
for i, tok in ipairs(tokens) do
if tok.type == "V" then insert(v_indices, i) end
end
if #v_indices == 0 then return {tokens} end -- Edge case: no vowels
local boundaries = {}
-- Sonority Sequencing Algorithm combined with Morphophonological Maximum Onset
for idx = 1, #v_indices - 1 do
local v1_idx = v_indices[idx]
local v2_idx = v_indices[idx + 1]
local raw_c_tokens = {}
local forced_boundary_idx = nil
for i = v1_idx + 1, v2_idx - 1 do
if tokens[i].type == "BOUNDARY" or tokens[i].type == "SECONDARY_STRESS_BOUNDARY" then
forced_boundary_idx = i
else
insert(raw_c_tokens, {t=tokens[i], orig_idx=i})
end
end
if forced_boundary_idx then
boundaries[forced_boundary_idx] = true
elseif #raw_c_tokens == 0 then
-- Hiatus
boundaries[v2_idx] = true
else
-- Macro-Token Grouping: Treat consecutive sibilants (S) as a single phonological unit
local macro_c = {}
local i = 1
while i <= #raw_c_tokens do
local current = raw_c_tokens[i]
if current.t.type == "S" then
local absorbed = {current}
local j = i + 1
-- Absorb any subsequent S tokens into this macro unit, keeping track of them
while j <= #raw_c_tokens and raw_c_tokens[j].t.type == "S" do
insert(absorbed, raw_c_tokens[j])
j = j + 1
end
insert(macro_c, {type = "S", orig_idx = current.orig_idx, tokens = absorbed})
i = j
else
insert(macro_c, {type = current.t.type, orig_idx = current.orig_idx, tokens = {current}})
i = i + 1
end
end
local m_count = #macro_c
if m_count == 1 then
-- V.CV (or V.SSV, e.g., sausšala -> sau.sšala)
boundaries[macro_c[1].orig_idx] = true
elseif m_count == 2 then
local t1, t2 = macro_c[1].type, macro_c[2].type
-- ST, SR, TR -> V.CCV
if (t1=="S" and t2=="T") or (t1=="S" and t2=="R") or (t1=="T" and t2=="R") then
boundaries[macro_c[1].orig_idx] = true
else
-- Handle TSS and RSS sequences properly (e.g., Oksfordas, transformavo).
-- If the macro cluster is T+S or R+S, and the S unit absorbed multiple sibilants,
-- split between the first and second sibilant (TS.S, RS.S).
if (t1=="T" or t1=="R") and t2=="S" and #macro_c[2].tokens > 1 then
boundaries[macro_c[2].tokens[2].orig_idx] = true
else
-- Default VC.CV
boundaries[macro_c[2].orig_idx] = true
end
end
elseif m_count == 3 then
local t1, t2, t3 = macro_c[1].type, macro_c[2].type, macro_c[3].type
if t1=="S" and t2=="T" and t3=="R" then
boundaries[macro_c[1].orig_idx] = true -- V.CCCV
elseif (t1=="T" and t2=="S" and t3=="T") or
(t1=="R" and t2=="S" and t3=="T") or
(t1=="T" and t2=="S" and t3=="R") or
(t1=="R" and t2=="T" and t3=="R") or
(t1=="T" and t2=="T" and t3=="R") or
(t1=="R" and t2=="S" and t3=="R") then
boundaries[macro_c[2].orig_idx] = true -- VC.CCV (includes RSR, e.g., konfliktas)
else
boundaries[macro_c[3].orig_idx] = true -- VCC.CV
end
elseif m_count == 4 then
-- Identify the 4-consonant pattern according to the 8 documented combinations
local pattern = macro_c[1].type .. macro_c[2].type .. macro_c[3].type .. macro_c[4].type
if pattern == "RSTR" or pattern == "TSTR" then
-- R.STR, T.STR -> VC.CCCV
boundaries[macro_c[2].orig_idx] = true
elseif pattern == "RTRR" or pattern == "TSTS" then
-- RTR.R, TST.S -> VCCC.CV
boundaries[macro_c[4].orig_idx] = true
else
-- RT.ST, RT.SR, RT.TR, ST.TR -> VCC.CCV
boundaries[macro_c[3].orig_idx] = true
end
elseif m_count >= 5 then
-- Fallback for >=5 logical consonant units
track('complex-consonant-cluster')
boundaries[macro_c[3].orig_idx] = true
end
end
end
-- Construct syllables
local secondary_stress_syllables = {}
for i, tok in ipairs(tokens) do
if boundaries[i] and #current_syl > 0 then
insert(syllables, current_syl)
-- If this is a secondary stress boundary, mark the NEXT syllable
if tok.type == "SECONDARY_STRESS_BOUNDARY" then
secondary_stress_syllables[#syllables + 1] = true
end
current_syl = {}
end
if tok.type ~= "BOUNDARY" and tok.type ~= "SECONDARY_STRESS_BOUNDARY" then
insert(current_syl, tok)
end
end
if #current_syl > 0 then insert(syllables, current_syl) end
-- Apply secondary stress marks
for idx, _ in pairs(secondary_stress_syllables) do
if syllables[idx] then
syllables[idx].secondary_stress = true
end
end
-- Apply initial secondary stress if present
if has_initial_secondary_stress and #syllables > 0 then
syllables[1].secondary_stress = true
end
return syllables
end
-- ============================================================================
-- SECTION 5: Base IPA Mapping & Stress Assignment
-- ============================================================================
local function is_mixed_diphthong(syl, v_idx)
local v_tok = syl[v_idx]
local lc_v = ulower(v_tok.char)
-- Strip silent 'i' for accurate length calculation
if v_tok.has_silent_i then
lc_v = mw.ustring.sub(lc_v, 2)
end
-- Digraphs (ie, uo, ai, au, etc.) or natively long vowels (ą, ę, ė, į, y, ų, ū)
-- do NOT form mixed diphthongs with subsequent resonants.
-- Only short a, e, i, u, o can form true mixed diphthongs.
if mw.ustring.len(lc_v) > 1 then return false end
local LONG_V = {["ą"]=true, ["ę"]=true, ["ė"]=true, ["į"]=true, ["y"]=true, ["ų"]=true, ["ū"]=true}
if LONG_V[lc_v] then return false end
-- V + R in the SAME syllable (coda)
if v_idx < #syl and syl[v_idx+1].type == "R" then
-- j and v are not considered for typical liquid semi-diphthongs length rules
if syl[v_idx+1].char ~= "j" and syl[v_idx+1].char ~= "v" then
return true
end
end
return false
end
local function map_base_phonetics(syllables)
local stress_prefix = nil
for _, syl in ipairs(syllables) do
local v_idx = nil
for i, tok in ipairs(syl) do
if tok.type == "V" then v_idx = i; break end
end
if v_idx then
local v_tok = syl[v_idx]
local v_char = v_tok.char
local lc_v_char = ulower(v_char)
local tone = v_tok.tone
local is_mixed = is_mixed_diphthong(syl, v_idx)
if is_mixed and not tone then
local r_tok = syl[v_idx+1]
if r_tok.tone then tone = r_tok.tone end
end
if v_tok.has_silent_i then
v_tok.silent_i = true
local actual_vowel = mw.ustring.sub(lc_v_char, 2)
v_tok.ipa = V_IPA[actual_vowel] or "ɐ"
lc_v_char = actual_vowel
else
-- Apply loan quality base default for 'o' and 'e'
v_tok.ipa = V_IPA[lc_v_char] or "ɐ"
if lc_v_char == "o" and v_tok.loan_quality then
v_tok.ipa = "ɔ"
end
if lc_v_char == "e" and v_tok.loan_quality then
v_tok.ipa = "e"
end
-- Automatically prepend glide 'j' to syllable-initial 'ie'
if lc_v_char == "ie" and v_idx == 1 then
v_tok.ipa = "jiɛ"
end
end
if tone then
local s_mark = ""
local v_base = mw.ustring.sub(lc_v_char, 1, 1)
if tone == "acute" then
s_mark = "¹ˈ"
if lc_v_char == "a" then
if is_mixed then v_tok.ipa = "ɑˑ" else v_tok.ipa = "ɑː" end
elseif lc_v_char == "e" then
-- Note: '^' modifier not allowed with acute 'é' as of current rules
-- This code path preserved for consistency
if is_mixed and v_tok.loan_quality then
v_tok.ipa = "ɛ" -- Loanword é in mixed diphthongs is short /ɛ/ without length
elseif is_mixed then
v_tok.ipa = "æˑ" -- Mixed diphthong: half-long
else
v_tok.ipa = "æː" -- Pure vowel: full-long
end
elseif lc_v_char == "ai" then v_tok.ipa = "ɑˑɪ"
elseif lc_v_char == "au" then v_tok.ipa = "ɑˑʊ"
elseif lc_v_char == "ei" then v_tok.ipa = "æˑɪ"
elseif lc_v_char == "eu" then v_tok.ipa = "æˑʊ"
elseif lc_v_char == "oi" then v_tok.ipa = "oˑɪ"
end
elseif tone == "grave" then
if is_mixed and (v_base == "i" or v_base == "u" or v_base == "e" or v_base == "o") then
s_mark = "¹ˈ"
elseif lc_v_char == "ui" or lc_v_char == "oi" or lc_v_char == "ou" or lc_v_char == "eu" then
s_mark = "¹ˈ"
else
s_mark = "ˈ"
end
-- Handle loanword variants for grave
if lc_v_char == "e" and v_tok.loan_quality then
v_tok.ipa = "e" -- è^ (loanword) → [e]
end
if lc_v_char == "o" then
v_tok.ipa = "ɔ" -- ò (always loanword) → [ɔ]
end
elseif tone == "tilde" then
s_mark = "²ˈ"
if lc_v_char == "ai" then v_tok.ipa = "ɐɪˑ"
elseif lc_v_char == "au" then v_tok.ipa = "ɒʊˑ"
elseif lc_v_char == "ei" then v_tok.ipa = "ɛɪˑ"
elseif lc_v_char == "eu" then v_tok.ipa = "ɛʊˑ"
elseif lc_v_char == "ui" then v_tok.ipa = "ʊɪˑ"
elseif lc_v_char == "a" then
if is_mixed then v_tok.ipa = "ɐ" else v_tok.ipa = "ɑː" end
elseif lc_v_char == "e" then
if is_mixed then v_tok.ipa = "ɛ" else v_tok.ipa = "æː" end
end
end
syl.stress = s_mark
end
-- Set base IPA for consonants (case-insensitive mapping)
for i, tok in ipairs(syl) do
if tok.type ~= "V" then
local lc_c = ulower(tok.char)
tok.ipa = CONS_IPA[lc_c] or lc_c
end
end
-- Handle tilde half-length on mixed diphthong coda
if tone == "tilde" and is_mixed then
local r_tok = syl[v_idx+1]
r_tok.half_long = true
end
else
-- Syllable with no vowel (e.g. leftover consonant)
for i, tok in ipairs(syl) do
tok.ipa = CONS_IPA[tok.char] or tok.char
end
end
end
end
-- ============================================================================
-- SECTION 6: Phonetic Polish Passes
-- ============================================================================
-- Pass 1: Palatalization Spreading (Right-to-Left)
local function apply_palatalization(syllables)
-- Flatten tokens for cross-syllable spreading
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
-- First pass: Apply softening marks (no spreading)
for i = 1, #flat_tokens do
local tok = flat_tokens[i]
if tok.softening_mark and tok.ipa ~= "" then
tok.ipa = tok.ipa .. "ʲ"
tok.is_palatalized = true
end
end
local spread_active = false
for i = #flat_tokens, 1, -1 do
local tok = flat_tokens[i]
local lc_char = ulower(tok.char)
if tok.type == "V" then
if tok.silent_i or FRONT_V[lc_char] then
spread_active = true
else
spread_active = false
end
elseif lc_char == "j" then
-- Preserve special IPA for final j (ɪ̯), don't override it
if tok.ipa ~= "ɪ̯" and tok.ipa ~= "" then
tok.ipa = "j"
end
tok.is_palatalized = true
spread_active = true
else
if spread_active then
-- Check if the palatalization is DIRECT (immediate contact with front V or j)
local is_direct = false
local nxt = flat_tokens[i+1]
if nxt then
local nxt_lc = ulower(nxt.char)
if (nxt.type == "V" and (nxt.silent_i or FRONT_V[nxt_lc])) or nxt_lc == "j" then
is_direct = true
end
end
tok.is_palatalized = true
if lc_char == "k" or lc_char == "g" then
if is_direct and tok.ipa ~= "" then
tok.ipa = tok.ipa .. "ʲ"
end
-- DO NOT set spread_active to false! k/g are transparent to spreading.
else
if tok.ipa ~= "" then
tok.ipa = tok.ipa .. "ʲ"
end
end
end
end
end
end
-- Pass 2: Voicing Assimilation (Right-to-Left)
local function apply_voicing_assimilation(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
local target_voice = nil
for i = #flat_tokens, 1, -1 do
local tok = flat_tokens[i]
if tok.type == "V" or tok.type == "R" then
target_voice = nil -- Blocked by vowels and resonants
elseif tok.type == "S" or tok.type == "T" then
if target_voice == nil then
-- Establish new assimilation target
target_voice = is_voiced(tok.char) and "voiced" or "voiceless"
else
-- Assimilate
local current_is_voiced = is_voiced(tok.char)
if target_voice == "voiced" and not current_is_voiced then
tok.char = VOICING_PAIRS[tok.char] or tok.char
elseif target_voice == "voiceless" and current_is_voiced then
tok.char = VOICING_PAIRS[tok.char] or tok.char
end
-- Update IPA based on new character, preserving palatalization
local new_ipa = CONS_IPA[tok.char] or tok.char
if tok.is_palatalized and tok.char ~= "k" and tok.char ~= "g" then
new_ipa = new_ipa .. "ʲ"
end
tok.ipa = new_ipa
end
end
end
end
-- Pass 3: Nasal Assimilation (n -> ŋ before k/g)
local function apply_nasal_assimilation(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
for i = 1, #flat_tokens - 1 do
local tok = flat_tokens[i]
-- Ignore vowels for lookahead
local lookahead = i + 1
while lookahead <= #flat_tokens and flat_tokens[lookahead].type == "V" do
if flat_tokens[lookahead].silent_i then
lookahead = lookahead + 1
else
break
end
end
local nxt = flat_tokens[lookahead]
if nxt and ulower(tok.char) == "n" then
local lc_nxt = ulower(nxt.char)
if lc_nxt == "k" or lc_nxt == "g" then
-- Check actual IPA string for direct palatalization
if mw.ustring.find(nxt.ipa, "ʲ") then
tok.ipa = "ŋʲ"
else
tok.ipa = "ŋ"
end
end
end
end
end
-- Pass 4: Vowel Quality Adjustments after Palatalization
local function adjust_vowel_quality(syllables)
for _, syl in ipairs(syllables) do
local has_palatal_onset = false
for i, tok in ipairs(syl) do
if tok.type ~= "V" and (tok.is_palatalized or ulower(tok.char) == "j") then
has_palatal_onset = true
elseif tok.type == "V" and has_palatal_onset then
local ipa = tok.ipa
-- Shift a/e quality
if ipa == "ɐ" then ipa = "ɛ"
elseif ipa == "ɑː" then ipa = "æː"
-- Diphthong shifts for iau / iai
elseif ipa == "ɒʊ" then ipa = "ɛʊ"
elseif ipa == "ɑˑʊ" then ipa = "æˑʊ"
elseif ipa == "ɒʊˑ" then ipa = "ɛʊˑ"
elseif ipa == "ɐɪ" then ipa = "ɛɪ"
elseif ipa == "ɑˑɪ" then ipa = "æˑɪ"
elseif ipa == "ɐɪˑ" then ipa = "ɛɪˑ"
end
-- Dynamic fronting for u/o/ɔ (adds U+031F)
-- Matches ONLY the first character (^) to avoid double fronting in uɔ
ipa = mw.ustring.gsub(ipa, "^([uʊoɔ])", "%1̟")
tok.ipa = ipa
has_palatal_onset = false
end
end
end
end
-- Pass 5: Terminal Devoicing (Word-final obstruent devoicing)
local function apply_terminal_devoicing(syllables)
if #syllables == 0 then return end
local last_syl = syllables[#syllables]
local last_tok = last_syl[#last_syl]
if last_tok and (last_tok.type == "S" or last_tok.type == "T") then
local lc_char = ulower(last_tok.char)
if is_voiced(lc_char) then
local devoiced = VOICING_PAIRS[lc_char]
if devoiced then
last_tok.char = devoiced
local new_ipa = CONS_IPA[devoiced] or devoiced
if last_tok.is_palatalized then new_ipa = new_ipa .. "ʲ" end
last_tok.ipa = new_ipa
end
end
end
end
-- Pass 6: Place Assimilation (Sibilant + Affricate)
-- When a sibilant meets an affricate, the sibilant adjusts its place of articulation:
-- s+č→š, z+dž→ž, š+c→s, ž+dz→z
local function apply_place_assimilation(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
local PLACE_ASSIM = {
["s"] = {["t͡ʃ"] = "ʃ"},
["z"] = {["d͡ʒ"] = "ʒ"},
["ʃ"] = {["t͡s"] = "s"},
["ʒ"] = {["d͡z"] = "z"},
}
for i = 1, #flat_tokens - 1 do
local tok = flat_tokens[i]
local nxt = flat_tokens[i+1]
if tok.type == "S" and nxt.type == "T" then
local rule = PLACE_ASSIM[tok.ipa]
if rule and rule[nxt.ipa] then
tok.ipa = rule[nxt.ipa]
end
end
end
end
-- Pass 7: Geminate Simplification (Double consonant reduction)
-- NOTE: Original geminates (rr, ll, etc.) are already merged in merge_geminate_consonants.
-- This pass handles geminates created by phonetic rules (e.g., voicing assimilation: td→dd).
-- Sibilants: any two sibilants merge into one (keeping the second)
-- Other consonants: only identical pairs merge
local function apply_geminate_simplification(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
local SIBILANTS = {["s"]=true, ["z"]=true, ["ʃ"]=true, ["ʒ"]=true}
for i = 1, #flat_tokens - 1 do
local tok = flat_tokens[i]
local nxt = flat_tokens[i+1]
local tok_is_cons = (tok.type == "T" or tok.type == "S" or tok.type == "R")
local nxt_is_cons = (nxt.type == "T" or nxt.type == "S" or nxt.type == "R")
if tok_is_cons and nxt_is_cons then
local tok_is_sib = SIBILANTS[tok.ipa]
local nxt_is_sib = SIBILANTS[nxt.ipa]
if tok_is_sib and nxt_is_sib then
tok.ipa = ""
elseif tok.ipa == nxt.ipa and tok.ipa ~= "" then
tok.ipa = ""
end
end
end
end
-- Pass 8: Final Consonant Vocalization (v → ʊ̯, j → ɪ̯)
-- Word-final v and j (without tilde) become non-syllabic vowels
-- Note: j with tilde is already converted to i with tilde in tokenization
local function apply_final_consonant_vocalization(syllables)
if #syllables == 0 then return end
local last_syl = syllables[#syllables]
local last_tok = last_syl[#last_syl]
if last_tok then
local lc_char = ulower(last_tok.char)
-- Final v → ʊ̯
if lc_char == "v" then
last_tok.ipa = "ʊ̯"
-- Keep type as "R" (resonant) for now - it's treated as non-syllabic
end
-- Final j (without tilde) → ɪ̯
-- Note: j with tilde is already converted to i in tokenization, so won't reach here
if lc_char == "j" and last_tok.tone ~= "tilde" then
last_tok.ipa = "ɪ̯"
-- Keep type as "R" (resonant) for now - it's treated as non-syllabic
end
end
end
-- ============================================================================
-- SECTION 7: Output Assembly
-- ============================================================================
-- Core IPA processor for a single word
local function process_single_word_ipa(word, pagename)
local tokens = tokenize(word, pagename)
merge_geminate_consonants(tokens)
local syllables = syllabify(tokens)
map_base_phonetics(syllables)
-- Phonetic Polish Pipeline
apply_terminal_devoicing(syllables)
apply_voicing_assimilation(syllables)
apply_place_assimilation(syllables)
apply_geminate_simplification(syllables)
apply_final_consonant_vocalization(syllables)
apply_palatalization(syllables)
apply_nasal_assimilation(syllables)
adjust_vowel_quality(syllables)
local parts = {}
for s_idx, syl in ipairs(syllables) do
local syl_str = ""
local hiatus_sep = ""
if s_idx > 1 then
local prev_syl = syllables[s_idx - 1]
local prev_last_tok = prev_syl[#prev_syl]
local curr_first_tok = syl[1]
local prev_ends_with_v = (prev_last_tok and prev_last_tok.type == "V" and not prev_last_tok.silent_i)
local curr_starts_with_v = (curr_first_tok and curr_first_tok.type == "V" and not curr_first_tok.silent_i)
if prev_ends_with_v and curr_starts_with_v then
local prev_v_char = ulower(prev_last_tok.char)
local curr_v_char = ulower(curr_first_tok.char)
-- Only handle ie special case
if curr_v_char == "ie" then
-- 'ie' has implicit 'j' from map_base_phonetics.
syl_str = ""
hiatus_sep = ""
else
-- Standard hiatus without glide insertion
syl_str = "."
hiatus_sep = ""
end
end
end
-- Check for conflict between primary and secondary stress
if syl.secondary_stress and syl.stress then
error("lt-pron: A syllable cannot have both primary stress (tone mark) and secondary stress (ˌ)")
end
-- Add stress markers (primary or secondary, mutually exclusive)
if syl.secondary_stress then
syl_str = syl_str .. "ˌ"
elseif syl.stress then
syl_str = syl_str .. syl.stress
end
syl_str = syl_str .. hiatus_sep
for _, tok in ipairs(syl) do
if tok.is_respelling then
if tok.is_optional then
syl_str = syl_str .. "(j)"
else
syl_str = syl_str .. tok.ipa
end
else
syl_str = syl_str .. tok.ipa
end
if tok.half_long then syl_str = syl_str .. "ˑ" end
end
insert(parts, syl_str)
end
return concat(parts, "")
end
-- Multi-word IPA assembler with liaison `‿`
local function to_ipa(term, provided_pagename)
-- Use provided pagename if available, otherwise try to extract from term
local pagename, clean_term
if provided_pagename then
pagename = provided_pagename
clean_term = term
else
pagename, clean_term = get_pagename(term)
end
term = clean_term
-- Split input into words
local words = mw.text.split(term, " ")
-- Split pagename into words (if available)
local pagename_words = nil
if pagename then
pagename_words = mw.text.split(pagename, " ")
-- Verify word count matches (only when both are multi-word)
if #words > 1 and #pagename_words > 1 and #words ~= #pagename_words then
error("lt-pron: Input has " .. #words .. " words but pagename has " .. #pagename_words .. " words. They must match.")
end
-- If pagename is single word but input is multi-word, use nil for all words
-- (This allows respelling detection to work only on exact matches)
if #pagename_words == 1 and #words > 1 then
pagename_words = nil
end
end
local processed_words = {}
for i, word in ipairs(words) do
if word ~= "" then
-- Get the corresponding pagename word, or nil if not available
local word_pagename = (pagename_words and pagename_words[i]) or nil
local w_ipa = process_single_word_ipa(word, word_pagename)
insert(processed_words, w_ipa)
end
end
local result = ""
for i, w_ipa in ipairs(processed_words) do
if i == 1 then
result = w_ipa
else
-- If the PREVIOUS word has NO stress mark, use liaison `‿`
if not mw.ustring.find(processed_words[i-1], "ˈ") then
result = result .. "‿" .. w_ipa
else
result = result .. " " .. w_ipa
end
end
end
return result
end
-- Rhyme Extractor
local IPA_VOWELS = "aɐɑæɛeəɪiɔoʊuɒɜ"
local function get_rhyme(ipa)
-- Remove liaison and spaces before rhyme calculation
local clean_ipa = mw.ustring.gsub(ipa, "[‿ ]", "")
-- Search for the last stress mark from right to left
local last_stress_pos = nil
for i = mw.ustring.len(clean_ipa), 1, -1 do
local char = mw.ustring.sub(clean_ipa, i, i)
if char == "ˈ" then
-- Skip superscript if present
if i > 1 then
local prev = mw.ustring.sub(clean_ipa, i - 1, i - 1)
if prev == "¹" or prev == "²" then
last_stress_pos = i -- Point to ˈ, skip superscript
else
last_stress_pos = i
end
else
last_stress_pos = i
end
break
end
end
if not last_stress_pos then return nil end
-- Extract content after the stress mark
local after = mw.ustring.sub(clean_ipa, last_stress_pos + 1)
-- Remove hiatus dots for rhyme grouping
after = mw.ustring.gsub(after, "%.", "")
-- Find first vowel position (skip onset consonants)
local vstart = mw.ustring.match(after, "()[" .. IPA_VOWELS .. "]")
if vstart then
return mw.ustring.sub(after, vstart)
end
return after
end
-- Hyphenation generator (supports multi-word phrases)
local function get_hyphenation(term, provided_pagename)
-- Use provided pagename if available, otherwise try to extract from term
local pagename, clean_term
if provided_pagename then
pagename = provided_pagename
clean_term = term
else
pagename, clean_term = get_pagename(term)
end
term = clean_term
-- Split input into words
local words = mw.text.split(term, " ")
-- Split pagename into words (if available)
local pagename_words = nil
if pagename then
pagename_words = mw.text.split(pagename, " ")
-- Verify word count matches (only when both are multi-word)
if #words > 1 and #pagename_words > 1 and #words ~= #pagename_words then
error("lt-pron: Input has " .. #words .. " words but pagename has " .. #pagename_words .. " words. They must match.")
end
-- If pagename is single word but input is multi-word, use nil for all words
if #pagename_words == 1 and #words > 1 then
pagename_words = nil
end
end
local all_word_parts = {}
for i, word in ipairs(words) do
if word ~= "" then
-- Get the corresponding pagename word, or nil if not available
local word_pagename = (pagename_words and pagename_words[i]) or nil
local tokens = tokenize(word, word_pagename)
local syllables = syllabify(tokens)
local parts = {}
for _, syl in ipairs(syllables) do
local text = ""
for _, tok in ipairs(syl) do
-- Skip respelling characters (original_char == "-" means not in orthography)
if tok.original_char ~= "-" then
-- Re-attach original tone visually for display
local t_mark = ""
if tok.tone == "acute" then t_mark = ACUTE
elseif tok.tone == "grave" then t_mark = GRAVE
elseif tok.tone == "tilde" then t_mark = TILDE
end
-- Use original_char if set (e.g., j̃ → i internally but j in display)
-- Otherwise use tok.char
local disp_char = tok.original_char or tok.char
-- Restore original orthography for ɔ
if disp_char == "ɔ" then disp_char = "o" end
if disp_char == "Ɔ" then disp_char = "O" end
-- Handle tone placement for diphthongs
if tok.tone_position then
-- Diphthong: place tone on the specified vowel
local char_len = mw.ustring.len(disp_char)
if char_len == 2 then
-- Two-character diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2
else
text = text .. v1 .. v2 .. t_mark
end
elseif char_len == 3 then
-- Three-character (silent i) diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
local v3 = mw.ustring.sub(disp_char, 3, 3)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2 .. v3
elseif tok.tone_position == 2 then
text = text .. v1 .. v2 .. t_mark .. v3
else
text = text .. v1 .. v2 .. v3 .. t_mark
end
end
else
-- Single vowel or consonant: tone goes after the character
text = text .. disp_char .. t_mark
end
end
end
parts[#parts + 1] = makeDisplayText(text)
end
insert(all_word_parts, concat(parts, "‧")) -- Use ‧ instead of standard - internally to preserve word boundaries
end
end
-- Build combined string for display (preserves correct formatting)
local combined_string = concat(all_word_parts, " ")
local final_parts = {}
for _, piece in ipairs(mw.text.split(combined_string, "‧")) do
insert(final_parts, piece)
end
-- Calculate actual syllable count (for correct num_syl)
local syllable_count = 0
for _, word_part in ipairs(all_word_parts) do
local word_syls = mw.text.split(word_part, "‧")
syllable_count = syllable_count + #word_syls
end
-- Store actual syllable count as a field (since __len doesn't work on tables in Lua 5.1)
final_parts.syllable_count = syllable_count
return final_parts
end
-- ============================================================================
-- SECTION 7.5: Conjugation Module Support Functions
-- ============================================================================
-- Export: Get syllables as string array with accents
function export.get_syllables(term)
local pagename, clean_term = get_pagename(term)
term = clean_term
local tokens = tokenize(term, pagename)
local syllables = syllabify(tokens)
local result = {}
for _, syl in ipairs(syllables) do
local text = ""
for _, tok in ipairs(syl) do
-- Skip respelling glides in syllable output
if not tok.is_respelling then
-- Re-attach original tone
local t_mark = ""
if tok.tone == "acute" then t_mark = ACUTE
elseif tok.tone == "grave" then t_mark = GRAVE
elseif tok.tone == "tilde" then t_mark = TILDE
end
-- Restore original orthography for ɔ
local disp_char = tok.char
if disp_char == "ɔ" then disp_char = "o" end
if disp_char == "Ɔ" then disp_char = "O" end
-- Handle tone placement for diphthongs
if tok.tone_position then
-- Diphthong: place tone on the specified vowel
local char_len = mw.ustring.len(disp_char)
if char_len == 2 then
-- Two-character diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2
else
text = text .. v1 .. v2 .. t_mark
end
elseif char_len == 3 then
-- Three-character (silent i) diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
local v3 = mw.ustring.sub(disp_char, 3, 3)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2 .. v3
elseif tok.tone_position == 2 then
text = text .. v1 .. v2 .. t_mark .. v3
else
text = text .. v1 .. v2 .. v3 .. t_mark
end
end
else
-- Single vowel or consonant: tone goes after the character
text = text .. disp_char .. t_mark
end
end
end
-- Return NFC format with proper dotabove insertion
insert(result, makeDisplayText(text))
end
return result
end
-- Export: Check if a syllable is heavy or light
function export.is_heavy_syllable(syllable)
local pagename, clean_syllable = get_pagename(syllable)
syllable = clean_syllable
-- Validate single syllable
local tokens = tokenize(syllable, pagename)
local syllables = syllabify(tokens)
if #syllables ~= 1 then
error("is_heavy_syllable: input must be a single syllable, got " .. #syllables .. " syllables")
end
local syl = syllables[1]
-- Find the vowel token
local v_idx = nil
for i, tok in ipairs(syl) do
if tok.type == "V" then
v_idx = i
break
end
end
if not v_idx then
error("is_heavy_syllable: no vowel found in syllable")
end
local v_tok = syl[v_idx]
local lc_v = ulower(v_tok.char)
-- Handle silent i (e.g., "iau" where i is silent)
if v_tok.has_silent_i then
lc_v = mw.ustring.sub(lc_v, 2)
end
-- Long vowels (inherently long, regardless of accent)
local LONG_VOWELS = {
["ą"]=true, ["ę"]=true, ["ė"]=true, ["į"]=true, ["y"]=true, ["ų"]=true, ["ū"]=true,
["o"]=true, ["ɔ"]=true -- o/ɔ are always long (except ò, but we treat all o as long)
}
if LONG_VOWELS[lc_v] then
return true
end
-- Diphthongs (length > 1)
if mw.ustring.len(lc_v) > 1 then
return true
end
-- Mixed diphthongs: short vowel + liquid in coda position
local SHORT_VOWELS = {["a"]=true, ["e"]=true, ["i"]=true, ["u"]=true}
if SHORT_VOWELS[lc_v] and v_idx < #syl then
local next_tok = syl[v_idx + 1]
-- Liquid in coda (not j or v, which don't form mixed diphthongs)
if next_tok.type == "R" and next_tok.char ~= "j" and next_tok.char ~= "v" then
return true
end
end
-- Otherwise, it's a light syllable
return false
end
-- Export: Change accent of a syllable
function export.change_accent(syllable, target_accent)
local pagename, clean_syllable = get_pagename(syllable)
syllable = clean_syllable
-- Validate target_accent parameter
local VALID_ACCENTS = {acute=true, tilde=true, grave=true, none=true}
if not VALID_ACCENTS[target_accent] then
error("change_accent: invalid target_accent '" .. tostring(target_accent) ..
"', must be 'acute', 'tilde', 'grave', or 'none'")
end
-- Validate single syllable
local tokens = tokenize(syllable, pagename)
local syllables = syllabify(tokens)
if #syllables ~= 1 then
error("change_accent: input must be a single syllable, got " .. #syllables .. " syllables")
end
-- Remove all existing accents
local clean = remove_all_accents(syllable)
-- If target is 'none', return clean syllable
if target_accent == "none" then
return clean
end
-- Re-tokenize the clean syllable to analyze structure
local clean_tokens = tokenize(clean, pagename)
local clean_syllables = syllabify(clean_tokens)
local syl = clean_syllables[1]
-- Find vowel position and extract vowel part
local onset = ""
local vowel_part = ""
local coda = ""
local v_idx = nil
for i, tok in ipairs(syl) do
if tok.type == "V" then
v_idx = i
break
else
onset = onset .. tok.char
end
end
if not v_idx then
error("change_accent: no vowel found in syllable")
end
local v_tok = syl[v_idx]
vowel_part = ulower(v_tok.char)
-- Handle silent i
if v_tok.has_silent_i then
vowel_part = mw.ustring.sub(vowel_part, 2)
end
-- Check if this is a mixed diphthong
local is_mixed = false
if v_idx < #syl then
local next_tok = syl[v_idx + 1]
if next_tok.type == "R" and next_tok.char ~= "j" and next_tok.char ~= "v" then
-- Mixed diphthong: vowel + liquid
vowel_part = vowel_part .. ulower(next_tok.char)
is_mixed = true
-- Collect remaining coda after the liquid
for i = v_idx + 2, #syl do
coda = coda .. syl[i].char
end
else
-- Regular syllable: collect all coda
for i = v_idx + 1, #syl do
coda = coda .. syl[i].char
end
end
end
-- Look up the accented form in ACCENT_PAIRS
if not ACCENT_PAIRS[vowel_part] then
error("change_accent: vowel/diphthong '" .. vowel_part .. "' not found in accent pairs table")
end
local accented_vowel = ACCENT_PAIRS[vowel_part][target_accent]
if not accented_vowel then
error("change_accent: accent type '" .. target_accent ..
"' is not allowed for vowel/diphthong '" .. vowel_part .. "'")
end
-- Reconstruct the syllable with new accent (in NFD format)
local result = onset .. accented_vowel .. coda
return result
end
-- ============================================================================
-- SECTION 8: Module Exports & Template Formatting (Preserved)
-- ============================================================================
local q_spec = {store = "insert-flattened", type = "qualifier"}
local a_spec = {store = "insert-flattened", type = "labels"}
local ref_spec = {store = "insert-flattened", item_dest = "refs", type = "references"}
-- Generate audio object, supporting file#caption syntax
local function generate_audio_obj(arg)
local file, caption = arg:match("^(.-)%s*#%s*(.*)$")
file = file or arg
return {file = file, caption = caption}
end
-- Parse rhyme specification with optional syllable count
local function parse_rhyme(arg, parse_err)
local function generate_obj(term)
return {rhyme = term}
end
local param_mods = {
s = {
item_dest = "num_syl",
type = "number",
sublist = true,
},
}
-- Add q/qq/a/aa/ref support if inline modifiers are present
if arg:find("<") then
param_mods.q = q_spec
param_mods.qq = q_spec
param_mods.a = a_spec
param_mods.aa = a_spec
param_mods.ref = ref_spec
end
return require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = param_mods,
generate_obj = generate_obj,
parse_err = parse_err,
splitchar = ",",
})
end
-- Parse hyphenation specification (dot-separated syllables)
local function parse_hyph(arg, parse_err)
local function generate_obj(term)
local parts = mw.text.split(term, "%.")
return {hyph = parts, syllabification = term}
end
local param_mods = {}
-- Add q/qq/a/aa/ref support if inline modifiers are present
if arg:find("<") then
param_mods.q = q_spec
param_mods.qq = q_spec
param_mods.a = a_spec
param_mods.aa = a_spec
param_mods.ref = ref_spec
end
return require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = param_mods,
generate_obj = generate_obj,
parse_err = parse_err,
splitchar = ",",
})
end
-- Parse homophone specification
local function parse_homophone(arg, parse_err)
local function generate_obj(term)
return {term = term}
end
local param_mods = {
t = {item_dest = "gloss"},
gloss = {},
pos = {},
alt = {},
lit = {},
id = {},
g = {
item_dest = "genders",
sublist = true,
},
}
-- Add q/qq/a/aa/ref support if inline modifiers are present
if arg:find("<") then
param_mods.q = q_spec
param_mods.qq = q_spec
param_mods.a = a_spec
param_mods.aa = a_spec
param_mods.ref = ref_spec
end
return require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = param_mods,
generate_obj = generate_obj,
parse_err = parse_err,
splitchar = ",",
})
end
local audio_nested_mods = {
["a"] = a_spec, ["aa"] = a_spec,
["q"] = q_spec, ["qq"] = q_spec,
["text"] = {},
["IPA"] = {sublist = true},
["t"] = {item_dest = "gloss"},
["gloss"] = {},
["pos"] = {},
["lit"] = {},
["g"] = {
item_dest = "genders",
sublist = true,
},
}
local function parse_one_term(raw, parse_err)
if not raw:find("<") then
return {term = raw, audio_list = {}, rhyme_list = {}, hyph_list = {}, pagename = nil}
end
-- Extract base spelling before parse_inline_modifiers
local pagename = nil
if raw:find("<base:") then
pagename = raw:match("<base:([^>]+)>")
raw = raw:gsub("<base:[^>]+>", "")
end
local parsed = require(parse_util_module).parse_inline_modifiers(raw, {
param_mods = {
["q"] = q_spec, ["qq"] = q_spec,
["a"] = a_spec, ["aa"] = a_spec,
["ref"] = ref_spec,
["audio"] = {
store = "insert",
item_dest = "audio_list",
convert = function(arg, perr)
if arg:find("<") then
local parsed_audio = require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = audio_nested_mods,
generate_obj = generate_audio_obj,
parse_err = perr,
})
parsed_audio.lang = get_lang()
local textobj = require(audio_module).construct_audio_textobj(parsed_audio)
parsed_audio.text = textobj
parsed_audio.gloss = nil
parsed_audio.pos = nil
parsed_audio.lit = nil
parsed_audio.genders = nil
return parsed_audio
end
local audio_obj = generate_audio_obj(arg)
audio_obj.lang = get_lang()
local textobj = require(audio_module).construct_audio_textobj(audio_obj)
audio_obj.text = textobj
return audio_obj
end,
},
["rhyme"] = {
store = "insert-flattened",
item_dest = "rhyme_list",
convert = parse_rhyme,
},
["hyph"] = {
store = "insert-flattened",
item_dest = "hyph_list",
convert = parse_hyph,
},
["hmp"] = {
store = "insert-flattened",
item_dest = "hmp_list",
convert = parse_homophone,
},
},
generate_obj = function(t)
return {term = t, audio_list = {}, rhyme_list = {}, hyph_list = {}, hmp_list = {}}
end,
parse_err = parse_err,
})
parsed.audio_list = parsed.audio_list or {}
parsed.rhyme_list = parsed.rhyme_list or {}
parsed.hyph_list = parsed.hyph_list or {}
parsed.hmp_list = parsed.hmp_list or {}
parsed.pagename = pagename
return parsed
end
-- Format rhyme objects with qualifiers
local function fmt_rhyme(rhyme_objs, bullet)
if not rhyme_objs or #rhyme_objs == 0 then return nil end
local rhyme_data = {}
for _, robj in ipairs(rhyme_objs) do
insert(rhyme_data, {
rhyme = robj.rhyme,
num_syl = robj.num_syl,
q = robj.q,
qq = robj.qq,
a = robj.a,
aa = robj.aa,
})
end
return bullet .. require(rhymes_module).format_rhymes({
lang = get_lang(),
rhymes = rhyme_data
})
end
-- Format hyphenation objects with qualifiers
local function fmt_hyph(hyph_objs, bullet)
if not hyph_objs or #hyph_objs == 0 then return nil end
local hyph_data = {}
for _, hobj in ipairs(hyph_objs) do
insert(hyph_data, {
hyph = hobj.hyph,
q = hobj.q,
qq = hobj.qq,
a = hobj.a,
aa = hobj.aa,
})
end
return bullet .. require(hyphenation_module).format_hyphenations({
lang = get_lang(),
hyphs = hyph_data,
caption = "Syllabification"
})
end
-- Format audio object
local function fmt_audio(audio_obj, bullet)
return bullet .. require(audio_module).format_audio(audio_obj)
end
-- Format homophone objects with qualifiers
local function fmt_hmp(hmp_objs, bullet)
if not hmp_objs or #hmp_objs == 0 then return nil end
return bullet .. require(homophones_module).format_homophones({
lang = get_lang(),
homophones = hmp_objs,
})
end
function export.show(frame)
local parargs = frame:getParent().args
local args = require(parameters_module).process(parargs, {
[1] = {default = "nãmas"},
["bullets"] = {type = "number", default = 1},
})
local input = args[1]
local nb = args.bullets
local b1 = string.rep("*", nb) .. " "
local b2 = string.rep("*", nb + 1) .. " "
local raw_terms = require(parse_util_module).split_escaping(input, ",")
local parsed_terms = {}
for i, raw in ipairs(raw_terms) do
raw = raw:match("^%s*(.-)%s*$")
local pt = parse_one_term(raw, function(msg)
error("lt-pron: " .. msg .. " (term " .. i .. ")")
end)
parsed_terms[#parsed_terms + 1] = pt
end
m_IPA = m_IPA or require("Module:IPA")
local text_parts = {}
for _, pt in ipairs(parsed_terms) do
-- Determine bullet level: same level as IPA for single pronunciation, indented for multiple
local content_bullet = (#parsed_terms == 1) and b1 or b2
-- Generate IPA
local ipa_str = to_ipa(pt.term, pt.pagename)
-- Handle rhyme: manual override, suppression, or auto-generation
local rhyme_objs = nil
local suppress_rhyme = false
if #pt.rhyme_list > 0 then
for _, robj in ipairs(pt.rhyme_list) do
if robj.rhyme == "-" then
suppress_rhyme = true
break
end
end
if not suppress_rhyme then
rhyme_objs = {}
for _, robj in ipairs(pt.rhyme_list) do
-- If num_syl not specified, try to get from auto-generated hyphenation
if not robj.num_syl then
local auto_hyph = get_hyphenation(pt.term, pt.pagename)
if auto_hyph and #auto_hyph > 0 then
-- Use syllable_count field if available (for multi-word phrases), otherwise use array length
local syl_count = auto_hyph.syllable_count or #auto_hyph
robj.num_syl = {syl_count}
end
end
insert(rhyme_objs, robj)
end
end
else
-- Auto-generate rhyme (skip if term ends with -)
if not pt.term:match("%-$") then
local rhyme_str = get_rhyme(ipa_str)
if rhyme_str then
local auto_hyph = get_hyphenation(pt.term, pt.pagename)
-- Use syllable_count field if available (for multi-word phrases), otherwise use array length
local num_syl = (auto_hyph and #auto_hyph > 0) and {auto_hyph.syllable_count or #auto_hyph} or nil
rhyme_objs = {{rhyme = rhyme_str, num_syl = num_syl}}
end
end
end
-- Handle hyphenation: manual override, suppression, or auto-generation
local hyph_objs = nil
local suppress_hyph = false
if #pt.hyph_list > 0 then
for _, hobj in ipairs(pt.hyph_list) do
if hobj.syllabification == "-" then
suppress_hyph = true
break
end
end
if not suppress_hyph then
hyph_objs = pt.hyph_list
end
else
-- Auto-generate hyphenation
local auto_hyph = get_hyphenation(pt.term, pt.pagename)
if auto_hyph and #auto_hyph > 0 then
hyph_objs = {{hyph = auto_hyph, syllabification = concat(auto_hyph, ".")}}
end
end
-- Format IPA with qualifiers and references
local ipa_item = {pron = "[" .. ipa_str .. "]"}
if pt.q then ipa_item.q = pt.q end
if pt.qq then ipa_item.qq = pt.qq end
if pt.a then ipa_item.a = pt.a end
if pt.aa then ipa_item.aa = pt.aa end
if pt.refs then ipa_item.refs = pt.refs end
text_parts[#text_parts + 1] = b1 .. m_IPA.format_IPA_full({
lang = get_lang(),
items = {ipa_item}
})
-- Audio
for _, aud in ipairs(pt.audio_list or {}) do
text_parts[#text_parts + 1] = fmt_audio(aud, content_bullet)
end
-- Rhyme
if rhyme_objs then
local r = fmt_rhyme(rhyme_objs, content_bullet)
if r then text_parts[#text_parts + 1] = r end
end
-- Hyphenation
if hyph_objs then
local h = fmt_hyph(hyph_objs, content_bullet)
if h then text_parts[#text_parts + 1] = h end
end
-- Homophones
if pt.hmp_list and #pt.hmp_list > 0 then
local hmp = fmt_hmp(pt.hmp_list, content_bullet)
if hmp then text_parts[#text_parts + 1] = hmp end
end
end
return concat(text_parts, "\n")
end
export.toIPA = to_ipa
export.hyphenate = get_hyphenation
export.rhyme = get_rhyme
return export
c2lz576cs35gy0avor7sqm355mw6nki
9753782
9753781
2026-05-06T09:13:41Z
TongcyDai
53191
9753782
Scribunto
text/plain
--[==[
Backend for {{lt-pr}}: IPA, hyphenation, and rhyme generation.
Author: TongcyDai
]==]
local export = {}
local m_debug = require("Module:debug")
local m_str = require("Module:string utilities")
local m_langdata = require("Module:languages/data")
local u = m_str.char
local ulower = m_str.lower
local usub = m_str.sub
local ulen = m_str.len
-- Accent mark constants
local c = m_langdata.chars
local GRAVE = c.grave -- U+0300
local ACUTE = c.acute -- U+0301
local TILDE = c.tilde -- U+0303
-- Lazy-loaded external modules
local m_IPA
local audio_module = "Module:audio"
local homophones_module = "Module:homophones"
local hyphenation_module = "Module:hyphenation"
local rhymes_module = "Module:rhymes"
local parameters_module = "Module:parameters"
local parse_util_module = "Module:parse utilities"
local concat = table.concat
local insert = table.insert
local lang_obj
local function get_lang()
if not lang_obj then
lang_obj = require("Module:languages").getByCode("lt")
end
return lang_obj
end
local function track(reason)
m_debug.track("lt-pron/" .. reason)
end
-- ============================================================================
-- SECTION 1: Orthography & Phonology Definitions
-- ============================================================================
-- Suffix table for automatic phonetic adjustments (currently disabled)
-- Exact matching lists (must include precomposed normalized tone markers)
--[[
local SUFFIX_LOAN = {
["fòbas"]=true, ["fòbė"]=true, ["fòbija"]=true, ["fònas"]=true, ["fònė"]=true,
["lògas"]=true, ["lògija"]=true, ["skòpas"]=true
}
--]]
-- Consonant classes for syllabification (Sonority Hierarchy)
local CLASS = {
R = {["l"]=true, ["m"]=true, ["n"]=true, ["r"]=true, ["v"]=true, ["j"]=true},
S = {["s"]=true, ["z"]=true, ["š"]=true, ["ž"]=true, ["f"]=true, ["x"]=true, ["h"]=true, ["ch"]=true},
T = {["p"]=true, ["b"]=true, ["t"]=true, ["d"]=true, ["k"]=true, ["g"]=true, ["c"]=true, ["dz"]=true, ["č"]=true, ["dž"]=true}
}
-- Front vowels trigger palatalization
local FRONT_V = {
["e"]=true, ["ę"]=true, ["ė"]=true, ["i"]=true, ["į"]=true, ["y"]=true, ["ie"]=true, ["ei"]=true, ["eu"]=true
}
-- Vowel -> Base IPA mapping (Unstressed short/inherent)
local V_IPA = {
["a"] = "ɐ", ["ą"] = "ɑː", ["e"] = "ɛ", ["ę"] = "æː", ["ė"] = "eː",
["i"] = "ɪ", ["į"] = "iː", ["y"] = "iː",
["u"] = "ʊ", ["ų"] = "uː", ["ū"] = "uː", ["o"] = "oː",
["ie"] = "iɛ", ["uo"] = "uɔ",
-- Unstressed simple diphthongs
["ai"] = "ɐɪ", ["au"] = "ɒʊ", ["ei"] = "ɛɪ", ["eu"] = "ɛʊ",
["ui"] = "ʊɪ", ["oi"] = "ɔɪ", ["ou"] = "ɔʊ"
}
-- Consonant -> Base IPA mapping (Unpalatalized)
local CONS_IPA = {
["b"] = "b", ["c"] = "t͡s", ["č"] = "t͡ʃ", ["d"] = "d",
["dz"] = "d͡z", ["dž"] = "d͡ʒ", ["ch"] = "x",
["f"] = "f", ["g"] = "ɡ", ["h"] = "ɣ", ["j"] = "j",
["k"] = "k", ["l"] = "l", ["m"] = "m", ["n"] = "n",
["p"] = "p", ["r"] = "r", ["s"] = "s", ["š"] = "ʃ",
["t"] = "t", ["v"] = "ʋ", ["z"] = "z", ["ž"] = "ʒ",
}
-- Voicing pairs for Voicing Assimilation
local VOICING_PAIRS = {
["p"]="b", ["b"]="p", ["t"]="d", ["d"]="t", ["k"]="g", ["g"]="k",
["c"]="dz", ["dz"]="c", ["č"]="dž", ["dž"]="č",
["s"]="z", ["z"]="s", ["š"]="ž", ["ž"]="š", ["x"]="ɣ", ["ɣ"]="x"
}
local function is_voiced(c)
local voiced_set = {["b"]=true, ["d"]=true, ["g"]=true, ["dz"]=true, ["dž"]=true, ["z"]=true, ["ž"]=true, ["ɣ"]=true}
return voiced_set[c] == true
end
-- Accent pairs for conjugation module support
-- Maps base vowel/diphthong to accented forms (falling/rising)
local ACCENT_PAIRS = {
-- Long vowels (acute or tilde)
["ą"] = {acute="ą"..ACUTE, tilde="ą"..TILDE},
["ę"] = {acute="ę"..ACUTE, tilde="ę"..TILDE},
["ė"] = {acute="ė"..ACUTE, tilde="ė"..TILDE},
["y"] = {acute="y"..ACUTE, tilde="y"..TILDE},
["į"] = {acute="į"..ACUTE, tilde="į"..TILDE},
["ū"] = {acute="ū"..ACUTE, tilde="ū"..TILDE},
["ų"] = {acute="ų"..ACUTE, tilde="ų"..TILDE},
-- a/e can be short (grave) or long (tilde)
["a"] = {grave="a"..GRAVE, tilde="a"..TILDE},
["e"] = {grave="e"..GRAVE, tilde="e"..TILDE},
-- o: ó/õ/o are long, ò is short
["o"] = {acute="o"..ACUTE, grave="o"..GRAVE, tilde="o"..TILDE},
-- Short vowels i/u (only grave)
["i"] = {grave="i"..GRAVE},
["u"] = {grave="u"..GRAVE},
-- Simple diphthongs
["ai"] = {acute="a"..ACUTE.."i", tilde="a".."i"..TILDE},
["au"] = {acute="a"..ACUTE.."u", tilde="a".."u"..TILDE},
["ei"] = {acute="e"..ACUTE.."i", tilde="e".."i"..TILDE},
["ui"] = {grave="u"..GRAVE.."i", tilde="u".."i"..TILDE},
-- Complex diphthongs
["ie"] = {acute="i"..ACUTE.."e", tilde="i".."e"..TILDE},
["uo"] = {acute="u"..ACUTE.."o", tilde="u".."o"..TILDE},
-- Mixed diphthongs (a series - acute/tilde)
["al"] = {acute="a"..ACUTE.."l", tilde="a".."l"..TILDE},
["am"] = {acute="a"..ACUTE.."m", tilde="a".."m"..TILDE},
["an"] = {acute="a"..ACUTE.."n", tilde="a".."n"..TILDE},
["ar"] = {acute="a"..ACUTE.."r", tilde="a".."r"..TILDE},
-- Mixed diphthongs (e series - acute/grave/tilde, grave for foreign)
["el"] = {acute="e"..ACUTE.."l", grave="e"..GRAVE.."l", tilde="e".."l"..TILDE},
["em"] = {acute="e"..ACUTE.."m", grave="e"..GRAVE.."m", tilde="e".."m"..TILDE},
["en"] = {acute="e"..ACUTE.."n", grave="e"..GRAVE.."n", tilde="e".."n"..TILDE},
["er"] = {acute="e"..ACUTE.."r", grave="e"..GRAVE.."r", tilde="e".."r"..TILDE},
-- Mixed diphthongs (i series - grave/tilde)
["il"] = {grave="i"..GRAVE.."l", tilde="i".."l"..TILDE},
["im"] = {grave="i"..GRAVE.."m", tilde="i".."m"..TILDE},
["in"] = {grave="i"..GRAVE.."n", tilde="i".."n"..TILDE},
["ir"] = {grave="i"..GRAVE.."r", tilde="i".."r"..TILDE},
-- Mixed diphthongs (u series - grave/tilde)
["ul"] = {grave="u"..GRAVE.."l", tilde="u".."l"..TILDE},
["um"] = {grave="u"..GRAVE.."m", tilde="u".."m"..TILDE},
["un"] = {grave="u"..GRAVE.."n", tilde="u".."n"..TILDE},
["ur"] = {grave="u"..GRAVE.."r", tilde="u".."r"..TILDE},
-- Foreign diphthongs (grave only)
["eu"] = {grave="e"..GRAVE.."u"},
["oi"] = {grave="o"..GRAVE.."i"},
["ou"] = {grave="o"..GRAVE.."u"},
["ol"] = {grave="o"..GRAVE.."l"},
["om"] = {grave="o"..GRAVE.."m"},
["on"] = {grave="o"..GRAVE.."n"},
["or"] = {grave="o"..GRAVE.."r"},
}
-- ============================================================================
-- SECTION 2: Lexical Normalization (Avoid NFD destruction)
-- ============================================================================
-- Helper: Remove all accent marks from text (moved here for early use)
local function remove_all_accents(text)
-- Convert to NFD to separate base characters from combining marks
local nfd = mw.ustring.toNFD(text)
-- Remove combining accent marks (grave, acute, tilde)
local clean = mw.ustring.gsub(nfd, "["..GRAVE..ACUTE..TILDE.."]", "")
-- Return as NFD (don't convert back to NFC)
return clean
end
-- Extract pagename from input or load from headword data
local function get_pagename(input)
-- Check for manual override: <base:xxx>
local manual = input:match("<base:([^>]+)>")
if manual then
return manual, input:gsub("<base:[^>]+>", "")
end
-- Load from headword data
local success, data = pcall(function()
return mw.loadData("Module:headword/data").pagename
end)
if success and data then
return data, input
end
return nil, input
end
-- Identify respelling j and (j) positions
local function identify_respelling_glides(input_with_accents, pagename)
if not pagename then
return {} -- No pagename, no respelling detection
end
-- Remove all accents from input
local input_clean = remove_all_accents(input_with_accents)
-- Remove special markers (^, .)
input_clean = mw.ustring.gsub(input_clean, "[%^%.]", "")
-- Remove <base:...> if present
input_clean = mw.ustring.gsub(input_clean, "<base:[^>]+>", "")
-- Remove literal ˌ
input_clean = mw.ustring.gsub(input_clean, "ˌ", "")
-- Remove softening mark ʼ
input_clean = mw.ustring.gsub(input_clean, "ʼ", "")
-- Remove (j) markers - replace with j for comparison
input_clean = mw.ustring.gsub(input_clean, "%(j%)", "j")
-- Remove spaces for comparison
input_clean = mw.ustring.gsub(input_clean, " ", "")
-- Convert to NFC for comparison
input_clean = mw.ustring.toNFC(input_clean)
-- Normalize pagename (lowercase, remove spaces)
local pagename_clean = ulower(pagename)
pagename_clean = mw.ustring.gsub(pagename_clean, " ", "")
-- Find respelling j positions (j in input but not in pagename)
local respelling_positions = {}
local input_idx = 1
local page_idx = 1
while input_idx <= mw.ustring.len(input_clean) do
local input_char = mw.ustring.sub(input_clean, input_idx, input_idx)
if input_char == "j" then
-- Check if this j exists in pagename at corresponding position
local page_char = page_idx <= mw.ustring.len(pagename_clean)
and mw.ustring.sub(pagename_clean, page_idx, page_idx)
if page_char ~= "j" then
-- This is a respelling j
insert(respelling_positions, input_idx)
input_idx = input_idx + 1
-- Don't advance page_idx
else
-- This is an original j
input_idx = input_idx + 1
page_idx = page_idx + 1
end
else
input_idx = input_idx + 1
page_idx = page_idx + 1
end
end
return respelling_positions
end
-- Safe mapping to extract tones without destroying precomposed characters
local TONE_MAP = {
["á"]="a,acute", ["à"]="a,grave", ["ã"]="a,tilde",
["é"]="e,acute", ["è"]="e,grave", ["ẽ"]="e,tilde",
["í"]="i,acute", ["ì"]="i,grave", ["ĩ"]="i,tilde",
["ý"]="y,acute", ["ỳ"]="y,grave", ["ỹ"]="y,tilde",
["ú"]="u,acute", ["ù"]="u,grave", ["ũ"]="u,tilde",
["ó"]="o,acute", ["ò"]="o,grave", ["õ"]="o,tilde",
-- Precomposed vowels with macrons/ogoneks + tones (represented here via standard combinations)
["ą́"]="ą,acute", ["ą̃"]="ą,tilde",
["ę́"]="ę,acute", ["ę̃"]="ę,tilde",
["ė́"]="ė,acute", ["ė̃"]="ė,tilde",
["į́"]="į,acute", ["į̃"]="į,tilde",
["ų́"]="ų,acute", ["ų̃"]="ų,tilde",
["ū́"]="ū,acute", ["ū̃"]="ū,tilde",
-- Tilde on liquids (for semi-diphthongs)
["l̃"]="l,tilde", ["m̃"]="m,tilde", ["ñ"]="n,tilde", ["r̃"]="r,tilde",
["j̃"]="j,tilde"
}
-- Resolves NFD back to safe representation if input was somehow NFD
local function safe_normalize(text)
local INVALID_CHARS = {
[0xE001] = { replace = "ą́" },
[0xE003] = { replace = "ą̃" },
[0xE005] = { replace = "ę́" },
[0xE007] = { replace = "ę̃" },
[0xE009] = { replace = "ė́" },
[0xE00B] = { replace = "ė̃" },
[0xE00C] = { replace = "i̇̀" },
[0xE00D] = { replace = "i̇́" },
[0xE00E] = { replace = "i̇̃" },
[0xE010] = { replace = "į̇́" },
[0xE012] = { replace = "į̇̃" },
[0xE014] = { replace = "j̇̃" },
[0xE016] = { replace = "l̃" },
[0xE018] = { replace = "m̃" },
[0xE01A] = { replace = "r̃" },
[0xE01C] = { replace = "ų́" },
[0xE01E] = { replace = "ų̃" },
[0xE020] = { replace = "ū́" },
[0xE022] = { replace = "ū̃" },
-- Note: U+0307 (dotabove) is no longer rejected, but normalized below
}
-- Reject non-standard/PUA characters to enforce clean Wiktionary source
for codepoint, data in pairs(INVALID_CHARS) do
local char = mw.ustring.char(codepoint)
if mw.ustring.find(text, char) then
if data.custom_msg then
error(data.custom_msg)
else
local hex_str = string.format("%04X", codepoint)
error(string.format(
'lt-pron: Private use area character U+%s "%s" detected. Please use "%s" instead.',
hex_str, char, data.replace
))
end
end
end
-- Convert to NFD for normalization
text = mw.ustring.toNFD(text)
-- Track non-standard input formats (before normalization)
local DOT_AB = u(0x0307)
local OGONEK = u(0x0328)
-- Detect dotless i/j
if mw.ustring.find(text, "[ıȷ]") then
track('dotless-ij')
end
-- Detect precomposed i/j with accents (should be i + dotabove + accent)
if mw.ustring.find(text, "[íìĩ]") then
track('precomposed-i-accent')
end
-- Detect explicit dotabove usage (which is actually correct for accented i/j)
if mw.ustring.find(text, "[ij]" .. DOT_AB) then
track('explicit-dotabove')
end
-- Normalize i/j with dotabove (remove dotabove, convert dotless to standard)
-- This handles: i̇, j̇, ı, ȷ, į̇ -> i, j, i, j, į
text = mw.ustring.gsub(text, "([iıjȷ])(" .. OGONEK .. "?)" .. DOT_AB, function(base, below)
base = (base == "ı") and "i" or (base == "ȷ") and "j" or base
return base .. below
end)
-- Convert any remaining dotless forms to standard dotted forms
text = mw.ustring.gsub(text, "ı", "i")
text = mw.ustring.gsub(text, "ȷ", "j")
-- Convert back to NFC and parse tones
text = mw.ustring.toNFC(text)
local result = {}
local i = 1
while i <= mw.ustring.len(text) do
local c = mw.ustring.sub(text, i, i)
local c_lower = ulower(c) -- Convert to lowercase for TONE_MAP lookup
-- Look ahead for combining marks if any slipped through
local next_c = mw.ustring.sub(text, i+1, i+1)
local next_c_lower = ulower(next_c)
local combined = c_lower .. next_c_lower
if TONE_MAP[combined] then
local parts = mw.text.split(TONE_MAP[combined], ",")
-- Preserve original case of base character
local base_char = parts[1]
if c ~= c_lower then
base_char = mw.ustring.upper(base_char)
end
insert(result, {char = base_char, tone = parts[2]})
i = i + 2
elseif TONE_MAP[c_lower] then
local parts = mw.text.split(TONE_MAP[c_lower], ",")
-- Preserve original case of base character
local base_char = parts[1]
if c ~= c_lower then
base_char = mw.ustring.upper(base_char)
end
insert(result, {char = base_char, tone = parts[2]})
i = i + 1
else
insert(result, {char = c, tone = nil})
i = i + 1
end
end
return result
end
-- Display text helper: Insert dotabove between i/j and accent marks
-- (Based on Module:lt-common.makeDisplayText)
local function makeDisplayText(text)
local DOT_AB = u(0x0307)
local OGONEK = u(0x0328)
-- Convert to NFD for processing
text = mw.ustring.toNFD(text)
-- Insert dotabove between i/j and accent marks
text = mw.ustring.gsub(text, "([ij])(" .. OGONEK .. "?)([" .. GRAVE .. ACUTE .. TILDE .. "])",
function(base, below, accent)
return base .. below .. DOT_AB .. accent
end)
-- Convert back to NFC
return mw.ustring.toNFC(text)
end
-- ============================================================================
-- SECTION 3: Tokenization & Diphthong/Digraph resolution
-- ============================================================================
local function get_type(c)
local lc = ulower(c)
if V_IPA[lc] then return "V" end
if CLASS.R[lc] then return "R" end
if CLASS.S[lc] then return "S" end
if CLASS.T[lc] then return "T" end
return "UNKNOWN"
end
-- Helper: Convert token array back to NFC string for suffix/prefix matching
local function tokens_to_string(tok_list)
local s = ""
for _, t in ipairs(tok_list) do
local c = t.char
if t.tone == "grave" then c = c .. GRAVE
elseif t.tone == "acute" then c = c .. ACUTE
elseif t.tone == "tilde" then c = c .. TILDE
end
s = s .. c
end
return mw.ustring.toNFC(s)
end
-- Apply automatic properties based on word structure (e.g. loanwords)
local function apply_auto_properties(tokens)
local word_str = ulower(tokens_to_string(tokens))
--[[ Suffix detection for loanword quality (currently disabled)
local matched_loan_suff = nil
for suff, _ in pairs(SUFFIX_LOAN) do
if mw.ustring.sub(word_str, -mw.ustring.len(suff)) == suff then
matched_loan_suff = suff; break
end
end
if matched_loan_suff then
local suff_len = mw.ustring.len(matched_loan_suff)
local acc_len = 0
for i = #tokens, 1, -1 do
local t = tokens[i]
acc_len = acc_len + mw.ustring.len(tokens_to_string({t}))
if t.type == "V" and ulower(t.char) == "o" then
t.auto_targeted = true
if not t.force_default then t.loan_quality = true end
end
if acc_len >= suff_len then break end
end
end
-- Check for redundant asterisks globally
for _, t in ipairs(tokens) do
if t.force_default and not t.auto_targeted then
track('redundant-asterisk')
end
end
--]]
return tokens
end
-- Strict whitelist for valid diphthong and tone combinations
local function is_strict_diphthong(c1, t1, c2, t2)
local combo = c1 .. c2
-- Unstressed: neither element has a tone
if not t1 and not t2 then
return (combo == "ie" or combo == "uo" or combo == "ai" or combo == "au" or combo == "ei" or combo == "ui" or combo == "oi" or combo == "ou" or combo == "eu")
end
-- Tone on the first element (acute or grave)
if t1 and not t2 then
if t1 == "acute" then
return (combo == "ai" or combo == "au" or combo == "ei" or combo == "ie" or combo == "uo" or combo == "oi")
elseif t1 == "grave" then
return (combo == "ui" or combo == "oi" or combo == "ou" or combo == "eu")
end
end
-- Tone on the second element (tilde)
if not t1 and t2 then
if t2 == "tilde" then
return (combo == "ai" or combo == "au" or combo == "ei" or combo == "ui" or combo == "ie" or combo == "uo" or combo == "eu")
end
end
return false
end
local function tokenize(text_str, pagename)
local raw_chars = safe_normalize(text_str)
-- Identify respelling glides
local respelling_j_positions = identify_respelling_glides(text_str, pagename)
local tokens = {}
local i = 1
while i <= #raw_chars do
local curr = raw_chars[i]
local nxt = raw_chars[i+1]
local lc_curr = ulower(curr.char)
local lc_nxt = nxt and ulower(nxt.char)
-- Explicit Modifiers
if curr.char == "^" then
local last_v = nil
for j = #tokens, 1, -1 do
if tokens[j].type == "V" then last_v = tokens[j]; break end
end
if last_v then
local lc_v = ulower(last_v.char)
local base_v = mw.ustring.sub(lc_v, -1) -- Last char for silent i combinations
local is_e_base = (lc_v == "e") or (base_v == "e")
local is_o_base = (lc_v == "o") or (base_v == "o")
-- Check for valid e: no tone or grave only
if is_e_base then
if not last_v.tone or last_v.tone == "grave" then
last_v.loan_quality = true
elseif last_v.tone == "acute" then
error("lt-pron: '^' cannot be used with acute 'é' (use only with plain 'e' or grave 'è')")
elseif last_v.tone == "tilde" then
error("lt-pron: '^' cannot be used with tilde 'ẽ' (use only with plain 'e' or grave 'è')")
end
-- Check for valid o: no tone only
elseif is_o_base then
if not last_v.tone then
last_v.loan_quality = true
elseif last_v.tone == "grave" then
error("lt-pron: '^' is redundant for 'ò' (already pronounced [ɔ])")
elseif last_v.tone == "acute" or last_v.tone == "tilde" then
error("lt-pron: '^' cannot be used with 'ó' or 'õ' (native long vowels)")
end
else
error("lt-pron: '^' can only be used with 'e' (plain/grave) or 'o' (plain). Found: '" .. lc_v .. "'")
end
end
i = i + 1
-- Check for (j) marker
elseif curr.char == "(" and i + 2 <= #raw_chars then
local char2 = raw_chars[i+1]
local char3 = raw_chars[i+2]
if char2.char == "j" and char3.char == ")" then
insert(tokens, {char = "j", type = "R", tone = nil, is_respelling = true, is_optional = true, original_char = "-"})
i = i + 3
else
error("lt-pron: '(' must be followed by 'j)' to form the (j) glide marker")
end
--[[ Asterisk modifier (currently disabled)
elseif curr.char == "*" then
local last_v = nil
for j = #tokens, 1, -1 do
if tokens[j].type == "V" then last_v = tokens[j]; break end
end
if last_v then last_v.force_default = true end
i = i + 1
--]]
elseif curr.char == "." then
insert(tokens, {char = ".", type = "BOUNDARY"})
i = i + 1
elseif curr.char == "ˌ" then
insert(tokens, {char = "ˌ", type = "SECONDARY_STRESS_BOUNDARY"})
i = i + 1
elseif curr.char == "ʼ" then
-- Softening mark: palatalize the preceding consonant
for j = #tokens, 1, -1 do
local tok = tokens[j]
if tok.type == "T" or tok.type == "S" or tok.type == "R" then
tok.softening_mark = true
break
end
end
i = i + 1
elseif lc_curr == "d" and nxt and (lc_nxt == "z" or lc_nxt == "ž") then
insert(tokens, {char = curr.char .. nxt.char, type = "T", tone = nil})
i = i + 2
elseif lc_curr == "c" and nxt and lc_nxt == "h" then
insert(tokens, {char = curr.char .. nxt.char, type = "S", tone = nil})
i = i + 2
-- Special handling for V + j̃ (final j with tilde): treat as V + ĩ diphthong
elseif curr.type ~= "BOUNDARY" and get_type(curr.char) == "V" and nxt and ulower(nxt.char) == "j" and nxt.tone == "tilde" then
-- Check if this is word-final (no more non-boundary tokens after j̃)
local is_final = true
for k = i + 2, #raw_chars do
if raw_chars[k].char ~= " " then
is_final = false
break
end
end
if is_final then
-- Combine V + j̃ as a diphthong V + ĩ (e.g., uj̃ → ui̇̃)
local v_char = ulower(curr.char)
local combined_char = v_char .. "i" -- e.g., "u" + "i" = "ui"
local tone = "tilde" -- j̃'s tilde
local tone_position = 2 -- Tilde is on the second vowel (i)
insert(tokens, {
char = combined_char,
type = "V",
tone = tone,
tone_position = tone_position,
original_char = v_char .. "j" -- For hyphenation: display as "uj̃"
})
i = i + 2
else
-- Not final, treat as regular V + j
insert(tokens, {char = curr.char, type = "V", tone = curr.tone})
i = i + 1
end
elseif curr.type ~= "BOUNDARY" and get_type(curr.char) == "V" and nxt and get_type(nxt.char) == "V" then
local nxt_nxt = raw_chars[i+2]
local lc_nxt_nxt = nxt_nxt and ulower(nxt_nxt.char)
local back_diph = lc_nxt and lc_nxt_nxt and (lc_nxt .. lc_nxt_nxt)
local is_silent_i_diph = (lc_curr == "i" and not curr.tone) and
(back_diph == "au" or back_diph == "ai" or back_diph == "ou" or back_diph == "oi" or back_diph == "uo")
local is_silent_i_mono = (lc_curr == "i" and not curr.tone) and
(lc_nxt == "a" or lc_nxt == "ą" or lc_nxt == "o" or
lc_nxt == "u" or lc_nxt == "ų" or lc_nxt == "ū" or lc_nxt == "ɔ")
local is_valid_diph = is_strict_diphthong(lc_curr, curr.tone, lc_nxt, nxt and nxt.tone)
if is_valid_diph and nxt_nxt and get_type(nxt_nxt.char) == "V" then
local lc_nxt_nxt = ulower(nxt_nxt.char)
local is_next_valid_diph = is_strict_diphthong(lc_nxt, nxt.tone, lc_nxt_nxt, nxt_nxt.tone)
if is_next_valid_diph then
-- Resolve ambiguous triplets (e.g., auo -> a.uo is standard)
-- Break the first valid diphthong unless explicitly stressed
if not curr.tone then
is_valid_diph = false
end
end
end
if is_silent_i_diph then
local tone = nxt.tone or nxt_nxt.tone
local tone_position = nil
if tone then
-- For silent i diphthongs (e.g., iau), position is relative to the full string
-- Position 2 = middle vowel, Position 3 = last vowel
if nxt.tone then
tone_position = 2
elseif nxt_nxt.tone then
tone_position = 3
end
end
insert(tokens, {char = curr.char .. nxt.char .. nxt_nxt.char, type = "V", tone = tone, has_silent_i = true, tone_position = tone_position})
i = i + 3
elseif is_silent_i_mono then
local tone = nxt.tone
local tone_position = nil
if tone then
-- For silent i monosyllables (e.g., ia), position 2 = second character
tone_position = 2
end
insert(tokens, {char = curr.char .. nxt.char, type = "V", tone = tone, has_silent_i = true, tone_position = tone_position})
i = i + 2
elseif is_valid_diph then
local tone = curr.tone or nxt.tone
local tone_position = nil
if tone then
-- Record which vowel carries the tone (1 = first, 2 = second)
if curr.tone then
tone_position = 1
elseif nxt.tone then
tone_position = 2
end
end
insert(tokens, {char = curr.char .. nxt.char, type = "V", tone = tone, tone_position = tone_position})
i = i + 2
else
insert(tokens, {char = curr.char, type = "V", tone = curr.tone})
i = i + 1
end
else
if curr.char ~= " " then
local tok_type = get_type(curr.char)
local is_respelling_j = false
-- Check if this is a respelling j
if ulower(curr.char) == "j" and #respelling_j_positions > 0 then
-- Build cleaned string up to current position to find clean position
local cleaned_so_far = ""
for k = 1, i do
local c = raw_chars[k]
if c.char ~= "^" and c.char ~= "." and c.char ~= " " and c.char ~= "ʼ" and c.char ~= "ˌ" then
local char_clean = c.char
-- Don't add tone marks to cleaned string
if not c.tone then
cleaned_so_far = cleaned_so_far .. char_clean
else
-- Add base character without tone
cleaned_so_far = cleaned_so_far .. char_clean
end
end
end
local clean_pos = mw.ustring.len(cleaned_so_far)
-- Check if this position is in respelling list
for _, pos in ipairs(respelling_j_positions) do
if pos == clean_pos then
is_respelling_j = true
break
end
end
end
if ulower(curr.char) == "j" then
local tok_data = {char = curr.char, type = tok_type, tone = curr.tone, is_respelling = is_respelling_j, is_optional = false}
if is_respelling_j then
tok_data.original_char = "-" -- Respelling: use "-" to indicate not in orthography
end
insert(tokens, tok_data)
else
insert(tokens, {char = curr.char, type = tok_type, tone = curr.tone})
end
end
i = i + 1
end
end
-- Validate respelling glides are between vowels
for i, tok in ipairs(tokens) do
if tok.is_respelling then
local prev_is_vowel = false
local next_is_vowel = false
-- Check previous non-boundary token
for j = i - 1, 1, -1 do
if tokens[j].type ~= "BOUNDARY" and tokens[j].type ~= "SECONDARY_STRESS_BOUNDARY" then
prev_is_vowel = (tokens[j].type == "V")
break
end
end
-- Check next non-boundary token
for j = i + 1, #tokens do
if tokens[j].type ~= "BOUNDARY" and tokens[j].type ~= "SECONDARY_STRESS_BOUNDARY" then
next_is_vowel = (tokens[j].type == "V")
break
end
end
if not (prev_is_vowel and next_is_vowel) then
error("lt-pron: Respelling glide 'j' or '(j)' must be between two vowels")
end
end
end
return apply_auto_properties(tokens)
end
-- ============================================================================
-- SECTION 4: Syllabification
-- ============================================================================
-- Pre-syllabification: Merge geminate (doubled) consonants
-- This must happen BEFORE syllabification to prevent false mixed diphthongs
-- For example: pérrašo → pér-ra-šo would incorrectly treat ér as a mixed diphthong
-- By merging rr→r first, we get pé-ra-šo, correctly keeping é as a pure vowel
local function merge_geminate_consonants(tokens)
local SIBILANTS = {["s"]=true, ["z"]=true, ["š"]=true, ["ž"]=true}
local i = 1
while i < #tokens do
local tok = tokens[i]
local nxt = tokens[i+1]
local tok_is_cons = (tok.type == "T" or tok.type == "S" or tok.type == "R")
local nxt_is_cons = (nxt.type == "T" or nxt.type == "S" or nxt.type == "R")
if tok_is_cons and nxt_is_cons then
local tok_char = ulower(tok.char)
local nxt_char = ulower(nxt.char)
local tok_is_sib = SIBILANTS[tok_char]
local nxt_is_sib = SIBILANTS[nxt_char]
-- Merge if: (1) both are sibilants, or (2) identical consonants
if (tok_is_sib and nxt_is_sib) or (tok_char == nxt_char) then
-- Remove the first token (keep the second)
table.remove(tokens, i)
-- Don't increment i, check the same position again
else
i = i + 1
end
else
i = i + 1
end
end
end
local function syllabify(tokens)
local syllables = {}
local current_syl = {}
-- Check for leading secondary stress marker
local has_initial_secondary_stress = false
if #tokens > 0 and tokens[1].type == "SECONDARY_STRESS_BOUNDARY" then
has_initial_secondary_stress = true
end
local v_indices = {}
for i, tok in ipairs(tokens) do
if tok.type == "V" then insert(v_indices, i) end
end
if #v_indices == 0 then return {tokens} end -- Edge case: no vowels
local boundaries = {}
-- Sonority Sequencing Algorithm combined with Morphophonological Maximum Onset
for idx = 1, #v_indices - 1 do
local v1_idx = v_indices[idx]
local v2_idx = v_indices[idx + 1]
local raw_c_tokens = {}
local forced_boundary_idx = nil
for i = v1_idx + 1, v2_idx - 1 do
if tokens[i].type == "BOUNDARY" or tokens[i].type == "SECONDARY_STRESS_BOUNDARY" then
forced_boundary_idx = i
else
insert(raw_c_tokens, {t=tokens[i], orig_idx=i})
end
end
if forced_boundary_idx then
boundaries[forced_boundary_idx] = true
elseif #raw_c_tokens == 0 then
-- Hiatus
boundaries[v2_idx] = true
else
-- Macro-Token Grouping: Treat consecutive sibilants (S) as a single phonological unit
local macro_c = {}
local i = 1
while i <= #raw_c_tokens do
local current = raw_c_tokens[i]
if current.t.type == "S" then
local absorbed = {current}
local j = i + 1
-- Absorb any subsequent S tokens into this macro unit, keeping track of them
while j <= #raw_c_tokens and raw_c_tokens[j].t.type == "S" do
insert(absorbed, raw_c_tokens[j])
j = j + 1
end
insert(macro_c, {type = "S", orig_idx = current.orig_idx, tokens = absorbed})
i = j
else
insert(macro_c, {type = current.t.type, orig_idx = current.orig_idx, tokens = {current}})
i = i + 1
end
end
local m_count = #macro_c
if m_count == 1 then
-- V.CV (or V.SSV, e.g., sausšala -> sau.sšala)
boundaries[macro_c[1].orig_idx] = true
elseif m_count == 2 then
local t1, t2 = macro_c[1].type, macro_c[2].type
-- ST, SR, TR -> V.CCV
if (t1=="S" and t2=="T") or (t1=="S" and t2=="R") or (t1=="T" and t2=="R") then
boundaries[macro_c[1].orig_idx] = true
else
-- Handle TSS and RSS sequences properly (e.g., Oksfordas, transformavo).
-- If the macro cluster is T+S or R+S, and the S unit absorbed multiple sibilants,
-- split between the first and second sibilant (TS.S, RS.S).
if (t1=="T" or t1=="R") and t2=="S" and #macro_c[2].tokens > 1 then
boundaries[macro_c[2].tokens[2].orig_idx] = true
else
-- Default VC.CV
boundaries[macro_c[2].orig_idx] = true
end
end
elseif m_count == 3 then
local t1, t2, t3 = macro_c[1].type, macro_c[2].type, macro_c[3].type
if t1=="S" and t2=="T" and t3=="R" then
boundaries[macro_c[1].orig_idx] = true -- V.CCCV
elseif (t1=="T" and t2=="S" and t3=="T") or
(t1=="R" and t2=="S" and t3=="T") or
(t1=="T" and t2=="S" and t3=="R") or
(t1=="R" and t2=="T" and t3=="R") or
(t1=="T" and t2=="T" and t3=="R") or
(t1=="R" and t2=="S" and t3=="R") then
boundaries[macro_c[2].orig_idx] = true -- VC.CCV (includes RSR, e.g., konfliktas)
else
boundaries[macro_c[3].orig_idx] = true -- VCC.CV
end
elseif m_count == 4 then
-- Identify the 4-consonant pattern according to the 8 documented combinations
local pattern = macro_c[1].type .. macro_c[2].type .. macro_c[3].type .. macro_c[4].type
if pattern == "RSTR" or pattern == "TSTR" then
-- R.STR, T.STR -> VC.CCCV
boundaries[macro_c[2].orig_idx] = true
elseif pattern == "RTRR" or pattern == "TSTS" then
-- RTR.R, TST.S -> VCCC.CV
boundaries[macro_c[4].orig_idx] = true
else
-- RT.ST, RT.SR, RT.TR, ST.TR -> VCC.CCV
boundaries[macro_c[3].orig_idx] = true
end
elseif m_count >= 5 then
-- Fallback for >=5 logical consonant units
track('complex-consonant-cluster')
boundaries[macro_c[3].orig_idx] = true
end
end
end
-- Construct syllables
local secondary_stress_syllables = {}
for i, tok in ipairs(tokens) do
if boundaries[i] and #current_syl > 0 then
insert(syllables, current_syl)
-- If this is a secondary stress boundary, mark the NEXT syllable
if tok.type == "SECONDARY_STRESS_BOUNDARY" then
secondary_stress_syllables[#syllables + 1] = true
end
current_syl = {}
end
if tok.type ~= "BOUNDARY" and tok.type ~= "SECONDARY_STRESS_BOUNDARY" then
insert(current_syl, tok)
end
end
if #current_syl > 0 then insert(syllables, current_syl) end
-- Apply secondary stress marks
for idx, _ in pairs(secondary_stress_syllables) do
if syllables[idx] then
syllables[idx].secondary_stress = true
end
end
-- Apply initial secondary stress if present
if has_initial_secondary_stress and #syllables > 0 then
syllables[1].secondary_stress = true
end
return syllables
end
-- ============================================================================
-- SECTION 5: Base IPA Mapping & Stress Assignment
-- ============================================================================
local function is_mixed_diphthong(syl, v_idx)
local v_tok = syl[v_idx]
local lc_v = ulower(v_tok.char)
-- Strip silent 'i' for accurate length calculation
if v_tok.has_silent_i then
lc_v = mw.ustring.sub(lc_v, 2)
end
-- Digraphs (ie, uo, ai, au, etc.) or natively long vowels (ą, ę, ė, į, y, ų, ū)
-- do NOT form mixed diphthongs with subsequent resonants.
-- Only short a, e, i, u, o can form true mixed diphthongs.
if mw.ustring.len(lc_v) > 1 then return false end
local LONG_V = {["ą"]=true, ["ę"]=true, ["ė"]=true, ["į"]=true, ["y"]=true, ["ų"]=true, ["ū"]=true}
if LONG_V[lc_v] then return false end
-- V + R in the SAME syllable (coda)
if v_idx < #syl and syl[v_idx+1].type == "R" then
-- j and v are not considered for typical liquid semi-diphthongs length rules
if syl[v_idx+1].char ~= "j" and syl[v_idx+1].char ~= "v" then
return true
end
end
return false
end
local function map_base_phonetics(syllables)
local stress_prefix = nil
for _, syl in ipairs(syllables) do
local v_idx = nil
for i, tok in ipairs(syl) do
if tok.type == "V" then v_idx = i; break end
end
if v_idx then
local v_tok = syl[v_idx]
local v_char = v_tok.char
local lc_v_char = ulower(v_char)
local tone = v_tok.tone
local is_mixed = is_mixed_diphthong(syl, v_idx)
if is_mixed and not tone then
local r_tok = syl[v_idx+1]
if r_tok.tone then tone = r_tok.tone end
end
if v_tok.has_silent_i then
v_tok.silent_i = true
local actual_vowel = mw.ustring.sub(lc_v_char, 2)
v_tok.ipa = V_IPA[actual_vowel] or "ɐ"
lc_v_char = actual_vowel
else
-- Apply loan quality base default for 'o' and 'e'
v_tok.ipa = V_IPA[lc_v_char] or "ɐ"
if lc_v_char == "o" and v_tok.loan_quality then
v_tok.ipa = "ɔ"
end
if lc_v_char == "e" and v_tok.loan_quality then
v_tok.ipa = "e"
end
-- Automatically prepend glide 'j' to syllable-initial 'ie'
if lc_v_char == "ie" and v_idx == 1 then
v_tok.ipa = "jiɛ"
end
end
if tone then
local s_mark = ""
local v_base = mw.ustring.sub(lc_v_char, 1, 1)
if tone == "acute" then
s_mark = "¹ˈ"
if lc_v_char == "a" then
if is_mixed then v_tok.ipa = "ɑˑ" else v_tok.ipa = "ɑː" end
elseif lc_v_char == "e" then
-- Note: '^' modifier not allowed with acute 'é' as of current rules
-- This code path preserved for consistency
if is_mixed and v_tok.loan_quality then
v_tok.ipa = "ɛ" -- Loanword é in mixed diphthongs is short /ɛ/ without length
elseif is_mixed then
v_tok.ipa = "æˑ" -- Mixed diphthong: half-long
else
v_tok.ipa = "æː" -- Pure vowel: full-long
end
elseif lc_v_char == "ai" then v_tok.ipa = "ɑˑɪ"
elseif lc_v_char == "au" then v_tok.ipa = "ɑˑʊ"
elseif lc_v_char == "ei" then v_tok.ipa = "æˑɪ"
elseif lc_v_char == "eu" then v_tok.ipa = "æˑʊ"
elseif lc_v_char == "oi" then v_tok.ipa = "oˑɪ"
end
elseif tone == "grave" then
if is_mixed and (v_base == "i" or v_base == "u" or v_base == "e" or v_base == "o") then
s_mark = "¹ˈ"
elseif lc_v_char == "ui" or lc_v_char == "oi" or lc_v_char == "ou" or lc_v_char == "eu" then
s_mark = "¹ˈ"
else
s_mark = "ˈ"
end
-- Handle loanword variants for grave
if lc_v_char == "e" and v_tok.loan_quality then
v_tok.ipa = "e" -- è^ (loanword) → [e]
end
if lc_v_char == "o" then
v_tok.ipa = "ɔ" -- ò (always loanword) → [ɔ]
end
elseif tone == "tilde" then
s_mark = "²ˈ"
if lc_v_char == "ai" then v_tok.ipa = "ɐɪˑ"
elseif lc_v_char == "au" then v_tok.ipa = "ɒʊˑ"
elseif lc_v_char == "ei" then v_tok.ipa = "ɛɪˑ"
elseif lc_v_char == "eu" then v_tok.ipa = "ɛʊˑ"
elseif lc_v_char == "ui" then v_tok.ipa = "ʊɪˑ"
elseif lc_v_char == "a" then
if is_mixed then v_tok.ipa = "ɐ" else v_tok.ipa = "ɑː" end
elseif lc_v_char == "e" then
if is_mixed then v_tok.ipa = "ɛ" else v_tok.ipa = "æː" end
end
end
syl.stress = s_mark
end
-- Set base IPA for consonants (case-insensitive mapping)
for i, tok in ipairs(syl) do
if tok.type ~= "V" then
local lc_c = ulower(tok.char)
tok.ipa = CONS_IPA[lc_c] or lc_c
end
end
-- Handle tilde half-length on mixed diphthong coda
if tone == "tilde" and is_mixed then
local r_tok = syl[v_idx+1]
r_tok.half_long = true
end
else
-- Syllable with no vowel (e.g. leftover consonant)
for i, tok in ipairs(syl) do
tok.ipa = CONS_IPA[tok.char] or tok.char
end
end
end
end
-- ============================================================================
-- SECTION 6: Phonetic Polish Passes
-- ============================================================================
-- Pass 1: Palatalization Spreading (Right-to-Left)
local function apply_palatalization(syllables)
-- Flatten tokens for cross-syllable spreading
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
-- First pass: Apply softening marks (no spreading)
for i = 1, #flat_tokens do
local tok = flat_tokens[i]
if tok.softening_mark and tok.ipa ~= "" then
tok.ipa = tok.ipa .. "ʲ"
tok.is_palatalized = true
end
end
local spread_active = false
for i = #flat_tokens, 1, -1 do
local tok = flat_tokens[i]
local lc_char = ulower(tok.char)
if tok.type == "V" then
if tok.silent_i or FRONT_V[lc_char] then
spread_active = true
else
spread_active = false
end
elseif lc_char == "j" then
-- Preserve special IPA for final j (ɪ̯), don't override it
if tok.ipa ~= "ɪ̯" and tok.ipa ~= "" then
tok.ipa = "j"
end
tok.is_palatalized = true
spread_active = true
else
if spread_active then
-- Check if the palatalization is DIRECT (immediate contact with front V or j)
local is_direct = false
local nxt = flat_tokens[i+1]
if nxt then
local nxt_lc = ulower(nxt.char)
if (nxt.type == "V" and (nxt.silent_i or FRONT_V[nxt_lc])) or nxt_lc == "j" then
is_direct = true
end
end
tok.is_palatalized = true
if lc_char == "k" or lc_char == "g" then
if is_direct and tok.ipa ~= "" then
tok.ipa = tok.ipa .. "ʲ"
end
-- DO NOT set spread_active to false! k/g are transparent to spreading.
else
if tok.ipa ~= "" then
tok.ipa = tok.ipa .. "ʲ"
end
end
end
end
end
end
-- Pass 2: Voicing Assimilation (Right-to-Left)
local function apply_voicing_assimilation(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
local target_voice = nil
for i = #flat_tokens, 1, -1 do
local tok = flat_tokens[i]
if tok.type == "V" or tok.type == "R" then
target_voice = nil -- Blocked by vowels and resonants
elseif tok.type == "S" or tok.type == "T" then
if target_voice == nil then
-- Establish new assimilation target
target_voice = is_voiced(tok.char) and "voiced" or "voiceless"
else
-- Assimilate
local current_is_voiced = is_voiced(tok.char)
if target_voice == "voiced" and not current_is_voiced then
tok.char = VOICING_PAIRS[tok.char] or tok.char
elseif target_voice == "voiceless" and current_is_voiced then
tok.char = VOICING_PAIRS[tok.char] or tok.char
end
-- Update IPA based on new character, preserving palatalization
local new_ipa = CONS_IPA[tok.char] or tok.char
if tok.is_palatalized and tok.char ~= "k" and tok.char ~= "g" then
new_ipa = new_ipa .. "ʲ"
end
tok.ipa = new_ipa
end
end
end
end
-- Pass 3: Nasal Assimilation (n -> ŋ before k/g)
local function apply_nasal_assimilation(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
for i = 1, #flat_tokens - 1 do
local tok = flat_tokens[i]
-- Ignore vowels for lookahead
local lookahead = i + 1
while lookahead <= #flat_tokens and flat_tokens[lookahead].type == "V" do
if flat_tokens[lookahead].silent_i then
lookahead = lookahead + 1
else
break
end
end
local nxt = flat_tokens[lookahead]
if nxt and ulower(tok.char) == "n" then
local lc_nxt = ulower(nxt.char)
if lc_nxt == "k" or lc_nxt == "g" then
-- Check actual IPA string for direct palatalization
if mw.ustring.find(nxt.ipa, "ʲ") then
tok.ipa = "ŋʲ"
else
tok.ipa = "ŋ"
end
end
end
end
end
-- Pass 4: Vowel Quality Adjustments after Palatalization
local function adjust_vowel_quality(syllables)
for _, syl in ipairs(syllables) do
local has_palatal_onset = false
for i, tok in ipairs(syl) do
if tok.type ~= "V" and (tok.is_palatalized or ulower(tok.char) == "j") then
has_palatal_onset = true
elseif tok.type == "V" and has_palatal_onset then
local ipa = tok.ipa
-- Shift a/e quality
if ipa == "ɐ" then ipa = "ɛ"
elseif ipa == "ɑː" then ipa = "æː"
-- Diphthong shifts for iau / iai
elseif ipa == "ɒʊ" then ipa = "ɛʊ"
elseif ipa == "ɑˑʊ" then ipa = "æˑʊ"
elseif ipa == "ɒʊˑ" then ipa = "ɛʊˑ"
elseif ipa == "ɐɪ" then ipa = "ɛɪ"
elseif ipa == "ɑˑɪ" then ipa = "æˑɪ"
elseif ipa == "ɐɪˑ" then ipa = "ɛɪˑ"
end
-- Dynamic fronting for u/o/ɔ (adds U+031F)
-- Matches ONLY the first character (^) to avoid double fronting in uɔ
ipa = mw.ustring.gsub(ipa, "^([uʊoɔ])", "%1̟")
tok.ipa = ipa
has_palatal_onset = false
end
end
end
end
-- Pass 5: Terminal Devoicing (Word-final obstruent devoicing)
local function apply_terminal_devoicing(syllables)
if #syllables == 0 then return end
local last_syl = syllables[#syllables]
local last_tok = last_syl[#last_syl]
if last_tok and (last_tok.type == "S" or last_tok.type == "T") then
local lc_char = ulower(last_tok.char)
if is_voiced(lc_char) then
local devoiced = VOICING_PAIRS[lc_char]
if devoiced then
last_tok.char = devoiced
local new_ipa = CONS_IPA[devoiced] or devoiced
if last_tok.is_palatalized then new_ipa = new_ipa .. "ʲ" end
last_tok.ipa = new_ipa
end
end
end
end
-- Pass 6: Place Assimilation (Sibilant + Affricate)
-- When a sibilant meets an affricate, the sibilant adjusts its place of articulation:
-- s+č→š, z+dž→ž, š+c→s, ž+dz→z
local function apply_place_assimilation(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
local PLACE_ASSIM = {
["s"] = {["t͡ʃ"] = "ʃ"},
["z"] = {["d͡ʒ"] = "ʒ"},
["ʃ"] = {["t͡s"] = "s"},
["ʒ"] = {["d͡z"] = "z"},
}
for i = 1, #flat_tokens - 1 do
local tok = flat_tokens[i]
local nxt = flat_tokens[i+1]
if tok.type == "S" and nxt.type == "T" then
local rule = PLACE_ASSIM[tok.ipa]
if rule and rule[nxt.ipa] then
tok.ipa = rule[nxt.ipa]
end
end
end
end
-- Pass 7: Geminate Simplification (Double consonant reduction)
-- NOTE: Original geminates (rr, ll, etc.) are already merged in merge_geminate_consonants.
-- This pass handles geminates created by phonetic rules (e.g., voicing assimilation: td→dd).
-- Sibilants: any two sibilants merge into one (keeping the second)
-- Other consonants: only identical pairs merge
local function apply_geminate_simplification(syllables)
local flat_tokens = {}
for _, syl in ipairs(syllables) do
for _, tok in ipairs(syl) do insert(flat_tokens, tok) end
end
local SIBILANTS = {["s"]=true, ["z"]=true, ["ʃ"]=true, ["ʒ"]=true}
for i = 1, #flat_tokens - 1 do
local tok = flat_tokens[i]
local nxt = flat_tokens[i+1]
local tok_is_cons = (tok.type == "T" or tok.type == "S" or tok.type == "R")
local nxt_is_cons = (nxt.type == "T" or nxt.type == "S" or nxt.type == "R")
if tok_is_cons and nxt_is_cons then
local tok_is_sib = SIBILANTS[tok.ipa]
local nxt_is_sib = SIBILANTS[nxt.ipa]
if tok_is_sib and nxt_is_sib then
tok.ipa = ""
elseif tok.ipa == nxt.ipa and tok.ipa ~= "" then
tok.ipa = ""
end
end
end
end
-- Pass 8: Final Consonant Vocalization (v → ʊ̯, j → ɪ̯)
-- Word-final v and j (without tilde) become non-syllabic vowels
-- Note: j with tilde is already converted to i with tilde in tokenization
local function apply_final_consonant_vocalization(syllables)
if #syllables == 0 then return end
local last_syl = syllables[#syllables]
local last_tok = last_syl[#last_syl]
if last_tok then
local lc_char = ulower(last_tok.char)
-- Final v → ʊ̯
if lc_char == "v" then
last_tok.ipa = "ʊ̯"
-- Keep type as "R" (resonant) for now - it's treated as non-syllabic
end
-- Final j (without tilde) → ɪ̯
-- Note: j with tilde is already converted to i in tokenization, so won't reach here
if lc_char == "j" and last_tok.tone ~= "tilde" then
last_tok.ipa = "ɪ̯"
-- Keep type as "R" (resonant) for now - it's treated as non-syllabic
end
end
end
-- ============================================================================
-- SECTION 7: Output Assembly
-- ============================================================================
-- Core IPA processor for a single word
local function process_single_word_ipa(word, pagename)
local tokens = tokenize(word, pagename)
merge_geminate_consonants(tokens)
local syllables = syllabify(tokens)
map_base_phonetics(syllables)
-- Phonetic Polish Pipeline
apply_terminal_devoicing(syllables)
apply_voicing_assimilation(syllables)
apply_place_assimilation(syllables)
apply_geminate_simplification(syllables)
apply_final_consonant_vocalization(syllables)
apply_palatalization(syllables)
apply_nasal_assimilation(syllables)
adjust_vowel_quality(syllables)
local parts = {}
for s_idx, syl in ipairs(syllables) do
local syl_str = ""
local hiatus_sep = ""
if s_idx > 1 then
local prev_syl = syllables[s_idx - 1]
local prev_last_tok = prev_syl[#prev_syl]
local curr_first_tok = syl[1]
local prev_ends_with_v = (prev_last_tok and prev_last_tok.type == "V" and not prev_last_tok.silent_i)
local curr_starts_with_v = (curr_first_tok and curr_first_tok.type == "V" and not curr_first_tok.silent_i)
if prev_ends_with_v and curr_starts_with_v then
local prev_v_char = ulower(prev_last_tok.char)
local curr_v_char = ulower(curr_first_tok.char)
-- Only handle ie special case
if curr_v_char == "ie" then
-- 'ie' has implicit 'j' from map_base_phonetics.
syl_str = ""
hiatus_sep = ""
else
-- Standard hiatus without glide insertion
syl_str = "."
hiatus_sep = ""
end
end
end
-- Check for conflict between primary and secondary stress
if syl.secondary_stress and syl.stress then
error("lt-pron: A syllable cannot have both primary stress (tone mark) and secondary stress (ˌ)")
end
-- Add stress markers (primary or secondary, mutually exclusive)
if syl.secondary_stress then
syl_str = syl_str .. "ˌ"
elseif syl.stress then
syl_str = syl_str .. syl.stress
end
syl_str = syl_str .. hiatus_sep
for _, tok in ipairs(syl) do
if tok.is_respelling then
if tok.is_optional then
syl_str = syl_str .. "(j)"
else
syl_str = syl_str .. tok.ipa
end
else
syl_str = syl_str .. tok.ipa
end
if tok.half_long then syl_str = syl_str .. "ˑ" end
end
insert(parts, syl_str)
end
return concat(parts, "")
end
-- Multi-word IPA assembler with liaison `‿`
local function to_ipa(term, provided_pagename)
-- Use provided pagename if available, otherwise try to extract from term
local pagename, clean_term
if provided_pagename then
pagename = provided_pagename
clean_term = term
else
pagename, clean_term = get_pagename(term)
end
term = clean_term
-- Split input into words
local words = mw.text.split(term, " ")
-- Split pagename into words (if available)
local pagename_words = nil
if pagename then
pagename_words = mw.text.split(pagename, " ")
-- Verify word count matches (only when both are multi-word)
if #words > 1 and #pagename_words > 1 and #words ~= #pagename_words then
error("lt-pron: Input has " .. #words .. " words but pagename has " .. #pagename_words .. " words. They must match.")
end
-- If pagename is single word but input is multi-word, use nil for all words
-- (This allows respelling detection to work only on exact matches)
if #pagename_words == 1 and #words > 1 then
pagename_words = nil
end
end
local processed_words = {}
for i, word in ipairs(words) do
if word ~= "" then
-- Get the corresponding pagename word, or nil if not available
local word_pagename = (pagename_words and pagename_words[i]) or nil
local w_ipa = process_single_word_ipa(word, word_pagename)
insert(processed_words, w_ipa)
end
end
local result = ""
for i, w_ipa in ipairs(processed_words) do
if i == 1 then
result = w_ipa
else
-- If the PREVIOUS word has NO stress mark, use liaison `‿`
if not mw.ustring.find(processed_words[i-1], "ˈ") then
result = result .. "‿" .. w_ipa
else
result = result .. " " .. w_ipa
end
end
end
return result
end
-- Rhyme Extractor
local IPA_VOWELS = "aɐɑæɛeəɪiɔoʊuɒɜ"
local function get_rhyme(ipa)
-- Remove liaison and spaces before rhyme calculation
local clean_ipa = mw.ustring.gsub(ipa, "[‿ ]", "")
-- Search for the last stress mark from right to left
local last_stress_pos = nil
for i = mw.ustring.len(clean_ipa), 1, -1 do
local char = mw.ustring.sub(clean_ipa, i, i)
if char == "ˈ" then
-- Skip superscript if present
if i > 1 then
local prev = mw.ustring.sub(clean_ipa, i - 1, i - 1)
if prev == "¹" or prev == "²" then
last_stress_pos = i -- Point to ˈ, skip superscript
else
last_stress_pos = i
end
else
last_stress_pos = i
end
break
end
end
if not last_stress_pos then return nil end
-- Extract content after the stress mark
local after = mw.ustring.sub(clean_ipa, last_stress_pos + 1)
-- Remove hiatus dots for rhyme grouping
after = mw.ustring.gsub(after, "%.", "")
-- Find first vowel position (skip onset consonants)
local vstart = mw.ustring.match(after, "()[" .. IPA_VOWELS .. "]")
if vstart then
return mw.ustring.sub(after, vstart)
end
return after
end
-- Hyphenation generator (supports multi-word phrases)
local function get_hyphenation(term, provided_pagename)
-- Use provided pagename if available, otherwise try to extract from term
local pagename, clean_term
if provided_pagename then
pagename = provided_pagename
clean_term = term
else
pagename, clean_term = get_pagename(term)
end
term = clean_term
-- Split input into words
local words = mw.text.split(term, " ")
-- Split pagename into words (if available)
local pagename_words = nil
if pagename then
pagename_words = mw.text.split(pagename, " ")
-- Verify word count matches (only when both are multi-word)
if #words > 1 and #pagename_words > 1 and #words ~= #pagename_words then
error("lt-pron: Input has " .. #words .. " words but pagename has " .. #pagename_words .. " words. They must match.")
end
-- If pagename is single word but input is multi-word, use nil for all words
if #pagename_words == 1 and #words > 1 then
pagename_words = nil
end
end
local all_word_parts = {}
for i, word in ipairs(words) do
if word ~= "" then
-- Get the corresponding pagename word, or nil if not available
local word_pagename = (pagename_words and pagename_words[i]) or nil
local tokens = tokenize(word, word_pagename)
local syllables = syllabify(tokens)
local parts = {}
for _, syl in ipairs(syllables) do
local text = ""
for _, tok in ipairs(syl) do
-- Skip respelling characters (original_char == "-" means not in orthography)
if tok.original_char ~= "-" then
-- Re-attach original tone visually for display
local t_mark = ""
if tok.tone == "acute" then t_mark = ACUTE
elseif tok.tone == "grave" then t_mark = GRAVE
elseif tok.tone == "tilde" then t_mark = TILDE
end
-- Use original_char if set (e.g., j̃ → i internally but j in display)
-- Otherwise use tok.char
local disp_char = tok.original_char or tok.char
-- Restore original orthography for ɔ
if disp_char == "ɔ" then disp_char = "o" end
if disp_char == "Ɔ" then disp_char = "O" end
-- Handle tone placement for diphthongs
if tok.tone_position then
-- Diphthong: place tone on the specified vowel
local char_len = mw.ustring.len(disp_char)
if char_len == 2 then
-- Two-character diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2
else
text = text .. v1 .. v2 .. t_mark
end
elseif char_len == 3 then
-- Three-character (silent i) diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
local v3 = mw.ustring.sub(disp_char, 3, 3)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2 .. v3
elseif tok.tone_position == 2 then
text = text .. v1 .. v2 .. t_mark .. v3
else
text = text .. v1 .. v2 .. v3 .. t_mark
end
end
else
-- Single vowel or consonant: tone goes after the character
text = text .. disp_char .. t_mark
end
end
end
parts[#parts + 1] = makeDisplayText(text)
end
insert(all_word_parts, concat(parts, "‧")) -- Use ‧ instead of standard - internally to preserve word boundaries
end
end
-- Build combined string for display (preserves correct formatting)
local combined_string = concat(all_word_parts, " ")
local final_parts = {}
for _, piece in ipairs(mw.text.split(combined_string, "‧")) do
insert(final_parts, piece)
end
-- Calculate actual syllable count (for correct num_syl)
local syllable_count = 0
for _, word_part in ipairs(all_word_parts) do
local word_syls = mw.text.split(word_part, "‧")
syllable_count = syllable_count + #word_syls
end
-- Store actual syllable count as a field (since __len doesn't work on tables in Lua 5.1)
final_parts.syllable_count = syllable_count
return final_parts
end
-- ============================================================================
-- SECTION 7.5: Conjugation Module Support Functions
-- ============================================================================
-- Export: Get syllables as string array with accents
function export.get_syllables(term)
local pagename, clean_term = get_pagename(term)
term = clean_term
local tokens = tokenize(term, pagename)
local syllables = syllabify(tokens)
local result = {}
for _, syl in ipairs(syllables) do
local text = ""
for _, tok in ipairs(syl) do
-- Skip respelling glides in syllable output
if not tok.is_respelling then
-- Re-attach original tone
local t_mark = ""
if tok.tone == "acute" then t_mark = ACUTE
elseif tok.tone == "grave" then t_mark = GRAVE
elseif tok.tone == "tilde" then t_mark = TILDE
end
-- Restore original orthography for ɔ
local disp_char = tok.char
if disp_char == "ɔ" then disp_char = "o" end
if disp_char == "Ɔ" then disp_char = "O" end
-- Handle tone placement for diphthongs
if tok.tone_position then
-- Diphthong: place tone on the specified vowel
local char_len = mw.ustring.len(disp_char)
if char_len == 2 then
-- Two-character diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2
else
text = text .. v1 .. v2 .. t_mark
end
elseif char_len == 3 then
-- Three-character (silent i) diphthong
local v1 = mw.ustring.sub(disp_char, 1, 1)
local v2 = mw.ustring.sub(disp_char, 2, 2)
local v3 = mw.ustring.sub(disp_char, 3, 3)
if tok.tone_position == 1 then
text = text .. v1 .. t_mark .. v2 .. v3
elseif tok.tone_position == 2 then
text = text .. v1 .. v2 .. t_mark .. v3
else
text = text .. v1 .. v2 .. v3 .. t_mark
end
end
else
-- Single vowel or consonant: tone goes after the character
text = text .. disp_char .. t_mark
end
end
end
-- Return NFC format with proper dotabove insertion
insert(result, makeDisplayText(text))
end
return result
end
-- Export: Check if a syllable is heavy or light
function export.is_heavy_syllable(syllable)
local pagename, clean_syllable = get_pagename(syllable)
syllable = clean_syllable
-- Validate single syllable
local tokens = tokenize(syllable, pagename)
local syllables = syllabify(tokens)
if #syllables ~= 1 then
error("is_heavy_syllable: input must be a single syllable, got " .. #syllables .. " syllables")
end
local syl = syllables[1]
-- Find the vowel token
local v_idx = nil
for i, tok in ipairs(syl) do
if tok.type == "V" then
v_idx = i
break
end
end
if not v_idx then
error("is_heavy_syllable: no vowel found in syllable")
end
local v_tok = syl[v_idx]
local lc_v = ulower(v_tok.char)
-- Handle silent i (e.g., "iau" where i is silent)
if v_tok.has_silent_i then
lc_v = mw.ustring.sub(lc_v, 2)
end
-- Long vowels (inherently long, regardless of accent)
local LONG_VOWELS = {
["ą"]=true, ["ę"]=true, ["ė"]=true, ["į"]=true, ["y"]=true, ["ų"]=true, ["ū"]=true,
["o"]=true, ["ɔ"]=true -- o/ɔ are always long (except ò, but we treat all o as long)
}
if LONG_VOWELS[lc_v] then
return true
end
-- Diphthongs (length > 1)
if mw.ustring.len(lc_v) > 1 then
return true
end
-- Mixed diphthongs: short vowel + liquid in coda position
local SHORT_VOWELS = {["a"]=true, ["e"]=true, ["i"]=true, ["u"]=true}
if SHORT_VOWELS[lc_v] and v_idx < #syl then
local next_tok = syl[v_idx + 1]
-- Liquid in coda (not j or v, which don't form mixed diphthongs)
if next_tok.type == "R" and next_tok.char ~= "j" and next_tok.char ~= "v" then
return true
end
end
-- Otherwise, it's a light syllable
return false
end
-- Export: Change accent of a syllable
function export.change_accent(syllable, target_accent)
local pagename, clean_syllable = get_pagename(syllable)
syllable = clean_syllable
-- Validate target_accent parameter
local VALID_ACCENTS = {acute=true, tilde=true, grave=true, none=true}
if not VALID_ACCENTS[target_accent] then
error("change_accent: invalid target_accent '" .. tostring(target_accent) ..
"', must be 'acute', 'tilde', 'grave', or 'none'")
end
-- Validate single syllable
local tokens = tokenize(syllable, pagename)
local syllables = syllabify(tokens)
if #syllables ~= 1 then
error("change_accent: input must be a single syllable, got " .. #syllables .. " syllables")
end
-- Remove all existing accents
local clean = remove_all_accents(syllable)
-- If target is 'none', return clean syllable
if target_accent == "none" then
return clean
end
-- Re-tokenize the clean syllable to analyze structure
local clean_tokens = tokenize(clean, pagename)
local clean_syllables = syllabify(clean_tokens)
local syl = clean_syllables[1]
-- Find vowel position and extract vowel part
local onset = ""
local vowel_part = ""
local coda = ""
local v_idx = nil
for i, tok in ipairs(syl) do
if tok.type == "V" then
v_idx = i
break
else
onset = onset .. tok.char
end
end
if not v_idx then
error("change_accent: no vowel found in syllable")
end
local v_tok = syl[v_idx]
vowel_part = ulower(v_tok.char)
-- Handle silent i
if v_tok.has_silent_i then
vowel_part = mw.ustring.sub(vowel_part, 2)
end
-- Check if this is a mixed diphthong
local is_mixed = false
if v_idx < #syl then
local next_tok = syl[v_idx + 1]
if next_tok.type == "R" and next_tok.char ~= "j" and next_tok.char ~= "v" then
-- Mixed diphthong: vowel + liquid
vowel_part = vowel_part .. ulower(next_tok.char)
is_mixed = true
-- Collect remaining coda after the liquid
for i = v_idx + 2, #syl do
coda = coda .. syl[i].char
end
else
-- Regular syllable: collect all coda
for i = v_idx + 1, #syl do
coda = coda .. syl[i].char
end
end
end
-- Look up the accented form in ACCENT_PAIRS
if not ACCENT_PAIRS[vowel_part] then
error("change_accent: vowel/diphthong '" .. vowel_part .. "' not found in accent pairs table")
end
local accented_vowel = ACCENT_PAIRS[vowel_part][target_accent]
if not accented_vowel then
error("change_accent: accent type '" .. target_accent ..
"' is not allowed for vowel/diphthong '" .. vowel_part .. "'")
end
-- Reconstruct the syllable with new accent (in NFD format)
local result = onset .. accented_vowel .. coda
return result
end
-- ============================================================================
-- SECTION 8: Module Exports & Template Formatting (Preserved)
-- ============================================================================
local q_spec = {store = "insert-flattened", type = "qualifier"}
local a_spec = {store = "insert-flattened", type = "labels"}
local ref_spec = {store = "insert-flattened", item_dest = "refs", type = "references"}
-- Generate audio object, supporting file#caption syntax
local function generate_audio_obj(arg)
local file, caption = arg:match("^(.-)%s*#%s*(.*)$")
file = file or arg
return {file = file, caption = caption}
end
-- Parse rhyme specification with optional syllable count
local function parse_rhyme(arg, parse_err)
local function generate_obj(term)
return {rhyme = term}
end
local param_mods = {
s = {
item_dest = "num_syl",
type = "number",
sublist = true,
},
}
-- Add q/qq/a/aa/ref support if inline modifiers are present
if arg:find("<") then
param_mods.q = q_spec
param_mods.qq = q_spec
param_mods.a = a_spec
param_mods.aa = a_spec
param_mods.ref = ref_spec
end
return require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = param_mods,
generate_obj = generate_obj,
parse_err = parse_err,
splitchar = ",",
})
end
-- Parse hyphenation specification (dot-separated syllables)
local function parse_hyph(arg, parse_err)
local function generate_obj(term)
local parts = mw.text.split(term, "%.")
return {hyph = parts, syllabification = term}
end
local param_mods = {}
-- Add q/qq/a/aa/ref support if inline modifiers are present
if arg:find("<") then
param_mods.q = q_spec
param_mods.qq = q_spec
param_mods.a = a_spec
param_mods.aa = a_spec
param_mods.ref = ref_spec
end
return require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = param_mods,
generate_obj = generate_obj,
parse_err = parse_err,
splitchar = ",",
})
end
-- Parse homophone specification
local function parse_homophone(arg, parse_err)
local function generate_obj(term)
return {term = term}
end
local param_mods = {
t = {item_dest = "gloss"},
gloss = {},
pos = {},
alt = {},
lit = {},
id = {},
g = {
item_dest = "genders",
sublist = true,
},
}
-- Add q/qq/a/aa/ref support if inline modifiers are present
if arg:find("<") then
param_mods.q = q_spec
param_mods.qq = q_spec
param_mods.a = a_spec
param_mods.aa = a_spec
param_mods.ref = ref_spec
end
return require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = param_mods,
generate_obj = generate_obj,
parse_err = parse_err,
splitchar = ",",
})
end
local audio_nested_mods = {
["a"] = a_spec, ["aa"] = a_spec,
["q"] = q_spec, ["qq"] = q_spec,
["text"] = {},
["IPA"] = {sublist = true},
["t"] = {item_dest = "gloss"},
["gloss"] = {},
["pos"] = {},
["lit"] = {},
["g"] = {
item_dest = "genders",
sublist = true,
},
}
local function parse_one_term(raw, parse_err)
if not raw:find("<") then
return {term = raw, audio_list = {}, rhyme_list = {}, hyph_list = {}, pagename = nil}
end
-- Extract base spelling before parse_inline_modifiers
local pagename = nil
if raw:find("<base:") then
pagename = raw:match("<base:([^>]+)>")
raw = raw:gsub("<base:[^>]+>", "")
end
local parsed = require(parse_util_module).parse_inline_modifiers(raw, {
param_mods = {
["q"] = q_spec, ["qq"] = q_spec,
["a"] = a_spec, ["aa"] = a_spec,
["ref"] = ref_spec,
["audio"] = {
store = "insert",
item_dest = "audio_list",
convert = function(arg, perr)
if arg:find("<") then
local parsed_audio = require(parse_util_module).parse_inline_modifiers(arg, {
param_mods = audio_nested_mods,
generate_obj = generate_audio_obj,
parse_err = perr,
})
parsed_audio.lang = get_lang()
local textobj = require(audio_module).construct_audio_textobj(parsed_audio)
parsed_audio.text = textobj
parsed_audio.gloss = nil
parsed_audio.pos = nil
parsed_audio.lit = nil
parsed_audio.genders = nil
return parsed_audio
end
local audio_obj = generate_audio_obj(arg)
audio_obj.lang = get_lang()
local textobj = require(audio_module).construct_audio_textobj(audio_obj)
audio_obj.text = textobj
return audio_obj
end,
},
["rhyme"] = {
store = "insert-flattened",
item_dest = "rhyme_list",
convert = parse_rhyme,
},
["hyph"] = {
store = "insert-flattened",
item_dest = "hyph_list",
convert = parse_hyph,
},
["hmp"] = {
store = "insert-flattened",
item_dest = "hmp_list",
convert = parse_homophone,
},
},
generate_obj = function(t)
return {term = t, audio_list = {}, rhyme_list = {}, hyph_list = {}, hmp_list = {}}
end,
parse_err = parse_err,
})
parsed.audio_list = parsed.audio_list or {}
parsed.rhyme_list = parsed.rhyme_list or {}
parsed.hyph_list = parsed.hyph_list or {}
parsed.hmp_list = parsed.hmp_list or {}
parsed.pagename = pagename
return parsed
end
-- Format rhyme objects with qualifiers
local function fmt_rhyme(rhyme_objs, bullet)
if not rhyme_objs or #rhyme_objs == 0 then return nil end
local rhyme_data = {}
for _, robj in ipairs(rhyme_objs) do
insert(rhyme_data, {
rhyme = robj.rhyme,
num_syl = robj.num_syl,
q = robj.q,
qq = robj.qq,
a = robj.a,
aa = robj.aa,
})
end
return bullet .. require(rhymes_module).format_rhymes({
lang = get_lang(),
rhymes = rhyme_data
})
end
-- Format hyphenation objects with qualifiers
local function fmt_hyph(hyph_objs, bullet)
if not hyph_objs or #hyph_objs == 0 then return nil end
local hyph_data = {}
for _, hobj in ipairs(hyph_objs) do
insert(hyph_data, {
hyph = hobj.hyph,
q = hobj.q,
qq = hobj.qq,
a = hobj.a,
aa = hobj.aa,
})
end
return bullet .. require(hyphenation_module).format_hyphenations({
lang = get_lang(),
hyphs = hyph_data,
caption = "音節化"
})
end
-- Format audio object
local function fmt_audio(audio_obj, bullet)
return bullet .. require(audio_module).format_audio(audio_obj)
end
-- Format homophone objects with qualifiers
local function fmt_hmp(hmp_objs, bullet)
if not hmp_objs or #hmp_objs == 0 then return nil end
return bullet .. require(homophones_module).format_homophones({
lang = get_lang(),
homophones = hmp_objs,
})
end
function export.show(frame)
local parargs = frame:getParent().args
local args = require(parameters_module).process(parargs, {
[1] = {default = "nãmas"},
["bullets"] = {type = "number", default = 1},
})
local input = args[1]
local nb = args.bullets
local b1 = string.rep("*", nb) .. " "
local b2 = string.rep("*", nb + 1) .. " "
local raw_terms = require(parse_util_module).split_escaping(input, ",")
local parsed_terms = {}
for i, raw in ipairs(raw_terms) do
raw = raw:match("^%s*(.-)%s*$")
local pt = parse_one_term(raw, function(msg)
error("lt-pron: " .. msg .. " (term " .. i .. ")")
end)
parsed_terms[#parsed_terms + 1] = pt
end
m_IPA = m_IPA or require("Module:IPA")
local text_parts = {}
for _, pt in ipairs(parsed_terms) do
-- Determine bullet level: same level as IPA for single pronunciation, indented for multiple
local content_bullet = (#parsed_terms == 1) and b1 or b2
-- Generate IPA
local ipa_str = to_ipa(pt.term, pt.pagename)
-- Handle rhyme: manual override, suppression, or auto-generation
local rhyme_objs = nil
local suppress_rhyme = false
if #pt.rhyme_list > 0 then
for _, robj in ipairs(pt.rhyme_list) do
if robj.rhyme == "-" then
suppress_rhyme = true
break
end
end
if not suppress_rhyme then
rhyme_objs = {}
for _, robj in ipairs(pt.rhyme_list) do
-- If num_syl not specified, try to get from auto-generated hyphenation
if not robj.num_syl then
local auto_hyph = get_hyphenation(pt.term, pt.pagename)
if auto_hyph and #auto_hyph > 0 then
-- Use syllable_count field if available (for multi-word phrases), otherwise use array length
local syl_count = auto_hyph.syllable_count or #auto_hyph
robj.num_syl = {syl_count}
end
end
insert(rhyme_objs, robj)
end
end
else
-- Auto-generate rhyme (skip if term ends with -)
if not pt.term:match("%-$") then
local rhyme_str = get_rhyme(ipa_str)
if rhyme_str then
local auto_hyph = get_hyphenation(pt.term, pt.pagename)
-- Use syllable_count field if available (for multi-word phrases), otherwise use array length
local num_syl = (auto_hyph and #auto_hyph > 0) and {auto_hyph.syllable_count or #auto_hyph} or nil
rhyme_objs = {{rhyme = rhyme_str, num_syl = num_syl}}
end
end
end
-- Handle hyphenation: manual override, suppression, or auto-generation
local hyph_objs = nil
local suppress_hyph = false
if #pt.hyph_list > 0 then
for _, hobj in ipairs(pt.hyph_list) do
if hobj.syllabification == "-" then
suppress_hyph = true
break
end
end
if not suppress_hyph then
hyph_objs = pt.hyph_list
end
else
-- Auto-generate hyphenation
local auto_hyph = get_hyphenation(pt.term, pt.pagename)
if auto_hyph and #auto_hyph > 0 then
hyph_objs = {{hyph = auto_hyph, syllabification = concat(auto_hyph, ".")}}
end
end
-- Format IPA with qualifiers and references
local ipa_item = {pron = "[" .. ipa_str .. "]"}
if pt.q then ipa_item.q = pt.q end
if pt.qq then ipa_item.qq = pt.qq end
if pt.a then ipa_item.a = pt.a end
if pt.aa then ipa_item.aa = pt.aa end
if pt.refs then ipa_item.refs = pt.refs end
text_parts[#text_parts + 1] = b1 .. m_IPA.format_IPA_full({
lang = get_lang(),
items = {ipa_item}
})
-- Audio
for _, aud in ipairs(pt.audio_list or {}) do
text_parts[#text_parts + 1] = fmt_audio(aud, content_bullet)
end
-- Rhyme
if rhyme_objs then
local r = fmt_rhyme(rhyme_objs, content_bullet)
if r then text_parts[#text_parts + 1] = r end
end
-- Hyphenation
if hyph_objs then
local h = fmt_hyph(hyph_objs, content_bullet)
if h then text_parts[#text_parts + 1] = h end
end
-- Homophones
if pt.hmp_list and #pt.hmp_list > 0 then
local hmp = fmt_hmp(pt.hmp_list, content_bullet)
if hmp then text_parts[#text_parts + 1] = hmp end
end
end
return concat(text_parts, "\n")
end
export.toIPA = to_ipa
export.hyphenate = get_hyphenation
export.rhyme = get_rhyme
return export
kpf8tlrxic48gm004pdl6qziwgahth3
Template:Lt-pr
10
3434191
9753778
2026-05-06T08:51:37Z
TongcyDai
53191
[[w:WP:AES|←]]建立內容為「{{#invoke:lt-pron|show}}<noinclude>{{documentation}}</noinclude>」的新頁面
9753778
wikitext
text/x-wiki
{{#invoke:lt-pron|show}}<noinclude>{{documentation}}</noinclude>
p6h7t8o8qyxdia67brluph5p1k5ncri