Wiktionary
viwiktionary
https://vi.wiktionary.org/wiki/Wiktionary:Trang_Ch%C3%ADnh
MediaWiki 1.47.0-wmf.21
case-sensitive
Phương tiện
Đặc biệt
Thảo luận
Thành viên
Thảo luận Thành viên
Wiktionary
Thảo luận Wiktionary
Tập tin
Thảo luận Tập tin
MediaWiki
Thảo luận MediaWiki
Bản mẫu
Thảo luận Bản mẫu
Trợ giúp
Thảo luận Trợ giúp
Thể loại
Thảo luận Thể loại
Phụ lục
Thảo luận Phụ lục
TimedText
TimedText talk
Mô đun
Thảo luận Mô đun
Sự kiện
Thảo luận Sự kiện
tem
0
92737
2567010
2418368
2026-09-27T14:34:23Z
Waitforbabyglobe
61372
2567010
wikitext
text/x-wiki
==Catalan==
===Nguyên từ 1===
{{nonlemma}}
====Phát âm====
* {{ca-IPA|é}}
====Động từ====
{{head|ca|verb form}}
# {{ca-verb form of|témer}}
===Nguyên từ 2===
{{inh+|ca|la|thymus||thyme}}. See also {{m|ca|timó}}.
====Phát âm====
* {{ca-IPA|ê}}<!-- per GDLC, DNV, DCVB -->
====Động từ====
{{ca-noun|m}}
# {{lb|ca|Minorca}} [[thyme]]
#: {{syn|ca|farigola}}
===Tham khảo===
* {{R:ca:DCVB}}
==Tiếng Hà Lan==
===Phát âm===
* {{audio|nl|Nl-tem.ogg}}
* {{rhymes|nl|ɛm|s=1}}
===Động từ===
{{head|nl|verb form}}
# {{infl of|nl|temmen||bare-verb}}
==Tiếng Iceland==
===Động từ===
{{head|is|verb form}} {{qualifier|weak}}
# {{verb form of|is|temja||1s|pres|ind|;|2s|imp}}
{{-enm-}}
===Nguyên từ 1===
{{etymid|enm|group}}
{{inh+|enm|ang|tēam}}, nguồn gốc từ {{inh|enm|gmw-pro|*taum}}, hoặc {{inh|enm|gem-pro|*taumaz}}.
====Các dạng thay thế====
* {{alter|enm|teem|teeme|teme|teome|them|theam}}
* {{alter|enm|tæm|team||early}}
====Phát âm====
* {{IPA|enm|/tɛ̝ːm/}}
* {{rhymes|enm|ɛːm|s=1}}
====Động từ====
{{enm-noun|temes}}
# [[họ hàng]], [[thị tộc]], [[nhân dân]]
# {{lb|enm|legal}} Đặc quyền đưa ra quyết định về các tranh chấp quyền [[sở hữu|lệ thuộc]] giữa các cấp dưới của cá nhân.
# Một nhóm [[gia súc]] được sử dụng để kéo nông cụ.
# Một đàn [[thủy điểu]] hoặc [[gà]].
# [[hậu duệ]], [[con cái]]; cũng bao gồm cả những đối tượng sau:
## {{lb|enm|legal}} Hậu duệ của [[cấp dưới]].
# {{lb|enm|rare}} Khả năng [[sinh sản]].
# {{lb|enm|rare}} [[đội]] [[ nhóm]], [[công ty]], [[ban nhạc]].
=====Từ liên quan=====
* {{l|enm|barntem}}
* {{l|enm|temen|id=bear}}
=====Từ hậu duệ=====
* {{desc|en|team}} {{see desc}}
* {{desc|sco|team}}
=====Tham khảo=====
* {{R:MED Online|entry=tēm(e |pos=n.(1) |id=MED44698 |accessdate=2018-04-25}}
===Từ nguyên 2===
====Động từ====
{{head|enm|verb}}
# {{alt form|enm|temen|id=bear|t=để sinh ản, hỗ trợ}}
{{C|enm|Agriculture|Family|Livestock|People}}
{{-nb-}}
===Động từ===
{{head|nb|verb form}}
# {{inflection of|nb|temme||imp}}
{{-pl-}}
===Phát âm===
{{pl-pr}}
===Đại từ===
{{head|pl|pronoun form|g=n}}
# {{lb|pl|obsolete}} {{inflection of|pl|to||ins//loc|s|;|dat|p}}
====Từ phái sinh====
{{col|pl|potem|przedtem|wtem|zatem}}
===Tham khảo===
* {{R:pl:PWN}}
{{-pt-}}
===Etymology===
From {{inh|pt|la|tenet}}. Cùng gốc với {{cog|gl|ten}} và {{cog|es|tiene}}. Cũng hãy so sánh với {{m|pt|vem}}.
===Phát âm===
{{pt-IPA}}
* {{audio|pt|LL-Q5146 (por)-JnpoJuwan-tem.wav|a=<<Brazil>> (<<São Paulo>>)}}
* {{audio|pt|LL-Q5146 (por)-Santamarcanda-tem.wav|a=<<Portugal>> (<<Porto>>)}}
* {{rhymes|pt|ẽj̃|q1=Brazil|ɐ̃j̃|q2=Portugal|s=1}}
* {{homophones|pt|têm|qq1=Brazil}}
* {{hyphenation|pt|tem}}
===Động từ===
{{head|pt|verb form}}
# {{pt-verb form of|ter}}
# {{lb|pt|Brazil}} {{misspelling of|pt|têm}}
==Tiếng Romania==
===Phát âm===
* {{IPA|ro|[tem]}}
===Động từ===
{{head|ro|verb form}}
# {{verb form of|ro|teme||1|s|pres|ind//sub|;|3|p|pres|ind}}
{{-vie-}}
{{-info-}}
{{-pron-}}
{{vi-pron}}
{{-etymology-}}
{{etym|lang=vie|from=
* [[fra:timbre]]
}}
{{-nôm-}}
{{đầu}}
*[[尖]]: [[tiêm]], [[tem]], [[nhọn]]
{{cuối}}
{{-paro-}}
:* [[têm]]
:* [[tém]]
{{-noun-}}
'''tem'''
# [[miếng|Miếng]] [[giấy]] nhỏ, thường [[hình]] [[chữ nhật]], có [[in]] [[tranh]] ảnh và [[giá]] [[tiền]], do [[bưu điện]] [[phát hành]], dùng để [[dán]] lên các [[bưu phẩm]] làm chứng từ [[cước phí]].
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], dùng để [[dán]] vào một số [[giấy tờ]] [[chính thức]] hoặc [[hàng hoá]], [[chứng nhận]] đã [[nộp thuế]] hoặc [[lệ phí]].
# [[nhãn hiệu|Nhãn hiệu]] [[dán]] trên các [[mặt hàng]] để [[chứng nhận]] [[phẩm chất]].
#: ''Hàng chưa bóc '''tem'''.'' (kng. — còn mới nguyên, chưa sử dụng bao giờ)
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], có [[giá trị]] [[mua]] [[hàng hoá]] chỉ [[bán]] [[cung cấp]] theo [[định lượng]].
#: '''''Tem''' lương thực.''
{{-syn-}}
; miếng giấy nhỏ dùng để dán lên các bưu phẩm
* [[tem thư]]
{{-ref-}}
{{R:FVDP}}
{{R:WinVNKey:Lê Sơn Thanh}}
[[Thể loại:Danh từ tiếng Việt]]
=={{langname|kjg}}==
==={{ĐM|verb}}===
{{head|kjg|Động từ}}
# [[viết]].
==={{ĐM|ref}}===
* Tạ Văn Thông, Tạ Quang Tùng (2020). ''Trạng thái ngôn ngữ các dân tộc thuộc nhóm Khơ-mú ở Việt Nam''
tg44ys2txe25zm71cbd859sqgyh1cnk
2567011
2567010
2026-09-27T14:35:04Z
Waitforbabyglobe
61372
2567011
wikitext
text/x-wiki
{{-ca-}}
===Nguyên từ 1===
{{nonlemma}}
====Phát âm====
* {{ca-IPA|é}}
====Động từ====
{{head|ca|verb form}}
# {{ca-verb form of|témer}}
===Nguyên từ 2===
{{inh+|ca|la|thymus||thyme}}. See also {{m|ca|timó}}.
====Phát âm====
* {{ca-IPA|ê}}<!-- per GDLC, DNV, DCVB -->
====Động từ====
{{ca-noun|m}}
# {{lb|ca|Minorca}} [[thyme]]
#: {{syn|ca|farigola}}
===Tham khảo===
* {{R:ca:DCVB}}
==Tiếng Hà Lan==
===Phát âm===
* {{audio|nl|Nl-tem.ogg}}
* {{rhymes|nl|ɛm|s=1}}
===Động từ===
{{head|nl|verb form}}
# {{infl of|nl|temmen||bare-verb}}
==Tiếng Iceland==
===Động từ===
{{head|is|verb form}} {{qualifier|weak}}
# {{verb form of|is|temja||1s|pres|ind|;|2s|imp}}
{{-enm-}}
===Nguyên từ 1===
{{etymid|enm|group}}
{{inh+|enm|ang|tēam}}, nguồn gốc từ {{inh|enm|gmw-pro|*taum}}, hoặc {{inh|enm|gem-pro|*taumaz}}.
====Các dạng thay thế====
* {{alter|enm|teem|teeme|teme|teome|them|theam}}
* {{alter|enm|tæm|team||early}}
====Phát âm====
* {{IPA|enm|/tɛ̝ːm/}}
* {{rhymes|enm|ɛːm|s=1}}
====Động từ====
{{enm-noun|temes}}
# [[họ hàng]], [[thị tộc]], [[nhân dân]]
# {{lb|enm|legal}} Đặc quyền đưa ra quyết định về các tranh chấp quyền [[sở hữu|lệ thuộc]] giữa các cấp dưới của cá nhân.
# Một nhóm [[gia súc]] được sử dụng để kéo nông cụ.
# Một đàn [[thủy điểu]] hoặc [[gà]].
# [[hậu duệ]], [[con cái]]; cũng bao gồm cả những đối tượng sau:
## {{lb|enm|legal}} Hậu duệ của [[cấp dưới]].
# {{lb|enm|rare}} Khả năng [[sinh sản]].
# {{lb|enm|rare}} [[đội]] [[ nhóm]], [[công ty]], [[ban nhạc]].
=====Từ liên quan=====
* {{l|enm|barntem}}
* {{l|enm|temen|id=bear}}
=====Từ hậu duệ=====
* {{desc|en|team}} {{see desc}}
* {{desc|sco|team}}
=====Tham khảo=====
* {{R:MED Online|entry=tēm(e |pos=n.(1) |id=MED44698 |accessdate=2018-04-25}}
===Từ nguyên 2===
====Động từ====
{{head|enm|verb}}
# {{alt form|enm|temen|id=bear|t=để sinh ản, hỗ trợ}}
{{C|enm|Agriculture|Family|Livestock|People}}
{{-nb-}}
===Động từ===
{{head|nb|verb form}}
# {{inflection of|nb|temme||imp}}
{{-pl-}}
===Phát âm===
{{pl-pr}}
===Đại từ===
{{head|pl|pronoun form|g=n}}
# {{lb|pl|obsolete}} {{inflection of|pl|to||ins//loc|s|;|dat|p}}
====Từ phái sinh====
{{col|pl|potem|przedtem|wtem|zatem}}
===Tham khảo===
* {{R:pl:PWN}}
{{-pt-}}
===Etymology===
From {{inh|pt|la|tenet}}. Cùng gốc với {{cog|gl|ten}} và {{cog|es|tiene}}. Cũng hãy so sánh với {{m|pt|vem}}.
===Phát âm===
{{pt-IPA}}
* {{audio|pt|LL-Q5146 (por)-JnpoJuwan-tem.wav|a=<<Brazil>> (<<São Paulo>>)}}
* {{audio|pt|LL-Q5146 (por)-Santamarcanda-tem.wav|a=<<Portugal>> (<<Porto>>)}}
* {{rhymes|pt|ẽj̃|q1=Brazil|ɐ̃j̃|q2=Portugal|s=1}}
* {{homophones|pt|têm|qq1=Brazil}}
* {{hyphenation|pt|tem}}
===Động từ===
{{head|pt|verb form}}
# {{pt-verb form of|ter}}
# {{lb|pt|Brazil}} {{misspelling of|pt|têm}}
==Tiếng Romania==
===Phát âm===
* {{IPA|ro|[tem]}}
===Động từ===
{{head|ro|verb form}}
# {{verb form of|ro|teme||1|s|pres|ind//sub|;|3|p|pres|ind}}
{{-vie-}}
{{-info-}}
{{-pron-}}
{{vi-pron}}
{{-etymology-}}
{{etym|lang=vie|from=
* [[fra:timbre]]
}}
{{-nôm-}}
{{đầu}}
*[[尖]]: [[tiêm]], [[tem]], [[nhọn]]
{{cuối}}
{{-paro-}}
:* [[têm]]
:* [[tém]]
{{-noun-}}
'''tem'''
# [[miếng|Miếng]] [[giấy]] nhỏ, thường [[hình]] [[chữ nhật]], có [[in]] [[tranh]] ảnh và [[giá]] [[tiền]], do [[bưu điện]] [[phát hành]], dùng để [[dán]] lên các [[bưu phẩm]] làm chứng từ [[cước phí]].
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], dùng để [[dán]] vào một số [[giấy tờ]] [[chính thức]] hoặc [[hàng hoá]], [[chứng nhận]] đã [[nộp thuế]] hoặc [[lệ phí]].
# [[nhãn hiệu|Nhãn hiệu]] [[dán]] trên các [[mặt hàng]] để [[chứng nhận]] [[phẩm chất]].
#: ''Hàng chưa bóc '''tem'''.'' (kng. — còn mới nguyên, chưa sử dụng bao giờ)
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], có [[giá trị]] [[mua]] [[hàng hoá]] chỉ [[bán]] [[cung cấp]] theo [[định lượng]].
#: '''''Tem''' lương thực.''
{{-syn-}}
; miếng giấy nhỏ dùng để dán lên các bưu phẩm
* [[tem thư]]
{{-ref-}}
{{R:FVDP}}
{{R:WinVNKey:Lê Sơn Thanh}}
[[Thể loại:Danh từ tiếng Việt]]
=={{langname|kjg}}==
==={{ĐM|verb}}===
{{head|kjg|Động từ}}
# [[viết]].
==={{ĐM|ref}}===
* Tạ Văn Thông, Tạ Quang Tùng (2020). ''Trạng thái ngôn ngữ các dân tộc thuộc nhóm Khơ-mú ở Việt Nam''
8ljc6yub815bmjamnxb2vjve17dncam
2567015
2567011
2026-09-27T15:07:58Z
TheHighFighter2
42988
{{[[Bản mẫu:đang viết|đang viết]]}}
2567015
wikitext
text/x-wiki
{{đang viết}}
{{-ca-}}
===Nguyên từ 1===
{{nonlemma}}
====Phát âm====
* {{ca-IPA|é}}
====Động từ====
{{head|ca|verb form}}
# {{ca-verb form of|témer}}
===Nguyên từ 2===
{{inh+|ca|la|thymus||thyme}}. See also {{m|ca|timó}}.
====Phát âm====
* {{ca-IPA|ê}}<!-- per GDLC, DNV, DCVB -->
====Động từ====
{{ca-noun|m}}
# {{lb|ca|Minorca}} [[thyme]]
#: {{syn|ca|farigola}}
===Tham khảo===
* {{R:ca:DCVB}}
==Tiếng Hà Lan==
===Phát âm===
* {{audio|nl|Nl-tem.ogg}}
* {{rhymes|nl|ɛm|s=1}}
===Động từ===
{{head|nl|verb form}}
# {{infl of|nl|temmen||bare-verb}}
==Tiếng Iceland==
===Động từ===
{{head|is|verb form}} {{qualifier|weak}}
# {{verb form of|is|temja||1s|pres|ind|;|2s|imp}}
{{-enm-}}
===Nguyên từ 1===
{{etymid|enm|group}}
{{inh+|enm|ang|tēam}}, nguồn gốc từ {{inh|enm|gmw-pro|*taum}}, hoặc {{inh|enm|gem-pro|*taumaz}}.
====Các dạng thay thế====
* {{alter|enm|teem|teeme|teme|teome|them|theam}}
* {{alter|enm|tæm|team||early}}
====Phát âm====
* {{IPA|enm|/tɛ̝ːm/}}
* {{rhymes|enm|ɛːm|s=1}}
====Động từ====
{{enm-noun|temes}}
# [[họ hàng]], [[thị tộc]], [[nhân dân]]
# {{lb|enm|legal}} Đặc quyền đưa ra quyết định về các tranh chấp quyền [[sở hữu|lệ thuộc]] giữa các cấp dưới của cá nhân.
# Một nhóm [[gia súc]] được sử dụng để kéo nông cụ.
# Một đàn [[thủy điểu]] hoặc [[gà]].
# [[hậu duệ]], [[con cái]]; cũng bao gồm cả những đối tượng sau:
## {{lb|enm|legal}} Hậu duệ của [[cấp dưới]].
# {{lb|enm|rare}} Khả năng [[sinh sản]].
# {{lb|enm|rare}} [[đội]] [[ nhóm]], [[công ty]], [[ban nhạc]].
=====Từ liên quan=====
* {{l|enm|barntem}}
* {{l|enm|temen|id=bear}}
=====Từ hậu duệ=====
* {{desc|en|team}} {{see desc}}
* {{desc|sco|team}}
=====Tham khảo=====
* {{R:MED Online|entry=tēm(e |pos=n.(1) |id=MED44698 |accessdate=2018-04-25}}
===Từ nguyên 2===
====Động từ====
{{head|enm|verb}}
# {{alt form|enm|temen|id=bear|t=để sinh ản, hỗ trợ}}
{{C|enm|Agriculture|Family|Livestock|People}}
{{-nb-}}
===Động từ===
{{head|nb|verb form}}
# {{inflection of|nb|temme||imp}}
{{-pl-}}
===Phát âm===
{{pl-pr}}
===Đại từ===
{{head|pl|pronoun form|g=n}}
# {{lb|pl|obsolete}} {{inflection of|pl|to||ins//loc|s|;|dat|p}}
====Từ phái sinh====
{{col|pl|potem|przedtem|wtem|zatem}}
===Tham khảo===
* {{R:pl:PWN}}
{{-pt-}}
===Etymology===
From {{inh|pt|la|tenet}}. Cùng gốc với {{cog|gl|ten}} và {{cog|es|tiene}}. Cũng hãy so sánh với {{m|pt|vem}}.
===Phát âm===
{{pt-IPA}}
* {{audio|pt|LL-Q5146 (por)-JnpoJuwan-tem.wav|a=<<Brazil>> (<<São Paulo>>)}}
* {{audio|pt|LL-Q5146 (por)-Santamarcanda-tem.wav|a=<<Portugal>> (<<Porto>>)}}
* {{rhymes|pt|ẽj̃|q1=Brazil|ɐ̃j̃|q2=Portugal|s=1}}
* {{homophones|pt|têm|qq1=Brazil}}
* {{hyphenation|pt|tem}}
===Động từ===
{{head|pt|verb form}}
# {{pt-verb form of|ter}}
# {{lb|pt|Brazil}} {{misspelling of|pt|têm}}
==Tiếng Romania==
===Phát âm===
* {{IPA|ro|[tem]}}
===Động từ===
{{head|ro|verb form}}
# {{verb form of|ro|teme||1|s|pres|ind//sub|;|3|p|pres|ind}}
{{-vie-}}
{{-info-}}
{{-pron-}}
{{vi-pron}}
{{-etymology-}}
{{etym|lang=vie|from=
* [[fra:timbre]]
}}
{{-nôm-}}
{{đầu}}
*[[尖]]: [[tiêm]], [[tem]], [[nhọn]]
{{cuối}}
{{-paro-}}
:* [[têm]]
:* [[tém]]
{{-noun-}}
'''tem'''
# [[miếng|Miếng]] [[giấy]] nhỏ, thường [[hình]] [[chữ nhật]], có [[in]] [[tranh]] ảnh và [[giá]] [[tiền]], do [[bưu điện]] [[phát hành]], dùng để [[dán]] lên các [[bưu phẩm]] làm chứng từ [[cước phí]].
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], dùng để [[dán]] vào một số [[giấy tờ]] [[chính thức]] hoặc [[hàng hoá]], [[chứng nhận]] đã [[nộp thuế]] hoặc [[lệ phí]].
# [[nhãn hiệu|Nhãn hiệu]] [[dán]] trên các [[mặt hàng]] để [[chứng nhận]] [[phẩm chất]].
#: ''Hàng chưa bóc '''tem'''.'' (kng. — còn mới nguyên, chưa sử dụng bao giờ)
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], có [[giá trị]] [[mua]] [[hàng hoá]] chỉ [[bán]] [[cung cấp]] theo [[định lượng]].
#: '''''Tem''' lương thực.''
{{-syn-}}
; miếng giấy nhỏ dùng để dán lên các bưu phẩm
* [[tem thư]]
{{-ref-}}
{{R:FVDP}}
{{R:WinVNKey:Lê Sơn Thanh}}
[[Thể loại:Danh từ tiếng Việt]]
=={{langname|kjg}}==
==={{ĐM|verb}}===
{{head|kjg|Động từ}}
# [[viết]].
==={{ĐM|ref}}===
* Tạ Văn Thông, Tạ Quang Tùng (2020). ''Trạng thái ngôn ngữ các dân tộc thuộc nhóm Khơ-mú ở Việt Nam''
1yhx5elxch1dh0jj85x6uluwnbhr9og
2567158
2567015
2026-09-28T10:12:36Z
TheHighFighter2
42988
2567158
wikitext
text/x-wiki
{{đang viết}}
=={{langname|vi}}==
{{-info-}}
==={{ĐM|etym}}===
Từ {{bor|vi|fr|timbre}}.
==={{ĐM|pron}}===
{{vi-pron}}
* {{audio|vi|LL-Q9199 (vie)-Penn Zero MSSJ-tem.wav|a=Hanoi}}
==={{ĐM|nôm}}===
{{đầu}}
*[[尖]]: [[tiêm]], [[tem]], [[nhọn]]
{{cuối}}
==={{ĐM|noun}}===
{{vi-noun|cls=[[con]], [[chiếc]], [[cái]]}}
# [[miếng|Miếng]] [[giấy]] nhỏ, thường [[hình]] [[chữ nhật]], có [[in]] [[tranh]] ảnh và [[giá]] [[tiền]], do [[bưu điện]] [[phát hành]], dùng để [[dán]] lên các [[bưu phẩm]] làm chứng từ [[cước phí]].
#: {{syn|vi|tem thư}}
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], dùng để [[dán]] vào một số [[giấy tờ]] [[chính thức]] hoặc [[hàng hoá]], [[chứng nhận]] đã [[nộp thuế]] hoặc [[lệ phí]].
# [[nhãn hiệu|Nhãn hiệu]] [[dán]] trên các [[mặt hàng]] để [[chứng nhận]] [[phẩm chất]].
#: ''Hàng chưa bóc '''tem'''.'' (kng. — còn mới nguyên, chưa sử dụng bao giờ)
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], có [[giá trị]] [[mua]] [[hàng hoá]] chỉ [[bán]] [[cung cấp]] theo [[định lượng]].
#: '''''Tem''' lương thực.''
==={{ĐM|ref}}===
{{R:FVDP}}
{{R:WinVNKey:Lê Sơn Thanh}}
=={{langname|enm}}==
==={{ĐM|etym}} 1===
{{etymid|enm|group}}
{{inh+|enm|ang|tēam}}, nguồn gốc từ {{inh|enm|gmw-pro|*taum}}, hoặc {{inh|enm|gem-pro|*taumaz}}.
===={{ĐM|alt}}====
* {{alter|enm|teem|teeme|teme|teome|them|theam}}
* {{alter|enm|tæm|team||early}}
===={{ĐM|pron}}====
* {{IPA|enm|/tɛ̝ːm/}}
* {{rhymes|enm|ɛːm|s=1}}
===={{ĐM|noun}}====
{{enm-noun|temes}}
# [[họ hàng]], [[thị tộc]], [[nhân dân]]
# {{lb|enm|legal}} Đặc quyền đưa ra quyết định về các tranh chấp quyền [[sở hữu|lệ thuộc]] giữa các cấp dưới của cá nhân.
# Một nhóm [[gia súc]] được sử dụng để kéo nông cụ.
# Một đàn [[thủy điểu]] hoặc [[gà]].
# [[hậu duệ]], [[con cái]]; cũng bao gồm cả những đối tượng sau:
## {{lb|enm|legal}} Hậu duệ của [[cấp dưới]].
# {{lb|enm|rare}} Khả năng [[sinh sản]].
# {{lb|enm|rare}} [[đội]] [[ nhóm]], [[công ty]], [[ban nhạc]].
====={{ĐM|rel}}=====
* {{l|enm|barntem}}
* {{l|enm|temen|id=bear}}
====={{ĐM|desc}}=====
* {{desc|en|team}} {{see desc}}
* {{desc|sco|team}}
====={{ĐM|ref}}=====
* {{R:MED Online|entry=tēm(e |pos=n.(1) |id=MED44698 |accessdate=2018-04-25}}
==={{ĐM|etym}} 2===
===={{ĐM|verb}}====
{{head|enm|verb}}
# {{alt form|enm|temen|id=bear|t=để sinh ản, hỗ trợ}}
{{C|enm|Agriculture|Family|Livestock|People}}
=={{langname|pl}}==
==={{ĐM|pron}}===
{{pl-pr}}
==={{ĐM|pronoun}}===
{{head|pl|Biến thể hình thái đại từ|g=n}}
# {{lb|pl|obsolete}} {{inflection of|pl|to||ins//loc|s|;|dat|p}}
===={{ĐM|der}}====
{{col|pl|potem|przedtem|wtem|zatem}}
==={{ĐM|ref}}===
* {{R:pl:PWN}}
=={{langname|pt}}==
==={{ĐM|etym}}===
Từ {{inh|pt|la|tenet}}. Cùng gốc với {{cog|gl|ten}} và {{cog|es|tiene}}. So sánh thêm với {{m|pt|vem}}.
==={{ĐM|pron}}===
{{pt-IPA}}
* {{audio|pt|LL-Q5146 (por)-JnpoJuwan-tem.wav|a=<<Brazil>> (<<São Paulo>>)}}
* {{audio|pt|LL-Q5146 (por)-Santamarcanda-tem.wav|a=<<Portugal>> (<<Porto>>)}}
* {{rhymes|pt|ẽj̃|q1=Brazil|ɐ̃j̃|q2=Portugal|s=1}}
* {{homophones|pt|têm|qq1=Brazil}}
* {{hyphenation|pt|tem}}
==={{ĐM|verb}}===
{{head|pt|Biến thể hình thái động từ}}
# {{pt-verb form of|ter}}
# {{lb|pt|Brazil}} {{misspelling of|pt|têm}}
=={{langname|ca}}==
==={{ĐM|etym}} 1===
{{nonlemma}}
===={{ĐM|pron}}====
* {{ca-IPA|é}}
===={{ĐM|verb}}====
{{head|ca|Biến thể hình thái động từ}}
# {{ca-verb form of|témer}}
==={{ĐM|etym}} 2===
{{inh+|ca|la|thymus||cỏ xạ hương}}. Xem thêm {{m|ca|timó}}.
===={{ĐM|pron}}====
* {{ca-IPA|ê}}<!-- theo GDLC, DNV, DCVB -->
===={{ĐM|noun}}====
{{ca-noun|m}}
# {{lb|ca|Minorca}} [[cỏ xạ hương|Cỏ xạ hương]].
#: {{syn|ca|farigola}}
==={{ĐM|ref}}===
* {{R:ca:DCVB}}
=={{langname|kjg}}==
==={{ĐM|verb}}===
{{head|kjg|Động từ}}
# [[viết|Viết]].
==={{ĐM|ref}}===
* Tạ Văn Thông, Tạ Quang Tùng (2020). ''Trạng thái ngôn ngữ các dân tộc thuộc nhóm Khơ-mú ở Việt Nam''
=={{langname|nl}}==
==={{ĐM|pron}}===
* {{audio|nl|Nl-tem.ogg}}
* {{rhymes|nl|ɛm|s=1}}
==={{ĐM|verb}}===
{{head|nl|Biến thể hình thái động từ}}
# {{infl of|nl|temmen||bare-verb}}
=={{langname|is}}==
==={{ĐM|verb}}===
{{head|is|Biến thể hình thái động từ}} {{qualifier|weak}}
# {{verb form of|is|temja||1s|pres|ind|;|2s|imp}}
=={{langname|nb}}==
==={{ĐM|verb}}===
{{head|nb|Biến thể hình thái động từ}}
# {{inflection of|nb|temme||imp}}
=={{langname|ro}}==
==={{ĐM|pron}}===
* {{IPA|ro|[tem]}}
==={{ĐM|verb}}===
{{head|ro|Biến thể hình thái động từ}}
# {{verb form of|ro|teme||1|s|pres|ind//sub|;|3|p|pres|ind}}
r55ozu4ii73vvwvfgy5k8sxw0fq0pdo
2567159
2567158
2026-09-28T10:13:37Z
TheHighFighter2
42988
2567159
wikitext
text/x-wiki
{{đang viết}}
=={{langname|vi}}==
{{-info-}}
==={{ĐM|etym}}===
Từ {{bor|vi|fr|timbre}}.
==={{ĐM|pron}}===
{{vi-pron}}
* {{audio|vi|LL-Q9199 (vie)-Penn Zero MSSJ-tem.wav|a=Hanoi}}
==={{ĐM|nôm}}===
{{đầu}}
*[[尖]]: [[tiêm]], [[tem]], [[nhọn]]
{{cuối}}
==={{ĐM|noun}}===
{{vi-noun|cls=[[con]], [[chiếc]], [[cái]]}}
# [[miếng|Miếng]] [[giấy]] nhỏ, thường [[hình]] [[chữ nhật]], có [[in]] [[tranh]] ảnh và [[giá]] [[tiền]], do [[bưu điện]] [[phát hành]], dùng để [[dán]] lên các [[bưu phẩm]] làm chứng từ [[cước phí]].
#: {{syn|vi|tem thư}}
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], dùng để [[dán]] vào một số [[giấy tờ]] [[chính thức]] hoặc [[hàng hoá]], [[chứng nhận]] đã [[nộp thuế]] hoặc [[lệ phí]].
# [[nhãn hiệu|Nhãn hiệu]] [[dán]] trên các [[mặt hàng]] để [[chứng nhận]] [[phẩm chất]].
#: ''Hàng chưa bóc '''tem'''.'' (kng. — còn mới nguyên, chưa sử dụng bao giờ)
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], có [[giá trị]] [[mua]] [[hàng hoá]] chỉ [[bán]] [[cung cấp]] theo [[định lượng]].
#: '''''Tem''' lương thực.''
==={{ĐM|ref}}===
{{R:FVDP}}
{{R:WinVNKey:Lê Sơn Thanh}}
=={{langname|enm}}==
==={{ĐM|etym}} 1===
{{etymid|enm|group}}
{{inh+|enm|ang|tēam}}, nguồn gốc từ {{inh|enm|gmw-pro|*taum}}, hoặc {{inh|enm|gem-pro|*taumaz}}.
===={{ĐM|alt}}====
* {{alter|enm|teem|teeme|teme|teome|them|theam}}
* {{alter|enm|tæm|team||early}}
===={{ĐM|pron}}====
* {{IPA|enm|/tɛ̝ːm/}}
* {{rhymes|enm|ɛːm|s=1}}
===={{ĐM|noun}}====
{{enm-noun|temes}}
# [[họ hàng]], [[thị tộc]], [[nhân dân]]
# {{lb|enm|legal}} Đặc quyền đưa ra quyết định về các tranh chấp quyền [[sở hữu|lệ thuộc]] giữa các cấp dưới của cá nhân.
# Một nhóm [[gia súc]] được sử dụng để kéo nông cụ.
# Một đàn [[thủy điểu]] hoặc [[gà]].
# [[hậu duệ]], [[con cái]]; cũng bao gồm cả những đối tượng sau:
## {{lb|enm|legal}} Hậu duệ của [[cấp dưới]].
# {{lb|enm|rare}} Khả năng [[sinh sản]].
# {{lb|enm|rare}} [[đội]] [[ nhóm]], [[công ty]], [[ban nhạc]].
====={{ĐM|rel}}=====
* {{l|enm|barntem}}
* {{l|enm|temen|id=bear}}
====={{ĐM|desc}}=====
* {{desc|en|team}} {{see desc}}
* {{desc|sco|team}}
====={{ĐM|ref}}=====
* {{R:MED Online|entry=tēm(e |pos=n.(1) |id=MED44698 |accessdate=2018-04-25}}
==={{ĐM|etym}} 2===
===={{ĐM|verb}}====
{{head|enm|verb}}
# {{alt form|enm|temen|id=bear|t=để sinh ản, hỗ trợ}}
{{C|enm|Agriculture|Family|Livestock|People}}
=={{langname|pl}}==
==={{ĐM|pron}}===
{{pl-pr}}
==={{ĐM|pronoun}}===
{{head|pl|Biến thể hình thái đại từ|g=n}}
# {{lb|pl|obsolete}} {{inflection of|pl|to||ins//loc|s|;|dat|p}}
===={{ĐM|der}}====
{{col|pl|potem|przedtem|wtem|zatem}}
==={{ĐM|ref}}===
* {{R:pl:PWN}}
=={{langname|pt}}==
==={{ĐM|etym}}===
Từ {{inh|pt|la|tenet}}. Cùng gốc với {{cog|gl|ten}} và {{cog|es|tiene}}. So sánh thêm với {{m|pt|vem}}.
==={{ĐM|pron}}===
{{pt-IPA}}
* {{audio|pt|LL-Q5146 (por)-JnpoJuwan-tem.wav|a=<<Brazil>> (<<São Paulo>>)}}
* {{audio|pt|LL-Q5146 (por)-Santamarcanda-tem.wav|a=<<Portugal>> (<<Porto>>)}}
* {{rhymes|pt|ẽj̃|q1=Brazil|ɐ̃j̃|q2=Portugal|s=1}}
* {{homophones|pt|têm|qq1=Brazil}}
* {{hyphenation|pt|tem}}
==={{ĐM|verb}}===
{{head|pt|Biến thể hình thái động từ}}
# {{pt-verb form of|ter}}
# {{lb|pt|Brazil}} {{misspelling of|pt|têm}}
=={{langname|ca}}==
==={{ĐM|etym}} 1===
{{nonlemma}}
===={{ĐM|pron}}====
* {{ca-IPA|é}}
===={{ĐM|verb}}====
{{head|ca|Biến thể hình thái động từ}}
# {{ca-verb form of|témer}}
==={{ĐM|etym}} 2===
{{inh+|ca|la|thymus||cỏ xạ hương}}. Xem thêm {{m|ca|timó}}.
===={{ĐM|pron}}====
* {{ca-IPA|ê}}<!-- theo GDLC, DNV, DCVB -->
===={{ĐM|noun}}====
{{ca-noun|m}}
# {{lb|ca|Minorca}} [[cỏ xạ hương|Cỏ xạ hương]].
#: {{syn|ca|farigola}}
==={{ĐM|ref}}===
* {{R:ca:DCVB}}
=={{langname|nl}}==
==={{ĐM|pron}}===
* {{audio|nl|Nl-tem.ogg}}
* {{rhymes|nl|ɛm|s=1}}
==={{ĐM|verb}}===
{{head|nl|Biến thể hình thái động từ}}
# {{infl of|nl|temmen||bare-verb}}
=={{langname|kjg}}==
==={{ĐM|verb}}===
{{head|kjg|Động từ}}
# [[viết|Viết]].
==={{ĐM|ref}}===
* Tạ Văn Thông, Tạ Quang Tùng (2020). ''Trạng thái ngôn ngữ các dân tộc thuộc nhóm Khơ-mú ở Việt Nam''
=={{langname|is}}==
==={{ĐM|verb}}===
{{head|is|Biến thể hình thái động từ}} {{qualifier|weak}}
# {{verb form of|is|temja||1s|pres|ind|;|2s|imp}}
=={{langname|nb}}==
==={{ĐM|verb}}===
{{head|nb|Biến thể hình thái động từ}}
# {{inflection of|nb|temme||imp}}
=={{langname|ro}}==
==={{ĐM|pron}}===
* {{IPA|ro|[tem]}}
==={{ĐM|verb}}===
{{head|ro|Biến thể hình thái động từ}}
# {{verb form of|ro|teme||1|s|pres|ind//sub|;|3|p|pres|ind}}
pnjy8t1ownawqa6slieqoem5qcog0ml
2567160
2567159
2026-09-28T10:14:37Z
TheHighFighter2
42988
2567160
wikitext
text/x-wiki
{{đang viết}}
=={{langname|vi}}==
{{-info-}}
==={{ĐM|etym}}===
Từ {{bor|vi|fr|timbre}}.
==={{ĐM|pron}}===
{{vi-pron}}
* {{audio|vi|LL-Q9199 (vie)-Penn Zero MSSJ-tem.wav|a=Hanoi}}
==={{ĐM|nôm}}===
{{đầu}}
*[[尖]]: [[tiêm]], [[tem]], [[nhọn]]
{{cuối}}
==={{ĐM|noun}}===
{{vi-noun|cls=[[con]], [[chiếc]], [[cái]]}}
# [[miếng|Miếng]] [[giấy]] nhỏ, thường [[hình]] [[chữ nhật]], có [[in]] [[tranh]] ảnh và [[giá]] [[tiền]], do [[bưu điện]] [[phát hành]], dùng để [[dán]] lên các [[bưu phẩm]] làm chứng từ [[cước phí]].
#: {{syn|vi|tem thư}}
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], dùng để [[dán]] vào một số [[giấy tờ]] [[chính thức]] hoặc [[hàng hoá]], [[chứng nhận]] đã [[nộp thuế]] hoặc [[lệ phí]].
# [[nhãn hiệu|Nhãn hiệu]] [[dán]] trên các [[mặt hàng]] để [[chứng nhận]] [[phẩm chất]].
#: ''Hàng chưa bóc '''tem'''.'' (kng. — còn mới nguyên, chưa sử dụng bao giờ)
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], có [[giá trị]] [[mua]] [[hàng hoá]] chỉ [[bán]] [[cung cấp]] theo [[định lượng]].
#: '''''Tem''' lương thực.''
==={{ĐM|ref}}===
{{R:FVDP}}
{{R:WinVNKey:Lê Sơn Thanh}}
=={{langname|enm}}==
==={{ĐM|etym}} 1===
{{etymid|enm|group}}
{{inh+|enm|ang|tēam}}, nguồn gốc từ {{inh|enm|gmw-pro|*taum}}, hoặc {{inh|enm|gem-pro|*taumaz}}.
===={{ĐM|alt}}====
* {{alter|enm|teem|teeme|teme|teome|them|theam}}
* {{alter|enm|tæm|team||early}}
===={{ĐM|pron}}====
* {{IPA|enm|/tɛ̝ːm/}}
* {{rhymes|enm|ɛːm|s=1}}
===={{ĐM|noun}}====
{{enm-noun|temes}}
# [[họ hàng]], [[thị tộc]], [[nhân dân]]
# {{lb|enm|legal}} Đặc quyền đưa ra quyết định về các tranh chấp quyền [[sở hữu|lệ thuộc]] giữa các cấp dưới của cá nhân.
# Một nhóm [[gia súc]] được sử dụng để kéo nông cụ.
# Một đàn [[thủy điểu]] hoặc [[gà]].
# [[hậu duệ]], [[con cái]]; cũng bao gồm cả những đối tượng sau:
## {{lb|enm|legal}} Hậu duệ của [[cấp dưới]].
# {{lb|enm|rare}} Khả năng [[sinh sản]].
# {{lb|enm|rare}} [[đội]] [[ nhóm]], [[công ty]], [[ban nhạc]].
====={{ĐM|rel}}=====
* {{l|enm|barntem}}
* {{l|enm|temen|id=bear}}
====={{ĐM|desc}}=====
* {{desc|en|team}} {{see desc}}
* {{desc|sco|team}}
====={{ĐM|ref}}=====
* {{R:MED Online|entry=tēm(e |pos=n.(1) |id=MED44698 |accessdate=2018-04-25}}
==={{ĐM|etym}} 2===
===={{ĐM|verb}}====
{{head|enm|verb}}
# {{alt form|enm|temen|id=bear|t=để sinh ản, hỗ trợ}}
{{C|enm|Agriculture|Family|Livestock|People}}
=={{langname|pl}}==
==={{ĐM|pron}}===
{{pl-pr}}
==={{ĐM|pronoun}}===
{{head|pl|Biến thể hình thái đại từ|g=n}}
# {{lb|pl|obsolete}} {{inflection of|pl|to||ins//loc|s|;|dat|p}}
===={{ĐM|der}}====
{{col|pl|potem|przedtem|wtem|zatem}}
==={{ĐM|ref}}===
* {{R:pl:PWN}}
=={{langname|pt}}==
==={{ĐM|etym}}===
Từ {{inh|pt|la|tenet}}. Cùng gốc với {{cog|gl|ten}} và {{cog|es|tiene}}. So sánh thêm với {{m|pt|vem}}.
==={{ĐM|pron}}===
{{pt-IPA}}
* {{audio|pt|LL-Q5146 (por)-JnpoJuwan-tem.wav|a=<<Brazil>> (<<São Paulo>>)}}
* {{audio|pt|LL-Q5146 (por)-Santamarcanda-tem.wav|a=<<Portugal>> (<<Porto>>)}}
* {{rhymes|pt|ẽj̃|q1=Brazil|ɐ̃j̃|q2=Portugal|s=1}}
* {{homophones|pt|têm|qq1=Brazil}}
* {{hyphenation|pt|tem}}
==={{ĐM|verb}}===
{{head|pt|Biến thể hình thái động từ}}
# {{pt-verb form of|ter}}
# {{lb|pt|Brazil}} {{misspelling of|pt|têm}}
=={{langname|ca}}==
==={{ĐM|etym}} 1===
{{nonlemma}}
===={{ĐM|pron}}====
* {{ca-IPA|é}}
===={{ĐM|verb}}====
{{head|ca|Biến thể hình thái động từ}}
# {{ca-verb form of|témer}}
==={{ĐM|etym}} 2===
{{inh+|ca|la|thymus||cỏ xạ hương}}. Xem thêm {{m|ca|timó}}.
===={{ĐM|pron}}====
* {{ca-IPA|ê}}<!-- theo GDLC, DNV, DCVB -->
===={{ĐM|noun}}====
{{ca-noun|m}}
# {{lb|ca|Minorca}} [[cỏ xạ hương|Cỏ xạ hương]].
#: {{syn|ca|farigola}}
==={{ĐM|ref}}===
* {{R:ca:DCVB}}
=={{langname|nl}}==
==={{ĐM|pron}}===
* {{audio|nl|Nl-tem.ogg}}
* {{rhymes|nl|ɛm|s=1}}
==={{ĐM|verb}}===
{{head|nl|Biến thể hình thái động từ}}
# {{infl of|nl|temmen||bare-verb}}
=={{langname|is}}==
==={{ĐM|verb}}===
{{head|is|Biến thể hình thái động từ}} {{qualifier|weak}}
# {{verb form of|is|temja||1s|pres|ind|;|2s|imp}}
=={{langname|kjg}}==
==={{ĐM|verb}}===
{{head|kjg|Động từ}}
# [[viết|Viết]].
==={{ĐM|ref}}===
* Tạ Văn Thông, Tạ Quang Tùng (2020). ''Trạng thái ngôn ngữ các dân tộc thuộc nhóm Khơ-mú ở Việt Nam''
=={{langname|nb}}==
==={{ĐM|verb}}===
{{head|nb|Biến thể hình thái động từ}}
# {{inflection of|nb|temme||imp}}
=={{langname|ro}}==
==={{ĐM|pron}}===
* {{IPA|ro|[tem]}}
==={{ĐM|verb}}===
{{head|ro|Biến thể hình thái động từ}}
# {{verb form of|ro|teme||1|s|pres|ind//sub|;|3|p|pres|ind}}
6uey77zx04sxad94fratsgnegs2gdqw
2567161
2567160
2026-09-28T10:27:31Z
TheHighFighter2
42988
/* Cách phát âm */
2567161
wikitext
text/x-wiki
{{đang viết}}
=={{langname|vi}}==
{{-info-}}
==={{ĐM|etym}}===
Từ {{bor|vi|fr|timbre}}.
==={{ĐM|pron}}===
{{vi-pron}}
* {{audio|vi|LL-Q9199 (vie)-Penn Zero MSSJ-tem.wav|a=Hanoi}}
==={{ĐM|nôm}}===
{{đầu}}
*[[尖]]: [[tiêm]], [[tem]], [[nhọn]]
{{cuối}}
==={{ĐM|noun}}===
{{vi-noun|cls=[[con]], [[chiếc]], [[cái]]}}
# [[miếng|Miếng]] [[giấy]] nhỏ, thường [[hình]] [[chữ nhật]], có [[in]] [[tranh]] ảnh và [[giá]] [[tiền]], do [[bưu điện]] [[phát hành]], dùng để [[dán]] lên các [[bưu phẩm]] làm chứng từ [[cước phí]].
#: {{syn|vi|tem thư}}
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], dùng để [[dán]] vào một số [[giấy tờ]] [[chính thức]] hoặc [[hàng hoá]], [[chứng nhận]] đã [[nộp thuế]] hoặc [[lệ phí]].
# [[nhãn hiệu|Nhãn hiệu]] [[dán]] trên các [[mặt hàng]] để [[chứng nhận]] [[phẩm chất]].
#: ''Hàng chưa bóc '''tem'''.'' (kng. — còn mới nguyên, chưa sử dụng bao giờ)
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], có [[giá trị]] [[mua]] [[hàng hoá]] chỉ [[bán]] [[cung cấp]] theo [[định lượng]].
#: '''''Tem''' lương thực.''
==={{ĐM|ref}}===
{{R:FVDP}}
{{R:WinVNKey:Lê Sơn Thanh}}
=={{langname|enm}}==
==={{ĐM|etym}} 1===
{{etymid|enm|group}}
{{inh+|enm|ang|tēam}}, nguồn gốc từ {{inh|enm|gmw-pro|*taum}}, hoặc {{inh|enm|gem-pro|*taumaz}}.
===={{ĐM|alt}}====
* {{alter|enm|teem|teeme|teme|teome|them|theam}}
* {{alter|enm|tæm|team||early}}
===={{ĐM|pron}}====
* {{IPA|enm|/tɛ̝ːm/}}
* {{rhymes|enm|ɛːm|s=1}}
===={{ĐM|noun}}====
{{enm-noun|temes}}
# [[họ hàng]], [[thị tộc]], [[nhân dân]]
# {{lb|enm|legal}} Đặc quyền đưa ra quyết định về các tranh chấp quyền [[sở hữu|lệ thuộc]] giữa các cấp dưới của cá nhân.
# Một nhóm [[gia súc]] được sử dụng để kéo nông cụ.
# Một đàn [[thủy điểu]] hoặc [[gà]].
# [[hậu duệ]], [[con cái]]; cũng bao gồm cả những đối tượng sau:
## {{lb|enm|legal}} Hậu duệ của [[cấp dưới]].
# {{lb|enm|rare}} Khả năng [[sinh sản]].
# {{lb|enm|rare}} [[đội]] [[ nhóm]], [[công ty]], [[ban nhạc]].
====={{ĐM|rel}}=====
* {{l|enm|barntem}}
* {{l|enm|temen|id=bear}}
====={{ĐM|desc}}=====
* {{desc|en|team}} {{see desc}}
* {{desc|sco|team}}
====={{ĐM|ref}}=====
* {{R:MED Online|entry=tēm(e |pos=n.(1) |id=MED44698 |accessdate=2018-04-25}}
==={{ĐM|etym}} 2===
===={{ĐM|verb}}====
{{head|enm|verb}}
# {{alt form|enm|temen|id=bear|t=để sinh ản, hỗ trợ}}
{{C|enm|Agriculture|Family|Livestock|People}}
=={{langname|pl}}==
==={{ĐM|pron}}===
{{pl-pr}}
==={{ĐM|pronoun}}===
{{head|pl|Biến thể hình thái đại từ|g=n}}
# {{lb|pl|obsolete}} {{inflection of|pl|to||ins//loc|s|;|dat|p}}
===={{ĐM|der}}====
{{col|pl|potem|przedtem|wtem|zatem}}
==={{ĐM|ref}}===
* {{R:pl:PWN}}
=={{langname|pt}}==
==={{ĐM|etym}}===
Từ {{inh|pt|la|tenet}}. Cùng gốc với {{cog|gl|ten}} và {{cog|es|tiene}}. So sánh thêm với {{m|pt|vem}}.
==={{ĐM|pron}}===
{{pt-IPA}}
* {{audio|pt|LL-Q5146 (por)-JnpoJuwan-tem.wav|a=<<Brazil>> (<<São Paulo>>)}}
* {{audio|pt|LL-Q5146 (por)-Santamarcanda-tem.wav|a=<<Portugal>> (<<Porto>>)}}
* {{rhymes|pt|ẽj̃|q1=Brasil|ɐ̃j̃|q2=Bồ Đào Nha|s=1}}
* {{homophones|pt|têm|qq1=Brasil}}
* {{hyphenation|pt|tem}}
==={{ĐM|verb}}===
{{head|pt|Biến thể hình thái động từ}}
# {{pt-verb form of|ter}}
# {{lb|pt|Brazil}} {{misspelling of|pt|têm}}
=={{langname|ca}}==
==={{ĐM|etym}} 1===
{{nonlemma}}
===={{ĐM|pron}}====
* {{ca-IPA|é}}
===={{ĐM|verb}}====
{{head|ca|Biến thể hình thái động từ}}
# {{ca-verb form of|témer}}
==={{ĐM|etym}} 2===
{{inh+|ca|la|thymus||cỏ xạ hương}}. Xem thêm {{m|ca|timó}}.
===={{ĐM|pron}}====
* {{ca-IPA|ê}}<!-- theo GDLC, DNV, DCVB -->
===={{ĐM|noun}}====
{{ca-noun|m}}
# {{lb|ca|Minorca}} [[cỏ xạ hương|Cỏ xạ hương]].
#: {{syn|ca|farigola}}
==={{ĐM|ref}}===
* {{R:ca:DCVB}}
=={{langname|nl}}==
==={{ĐM|pron}}===
* {{audio|nl|Nl-tem.ogg}}
* {{rhymes|nl|ɛm|s=1}}
==={{ĐM|verb}}===
{{head|nl|Biến thể hình thái động từ}}
# {{infl of|nl|temmen||bare-verb}}
=={{langname|is}}==
==={{ĐM|verb}}===
{{head|is|Biến thể hình thái động từ}} {{qualifier|weak}}
# {{verb form of|is|temja||1s|pres|ind|;|2s|imp}}
=={{langname|kjg}}==
==={{ĐM|verb}}===
{{head|kjg|Động từ}}
# [[viết|Viết]].
==={{ĐM|ref}}===
* Tạ Văn Thông, Tạ Quang Tùng (2020). ''Trạng thái ngôn ngữ các dân tộc thuộc nhóm Khơ-mú ở Việt Nam''
=={{langname|nb}}==
==={{ĐM|verb}}===
{{head|nb|Biến thể hình thái động từ}}
# {{inflection of|nb|temme||imp}}
=={{langname|ro}}==
==={{ĐM|pron}}===
* {{IPA|ro|[tem]}}
==={{ĐM|verb}}===
{{head|ro|Biến thể hình thái động từ}}
# {{verb form of|ro|teme||1|s|pres|ind//sub|;|3|p|pres|ind}}
ktvjv1t78twc1zp6awd6wvcl9c2yik6
2567163
2567161
2026-09-28T11:24:13Z
TheHighFighter2
42988
/* Tiếng Anh trung đại */
2567163
wikitext
text/x-wiki
{{đang viết}}
=={{langname|vi}}==
{{-info-}}
==={{ĐM|etym}}===
Từ {{bor|vi|fr|timbre}}.
==={{ĐM|pron}}===
{{vi-pron}}
* {{audio|vi|LL-Q9199 (vie)-Penn Zero MSSJ-tem.wav|a=Hanoi}}
==={{ĐM|nôm}}===
{{đầu}}
*[[尖]]: [[tiêm]], [[tem]], [[nhọn]]
{{cuối}}
==={{ĐM|noun}}===
{{vi-noun|cls=[[con]], [[chiếc]], [[cái]]}}
# [[miếng|Miếng]] [[giấy]] nhỏ, thường [[hình]] [[chữ nhật]], có [[in]] [[tranh]] ảnh và [[giá]] [[tiền]], do [[bưu điện]] [[phát hành]], dùng để [[dán]] lên các [[bưu phẩm]] làm chứng từ [[cước phí]].
#: {{syn|vi|tem thư}}
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], dùng để [[dán]] vào một số [[giấy tờ]] [[chính thức]] hoặc [[hàng hoá]], [[chứng nhận]] đã [[nộp thuế]] hoặc [[lệ phí]].
# [[nhãn hiệu|Nhãn hiệu]] [[dán]] trên các [[mặt hàng]] để [[chứng nhận]] [[phẩm chất]].
#: ''Hàng chưa bóc '''tem'''.'' (kng. — còn mới nguyên, chưa sử dụng bao giờ)
# [[miếng|Miếng]] [[giấy]] nhỏ [[hình]] [[chữ nhật]] giống như [[tem thư]], do [[nhà nước]] [[phát hành]], có [[giá trị]] [[mua]] [[hàng hoá]] chỉ [[bán]] [[cung cấp]] theo [[định lượng]].
#: '''''Tem''' lương thực.''
==={{ĐM|ref}}===
{{R:FVDP}}
{{R:WinVNKey:Lê Sơn Thanh}}
=={{langname|enm}}==
==={{ĐM|etym}} 1===
{{etymid|enm|nhóm}}
{{inh+|enm|ang|tēam}}, nguồn gốc từ {{inh|enm|gmw-pro|*taum}}, hoặc {{inh|enm|gem-pro|*taumaz}}.
===={{ĐM|alt}}====
* {{alter|enm|teem|teeme|teme|teome|them|theam}}
* {{alter|enm|tæm|team||early}}
===={{ĐM|pron}}====
* {{IPA|enm|/tɛ̝ːm/}}
* {{rhymes|enm|ɛːm|s=1}}
===={{ĐM|noun}}====
{{enm-noun|temes}}
# [[thân tộc|Thân tộc]], [[thị tộc]], [[gia tộc]].
# {{lb|enm|legal}} Đặc quyền đưa ra quyết định về các [[tranh chấp]] quyền [[sở hữu]] giữa những [[thuộc hạ]] của cá nhân.
# Đàn [[gia súc]] kéo nông cụ.
# Đàn [[thủy điểu]] hoặc [[gà]].
# [[hậu duệ|Hậu duệ]], [[con cháu]]; cũng bao gồm cả đối tượng sau:
## {{lb|enm|legal}} Hậu duệ của thuộc hạ.
# {{lb|enm|rare}} Khả năng [[sinh sản]].
# {{lb|enm|rare}} [[đội|Đội]], [[toán]], [[nhóm]].
====={{ĐM|rel}}=====
* {{l|enm|barntem}}
* {{l|enm|temen|id=bear}}
====={{ĐM|desc}}=====
* {{desc|en|team}} {{see desc}}
* {{desc|sco|team}}
====={{ĐM|ref}}=====
* {{R:MED Online|entry=tēm(e |pos=n.(1) |id=MED44698 |accessdate=2018-04-25}}
==={{ĐM|etym}} 2===
===={{ĐM|verb}}====
{{head|enm|verb}}
# {{alt form|enm|temen|id=bear|t=sinh sản, hỗ trợ}}
{{C|enm|Agriculture|Family|Livestock|People}}
=={{langname|pl}}==
==={{ĐM|pron}}===
{{pl-pr}}
==={{ĐM|pronoun}}===
{{head|pl|Biến thể hình thái đại từ|g=n}}
# {{lb|pl|obsolete}} {{inflection of|pl|to||ins//loc|s|;|dat|p}}
===={{ĐM|der}}====
{{col|pl|potem|przedtem|wtem|zatem}}
==={{ĐM|ref}}===
* {{R:pl:PWN}}
=={{langname|pt}}==
==={{ĐM|etym}}===
Từ {{inh|pt|la|tenet}}. Cùng gốc với {{cog|gl|ten}} và {{cog|es|tiene}}. So sánh thêm với {{m|pt|vem}}.
==={{ĐM|pron}}===
{{pt-IPA}}
* {{audio|pt|LL-Q5146 (por)-JnpoJuwan-tem.wav|a=<<Brazil>> (<<São Paulo>>)}}
* {{audio|pt|LL-Q5146 (por)-Santamarcanda-tem.wav|a=<<Portugal>> (<<Porto>>)}}
* {{rhymes|pt|ẽj̃|q1=Brasil|ɐ̃j̃|q2=Bồ Đào Nha|s=1}}
* {{homophones|pt|têm|qq1=Brasil}}
* {{hyphenation|pt|tem}}
==={{ĐM|verb}}===
{{head|pt|Biến thể hình thái động từ}}
# {{pt-verb form of|ter}}
# {{lb|pt|Brazil}} {{misspelling of|pt|têm}}
=={{langname|ca}}==
==={{ĐM|etym}} 1===
{{nonlemma}}
===={{ĐM|pron}}====
* {{ca-IPA|é}}
===={{ĐM|verb}}====
{{head|ca|Biến thể hình thái động từ}}
# {{ca-verb form of|témer}}
==={{ĐM|etym}} 2===
{{inh+|ca|la|thymus||cỏ xạ hương}}. Xem thêm {{m|ca|timó}}.
===={{ĐM|pron}}====
* {{ca-IPA|ê}}<!-- theo GDLC, DNV, DCVB -->
===={{ĐM|noun}}====
{{ca-noun|m}}
# {{lb|ca|Minorca}} [[cỏ xạ hương|Cỏ xạ hương]].
#: {{syn|ca|farigola}}
==={{ĐM|ref}}===
* {{R:ca:DCVB}}
=={{langname|nl}}==
==={{ĐM|pron}}===
* {{audio|nl|Nl-tem.ogg}}
* {{rhymes|nl|ɛm|s=1}}
==={{ĐM|verb}}===
{{head|nl|Biến thể hình thái động từ}}
# {{infl of|nl|temmen||bare-verb}}
=={{langname|is}}==
==={{ĐM|verb}}===
{{head|is|Biến thể hình thái động từ}} {{qualifier|weak}}
# {{verb form of|is|temja||1s|pres|ind|;|2s|imp}}
=={{langname|kjg}}==
==={{ĐM|verb}}===
{{head|kjg|Động từ}}
# [[viết|Viết]].
==={{ĐM|ref}}===
* Tạ Văn Thông, Tạ Quang Tùng (2020). ''Trạng thái ngôn ngữ các dân tộc thuộc nhóm Khơ-mú ở Việt Nam''
=={{langname|nb}}==
==={{ĐM|verb}}===
{{head|nb|Biến thể hình thái động từ}}
# {{inflection of|nb|temme||imp}}
=={{langname|ro}}==
==={{ĐM|pron}}===
* {{IPA|ro|[tem]}}
==={{ĐM|verb}}===
{{head|ro|Biến thể hình thái động từ}}
# {{verb form of|ro|teme||1|s|pres|ind//sub|;|3|p|pres|ind}}
3ebiva7vsdcbz67xsrff26hjb7mstl9
Thảo luận Wiktionary:Thảo luận
5
103987
2567162
2566949
2026-09-28T10:49:11Z
MediaWiki message delivery
19980
Mục mới: /* Bản tin Kỹ thuật: Tuần 40-2026 */
2567162
wikitext
text/x-wiki
<!-- Xin bắt đầu cuộc thảo luận mói ở CUỐI trang! Cám ơn. -->
{{Lưu trữ}}
== Upcoming Dark Mode user interface rollout for anonymous Wikimedia sites users ==
<div lang="en" dir="ltr">
{{int:Hello}} Wikimedians,
Apologies if this message is not in your language. {{int:please-translate}}.
The [[mw:Special:MyLanguage/Reading/Web|Reader Experience team]] will launch the Dark mode feature for anonymous users on all Wikimedia sites, including yours, on October 29, 2025.
[[:en:Special:MyLanguage/Light-on-dark color scheme|Dark mode]] is an option that allows users to view pages in light-coloured text, and icons on a dark background. Once it is available for anonymous users, they can enable it when using various devices. More information on ways to enable it can be found on [[:en:Special:MyLanguage/Wikipedia:Dark mode#Options for anyone|this page]].
Given many pages are still not compatible with dark mode this will be an opt-in feature and not automatically apply to pages.
Dark mode requires modifications to content pages and templates, and since our initial launch [https://diff.wikimedia.org/2024/07/17/dark-modes-bright-future-how-dark-mode-will-transform-wikipedias-accessibility/ in July 2024], we have been working with communities and helping them prepare for dark mode. Before the rollout, it is essential that template authors and technical contributors test dark mode and read [[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-04|this page]] to learn how to make pages Dark mode-ready and address any compatibility issues found in templates.
We will fix most color compatibility issues only on the most-viewed pages on projects with over 5 million monthly page views. Technical contributors with an account should opt into dark mode currently using preferences or settings and test pages and seek help before the release to ensure everything complies before the enablement.
If you have any questions or need help, please [[mw:Special:MyLanguage/Talk:Reading/Web/Accessibility for reading#|contact the Reader Experience team]] for support.
Thank you!
</div>
<bdi lang="en" dir="ltr">[[User:UOzurumba (WMF)|UOzurumba (WMF)]]</bdi> 02:08, ngày 30 tháng 9 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:UOzurumba_(WMF)/sandbox_Dark_mode_deployment_mass_message_list_(October_2025)&oldid=29358561 -->
== Bản tin Kỹ thuật: Tuần 41-2025 ==
<section begin="technews-2025-W41"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/41|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Help:Edit check#paste|Kiểm tra Nội dung Dán (Paste Check)]] là một tính năng Kiểm tra Sửa đổi mới để giúp phòng tránh và chống lại các hành vi vi phạm bản quyền. Khi biên tập viên dán văn bản vào bài viết, Kiểm tra Nội dung Dán sẽ nhắc họ xác nhận nguồn gốc và giấy phép của nội dung được dán đó. Bắt đầu từ thứ 4, ngày 8 tháng 10, [[phab:T403680|22 wiki sẽ thử nghiệm tính năng Kiểm tra Nội dung Dán]]. Kiểm tra Nội dung Dán sẽ giúp các tình nguyện viên mới hiểu và tuân theo các quy định và hướng dẫn cần thiết để thực hiện những đóng góp mang tính xây dựng cho các dự án Wikipedia.
'''Cập nhật cho biên tập viên'''
* Các thiết bị di động sẽ hiển thị các bài viết trên trang di động trực tiếp trên tên miền chuẩn (như <code>en.wikipedia.org</code>), thay vì thông qua việc đổi hướng tới tên miền "m" (như <code>en.m.wikipedia.org</code>). Thay đổi này nhằm cải thiện hiệu năng. Nó sẽ được kích hoạt trên các trang Wikipedia trong tuần này. Liên kết URL di động và tùy chọn "Phiên bản máy tính" vẫn sẽ tiếp tục khả dụng. [[mw:Requests for comment/Mobile domain sunsetting/2025 Announcement|Tìm hiểu thêm]]. [https://phabricator.wikimedia.org/T214998]
* [[mw:Special:MyLanguage/Help:CirrusSearch#creationdate and lasteditdate|Bộ lọc ngày]] mới, <code dir=ltr>creationdate:</code> và <code dir=ltr>lasteditdate:</code>, nay có sẵn trong bộ máy tìm kiếm của wiki. Những bộ lọc này cho phép người dùng lọc kết quả tìm kiếm theo bản sửa đổi đầu tiên hoặc cuối cùng của trang. Bộ lọc hỗ trợ các toán tử so sánh (v.d. <code dir=ltr>>2024</code>) và ngày dạng tương đối (v.d. <code dir=ltr>today-1d</code>), giúp việc tìm nội dung hoặc trang được cập nhật gần đây trong khoảng năm cụ thể trở nên dễ dàng hơn. [https://phabricator.wikimedia.org/T403593]
* [[f:|Wikifunctions]] nay hỗ trợ văn bản giàu tính chất (rich text) trong lời gọi hàm nhúng trên 150 wiki đã kích hoạt nó. Để giới thiệu tính năng này, nhóm đã tạo [[f:Z26333|bảng biến cách tiếng Latin]] mà biên tập viên Wiktionary có thể sử dụng để tự động tạo ra các dạng danh từ, nhằm tạo ra những kết quả rõ ràng và được định dạng — xem một [[f:Wikifunctions:Embedded function calls/Wiktionary tables demonstration|ví dụ đầu ra]] cụ thể. Nếu bạn cần hỗ trợ hay có bất kỳ phản hồi nào, vui lòng [[f:Wikifunctions:Project chat|liên hệ nhóm Wikifunctions]]. [https://phabricator.wikimedia.org/T397402]
* Một liên kết sửa đổi nay sẽ hiển thị trong hộp thể loại trên các trang bài viết đối với người dùng đã đăng nhập, khi nhấn vào sẽ khởi động trực tiếp hộp thoại thể loại bằng Trình Soạn thảo Trực quan (VisualEditor). [https://phabricator.wikimedia.org/T291691]
* [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:34}} {{PLURAL:34|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, tuần trước đã có vấn đề khi tải các tập tin pdf và hiện nó đã được giải quyết. [https://phabricator.wikimedia.org/T405957]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Trường <code dir=ltr>rev_sha1</code> trong bảng cơ sở dữ liệu bản sửa đổi đang chuẩn bị được loại bỏ để thay thế bằng trường <code dir=ltr>content_sha1</code> trong bảng cơ sở dữ liệu nội dung. Xem [https://lists.wikimedia.org/hyperkitty/list/cloud@lists.wikimedia.org/thread/2D2M3SP4WHR6BXXKTZ2PBLZQYR3EGQVR/ thông báo này] để biết thêm thông tin.
* [[mw:Special:MyLanguage/Reading/Web|Nhóm Trải nghiệm Người đọc]] sẽ triển khai giao diện người dùng [[w:en:Light-on-dark color scheme|Chế độ Tối]] trên tất cả các trang Wikimedia vào ngày 29 tháng 10 năm 2025. Tất cả thành viên vô danh trên các trang Wikimedia sẽ có tùy chọn kích hoạt bảng màu có văn bản màu sáng trên nền tối. Chế độ này được thiết kế để cung cấp trải nghiệm đọc thoải mái hơn, đặc biệt trong những trường hợp thiếu sáng. Tác giả bản mẫu và biên tập viên kỹ thuật được khuyến khích [[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-04|tìm hiểu cách chuẩn bị các trang để tương thích với Chế độ tối]] và giải quyết bất kỳ vấn đề tương thích nào xuất hiện trong các bản mẫu trên wiki của họ trước thời điểm kích hoạt. Vui lòng liên hệ nhóm Web nếu có bất kỳ câu hỏi hay cần sự trợ giúp nào trên [[mw:Talk:Reading/Web/Accessibility for reading#|trang thảo luận này]] trước ngày kích hoạt. [https://phabricator.wikimedia.org/T395628]
* Bắt đầu từ thứ 2, ngày 6 tháng 10, các điểm cuối API theo đường dẫn <code>rest.php</code> sẽ được định tuyến lại qua Cổng API nội bộ mới. Mỗi wiki sẽ được cập nhật dựa trên các nhóm phát hành tiêu chuẩn, với tổng lưu lượng truy cập tăng dần theo thời gian. Thay đổi này dự kiến không gây ra bất kỳ sự gián đoạn gì. Nếu phát hiện thấy có bất kỳ vấn đề nào, vui lòng tạo tác vụ Phabricator gửi lên [[phab:tag/serviceops/|bảng của nhóm Vận hành Dịch vụ]]. [https://phabricator.wikimedia.org/T400130]
* [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.22|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/41|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W41"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:23, ngày 6 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29400897 -->
== <span lang="en" dir="ltr">Have your say: vote for the 2025 Board of Trustees</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Hello all,
The voting period for the [[m:Special:MyLanguage/Wikimedia Foundation elections/2025|2025 Board of Trustees election]] is now open. Candidates are running for two (2) seats on the Board.
To check your voter eligibility, please visit the [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Voter eligibility guidelines|voter eligibility page]].
Learn more about them by [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Candidates|reading their application statements and watch their candidacy videos]].
When you are ready, go to the [[m:Special:SecurePoll/vote/405|SecurePoll voting page to vote]].
'''The vote is open from October 8 at 00:00 UTC to October 22 at 23:59 UTC.'''
Best regards,
Abhishek Suryawanshi<br />Chair, Elections Committee<section end="announcement-content" />
</div>
[[Thành viên:MediaWiki message delivery|MediaWiki message delivery]] ([[Thảo luận Thành viên:MediaWiki message delivery|thảo luận]]) 04:49, ngày 9 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:RamzyM (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29360896 -->
== Bản tin Kỹ thuật: Tuần 42-2025 ==
<section begin="technews-2025-W42"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/42|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Tuần trước, chúng tôi đã tiến hành triển khai những cải tiến về các tính năng bảo mật tài khoản và xác thực hai yếu tố (2FA) trên tất cả các wiki. Những thay đổi đó bao gồm cải tiến giao diện người dùng cho trang [https://auth.wikimedia.org/metawiki/wiki/Special:AccountSecurity Đặc biệt:Bảo mật tài khoản], hỗ trợ nhiều phương thức xác thực 2FA thông qua các ứng dụng xác thực và khóa bảo mật di động (trước đây người dùng chỉ có thể kích hoạt một phương thức xác thực), và mô đun Mã Khôi phục mới giúp giảm thiểu tình trạng khóa tài khoản do mất ứng dụng và thiết bị xác thực hai yếu tố. Là một phần của dự án [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]], quá trình này sẽ tiếp tục trong phần còn lại của năm 2025 để cải thiện nhiều hơn trải nghiệm người dùng, cùng việc thêm hỗ trợ cho mã khóa làm phương thức xác thực thứ hai thay thế.
'''Cập nhật cho biên tập viên'''
* Một phần khác của dự án Bảo mật tài khoản là cung cấp 2FA cho tất cả người dùng. Bên cạnh biên tập viên có quyền nâng cao, chẳng hạn như bảo quản viên và hành chính viên, 40% biên tập viên nay có quyền truy cập vào 2FA. Bạn có thể kiểm tra xem bạn có quyền truy cập đó không tại [https://auth.wikimedia.org/metawiki/wiki/Special:AccountSecurity Đặc biệt: Bảo mật tài khoản]. Hướng dẫn kích hoạt có trên trang được liên kết theo. Kế hoạch là tiếp tục tăng cường tính khả dụng nếu xác định rằng khả năng hỗ trợ người dùng có thể hỗ trợ việc sử dụng toàn cục của nó. [https://phabricator.wikimedia.org/T400579]
* Tuần này, người dùng trên các wiki mà mặc định đã có sẵn tính năng [[mw:Special:MyLanguage/Talk pages project/Usability|Cải tiến Khả năng Sử dụng]] trên trang thảo luận (tất cả ''trừ'' 12 wiki được liệt kê trong tác vụ [[phab:T379264|T379264]]) sẽ có được khả năng gửi lời cảm ơn bình luận trực tiếp trên trang thảo luận mà nó xuất hiện. Trước thay đổi này, việc cảm ơn chỉ có thể được thực hiện bằng cách truy cập lịch sử sửa đổi của trang thảo luận. Bạn có thể [[diffblog:2025/10/13/revolutionizing-gratitude-a-new-era-of-thanking-comments/|tìm hiểu thêm về thay đổi này]]. [https://phabricator.wikimedia.org/T366095]
* Người dùng chưa [[Special:Preferences#mw-prefsection-personal-email|xác thực địa chỉ email của mình]] sẽ sớm nhận thông báo hàng tháng nhắc họ làm điều này. Điều này là bởi vì người dùng đã xác thực email của họ có thể dễ dàng khôi phục tài khoản của mình hơn. Những lời nhắc này sẽ không được gửi nếu người dùng không hoạt động hoặc đã loại bỏ email chưa được xác thực khỏi tài khoản của mình. [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Email_confirmation][https://phabricator.wikimedia.org/T58074]
* [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, đã có một bản sửa lỗi nhằm giải quyết một lỗi thỉnh thoảng xảy ra khi lưu các đoạn đã được dịch trong công cụ Dịch Nội dung, cùng với đó các thông báo lỗi có liên quan giờ dễ nhìn hơn. [https://phabricator.wikimedia.org/T376531]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Nhóm Công cụ Không được Hỗ trợ đã chọn [[c:Special:MyLanguage/Commons:Video2commons|Video2Commons]] làm công cụ đầu tiên cho chu kỳ thí điểm của họ. Nhóm sẽ tìm hiểu cách để cải tiến và duy trì công cụ này trong những tháng tiếp theo. [[m:Special:MyLanguage/Product and Technology Advisory Council/Unsupported Tools Working Group|Tìm hiểu thêm trên Meta]].
* [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.23|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/42|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W42"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:59, ngày 13 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29434481 -->
== <span lang="en" dir="ltr">Help us decide the name of the new Abstract Wikipedia project</span> ==
<div lang="en" dir="ltr">
<section begin="function1"/>
{{int:Hello}}. Please help pick a name for the new Abstract Wikipedia wiki project. This project will be a wiki that will enable users to combine functions from [[:f:|Wikifunctions]] and data from Wikidata in order to generate natural language sentences in any supported languages. These sentences can then be used by any Wikipedia (or elsewhere).
There will be two rounds of voting, each followed by legal review of candidates, with votes beginning on 20 October and 17 November 2025. Our goal is to have a final project name selected on mid-December 2025. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki.
{{Int:Feedback-thanks-title}}
<section end="function1"/>
</div>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 11:44, ngày 20 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:Sannita (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29432175 -->
== Bản tin Kỹ thuật: Tuần 43-2025 ==
<section begin="technews-2025-W43"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/43|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Để tối ưu hóa cách dữ liệu người dùng được lưu trong cơ sở dữ liệu của chúng tôi, các tùy chọn được lưu của người dùng chưa đăng nhập trong vòng hơn 5 năm và có ít hơn 100 sửa đổi sẽ bị xóa. Khi những người dùng đó quay lại, tùy chọn mặc định sẽ được áp dụng. [https://phabricator.wikimedia.org/T406724]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:20}} {{PLURAL:20|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, đã có một liên kết hỏng từ thông điệp giao diện Đóng góp toàn cục đến trang Đóng góp toàn cục trên XTools mà hiện đã được giải quyết. [https://phabricator.wikimedia.org/T406415]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Việc định tuyến lại toàn bộ lưu lượng đến các điểm cuối API theo cổng <code dir=ltr><nowiki>rest.php</nowiki></code> thông qua một cổng API chung hiện đã hoàn tất. Nếu phát hiện bất kỳ vấn đề nào, vui lòng gửi tác vụ phabricator lên [[phab:tag/serviceops/|bảng tác vụ của nhóm Vận hành Dịch vụ]].
* Các sửa đổi đối với chú thích hoặc từ hạn định Wikidata nay sẽ ít hiển thị thường xuyên hơn trên các mục Thay đổi gần đây và Danh sách theo dõi trên các wiki khác, nhằm giảm bớt các thông báo không cần thiết. Thay đổi này sẽ giảm tổng số lượng các khoản mục 'gây nhiễu'. Bản thân các trang Wikidata sẽ không có sự thay đổi nào. [https://phabricator.wikimedia.org/T401290]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.24|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/43|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W43"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:36, ngày 20 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29478670 -->
== Bản tin Kỹ thuật: Tuần 44-2025 ==
<section begin="technews-2025-W44"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/44|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Ứng dụng Wikipedia dành cho iOS đã ra mắt thử nghiệm A/B/C nhằm cải tiến tính năng duyệt theo thẻ cho một số khu vực và ngôn ngữ nhất định. Thử nghiệm mang tên “Nhiều thẻ động hơn” này sẽ khám phá trải nghiệm trên thẻ mới cùng với việc bổ sung đề xuất bài viết ở mục “Bạn có biết” và “Vì bạn đã đọc”. Bạn có thể [[mw:Special:MyLanguage/Wikimedia Apps/Team/iOS/Tabbed Browsing (Tabs)/New Tab Experience and Recommendations Experiment|đọc thêm thông tin trên trang dự án này]].
* Thành viên tự xác nhận trên các wiki [[gitiles:operations/mediawiki-config/+/a2d2aaab9ace84280dd2f4c70a33bb69cd73850f/dblists/small.dblist|nhỏ]] và [[gitiles:operations/mediawiki-config/+/a2d2aaab9ace84280dd2f4c70a33bb69cd73850f/dblists/medium.dblist|vừa]] đã triển khai phần mở rộng CampaignEvents nay có thể sử dụng công cụ [[m:Special:MyLanguage/Event Center/Registration|Đăng ký Sự kiện]] mà không cần quyền Người tổ chức Sự kiện. Tính năng này cho phép người tổ chức kích hoạt việc đăng ký, quản lý người tham gia, và cho phép các thành viên đăng ký chỉ với một cú nhấp chuột thay vì phải ký vào trang sự kiện.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:31}} {{PLURAL:31|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, vấn đề về màu sắc nhấp nháy khi giữ hoặc nhấn phím mũi tên trong phần cài đặt chế độ tối của giao diện Vector 2022 nay đã được giải quyết. [https://phabricator.wikimedia.org/T402285]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Phần mở rộng CampaignEvents sẽ được triển khai trên tất cả những wiki còn lại trong tuần từ ngày 17 tháng 11 năm 2025. Phần mở rộng này hiện bao gồm ba tính năng: Đăng ký Sự kiện, Danh sách Cộng tác, và Danh sách Mời. Trong đợt triển khai này, Danh sách Lời mời sẽ không được kích hoạt cho Wikifunctions và MediaWiki cho đến khi những cộng đồng này yêu cầu kích hoạt. [[m:Special:MyLanguage/CampaignEvents/Deployment status|Truy cập trang thông tin triển khai để biết thêm thông tin]].
* Trải nghiệm chỗ thử REST dựa trên SwaggerUI nay đã có mặt trên tất cả các dự án wiki. Chỗ thử này có thể truy cập được thông qua trang [[{{#special:RestSandbox}}]]. Vui lòng báo cáo bất kỳ vấn đề nào lên bảng tin của nhóm Giao diện MediaWiki, hoặc tham gia thảo luận trên trang [[mw:Special:MyLanguage/MediaWiki Interfaces Team/Feature Feedback/REST Sandbox|khởi động dự án]] này. [https://phabricator.wikimedia.org/project/board/6931/]
* Những điểm cuối chuyển đổi với đường dẫn kết thúc bằng dấu gạch chéo trong REST API của MediaWiki hiện đang được đánh dấu là lỗi thời. Chúng vẫn sẽ tiếp tục hoạt động trong thời gian này, tuy nhiên dự kiến chúng sẽ bị loại bỏ vào cuối tháng 1 năm 2026. Toàn bộ người dùng API đang gọi chúng được khuyến khích chuyển sang bản đường dẫn không kết thúc bằng dấu gạch chéo. Cả hai biến thể điểm cuối này đều có thể tìm thấy và thử được sử dụng [https://test.wikipedia.org/w/index.php?api=mw-extra&title=Special%3ARestSandbox Chỗ thử REST]. Xem trang [[mw:API/Deprecation|Ngừng hỗ trợ với REST API MediaWiki]] để biết thêm thông tin chi tiết về các chính sách và thủ tục trong việc ngừng hỗ trợ API.
* [[mw:API:REST API/Changelog|Nhật trình thay đổi chuyên biệt nay đã có sẵn cho REST API của MediaWiki]]. Nhật trình thay đổi này cung cấp tổng quan về những thay đổi này, giúp các nhà phát triển dễ dàng theo dõi những cải tiến và lần lặp lại của chúng. Mọi thông báo cũng sẽ tiếp tục được gửi thông qua các kênh truyền thông chính, bao gồm Bản tin Kỹ thuật và danh sách phân phối qua thư điện tử, nhưng nay có thể dễ dàng tham khảo hơn từ một vị trí trung tâm. Nếu bạn có bất kỳ phản hồi nào về định dạng, cấu trúc, hoặc nội dung về nhật trình thay đổi này, vui lòng [[mw:API talk:REST API/Changelog|tham gia thảo luận tại đây]].
* Bảo quản viên nay có thể xóa thể loại theo dõi mà trước đây được thêm bởi phần mở rộng JsonConfig, do nó không còn được sử dụng. Xem các thể loại được liên kết từ [[d:Q130635582#sitelinks-wikipedia|Q130635582]]. Việc vẫn còn trang được liệt kê trên thể loại này là bình thường vì nó chỉ là vấn đề về bộ nhớ đệm, và chúng sẽ tự động được xóa khi các trang đó được sửa đổi trong lần tiếp theo. [https://phabricator.wikimedia.org/T378352]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.25|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/44|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W44"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:31, ngày 27 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29513638 -->
== <span lang="en" dir="ltr">Seeking volunteers to join several of the movement’s committees</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Each year, typically from October through December, several of the movement’s committees seek new volunteers.
Read more about the committees on their Meta-wiki pages:
* [[m:Special:MyLanguage/Affiliations Committee|Affiliations Committee (AffCom)]]
* [[m:Special:MyLanguage/Ombuds commission|Ombuds commission (OC)]]
* [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Community Resilience and Sustainability/Trust and Safety/Case Review Committee|Case Review Committee (CRC)]]
Applications for the committees open on October 30, 2025. Applications for the Affiliations Committee, Ombuds commission and the Case Review Committee close on December 11, 2025. Learn how to apply by [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Committee appointments|visiting the appointment page on Meta-wiki]]. Post to the talk page or email cst[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org with any questions you may have.
For the Committee Support team,
<section end="announcement-content" />
</div>
-[[m:User:MKaur (WMF)| MKaur (WMF)]] 14:14, ngày 30 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:MKaur (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29517125 -->
== Bản tin Kỹ thuật: Tuần 45-2025 ==
<section begin="technews-2025-W45"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/45|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Các bảo quản viên giờ đây sẽ thấy rằng [[{{#special:MergeHistory}}]] đã trở nên linh hoạt hơn đáng kể trong việc hợp nhất. Nó có thể hợp nhất các phần được lấy từ giữa lịch sử của trang nguồn (thay vì chỉ từ phần đầu), và chèn các phiên bản vào bất kỳ vị trí nào trong lịch sử của trang đích (thay vì chỉ ở phần đầu). [https://phabricator.wikimedia.org/T382958]
* Đối với những người dùng đã kích hoạt "{{int:discussiontools-preference-autotopicsub}}" [[Special:Preferences#mw-prefsection-editing|trong tùy chọn của họ]], việc bắt đầu một chủ đề mới hoặc thêm một phản hồi vào một chủ đề hiện có giờ đây sẽ tự động đăng ký họ theo dõi các phản hồi mới trong chủ đề đó. Trước đây, điều này chỉ xảy ra nếu người dùng sử dụng tiện ích "{{int:Skin-action-addsection}}" hoặc "{{int:Discussiontools-replybutton}}" của DiscussionTools. Khi DiscussionTools mới được ra mắt, các tài khoản hiện có không được tự động bật tính năng theo dõi chủ đề, vì vậy thay đổi này chủ yếu sẽ ảnh hưởng đến các tài khoản mới hơn và những người dùng đã chủ động thay đổi tùy chọn của mình kể từ thời điểm đó. [https://phabricator.wikimedia.org/T290778]
* Các mô đun Scribunto giờ đây có thể được dùng để [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#SVG library|tạo ảnh SVG]]. Tính năng này cho phép tạo biểu đồ, đồ họa và các hình minh họa khác một cách linh hoạt thông qua Lua, giúp giảm nhu cầu phải tạo chúng bên ngoài rồi tải lên dưới dạng tập tin. [https://phabricator.wikimedia.org/T405861]
* Các trang web của Wikimedia giờ đây sẽ cung cấp cho tất cả người dùng ẩn danh tùy chọn bật chế độ tối, với giao diện chữ sáng trên nền tối. Cải tiến này nhằm mang lại trải nghiệm đọc dễ chịu hơn, đặc biệt là trong môi trường thiếu sáng. [https://phabricator.wikimedia.org/T395628]
* Những người dùng có danh sách theo dõi lớn từ lâu đã gặp lỗi quá thời gian khi chỉnh sửa [[Special:EditWatchlist|Special:EditWatchlist]]. Trang này nay sẽ tải các mục theo từng phần nhỏ thay vì tải toàn bộ cùng lúc nhờ bản cập nhật phân trang, giúp mọi người có thể chỉnh sửa danh sách theo dõi mượt mà hơn. Trong quá trình cập nhật cơ sở dữ liệu, tính năng sắp xếp theo thời hạn đã bị loại bỏ vì chậm hơn hơn 100 lần so với sắp xếp theo tên trang. Một [https://meta.wikimedia.org/wiki/Community_Wishlist/W454 yêu cầu từ cộng đồng] đã được tạo để tìm các cách thay thế nhằm khôi phục tính năng sắp xếp theo thời hạn. Nếu bạn thấy tính năng này quan trọng, hãy ủng hộ yêu cầu đó! [https://phabricator.wikimedia.org/T41510]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:31}} {{PLURAL:31|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, việc khắc phục lỗi tô sáng vẫn còn hiển thị sau khi sử dụng tính năng tìm và thay thế của VisualEditor trong quá trình tìm kiếm. [https://phabricator.wikimedia.org/T407318]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Từ năm 2019, [[m:Special:MyLanguage/Wikimedia URL Shortener|Trình rút gọn URL của Wikimedia]] tại https://w.wiki đã có sẵn cho tất cả các wiki của Wikimedia để tạo liên kết ngắn đến bài viết, liên kết cố định, bản so sánh, v.v. Tính năng này có trong thanh bên với tên "Lấy URL rút gọn". Hiện có 30 wiki vẫn đang sử dụng tiện ích mở rộng cũ "ShortUrl". Tiện ích cũ này sẽ sớm bị gỡ bỏ. Điều này có nghĩa là các URL dạng <code>/s/</code> sẽ không còn được hiển thị dưới tiêu đề bài viết thông qua thẻ HTML <code dir=ltr>class="title-shortlink"</code>. Tuy nhiên, các URL dạng <code>/s/</code> vẫn sẽ tiếp tục hoạt động. [https://phabricator.wikimedia.org/T107188]
* Vào thứ Năm, ngày 30 tháng 10, các nhóm [[:mw:Special:MyLanguage/MediaWiki Interfaces Team|Giao diện MediaWiki]] và [[:mw:Special:MyLanguage/Wikimedia Site Reliability Engineering|Vận hành Dịch vụ SRE]] đã bắt đầu chuyển hướng lưu lượng của Action API thông qua một cổng API chung. Các wiki riêng lẻ sẽ được cập nhật theo từng nhóm phát hành tiêu chuẩn, với tổng lưu lượng được tăng dần theo thời gian. Thay đổi này được kỳ vọng sẽ không gây ra lỗi hoặc gián đoạn. Nếu bạn phát hiện bất kỳ sự cố nào, vui lòng gửi báo cáo trên bảng [https://phabricator.wikimedia.org/tag/serviceops/ của nhóm Vận hành Dịch vụ].
* Việc triển khai MediaWiki Train sẽ tạm dừng trong hai tuần cuối cùng của năm 2025: ngày 22 và 29 tháng 12. Các khung thời gian backport cũng sẽ tạm ngưng từ thứ Hai, ngày 22 tháng 12 năm 2025 đến thứ Năm, ngày 2 tháng 1 năm 2026. "Backport window" là khoảng thời gian được lên lịch để bổ sung các nội dung như bản vá lỗi và thay đổi cấu hình. Hiện vẫn còn bảy đợt triển khai MediaWiki Train nữa trong năm 2025. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/SMWTEAES4SDLDUSK4HMWNBSKNCXZAWYN/]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.26|MediaWiki]]
'''Chuyên sâu'''
* Năm 2025, Quỹ Wikimedia báo cáo rằng các hệ thống AI và công cụ tìm kiếm ngày càng sử dụng nội dung từ Wikipedia mà không dẫn người dùng quay lại trang, góp phần khiến lượng lượt xem từ người dùng thực giảm 8% so với năm 2024. Sau khi phát hiện các bot giả dạng người dùng thật, Wikimedia đã cập nhật dữ liệu truy cập để phản ánh sự thay đổi này. Bạn có thể đọc thêm về xu hướng người dùng hiện nay trên Wikipedia trong [[diffblog:2025/10/17/new-user-trends-on-wikipedia/|bài viết trên blog Diff]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/45|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W45"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:34, ngày 3 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29552512 -->
== Bản tin Kỹ thuật: Tuần 46-2025 ==
<section begin="technews-2025-W46"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/46|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
[[File:Talk pages default look (April 2023).jpg|thumb|alt=Hình chụp những thay đổi về mặt trực quan được thực hiện trên trang thảo luận|Ví dụ về trang thảo luận với thiết kế mới, bằng tiếng Pháp.]]
* Kể từ ngày 12 tháng 11, người dùng sẽ nhận thấy sự thay đổi về [[m:Special:MyLanguage/Talk pages project/Feature summary#Usability improvements|giao diện của các trang thảo luận]] trên [[Phab:T379264|một số trang Wikipedia]]. Hầu hết [[phab:T392121|toàn bộ các wiki]] đã có được thay đổi về mặt thiết kế này; những thay đổi này sẽ được thực hiện sau trên [[phab:T409297|Wikipedia tiếng Anh]]. Bạn có thể đọc thêm [[diffblog:2024/05/02/making-talk-pages-better-for-everyone/|trên ''Diff'']]. Người dùng có thể chọn không thực hiện thay đổi này [[Special:Preferences#mw-prefsection-editing|trong tùy chọn người dùng của mình]] ở tùy chọn "{{int:discussiontools-preference-visualenhancements}}". [https://phabricator.wikimedia.org/T379264]
* MediaWiki nay có thể hiển thị [[mw:Special:MyLanguage/Help:Protection indicators|chỉ báo trên trang]] tự động khi một trang bị khóa. Tính năng này được tắt theo mặc định. Nó có thể được bật theo [[m:Special:MyLanguage/Requesting wiki configuration changes|yêu cầu của cộng đồng]]. [https://phabricator.wikimedia.org/T12347]
* Việc sử dụng các nút "{{int:showpreview}}" hoặc "{{int:showdiff}}" trong trình soạn thảo mã nguồn nay sẽ đi kèm một số tham số URL nhất định như '[[mw:Special:MyLanguage/Manual:Parameters to index.php#useskin|useskin]]', '[[mw:Special:MyLanguage/Manual:Parameters to index.php#uselang|uselang]]' và '[[mw:Special:MyLanguage/Help:Section#Editing sections|section]]'. Bản cập nhật này đồng thời cũng sửa một vấn đề mà, nếu trình duyệt bị sập khi đang xem trước sửa đổi một đề mục duy nhất, việc lưu sửa đổi này có thể ghi đè toàn bộ trang chỉ bằng nội dung của đề mục đó. [https://phabricator.wikimedia.org/T62744][https://phabricator.wikimedia.org/T24029][https://phabricator.wikimedia.org/T155097]
* Các wiki Wikivoyage có thể dùng [[mw:Special:MyLanguage/Help:Extension:Kartographer#Markers and counters|điểm đánh dấu bản đồ bằng màu trong nội dung văn bản của bài viết]]. Nội dung văn bản của những điểm đánh dấu đó nay sẽ được hiển thị bằng màu đen hoặc trắng tương phản, thay vì luôn luôn là màu trắng. Cộng đồng có thể loại bỏ các phương pháp giải quyết cục bộ cho vấn đề này. [https://phabricator.wikimedia.org/T369454]
* Tab Hoạt động trên ứng dụng Wikipedia dành cho Android nay có sẵn cho tất cả người dùng. Tab mới này cung cấp thông tin chuyên sâu được cá nhân hóa về hoạt động đọc, sửa đổi, và quyên góp, đồng thời đơn giản hóa việc điều hướng và giúp cho việc sử dụng ứng dụng trở nên hấp dẫn hơn. [https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/Android/Activity_Tab_Experiment]
* Nhóm Phát triển Độc giả (Reader Growth) chuẩn bị khởi động thử nghiệm mang tên "Duyệt hình ảnh" để kiểm tra cách giúp người đọc dễ dàng duyệt và khám phá hình ảnh trên các bài viết Wikipedia hơn. Thử nghiệm này, một thử nghiệm A/B dành riêng cho thiết bị di động, sẽ bắt đầu được thực hiện vào tuần từ ngày 17 tháng 11 và sẽ kéo dài trong bốn tuần, ảnh hưởng đến 0,05% người dùng trên wiki tiếng Anh. Thử nghiệm này đã bắt đầu vào ngày 3 tháng 11 trên các wiki tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Indonesia và tiếng Việt, ảnh hưởng đến tối đa 10% người dùng trên những wiki này. [https://www.mediawiki.org/wiki/Readers/Reader_Growth/WE3.1.3_Image_Browsing]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ như đã khắc phục việc không thể khóa tài khoản trên trang web dành cho di động. [https://phabricator.wikimedia.org/T256185]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[wikitech:Help talk:Toolforge/Toolforge standards committee#November 2025 committee nominations|Wikitech đang mở đề cử]] chọn thành viên mới của [[wikitech:Help:Toolforge/Toolforge standards committee|Ủy ban tiêu chuẩn của Toolforge]]. Ủy ban này giám sát [[wikitech:Help:Toolforge/Right to fork policy|Chính sách quyền sử dụng bản sao]] và [[wikitech:Help:Toolforge/Abandoned tool policy|Chính sách cho công cụ bị bỏ rơi]] của Toolforge cùng nhiều nhiệm vụ khác. Đề cử sẽ tiếp tục mở đến hết ngày 28 tháng 11 năm 2025.
* [[w:JSON Web Token#Standard fields|Trường bên cung cấp JWT]] trong [[mw:Special:MyLanguage/OAuth/For Developers#OAuth 2|mã truy cập OAuth 2]] dành cho [[m:Special:MyLanguage/Help:Unified login|wiki SUL]] (đăng nhập trung ương) đã được thay đổi thành <code><nowiki>https://meta.wikimedia.org</nowiki></code>. Các mã truy cập cũ vẫn sẽ hoạt động. [https://phabricator.wikimedia.org/T399199]
* [[w:JSON Web Token#Standard fields|Trường chủ đề JWT]] trong [[mw:Special:MyLanguage/OAuth/For Developers#OAuth 2|mã truy cập OAuth 2]] sẽ sớm thay đổi từ <code><user id></code> sang <code dir=ltr style="white-space:nowrap">mw:<identity type>:<user id></code>, trong đó <code><identity type></code> thường là <code dir=ltr>CentralAuth:</code><!-- not a typo --> (đối với [[m:Special:MyLanguage/Help:Unified login|wiki SUL]]) hoặc <code dir=ltr style="white-space:nowrap">local:<wiki id></code> (đối với các wiki khác). Điều này là nhằm tránh xung đột giữa các loại ID người dùng khác nhau, và để mã truy cập OAuth 2 và cookie <code>sessionJwt</code> trở nên giống nhau hơn. Các mã truy cập cũ vẫn sẽ hoạt động. [https://phabricator.wikimedia.org/T399199]
* Các thông điệp cấm của MediaWiki ([[MediaWiki:Blockedtext|blockedtext]], [[MediaWiki:Blockedtext-partial|blockedtext-partial]], [[MediaWiki:Autoblockedtext|autoblockedtext]], [[MediaWiki:Systemblockedtext|systemblockedtext]], [[MediaWiki:Blockedtext-tempuser|blockedtext-tempuser]], [[MediaWiki:Autoblockedtext-tempuser|autoblockedtext-tempuser]]) nay hỗ trợ thêm các tham số bổ sung nhằm chỉ ra xem người dùng đó có bị cấm sửa đổi trang thảo luận của mình <code><nowiki>$9</nowiki></code> hoặc gửi thư điện tử cho người dùng khác <code><nowiki>$</nowiki><nowiki>10</nowiki></code> hay không. [https://phabricator.wikimedia.org/T285612]
* Nhánh <code>REL1_45</code> cho lõi MediaWiki và từng phần mở rộng cùng giao diện trong git của Wikimedia đã được tạo. Đây là bước đầu tiên trong quá trình phát hành phiên bản MediaWiki 1.45.0, được lên kế hoạch triển khai vào cuối tháng 11 năm 2025. Nếu bạn đang thực hiện việc khắc phục lỗi nghiêm trọng hoặc thực hiện tính năng mới, bạn có thể cần phải lưu ý thay đổi này. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/ZUY7TY3Z6XPZWZVAZV63OPO5OW52Q6GE/]
* Quy trình tạo bản dump CirrusSearch đã được cập nhật do hiệu suất bị chậm. Nếu bạn gặp bất kỳ sự cố nào khi chuyển sang bản dump thay thế, vui lòng liên hệ với Nhóm Nền tảng Tìm kiếm để được hỗ trợ. [https://phabricator.wikimedia.org/T366248][https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/3KQPOR6ACVN6OVLMLZPIBXQSWQKW4E3K/]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.2|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/46|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W46"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:38, ngày 10 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29606150 -->
== Bản tin Kỹ thuật: Tuần 47-2025 ==
<section begin="technews-2025-W47"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/47|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đang thử nghiệm tính năng [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4_Reading lists|danh sách đọc trên trang di động]], cho phép người đọc đã đăng nhập chưa thực hiện sửa đổi nào có thể lưu danh sách bài viết riêng tư để đọc sau. Thử nghiệm đang được thực hiện trên các Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Indonesia, và tiếng Việt kể từ tuần ngày 10 tháng 11, và sẽ bắt đầu trên Wikipedia tiếng Anh trong tuần ngày 17 tháng 11.
* Người dùng không thể nhận được mã xác nhận qua thư điện tử khi đăng nhập nay có thể nhờ hỗ trợ bằng cách gửi biểu mẫu trên trang đặc biệt mới. Cập nhật này là một phần của sáng kiến [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]]. Nếu tài khoản của bạn có địa chỉ thư điện tử, hãy đảm bảo rằng bạn vẫn có quyền truy cập vào nó. Trong quá trình đăng nhập từ thiết bị hoặc địa điểm mới mà không có 2FA, bạn có thể được yêu cầu nhập mã 6 ký tự được gửi từ thư điện tử để hoàn tất đăng nhập. [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security#Why are you requiring me to enter a code from my email to log in? Can I opt out of this?|Tìm hiểu thêm]].
* Một wiki mới đã được tạo ra: {{int:project-localized-name-group-wikisource}} tiếng [[d:Q13324|Minangkabau]] ([[s:min:|<code>s:min:</code>]]) [https://phabricator.wikimedia.org/T408317]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Là một phần của dự án [[mw:Special:MyLanguage/Parsoid/Parser Unification|Hợp nhất Trình Phân tích Cú pháp]], Nhóm Chuyển đổi Nội dung đã triển khai Parsoid làm trình phân tích cú pháp mặc định cho nhiều trang Wikipedia có lưu lượng truy cập thấp và đang chuẩn bị tiếp tục bước tiếp theo để triển khai đến những trang có lưu lượng truy cập cao. Tin nhắn này là lời mời cho bạn tham gia vào Parsoid, như được miêu tả trong tài liệu [[mw:Special:MyLanguage/Help:Extension:ParserMigration|Extension:ParserMigration]], và tìm ra bất kỳ vấn đề nào mà bạn có thể gặp phải với quy trình làm việc của mình khi sử dụng bot, tiện ích hoặc đoạn mã người dùng. Hãy cho chúng tôi biết thông qua liên kết ''"Báo cáo lỗi hiển thị"'' trên thanh bên Công cụ hoặc tạo một tác vụ phab và gắn thẻ [[phab:project/view/5846|Nhóm Chuyển đổi Nội dung trên Phabricator]].
* Dự án Công cụ Không được Hỗ trợ: Một vài vấn đề với [[:c:Special:MyLanguage/Commons:Video2commons|Video2Commons]] đã được giải quyết, bao gồm lỗi tải lên liên quan đến tên tập tin, nhập video bị đen, và xử lý việc thử lại. Hỗ trợ cho AV1 cũng đã được thêm vào. Những công việc đang được tiến hành tập trung vào tính ổn định của backend, lỗi ffmpeg, nhập phụ đề, xử lý siêu dữ liệu, và tải lên danh sách phát. Để theo dõi các tác vụ cụ thể, hãy kiểm tra [[phab:tag/video2commons/|bảng tác vụ trên Phabricator]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.3|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* Hãy lưu lịch ngay cho Hackathon Wikimedia tiếp theo sẽ diễn ra tại Milan, Ý từ ngày 1–3 tháng 5 năm 2026. Cổng đăng ký sẽ được mở vào tháng 1 năm 2026. [https://pretix.eu/wikimedia/Hackathon-2026/ Đơn đăng ký nhận học bổng hiện đang được mở], và sẽ đóng vào ngày 28 tháng 11 năm 2025. Nếu bạn có bất kỳ câu hỏi nào, vui lòng gửi thư đến <bdi lang="en" dir="ltr">hackathon@wikimedia.org</bdi>.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/47|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W47"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:26, ngày 17 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29627455 -->
== <span lang="en" dir="ltr">Reminder: Help us decide the name of the new Abstract Wikipedia project</span> ==
<div lang="en" dir="ltr">
<section begin="function2"/>
{{int:Hello}}. Reminder: Please help to choose name for the new Abstract Wikipedia wiki project. The finalist vote starts today. The finalists for the name are: <span lang="en" dir="ltr" class="mw-content-ltr">Abstract Wikipedia, Multilingual Wikipedia, Wikiabstracts, Wikigenerator, Proto-Wiki</span>. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki.
{{Int:Feedback-thanks-title}}
<section end="function2"/>
</div>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 14:23, ngày 20 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:Sannita (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29583860 -->
== Bản tin Kỹ thuật: Tuần 48-2025 ==
<section begin="technews-2025-W48"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/48|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tuần trước, [[mw:Special:MyLanguage/Wikimedia Search Platform|Nhóm Tìm kiếm Wikimedia]] đã tạo lại chức năng của tiện ích "DWIM" (Do What I Mean - Làm những gì bạn muốn) trên máy chủ, cho Wikipedia tiếng Nga và tiếng Do Thái. Tính năng này bổ sung gợi ý đa bàn phím vào gợi ý trên hộp tìm kiếm tiêu chuẩn. Ví dụ, khi tìm kiếm ''<span lang="und" dir="ltr">cxfcnmt</span>'' trên Wikipedia tiếng Nga giờ đây sẽ bổ sung thêm gợi ý cho ''<span lang="ru" dir="ltr">счастье</span>'' ("sự hạnh phúc") mà người dùng có thể có ý định tìm tới. Họ dự kiến sẽ kích hoạt tính năng này trên các wiki khác bằng tiếng Nga và tiếng Do Thái trong tuần này. [https://phabricator.wikimedia.org/T408734]
* Cuối tuần này, người dùng [[Special:Preferences#mw-prefsection-betafeatures|tính năng beta]] "{{int:codemirror-beta-feature-title}}" sẽ có thể sử dụng tính năng tô màu cú pháp trong [[mw:Special:MyLanguage/Help:DiscussionTools|Công cụ Thảo luận]]. Điều này yêu cầu phải thiết lập tùy chọn "{{int:discussiontools-preference-sourcemodetoolbar}}". [https://phabricator.wikimedia.org/T407918]
* [[mw:Special:MyLanguage/Help:Extension:CampaignEvents|Phần mở rộng chiến dịch sự kiện]] – một bộ công cụ để phối hợp tổ chức sự kiện và các hoạt động cộng tác khác trên wiki nay đã được triển khai tới tất cả các wiki của Wikimedia. Một tính năng mới được gọi là [[m:Special:MyLanguage/CampaignEvents/Collaborative contributions|Đóng góp cộng tác]] cũng đã được thêm vào để giúp những người tổ chức và người tham gia thấy được tác động của những hoạt động đó. Hãy tham gia [[m:Special:MyLanguage/Event:Connection learning session 3|buổi học sắp tới]] để xem tính năng mới đó hoạt động thực tế như thế nào và chia sẻ phản hồi của bạn.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:24}} {{PLURAL:24|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho CodeReviewBot ngừng hoạt động hiện đã được giải quyết. [https://phabricator.wikimedia.org/T410417]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Người dùng API của Wikimedia có thể tham gia nghiên cứu khả năng sử dụng để giúp xác thực thiết kế mới dành cho chỗ thử REST API của Wikimedia. Những người có hứng thú tham gia cần điền vào [https://wikimediafoundation.limesurvey.net/487662 biểu mẫu khảo sát tham gia] này. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/IREJRRWTZTGCYWQHDMSNJFTQAEPOOAE3/]
* Nhóm Giao diện MediaWiki đang trong quá trình ngừng hỗ trợ các bảng định dạng (stylesheet) kiểu XSLT trong Action API. Hỗ trợ cho <code dir=ltr>format=xml'''&xlst={stylesheet}'''</code> sẽ bị loại bỏ khỏi các dự án Wikimedia vào cuối tháng 11 năm 2025. Ngoài ra, nó sẽ sớm mặc định bị vô hiệu hóa trong các phiên bản phát hành của MediaWiki: v1.43 (LTS), v1.44, và v1.45. Hỗ trợ cho các bảng định dạng kiểu XSLT sẽ bị loại bỏ hoàn toàn khỏi MediaWiki v1.46 (dự kiến phát hành vào khoảng thời gian từ tháng 4 đến tháng 5 năm 2026). [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/5AX7UWAVVUNUSBOIRHMNOKWOZ5EZI3JX/]
* Điểm cuối kế thừa của WDQS ([https://query-legacy-full.wikidata.org/ query-legacy-full.wikidata.org]) sẽ ngừng hoạt động vào cuối tháng 12 năm 2025, và sẽ chính thức bị vô hiệu hóa vào ngày 7 tháng 1 năm 2026. Sau ngày này, người dùng sẽ nhận thấy những yêu cầu đến query.wikidata.org mà yêu cầu toàn bộ biểu đồ bị lỗi hoặc trả về kết quả không hợp lệ nếu chúng không được viết lại để sử dụng liên kết SPARQL. Nhóm khuyên người dùng cần đảm bảo các công cụ và quy trình làm việc sử dụng các điểm cuối WDQS được hỗ trợ (<span dir=ltr><nowiki>https://query.wikidata.org/</nowiki></span> - Biểu đồ chính hoặc <span dir=ltr><nowiki>https://query-scholarly.wikidata.org/</nowiki></span> - Biểu đồ học thuật). Để được hỗ trợ chuyển đổi các trường hợp sử dụng (use case), vui lòng xem lại các trang [[d:Special:MyLanguage/Wikidata:Data_access|Truy cập Dữ liệu]] và [[d:Wikidata:Request_a_query|Yêu cầu Truy vấn]] để biết thêm thông tin và được hỗ trợ về các phương thức truy cập thay thế.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.4|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/48|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W48"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:56, ngày 24 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29702226 -->
== Bản tin Kỹ thuật: Tuần 49-2025 ==
<section begin="technews-2025-W49"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/49|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Bảng Nhìn lại Một Năm Wikipedia 2025 sẽ có mặt vào ngày 2 tháng 12 dành cho người dùng ứng dụng Wikipedia trên iOS và Android, gồm thông tin chuyên sâu được cá nhân hóa, những điểm nổi bật để đọc được cập nhật, cùng thiết kế đã được làm mới. Tìm hiểu thêm trên [[mw:Special:MyLanguage/Wikimedia Apps/Team/Wikipedia Year in Review/Updates|trang dự án]] của tính năng nhìn lại này.
* Nhóm Tăng trưởng đang nỗ lực cải thiện nội dung và cách trình bày của Email Xác minh được gửi tới người dùng mới để chúng trở nên thân thiện, hữu ích và có thêm nhiều thông tin hơn. Một số văn bản mới đã được soạn thảo cho thử nghiệm A/B và bạn có thể giúp đỡ bằng cách dịch chúng. Xem [[phab:T396155|Phabricator]].
* Tính năng [[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|Thêm liên kết]] nay sẽ được triển khai tới Wikipedia tiếng Nhật, tiếng Urdu và tiếng Trung vào ngày 2 tháng 12. Thêm liên kết được dựa trên mô hình dự đoán nhằm gợi ý liên kết cần được thêm vào bài viết. Trong khi tính năng này đã có mặt trên hầu hết các trang Wikipedia, mô hình dự đoán đó không thể hỗ trợ một số ngôn ngữ nhất định. Một mô hình mới đã được phát triển để xử lý những ngôn ngữ này, và mô hình đó sẽ dần được triển khai sang các trang Wikipedia khác theo thời gian. Nếu bạn muốn được biết thêm thông tin, vui lòng liên hệ [[mw:user:Trizek (WMF)|Trizek (WMF)]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:34}} {{PLURAL:34|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà hộp tìm kiếm trên một số trang Commons không hiển thị kết quả nào do việc chuyển đổi từ SpecialSearch sang MediaSearch, hiện đã được giải quyết. [https://phabricator.wikimedia.org/T399476]
* Hai wiki mới đã được tạo ra:
** {{int:project-localized-name-group-wikipedia}} tiếng [[d:Q36846|Toki Pona]] ([[w:tok:|<code>w:tok:</code>]]) [https://phabricator.wikimedia.org/T404457]
** {{int:project-localized-name-group-wikiquote}} tiếng [[d:Q33655|Pidgin Nigeria]] ([[q:pcm:|<code>q:pcm:</code>]]) [https://phabricator.wikimedia.org/T408318]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.5|MediaWiki]]
'''Chuyên sâu'''
* Quỹ Wikimedia đang trong giai đoạn đầu của việc khám phá các phương pháp tiếp cận cho '''Chỉ dẫn bài viết'''. Sáng kiến này nhằm mục đích xác định các phương pháp can thiệp có thể giúp các biên tập viên mới dễ dàng hiểu và áp dụng các quy tắc và chính sách hiện hành của Wikipedia khi tạo bài viết. Dự án đang trong giai đoạn khám phá và thiết kế thử nghiệm giai đoạn đầu. Tất cả các thành viên cộng đồng được khuyến khích [[mw:Special:MyLanguage/Article guidance|tìm hiểu thêm]] về dự án, và chia sẻ suy nghĩ của họ trên [[mw:Special:MyLanguage/Talk:Article guidance|trang thảo luận này]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/49|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W49"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:58, ngày 1 tháng 12 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29732328 -->
== Bản tin Kỹ thuật: Tuần 50-2025 ==
<section begin="technews-2025-W50"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/50|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Bất kỳ ai muốn bảo mật tài khoản người dùng của mình nay có thể sử dụng tính năng [[m:Special:MyLanguage/Help:Two-factor authentication|xác thực hai yếu tố]] (2FA). Tính năng này có sẵn cho tất cả người dùng của toàn bộ các dự án Wikimedia. Đây là một phần của sáng kiến [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]]. Sau này, 2FA sẽ được yêu cầu đối với tất cả người dùng có thể thực hiện các hành động mang tính nhạy cảm về bảo mật hoặc quyền riêng tư.
'''Cập nhật cho biên tập viên'''
* Tiếp nối đợt triển khai lần trước, tính năng [[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|Thêm liên kết]], một tính năng cho phép biên tập viên thêm liên kết được đề xuất trong quá trình sửa đổi, sẽ có mặt trên [[Phab:T410469|33 trang Wikipedia]] kể từ ngày 9 tháng 12. Việc mở rộng này có được nhờ mô hình dự đoán mới nay hỗ trợ tất cả các ngôn ngữ, kể cả những ngôn ngữ mà chưa được đề cập trước đây. Dù tính năng này đã có mặt trên hầu hết các trang Wikipedia được một thời gian, nhưng lần triển khai này sẽ giúp chúng tôi tiến gần hơn đến việc sử dụng mô hình được cải tiến này ở mọi nơi. Nếu bạn có bất kỳ câu hỏi nào hoặc muốn được biết thêm thông tin chi tiết vui lòng liên hệ với [[mw:user:Trizek (WMF)|Trizek (WMF)]].
* Tuần trước, [[mw:Special:MyLanguage/Wikimedia Search Platform|nhóm Nền tảng Tìm kiếm]] đã thêm gợi ý tìm kiếm [[w:vi:Chuyển tự|được chuyển tự]] khi bạn nhập tới các wiki bằng tiếng Georgia. Nếu chỉ có một vài gợi ý tìm kiếm thông thường, thì các truy vấn bằng chữ Latinh hoặc Kirin [[phab:T127003|nay sẽ được viết lại thành chữ Georgia]] để có thể tìm kiếm được nhiều kết quả trùng khớp hơn. Ví dụ, tìm kiếm <bdi lang="ka-Latn" dir="ltr">''bedniereba''</bdi> hoặc <bdi lang="ka-Cyrl" dir="ltr">''бедниереба''</bdi> nay sẽ gợi ý bài viết hiện có về <bdi lang="ka" dir="ltr">ბედნიერება</bdi> ("sự hạnh phúc"). Bạn có thể đề xuất những ngôn ngữ khác mà việc gợi ý được chuyển tự có thể hữu ích [[phab:T375215|trên Phabricator]] để dùng cho quá trình phát triển sau này.
* Cuối tuần này, một thử nghiệm có kiểm soát sẽ bắt đầu dành cho các biên tập viên trên 100 trang Wikipedia lớn nhất khi đang thực hiện sửa đổi một đề mục bằng trình soạn thảo trực quan trên trang web di động. 50% số biên tập viên đó sẽ nhận thấy nút "Sửa đổi toàn bộ trang" mới cho phép họ mở rộng phiên sửa đổi của mình lên toàn bộ trang đó. Tính năng này nhằm mục đích giúp người dùng trên trang web di động sửa đổi bất kỳ đề mục nào trong bài viết một cách dễ dàng hơn, bất kể việc họ chạm vào biểu tượng sửa đề mục nào để bắt đầu sửa đổi. Thử nghiệm này sẽ kéo dài khoảng 4 tuần. Bạn có thể tìm hiểu [[phab:T409112|thêm thông tin]] về dự án này.
* Cuối tuần này, [[mw:Special:MyLanguage/Readers/Reader Growth|nhóm Tăng trưởng Độc giả]] sẽ khởi động [[mw:Special:MyLanguage/Readers/Reader Growth/WE3.1.14 Expanded Mobile Sections|thử nghiệm trên trang web di động]] để mở rộng tất cả đề mục bài viết theo mặc định (hiện giờ chúng được mặc định thu gọn lại) và ghim tiêu đề của đề mục mà người dùng hiện đang đọc lên đầu trang. Thử nghiệm này sẽ ảnh hưởng tới 10% người dùng trên Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Indonesia và tiếng Việt. [https://phabricator.wikimedia.org/T409485]
* [[mw:Special:MyLanguage/Wikimedia Apps/Team/Wikipedia Year in Review/2025 Year in Review|Tổng kết Một Năm Wikipedia 2025]], một tính năng trong ứng dụng Wikipedia dành cho thiết bị di động (iOS và Android) nhằm cung cấp cho người dùng bản tóm tắt được cá nhân hóa về mức độ tương tác của họ với Wikipedia xuyên suốt trong một năm, nay đã có mặt trên ứng dụng iOS và Android. Phiên bản này bao gồm những thông tin chuyên sâu được mở rộng và cá nhân hóa, cải thiện những điểm nổi bật trong quá trình đọc, thông điệp mới cho nhà quyên góp, cùng thiết kế được cập nhật. Hãy mở ứng dụng để xem chuyên mục Tổng kết Năm và khám phá hành trình đọc của bạn trong năm 2025 nhé.
* Một lỗi phần mềm xảy ra gần đây khiến cho các sửa đổi được thực hiện bằng Trình Soạn thảo Trực quan thực hiện những thay đổi không mong muốn với mã nguồn wiki, trong đó có việc loại bỏ khoảng trắng và thay thế các dấu cách bằng dấu gạch dưới trong các liên kết wiki bên trong chú thích. Vấn đề này đã được giải quyết một phần vào tuần trước, và việc giải quyết vấn đề vẫn đang tiếp tục được thực hiện. Các biên tập viên sử dụng Trình Soạn thảo Trực quan trong các ngày từ 28 tháng 11 đến 2 tháng 12 nên kiểm tra lại sửa đổi của mình để tìm ra những thay đổi ngoài ý muốn. [https://phabricator.wikimedia.org/T411238]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, vấn đề về việc xử lý không đúng các đường dẫn URL được sao chép từ thanh địa chỉ của người dùng Microsoft Edge đã được giải quyết. [https://phabricator.wikimedia.org/T341281]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bắt đầu từ tuần này, người dùng [[Special:Preferences#mw-prefsection-betafeatures|tính năng beta]] "{{int:codemirror-beta-feature-title}}" sẽ sử dụng [[mw:Special:MyLanguage/Help:Extension:CodeMirror|CodeMirror]] làm trình sửa đổi dành cho các kiểu nội dung Lua, JavaScript, CSS, JSON và Vue, thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]]. Với thay đổi này, [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Linting|các linter]] sẽ được nâng cấp. Đây là một phần trong nỗ lực lớn hơn nhằm thay thế CodeEditor và mang tới trải nghiệm sửa đổi mã nguồn một cách nhất quán. [https://phabricator.wikimedia.org/T373711]
* Các nhà phát triển được khuyến khích tham gia [https://wikimediafoundation.limesurvey.net/552643 Khảo sát Mức độ Hài lòng của Nhà phát triển năm 2025], hiện vẫn đang được mở đến hết ngày 5 tháng 1 năm 2026. Nếu bạn tham gia vào việc xây dựng phần mềm cho hệ sinh thái Wikimedia và muốn chia sẻ kinh nghiệm hoặc phản hồi của mình, thì chúng tôi sẽ rất trân trọng sự tham gia của bạn. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/W4WBKO6Q55UWWCCSFWQATKEXBEHP3QNR/]
* Tuần này không có phiên bản MediaWiki mới nào.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/50|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W50"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:45, ngày 8 tháng 12 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29738112 -->
== Bản tin Kỹ thuật: Tuần 51-2025 ==
<section begin="technews-2025-W51"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/51|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:18}} {{PLURAL:18|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một trong số đó là việc giải quyết vấn đề khi tài khoản tạm thời chèn liên kết URL ngoài, việc này kích hoạt yêu cầu hCaptcha trong nhiều trường hợp hơn so với dự định, và không hiển thị popup cần thiết trong lần thử xuất bản sửa đổi đầu tiên. [https://phabricator.wikimedia.org/T411927]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* <span class="mw-translate-fuzzy">Để cải thiện hiệu suất cho cơ sở dữ liệu và trang web, các liên kết ngoài tới các dự án Wikimedia sẽ không còn được lưu trữ trong cơ sở dữ liệu. Điều này có nghĩa là chúng sẽ không thể được tìm thấy trong [[{{#special:LinkSearch}}]], sẽ không được kiểm tra bởi Danh sách đen về spam hoặc Bộ lọc Sai phạm dưới dạng liên kết mới, và sẽ không có trong bảng <code dir=ltr>externallinks</code> trên các bản sao cơ sở dữ liệu. Trong tương lai nó có thể được mở rộng sang những trang web khác đáng tin cậy được liên kết nhiều trên cơ sở từng wiki, chẳng hạn như liên kết Creative Commons trên Wikimedia Commons.</span> [https://phabricator.wikimedia.org/T405005]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.7|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/51|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W51"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:03, ngày 15 tháng 12 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29796010 -->
== Bản tin Kỹ thuật: Tuần 52-2025 ==
<section begin="technews-2025-W52"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/52|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Kể từ tháng 1, các bộ lọc sai phạm [[mw:Special:MyLanguage/Extension:AbuseFilter/Access flags|có thể được thiết lập]] để tự động loại bỏ chi tiết bộ lọc chẳng hạn như quy tắc và danh sách các sửa đổi và tác vụ thực hiện được ghi lại. Điều này sẽ giúp người giám sát sử dụng các bộ lọc sai phạm để ngăn chặn doxxing hoặc nội dung khác có thể bị loại bỏ. [https://phabricator.wikimedia.org/T290324]
* Số tiếp theo của Bản tin Kỹ thuật sẽ được phát hành vào ngày 12 tháng 1 năm 2026 do trùng vào kỳ nghỉ cuối năm. Xin cảm ơn tất cả các biên dịch viên cùng những người đã gửi nội dung hoặc phản hồi trong năm nay.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:16}} {{PLURAL:16|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, sự cố xảy ra khiến cho ứng dụng bị sập khi chạm vào mục "Bước Đầu tiên" trong mục Nhìn lại Một năm trên ứng dụng Wikipedia dành cho Android nay đã được giải quyết, và tính năng này được mở như mong đợi. [https://phabricator.wikimedia.org/T411546]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Những thành phần giao diện như khác biệt giữa các phiên bản và thể loại được tạo bởi MediaWiki từng có thuộc tính <code dir=ltr>data-mw="interface"</code> để phân biệt với nội dung wiki. Thuộc tính này đã được thay thế bằng <code dir=ltr>data-mw-interface=""</code>, nhằm tránh khả năng gây xung đột với những thuộc tính <code dir=ltr>data-mw</code> khác được tạo bởi Parsoid. [https://phabricator.wikimedia.org/T409187]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Không có phiên bản MediaWiki mới nào trong tuần này hoặc tuần tới.
'''Các cuộc họp và sự kiện'''
* [[mw:Wikimedia Hackathon Northwestern Europe 2026|Wikimedia Hackathon Tây Bắc Âu năm 2026]] sẽ diễn ra vào các ngày 13-14 tháng 3 năm 2026 tại Arnhem, Hà Lan. Đơn đăng ký vừa được mở vào giữa tháng 12 và sẽ đóng vào giữa tháng 1 hoặc có thể đóng sớm hơn nếu hết chỗ. Do sự kiện giới hạn khoảng 100 người tham gia, chúng tôi khuyến khích bạn đăng ký thật sớm.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/52|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W52"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:45, ngày 22 tháng 12 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29831856 -->
== Bản tin Kỹ thuật: Tuần 03-2026 ==
<section begin="technews-2026-W03"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/03|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Quỹ Wikimedia đã chia sẻ một số câu hỏi định hướng cho Kế hoạch Thường niên giai đoạn tháng 7 năm 2026–tháng 6 năm 2027 trên [[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2026-2027/Product & Technology OKRs|Meta]] và ''[[diffblog:2025/12/10/shaping-wikimedia-foundations-2026-2027-annual-goals-key-questions-for-the-wikimedia-movement/|Diff]]''. Những câu hỏi này tập trung vào những xu hướng toàn cầu, những thử nghiệm nhanh và hiệu quả hơn, hỗ trợ tốt hơn cho người mới, tăng cường năng lực cho biên tập viên và người dùng có quyền nâng cao, cải thiện sự cộng tác giữa các dự án, cũng như phát triển và duy trì lượng người đọc. Mọi phản hồi và ý kiến đóng góp đều được hoan nghênh trên [[m:Talk:Wikimedia Foundation Annual Plan/2026-2027|trang thảo luận]].
'''Cập nhật cho biên tập viên'''
* Là một phần của công việc hiện do nhóm Công nghệ Cộng đồng thực hênj xoay quanh dự án [[m:Special:MyLanguage/Community Wishlist/W372|Nhiều danh sách theo dõi]] (Multiple watchlists), việc hiển thị của tính năng [[Special:EditWatchlist|Sửa đổi Danh sách theo dõi]] (EditWatchlist) sẽ được cập nhật làm bước đầu tiên hướng tới việc có được nhiều danh sách theo dõi. Ngoài ra, việc phân trang của trang [[Special:Search|Tìm kiếm]] cũng sẽ được cập nhật như là một phần của công việc liên quan đến mong muốn [[m:Special:MyLanguage/Community Wishlist/W186|Cải tiến phân trang / điều hướng trang]]. [https://phabricator.wikimedia.org/T411596]
* [[m:Special:GlobalWatchlist|Danh sách theo dõi toàn cục]] là [[mw:Special:MyLanguage/Extension:GlobalWatchlist|phần mở rộng]] của MediaWiki cho phép bạn xem danh sách theo dõi của bạn từ các wiki khác nhau trên cùng một trang. Danh sách này gần đây đã được cập nhật để trông giống như [[Special:Watchlist|Danh sách theo dõi]] thông thường hơn, chẳng hạn như tiền xử lý các tài khoản tạm thời để che giấu địa chỉ IP (trong đó có việc chuyển hướng liên kết người dùng đến các trang đóng góp), in đậm tiêu đề trang, và mở các liên kết trong phần tóm lược sửa đổi và thẻ trong tab trình duyệt mới. [https://phabricator.wikimedia.org/T398361][https://phabricator.wikimedia.org/T298919][https://phabricator.wikimedia.org/T273526][https://phabricator.wikimedia.org/T286309]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, vấn đề mà việc cấm tài khoản toàn cục không có tùy chọn cấm gửi thư điện tử, nay đã được giải quyết, và sẽ có thể sử dụng kể từ tuần ngày 13 tháng 1. [https://phabricator.wikimedia.org/T401293]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[mw:Special:MyLanguage/VisualEditor/Citation tool|Công cụ chú thích của Soạn thảo Trực quan]] và [[mw:Special:MyLanguage/Help:Reference Previews|Xem trước Chú thích]] nay hỗ trợ kiểu chú thích dạng "bản đồ". [https://phabricator.wikimedia.org/T411083]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.10|MediaWiki]]/[[mw:MediaWiki 1.46/wmf.11|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/03|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W03"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:33, ngày 12 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29907192 -->
== Thank You for Last Year – Join Wiki Loves Ramadan 2026 ==
Dear Wikimedia communities,
We hope you are doing well, and we wish you a happy New Year.
''Last year, we captured light. This year, we’ll capture legacy.''
In 2025, communities around the world shared the glow of Ramadan nights and the warmth of collective iftars. In 2026, ''Wiki Loves Ramadan'' is expanding, bringing more stories, more cultures, and deeper global connections across Wikimedia projects.
We invite you to explore the ''Wiki Loves Ramadan 2026'' [[m:Special:MyLanguage/Wiki Loves Ramadan 2026|Meta page]] to learn how you can participate and [[m:Special:MyLanguage/Wiki Loves Ramadan 2026/Participating communities|sign up]] your community.
📷 ''Photo campaign on '' [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan 2026|Wikimedia Commons]]
If you have questions about the project, please refer to the FAQs:
* [[m:Special:MyLanguage/Wiki Loves Ramadan/FAQ/|Meta-Wiki]]
* [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan/FAQ|Wikimedia Commons]]
''Early registration for updates is now open via the '''[[m:Special:RegisterForEvent/2710|Event page]]'''''
''Stay connected and receive updates:''
* [https://t.me/WikiLovesRamadan Telegram channel]
* [https://lists.wikimedia.org/postorius/lists/wikilovesramadan.lists.wikimedia.org/ Mailing list]
We look forward to collaborating with you and your community.
'''The Wiki Loves Ramadan 2026 Organizing Team''' 19:45, ngày 16 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:ZI Jony@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29879549 -->
== Bản tin Kỹ thuật: Tuần 04-2026 ==
<section begin="technews-2026-W04"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/04|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Khay được hiển thị trên [[Special:Diff|Đặc biệt:Khác]] trong chế độ xem di động đã được thiết kế lại. Giờ đây nó mặc định được thu gọn, đồng thời tích hợp một liên kết để lùi lại sửa đổi đang được hiển thị trên màn hình, giúp các biên tập viên và người duyệt bài trên điện thoại di động dễ dàng thực hiện tác vụ mà vẫn giữ giao diện thật gọn gàng. [https://phabricator.wikimedia.org/T402297]
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi từ nhiều wiki khác nhau trên cùng một trang. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] này tiếp tục được cải thiện — nay nó có thể tự động xác định hướng văn bản (nhằm đảm bảo việc hiển thị chính xác các trang web mà có tên miền bất thường) và hiển thị chi tiết phần miêu tả cho các tác vụ được lưu trong nhật trình. Cuối tuần này, một liên kết thường trực mới cho các tác vụ tạo trang cùng các lớp CSS cho từng mục nhập sẽ được thêm vào. [https://phabricator.wikimedia.org/T412505][https://phabricator.wikimedia.org/T287929][https://phabricator.wikimedia.org/T262768][https://phabricator.wikimedia.org/T414135]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:32}} {{PLURAL:32|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà được ghi nhận trước đây trong giao diện Vector 2022 mà các liên kết anchor đích bị che khuất bởi tiêu đề cố định nay đã được giải quyết. [https://phabricator.wikimedia.org/T406114]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Như đã đề cập trong [[m:Special:MyLanguage/Tech/News/2025/44|thông báo ngừng hỗ trợ vào tháng 10 năm 2025]], nhóm Giao diện MediaWiki sẽ bắt đầu loại bỏ toàn bộ điểm cuối chuyển đổi có dấu gạch chéo ở cuối khỏi API REST của MediaWiki vào tuần từ ngày 26 tháng 1. Những thay đổi này dự kiến sẽ được triển khai tới tất cả các wiki chậm nhất vào ngày 30 tháng 1. Tất cả người dùng API đang gọi những điểm cuối này được khuyên chuyển đổi sang những phiên bản không có dấu gạch chéo ở cuối. Cả hai loại biến thể điểm cuối này đều có thể được tìm thấy, so sánh và kiểm tra sử dụng [https://test.wikipedia.org/wiki/Special:RestSandbox Chỗ thử REST]. Nếu bạn có thắc mắc hay gặp bất kỳ sự cố nào, hãy gửi yêu cầu bằng cách tạo một tác vụ trong Phabricator gửi tới [https://phabricator.wikimedia.org/project/view/6931/ bảng tin #MW-Interfaces-Team].
* Tài liệu tham khảo trực quan cho [[mw:Special:MyLanguage/Wikimedia REST API|API REST của Wikimedia]] đã được chuyển. Những yêu cầu đến các tài liệu API trước đây được lưu trữ thông qua [[mw:Special:MyLanguage/RESTBase|RESTBase]] (v.d.: <code dir=ltr>https://en.wikipedia.org/api/rest_v1/</code>) nay được chuyển hướng tới [[w:en:Special:RestSandbox|Chỗ thử REST]].
* [[mw:Special:MyLanguage/Wikidata Platform|Nhóm Nền tảng Wikidata của WMF]] (WDP) đã phát hành [[d:Special:MyLanguage/Wikidata:Wikidata Platform team/Newsletter|bản tin tháng 1 năm 2026]]. Bản tin bao gồm những cập nhật về việc ngừng hoạt động điểm cuối biểu đồ đầy đủ (full-graph) cũ, thay đổi về chính sách User-Agent, thời gian làm việc hàng tháng của kế hoạch chuyển đổi sang Blazegraph, cùng những nỗ lực nhằm giảm thiểu những lỗi hồi quy gây ra bởi việc ngừng điểm cuối cũ. Xin nhắc lại rằng bạn có thể [[m:Special:MyLanguage/Global message delivery/Targets/WDP team updates|đăng ký nhận bản tin WDP đó]]!
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.12|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* [[mw:Wikimedia Hackathon Northwestern Europe 2026|Cuộc thi Hackathon Wikimedia khu vực Tây Bắc Châu Âu năm 2026]] sẽ diễn ra vào ngày 13-14 tháng 3 năm 2026 tại Arnhem, Hà Lan. Cổng đăng ký đã được mở vào giữa tháng 12 và sẽ sớm đóng lại hoặc đóng ngay khi đã đủ số lượng người tham gia. Đây là cuộc thi hackathon kéo dài hai ngày, tập trung vào mảng kỹ thuật và quy tụ các thành viên Wikimedia từ khắp khu vực. Hy vọng sẽ gặp lại bạn tại đó!
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/04|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W04"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:29, ngày 19 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29943403 -->
== Rà soát thường niên Bộ Quy tắc Ứng xử Chung và Hướng dẫn Thực thi ==
<section begin="announcement-content" />
Tôi viết thư này để thông báo với bạn rằng thời gian xem xét hàng năm đối với Bộ Quy tắc Ứng xử và Hướng dẫn Thực thi hiện đã bắt đầu. Bạn có thể đưa ra các đề xuất thay đổi đến hết ngày 9 tháng 2 năm 2026. Đây là bước đầu tiên trong nhiều bước cần thực hiện cho quá trình xem xét hàng năm. [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Đọc thêm thông tin và tìm cuộc thảo luận để tham gia trên trang UCoC trên Meta]].
[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Ủy ban Điều phối Bộ Quy tắc Ứng xử Toàn cầu]] (U4C) là một nhóm toàn cầu chuyên trách việc thực hiện Bộ Quy tắc Ứng xử Toàn cầu một cách công bằng và nhất quán. Đánh giá thường niên này được lên kế hoạch và thực hiện bởi U4C. Để biết thêm thông tin và trách nhiệm của U4C, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|bạn có thể xem Hiến chương U4C]].
Vui lòng chia sẻ thông tin này với các thành viên khác trong cộng đồng của bạn ở bất cứ nơi nào phù hợp.
-- Hợp tác với U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]])<section end="announcement-content" />
21:02, ngày 19 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Keegan (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 -->
== Bản tin Kỹ thuật: Tuần 05-2026 ==
<section begin="technews-2026-W05"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/05|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Quỹ Wikimedia mời mọi người đóng góp ý kiến cho [[m:Special:MyLanguage/Product and Technology Advisory Council/Year1 Reflections and Proposed Way Forward 2026 Update|đề xuất kế hoạch tương lai]] của [[:m:Special:MyLanguage/Product and Technology Advisory Council|Hội đồng Cố vấn Sản phẩm và Công nghệ]] chậm nhất ngày 28 tháng 2.
* Tất cả người dùng đã đăng ký tài khoản nay có thể sử dụng passkey (mã xác thực) cho việc [[m:Special:MyLanguage/Help:Two-factor authentication|xác thực hai yếu tố]] (2FA). Passkey là một cách đơn giản để đăng nhập mà không cần phải sử dụng thiết bị thứ hai. Chúng sẽ xác thực danh tính của người dùng sử dụng vân tay, nhận diện khuôn mặt, hoặc dùng mã PIN. Để thiết lập một passkey, đầu tiên hãy thiết lập phương thức xác thực 2FA thông thường. Hiện tại, để đăng nhập bằng passkey, người dùng cũng phải sử dụng cả mật khẩu. Vào cuối quý này, tính năng đăng nhập không cần mật khẩu sẽ cho phép người dùng đăng nhập chỉ bằng một cú nhấn chuột và passkey. Người dùng có quyền nâng cao cũng sẽ bắt buộc phải kích hoạt xác thực 2FA. Đây là một phần của dự án [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]].
* Những người đóng góp chưa đăng ký tài khoản trên các IP hoặc dải IP bị cấm nay có thể tương tác trên wiki để chống lại quyết định cấm trên trang thảo luận thành viên, trừ khi tùy chọn "ngăn người dùng này sửa đổi trang thảo luận của họ" được bật. Điều này giúp giải quyết vấn đề rằng người dùng chưa đăng nhập không thể sử dụng quy trình bỏ cấm mặc định thông qua trang thảo luận thành viên. [https://phabricator.wikimedia.org/T398673]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:20}} {{PLURAL:20|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, phần miêu tả phương thức Xác thực hai yếu tố (2FA) trên trang quản lý đã được cập nhật. Giờ đây nó trở nên rõ ràng và dễ hiểu hơn, giúp người dùng dễ dàng sử dụng hơn. [https://phabricator.wikimedia.org/T332385]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Một biến Bộ lọc Sai phạm mới, <code>account_type</code>, đã được thêm vào để cung cấp một cách đáng tin cậy trong việc xác định loại tài khoản được tạo trong các tác vụ <code>createaccount</code> và <code>autocreateaccount</code>. Là một phần của thay đổi này, biến <code>accountname</code> đã được đổi tên thành <code>account_name</code>, và <code>accountname</code> nay đã lỗi thời. Những người quản lý bộ lọc sai phạm nên cập nhật bất kỳ bộ lọc nào đang sử dụng biến kiểm tra loại tài khoản mã hóa cứng hoặc đã lỗi thời nào nếu có. [https://phabricator.wikimedia.org/T414049]
* Các hình thu nhỏ được yêu cầu với kích thước không chuẩn và sử dụng các phương thức không chuẩn như yêu cầu trực tiếp đến <code dir=ltr><nowiki>upload.wikimedia.org/…</nowiki></code> sẽ ngừng hoạt động trong thời gian tới. Thay đổi này nhằm ngăn chặn việc các trình thu thập dữ liệu web và bot từ bên ngoài lạm dụng. Một số người dùng có đoạn mã CSS/JS tùy chỉnh, các bảo quản viên giao diện có thể sửa tiện ích và giao diện cục bộ, cùng người viết công cụ sẽ cần cập nhật đoạn mã của mình để sử dụng kích thước hình thu nhỏ tiêu chuẩn. [[phab:T414805|Thông tin chi tiết, các liên kết tìm kiếm, cùng ví dụ về cách giải quyết chúng có sẵn trong tác vụ này]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.13|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/05|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W05"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:17, ngày 26 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29969530 -->
== Bản tin Kỹ thuật: Tuần 06-2026 ==
<section begin="technews-2026-W06"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/06|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng "{{int:pageinfo-toolboxlink}}", một tính năng cung cấp thông tin xác thực về một trang ([{{fullurl:{{FULLPAGENAME}}|action=info}} ví dụ]), nay có thêm cả phần mục lục được tạo tự động. Nếu có trang [[MediaWiki:Pageinfo-header]] được người dùng tạo cục bộ, giờ nó có thể được xóa đi. [https://phabricator.wikimedia.org/T363726]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, Trình Soạn thảo Trực quan trước đây đã thêm chức năng in đậm hoặc nghiêng vào phần miêu tả liên kết, làm cho mã wiki trở nên phức tạp. Vấn đề này hiện đã được giải quyết. [https://phabricator.wikimedia.org/T409669]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Không có bản dump XML nào được tạo ra vào ngày 20 tháng 1. Ngoài ra, kể từ giờ, các bản dump sẽ chỉ được tạo một lần mỗi tháng. [https://phabricator.wikimedia.org/T414389]
* Nhóm Giao diện MediaWiki đã ngừng hỗ trợ tất cả điểm cuối chuyển đổi có dấu gạch chéo ở cuối khỏi [https://www.mediawiki.org/wiki/Special:MyLanguage/API:REST%20API API REST của MediaWiki]. Tất cả người dùng API hiện đang gọi những điểm cuối đó được khuyến khích chuyển sang các bản không có dấu gạch chéo ở cuối. Nếu bạn có thắc mắc hoặc gặp bất kỳ sự cố nào, vui lòng gửi tác vụ phabricator tới [https://phabricator.wikimedia.org/project/view/6931/ bảng tin của #MW-Interfaces-Team].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.14|MediaWiki]]
'''Nổi bật trong tuần'''
* Xin nhắc tới người dùng rằng Quỹ Wikimedia đã chia sẻ một số câu hỏi định hướng cho Kế hoạch Hàng năm giai đoạn tháng 7 năm 2026–tháng 6 năm 2027 trên [[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2026-2027/Product & Technology OKRs|Meta]] và ''[[diffblog:2025/12/10/shaping-wikimedia-foundations-2026-2027-annual-goals-key-questions-for-the-wikimedia-movement/|Diff]]''. Những câu hỏi này tập trung vào những xu hướng toàn cầu, thử nghiệm nhanh hơn và hiệu quả hơn, hỗ trợ tốt hơn cho người mới, nâng cao năng lực cho biên tập viên và người dùng có quyền nâng cao, cải thiện việc cộng tác giữa các dự án, cũng như phát triển và giữ chân độc giả. Mọi phản hồi và ý kiến đóng góp đều được hoan nghênh trên [[m:Talk:Wikimedia Foundation Annual Plan/2026-2027|trang thảo luận]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/06|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W06"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:43, ngày 2 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30000986 -->
== Bản tin Kỹ thuật: Tuần 07-2026 ==
<section begin="technews-2026-W07"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/07|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Mục Mong muốn cộng đồng]] <span lang="en" dir="ltr" class="mw-content-ltr">Logged-in contributors who manage large or complex watchlists can now organise and filter watched pages in ways that improve their workflows with the new [[mw:Special:MyLanguage/Help:Watchlist labels|Watchlist labels]] feature. By adding custom labels (for example: pages you created, pages being monitored for vandalism, or discussion pages) users can more quickly identify what needs attention, reduce cognitive load, and respond more efficiently. This improves watchlist usability, especially for highly active editors.</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">A new feature available on [[Special:Contributions|Special:Contributions]] shows [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|temporary accounts]] that are likely operated by the same person, and so makes patrolling less time-consuming. Upon checking contributions of a temporary account, users with access to temporary account IP addresses can now see a view of contributions from the related temporary accounts. The feature looks up all the IPs associated with a given temporary account within the data retention period and shows all the contributions of all temporary accounts that have used these IPs. [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts#February 2026: Improvements to the patroller tooling|Learn more]].</span> [https://phabricator.wikimedia.org/T415674]
* <span lang="en" dir="ltr" class="mw-content-ltr">When editors preview a wikitext edit, the reminder box that they are only seeing a preview (which is shown at the top), now has a grey/neutral background instead of a yellow/warning background. This makes it easier to distinguish preview notes from actual warnings (for example, edit conflicts or problematic redirect targets), which will now be shown in separate warning or error boxes.</span> [https://phabricator.wikimedia.org/T414742]
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[m:Special:GlobalWatchlist|Global Watchlist]] lets you view your watchlists from multiple wikis on one page. The [[mw:Special:MyLanguage/Extension:GlobalWatchlist|extension]] continues to improve — it now properly supports more than one Wikibase site, for example both [[d:|Wikidata]] and [[testwikidata:|testwikidata]]. In addition, issues regarding text direction have been fixed for users who prefer Wikidata or other Wikibase sites in right-to-left (RTL) languages.</span> [https://phabricator.wikimedia.org/T415440][https://phabricator.wikimedia.org/T415458]
* <span lang="en" dir="ltr" class="mw-content-ltr">The automatic "magic links" for ISBN, RFC, and PMID numbers have been [[mw:Special:MyLanguage/Help:Magic links|deprecated in wikitext since 2021]] due to inflexibility and difficulties with localization. Several wikis have successfully replaced RFC and PMID magic links with equivalent external links, but a template was often required to replace the functionality of the ISBN magic link. There is now a new [[mw:Special:MyLanguage/Help:Magic words#isbn|built-in parser function]] <code dir=ltr><nowiki>{{#isbn}}</nowiki></code> available to replace the basic functionality of the ISBN magic link. This makes it easier for wikis who wish to migrate off of the deprecated magic link functionality to do so.</span> [https://phabricator.wikimedia.org/T145604]
* <span lang="en" dir="ltr" class="mw-content-ltr">Two new wikis have been created:</span>
** <span lang="en" dir="ltr" class="mw-content-ltr">a {{int:project-localized-name-group-wikipedia}} in [[d:Q35401|Jju]]</span> ([[w:kaj:|<code>w:kaj:</code>]]) [https://phabricator.wikimedia.org/T413283]
** <span lang="en" dir="ltr" class="mw-content-ltr">a {{int:project-localized-name-group-wikipedia}} in [[d:Q1186896|Nawat]]</span> ([[w:ppl:|<code>w:ppl:</code>]]) [https://phabricator.wikimedia.org/T413273]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* <span lang="en" dir="ltr" class="mw-content-ltr">A new global user group has been created: [[{{int:grouppage-local-bot}}|{{int:group-local-bot}}]]. It will be used internally by the software to allow community bots to bypass rate limits that are applied to abusive [[w:en:Web scraping|web scrapers]]. Accounts that are approved as bots on at least one Wikimedia wiki will be automatically added to this group. It will not change what user permissions the bot has.</span> [https://phabricator.wikimedia.org/T415588]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.15|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[mw:Special:MyLanguage/MediaWiki Users and Developers Conference Spring 2026|MediaWiki Users and Developers Conference, Spring 2026]] will be held March 25–27 in Salt Lake City, USA. This event is organized by and for the third-party MediaWiki community. You can propose sessions and register to attend.</span> [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/AZBWVI46SDEB65PGR5J6E4TYOQQEZXM7/]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/07|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W07"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 23:30, ngày 9 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30026671 -->
== Bản tin Kỹ thuật: Tuần 08-2026 ==
<section begin="technews-2026-W08"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/08|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Wikimedia Site Reliability Engineering|Nhóm SRE]] sẽ tiến hành dọn dẹp phiên bản [[m:Special:MyLanguage/Etherpad|Etherpad]] của Wikimedia, một trình sửa đổi trên web dành cho việc sửa đổi tài liệu cộng tác theo thời gian thực. Tất cả pad sẽ bị xóa vĩnh viễn sau ngày 30 tháng 4 năm 2026 – trường hợp nếu còn dự án vẫn đang được tiến hành di chuyển vào thời điểm đó thì nhóm có thể xem xét lại thời gian đó tùy từng trường hợp. Vui lòng tạo bản sao lưu cục bộ cho bất kỳ nội dung nào mà bạn muốn giữ lại, vì dữ liệu đã bị xóa không thể khôi phục được nữa. Việc dọn dẹp này sẽ giúp giảm bớt kích thước cơ sở dữ liệu và giảm thiểu lãng phí (dấu ấn) cơ sở hạ tầng. Etherpad sẽ tiếp tục hỗ trợ cộng tác theo thời gian thực, nhưng không kỳ vọng vào khả năng lưu trữ lâu dài. Những đợt dọn dẹp khác có thể xảy ra trong tương lai mà không cần báo trước. [https://phabricator.wikimedia.org/T415237]
'''Cập nhật cho biên tập viên'''
* Nhóm Tìm kiếm Thông tin sẽ triển khai [[mw:Special:MyLanguage/Readers/Information Retrieval/Phase 1|thử nghiệm trên ứng dụng di động dùng Android]] nhằm kiểm tra khả năng tìm kiếm kết hợp, có thể xử lý cả các truy vấn tìm theo ngữ nghĩa và theo từ khóa. Việc cải thiện tìm kiếm trên nền tảng này sẽ giúp người đọc dễ dàng tìm thấy những gì mà họ đang tìm kiếm hơn ngay trên Wikipedia. Thử nghiệm này sẽ bắt đầu được triển khai trước tiên là trên Wikipedia tiếng Hy Lạp vào cuối tháng 2, sau đó là các wiki tiếng Anh, tiếng Pháp và tiếng Bồ Đào Nha vào tháng 3. [https://diff.wikimedia.org/2026/01/08/semantic-search-making-it-easier-to-find-the-information-readers-want/ Đọc thêm] trên blog Diff. [https://www.mediawiki.org/wiki/Readers/Information_Retrieval]
* Nhóm Phát triển Độc giả sẽ tiến hành [[mw:Special:MyLanguage/Readers/Reader Growth/WE3.10.2 Mobile Table of Contents|một thử nghiệm]] cho người dùng web trên thiết bị di động nhằm thêm mục lục và tự động mở rộng tất cả các đề mục trong bài viết, nhằm tìm hiểu thêm về những vấn đề về điều hướng mà họ gặp phải. Thử nghiệm này sẽ có mặt trên các Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Anh, tiếng Pháp, tiếng Indonesia và tiếng Việt.
* Trước đây, các thông báo đầu trang ([[{{ns:8}}:Sitenotice]] và [[{{ns:8}}:Anonnotice]]) chỉ được hiển thị trên trang web dành cho máy tính để bàn. Giờ đây, chúng sẽ được hiển thị trên mọi nền tảng. Người dùng trên trang web di động nay sẽ thấy được những thông báo này và được thông báo. Các bảo quản viên trang web nên sẵn sàng kiểm tra và sửa các thông báo đầu trang trên các thiết bị di động để tránh xung đột với bài viết. Để từ chối, bảo quản viên giao diện có thể thêm <code dir="ltr">#siteNotice { display: none; }</code> vào [[{{ns:8}}:Minerva.css]]. [https://phabricator.wikimedia.org/T138572][https://phabricator.wikimedia.org/T416644]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:19}} {{PLURAL:19|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề trên [[Special:RecentChanges|Đặc biệt:Thay đổi gần đây]] đã được giải quyết. Trước đây, nhấn vào nút ẩn trên các bộ lọc đang được áp dụng khiến cho nút "xem những thay đổi mới từ…" biến mất, dù nó đáng lẽ phải được hiển thị. Nút này giờ đây sẽ hoạt động như mong đợi. [https://phabricator.wikimedia.org/T406339]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Hiện đã có tài liệu mới giúp biên tập viên gỡ lỗi các tính năng tìm kiếm trên trang. Nó hỗ trợ việc khắc phục sự cố khi các trang xuất hiện trong kết quả tìm kiếm, khi thứ hạng có vẻ không như mong đợi và khi bạn cần kiểm tra nội dung nào đang được lập chỉ mục, giúp việc tìm hiểu và phân tích hành vi tìm kiếm trở nên dễ dàng hơn. [[mw:Help:CirrusSearch/Debug|Tìm hiểu thêm]]. [https://phabricator.wikimedia.org/T411169]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.16|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/08|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W08"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:17, ngày 16 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30086330 -->
== Bản tin Kỹ thuật: Tuần 09-2026 ==
<section begin="technews-2026-W09"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/09|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Tính năng [[mw:Special:MyLanguage/Edit check/Reference Check|Kiểm tra Nguồn Tham khảo]] đã được triển khai tới Wikipedia tiếng Anh, điều này có nghĩa là việc triển khai tính năng trên tất cả các trang Wikipedia đã hoàn thành. Tính năng này nhắc những người mới thêm nguồn tham khảo trước khi đăng nội dung mới, giúp giảm thiểu việc lùi sửa liên quan đến các vấn đề nguồn tham khảo phổ biến và cải thiện khả năng kiểm chứng được. Trong quá trình thử nghiệm A/B, tính năng này mang lại hiệu quả rất đáng kể: những người mới có hiển thị Kiểm tra Nguồn Tham khảo có khả năng thêm nguồn tham khảo cao hơn khoảng 2,2 lần trên trang web dành cho máy tính và cao hơn khoảng 17,5 lần trên trang web dành cho di động. [https://analytics.wikimedia.org/published/reports/editing/reference_check_ab_test_report_final_2025.html]
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Extension:InterwikiSorting|Phần mở rộng InterwikiSorting]], một phần mở rộng cho phép [[m:Special:MyLanguage/Interwiki sorting order|sắp xếp các liên kết liên wiki]], đã bị gỡ bỏ khỏi Wikipedia. Do đó, những biên tập viên đã bật tính năng sắp xếp liên kết liên wiki ở chế độ không rút gọn (định dạng danh sách đầy đủ) sẽ thấy được rằng các liên kết được sắp xếp lại. Các liên kết từ nay trở đi sẽ được liệt kê theo thứ tự bảng chữ cái dựa trên mã ngôn ngữ. [https://phabricator.wikimedia.org/T253764]
* Cuối tuần này, người dùng sửa đổi một đề mục của trang bằng cách sử dụng trình soạn thảo trực quan trên thiết bị di động, sẽ nhìn thấy một nút mới có tên "Sửa đổi toàn bộ trang". Khi chạm vào nút đó, bạn sẽ có thể sửa đổi toàn bộ bài viết. Điều này sẽ giúp ích khi thay đổi bạn muốn thực hiện nằm ngoài đề mục mà bạn mở ban đầu. [https://phabricator.wikimedia.org/T387175][https://phabricator.wikimedia.org/T409112]
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đang mời các biên tập viên đánh giá xem chế độ tối có nên tiếp tục được coi là ở giai đoạn "thử nghiệm" (beta) trên wiki của họ hay không, dựa trên kinh nghiệm của họ về mức độ hoạt động tốt hay không của chế độ này trên máy tính và thiết bị di động. Nếu tính năng này được đánh giá là hoàn thiện rồi, thì các biên tập viên có thể cập nhật các thông báo giao diện trong <code dir=ltr>MediaWiki:skin-theme-description</code> và <code dir=ltr>MediaWiki:Vector-night-mode-beta-tag</code> để cho biết rằng chế độ tối đã sẵn sàng và không còn được coi là trong giai đoạn thử nghiệm nữa.
* [[mw:Wikimedia_Apps/Team/iOS/Activity_Tab|Tab Hoạt động]] được cải tiến mà hiển thị thông tin chuyên sâu về người dùng nay có sẵn cho tất cả người dùng ứng dụng Wikipedia trên (phiên bản 7.9.0 trở lên). Sau quá trình thử nghiệm A/B trước đây cho thấy tỷ lệ tạo tài khoản trong số những người dùng có quyền truy cập vào tính năng này cao hơn, tính năng này đã được triển khai cho 100% người dùng kèm vài cập nhật. Tab Hoạt động nay hiển thị các bài viết bạn đã sửa đổi trên dòng thời gian, cung cấp thông tin chi tiết về tác động của việc sửa đổi chẳng hạn như số lượng đóng góp và xu hướng xem bài viết, cùng những tùy chọn tùy chỉnh để cải thiện trải nghiệm dành cho người dùng trong ứng dụng.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho [[mw:Special:MyLanguage/Extension:DiscussionTools|Công cụ Thảo luận (DiscussionTools)]] không thể hoạt động trên thiết bị di động, từ đó khôi phục đầy đủ tất cả chức năng. [https://phabricator.wikimedia.org/T415303]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi từ nhiều wiki trên cùng một trang. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] giúp thực hiện được điều này tiếp tục được cải tiến. Cải tiến mới nhất là việc bổ sung [[mw:Extension:GlobalWatchlist#hook|hook mới]], <code dir=ltr>ext.globalwatchlist.rebuild</code>, được kích hoạt sau mỗi lần xây dựng lại danh sách theo dõi. Điều này cho phép bạn chạy các tiện ích và đoạn mã người dùng cho trang Đặc biệt. [https://phabricator.wikimedia.org/T275159]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.17|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/09|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W09"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:03, ngày 23 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30119102 -->
== Bản tin Kỹ thuật: Tuần 10-2026 ==
<section begin="technews-2026-W10"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/10|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments|Chế độ Sinh nhật]] Wikipedia 25 nay đã có mặt trên các trang Wikipedia tiếng Betawi, tiếng Breton, tiếng Trung, tiếng Séc, tiếng Hà Lan, tiếng Anh, tiếng Pháp, tiếng Gorontalo, tiếng Indonesia, tiếng Ý, tiếng Luxembourg, tiếng Madura, tiếng Sicilia, tiếng Tây Ban Nha, tiếng Thái và tiếng Việt! Tính năng chiến dịch hữu hạn này kỷ niệm 25 năm thành lập Wikipedia cùng linh vật cho ngày sinh nhật, Quả cầu Nhỏ (Baby Globe). Khi được bật, Quả cầu Nhỏ được hiển thị trên [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments/article configuration|~2,500 bài viết]], chờ người đọc khám phá. Cộng đồng có thể chọn bật chế độ Sinh nhật bằng cách đạt đồng thuận từ cộng đồng của mình và yêu cầu một bảo quản viên bật tính năng đó cũng như tùy chỉnh nó thông qua [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments#Community Configuration Demo|cấu hình cộng đồng]] trên wiki cục bộ.
'''Cập nhật cho biên tập viên'''
* [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Tham chiếu phụ (sub-referencing)]], một tính năng mới để tái sử dụng nguồn tham khảo với những chi tiết khác đã được triển khai tới Wikipedia tiếng Thụy Điển, Wikipedia tiếng Ba Lan và [[:phab:T418209|một vài trang wiki khác]]. Bạn có thể [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#test|thử tính năng này]] trên những dự án đó hoặc trên testwiki và [https://en.wikipedia.beta.wmcloud.org/wiki/Sub-referencing betawiki]. Kinh nghiệm từ wiki thí điểm đầu tiên Wikipedia tiếng Đức đã được [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing/Learnings|công bố trong báo cáo]]. Hãy liên hệ với nhóm Wikimedia Deutschland nếu bạn [[:m:Talk:WMDE Technical Wishes/Sub-referencing#Pilot wikis|quan tâm đến việc trở thành một wiki thí điểm]].
* [[mw:Special:MyLanguage/Help:Edit check#Paste check|Kiểm tra Chép dán]] (Paste Check) sẽ có mặt trên mọi trang Wikipedia trong tuần này. Tính năng này nhắc những người mới dán các đoạn văn bản mà họ không chắc viết vào Trình Soạn thảo Trực quan cân nhắc xem làm như thế có nguy cơ vi phạm bản quyền hay không. Kiểm tra Chép dán [[mw:Special:MyLanguage/Edit check/Tags|gắn thẻ]] tất cả sửa đổi mà nó hiển thị để có thể xem xét tiếp. Các bảo quản viên cục bộ có thể thiết lập cấu hình cho các khía cạnh khác nhau của tính năng này thông qua [[{{#special:EditChecks}}]]. [[mw:Special:MyLanguage/Edit check/Paste Check#A/B Experiment|Nghiên cứu]] trên 22 wiki cho thấy Kiểm tra Chép dán giúp giảm 18% số lượng sửa đổi bị lùi lại wikis found that so với nhóm đối chứng. Các biên dịch viên có thể [https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-visualeditor-ve-mw-editcheck&filter=&optional=1&action=translate giúp biên dịch] tính năng này cùng những tính năng có liên quan.
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] sẽ chuẩn hóa menu người dùng ở góc trên bên phải cho tất cả người dùng di động nhằm giúp nó gần giống trải nghiệm trên máy tính hơn. Hiện tại menu người dùng này chỉ hiển thị cho những người đã bật Chế độ Điều khiển Di động Nâng cao (AMC). Thay đổi duy nhất là một vài nút trước đây ở menu bên trái sẽ chuyển sang góc trên bên phải cho người dùng không bật chế độ AMC. Thay đổi này dự kiến được triển khai vào ngày 9 tháng 3 và nhằm mục đích cải thiện giao diện người dùng. [https://phabricator.wikimedia.org/T413912]
* Bắt đầu từ tuần ngày 2 tháng 3, các email được gửi khi thêm, xóa hoặc sửa địa chỉ email của tài khoản sẽ chuyển sang định dạng email HTML đẹp mắt và rõ ràng hơn nhiều so với định dạng email văn bản thuần túy trước đây. [https://phabricator.wikimedia.org/T410807]
* Thông báo hiện chỉ giới hạn lưu 2.000 mục lịch sử cho mỗi người dùng, điều này kéo dài trở về năm 2013 khi tính năng này mới được phát hành. Giờ nó sẽ thay đổi thành việc lưu các Thông báo trong 5 năm trở lại đây, nhưng mở rộng lên tối đa 10.000 mục. Điều này sẽ giúp bảo vệ cơ sở hạ tầng và giúp ngăn việc những thông báo xuất hiện gần đây hơn biến mất quá sớm. [https://phabricator.wikimedia.org/T383948]
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi của bạn từ nhiều wiki khác nhau trên cùng một trang tiếp tục được cải tiến. Lần cập nhật gần đây nhất cải thiện trải nghiệm sử dụng nhãn. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] nay cho phép kích hoạt [[mw:Special:MyLanguage/Manual:Language#Fallback languages|hệ thống ngôn ngữ dự phòng]] cho các khoản mục Wikidata không có nhãn bằng ngôn ngữ được xem, đồng thời hiển thị những nhãn đó trong ngôn ngữ Wikidata yêu thích của người dùng nếu không cung cấp tham số URL <code dir=ltr>uselang=</code>. [https://phabricator.wikimedia.org/T373686][https://phabricator.wikimedia.org/T416111]
* Nhóm Wikipedia dành cho Android đã bắt đầu cuộc thử nghiệm beta cho tính năng [[mw:Special:MyLanguage/Readers/Information Retrieval/Phase 1|tìm kiếm kết hợp]] (hybrid search) trên Wikipedia tiếng Hy Lạp. Khả năng tìm kiếm kết hợp có thể xử lý cả truy vấn ngữ nghĩa và từ khóa giúp người đọc dễ dàng tìm kiếm những gì họ muốn tìm kiếm ngay trên Wikipedia hơn.
* Vì lý do bảo mật, thành viên của một vài nhóm người dùng nhất định [[m:Special:MyLanguage/Mandatory two-factor authentication for users with some extended rights|bắt buộc phải bật tính năng xác thực hai yếu tố]] (2FA). Hiện tại, 2FA bắt buộc phải được bật để sử dụng nhóm người dùng, nhưng không cần phải là để trở thành thành viên nhóm đó. Do mô hình này vẫn còn một vài lỗ hổng, tình hình này sẽ [[phab:T418580|dần dần thay đổi vào tháng 3]]. Các thành viên thuộc những nhóm người dùng đó sẽ không thể tắt phương thức 2FA cuối cùng có trên tài khoản của họ, và sẽ không thể thêm người dùng không dùng 2FA vào những nhóm này. Người dùng vẫn sẽ có thể thêm phương thức xác thực mới hoặc loại bỏ chúng, miễn là còn ít nhất một phương thức được bật. Trong khoảng nửa sau của tháng 3, những người dùng mà không có 2FA sẽ bị loại bỏ khỏi những nhóm này. Điều này áp dụng cho: Bảo quản viên Thông báo Trung ương, kiểm định viên, bảo quản viên giao diện, giám sát viên, nhân viên Wikidata, nhân viên Wikifunctions, bộ phận CNTT của Văn phòng WMF và bộ phận Tin cậy & An toàn của and WMF. Sẽ không có gì thay đổi với những người dùng khác. Xem tác vụ được liên kết để biết khung thời gian triển khai. [https://phabricator.wikimedia.org/T418580]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề ngăn người dùng tạo một phiên bản trong [https://www.wikibase.cloud/ Wikibase.cloud] hiện đã được giải quyết. [https://phabricator.wikimedia.org/T416807]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Để giúp đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng cơ sở hạ tầng một cách hợp lý]], trong tháng tới Quỹ Wikimedia sẽ triển khai giới hạn truy cập API toàn cục trên tất cả các API của chúng tôi. Vào đầu tháng 3, các giới hạn nghiêm ngặt hơn sẽ được áp dụng cho các yêu cầu không xác định từ bên ngoài Toolforge/WMCS và các yêu cầu API được thực hiện từ các trình duyệt web. Vào tháng 4, những giới hạn cao hơn sẽ được áp dụng cho lưu lượng truy cập được xác định. Những giới hạn này được cố ý đặt ở mức cao nhất có thể nhằm giảm thiểu tác động đến cộng đồng. Các bot chạy trong Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào sẽ không bị ảnh hưởng vào lúc này. Tuy vậy, mọi nhà phát triển được khuyến cáo làm theo những lời khuyên thực tiễn được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn truy cập]].
* Điểm cuối Truy vấn Dữ liệu được Liên kết (LDF) của Dịch vụ Truy vấn Wikidata sẽ ngừng hoạt động vào tháng 2. Điểm cuối này phục vụ lưu lượng truy cập hạn chế, lưu lượng này đã được chuyển đổi thành công sang các phương thức truy cập dữ liệu khác phù hợp hơn để hỗ trợ các trường hợp sử dụng (use case) hiện có. Phần cứng được sử dụng để hỗ trợ điểm cuối LDF sẽ được phân bổ lại để hỗ trợ những nỗ lực chuyển đổi hệ thống backend đang diễn ra. [https://phabricator.wikimedia.org/T415696]
* Trình phân tích cú pháp Parsoid mới [[mw:Special:MyLanguage/Parsoid/Parser Unification/Updates|tiếp tục được triển khai đến nhiều wiki hơn]], nhằm cải thiện tính bền vững của nền tảng và giúp việc giới thiệu các tính năng đọc và sửa đổi mới trở nên dễ dàng hơn. Parsoid nay là trình phân tích cú pháp mặc định trên 488 trang wiki của WMF (268 trang Wikipedia), hiện chiếm hơn 10% tổng số lượt xem trang Wikipedia.
* Quy trình và tiêu chí để [[Special:MyLanguage/Wikimedia Enterprise#Access|yêu cầu quyền truy cập đặc biệt]] vào nguồn cấp dữ liệu khối lượng lớn của API ''Wikimedia Enterprise'' (miễn phí cho các trường hợp sử dụng phù hợp với nhiệm vụ), [[m:Talk:Wikimedia Enterprise#Exceptional access criteria|hiện đã được công bố]]. Điều này nhằm cung cấp tài liệu đầy đủ và rõ ràng hơn cho người dùng.
* [https://techblog.wikimedia.org/ Blog Kỹ thuật], một blog dành riêng cho cộng đồng kỹ thuật Wikimedia [https://techblog.wikimedia.org/2026/02/24/a-tech-blog-diff/ sẽ được chuyển] sang [[diffblog:|Diff]], blog tin tức và sự kiện cộng đồng. Việc chuyển đổi dự kiến sẽ được hoàn thành vào tháng 4 năm 2026, sau thời điểm này các bài viết mới sẽ được chấp nhận xuất bản. Người đọc sẽ có thể truy cập các bài đăng – cả bài cũ và mới – trên trang đích này tại https://diff.wikimedia.org/techblog.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.18|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/10|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W10"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:51, ngày 2 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30137798 -->
== Bản tin Kỹ thuật: Tuần 11-2026 ==
<section begin="technews-2026-W11"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/11|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[m:Special:MyLanguage/Tech/Server switch|Tất cả các wiki sẽ chuyển sang chế độ chỉ đọc trong vòng vài phút]] vào thứ 4, ngày 25 tháng 3 năm 2026 lúc [https://zonestamp.toolforge.org/1774450800 15:00 UTC]. Điều này là nhằm phục vụ cho việc thử nghiệm chuyển đổi máy chủ cơ sở dữ liệu dự phòng, [[wikitech:Deployments/Yearly calendar|diễn ra hai lần trong một năm]]. Trong quá trình chuyển đổi này, toàn bộ lưu lượng trên các trang web của Wikimedia được chuyển từ trung tâm dữ liệu chính sang trung tâm dữ liệu dự phòng nhằm kiểm tra tính khả dụng và ngăn ngừa việc gián đoạn dịch vụ ngay cả trong những trường hợp khẩn cấp.
* Tuần trước, tất cả các wiki đều bị giới hạn ở chế độ chỉ đọc trong vòng 2 giờ đồng hồ, cùng với đó các đoạn mã người dùng và tiện ích cũng không khả dụng trong thời gian được kéo dài. Điều này là do một sự cố bảo mật mà đã được khắc phục sau đó. Chúng tôi đang tiếp tục cố gắng để ngăn điều này tái diễn. Để cập nhật thông tin vui lòng xem [[m:Steward's noticeboard#Statement on Meta about today's user script security incident|bài đăng trên bảng tin của Nhân viên]] ([[m:Special:MyLanguage/Wikimedia Foundation/Product and Technology/Product Safety and Integrity/March 2026 User Script Incident|bản dịch]]).
'''Cập nhật cho biên tập viên'''
* Người dùng đang gặp phải nhiều lệnh cấm trên thiết bị di động nay sẽ thấy lý do cấm cho từng lần cấm riêng thay vì một thông báo chung chung. Điều này giúp họ hiểu tại sao mình bị cấm và cần thực hiện những bước nào để giải quyết vấn đề. Ví dụ, người dùng bị ảnh hưởng do sử dụng VPN phổ biến (chẳng hạn như [[Special:MyLanguage/Apple iCloud Private Relay|iCloud Private Relay]]) sẽ nhận được hướng dẫn rõ ràng hơn những việc cần làm để bắt đầu lại việc sửa đổi. [https://phabricator.wikimedia.org/T357118]
* Cuối tuần này, [[mw:Special:MyLanguage/VisualEditor/Suggestion Mode|Chế độ Đề xuất]] sẽ được cung cấp dưới dạng tính năng beta trong trình soạn thảo trực quan trên tất cả các trang Wikipedia. Tính năng này chủ động đề xuất nhiều loại hành động mà người dùng có thể cân nhắc thực hiện để cải thiện các bài viết trên Wikipedia, đồng thời tìm hiểu về các hướng dẫn có liên quan. Tính năng này có thể được cấu hình cục bộ và cũng có thể được mở rộng cục bộ với bằng việc tùy chỉnh Đề xuất. Cài đặt hiện tại có thể xem được tại trang [[Special:EditChecks]] và có [[mw:Special:MyLanguage/Help:Suggestion mode#For administrators %E2%80%93 local customization|hướng dẫn cách bảo quản viên có thể tùy chỉnh]] các liên kết để chỉ tới những trang hướng dẫn cục bộ. Tính năng này được kết nối với tính năng [[mw:Special:MyLanguage/Help:Edit check|Kiểm tra sửa đổi]], một tính năng đưa ra đề xuất cải thiện trong khi người nào đó viết nội dung mới. Trong tương lai, nhóm Sửa đổi dự kiến đánh giá tác động của tính năng này đối với người dùng mới thông qua một thử nghiệm có kiểm soát. [https://phabricator.wikimedia.org/T404600]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố liên quan đến việc con trỏ bị lệch khi sử dụng tính năng tô sáng cú pháp của CodeMirror, một tính năng giúp mã wiki (wikitext) và mã code dễ đọc hơn, nay đã được giải quyết. Vấn đề này đặc biệt ảnh hưởng đến những người dùng đã định nghĩa quy tắc phông chữ trong stylesheet tùy chỉnh khi tạo chủ đề mới bằng Công cụ Thảo luận. [https://phabricator.wikimedia.org/T418793]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Cập nhật về giới hạn truy vấn API: Để giúp đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng hợp lý cơ sở hạ tầng]], giới hạn truy vấn API toàn cục sẽ được áp dụng trong tuần này cho các yêu cầu không có User-Agent hợp lệ bắt nguồn từ bên ngoài Toolforge/WMCS cùng các yêu cầu chưa được xác thực được thực hiện từ trình duyệt web. Trong tháng 4 tới sẽ thiết lập giới hạn cao hơn cho lưu lượng truy cập được xác định. Các bot chạy trên Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào hiện sẽ không bị ảnh hưởng vì điều này. Tuy vậy, mọi nhà phát triển được khuyến cáo nên tuân theo những hướng dẫn thực tiễn tốt nhất được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn truy vấn]].
* API GraphQL mới đã được phát hành. API này được phát triển như một giải pháp thay thế linh hoạt cho một số tính năng nhất định của Dịch vụ Truy vấn Wikidata (WDQS), nhằm cải thiện trải nghiệm và khả năng thích ứng của nhà phát triển, đồng thời giúp truy cập dữ liệu hiệu quả. Hãy dùng thử và [[d:Wikidata:Wikibase GraphQL#Feedback and development|gửi phản hồi]] của mình. Bạn cũng có thể [https://greatquestion.co/wikimediadeutschland/GraphQLAPI/apply đăng ký tham gia các bài kiểm tra về khả năng sẵn dùng].
* Vào tháng 2 [[m:Special:MyLanguage/Product and Technology Advisory Council/Unsupported Tools Working Group|Nhóm Làm việc cho Công cụ Không được Hỗ trợ PTAC]] đã tiếp tục cải tiến [[commons:Special:MyLanguage/Commons:Video2commons#|Video2Commons]], trong đó sửa các lỗi liên quan đến lỗi xác thực, xử lý tệp lớn, khả năng hiển thị hàng đợi tác vụ và làm rõ hơn hành vi tải lên. Hiện một số lĩnh vực vẫn đang được tiến hành thực hiện, trong đó có những thay đổi liên quan đến việc tải lên từ phía máy chủ đã lỗi thời. Hãy đọc [[m:Special:MyLanguage/Product and Technology Advisory Council/Unsupported Tools Working Group#February 2026|phần cập nhật này]] để tìm hiểu thêm.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.19|MediaWiki]]
'''Chuyên sâu'''
* Nhóm Hướng dẫn Bài viết mời các biên tập viên Wikipedia có kinh nghiệm từ một số [[mw:Special:MyLanguage/Article guidance/Pilot wikis and collaborators#Collaborators|wiki thí điểm]] được chọn cùng những người đóng góp có quan tâm từ các trang Wikipedia khác điền vào bảng câu hỏi này, có sẵn bằng [https://docs.google.com/forms/d/e/1FAIpQLSfmLeVWnxmsCbPoI_UF2jyRcn73WRGWCVPHzerXb4Cz97X_Ag/viewform tiếng Anh], [https://docs.google.com/forms/d/e/1FAIpQLSd6rzr4XXQw8r4024fE3geTPFe13M_6w7Mitj-YJi0sOlWTAw/viewform?usp=header tiếng Ả Rập], [https://docs.google.com/forms/d/e/1FAIpQLSdok3-RfB18lcugYTUMGkpwmqG_8p760Wv4dCXitOXOszjUDw/viewform?usp=header tiếng Bengali], [https://docs.google.com/forms/d/e/1FAIpQLSfjTfYp4jEo0akA4B1e-Nfg3QZPCudUjhJzHzzDi6AHyAaMGA/viewform?usp=header tiếng Nhật], [https://docs.google.com/forms/d/e/1FAIpQLScteVoI29Aue4xc72dekk-6RYtvmMgQxzMI900UOawrFrSTWg/viewform?usp=header tiếng Bồ Đào Nha], [https://docs.google.com/forms/d/e/1FAIpQLSetdxnYwL3ub2vqA7awCg5hJZPMIYcDPaiTe12rY9h0GYnVlw/viewform?usp=header tiếng Ba Tư] và [https://docs.google.com/forms/d/e/1FAIpQLScNvfJF-Ot-4pzA4qAN771_0QDJ4Li19YcUsaTgSKW8Nc7U_Q/viewform?usp=header tiếng Thổ Nhĩ Kỳ]. Phản hồi của bạn sẽ giúp nhóm tùy chỉnh hướng dẫn cho các biên tập viên ít kinh nghiệm hơn và giúp họ tìm hiểu các chính sách và thực tiễn của cộng đồng khi tạo bài viết. Tìm hiểu thêm [[mw:Special:MyLanguage/Article guidance|trên trang dự án]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/11|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W11"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:53, ngày 9 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30213008 -->
== Bản tin Kỹ thuật: Tuần 12-2026 ==
<section begin="technews-2026-W12"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/12|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]], còn được biết đến với tên [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror 6]], được sử dụng để tô sáng cú pháp mã wiki kể từ tháng 11 năm 2024. Tính năng này sẽ chính thức kết thúc giai đoạn thử nghiệm beta vào tháng 5 năm 2026 nhằm đưa những cải tiến và [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Features|tính năng]] mới cho tất cả biên tập viên sử dụng trình tô sáng cú pháp tiêu chuẩn. Nếu bạn có bất kỳ câu hỏi hoặc thắc mắc nào về việc kết thúc giai đoạn thử nghiệm beta cho tính năng này, [[mw:Special:MyLanguage/Help talk:Extension:CodeMirror|vui lòng chia sẻ với chúng tôi]]. [https://phabricator.wikimedia.org/T259059]
* Một số thay đổi đối với quyền nhóm người dùng cục bộ được tiếp viên trên Meta-Wiki thực hiện và nhật trình về những thay đổi này chỉ được ghi lại trên đó. Giờ đây, thay đổi về quyền liên wiki sẽ được ghi lại trên cả Meta-Wiki và wiki của người dùng mục tiêu để giúp dễ dàng truy cập vào toàn bộ bản ghi thay đổi quyền người dùng trên wiki cục bộ hơn. Những mục nhật trình trước đây về những thay đổi này sẽ được cập nhật trong những tuần tiếp theo. [https://phabricator.wikimedia.org/T6055]
* Trên các wiki sử dụng [[m:Special:MyLanguage/Flagged Revisions|Thay đổi Được gắn cờ (Flagged Revisions)]], số lượng thay đổi đang chờ được hiển thị trên [[{{#Special:PendingChanges}}]] trước đây tính cả những trang mà không còn ở trong trạng thái đang chờ xem xét, do chúng đã bị xóa khỏi hệ thống mà không được xem xét lại, v.d. do bị xóa, được di chuyển sang không gian tên khác, hoặc do thay đổi cấu hình wiki. Bộ đếm giờ sẽ được hiển thị chính xác. Trên một số wiki số lượng thay đổi được hiển thị sẽ nhỏ hơn nhiều so với trước đây. Bản thân danh sách các trang sẽ không có thay đổi gì. [https://phabricator.wikimedia.org/T413016]
* Ngôn ngữ soạn thảo của Wikifunctions đã được viết lại, tạo ra một phiên bản mới của ngôn ngữ này. Thay đổi này nhằm mục đích tăng cường tính ổn định của dịch vụ bằng cách giảm mức tiêu thụ bộ nhớ của trình điều phối. Việc viết lại này cũng giúp cho phép giảm đáng kể độ trễ, đơn giản hóa mã nguồn và tạo ra các lớp trừu tượng tốt hơn, nhằm mở ra cơ hội bổ sung thêm các tính năng khác trong tương lai. Đọc thêm về [[f:Special:MyLanguage/Wikifunctions:Status updates/2026-03-11|các thay đổi này]].
* Người dùng nay có thể sắp xếp kết quả tìm kiếm theo thứ tự bảng chữ cái dựa trên tiêu đề trang. Lần cập nhật này cung cấp thêm một tùy chọn giúp cho việc tìm kiếm trang trở nên dễ dàng và nhanh chóng hơn. Trước đây, kết quả có thể được sắp xếp theo Ngày sửa đổi, Ngày tạo, hoặc Mức độ liên quan. Để sử dụng tùy chọn mới này, hãy mở 'Tìm kiếm nâng cao' trên trang kết quả tìm kiếm và chọn 'Thứ tự bảng chữ cái' trong mục 'Thứ tự sắp xếp'. [https://phabricator.wikimedia.org/T403775]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho Trình tải lên tập tin (UploadWizard) trên Wikimedia Commons không thể nhập tập tin từ Flickr nay đã được giải quyết. [https://phabricator.wikimedia.org/T419263]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Một trang đặc biệt mới, [[{{#special:LintTemplateErrors}}]], đã được tạo ra để liệt kê các trang nhúng được đánh dấu là chứa lỗi lint để giúp người dùng dễ dàng phát hiện chúng hơn. Danh sách được sắp xếp theo số lượng các trang được nhúng mà có lỗi. Ví dụ: [[{{#special:LintTemplateErrors}}/night-mode-unaware-background-color]]. [https://phabricator.wikimedia.org/T170874]
* Người dùng tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]] hiện đang sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] để tô sáng cú pháp khi sửa đổi các trang nội dung JavaScript, CSS, JSON, Vue và Lua, trong một khoảng thời gian. Cùng với việc kết thúc thử nghiệm beta cho CodeMirror 6, kế hoạch là thay thế CodeEditor để trở thành trình soạn thảo tiêu chuẩn cho những kiểu nội dung này vào tháng 5 năm 2026. [[mw:Special:MyLanguage/Help talk:Extension:CodeMirror|Mọi phản hồi hoặc ý kiến đóng góp đều được hoan nghênh]]. [https://phabricator.wikimedia.org/T419332]
* Các mô đun JavaScript cho [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] JavaScript sẽ sớm được nâng cấp lên CodeMirror 6. Trước thời điểm nâng cấp này, việc tải các mô đun <code dir=ltr>ext.CodeMirror</code> hoặc <code dir=ltr>ext.CodeMirror.lib</code> từ các tiện ích và đoạn mã người dùng đã bị loại bỏ vào tháng 7 năm 2025. Việc sử dụng hook <code dir=ltr>ext.CodeMirror.switch</code> cũng đã bị loại bỏ vào tháng 3 năm 2025. Những người đóng góp nay có thể làm cho các đoạn mã hoặc tiện ích của mình tương thích với CodeMirror 6. Xem [[mw:Special:MyLanguage/Extension:CodeMirror#Gadgets and user scripts|hướng dẫn chuyển đổi]] để biết thêm thông tin. [https://phabricator.wikimedia.org/T373720]
* Nhóm Giao diện MediaWiki đang mở rộng phạm vi định nghĩa mô đun API REST để bao gồm cả [[mw:Special:MyLanguage/API:REST API/Extensions|các API mở rộng]]. Mô đun API REST là nhóm các điểm cuối có liên quan mà có thể được quản lý và đánh phiên bản độc lập. Hiện đã có các mô đun cho API [https://phabricator.wikimedia.org/T414470 GrowthExperiments] và [https://phabricator.wikimedia.org/T419053 Wikifunctions]. Khi chúng tôi chuyển đổi các API mở rộng sang cấu trúc này, tài liệu sẽ được chuyển ra khỏi phần đặc tả chính cho OpenAPI của MediaWiki cùng chế độ xem REST Sandbox, và thay vào đó sẽ có thể truy cập được thông qua tùy chọn dành riêng cho mô đun trong menu thả xuống trên [https://test.wikipedia.org/wiki/Special:RestSandbox REST Sandbox] (nghĩa là, [[{{#Special:RestSandbox}}]], có sẵn trên tất cả các dự án wiki).
* Phần mở rộng [[mw:Special:MyLanguage/Extension:Scribunto|Scribunto]] cung cấp nhiều thông tin khác nhau về wiki nơi mô đun đang được sử dụng thông qua thư viện [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual|mw.site]]. Kể từ tuần trước, thư viện này cũng cung cấp một [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#mw.site.wikiId|cách]] truy cập [[mw:Special:MyLanguage/Manual:Wiki ID|ID của wiki]] có thể được sử dụng để hỗ trợ bảo trì mô đun liên wiki. [https://phabricator.wikimedia.org/T146616]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.20|MediaWiki]]
'''Chuyên sâu'''
* [[m:Special:MyLanguage/Coolest Tool Award|Giải thưởng Công cụ Tuyệt vời nhất năm 2026]] nhằm tôn vinh những công cụ xuất sắc do cộng đồng tạo ra, nay đã mở nhận đề cử! Hãy đề cử công cụ yêu thích của bạn bằng cách sử dụng biểu mẫu [https://wikimediafoundation.limesurvey.net/435684?lang=en khảo sát đề cử] trước ngày 23 tháng 3 năm 2026. Để biết thêm thông tin về quyền riêng tư và xử lý dữ liệu, vui lòng xem [[foundation:Special:MyLanguage/Legal:Coolest_Tool_Award_2026_Survey_Privacy_Statement|tuyên bố về quyền riêng tư của khảo sát]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/12|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W12"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:35, ngày 16 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30260505 -->
== Bản tin Kỹ thuật: Tuần 13-2026 ==
<section begin="technews-2026-W13"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/13|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Người dùng các trang Wikimedia nay có thể đăng nhập mà không cần mật khẩu bằng cách sử dụng khóa truy cập (passkey). Đây là một phương thức bảo mật sử dụng vân tay, nhận diện khuôn mặt hoặc mã PIN. Với thay đổi này, tất cả người dùng chọn đăng nhập không cần mật khẩu sẽ có thể đăng nhập vào tài khoản của mình một cách dễ dàng, nhanh chóng và an toàn hơn trên mọi thiết bị. Tùy chọn đăng nhập mới bằng khóa truy cập hiện hiển thị dưới dạng gợi ý tự động điền trong trường tên người dùng. [[phab:T417120|Nút "Đăng nhập bằng khóa truy cập"]] bổ sung sẽ sớm được cung cấp cho những người dùng đã bật tùy chọn sử dụng khóa truy cập. Lần cập nhật này sẽ cải thiện bảo mật cũng như trải nghiệm người dùng. [[c:File:Passwordless_login_screencast.webm|Bản ghi lại màn hình]] này sẽ minh họa từng bước quy trình đăng nhập không cần mật khẩu.
* [[m:Special:MyLanguage/Tech/Server switch|Tất cả các wiki sẽ chuyển sang chế độ chỉ đọc trong vòng vài phút]] vào thứ 4, ngày 25 tháng 3 năm 2026 lúc [https://zonestamp.toolforge.org/1774450800 15:00 UTC]. Điều này là nhằm phục vụ cho việc thử nghiệm chuyển đổi máy chủ cơ sở dữ liệu dự phòng, [[wikitech:Deployments/Yearly calendar|diễn ra hai lần trong một năm]]. Trong quá trình chuyển đổi này, toàn bộ lưu lượng trên các trang web của Wikimedia được chuyển từ trung tâm dữ liệu chính sang trung tâm dữ liệu dự phòng nhằm kiểm tra tính khả dụng và ngăn ngừa việc gián đoạn dịch vụ ngay cả trong những trường hợp khẩn cấp.
'''Cập nhật cho biên tập viên'''
* Người dùng các trang web của Wikimedia nay có thể xuất các thông báo cách đây hơn 5 năm của mình bằng cách sử dụng [[toolforge:echo-chamber|công cụ Toolforge mới]]. Điều này sẽ đảm bảo rằng người dùng có thể giữ lại được những thông báo quan trọng và tránh bị mất chúng do việc thay đổi theo kế hoạch nhằm xóa đi các thông báo cũ hơn 5 năm, như đã thông báo trước đó. [https://phabricator.wikimedia.org/T383948]
* Các biên tập viên Wikipedia tiếng Indonesia, tiếng Thái, tiếng Thổ Nhĩ Kỳ, và tiếng Anh Đơn giản nay có thể truy cập vào Đặc biệt:Bảng điều khiển cá nhân. Đây là [[mw:Special:MyLanguage/Moderator Tools/Dashboard|phiên bản trải nghiệm sớm]] giúp các biên tập viên mới làm quen với quy trình tuần tra, giúp họ dễ dàng chuyển từ việc sửa đổi sang tham gia vào những công việc kiểm duyệt nâng cao hơn trên dự án của mình. [https://phabricator.wikimedia.org/T402647]
* Trang [[vi:Special:Block|Đặc_biệt:Cấm]] nay có hai thay đổi nhỏ về mặt giao diện. Bảo quản viên nay có thể dễ dàng thực hiện lệnh cấm vô hạn thông qua nút chọn (nút radio) chuyên dụng trong mục thời hạn. Ngoài ra, việc chọn thời hạn là vô hạn sẽ cung cấp một bộ lý do phổ biến khác để lựa chọn, nó có thể được thay đổi tại: [[MediaWiki:Ipbreason-indef-dropdown]]. [https://phabricator.wikimedia.org/T401823]
* Biên tập viên sử dụng thiết bị di động [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#Logged-out|tại một số wiki]] nay có thể nhìn thấy cải tiến về cảnh báo sửa đổi khi chưa đăng nhập, điều này là nhờ cập nhật gần đây từ nhóm Phát triển. Những thay đổi được phát hành vào tuần trước này là một phần trong những nỗ lực và thử nghiệm đang được thực hiện nhằm nâng cao [[mw:Special:MyLanguage/Contributors/Account Creation Experiments|trải nghiệm trong việc tạo tài khoản trên thiết bị di động]] và từ đó giúp tăng cường sự tham gia của họ. [https://phabricator.wikimedia.org/T408484]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:36}} {{PLURAL:36|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến người dùng web trên thiết bị di động không thể nhìn thấy thông tin cấm khi có nhiều lệnh cấm đồng thời được áp dụng đã được giải quyết. Họ giờ có thể xem được tin nhắn cho tất cả các lệnh cấm hiện đang được áp dụng cho họ khi họ truy cập Wikipedia.
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Những image (ảnh) được dựng bằng Toolforge sẽ sớm được nâng cấp lên phiên bản buildpack mới, mang đến việc hỗ trợ các phiên bản ngôn ngữ mới hơn cùng những cải tiến và sửa lỗi khác tại thượng nguồn. Nếu bạn sử dụng Dịch vụ Dựng của Toolforge, hãy xem lại [https://lists.wikimedia.org/hyperkitty/list/cloud-announce@lists.wikimedia.org/thread/EMYTA32EV2V5SQ2JIEOD2CL66YFIZEKV/ email cloud-announce] gần đây và cập nhật cấu hình bản dựng của bạn nếu cần để đảm bảo các công cụ của bạn tương thích với phiên bản mới này. [https://wikitech.wikimedia.org/w/index.php?title=Help:Toolforge/Building_container_images&oldid=2392097#Buildpack_environment_upgrade_process][https://phabricator.wikimedia.org/T380127]
* Wiki tài liệu [https://api.wikimedia.org/wiki/Main_Page Cổng API] sẽ ngừng hoạt động vào tháng 6 năm 2026. Các khóa API được tạo trên Cổng API sẽ tiếp tục hoạt động bình thường. Các điểm cuối của api.wikimedia.org sẽ dần bị loại bỏ bắt đầu từ tháng 7 năm 2026. Tài liệu trên Cổng API đang được chuyển sang [[mw:Wikimedia APIs|mediawiki.org]]. Tìm hiểu thêm trên [[wikitech:API Portal/Deprecation|trang dự án]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.21|MediaWiki]]
'''Chuyên sâu'''
* [[m:Special:MyLanguage/WMDE Technical Wishes|Nhóm Mong muốn – Kỹ thuật của WMDE]] đang xem xét cải tiến [[m:WMDE Technical Wishes/References/VisualEditor automatic reference names|tên chú thích được tạo tự động trong Trình Soạn thảo Trực quan (VisualEditor)]]. Vui lòng xem qua [[m:WMDE Technical Wishes/References/VisualEditor automatic reference names#Proposed solutions|những giải pháp được đề xuất]] và tham gia vào [[m:Talk:WMDE Technical Wishes/References/VisualEditor automatic reference names#Request for comment|thảo luận này]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/13|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W13"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:51, ngày 23 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30268305 -->
== Bản tin Kỹ thuật: Tuần 14-2026 ==
<section begin="technews-2026-W14"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/14|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Phiên bản Beta của [[abstract:|Abstract Wikipedia]] một dự án Wikimedia mới không phụ thuộc ngôn ngữ, đã được khởi động vào tuần trước. Dự án cho phép các cộng đồng xây dựng các bài viết Wikipedia bằng ngôn ngữ mẹ đẻ của họ, và các thành viên khác có thể dễ dàng truy cập các bài viết đó bằng ngôn ngữ của riêng họ. Wiki này hoạt động dựa trên chỉ dẫn từ Wikifunctions và cũng dựa trên nội dung có cấu trúc từ Wikidata. [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-03-26|Đọc thêm]].
'''Cập nhật cho biên tập viên'''
* Nhóm Phát triển đang tiến hành thử nghiệm A/B để đánh giá cho một thông điệp rõ ràng hơn, thân thiện hơn với người dùng nhằm khuyến khích việc tạo tài khoản trên wiki. Hiện tại, khi người dùng di động chưa đăng nhập bắt đầu sửa đổi, họ sẽ thấy một thông báo cảnh báo khó chịu, có thể khiến cho họ có cảm giác đột ngột và nản lòng. Điều này cũng làm cho việc sửa đổi bằng tài khoản tạm thời trở thành mặc định thay vì khuyến khích việc tạo tài khoản. Thử nghiệm đang được thực hiện trên mười trang Wikipedia, bao gồm tiếng Ả Rập, tiếng Pháp, tiếng Tây Ban Nha và tiếng Đức. [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#2. Improve logged-out warning message (T415160)|Đọc thêm]].
* Nhóm Ứng dụng Wikimedia đang mời mọi người đóng góp ý kiến về [[mw:Special:MyLanguage/Wikimedia Apps/Team/Future of Editing on the Mobile Apps|việc sửa đổi trên ứng dụng Wikipedia dành cho thiết bị di động nên hoạt động như thế nào]]. Thảo luận tập trung vào việc cải thiện cách người dùng truy cập công cụ sửa đổi khi họ nhấn vào nút "Sửa đổi". Đây là một phần trong nỗ lực rộng lớn hơn nhằm chuyển đổi những người đọc mà có hứng thú với việc sửa đổi sang một con đường thân thiện hơn với người dùng để có thể bắt đầu đóng góp.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:45}} {{PLURAL:45|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến việc lấy chú thích từ kho lưu trữ báo chí lớn [https://www.newspapers.com Newspapers.com] không còn hoạt động, do bị chặn trong các yêu cầu của [[mw:Special:MyLanguage/Citoid|Citoid]], nay đã được khắc phục. [https://phabricator.wikimedia.org/T419903]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.22|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/14|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W14"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:25, ngày 30 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30329462 -->
== Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) ==
Hello everyone,
This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>).
'''The Change:'''<br />
Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]].
We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''.
'''What You Need To Do:'''<br />
To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search.
'''Deadline:'''<br />
We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles.
Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[Thành viên:MediaWiki message delivery|MediaWiki message delivery]] ([[Thảo luận Thành viên:MediaWiki message delivery|thảo luận]]) 17:11, ngày 3 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:ZI Jony@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29941252 -->
== Bản tin Kỹ thuật: Tuần 15-2026 ==
<section begin="technews-2026-W15"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/15|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Help:Extension:CampaignEvents|Phần mở rộng CampaignEvents]] nay có thêm tính năng mới nhằm thiết lập mục tiêu nhóm, nhằm cho phép những người tổ chức thiết lập và theo dõi mục tiêu sự kiện chẳng hạn như số lượng bài viết được tạo và số lượng người tham gia đóng góp theo thời gian thực. Tương tự, những người tham gia có thể cùng nhau hướng tới các mục tiêu chung và chứng kiến tác động tập thể của họ khi sự kiện diễn ra. Tính năng này hiện đã có trên tất cả các wiki của Wikimedia. Tìm hiểu thêm trong [[mw:Special:MyLanguage/Help:Extension:CampaignEvents/Registration/Collaborative contributions#Goal setting|trang tài liệu này]].
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Mục Mong muốn cộng đồng]] Tính năng [[mw:Special:MyLanguage/Help:Watchlist labels|gán nhãn danh sách theo dõi]] mới (được công bố trong [[m:Special:MyLanguage/Tech/News/2026/07|Bản tin Kỹ thuật 2026-07]]) nay có sẵn thông qua Trình Soạn thảo Trực quan, trình soạn thảo mã nguồn, và biểu tượng 'sao theo dõi' (hoặc liên kết theo dõi, đối với các giao diện không có biểu tượng hình sao). Trước đây việc gán nhãn như vậy chỉ có thể thực hiện được thông qua [[Special:EditWatchlist|EditWatchlist]]. Ở cả ba nơi đó, đây đều sẽ là trường mới ngay sau sau trường thời điểm hết hạn theo dõi.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà trang thảo luận trên thiết bị di động dùng Parsoid không thể sử dụng được sau đề mục không có tiêu đề, nay đã được giải quyết. [https://phabricator.wikimedia.org/T419171]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Tính năng chú thích phụ]], một tính năng cho phép biên tập viên thêm thông tin chi tiết vào nguồn tham khảo hiện có mà không cần nhân bản nó, sẽ được triển khai dần dần tới [[phab:T414094|nhiều trang wiki hơn]] vào cuối năm nay. Các wiki sử dụng tiện ích [[mw:Special:MyLanguage/Reference Tooltips|Chú thích nổi]] được khuyến khích cập nhật phiên bản của mình (thường là tại [[m:MediaWiki:Gadget-ReferenceTooltips.js|MediaWiki:Gadget-ReferenceTooltips.js]] như được hiển thị tại [https://en.wikipedia.org/w/index.php?diff=1344408362 đây]) để đảm bảo khả năng tương thích. Các tiện ích khác liên quan đến nguồn tham khảo khác cũng có thể bị ảnh hưởng. [https://phabricator.wikimedia.org/T416304]
* Tất cả các phiên bản của Wikinews sẽ bị đóng và chuyển sang chế độ chỉ đọc vào ngày 4 tháng 5 năm 2026. Mọi nội dung vẫn sẽ có thể truy cập được, nhưng sẽ không thể thêm bất kỳ sửa đổi hoặc bài viết mới nào. Việc đóng này đã được Hội đồng Quản trị của Quỹ Wikimedia phê duyệt sau những cuộc thảo luận kéo dài. [[m:Wikimedia Foundation Board noticeboard#Board of Trustees Approves Closure of Wikinews|Đọc thêm]].
* [[:mw:Special:MyLanguage/API:Action API|API Tác vụ]] có một số kiểu định dạng đầu ra được yêu cầu. Một trong số chúng, <bdi lang="zxx" dir="ltr"><code><nowiki>format=php</nowiki></code></bdi>, sẽ sớm bị loại bỏ. Vui lòng đảm bảo rằng các tập lệnh hoặc bot của bạn sử dụng [[mw:Special:MyLanguage/API:Data formats#Output|kiểu định dạng JSON]]. Việc loại bỏ này sẽ chỉ ảnh hưởng đến một số lượng rất nhỏ các tập lệnh người dùng và bot. [https://phabricator.wikimedia.org/T118538]
* Trang [[Special:NamespaceInfo|Đặc biệt:NamespaceInfo]] nay có chứa phần viết tắt không gian tên. Ví dụ "WP" cho không gian tên "Project" ("Wikipedia") trên Wikipedia tiếng Đức. [https://phabricator.wikimedia.org/T381455]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.23|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/15|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W15"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:19, ngày 6 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30362761 -->
== Bản tin Kỹ thuật: Tuần 16-2026 ==
<section begin="technews-2026-W16"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/16|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Các biên tập viên có kinh nghiệm được mời tham gia [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Main_Page thử nghiệm] tính năng [[mw:Special:MyLanguage/Article guidance|Hướng dẫn bài viết]], được thiết kế để giúp các biên tập viên ít kinh nghiệm hơn tạo ra các bài viết Wikipedia có cấu trúc tốt và phù hợp với quy định. Hướng dẫn thử nghiệm [[mw:Special:MyLanguage/Article guidance/Test feature guide|có sẵn tại đây]]. Ngoài ra, sau khi xem xét [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Category:Pages_using_article_guidance bản tóm tắt này], vui lòng cung cấp phản hồi trên [[mw:Talk:Article guidance|trang thảo luận của dự án]]. Dựa trên ý kiến đóng góp của bạn, tính năng này sẽ được tinh chỉnh và chuyển giao cho các trang Wikipedia thí điểm để biên dịch và điều chỉnh cho thích hợp. Hãy xem qua [[c:File:Article Guidance workflow demo - April 2026.webm|video]] giải thích về tính năng này.
'''Cập nhật cho biên tập viên'''
* Trên hầu hết các trang wiki, tất cả thành viên tự xác nhận nay có thể sử dụng trang [[Special:ChangeContentModel|Đặc biệt:ChangeContentModel]] để [[mw:Special:MyLanguage/Help:ChangeContentModel|tạo trang mới với kiểu nội dung tùy chỉnh]], chẳng hạn như danh sách gửi thông báo rộng rãi, giúp cho định dạng trang tùy chỉnh trở nên dễ tiếp cận hơn. Kiểm tra [[Special:ListGroupRights|Đặc biệt:Quyền nhóm người dùng]] để biết trạng thái trên wiki của bạn. [https://phabricator.wikimedia.org/T248294]
* Nhóm Phát triển đã khởi động một [[mw:Special:MyLanguage/Contributors/Account_Creation_Experiments|thử nghiệm tạo tài khoản]] để đánh giá xem việc thêm nút tạo tài khoản vào phần đầu trang web trên thiết bị di động có làm tăng số lượng người đăng ký tài khoản mới và khuyến khích nhiều người dùng thiết bị di động đóng góp vào wiki hay không. Thử nghiệm hiện đang được thực hiện trên Wikipedia tiếng Hindi, tiếng Indonesia, tiếng Bengali, tiếng Thái và tiếng Do Thái, và nhắm mục tiêu vào 10% người dùng web trên di động chưa đăng nhập.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố có thể khiến Trình Soạn thảo Trực quan bị kẹt khi tải trên các thiết bị Windows đã tắt hiệu ứng hoạt ảnh, nay đã được giải quyết. [https://phabricator.wikimedia.org/T382856]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Kể từ cuối tuần này, {{int:group-abusefilter}} đã bật tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]] sẽ sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] làm trình soạn thảo tại [[Special:AbuseFilter|Đặc biệt:Bộ lọc sai phạm]]. Đây là một phần trong nỗ lực rộng lớn hơn nhằm mang lại trải nghiệm người dùng nhất quán hơn trên tất cả các trình soạn thảo. [https://phabricator.wikimedia.org/T399673][https://phabricator.wikimedia.org/T419332]
* Các công cụ và bot truy cập vào [[mw:Special:MyLanguage/Notifications/API|API Thông báo]] (<bdi lang="zxx" dir="ltr"><code><nowiki>action=query&meta=notifications</nowiki></code></bdi>) sẽ cần phải cập nhật quyền OAuth hoặc BotPassword của mình để bao gồm cả quyền truy cập vào các thông báo riêng tư. [https://phabricator.wikimedia.org/T421991]
* Do việc nâng cấp thư viện, việc liệt kê danh sách trên các trang thể loại có thể hiển thị không đúng theo thứ tự bắt đầu từ thứ Hai, ngày 20 tháng 4. Một kịch bản chuyển đổi sẽ được chạy để khắc phục điều này, và sẽ mất từ vài giờ đến vài ngày tùy thuộc vào kích thước của wiki (tối đa một tuần đối với Wikipedia tiếng Anh). [https://phabricator.wikimedia.org/T422544]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.24|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/16|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W16"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:19, ngày 13 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30380527 -->
== Bản tin Kỹ thuật: Tuần 17-2026 ==
<section begin="technews-2026-W17"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/17|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Sau hai năm phát triển, [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]], hay còn được biết đến với tên [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror 6]], sẽ được chính thức đưa ra khỏi giai đoạn beta vào thứ 3, ngày 21 tháng 4. Nó mang lại khả năng đọc mã nguồn và mã wiki tốt hơn, giảm thiểu lỗi đánh máy cùng những [[mw:Special:MyLanguage/Help:Extension:CodeMirror|lợi ích]] khác cho tất cả người dùng sử dụng trình tô sáng cú pháp tiêu chuẩn. Xin gửi lời cảm ơn chân thành đến tình nguyện viên [https://phabricator.wikimedia.org/p/Bhsd/ Bhsd] vì đã phát triển nhiều tính năng mới, bao gồm [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Code folding|gấp mã nguồn]], [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Autocompletion|tự động điền]], và [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Linting|kiểm tra lỗi]]. [https://phabricator.wikimedia.org/T259059]
* Một bản cập nhật lớn dành cho ứng dụng Wikipedia trên iOS hiện đang được triển khai, nhằm thiết kế lại giao diện để phù hợp với thiết kế trực quan "Liquid Glass" mới nhất của Apple. [https://apps.apple.com/us/app/wikipedia/id324715238 Hãy tải phiên bản mới nhất] và khám phá bản cập nhật này.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4 Reading lists|Danh sách đọc]] là một tính năng cho phép người đọc lưu các bài viết vào danh sách để đọc sau. Tính năng này hiện đang trong giai đoạn thử nghiệm beta trên Wikipedia tiếng Ả Rập, tiếng Pháp, tiếng Indonesia, tiếng Việt và tiếng Trung, và được bật mặc định cho tất cả các tài khoản mới trên tất cả các trang Wikipedia.
* Một thử nghiệm khám phá việc mở rộng [[mw:Special:MyLanguage/Readers/Reader Growth/Mobile page previews|tính năng Xem trước Trang cho trang web di động]] sẽ được triển khai trong tuần ngày 20 tháng 4 trên các trang Wikipedia tiếng Ả Rập, tiếng Anh, tiếng Pháp, tiếng Ý, tiếng Ba Lan và tiếng Việt. Tính năng Xem trước Trang là pop-up hiển thị hình thu nhỏ kèm liên kết mở toàn bộ bài viết từ liên kết xanh, từ đó cải thiện khả năng tìm kiếm nội dung. Tính năng này hiện đã có sẵn trên máy tính để bàn và trong ứng dụng. [[m:Special:MyLanguage/List of experiments in Product and Technology#Template|Đọc thêm về thử nghiệm này cùng những thử nghiệm khác]].
* Trên một số trang wiki, những biên tập viên đã đăng nhập nhưng chưa [[mw:Special:MyLanguage/Help:Email confirmation|xác nhận địa chỉ thư điện tử (email) của mình]] nay có thể nhìn thấy một biểu ngữ khuyến khích họ làm vậy. Việc xác nhận địa chỉ email cho phép người dùng khôi phục quyền truy cập vào tài khoản nếu họ bị mất quyền truy cập đó. [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security#Encouraging users to confirm their email addresses|Tìm hiểu thêm]]. [https://phabricator.wikimedia.org/T421366]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:15}} {{PLURAL:15|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà việc sửa đổi các trang wiki rất lớn trong trình soạn thảo mã wiki 2017 gây ra hiện tượng tải chậm, bị trễ khi xem trước và cuộn, cũng như các vấn đề về hiệu suất khi chọn, cắt hay dán nội dung, nay đã được giải quyết. [https://phabricator.wikimedia.org/T184857]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Là một phần của việc nâng cấp [[mw:Special:MyLanguage/Help:Extension:CodeMirror|CodeMirror]] từ tính năng beta lên làm tính năng chính thức, tất cả người dùng sẽ sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] làm trình tô sáng cú pháp khi sửa đổi các trang nội dung bằng JavaScript, CSS, JSON, Vue và Lua. [https://phabricator.wikimedia.org/T419332]
* Dịch vụ <code>mirrors.wikimedia.org</code> dành cho người dùng Debian và Ubuntu sẽ kết thúc hỗ trợ và ngừng hoạt động vào ngày 15 tháng 5. Tài nguyên dịch vụ này sẽ được thay thế bằng những tùy chọn mới và tốt hơn. Một số người dùng có thể cần phải chuyển sang máy chủ khác, quá trình này sẽ mất khoảng một phút. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/LJYRIS4WB66HIRCAO4GIDTXCMDVZRBMA/ Bạn có thể đọc thêm]. [https://phabricator.wikimedia.org/T416707]
* Bảng <bdi lang="zxx" dir="ltr"><code><nowiki>image</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>oldimage</nowiki></code></bdi> sẽ bị loại bỏ khỏi [[wikitech:Help:Wiki Replicas|wikireplicas]]. Nếu công cụ hoặc truy vấn của bạn truy cập trực tiếp vào <bdi lang="zxx" dir="ltr"><code><nowiki>image</nowiki></code></bdi> hoặc <bdi lang="zxx" dir="ltr"><code><nowiki>oldimage</nowiki></code></bdi>, vui lòng cập nhật chúng để sử dụng bảng <bdi lang="zxx" dir="ltr"><code><nowiki>file</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>filerevision</nowiki></code></bdi> trước ngày 28 tháng 5. [https://phabricator.wikimedia.org/T28741]
* Sau việc triển khai những giới hạn tần suất truy cập API toàn cục gần đây đối với lưu lượng truy cập không xác định, Quỹ Wikimedia sẽ tiếp tục nỗ lực đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng hợp lý cơ sở hạ tầng]] bằng cách áp dụng giới hạn toàn cục đối với lưu lượng truy cập API xác định kể từ tuần cuối cùng của tháng 4. Những giới hạn này được cố ý đặt ở mức cao nhất có thể để giảm thiểu tác động đến cộng đồng. Các bot chạy trong Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào hiện sẽ không bị ảnh hưởng. Dù vậy, tất cả các nhà phát triển được khuyến cáo nên tuân theo những thực tiễn tốt nhất đã được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn tần suất]] và [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits/FAQ|Câu hỏi Thường gặp]].
* [[mw:Special:MyLanguage/Attribution API|API Ghi công]] hiện có sẵn dưới dạng [[mw:Special:MyLanguage/Wikimedia APIs/Stability policy|tính năng beta]]. API này lấy thông tin nhằm ghi công các bài viết và tập tin phương tiện của Wikimedia bất kỳ chỗ nào mà chúng được sử dụng. Trang tài liệu tham khảo có sẵn thông qua trang đặc biệt Chỗ thử REST có mặt trên tất cả các trang wiki của Wikimedia (chẳng hạn như [https://en.wikipedia.org/w/index.php?api=attribution.v0-beta&title=Special%3ARestSandbox chỗ thử REST trên Wikipedia tiếng Anh]). Hãy chia sẻ phản hồi của bạn trên [[mw:Talk:Attribution API|trang thảo luận dự án]].
* Tuần này không có phiên bản MediaWiki mới nào.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/17|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W17"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:00, ngày 20 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30432763 -->
== Request for comment (global AI policy) ==
<bdi lang="en" dir="ltr" class="mw-content-ltr">
Apologies for writing in English. {{int:Please-translate}}
A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}}
[[Thành viên:MediaWiki message delivery|MediaWiki message delivery]] ([[Thảo luận Thành viên:MediaWiki message delivery|thảo luận]]) 00:58, ngày 26 tháng 4 năm 2026 (UTC)
</bdi>
<!-- Tin nhắn của Thành viên:Codename Noreste@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 -->
== Bản tin Kỹ thuật: Tuần 18-2026 ==
<section begin="technews-2026-W18"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/18|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Sẽ có một thay đổi về cách người dùng mới được tự động xác nhận nhằm cải thiện khả năng bảo vệ chống phá hoại. Hiện tại, người dùng đã mở tài khoản được vài ngày và thực hiện được một vài sửa đổi được tự động thêm vào nhóm [[{{int:grouppage-autoconfirmed/{{CONTENTLANGUAGE}}}}|{{int:group-autoconfirmed}}]]. Cấu hình này thường bị một số thành viên phá hoại lợi dụng bằng cách tạo tài khoản và chỉ bắt đầu sử dụng nó sau một khoảng thời gian. Để giảm thiểu điều này, trong tuần tới cấu hình này sẽ được cập nhật sao cho – nhằm mục đích được tự động xác nhận – tuổi của tài khoản sẽ được tính từ sửa đổi đầu tiên của họ, thay vì ngày tạo tài khoản. Giá trị số của ngưỡng tuổi vẫn sẽ được giữ nguyên. Thay đổi này sẽ chỉ được triển khai đến các wiki yêu cầu ít nhất một sửa đổi là một phần trong điều kiện để có thể được tự động xác nhận. [https://phabricator.wikimedia.org/T418484]
* Tất cả người dùng Wikipedia đã tạo tài khoản mới và những người đã kích hoạt tùy chọn "tự động bật hầu hết các tính năng beta" trong tùy chọn của mình giờ đây có thể sử dụng tính năng beta [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4 Reading lists|danh sách đọc]] để lưu bài viết để đọc sau. Điều này giúp người dùng có thể sắp xếp mọi sở thích đọc ở một nơi để có thể dễ dàng truy cập.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho hình ảnh trong hộp thông tin có khoảng đệm quá lớn trên Firefox đã được giải quyết. [https://phabricator.wikimedia.org/T423676]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Nhắc lại, trong tuần này giới hạn tần suất truy cập API toàn cục sẽ được áp dụng cho lưu lượng truy cập API đã được xác định. Điều này giúp đảm bảo việc [[mw:MediaWiki Product Insights/Responsible Reuse|sử dụng cơ sở hạ tầng một cách hợp lý]]. Các bot chạy trong Toolforge/WMCS hoặc có quyền người dùng bot trên bất kỳ wiki nào hiện tại sẽ không bị ảnh hưởng. Dù vậy, tất cả các nhà phát triển được khuyến cáo tuân theo cách sử dụng thực tiễn được cập nhật. Để biết thêm thông tin, bao gồm giới hạn tần suất truy cập thực tế, xem [[mw:Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn tần suất truy cập]] và [[mw:Wikimedia APIs/Rate limits/FAQ|Câu hỏi Thường gặp]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.26|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/18|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W18"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:06, ngày 27 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30458046 -->
== Bản tin Kỹ thuật: Tuần 19-2026 ==
<section begin="technews-2026-W19"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/19|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Nhóm [[mw:Special:MyLanguage/Article guidance|Chỉ dẫn bài viết]] mời các biên tập viên có kinh nghiệm từ [[mw:Special:MyLanguage/Article guidance/Pilot wikis and collaborators|các trang Wikipedia thí điểm]]—tiếng Ả Rập, tiếng Bengal, tiếng Nhật, tiếng Bồ Đào Nha, tiếng Ba Tư, tiếng Thổ Nhĩ Kỳ, tiếng Anh đơn giản, tiếng Tây Ban Nha và tiếng Pháp—hỗ trợ biên dịch và điều chỉnh [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Category:Pages_using_article_guidance các mẫu dàn ý này]. Những dàn ý này sẽ giúp hướng dẫn các biên tập viên tạo ra các bài viết có cấu trúc tốt, rõ ràng và tuân theo quy định khi sử dụng [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Special:NewArticle tính năng này] dự kiến ra mắt vào tháng 5 năm 2026. Hiện có [[mw:Special:MyLanguage/Article guidance#Adapting a sample outline in a Wikipedia|hướng dẫn đơn giản]] về cách dịch và điều chỉnh những dàn ý này.
'''Cập nhật cho biên tập viên'''
* [[:m:Special:MyLanguage/Product and Technology Advisory Council|Hội đồng Cố vấn Sản phẩm và Công nghệ]] đã công bố [[:m:Special:MyLanguage/Product and Technology Advisory Council/May 2026 draft PTAC recommendation for feedback|bản thảo đề xuất]] về một mô hình mà các chi nhánh có thể thực hiện theo khi đóng góp vào lĩnh vực kỹ thuật. Mời các thành viên cộng đồng để lại phản hồi về đề xuất này trước ngày 8 tháng 5 [[:m:Talk:Product and Technology Advisory Council/May 2026 draft PTAC recommendation for feedback|trên trang thảo luận]].
* Số lượng tùy chọn về kích thước hình thu nhỏ có sẵn trong MediaWiki sẽ được giảm xuống còn ba tùy chọn tiêu chuẩn—Nhỏ (180px), Trung bình (250px), và Lớn (400px), là một phần của nỗ lực không ngừng nhằm cải thiện hiệu suất và giảm tải cho các dịch vụ hình thu nhỏ. Do đó, các tùy chọn hiện có sẽ được ánh xạ về kích thước mới gần nhất (ví dụ, những lựa chọn kích thước nhỏ hơn như 120px hoặc 150px sẽ hiển thị dưới kích thước 180px, trong khi những lựa chọn lớn hơn như 300px hoặc 360px sẽ hiển thị dưới kích thước 400px). Giao diện tùy chọn sẽ sớm được cập nhật để áp dụng những thay đổi này và người dùng không muốn áp dụng hoặc để lại phản hồi có thể thực hiện điều đó. [https://phabricator.wikimedia.org/T424909]
* Từ giờ trở đi, ngay cả khi một quyền tự động hết hạn, người dùng sẽ nhận được thông báo Echo tương tự như thông báo tiêu chuẩn về thay đổi quyền. Có một điểm khác biệt giữa thông báo này và [[m:Special:MyLanguage/Global reminder bot|Global reminder bot]] ở chỗ bot sẽ nhắc người dùng một tuần ''trước khi'' quyền đó hết hạn, để họ có thể gia hạn quyền.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:32}} {{PLURAL:32|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến bộ chọn ngôn ngữ ULS trong [[m:Special:Translate|Đặc biệt:Dịch]] cuộn dọc khi không cần thiết, đã được giải quyết. Trước đây, khi người dùng mở menu thả xuống "Dịch sang tiếng Anh" và nhập một số từ nhất định, hộp thoại sẽ cuộn dọc xuống vài pixel ngay cả khi có đủ không gian để hiển thị tất cả kết quả. Menu thả xuống giờ không còn dịch chuyển một cách không cần thiết khi lọc ngôn ngữ nữa. [https://phabricator.wikimedia.org/T358864]
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]], tính năng cho phép bạn xem các danh sách theo dõi của bạn từ nhiều trang wiki trên cùng một trang, tiếp tục được cải thiện. Ví dụ, danh sách theo dõi cho các trang Wikibase chẳng hạn như [[:d:|Wikidata]] nay hỗ trợ phần tử [[mw:Special:MyLanguage/Extension:EntitySchema|EntitySchema]] để có thể theo dõi tốt hơn. Chế độ Cập nhật Trực tiếp nay làm mới trang đặc biệt sau mỗi 60 giây để tuân theo [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|giới hạn tần suất truy vấn API toàn cục]] được cập nhật để cải thiện khả năng phản hồi theo thời gian thực. Ngoài ra, một lỗi về hướng khiến liên kết hiển thị là "thay đổi 3" thay vì "3 thay đổi" trong danh sách có hướng hỗn hợp đã được giải quyết. [https://phabricator.wikimedia.org/T415450][https://phabricator.wikimedia.org/T424422][https://phabricator.wikimedia.org/T418091]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Giai đoạn thứ hai của [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|giới hạn tần suất truy vấn API toàn cục]] đã được triển khai để giảm [[diffblog:2026/03/26/quo-vadis-crawlers-progress-and-whats-next-on-safeguarding-our-infrastructure/|tác động của việc thu thập dữ liệu sử dụng AI]] và đảm bảo quyền truy cập hợp lý, bền vững vào các tài nguyên của Wikimedia, ưu tiên lưu lượng truy cập của con người và lưu lượng phù hợp với sứ mệnh. [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits#Limits|Giới hạn]] được chuyển từ mỗi giờ sang mỗi phút, tạo ra những mô hình lưu lượng truy cập mượt mà hơn và tải API dễ đoán hơn. Người dùng cộng đồng dự kiến không bị ảnh hưởng, và không cần phải thực hiện bất kỳ hành động gì. Các dấu hiệu ban đầu cho thấy một số người yêu cầu dựa trên User-Agent đang điều chỉnh hành vi vi, và khoảng 64% lưu lượng truy vấn API tự động đã được xác định. Việc giám sát vẫn tiếp tục, và Wikimedia Enterprise vẫn sẵn sàng để hỗ trợ thương mại.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.27|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/19|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W19"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:43, ngày 4 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30498077 -->
== Bản tin Kỹ thuật: Tuần 20-2026 ==
<section begin="technews-2026-W20"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/20|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Cộng đồng Kỹ thuật đã xuất bản một [[m:Special:MyLanguage/Community Wishlist/How to write a good wish|bộ hướng dẫn mới]] giải thích cách những mong muốn trên Danh sách Mong muốn Cộng đồng được phân loại và xếp ưu tiên. Tài liệu này được tạo ra nhằm mục đích giúp những người đóng góp viết những đề xuất mang tính mạnh mẽ hơn bằng cách làm rõ những yếu tố ảnh hưởng đến việc quyết định ưu tiên. Ngoài yếu tố số phiếu, hướng dẫn này còn nêu bật những yếu tố khác cần xem xét chẳng hạn như tác động tiềm tàng đến cộng đồng khi quyết định nên ưu tiên mong muốn nào.
'''Cập nhật cho biên tập viên'''
* Nhóm Phát triển Người đọc đang khởi động một thử nghiệm để thử [[mw:Special:MyLanguage/Readers/Reader_Growth/Share_Card|tính năng Chia sẻ Thẻ]] mới cho phép người đọc tạo những thẻ mang tính hấp dẫn về mặt trực quan từ các bài viết hoặc các đề mục bài viết và chia sẻ chúng theo cách trực tuyến, mỗi thẻ liên kết ngược lại về bài viết gốc để giúp mở rộng lượng người đọc và khả năng tìm kiếm bài viết. Thử nghiệm A/B dành riêng cho thiết bị di động này sẽ được cung cấp cho một phần người đọc trên Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Việt và tiếng Anh để có thể hiểu rõ hơn về thói quen đọc và chia sẻ, và dự kiến bắt đầu từ tuần ngày 18 tháng 5 và kéo dài trong bốn tuần.
* Ứng dụng Wikipedia trên Android và iOS gần đây đã phát hành [[mw:Special:MyLanguage/Wikimedia_Apps/Team/25th_Birthday_Reading_Challenge|thử thách đọc trong 25 ngày]] lên phiên bản Beta, là một phần của nỗ lực thúc đẩy người đọc tham gia bằng cách khuyến khích người dùng hoàn thành các mốc đọc. Để theo dõi chuỗi đọc của mình trong suốt quá trình thử thách, người dùng Ứng dụng có thể thêm tiện ích Em bé Globe vào màn hình chính của mình. Thử thách sẽ chính thức bắt đầu vào ngày 11 tháng 5.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:17}} {{PLURAL:17|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho tùy chọn toàn cục bật tính năng nổi bật cú pháp trong mã wiki có thể bất ngờ tự tắt ngay sau khi được bật lên, nay đã được giải quyết. [https://phabricator.wikimedia.org/T425286]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Octicons-tools.svg|12px|link=|alt=|Đề mục nâng cao]] Mô đun ResourceLoader <bdi lang="zxx" dir="ltr"><code><nowiki>mediawiki.ui.input</nowiki></code></bdi>, mô đun lỗi thời từ [[m:Special:MyLanguage/Tech/News/2023/39|tháng 9 năm 2023]], sẽ bị loại bỏ trong tuần này. Hiện có [[mw:Special:MyLanguage/Codex/Migrating_from_MediaWiki_UI|hướng dẫn về cách chuyển từ UI MediaWiki sang Codex]] cho bất kỳ công cụ nào sử dụng nó. [https://phabricator.wikimedia.org/T420125]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.2|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/20|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W20"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:20, ngày 11 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30524429 -->
== Bản tin Kỹ thuật: Tuần 21-2026 ==
<section begin="technews-2026-W21"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/21|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Nhóm Abstract Wikipedia đã xác định năm wiki thí điểm tiềm năng để đánh giá mức độ quan tâm của họ đối với việc áp dụng tóm tắt bài viết trên wiki của mình. Các wiki thí điểm là Wikipedia tiếng Malayalam, tiếng Bengali, tiếng Dagbani, tiếng Ả Rập và tiếng Indonesia. Thời gian nhận phản hồi sẽ kéo dài đến hết ngày 22 tháng 5. Nếu cộng đồng của bạn quan tâm đến việc trở thành wiki thí điểm, [[m:Talk:Abstract Wikipedia|hãy cho chúng tôi biết trên Meta]].
'''Cập nhật cho biên tập viên'''
* Một thử nghiệm nhằm hiển thị [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|Danh sách Đọc]] cho người đọc chưa đăng nhập trên trang web dành cho thiết bị di động sẽ được triển khai vào ngày 18 tháng 5 trên Wikipedia tiếng Đức, tiếng Tây Ban Nha, tiếng Ý, tiếng Bồ Đào Nha, tiếng Ba Lan, tiếng Hà Lan, tiếng Thổ Nhĩ Kỳ và tiếng Urdu Wikipedias, và sẽ kéo dài trong vòng một tháng. Nỗ lực này nhằm hỗ trợ những mục tiêu rộng hơn giúp người đọc lưu và sắp xếp các bài viết để đọc sau, đồng thời khuyến khích những thói quen có thể giúp dẫn đến việc đóng góp cho Wikipedia trong tương lai.
* Để hỗ trợ cho nút đánh dấu trong tính năng beta Danh sách Đọc, menu "Công cụ > Tác vụ" đã được cập nhật để hiển thị các biểu tượng, bao gồm cả chỉ báo ngôi sao theo dõi giúp biên tập viên xác định những bài viết được theo dõi tạm thời. Các biểu tượng nay cũng khớp với các biểu tượng được sử dụng trên thiết bị di động, cải thiện tính nhất quán trên các nền tảng. Thay đổi này hiện chỉ giới hạn ở menu tác vụ và chủ yếu ảnh hưởng đến các biên tập viên có quyền thành viên nâng cao. [https://phabricator.wikimedia.org/T426008]
* [[mw:Special:MyLanguage/VisualEditor/Suggestion Mode|Chế độ Đề xuất]] đã được phát hành dưới dạng [[w:en:A/B test|thử nghiệm A/B]] dành cho biên tập viên mới trên trang web dành cho di động tại [[phab:T421189|~15 trang Wikipedia]]. Thử nghiệm này sẽ đo lường tác động của Chế độ Đề xuất đến tỷ lệ những phiên sửa đổi trên trang web dành cho di động của người mới tạo ra những sửa đổi mang tính xây dựng (không bị lùi lại) trên bài viết. Thử nghiệm này cũng sẽ đánh giá tác động của tính năng này đến việc giữ chân người dùng, đồng thời theo dõi những thay đổi về tỷ lệ lùi sửa và cấm.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề trong ứng dụng Wikipedia dành cho Android khi hình ảnh đôi lúc không thể tải được sau khi mở thông báo danh sách đọc đề xuất, nay đã được giải quyết. [https://phabricator.wikimedia.org/T418231]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[mw:Special:MyLanguage/Wikidata Platform|Nhóm Nền tảng Wikidata]] đã công bố [[d:Special:MyLanguage/Wikidata:SPARQL query service/WDQS backend update/Backend Replacement|đề xuất thay thế backend]] và [[wikitech:Wikidata Query Service/WDQS Architecture re-design|kiến trúc kỹ thuật]] kèm theo cho việc di chuyển Dịch vụ Truy vấn Wikidata (WDQS) khỏi Blazegraph. Chúng tôi hoan nghênh mọi phản hồi về đề xuất này cho đến hết ngày 25 tháng 5 năm 2026, đặc biệt là về những thiếu sót tiềm tàng và tác động đến những trường hợp sử dụng (use case) nâng cao. Các thành viên trong cộng đồng Wikidata và người dùng WDQS cũng được khuyến khích giúp xác định những công cụ và quy trình làm việc có tác động lớn cần được chú ý trên [[d:Wikidata:SPARQL query service/WDQS backend update/High-Impact Use Cases|trang này]]. Bạn có thể chia sẻ những phản hồi của mình trên [[d:Wikidata talk:SPARQL query service/WDQS backend update|trang thảo luận về Di chuyển]] hoặc trong [[d:Special:MyLanguage/Wikidata:Blazegraph Migration Office Hours|giờ làm việc tiếp theo]]. Xem [[d:Special:MyLanguage/Wikidata:Wikidata Platform team/Newsletter|bản tin của nhóm WDP]] để biết thêm chi tiết.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.3|MediaWiki]]
'''Chuyên sâu'''
* Trên Wikipedia tiếng Anh, tiếng Pháp, tiếng Nhật và một số trang Wikipedia khác, một [[diffblog:2025/09/02/better-detecting-bots-and-replacing-our-captcha/|thử nghiệm hCaptcha]], một dịch vụ phát hiện bot từ bên thứ ba, đã được thực hiện. Thử nghiệm này cho thấy hCaptcha phát hiện và ngăn chặn hiệu quả một số hoạt động tự động không thiện ý, bằng cách tự hoạt động lẫn bằng cách cung cấp tín hiệu cho [[w:en:Wikipedia:Village pump (technical)/Archive 225#Introducing SuggestedInvestigations|kiểm định viên và tiếp viên]] để kiểm tra. Vì kết quả thử nghiệm cho kết quả tích cực, hCaptcha sẽ được triển khai trên tất cả các wiki trong một vài tuần tới đây. [[mw:Special:MyLanguage/Product Safety and Integrity/Anti-abuse signals/hCaptcha|Xem trang dự án hCaptcha]] để biết thông tin kỹ thuật về việc triển khai và bảo vệ quyền riêng tư. [[diffblog:2026/05/04/better-detecting-bots-and-replacing-our-captcha-part-2/|Tìm hiểu thêm]].
* Bản cập nhật Công nghệ Cộng đồng số mới nhất hiện đã có sẵn, trong đó có những tiến bộ trong một số sáng kiến thuộc Danh sách Mong muốn Cộng đồng, bao gồm việc mở rộng Danh sách Đọc từ ứng dụng di động lên trang web, hỗ trợ thêm ngôn ngữ mới cho "Ai đã viết nó" (Who Wrote That) và Bảng điều khiển Cá nhân, cải thiện khả năng hiển thị 3D và Biểu đồ, cũng như những công việc sắp tới về việc sắp xếp trang thảo luận, khả năng phát âm thanh và quy trình sửa đổi. Bản cập nhật cũng chia sẻ những ưu tiên hiện tại, xu hướng trạng thái danh sách mong muốn và cơ hội để cộng đồng phản hồi về các lĩnh vực trọng tâm trong tương lai cũng như Kế hoạch Hàng năm 2026–2027 của Quỹ Wikimedia. [[m:Special:MyLanguage/Community Wishlist/Updates#May 13, 2026: Latest updates from the Community Tech team|Đọc toàn bộ nội dung bản tin để biết thông tin chi tiết]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/21|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W21"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:21, ngày 18 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30539262 -->
== Bản tin Kỹ thuật: Tuần 22-2026 ==
<section begin="technews-2026-W22"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/22|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Sau [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#LOWM|thử nghiệm tạo tài khoản thành công]], tin nhắn được cải tiến dành cho những sửa đổi của thành viên chưa đăng nhập sẽ được triển khai đến tất cả các wiki của Wikimedia vào tuần đầu tiên của tháng 6. Thay đổi này sẽ chỉ ảnh hưởng đến các thành viên chưa đăng nhập trên trang web di động khi mở một phiên sửa đổi. Việc cập nhật trải nghiệm này được thiết kế để làm rõ hơn việc khuyến khích tạo tài khoản mà vẫn cho phép người dùng sửa đổi bằng tài khoản tạm thời. Kết quả từ thử nghiệm cho thấy tỷ lệ tạo tài khoản tăng lên đáng kể, trong đó tỷ lệ này đối với người dùng nhìn thấy thông báo được cập nhật này đạt mức tăng khoảng 27%. Như dự đoán, khi càng nhiều người tạo tài khoản, số tài khoản tạm thời cũng giảm đi khoảng 16%. Thử nghiệm không cho thấy bất kỳ thay đổi nào đáng kể về tỷ lệ sửa đổi mang tính xây dựng hay bất cứ số liệu đóng góp nào khác được theo dõi. [https://phabricator.wikimedia.org/T424595]
'''Cập nhật cho biên tập viên'''
* Vì lý do bảo mật, thành viên của một số nhóm người dùng [[m:Special:MyLanguage/Mandatory two-factor authentication for users with some extended rights|bắt buộc phải bật xác thực hai yếu tố]] (2FA). Những thành viên thuộc những nhóm này sẽ không thể tắt đi yếu tố 2FA cuối cùng trên tài khoản của mình, và sẽ không thể thêm người dùng không có 2FA vào những nhóm này. Người dùng vẫn sẽ có thể thêm yếu tố xác thực mới hoặc loại bỏ chúng đi, miễn là có ít nhất một yếu tố được bật liên tục. Trong vòng vài tuần tới đây, người dùng không có 2FA sẽ bị loại bỏ khỏi những nhóm này. Đặc biệt, nó sẽ được áp dụng cho các hành chính viên. Xem tác vụ được liên kết để biết lịch triển khai. [https://phabricator.wikimedia.org/T423119][https://phabricator.wikimedia.org/T423120]
* [[m:Special:MyLanguage/WMDE Technical Wishes|Nhóm Mong muốn Kỹ thuật của WMDE]] sẽ chạy một [[w:vi:Thử nghiệm A/B|thử nghiệm A/B]] trên [[:phab:T415904|10 wiki]], nhằm thử nghiệm [[m:WMDE Technical Wishes/References/Reference Previews|những khả năng cải tiến cho tính năng Xem trước Chú thích]]. Thử nghiệm sẽ kéo dài ~2 tuần vào cuối tháng 5 / đầu tháng 6 và sẽ ảnh hưởng tới 10% người đọc trên máy tính đối với các wiki tham gia.
* Sau hai thử nghiệm thành công, nhóm Phát triển Người đọc sẽ cho ra mắt tính năng beta [[mw:Special:MyLanguage/Readers/Reader Growth/Image Browsing|Duyệt Hình ảnh]] trên tất cả các trang Wikipedia trên di động vào ngày 25 tháng 5. Điều này có nghĩa là bất kỳ ai đã bật mặc định tất cả các tính năng beta sẽ bắt đầu nhìn thấy tính năng này, và những người khác có thể đánh dấu hộp kiểm để bật tính năng này lên trong tùy chọn của họ. Tính năng beta này sẽ bao gồm một băng chuyền hiển thị tất cả hình ảnh của bài viết ở đầu bài viết, The beta feature will include a carousel of all an article's images at the top of the article, cùng khả năng điều khiển cho phép biên tập viên có thể [[mw:Readers/Reader_Growth/Image_Browsing#Phase_2.1_beta_feature|loại trừ hình ảnh khỏi băng chuyền của bài viết hoặc loại trừ hoàn toàn một bài viết khỏi tính năng này]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, các tệp STL ba chiều bị hiển thị sai bởi phần mở rộng trình xem phương tiện 3D nay đã được giải quyết. [https://phabricator.wikimedia.org/T416723]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Các class CSS <bdi lang="zxx" dir="ltr"><code><nowiki>tleft</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>tright</nowiki></code></bdi> cũ đã được thay thế bằng <bdi lang="zxx" dir="ltr"><code><nowiki>floatleft</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>floatright</nowiki></code></bdi> do hai class cũ đó không hoạt động một cách nhất quán trên tất cả các nền tảng MediaWiki, đặc biệt là giao diện web di động và ứng dụng di động. Những dự án dựa vào những lớp này được khuyến khích xem xét lại những chỗ sử dụng có liên quan và lên kế hoạch chuyển đổi. Xin lưu ý rằng <bdi lang="zxx" dir="ltr"><code><nowiki>floatleft</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>floatright</nowiki></code></bdi> cũng có thể bị loại bỏ trong tương lai, dù hiện chưa có kế hoạch thực hiện điều này. [[phab:T426452|Đọc thêm]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.4|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/22|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W22"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:52, ngày 25 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30584502 -->
== <span lang="en" dir="ltr">Vote now in the 2026 U4C election</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Eligible voters are asked to participate in the 2026 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|2026 Election information page]]. The vote closes on 2 June 2026 at [https://zonestamp.toolforge.org/1780358400 00:00 UTC].
Please vote if your account is eligible. Results will be available by 14 June 2026. -- In cooperation with the U4C,<section end="announcement-content" />
</div>
[[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 17:15, ngày 27 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Keegan (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== Bản tin Kỹ thuật: Tuần 23-2026 ==
<section begin="technews-2026-W23"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/23|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đang tiến hành một cuộc thử nghiệm nhằm giới thiệu tính năng [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|danh sách đọc]], hiện vẫn đang trong quá trình phát triển, dành cho những người đọc chưa đăng nhập trên thiết bị di động để kiểm tra xem tính năng này có khuyến khích việc tạo tài khoản với tỷ lệ cao hơn so với nút sao theo dõi hay không. [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists#Experiment timeline|Thử nghiệm]] này đã được khởi động vào ngày 18 tháng 5 trên các wiki tiếng Đức, Tây Ban Nha, Ý, Bồ Đào Nha, Ba Lan, Hà Lan, Thổ Nhĩ Kỳ và Urdu, và sẽ kéo dài trong một tháng.
* Nhóm Ứng dụng Wikimedia đã phát hành [[mw:Special:MyLanguage/Wikimedia Apps/Team/Explore Feed Refresh/Phase 1|Giai đoạn 1]] của giao diện Trang chủ được thiết kế lại cho ứng dụng Android bản Beta. Giao diện Trang chủ mới bao gồm tab "Cộng đồng" được làm mới và tab "Dành cho Bạn" được cá nhân hóa với những đề xuất đọc được cập nhật hàng ngày. Việc thiết kế lại này là một phần trong nỗ lực rộng lớn hơn nhằm cải thiện khả năng tìm kiếm nội dung và tạo ra trải nghiệm học tập hấp dẫn hơn trong các ứng dụng Wikipedia.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:18}} {{PLURAL:18|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến các hình ảnh không thể tải được đối với một số đề xuất sửa đổi trên [[w:Special:Homepage|Đặc biệt:Trang nhà]], làm cho hình thu nhỏ bị kẹt ở trạng thái đang tải, nay đã được giải quyết. [https://phabricator.wikimedia.org/T424048]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.5|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/23|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W23"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:08, ngày 1 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30613639 -->
== Bản tin Kỹ thuật: Tuần 24-2026 ==
<section begin="technews-2026-W24"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/24|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Wikimedia Enterprise đã tăng giới hạn sử dụng miễn phí cho các dịch vụ API của mình. Giới hạn yêu cầu hàng tháng dành cho API Theo yêu cầu đã tăng từ 5.000 lên 50.000 yêu cầu, trong khi giới hạn đối với API Hình chụp nhanh đã tăng từ 15 lên 30 yêu cầu mỗi tháng. Ngoài ra, Nội dung Có cấu trúc của ảnh chụp nhanh hiện đã có sẵn cho các tài khoản miễn phí. Những thay đổi này sẽ mở rộng quyền truy cập vào dữ liệu Wikimedia Enterprise cho các nhà phát triển, nhà nghiên cứu và các tổ chức sử dụng nội dụng Wikimedia. [https://enterprise.wikimedia.com/blog/enhanced-free-api]
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Wikimedia_Apps/Team/Explore Feed Refresh/Phase 1|Bảng tin Khám phá được làm mới]], nay với tên gọi là Bảng tin Trang chủ, đang được triển khai tới 50% người dùng ứng dụng Wikipedia dành cho Android. Bảng tin Trang chủ giúp người đọc khám phá nội dung liên quan thông qua hai tab mới: ''Cộng đồng'' và ''Dành cho Bạn''. Tab Cộng đồng cung cấp một bảng tin cuộn được chứa những nội dung được chọn lọc cùng những cập nhật từ không gian rộng lớn hơn của cộng đồng và phong trào Wikimedia, trong khi tab ''Dành cho Bạn'' cung cấp trải nghiệm toàn màn hình, có thể vuốt được để hiển thị nội dung được điều chỉnh theo sở thích của người dùng. Việc thiết kế lại này là một phần trong nỗ lực lớn hơn nhằm cải thiện khả năng tìm kiếm và nâng cao trải nghiệm học trong ứng dụng Wikipedia.
* Trò chơi giải đố hàng ngày [[mw:Special:MyLanguage/Wikimedia Apps/Team/iOS/"Which came first?" Game|Sự kiện nào diễn ra trước nhỉ?]] nay đã có sẵn trong phiên bản beta của ứng dụng Wikipedia dành cho iOS bằng tiếng Anh, tiếng Đức, tiếng Pháp, tiếng Bồ Đào Nha, tiếng Nga, tiếng Tây Ban Nha, tiếng Ả Rập, tiếng Trung và tiếng Thổ Nhĩ Kỳ. Trò chơi này sử dụng các sự kiện lịch sử từ nội dung trong mục "Ngày này năm xưa" của Wikipedia và thử thách người đọc đoán xem sự kiện nào trong hai sự kiện đã xảy ra trước. Trò chơi này đã được phát hành trên Android trước đây. Những cộng đồng quan tâm đến việc cung cấp trò chơi này bằng ngôn ngữ của mình có thể [[mw:Special:MyLanguage/Wikimedia_Apps/Team/Games#Game availability by language|đọc qua hướng dẫn và yêu cầu]].
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Chú thích phụ]], một tính năng MediaWiki mới cho phép biên tập viên tái sử dụng nguồn tham khảo với nhiều chi tiết khác nhau, sẽ bắt đầu được triển khai đến các wiki của Wikimedia sau giải đoạn thí điểm thành công. Việc triển khai sẽ bắt đầu vào ngày 8 tháng 6 đối với hầu hết các [[wikitech:Deployments/Train#Wednesday|wiki Nhóm 1]] và Wikipedia tiếng Pháp, trong khi các phiên bản ngôn ngữ khác của Wikipedia sẽ nhận được tính năng này trong những tháng tới. Các cộng đồng được khuyến khích chuẩn bị bằng cách kiểm tra [https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-cite&language=en&action_source=search&filter=%21translated&optional=1&action=translate các thông báo chưa được dịch của phần mở rộng Cite] bằng ngôn ngữ của họ và xem xét bất kỳ việc sử dụng [[mw:Special:MyLanguage/Reference Tooltips|Chú thích nổi]] nào, chúng có thể cần phải được [[:phab:T416304#11668731|cập nhật]] để hỗ trợ chức năng mới này. Những wiki sử dụng [[mw:Special:MyLanguage/Help:Reference Previews|Xem trước Chú thích]] không cần phải thực hiện bất kỳ hành động nào. Các cộng đồng cũng có thể mong muốn tạo [[Special:TrackingCategories|thể loại theo dõi]] ''cite-tracking-category-ref-details'' dưới dạng thể loại ẩn sử dụng <code><nowiki>__HIDDENCAT__</nowiki></code> (hoặc một bản mẫu chuyên dụng), và kết nối nó với khoản mục Wikidata [[d:Q129764848]] tương ứng. [https://phabricator.wikimedia.org/T425662]
* [[mw:Special:MyLanguage/Readers/Reader Growth/Mobile page previews#Experimentation|Thử nghiệm Xem trước Trang]] trên giao diện web di động đã kết thúc. Nhóm đã quyết định không triển khai tính năng này sau khi kết quả cho thấy rằng không có tác động đáng kể nào về mặt thống kê lên tỷ lệ giữ chân người đọc, vì chỉ số thành công chính là việc cải thiện tỷ lệ giữ chân người đọc. Tính năng Xem trước Trang, vốn đã có sẵn trên máy tính để bàn và trong ứng dụng, hiển thị hình thu nhỏ, đoạn mở đầu và liên kết đến bài viết đầy đủ khi người đọc nhấn vào liên kết xanh. Thử nghiệm này đã thử trải nghiệm này trên giao diện web di động trên sáu trang Wikipedia.
* [[mw:Special:MyLanguage/Codex/Design/Icons|Thư viện biểu tượng giao diện người dùng]] sẽ được [[phab:T399175|cập nhật vào cuối tuần này hoặc đầu tuần sau]]. Hầu hết trong số ~300 biểu tượng đã được điều chỉnh một chút và ~30 biểu tượng mới đã được thêm vào. Những thay đổi này cải thiện các biểu tượng để làm cho chúng thêm nhất quán và dễ hiểu hơn, đồng thời mang lại sự cân bằng trực quan hơn khi chúng được sử dụng theo nhóm.
* Giao diện [[mw:Special:MyLanguage/Universal Language Selector|Bộ chọn Ngôn ngữ Toàn cục]] (ULS) trong MediaWiki, công cụ giúp người dùng chọn nội dung bằng các ngôn ngữ khác, đã được cập nhật. Phiên bản mới cải thiện tốc độ và khả năng truy cập, đồng thời giờ đây người dùng trên các dự án Wikimedia có thể ghim các ngôn ngữ để chuyển đổi ngôn ngữ một cách nhanh chóng hơn. Việc triển khai lên các trang web của Wikimedia sẽ diễn ra dần dần trong những tuần tới. Bạn có thể thử nghiệm tính năng này ngay bây giờ bằng cách chọn [[Special:Preferences#mw-prefsection-betafeatures|tính năng beta]] trong tùy chọn hồ sơ của mình và chia sẻ phản hồi của bạn trên [[mw:Special:MyLanguage/Universal Language Selector/New ULS|trang dự án]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến bảng điều khiển Phân tích Lượt xem Trang trên pageviews.wmcloud.org ngừng cập nhật dữ liệu đồ thị vào tháng 5 năm 2026, ảnh hưởng đến tất cả người dùng, đã được giải quyết. [https://phabricator.wikimedia.org/T427171]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Chữ ký hàm cho <bdi lang="zxx" dir="ltr"><code><nowiki>mw.util.addPortletLink()</nowiki></code></bdi> đã được đơn giản hóa. Các nhà phát triển nay có thể truyền một đối tượng cấu hình thay vì một danh sách các tham số vị trí khi tạo liên kết portlet. Chữ ký hàm trước đây vẫn được hỗ trợ để đảm bảo khả năng tương thích ngược. Ví dụ, thay vì: <bdi lang="zxx" dir="ltr"><code><nowiki>mw.util.addPortletLink('p-cactions', '#', 'Stub', 'ca-stubtag', 'Add a stub tag to this page');</nowiki></code></bdi> sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>mw.util.addPortletLink('p-cactions', { href: '#', text: 'Stub', id: 'ca-stubtag', tooltip: 'Add a stub tag to this page' });</nowiki></code></bdi>. Những người bảo trì đoạn mã được khuyến khích xem chỗ nào hiện đang sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>addPortletLink()</nowiki></code></bdi> và cập nhật chúng nếu thích hợp. Thay đổi này sẽ có mặt trên tất cả các wiki từ ngày 11 tháng 6. Xin cảm ơn tình nguyện viên cộng đồng Gerges đã đóng góp cải tiến này. [https://phabricator.wikimedia.org/T427945]
* '''Thảo luận về Danh sách Mong muốn của Cộng đồng''': Nhóm Sản phẩm & Công nghệ [[m:Special:MyLanguage/Community Wishlist/Updates#May 20, 2026: Community Tech becomes a program|đã đưa ra những thay đổi]] nhằm mục đích tăng số lượng và độ phức tạp của những mong muốn được đáp ứng, bao gồm cả việc giải thể nhóm Công nghệ Cộng đồng. Họ đang [[m:Special:MyLanguage/Community Wishlist/Updates|tham gia thảo luận]] về một [[m:Talk:Community Wishlist#Proposed direction for Wishlist|đề xuất hướng đi cho danh sách mong muốn]] từ các thành viên cộng đồng. Bao gồm những cách để cấu trúc việc bỏ phiếu hàng năm, theo dõi mong muốn một cách tốt hơn, loại bỏ các lĩnh vực trọng tâm, và [[m:Special:MyLanguage/Community Wishlist/Updates|điều chỉnh việc quản lý nhân sự]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.6|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/24|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W24"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:30, ngày 8 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30650573 -->
== Bản tin Kỹ thuật: Tuần 25-2026 ==
<section begin="technews-2026-W25"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/25|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Readers/Reader Growth|Nhóm Tăng trưởng Độc giả]] đã cho ra mắt tính năng beta [[mw:Special:MyLanguage/Readers/Reader Growth/Image Browsing|Duyệt Hình ảnh]] trên phiên bản web của thiết bị di động tại tất cả các phiên bản Wikipedia. Tính năng này hiển thị ở đầu bài viết một băng chuyền hình ảnh gồm 3 hình ảnh trở lên. Biên tập viên có thể cấu hình cho tính năng này với những thao tác sau: để ẩn một hình ảnh cụ thể khỏi một trang, hãy sử dụng <code>class=notpageimage</code> để loại trừ nó khỏi bản xem trước, hay dùng <code>class=noviewer</code> để loại trừ nó khỏi MediaViewer. Băng chuyền Hình ảnh còn có thể được tắt hoàn toàn ở một trang, với magic word <code><nowiki>__NOMEDIAVIEWERCAROUSEL__</nowiki></code>. Để gửi phản hồi hoặc báo cáo lỗi, hãy truy cập [[mw:Talk:Readers/Reader Growth/Image Browsing|trang dự án]].
* [[mw:Special:MyLanguage/Help:Tables#class="wikitable"|Wikitables]] nay đã có thể được [[mw:Special:MyLanguage/Help:Sortable tables#Forcing the initial sort direction|sắp xếp theo thứ tự giảm dần]] ngay lần nhấp chuột đầu tiên bằng cách thêm <code dir=ltr>data-sort-order="desc"</code> cho ô tiêu đề. Trước đây, theo mặc định, lần nhấp chuột đầu tiên vào tiêu đề cột sẽ sắp xếp cột theo thứ tự tăng dần. Sự bổ sung này cho Wikitable mang lại khả năng kiểm soát và tính linh hoạt cao hơn, trong khi hành vi mặc định cho những lần nhấp chuột tiếp theo vẫn được giữ nguyên. [https://phabricator.wikimedia.org/T398416]
'''Cập nhật cho biên tập viên'''
* Tính năng [[mw:Special:MyLanguage/Article guidance|Hướng dẫn bài viết]] hiện đang được thử nghiệm đối với một số biên tập viên tạo các bài viết mới trên các trang Wikipedia tiếng Anh đơn giản, tiếng Pháp và tiếng Thổ Nhĩ Kỳ. Thử nghiệm cũng sẽ sẽ sớm bắt đầu trên Wikipedia tiếng Ả Rập và tiếng Bengali. [[w:simple:Special:NewArticle|Tính năng này]] cung cấp cho các biên tập viên hướng dẫn do cộng đồng biên soạn để giúp họ tạo ra những bài viết tuân thủ tiêu chuẩn cộng đồng. Các biên tập viên có kinh nghiệm có thể tiếp tục tạo hoặc điều chỉnh dàn ý cho những loại bài viết cụ thể thường được tạo bởi những người đóng góp ít kinh nghiệm hơn. Những dàn ý này hướng dẫn các biên tập viên ít kinh nghiệm hơn trong việc tạo những bài viết chất lượng cao. Hướng dẫn nhanh về các ký hiệu được sử dụng trong dàn ý có thể được tìm thấy trên [[mw:Special:MyLanguage/Article guidance/Test feature guide#Markups in outlines|trang này]]. [[w:simple:Wikipedia:Article Guidance|Ví dụ về dàn ý]] có thể được điều chỉnh và hướng dẫn cách điều chỉnh chúng nằm trên [[mw:Special:MyLanguage/Article guidance#Adapting a sample outline in a Wikipedia|phần này]] của trang dự án.
* Wiki mong muốn thay thế nút "vô thời hạn" trong Đặc biệt:Cấm dành cho tài khoản tạm thời (ví dụ, wiki chỉ cấm tài khoản tạm thời đến khi tài khoản đó hết hạn) sẽ có thể thực hiện điều đó bằng cách tạo [[MediaWiki:ipb-indefinite-expiry-temporary-account]] với khoảng thời gian cấm mà họ muốn. [https://phabricator.wikimedia.org/T427125]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:41}} {{PLURAL:41|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Đến cuối tháng 6, việc sử dụng một chuỗi user-agent hợp lệ là bắt buộc để tải xuống tự động các dump từ trang web dumps.wikimedia.org. Những yêu cầu tự động cung cấp user-agent trống hoặc chung chung sẽ bị chặn. Điều này [[phab:T400119|sẽ mở rộng việc thực thi]] [[foundation:Special:MyLanguage/Policy:Wikimedia Foundation User-Agent Policy|quy định về user-agent]] đã có từ lâu. Quyền truy cập tới Dịch vụ Đám mây của Wikimedia sẽ không thay đổi.
* Quá trình triển khai [[mw:Wikimedia APIs/Rate limits|giới hạn truy cập API]] toàn cục đã hoàn tất, các giới hạn được áp dụng trên tất cả các API và ở tất cả các mức độ được ghi nhận cho tất cả các nhóm. Các bot chạy trong Toolforge/WMCS hoặc có quyền người dùng bot trên bất kỳ wiki nào vẫn được miễn trừ. Tất cả các bot nên tiếp tục theo những thực tiễn tốt nhất được ghi nhận để tránh bị vượt giới hạn truy cập.
* [https://api.wikimedia.org/wiki/Main_Page Wiki Cổng API] sẽ ở chế độ chỉ đọc kể từ tuần này (15-18 tháng 6). Vào tuần tới (22-25 tháng 6), tất cả các URL của wiki Cổng API sẽ chuyển hướng đến [[mw:Wikimedia APIs|API Wikimedia trên mediawiki.org]]. Tìm hiểu thêm trên [[wikitech:API Portal/Deprecation|trang dự án]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.7|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* Vào ngày 17 tháng 6 lúc 18:00 giờ UTC WMF sẽ tổ chức một cuộc gọi Discord tập trung vào việc đánh giá code. Chúng tôi đã lắng nghe thông qua [[mw:Special:MyLanguage/Developer Satisfaction Survey/2026|Khảo sát Sự hài lòng của Nhà phát triển]] rằng các tình nguyện viên đang gặp khó khăn trong việc đánh giá code và chúng tôi muốn thảo luận về những trải nghiệm này với mục tiêu tìm ra những giải pháp khả thi. Bạn có thể tham gia cuộc gọi [https://discord.gg/wikipedia?event=1514727511102062664 thông qua máy chủ Discord Cộng đồng Wikimedia].
* [[m:Special:MyLanguage/Conferencia Wikimedia de América Latina 2026|Hội nghị Wikimedia Mỹ La-tinh]] sẽ tổ chức cuộc thi hackathon khu vực quy tụ cộng đồng kỹ thuật của phong trào Wikimedia, gồm những nhà phát triển, quản trị viên hệ thống, nhà khoa học dữ liệu và các thành viên có quyền mở rộng. Những người đóng góp kỹ thuật quan tâm có thể [https://docs.google.com/forms/d/e/1FAIpQLSf4osJzTHBJjQbYJk7TMVEJjTEQv7IgtsUDfP-o-qTgeRQQxw/viewform đăng ký học bổng] tham gia cho đến nửa đêm ngày 21 tháng 6 (giờ Bolivia, UTC-4).
* Hãy đăng ký tham gia Thử thách Nhóm của Wikimania để góp mặt tại sự kiện đặc biệt này. Thử thách nhóm sẽ diễn ra trực tuyến và trực tiếp từ ngày 21 đến 22 tháng 7, trước hội nghị Wikimania. Mọi người đều có thể tham gia, bất kể kỹ năng hay việc đăng ký Wikimania trước đó như thế nào. Các nhóm sẽ cùng nhau giải quyết 10 thử thách quan trọng trong việc hỗ trợ cộng đồng Wikimedia. Để biết thêm chi tiết, hãy truy cập [[wmania:Special:MyLanguage/2026:Team challenges|trang Thử thách Nhóm]] và [https://wikimedia.eventyay.com/wm/teamchallenges/ đăng ký tại đó]. Cổng đăng ký sẽ đóng vào ngày 20 tháng 6 lúc 23:00 UTC.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/25|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W25"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:48, ngày 15 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30689604 -->
== Bản tin Kỹ thuật: Tuần 26-2026 ==
<section begin="technews-2026-W26"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/26|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Growth/Feature summary|Các tính năng Phát triển (Growth)]] [[phab:T418115|nay đã có mặt trên Wikidata]]. Bản cập nhật này cho phép truy cập vào chức năng Cố vấn ([[mw:Special:MyLanguage/Help:Growth/Mentorship|nếu được cấu hình]]), mô đun Tác động, Bảng Trợ giúp và Trang chủ dành cho Người mới được đơn giản hóa (không có Đề xuất sửa đổi). Các bảo quản viên Wikidata vẫn đang cấu hình các tính năng thông qua Cấu hình Cộng đồng.
'''Cập nhật cho biên tập viên'''
* Trang đặc biệt [[{{#special:RangeCalculator}}]] đã được tạo. Trang này cho phép người dùng tìm một dải IP mà không cần phải dựa vào các công cụ bên ngoài. Cho đến hiện tại, công cụ này chỉ có sẵn cho các kiểm định viên. [https://phabricator.wikimedia.org/T268429]
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Chú thích phụ]] là một tính năng mới của MediaWiki cho phép biên tập viên tái sử dụng các nguồn tham khảo với những chi tiết khác nhau. Tính năng này sẽ được triển khai đến hầu hết các phiên bản ngôn ngữ Wikipedia quy mô nhỏ và trung bình vào ngày 23 tháng 6. Trang [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#deployment|Câu hỏi thường gặp]] liệt kê những hành động có thể thực hiện trên wiki của bạn để hỗ trợ việc triển khai này. Hãy kiểm tra [[:phab:T414094|kế hoạch triển khai]] để biết các bước triển khai tiếp theo. [https://phabricator.wikimedia.org/T428902]
* Bắt đầu từ tuần sau, người dùng sẽ nhận được một thông báo khi họ bị cấm sửa đổi hoặc được bỏ cấm sửa đổi, hoặc khi lệnh cấm thay đổi. [https://phabricator.wikimedia.org/T100974]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:32}} {{PLURAL:32|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bắt đầu từ tuần tới, các bộ lọc sai phạm được đặt ở mức "yêu cầu xác minh CAPTCHA" sẽ bắt đầu ảnh hưởng đến cả những người dùng có quyền <code>skipcaptcha</code>, bao gồm hầu hết những người dùng có quyền tự động xác nhận. Các bot sẽ được miễn trừ. Thay đổi này sẽ chỉ ảnh hưởng đến những sửa đổi kích hoạt bộ lọc sai phạm. Quyền <code>skipcaptcha</code> vẫn sẽ tiếp tục giúp người dùng được miễn yêu cầu xác minh CAPTCHA trong quá trình sử dụng wiki thông thường. [https://phabricator.wikimedia.org/T402595]
* Tài liệu tham khảo cho [[wikitech:Machine_Learning/LiftWing/API|API Lift Wing]] đã được chuyển từ Cổng API sang [https://wikitech.wikimedia.org/w/index.php?api=lift-wing&title=Special%3ARestSandbox Chỗ thử REST] mang tính tương tác.
* Wiki Cổng API hiện đã đóng. Để xem tài liệu API, hãy xem [[mw:Special:MyLanguage/Wikimedia_APIs|API Wikimedia trên mediawiki.org]]. Tất cả các URL của wiki Cổng API (https://api.wikimedia.org/wiki/) sẽ đổi hướng tới trang mediawiki.org bắt đầu từ ngày 22 tháng 6. [https://phabricator.wikimedia.org/T427537]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.8|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* Hãy tham gia cuộc gọi trực tuyến vào ngày 25 tháng 6 lúc 2:30 chiều giờ UTC để gặp gỡ các thực tập sinh hiện tại của Wikimedia cho [[mw:Google_Summer_of_Code/2026|Google Summer of Code]] và [[mw:Outreachy/Round_32|Outreachy]]. Các thực tập sinh sẽ giới thiệu tổng quan về các dự án của họ và demo ngắn gọn công việc mà họ đã thực hiện cho đến nay. Người tham dự được khuyến khích [[mw:event:Google_Summer_of_Code/Summer_2026_June_Internship_open_session|chia sẻ ý tưởng và kết nối trong cộng đồng của họ]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/26|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W26"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 13:05, ngày 23 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Trizek (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30722494 -->
== RFC about AI-generated content in Wikimedia Commons ==
<bdi lang="en" dir="ltr">Apologies for writing in English, please help translate this message to your language. You are invited to participate in a [[c:Commons:Requests for comment/Policy update for AI content|request for comment on Wikimedia Commons about a policy update for AI content]]. This may affect files that are uploaded to Wikimedia Commons for use on this project. Thank you. [[m:User:Codename Noreste|Codename Noreste]] ([[m:User talk:Codename Noreste|thảo luận]])</bdi> 17:12, ngày 23 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Codename Noreste@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== <span lang="en" dir="ltr">Deployment of Legal and Safety Contacts Link in the Footer of Your Wiki</span> ==
<div lang="en" dir="ltr">
<section begin="Message"/>
'''Legal & Safety Contacts'''
Hello community, the Wikimedia Foundation has provided a [[wmf:Special:MyLanguage/Legal:Wikimedia Foundation Legal and Safety Contact Information|single legal and safety contact page]], to be linked in the footer of your wiki, to ensure access to accurate legal information. This is a regulatory requirement. We have already rolled out links to English, German, Italian, Spanish and other wikis and we will deploy to your wiki soon. [[m:Special:MyLanguage/Wikimedia_Foundation_Legal_and_Safety_Contacts_FAQ|Please read more on the project page]] and leave any comments in this thread or on the [[m:Special:MyLanguage/Talk:Wikimedia Foundation Legal and Safety Contacts FAQ|talk page]].
<section end="Message"/>
</div>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:31, ngày 25 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Sannita (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=30731267 -->
== Bản tin Kỹ thuật: Tuần 27-2026 ==
<section begin="technews-2026-W27"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/27|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Là một phần của [[mw:Special:MyLanguage/Contributors/Account Creation Experiments|Thử nghiệm Tạo Tài khoản]], nhóm Phát triển đã thử nghiệm việc thêm biểu tượng tài khoản người dùng vào tiêu đề trang web trên di động dành cho người dùng chưa đăng nhập, cung cấp quyền truy cập trực tiếp vào các tác vụ "Tạo tài khoản" và "Đăng nhập". Thử nghiệm đã tăng số tài khoản được tạo lên khoảng 20% mà không ảnh hưởng tiêu cực đến chất lượng sửa đổi hoặc tỷ lệ sửa đổi mang tính xây dựng. Tính năng này giờ sẽ được triển khai đến tất cả các trang wiki của Quỹ Wikimedia trên giao diện web di động trong tuần đầu tiên của tháng 7. [https://phabricator.wikimedia.org/T428220]
* Sau một [[phab:T426248|thử nghiệm thành công]], người dùng đã đăng nhập nhưng chưa [[mw:Special:MyLanguage/Help:Email_confirmation|xác nhận địa chỉ email của mình]] khi tạo tài khoản sẽ nhìn thấy một biểu ngữ mới yêu cầu họ hoàn tất quy trình đó. Điều này giúp giảm nguy cơ người dùng bị mất quyền truy cập vào tài khoản của họ, và làm cho địa chỉ email của tài khoản nói chung trở nên đáng tin cậy hơn. Đây là một phần của dự án [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]]. [https://phabricator.wikimedia.org/T428292]
* Một bản cập nhật cho tính năng [[Special:Search|Tìm kiếm]] sẽ tinh chỉnh cách <bdi lang="zxx" dir="ltr"><code><nowiki>-prefix:</nowiki></code></bdi> hoạt động khi được sử dụng để loại trừ kết quả. Trước đây, việc sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>-prefix:</nowiki></code></bdi> với phủ định có thể vô tình mở rộng kết quả tìm kiếm bằng cách thêm các không gian tên nằm trong phạm vi tìm kiếm, dẫn đến hành vi gây khó hiểu đối với những người dùng mong đợi một bộ lọc loại trừ đơn giản. Với lần cập nhật này, <bdi lang="zxx" dir="ltr"><code><nowiki>-prefix:</nowiki></code></bdi> nay sẽ loại trừ chặt những tiêu đề trang trùng khớp như mong đợi và có thể hiển thị cảnh báo nếu không gian tên có liên quan không được chọn một cách rõ ràng. Mặc dù vậy, hành vi của <bdi lang="zxx" dir="ltr"><code><nowiki>prefix:</nowiki></code></bdi> khi không có phủ định vẫn sẽ không thay đổi. [https://phabricator.wikimedia.org/T427443]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:33}} {{PLURAL:33|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến người đánh giá sử dụng thanh công cụ Quản lý Trang (Page Curation) không tự động được đăng ký theo dõi các cuộc thảo luận mà họ bắt đầu bình luận trên trang nay đã được giải quyết. Người đánh giá giờ sẽ nhận được thông báo khi có người nào đó trả lời những cuộc thảo luận này. [https://phabricator.wikimedia.org/T329346]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Kể từ ngày 29 tháng 6, các lượt tải xuống tự động từ trang dumps.wikimedia.org sẽ phải tuân theo [[Foundation:Special:MyLanguage/Policy:Wikimedia Foundation User-Agent Policy|quy định về user-agent]]. Các yêu cầu tự động mà cung cấp user-agent trống hoặc chung chung sẽ bị chặn. Việc truy cập vào các bản sao lưu (dump) thông qua Dịch vụ Đám mây Wikimedia sẽ không bị ảnh hưởng. Đây là thông báo tiếp theo sau thông báo được đưa ra trong [[m:Special:MyLanguage/Tech/News/2026/25|Bản tin Kỹ thuật số 25-2026]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.9|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/27|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W27"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 11:48, ngày 29 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30744833 -->
== <span lang="en" dir="ltr">Tech News: 2026-28</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2026-W28"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2026/28|Translations]] are available.
'''Updates for editors'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Recurrent item]] View all {{formatnum:34}} community-submitted {{PLURAL:34|task|tasks}} that were [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|resolved last week]]. For example, an issue where the search bar results on Wikidata, showed English results instead of using the correct language fallback for users of language variants, has now been fixed. Search suggestions will now follow the expected language fallback chain. [https://phabricator.wikimedia.org/T429769]
'''Updates for technical contributors'''
* In preparation for [[m:Special:MyLanguage/Event:Celebrate Women|Celebrate Women campaign]] planned for March 2027, the Wikimedia Foundation’s [[m:Special:MyLanguage/Wikimedia Foundation/Advancement/Community Growth/Content Enablement|Content Enablement team]] has launched a 22-question survey to better understand technical contributions by women+ (anyone who identifies as a woman) across Wikimedia projects. The survey takes approximately 15–20 minutes to complete and will remain open until 20 July 2026. The [[m:Special:MyLanguage/Celebrate Women/Technical contributions survey|questions]] are also available on-wiki for review in advance.
* The [[mw:Special:MyLanguage/Extension:Score|Score extension]] now supports rendering music scores as SVG images in addition to PNG, addressing a long-standing [[:phab:T49578|feature request]] and resolving historical image quality issues. Both formats are now provided to clients, with PNG in the <bdi lang="zxx" dir="ltr"><code><nowiki>src</nowiki></code></bdi> attribute and SVG in the <bdi lang="zxx" dir="ltr"><code><nowiki>srcset</nowiki></code></bdi> attribute.
* The new [[wikitech:Parsoid|Parsoid]] parser [[mw:Special:MyLanguage/Parsoid/Parser_Unification/Updates|continues to be deployed to additional wikis]], making it easier to introduce new reading and editing features. It was enabled on French Wikipedia, bringing total progress to covering 78.9% of Wikipedia page views. Rollout to English Wikipedia desktop will progress through this week.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Recurrent item]] Detailed code updates later this week: [[mw:MediaWiki 1.47/wmf.10|MediaWiki]]
'''In depth'''
* The Wikimedia Hackathon 2026 [[diffblog:2026/06/29/wikimedia-hackathon-2026-building-collaborating-and-shaping-the-future-together/|recap blog post]] is now live. It highlights the projects, sessions, and social activities from this year’s event, and shares initial plans for the 2027 Wikimedia Hackathon.
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2026/28|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2026-W28"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 13:57, ngày 6 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30773578 -->
== Bản tin Kỹ thuật: Tuần 29-2026 ==
<section begin="technews-2026-W29"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/29|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng [[mw:Special:MyLanguage/Growth/Revise_Tone|Xem lại Giọng văn]] giúp người mới xác định những đoạn văn trong bài viết Wikipedia mà có thể chứa ngôn ngữ không bách khoa và khuyến khích họ xem xét lại giọng văn đó. Tính năng này đã được [[w:en:A/B_testing|thử nghiệm A/B]] trên các Wikipedia tiếng Ả Rập, tiếng Anh, tiếng Pháp và tiếng Bồ Đào Nha, tại đó tỷ lệ hoàn thành nhiệm vụ của người mới [[mw:Special:MyLanguage/Growth/Revise_Tone#Experiment_Results|tăng 38.7%]] so với nhiệm vụ Hiệu đính mặc định, mà không làm giảm chất lượng sửa đổi. Cuộc thử nghiệm đã kết thúc vào ngày 9 tháng 7 và tính năng này nay đã có sẵn cho tất cả mọi người trên các wiki này, đồng thời có thể cấu hình được thông qua Cấu hình Cộng đồng. [[phab:T426364|Kế hoạch]] dự kiến là sẽ phát hành Xem lại Giọng văn đến nhiều trang wiki hơn.
* Cấu hình cộng đồng cho phép [[mw:Special:MyLanguage/Help:Growth/Mentorship#Automated mentor list cleanup|tự động loại bỏ cố vấn không hoạt động]] dựa trên các tiêu chí có thể cấu hình được sẽ được kích hoạt vào thứ 5, ngày 16, [[mw:Special:MyLanguage/Growth/Deployment|trên một số wiki]] để đảm bảo danh sách cố vấn được cập nhật. Cố vấn là những người đóng góp có kinh nghiệm, tự nguyện tham gia giúp đỡ người dùng mới trên wiki thông qua [[mw:Special:MyLanguage/Growth/Feature summary|Tính năng Phát triển (Growth)]]. Bảo quản viên nay có thể chuẩn bị các cài đặt thông qua [[w:Special:CommunityConfiguration/Mentorship|Đặc biệt:Cấu hình Cộng đồng/Cố vấn]]; những cài đặt này sẽ có hiệu lực kể từ thứ 5.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:38}} {{PLURAL:38|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến một số người dùng ứng dụng Wikipedia trên thiết bị Android bị đăng xuất ngay sau khi đăng nhập, khiến họ không thể duy trì trạng thái đăng nhập và sửa đổi trang, nay đã được giải quyết. [https://phabricator.wikimedia.org/T316916]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Việc sửa đổi trang thông qua đoạn mã người dùng hoặc tiện ích khiến cho nhãn danh sách theo dõi mà người dùng gán cho trang đó bị đặt lại. Vấn đề này nay đã được giải quyết. [https://phabricator.wikimedia.org/T423778]
* Để khắc phục lỗi Safari (xem [[phab:T425211]]), trên các wiki đã kích hoạt Parsoid, các liên kết wiki href nay sử dụng urls tuyệt đối thay vì url tương đối theo giao thức. Đầu ra API REST vẫn sẽ không thay đổi và sẽ tiếp tục sử dụng url tương đối theo giao thức. Các tiện ích, đoạn mã người dùng, bot và CSS có thể cần được điều chỉnh nếu chúng dựa vào sự hiện diện của url tương đối theo giao thức trong các liên kết wiki href. [https://phabricator.wikimedia.org/T431358]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.11|MediaWiki]]
'''Chuyên sâu'''
* Nhóm Nền tảng Thử nghiệm của Quỹ Wikimedia đã đăng bài viết trên blog phản ánh về năm đầu tiên thực hiện thử nghiệm có cấu trúc của họ. Bài viết nêu bật những thử nghiệm thành công như Kiểm tra Chép dán, Kiểm tra Nguồn tham khảo và Kiểm tra Giọng văn, những thử nghiệm đã cải thiện kết quả sửa đổi và được triển khai cho nhiều người dùng hơn, cũng như những thử nghiệm không dẫn đến việc thay đổi sản phẩm. [[diffblog:2026/07/07/moving-the-needle-how-we-test-new-ideas-across-wikimedia-projects|Đọc thêm]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/29|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W29"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:11, ngày 13 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30804401 -->
== Bản tin Kỹ thuật: Tuần 30-2026 ==
<section begin="technews-2026-W30"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/30|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Reader/Reader Experience|Nhóm Trải nghiệm Người đọc]] đã kết hợp phản hồi của cộng đồng xoay quanh vị trí của các nút sao theo dõi và nút danh sách theo dõi đối với [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4 Reading lists|tính năng beta Danh sách Đọc]], nhằm cho phép lưu lại các bài viết để đọc sau – một [[m:Special:MyLanguage/Community Wishlist/W102|mục danh sách mong muốn]] để đưa chức năng này lên web. Các biên tập viên được mời kích hoạt tính năng beta để thử nghiệm tính năng này và [[phab:T426453|chia sẻ suy nghĩ của mình]].
* [[mw:Special:MyLanguage/VisualEditor/Suggestion Mode|Chế độ Đề xuất]] cung cấp những đề xuất sửa đổi trong Trình Soạn thảo Trực quan để cải thiện các bài viết trên Wikipedia. [[Special:EditChecks|Mọi đề xuất]] đều [[mw:Special:MyLanguage/Help:Suggestion mode#For administrators – local customization|có thể được cộng đồng cấu hình]]. Tính năng [[mw:Special:MyLanguage/Edit check/TextMatch|Văn bản Khớp chính xác]] (TextMatch) là một cách giúp cho các tình nguyện viên có thể tạo đề xuất tùy chỉnh cục bộ. Tính năng này tìm kiếm các chuỗi văn bản trong bài viết, và nay cũng bao gồm việc hỗ trợ cho các biểu thức chính quy. Điều này mang lại cho các tình nguyện viên độ chính xác và tính linh hoạt cao hơn đối với những loại đề xuất mà họ có thể tạo ra cục bộ. Lưu ý: Đề xuất [[mw:Special:MyLanguage/Edit check/Configuration#:~:text=maximumEditcount|có thể được nhắm tới]] dựa trên số lần sửa đổi của người thực hiện sửa đổi cũng như các khía cạnh khác của trang. Bạn có thể [[mw:Special:MyLanguage/Help:Suggestion mode#Create custom local types of Suggestions|tìm ví dụ từ các cộng đồng khác]] để lấy cảm hứng, kể cả việc sử dụng Văn bản Khớp chính xác nhằm phát hiện: lỗi chính tả, lỗi ngữ pháp, có khả năng quảng cáo, lời sáo rỗng, cách sử dụng dấu gạch ngang hoặc dấu gạch nối không chính xác, từ khóa thời gian không cụ thể, tên lỗi thời, v.v. Bất kỳ [[mw:Special:MyLanguage/Talk:VisualEditor/Suggestion Mode|phản hồi]] nào đều được chúng tôi hoan nghênh.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, sự cố về công cụ SVG Translate khiến cho nó có thể sử dụng phiên bản tập tin lỗi thời, khiến các bản dịch hiện có bị ghi đè khi các bản dịch mới được tải lên, nay đã được [[phab:T430577|giải quyết]]. Nhìn chung, trong quý cuối cùng từ tháng 4 đến tháng 6 năm 2026, Quỹ Wikimedia đã giải quyết khoảng 337 tác vụ cộng đồng.
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Trên các wiki có hỗ trợ Parsoid, Parsoid nay hiển thị tối đa 1.250 hình ảnh mỗi trang. Một danh mục theo dõi mới, "media-limit-reached", sẽ sớm được cung cấp để xác định các trang đã đạt đến giới hạn này, giúp dễ dàng tìm thấy nội dung có thể bị hạn chế đầu ra phương tiện trong quá trình hiển thị. Xem [[phab:T430854]] để biết thêm thông tin và cung cấp phản hồi.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.12|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/30|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W30"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 05:46, ngày 21 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30836091 -->
== Request for comment (the future of Abstract Wikipedia) ==
<bdi lang="en" dir="ltr" class="mw-content-ltr">
Apologies if this has not yet been translated into your wiki's language. {{int:Please-translate}}
You are invited to voice your opinions in a [[:m:Requests for comment/The future of Abstract Wikipedia|request for comment about the future of Abstract Wikipedia]]. {{Int:Feedback-thanks-title}}
[[:m:User:Kowal2701|Kowal2701]] ([[:m:User talk:Kowal2701|talk]]) 12:25, ngày 24 tháng 7 năm 2026 (UTC)
</bdi>
<!-- Tin nhắn của Thành viên:DreamRimmer@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== Bản tin Kỹ thuật: Tuần 31-2026 ==
<section begin="technews-2026-W31"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/31|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Wishlist item]] Công cụ [[mw:Special:MyLanguage/ContentTranslation|Dịch Nội dung]] nay hỗ trợ chế độ tối, nhằm đáp ứng [[m:Community Wishlist/W544|yêu cầu từ Mong muốn Cộng đồng]]. Điều này giúp công cụ tương thích với các tính năng hỗ trợ khả năng tiếp cận có sẵn trong các giao diện Vector 2022 và Minerva, giúp giảm việc gây mỏi mắt cho người dùng khi dịch nội dung. [https://phabricator.wikimedia.org/T367077]
* Chế độ soạn thảo mã nguồn của Công cụ Thảo luận (DiscussionTools) và Trình soạn thảo mã nguồn 2017 nay sẽ cung cấp tính năng tự động điền cho các liên kết (<bdi lang="zxx" dir="ltr"><code><nowiki>[[</nowiki></code></bdi>), bản mẫu (<bdi lang="zxx" dir="ltr"><code><nowiki>{{</nowiki></code></bdi>), thẻ HTML và phân tích cú pháp (<bdi lang="zxx" dir="ltr"><code><nowiki><</nowiki></code></bdi>), cũng như các từ ma thuật (<bdi lang="zxx" dir="ltr"><code><nowiki>__</nowiki></code></bdi>), giúp việc chèn các liên kết, bản mẫu và mã đánh dấu wiki khác trong quá trình sửa đổi trở nên nhanh chóng và dễ dàng hơn. [https://phabricator.wikimedia.org/T432400]
* [[mw:Special:MyLanguage/Readers/Reader Growth/Mobile page previews|Nhóm Phát triển Người đọc]] đã kết thúc việc thử nghiệm với tính năng xem trước trang trên thiết bị di động và sẽ không triển khai tính năng này nữa. Tính năng Xem trước Trang là một cửa sổ bật lên ở cuối trang xuất hiện khi người đọc nhấn vào liên kết xanh, hiển thị hình thu nhỏ, đoạn mở đầu và tùy chọn mở bài viết. Thử ngiệm cho thấy tỷ lệ giữ chân người dùng không thay đổi nhưng các chỉ số khác đều mang tính tiêu cực, điều này có nghĩa là người đọc trên trang web dành cho thiết bị di động thích truy cập trực tiếp vào các bài viết được liên kết hơn là sử dụng tính năng xem trước trang.
* Nhóm Trải nghiệm Người đọc đã bước đầu ghi nhận những kết quả khả quan từ [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|tính năng Danh sách Đọc]], trong đó 93% người dùng tham gia báo cáo rằng tính năng này hữu ích. Danh sách Đọc giúp người đọc hoạt động tích cực lưu lại các bài viết để đọc sau này và hỗ trợ mục tiêu học tập của họ trên các dự án Wikimedia. Nhóm dự định sẽ tiếp tục cải tiến trước khi mở rộng tính năng này cho nhiều người dùng hơn.
* Sáng kiến [[mw:Special:MyLanguage/Wikimedia Apps/Team/Explore Feed Refresh|Làm mới Nguồn cấp dữ liệu Khám phá]] đã được thử nghiệm với những người đọc mới và không thường xuyên sử dụng ứng dụng Wikipedia. Nguồn cấp dữ liệu được làm mới giúp người đọc khám phá những nội dung mới và phù hợp với mình. Với kết quả mức độ tương tác với nguồn cấp dữ liệu tăng 10,5%, nhóm Ứng dụng Wikimedia đã quyết định mở rộng việc thiết kế lại Nguồn cấp dữ liệu Trang chủ sang iOS, áp dụng những kinh nghiệm thu được từ phiên bản dành cho Android.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến cho tên chủ đề trong tính năng Hướng dẫn Bài viết hiển thị sai cách viết hoa trên Wikipedia tiếng Pháp nay đã được giải quyết. Tên chủ đề nay sẽ tuân theo đúng quy tắc viết hoa của ngôn ngữ đó. [https://phabricator.wikimedia.org/T427201]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Sau khi thực hiện một số [[mw:Special:MyLanguage/Contributors/Account Creation Experiments|Thử nghiệm Tạo Tài khoản]] để cải thiện tỷ lệ hoàn tất việc đăng ký, một phiên bản mới của trường tên người dùng trên trang [[Special:CreateAccount|Tạo Tài khoản]] đã được triển khai. Phiên bản này bao gồm [[:c:File:Create account - July 2026 updates.png|một cửa sổ bật lên nhằm tóm tắt quy định về tên người dùng]] để cung cấp hướng dẫn rõ ràng hơn trong quá trình tạo tài khoản. Là một phần của thay đổi này, các thông báo <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-helpusername</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-help</nowiki></code></bdi> mà một số cộng đồng đã cấu hình sẽ không còn được sử dụng nữa. Nếu cộng đồng muốn tùy chỉnh hướng dẫn hiển thị trong cửa sổ bật lên mới, cộng đồng có thể sửa đổi các thông báo sau: <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-policy-popover-bullet1</nowiki></code></bdi>, <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-policy-popover-bullet2</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-policy-popover-bullet3</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T430604]
* Cuối tuần này, [[mw:Special:MyLanguage/Help:Extension:CodeMirror|trình làm nổi bật cú pháp CodeMirror]] sẽ cung cấp [[w:en:Theme (computing)|các chủ đề]]. Các chủ đề có thể được chọn từ menu thả xuống trong hộp thoại [[mw:Special:MyLanguage/Help:Extension:CodeMirror#CodeMirror preferences|tùy chọn CodeMirror]] hoàn chỉnh. Đối với mã wiki, các chủ đề có sẵn là mặc định, thân thiện với người mù màu (trước đây là tùy chọn dễ phân biệt cho người mù màu trong [[Special:Preferences#mw-prefsection-editing]]) và không làm nổi bật. Đối với các ngôn ngữ lập trình (ví dụ: CSS/JavaScript/JSON/Vue/Lua), hiện có sẵn một vài chủ đề. Các chủ đề tương tự này sau này cũng sẽ có sẵn cho mã wiki. [https://phabricator.wikimedia.org/T163533]
* Kể từ giờ trở đi, các wiki có thể giới hạn sửa đổi trong không gian tên "Thành viên" chỉ cho chính thành viên đó và một số nhóm người dùng nhất định. [[mw:Special:MyLanguage/Manual:$wgRestrictUserPageEditing|Đọc tài liệu hướng dẫn cấu hình]] để tìm hiểu thêm.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.14|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/31|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W31"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:49, ngày 27 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30856308 -->
== Bản tin Kỹ thuật: Tuần 32-2026 ==
<section begin="technews-2026-W32"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/32|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đã phát triển một [https://82db7c8d4b.catalyst.wmcloud.org/w/index.php?title=Regent%27s_Park&uselang=de bản vá demo] nhằm bọc thanh công cụ trang thành hai dòng nếu không có đủ không gian bề ngang cho tất cả các nút. Điều này nhằm mục đích giảm tình trạng quá tải trên thanh công cụ trong giao diện Vector 2022, có thể xảy ra trên một số trang ngôn ngữ Wikipedia trên một số độ rộng màn hình nhất định. [https://phabricator.wikimedia.org/T429518]
* Nhóm Trải nghiệm Người đọc dự kiến sẽ phát hành [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|Danh sách Đọc]], một [[m:Special:MyLanguage/Community Wishlist Survey 2021/Mobile and apps/Have Apps reading lists available on Destop/Mobile|mục trong Danh sách Mong muốn Cộng đồng]], hiện đang có sẵn để dùng thử dưới dạng tính năng beta, dưới dạng tính năng đầy đủ vào tháng 9. Trước thời điểm đó, chúng tôi cần các tình nguyện viên biên dịch giúp [https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-readinglists&filter=&action=translate dịch các chuỗi này] sang những ngôn ngữ khác. Tính năng này giúp hỗ trợ các mục tiêu đọc và học tập trên Wikipedia.
* Vào tuần tới, mục lục trên các trang tập tin Wikimedia Commons sẽ được cải thiện bằng cách hợp nhất mục lục trang tập tin với mục lục của trang. Điều này sẽ giúp việc hiểu cấu trúc trang tập tin, điều hướng đến những đề mục cụ thể, và chia sẻ liên kết đến các đề mục riêng biệt trở nên dễ dàng hơn. [https://phabricator.wikimedia.org/T332644]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:24}} {{PLURAL:24|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho một số hình [[w:TIFF|TIFF]] không thể tải được sau khi nhấn vào hình thu nhỏ của nó, khiến cho hình bị hỏng được hiển thị thay vì hình có kích thước đầy đủ, nay đã được giải quyết. [https://phabricator.wikimedia.org/T429326]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bộ chọn biến và hàm trong Bộ lọc Sai phạm (AbuseFilter) đã được cập nhật để hỗ trợ tìm kiếm và tự động điền. Điều này sẽ giúp những người quản lý bộ lọc tìm kiếm biến hoặc hàm mong muốn nhanh hơn. [https://phabricator.wikimedia.org/T323698]
* Các định dạng MJPEG và VP8 đã bị loại bỏ khỏi trình phát video. Thay vào đó, định dạng MP4 (MPEG-4 Phần 2) được thêm vào, nhằm cung cấp video chất lượng cao hơn cho các thiết bị iPhone đời cũ. Việc cập nhật lại tất cả các video hiện có sẽ có thể mất vài tuần. Định dạng mặc định cho các thiết bị hiện đại vẫn sẽ được giữ nguyên (VP9/WebM). [https://phabricator.wikimedia.org/T358266]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.15|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/32|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W32"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:46, ngày 3 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30872536 -->
== Bản tin Kỹ thuật: Tuần 33-2026 ==
<section begin="technews-2026-W33"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/33|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Mục Mong muốn cộng đồng]] Công cụ mới Trình tạo Biểu đồ (ChartWizard) [[c:Special:ChartWizard/Data:Example.Pie.chart|nay đã có mặt trên Wikimedia Commons]] dành cho các thành viên có mong muốn tạo các biểu đồ từ dữ liệu của riêng mình. Trình hướng dẫn này giúp [[mw:Special:MyLanguage/Extension:Chart|phần mở rộng Chart]] trở nên thân thiện hơn với người mới bắt đầu bằng cách cho phép các biên tập viên tạo biểu đồ, chẳng hạn như biểu đồ cột và biểu đồ tròn, mà không cần phải sử dụng JSON. Các thành viên vẫn có thể chuyển sang trình soạn thảo mã JSON nếu họ muốn. Mọi ý kiến đóng góp về công cụ mới này đều được hoan nghênh trên [[m:Talk:Community Wishlist/W414|trang thảo luận của mong muốn này]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:19}} {{PLURAL:19|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho tiện ích Hình ảnh của Ngày của ứng dụng Wikipedia dành cho iOS hiển thị cùng một hình ảnh mỗi ngày thay vì cập nhật hàng ngày, nay đã được giải quyết. [https://phabricator.wikimedia.org/T430692]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Hình ảnh SVG cho [[mw:Special:MyLanguage/Extension:Math|công thức toán học]] sẽ sớm được tạo trong trình duyệt thay vì trên máy chủ. MathML vẫn sẽ tiếp tục được tạo trên máy chủ và hiển thị trong trình duyệt mà không cần JavaScript. Wikibooks sẽ áp dụng thay đổi này vào ngày 12 tháng 8, Wikisource vào ngày 19 tháng 8 và Wikipedia từ ngày 20-27 tháng 8. Bạn có thể thử thay đổi này bằng cách chọn "{{int:Mw-math-mathjax}}" trong phần tùy chọn của bạn. Thay đổi này là một phần trong lộ trình [[mw:Special:MyLanguage/RESTBase/deprecation|ngừng sử dụng RESTBase]] và [[phab:T431372|ngừng sử dụng Mathoid]]. [https://phabricator.wikimedia.org/T271001]
* <span class="mw-translate-fuzzy">Các trang thể loại sẽ sớm hỗ trợ việc sắp xếp các mục theo thời gian chúng được thêm vào thể loại. Điều này sẽ giúp việc tìm kiếm các trang được xếp thể loại gần đây hoặc đã xếp từ lâu trở nên dễ dàng hơn. Tính năng này cũng sẽ cải thiện quy trình làm việc đối với các thể loại bảo trì chẳng hạn như danh sách trang chờ xóa và các tác vụ rà soát theo thời gian khác. Bạn có thể sử dụng tham số URL <bdi lang="zxx" dir="ltr"><code><nowiki>cldsort=timestamp</nowiki></code></bdi> trong chế độ xem thể loại để sắp xếp các mục này.</span> [https://phabricator.wikimedia.org/T433768]
* Các [[mw:Special:MyLanguage/Extension:Gadgets|tiện ích]] và đoạn mã người dùng trên các wiki của Wikimedia nay có thể sử dụng [[phab:T395347|các tính năng theo chuẩn ES2018]] và [[phab:T419142|các tính năng theo chuẩn ES2019]] trong đoạn mã JavaScript. Trước đây, nền tảng chỉ cho phép sử dụng tối đa đến chuẩn ES2017. MediaWiki kiểm tra mã nguồn để bảo vệ chức năng khỏi các lỗi cú pháp và đảm bảo các đoạn mã đều hợp lệ trên tất cả [[mw:Special:MyLanguage/Compatibility#Browser_support_matrix|các trình duyệt được hỗ trợ]]. [https://phabricator.wikimedia.org/T419142]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.16|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/33|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W33"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:45, ngày 10 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30901051 -->
== Bản tin Kỹ thuật: Tuần 34-2026 ==
<section begin="technews-2026-W34"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/34|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Help:Extension:CampaignEvents/Registration/Worklist|Tính năng Danh sách Công việc (Worklist)]] dành cho công cụ Đăng ký Sự kiện nay đã có mặt trên tất cả các dự án wiki của Wikimedia. Với Danh sách Công việc, ban tổ chức sự kiện có thể thêm trực tiếp các bài viết mà sẽ là trọng tâm của sự kiện vào trang sự kiện. Danh sách Công việc cũng hỗ trợ tính năng [[mw:Special:MyLanguage/Help:Extension:CampaignEvents/Registration/Worklist#How Event Pathways uses the worklist|Lộ trình Sự kiện (Event Pathways)]] giúp thông báo cho các biên tập viên khác về sự kiện sắp hoặc đang diễn ra khi họ sửa đổi một bài viết có trong Danh sách Công việc của sự kiện đó. Đây là phiên bản khả thi tối thiểu (MVP), và chúng tôi hoan nghênh mọi ý kiến đóng góp. Các ban tổ chức được khuyến khích thử tính năng này. Buổi [[m:Special:MyLanguage/Event:Worklist Setup Workshop: Get Your Event Ready|Hội thảo Thực hành Danh sách Công việc]] sẽ diễn ra vào ngày 18 tháng 6 lúc 16:00 UTC và ngày 19 tháng 6 lúc 11:00 UTC.
'''Cập nhật cho biên tập viên'''
* [[Special:ShortPages]] hiển thị các trang ngắn dựa trên kích thước của chúng, nhưng trong nhiều trường hợp danh sách này bị lấp đầy bởi các trang định hướng và đổi hướng mềm, khiến việc tìm kiếm chính các bài viết ngắn đó trở nên khó khăn hơn. Kể từ cuối tuần này, bạn sẽ có thể loại bỏ một bài viết khỏi trang đặc biệt này bằng cách thêm từ ma thuật <bdi lang="zxx" dir="ltr"><code><nowiki>__EXPECTSHORTPAGE__</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T433203]
* Một wiki mới đã được tạo ra: {{int:project-localized-name-group-wikipedia/vi}} tiếng [[d:Q3436680|Bole]] ([[w:bol:|<bdi lang="zxx" dir="ltr"><code><nowiki>w:bol:</nowiki></code></bdi>]]) [https://phabricator.wikimedia.org/T429921]
* Kể từ tuần ngày 17 tháng 8, thanh công cụ trang sẽ tự động xuống thành hai hàng khi không còn đủ không gian theo chiều ngang để hiển thị tất cả các nút. Đây là một [[phab:T429518|bản vá đã được hợp nhất hoàn toàn từ nhóm Trải nghiệm Người đọc]] nhằm giảm bớt tình trạng chật không gian trên thanh công cụ của giao diện Vector 2022, một vấn đề mà có thể xảy ra trên một số phiên bản ngôn ngữ Wikipedia ở một số độ rộng màn hình nhất định.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:16}} {{PLURAL:16|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, việc tải các tập tin có dung lượng lớn lên Wikimedia Commons đã trở nên ổn định hơn và ít gặp lỗi hơn sau một số bản sửa lỗi liên quan đến lỗi tải lên "Không thể lấy khóa". [https://phabricator.wikimedia.org/T386640]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Debian Bullseye sẽ kết thúc Hỗ trợ Dài hạn vào ngày 31 tháng 8 năm 2026. [[phab:T434103|Một số dự án Cloud VPS]] vẫn còn instance đang chạy Debian Bullseye. Bảo trì viên của những dự án này được khuyến khích chuyển sang Debian Bookworm hoặc Debian Trixie. Hiện đã có trang [[wikitech:Help:Cloud VPS instance operating system migration|hướng dẫn di chuyển]] nhằm giúp thực hiện quy trình này, đồng thời các thành viên cũng có thể muốn xem xem liệu khối lượng công việc của họ có phù hợp hơn với Toolforge hay không. Nếu bạn cần trợ giúp hoặc không thể hoàn tất quá trình chuyển đổi trước ngày 31 tháng 8, vui lòng liên hệ với quản trị viên Cloud VPS càng sớm càng tốt. [[listarchive:list/cloud-announce@lists.wikimedia.org/thread/RVIPQSYLKMSL5M46JP6NEJVGVE6I2RXQ/|Đọc thêm]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.16|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/34|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W34"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:03, ngày 17 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30922806 -->
== Bản tin Kỹ thuật: Tuần 35-2026 ==
<section begin="technews-2026-W35"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/35|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Trang [[Special:CreateAccount|Đặc biệt:Tạo tài khoản]] đã được đơn giản hóa như là một phần của nỗ lực nhằm hiện đại hóa trải nghiệm tạo tài khoản. Khung hiển thị số liệu thống kê về dự án sẽ không còn xuất hiện bên cạnh biểu mẫu trên giao diện trang web máy tính và di động. Nhiều thử nghiệm tạo tài khoản cho thấy việc sử dụng biểu mẫu đơn giản hơn giúp người dùng mới hoàn tất quy trình đăng ký dễ dàng hơn. [https://phabricator.wikimedia.org/T433783]
* Để cải thiện hiệu suất trang, các hình ảnh nay sẽ chỉ được tải khi người dùng xem chúng. Điều này có nghĩa là những hình ảnh nằm ở phần dưới của bài viết sẽ không được tải nếu người đọc không bao giờ cuộn trang xuống phần đó của bài viết, điều này có thể ảnh hưởng đến một vài số liệu liên quan đến hình ảnh. [https://phabricator.wikimedia.org/T148047]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:42}} {{PLURAL:42|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho các hình thu nhỏ trên Abstract Wikipedia có thể không hiển thị được sau khi tập tin tương ứng được di chuyển trên Wikimedia Commons, nay đã được giải quyết. Các hình thu nhỏ nay sẽ được cập nhật chính xác khi tập tin được di chuyển. [https://phabricator.wikimedia.org/T433448]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Thẻ Thông tin Thành viên là một tính năng giúp các tuần tra viên xem thông tin về các tài khoản người dùng. Trước đây, tính năng này chỉ xuất hiện ở những nơi chẳng hạn như lịch sử trang, nhật trình và thay đổi gần đây. Giờ đây, các thành viên cũng có thể [[mw:Special:MyLanguage/Help:Extension:CheckUser#User_Info_card_in_page_content|đặt thẻ này vào nội dung trang]], bằng cách sử dụng hàm phân tích cú pháp <bdi lang="zxx" dir="ltr"><code><nowiki>{{#uic:}}</nowiki></code></bdi>. Điều này đặc biệt hữu ích trong các bản mẫu như [[:en:Template:Userlinks|<bdi lang="zxx" dir="ltr"><code><nowiki>{{Userlinks}}</nowiki></code></bdi>]] (hoặc các biến thể chuyên biệt của chúng), vì nó sẽ giúp việc xem thông tin về thành viên trên nhiều trang bảng tin nhắn trở nên dễ dàng hơn. Thẻ này sẽ chỉ được hiển thị với những người dùng đã kích hoạt tính năng này trong phần [[Special:Preferences#mw-input-wpcheckuser-userinfocard-enable|tùy chọn]] của mình. [https://phabricator.wikimedia.org/T424466]
* Do những rủi ro về bảo mật và quyền riêng tư của người dùng, chúng tôi đã vô hiệu hóa quyền truy cập vào các URL dẫn đến trang <bdi lang="zxx" dir="ltr"><code><nowiki>Special:MyPage</nowiki></code></bdi> khi sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>action=raw</nowiki></code></bdi>. Nếu điều này ảnh hưởng tới bạn, hãy cân nhắc xem bạn có thể sử dụng một phương thức nào đó thay thế hay không. Các URL dẫn đến trang <bdi lang="zxx" dir="ltr"><code><nowiki>Special:MyPage</nowiki></code></bdi> vẫn có thể truy cập và sử dụng được mà không cần sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>action=raw</nowiki></code></bdi>. Các URL cụ thể cho trang thành viên (v.d. <bdi lang="zxx" dir="ltr"><code><nowiki>User:Myusername</nowiki></code></bdi>) vẫn có thể được sử dụng với <bdi lang="zxx" dir="ltr"><code><nowiki>action=raw</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T120386]
* Nhờ một bản cập nhật, phần mềm tạo hình thu nhỏ đã được cải tiến. Nó bao gồm việc nâng cấp <bdi lang="zxx" dir="ltr"><code><nowiki>librsvg</nowiki></code></bdi> lên phiên bản 2.60 và <bdi lang="zxx" dir="ltr"><code><nowiki>ImageMagick</nowiki></code></bdi> lên 7, cũng như việc khắc phục một số lỗi tạo hình thu nhỏ đã tồn tại từ lâu chẳng hạn như lỗi hiển thị. [https://phabricator.wikimedia.org/T419815#12222841]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.17|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/35|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W35"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:45, ngày 24 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30961208 -->
== Bản tin Kỹ thuật: Tuần 36-2026 ==
<section begin="technews-2026-W36"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/36|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Một hình thức mới cho Danh sách Mong muốn Cộng đồng hiện đang được lấy ý kiến đóng góp. Bạn có thể [[m:Special:MyLanguage/Community Wishlist/Community Wishlist 2027|đọc các ý tưởng đề xuất trên Meta]]. Quy trình mới này nhằm nâng cao hiệu quả sàng lọc, bỏ phiếu và ưu tiên cho các mong muốn nhằm đảm bảo tính minh bạch và sự cân bằng giữa các nhóm dự án và phiên bản ngôn ngữ. Đợt tham vấn này sẽ kéo dài trong vòng hai tuần.
'''Cập nhật cho biên tập viên'''
* Bản phát hành mới nhất của ứng dụng Wikipedia dành cho Android bao gồm các cập nhật đối với tính năng Đã lưu (Saved), giúp trải nghiệm lưu bài viết trên ứng dụng trở nên đồng bộ hơn với phiên bản iOS và Web. Bản cập nhật này thiết kế lại tab Đã lưu với giao diện “Tất cả bài viết”, xóa bỏ danh sách đọc mặc định “Đã lưu”, đổi tên các danh sách đọc thành “Bộ sưu tập” (Collections) và hiện đại hóa trải nghiệm lưu bài viết. [https://phabricator.wikimedia.org/T420788]
* Tính năng [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|Danh sách Đọc]] đã được kích hoạt cho tất cả người dùng đã đăng nhập trên Wikipedia tiếng Bengali, tiếng Trung, tiếng Séc và tiếng Việt vào ngày 25 tháng 8, sau vài tháng hoạt động dưới dạng tính năng thử nghiệm (beta). Danh sách Đọc sẽ được triển khai đến tất cả người dùng đã đăng nhập trên Wikipedia tiếng Ả Rập, tiếng Pháp và tiếng Indonesia vào ngày 1 tháng 9, sau đó là Wikipedia tiếng Anh vào ngày 14 tháng 9, và trên tất cả các wiki Wikipedia còn lại vào ngày 28 tháng 9.
* Vào cuối tháng này, một số độc giả chưa đăng nhập trên Wikipedia tiếng Bengali, tiếng Séc, tiếng Ba Tư, tiếng Anh và tiếng Ba Lan sử dụng giao diện Minerva trên thiết bị di động sẽ nhìn thấy một [[mw:Special:MyLanguage/Readers/Reader_Growth/Minimal_Minerva|thanh điều hướng được cập nhật]] trong [[:w:vi:Thử nghiệm A/B|thử nghiệm A/B]]. Thử nghiệm này sẽ so sánh thanh điều hướng hiện tại với phiên bản mới được thiết kế nhằm giúp người dùng tìm kiếm thông tin một cách nhanh chóng và dễ dàng hơn. Mục tiêu là xác định xem những thay đổi này có khuyến khích độc giả quay lại thường xuyên hơn hay không. Thử nghiệm này sẽ không làm thay đổi trải nghiệm của người dùng và/hoặc biên tập viên đã đăng nhập.
* Các biên tập viên chuyên bảo trì các trang đổi hướng, bản mẫu và thể loại được sử dụng trên các trang đổi hướng nay có thêm các phương thức cải tiến để tìm kiếm và quản lý trang đổi hướng. Trước đây, các trang đổi hướng không thể tìm kiếm được. Hai từ khóa tìm kiếm mới, <bdi lang="zxx" dir="ltr"><code><nowiki>onlyredirects:</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>withredirects:</nowiki></code></bdi>, giờ đây cho phép tìm kiếm trực tiếp các trang đổi hướng và có thể kết hợp với các từ khóa hiện có như <bdi lang="zxx" dir="ltr"><code><nowiki>incategory:</nowiki></code></bdi>, <bdi lang="zxx" dir="ltr"><code><nowiki>intitle:</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>insource:</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T204089]
* Các công cụ tìm kiếm ISBN để tạo các nguồn trích dẫn gần đây đã không hoạt động do các vấn đề liên quan đến dịch vụ bên ngoài. Các nhà phát triển đang nỗ lực để tìm giải pháp khắc phục. [https://phabricator.wikimedia.org/T435179]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho việc tìm kiếm trang theo thể loại sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>deepcat</nowiki></code></bdi> có thể không trả về kết quả hoặc trả về kết quả không liên quan nay đã được giải quyết. [https://phabricator.wikimedia.org/T414859]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Tên miền của URL cho hình thu nhỏ đang được thay đổi từ $1 sang thumb.wikimedia.org. Các URL cũ sẽ tiếp tục hoạt động trong tương lai gần, nhưng MediaWiki sẽ chuyển sang sử dụng tên miền mới. Các URL trỏ đến các loại tập tin đa phương tiện khác như tập tin gốc, video và tập tin chuyển mã vẫn sẽ được phục vụ từ upload.wikimedia.org. [https://phabricator.wikimedia.org/T427465]
* [https://www.mediawiki.org/w/index.php?api=wmf-math%2Fv1&title=Special%3ARestSandbox API Toán học (Math API)] của Wikimedia hiện đã lỗi thời và không còn được hỗ trợ. Các điểm cuối (endpoints) này sẽ chính thức ngừng hoạt động hoàn toàn vào cuối tháng 9 năm 2026. Các nhà phát triển gọi các điểm cuối này nên chuyển sang các giải pháp hiển thị toán học thay thế, chẳng hạn như [https://developer.mozilla.org/en-US/docs/Web/MathML MathML] tích hợp sẵn hoặc [https://www.mathjax.org/ MathJax]. Các hệ thống MediaWiki được cài đặt bởi bên thứ ba sử dụng phần mở rộng Math để hiển thị công thức bắt buộc phải nâng cấp lên phiên bản v1.43 trở lên để tránh gián đoạn dịch vụ.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.18|MediaWiki]]
'''Chuyên sâu'''
* Đọc thêm về [[mw:Special:MyLanguage/Edit_check/TextMatch|TextMatch]] trong một bài viết trên Diff có tiêu đề: [[diffblog:2026/08/28/custom-edit-suggestions-for-every-wiki-how-communities-are-shaping-suggestion-mode-with-textmatch/|Đề xuất sửa đổi tùy chỉnh cho mọi wiki: Cộng đồng đang định hình Chế độ Gợi ý với TextMatch như thế nào]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/36|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W36"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:53, ngày 31 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30990659 -->
== Bản tin Kỹ thuật: Tuần 37-2026 ==
<section begin="technews-2026-W37"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/37|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng [[mw:Special:MyLanguage/Help:Growth/Tools/Add_a_link|Thêm Liên kết]] đã được nâng cấp cho người dùng trên Wikipedia tiếng Anh với khả năng phát hiện tốt hơn các liên kết có sự khác biệt về cách viết hoa. Cải tiến này sẽ giúp giảm bớt những gợi ý mơ hồ gây ra do sự khác biệt về cách viết viết hoa trong tiêu đề bài viết, bao gồm cả những bài viết về các sản phẩm văn hóa. Hiện kế hoạch cải tiến giai đoạn 2 đã được lên lịch, kế hoạch cũng sẽ nhằm mục đích chuẩn bị phát hành tính năng này ở các ngôn ngữ khác. [https://phabricator.wikimedia.org/T435526#12240876] [https://phabricator.wikimedia.org/T434259]
* Tính năng [[mw:Special:MyLanguage/Article_guidance|Chỉ dẫn bài viết]] sẽ được bật theo mặc định cho các biên tập viên mới trên Wikipedia tiếng Anh Đơn giản và Wikipedia tiếng Thổ Nhĩ Kỳ kể từ ngày 10 tháng 9 năm 2026 sau khi đã trải qua [[mw:Special:MyLanguage/Article_guidance/Updates#Summary_of_experiment_result|một cuộc thử nghiệm]]. Các biên tập viên mới có từ 0 đến 99 sửa đổi sẽ tự động nhìn thấy tính năng này khi họ nhấn vào liên kết đỏ hoặc sử dụng tùy chọn "[[tr:Vikipedi:Madde_sihirbazı|Madde oluşturto]]" (tạo bài viết) trên Wikipedia tiếng Thổ Nhĩ Kỳ để tạo bài viết mới. Thay đổi này nhằm mục đích giúp các biên tập viên mới tạo các bài viết có chất lượng cao hơn và đáp ứng các tiêu chuẩn của từng dự án Wikipedia. [[phab:maniphest/query/z3tcTjmLMxk5/#R|Các cải tiến bổ sung]] sẽ tiếp tục được thực hiện dựa trên kết quả thử nghiệm và phản hồi từ cộng đồng.
* Công cụ [https://pageviews.wmcloud.org Phân tích Lượt xem Trang] nhằm cho phép người dùng so sánh lượt xem giữa nhiều trang, năm nay đã tròn 10 tuổi và được bổ sung thêm một số tính năng mới. Chúng bao gồm [[toolforge:wikinav|WikiNav]] nhằm cung cấp thông tin chuyên sâu vào cách độc giả Wikipedia khám phá nội dung, thống kê sửa đổi trong mục [https://pageviews.wmcloud.org/siteviews?range=latest-30&sites=en.wikipedia.org Siteviews], khả năng [https://pageviews.wmcloud.org/massviews?source=wikiproject&project=en.wikipedia.org tra cứu bài viết thuộc Dự án Wiki], cũng như hỗ trợ chế độ tối. [https://phabricator.wikimedia.org/T378549]
* Một thanh điều hướng [[mw:Special:MyLanguage/Readers/Reader_Growth/Minimal_Minerva|Minerva được đơn giản hóa về mặt trực quan]] đang được thử nghiệm dành cho các độc giả chưa đăng nhập sử dụng giao diện web di động trên các dự án Wikipedia tiếng Bengal, tiếng Séc, tiếng Anh, tiếng Ba Tư và tiếng Ba Lan. Thử nghiệm này nhằm xác định xem việc đơn giản hóa thanh điều hướng có cải thiện việc giữ chân độc giả hay không. Thử nghiệm sẽ diễn ra từ ngày 31 tháng 8 đến ngày 28 tháng 9, và người dùng không cần phải thực hiện bất kỳ thao tác nào.
* [[m:Special:MyLanguage/WMDE Technical Wishes|Nhóm Mong muốn Kỹ thuật của WMDE]] đang thực hiện việc cải tiến [[en:Wikipedia:VisualEditor/Named references|tên nguồn tham khảo được tạo tự động trong Trình Soạn thảo Trực quan]]. Các biên tập viên sẽ chỉ nhận thấy một thay đổi nhỏ kể từ tuần này. Khi thêm tên nguồn tham khảo tự động việc đánh số sẽ bắt đầu tại <bdi lang="zxx" dir="ltr"><code><nowiki>:1</nowiki></code></bdi> thay vì <bdi lang="zxx" dir="ltr"><code><nowiki>:0</nowiki></code></bdi>. Đọc thêm trên [[m:WMDE Technical Wishes/References/VisualEditor automatic reference names|trang dự án]]. [https://gerrit.wikimedia.org/r/c/VisualEditor/VisualEditor/+/1332704]
* Tất cả các wiki sẽ [[m:Special:MyLanguage/Tech/Server switch|chuyển sang chế độ chỉ đọc trong vài phút]] vào ngày 23 tháng 9. Kế hoạch dự kiến diễn ra lúc 14:00 UTC. Thông tin thêm về kế hoạch này sẽ được xuất bản trong Bản tin Kỹ thuật và cũng sẽ được đăng lên trên từng wiki trong các tuần tiếp theo. [https://phabricator.wikimedia.org/T433363]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:25}} {{PLURAL:25|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho [[mw:Special:MyLanguage/Parsoid|Parsoid]] có thể xử lý sai các thẻ nowiki được lồng nhau, khiến nội dung bị mất và hiển thị nội dung không mong muốn nay đã được giải quyết. [https://phabricator.wikimedia.org/T435116]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bảo quản viên giao diện có thể cấu hình các tiện ích từ [[MediaWiki:Gadgets-definition]]. Định dạng của định nghĩa tiện ích đã được cập nhật và không còn yêu cầu tùy chọn <bdi lang="zxx" dir="ltr"><code><nowiki>ResourceLoader</nowiki></code></bdi> nữa, vì các tiện ích luôn được tải thông qua <bdi lang="zxx" dir="ltr"><code><nowiki>ResourceLoader</nowiki></code></bdi>. Điều này giúp đơn giản hóa cấu hình tiện ích bằng cách loại bỏ một tùy chọn không còn cần thiết nữa, giúp việc định nghĩa tiện ích trở nên dễ dàng hơn cho các bảo quản viên. [https://phabricator.wikimedia.org/T298199]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.19|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/37|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W37"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:44, ngày 7 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31008437 -->
== Bản tin Kỹ thuật: Tuần 38-2026 ==
<section begin="technews-2026-W38"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/38|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Nhóm Future Audiences đã mở một [[en:Special:MyLanguage/Wikipedia:Village pump (proposals)#New proposed experiment to let readers know about “Google preferred sources”|cuộc thảo luận trên Wikipedia tiếng Anh]] về một đề xuất thử nghiệm mới nhằm hiển thị thông báo tạm thời về tính năng mới [https://blog.google/products-and-platforms/products/search/original-high-quality-content-search/ Nguồn Ưu tiên của Google] dành cho độc giả Wikipedia truy cập từ Google. Thử nghiệm này nhằm kiểm tra xem liệu thông báo này có giúp thu hút khách truy cập quay lại Wikipedia thường xuyên hơn hay không. Tính năng Nguồn Ưu tiên cho phép người dùng chọn các trang web mà họ tin tưởng nhằm giúp Google có thể hiển thị nội dung từ các nguồn này một cách nổi bật hơn trong trải nghiệm trên Tìm kiếm và AI. Chúng tôi mong muốn triển khai thử nghiệm này trên các ngôn ngữ khác mà Google hỗ trợ và rất hoan nghênh sự hỗ trợ trong việc khởi xướng thảo luận trên các dự án wiki khác. Nếu bạn quan tâm, vui lòng liên hệ nhóm Future Audiences trên [[m:Special:MyLanguage/Future Audiences/Preferred sources|trang thảo luận]].
'''Cập nhật cho biên tập viên'''
* Nền tảng trò chuyện Discord ra mắt cơ chế (framework) tự thiết lập mới nhằm cho phép các trang web có thể sử dụng để tùy chỉnh cách hiển thị những liên kết đó khi được chia sẻ trên Discord. Nhóm Future Audiences dự định sẽ bắt đầu sử dụng cơ chế này để cải thiện cách hiển thị các liên kết Wikipedia khi được chia sẻ trên Discord, nhằm ghi công sửa đổi của các tình nguyện viên một cách tốt hơn. Hình thức và cách thức hoạt động của liên kết sẽ không thay đổi trong giai đoạn đầu của dự án này vì chúng tôi muốn thu thập một số dữ liệu cơ sở trước để đánh giá tác động của những thay đổi này trong tương lai. Dù vậy, nếu các thành viên cộng đồng đang hoạt động trên Discord có phát hiện ra bất kỳ vấn đề nào, họ có thể liên hệ qua [[phab:tag/future-audiences/|Phabricator]] hoặc [[m:Special:MyLanguage/Future Audiences|Metawiki]].
* Nhóm Phát triển Độc giả sẽ tiến hành một thử nghiệm xem liệu [[mw:Special:MyLanguage/Readers/Reader_Growth/Compact Lead|việc rút gọn phần mở đầu của bài viết]] kèm theo nút "đọc thêm" có giúp cải thiện việc giữ chân người đọc hay không. Thử nghiệm này sẽ bắt đầu vào ngày 17 tháng 9 trên các phiên bản Wikipedia tiếng Ả Rập, tiếng Tây Ban Nha, tiếng Pháp, tiếng Indonesia, tiếng Ý, tiếng Nhật, tiếng Bồ Đào Nha, tiếng Việt và tiếng Trung và sẽ kéo dài trong bốn tuần.
* Tất cả các wiki sẽ [[m:Special:MyLanguage/Tech/Server switch|chuyển sang chế độ chỉ đọc trong vòng vài phút]] vào ngày 23 tháng 9. Kế hoạch được lên lịch lúc 14:00 UTC. Thông tin chi tiết sẽ được đăng tải lên Bản tin Kỹ thuật và cũng sẽ được đăng lên từng wiki riêng lẻ trong tuần tới. [https://phabricator.wikimedia.org/T433363]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến [https://wikistats.wmcloud.org/ Wikistats] dành cho Wikipedia trả về lỗi HTTP 500 và không thể truy cập được, nay đã được giải quyết. [https://phabricator.wikimedia.org/T435959]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Các nhà phát triển đang bảo trì công cụ truy vấn các bảng liên kết của Wikimedia Commons cần cập nhật mã nguồn của mình để kết nối với cụm cơ sở dữ liệu (database cluster) x4 mới. Các bảng liên kết đã được chuyển từ cụm s4 sang x4, và sẽ không còn nhận được cập nhật trên cụm s4 nữa. Các bảng trang và đổi hướng vẫn sẽ tiếp tục khả dụng trên cả hai cụm này. Một bản sao dữ liệu wiki (wiki replica) cho cụm x4 sẽ được thiết lập sau này. Thay đổi này được thực hiện do cụm s4 đã trở nên quá lớn gây ảnh hưởng đến hiệu quả vận hành của bảng liên kết. Bạn có thể [[wikitech:Special:MyLanguage/News/2026 Commons links tables database split|đọc thêm]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.20|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/38|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W38"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:31, ngày 14 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31039826 -->
== Chuyển đổi máy chủ - Wiki của bạn sẽ sớm chuyển sang chế độ chỉ đọc trong một khoảng thời gian ngắn ==
<section begin="server-switch"/><div class="plainlinks">
[[:m:Special:MyLanguage/Tech/Server switch|Đọc thông báo này bằng ngôn ngữ khác]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}]
[[foundation:|Quỹ Wikimedia]] sẽ chuyển đổi lưu lượng qua lại giữa các trung tâm dữ liệu. Điều này sẽ giúp đảm bảo rằng Wikipedia và các wiki khác của Wikimedia vẫn có thể duy trì trực tuyến ngay cả sau tình huống thiên tai.
Mọi lưu lượng sẽ chuyển đổi vào ngày '''{{#time:j xg|2026-09-23|vi}}'''. Việc chuyển đổi này sẽ bắt đầu vào lúc '''[https://zonestamp.toolforge.org/{{#time:U|2026-09-23T14:00|en}} {{#time:H:i e|2026-09-23T14:00}}]'''.
Dù vậy, vì một số hạn chế của phần mềm [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], mọi sửa đổi đều phải bị ngưng lại khi việc chuyển đổi được thực hiện. Chúng tôi chân thành xin lỗi vì sự gián đoạn này, và chúng tôi đang tìm cách giảm thiểu những tình huống như vậy trong tương lai.
Một biểu ngữ sẽ được hiển thị trên tất cả các wiki 30 phút trước khi quá trình này diễn ra. Biểu ngữ sẽ tiếp tục được hiển thị cho tới khi kết thúc quá trình này.
Bạn có thể đóng góp bằng cách [https://meta.wikimedia.org/w/index.php?title=Special%3ATranslate&group=Centralnotice-tgroup-read_only_banner&task=view&language=&filter=&action=translate biên dịch và hiệu đính] dòng biểu ngữ này.
'''Bạn sẽ có thể đọc, nhưng không thể sửa đổi, tất cả wiki trong một khoảng thời gian ngắn.'''
* Bạn sẽ không thể sửa đổi trong vòng tối đa một giờ vào {{#time:l j xg Y|2026-09-23|vi}}.
* Nếu bạn cố gắng sửa đổi hay lưu trang trong khoảng thời gian này, bạn sẽ nhìn thấy một thông báo lỗi. Chúng tôi hy vọng sẽ không có sửa đổi nào bị mất trong khoảng thời gian đó, nhưng chúng tôi không thể đảm bảo được điều đó. Nếu bạn nhìn thấy thông báo lỗi, vui lòng chờ đợi cho đến khi mọi thứ trở lại bình thường. Sau đó bạn sẽ có thể lưu lại sửa đổi của mình. Tuy nhiên, chúng tôi khuyên bạn trước hết nên tạo một bản sao những thay đổi của bạn, nhằm mục đích đề phòng.
''Những ảnh hưởng khác'':
* Tác vụ xử lý nền sẽ bị chậm hơn và một số có thể bị ngừng hẳn. Các liên kết đỏ có thể sẽ không được cập nhật nhanh chóng như thường lệ. Nếu bạn tạo một bài viết đã được liên kết ở một nơi khác, liên kết đó vẫn sẽ có màu đỏ lâu hơn bình thường. Một số đoạn mã tốn nhiều thời gian chạy sẽ phải dừng lại.
* Chúng tôi hy vọng việc triển khai mã nguồn vẫn sẽ diễn ra như bất kỳ tuần nào khác. Tuy vậy, một vài trường hợp đóng băng mã nguồn có thể xảy ra nếu quá trình yêu cầu chúng sau đó.
* [[mw:Special:MyLanguage/GitLab|GitLab]] sẽ không khả dụng trong khoảng 90 phút.
Dự án này có thể bị hoãn lại nếu cần thiết. Bạn có thể [[wikitech:Switch_Datacenter|đọc lịch trình tại wikitech.wikimedia.org]]. Bất kỳ thay đổi nào đều sẽ được thông báo trong lịch trình này.
'''Xin hãy chia sẻ thông tin này với cộng đồng của bạn.'''</div><section end="server-switch"/>
[[m:user:Trizek (WMF)|Trizek (WMF)]] 12:58, ngày 15 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Trizek (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=30513874 -->
== Your feedback wanted: Remove ''(Language link added:) and similar'' edits from Special:RecentChanges ==
''(Apologies for posting in English. You can help by translating it)''
Hello, I’m Danny from [[:en:w:Wikimedia_Deutschland|Wikimedia Deutschland’s]] [[m:Wikidata_For_Wikimedia_Projects|Wikidata For Wikimedia Projects]] team.<br/>
We have been investigating and examining how Wikidata’s use in the [[Special:RecentChanges]] and [[Special:Watchlist]] pages can be made to be more useful, or less ‘noisy’ (fewer edits that have little value to the reader).
We are currently exploring to make a change in the volume and the type of Wikidata edits that appear in these pages, and '''we need your feedback''' to help us ensure this is a positive change for the Wikis and won’t disrupt your workflows.<br/>
Language links are also known as sitelinks or interlanguage links and describe when a Wikidata item is connected to a Wiki, adding it to the language dropdown tool for other connected Wikis.
[[File:Types of Lang Link changes.png|x350px|frame|A variety of "Language Link" edits as seen in the Recent Changes feed]]
The request for feedback is whether you support the removal of these language link edits from the Recent Changes and Watchlist feed, or would you oppose such a change and if so, why?
Please share you thoughts on the dedicated '''[[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|metawiki Talk page]]'''.
Further information about this change: [[m:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|m:Wikidata_For_Wikimedia_Projects/Hide_Language_Link_edits]]
Thank you for any participation or feedback you give, -- [[m:User:Danny_Benjafield_(WMDE)|User:Danny Benjafield (WMDE)]] 12:48, ngày 25 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Danny Benjafield (WMDE)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_test_list&oldid=31081007 -->
== Bản tin Kỹ thuật: Tuần 39-2026 ==
<section begin="technews-2026-W39"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/39|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[m:Special:MyLanguage/Tech/Server switch|Tất cả các wiki sẽ chuyển sang chế độ chỉ đọc]] trong vòng vài phút vào thứ 4, ngày 23 tháng 9 năm 2026 lúc [https://zonestamp.toolforge.org/1790172000 14:00 UTC]. Điều này là nhằm phục vụ cho việc thử nghiệm chuyển đổi máy chủ cơ sở dữ liệu dự phòng, [[wikitech:Special:MyLanguage/Deployments/Yearly calendar|diễn ra hai lần trong một năm]]. Trong quá trình chuyển đổi này, toàn bộ lưu lượng trên các trang web của Wikimedia được chuyển từ trung tâm dữ liệu chính sang trung tâm dữ liệu dự phòng nhằm kiểm tra tính khả dụng và ngăn ngừa việc gián đoạn dịch vụ ngay cả trong những trường hợp khẩn cấp. [https://phabricator.wikimedia.org/T433363]
'''Cập nhật cho biên tập viên'''
* Nhóm Tăng trưởng đã thử nghiệm một thông báo sau khi sửa đổi mới được thiết kế nhằm [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#4. Encourage Temporary Accounts to Register|khuyến khích những người đang có Tài khoản Tạm thời đăng ký tài khoản vĩnh viễn]]. Thông báo mới này thay thế cho nhiều hộp thoại kèm thông báo chào mừng xuất hiện cùng lúc bằng một thông báo duy nhất nhằm nêu bật những lợi ích của việc tạo một tài khoản. Thử nghiệm này đã giúp tăng tỷ lệ tạo tài khoản vĩnh viễn từ 1.94% lên 3.66%, tương đương với mức tăng khoảng 87%. Thay đổi này giờ đây sẽ được triển khai đến tất cả các dự án wiki. [https://phabricator.wikimedia.org/T433551]
* Đối với các biên tập viên Wikipedia sử dụng [[Special:Preferences#mw-prefsection-betafeatures|Tính năng Beta "Chế độ gợi ý"]], hiện có một [[Special:Preferences#mw-input-wpvisualeditor-editcheck-experimental|tùy chọn mới trong phần tùy chọn của người dùng]] nhằm hiển thị các gợi ý và kiểm tra sửa đổi mang tính "thử nghiệm". Những loại này được liệt kê tại [[Special:EditChecks#experimental-checks|Đặc biệt:EditChecks]], và nhằm mục đích để lập trình viên thử nghiệm sớm cũng như để thu thập phản hồi từ những người dùng có kinh nghiệm. Các bảo quản viên có thể thay đổi [[mw:Special:MyLanguage/Edit check/Configuration|chi tiết cấu hình]] cho từng gợi ý như thường lệ. Bảo quản viên cũng có thể [[mw:Special:MyLanguage/Help:Suggestion mode#Experimental Suggestions|sử dụng tính năng này]] để giúp thử nghiệm những ý tưởng của cộng đồng về những quy tắc kiểm tra và gợi ý do cộng đồng tạo. Những loại tính năng thử nghiệm này sẽ có giao diện trực quan khác biệt hơn vào cuối tuần này. [[mw:Talk:VisualEditor/Suggestion Mode|Mọi phản hồi đều được hoan nghênh]].
* [[m:CEE Technical Village Pump|Phòng Thảo luận Kỹ thuật CEE]] (CEE Technical Village Pump) đã được mở để đóng vai trò như một không gian thảo luận và hợp tác kỹ thuật của các cộng đồng Wikimedia tại khu vực Trung và Đông Âu.
* Một công cụ mới, [[mw:Special:MyLanguage/Language Onboarding and Development/Starter kit|Bộ Công cụ Khởi đầu]] (Starter Kit), nay đã có sẵn dành cho các cộng đồng Wikipedia ngôn ngữ mới và quy mô nhỏ. Công cụ này tập hợp những nhiệm vụ có hướng dẫn, công cụ và tài nguyên nhằm giúp cộng đồng có thể bắt đầu, theo dõi tiến độ, cũng như hợp tác cùng với cộng đồng Wikimedia rộng lớn hơn. Bộ Công cụ Khởi đầu được vận hành trên nền tảng Wikimedia Toolforge và được thiết kế dành cho các dự án Wikipedia có ít hơn 50.000 bài viết. Tìm hiểu thêm cách Bộ Công cụ Khởi đầu hoạt động và cách cộng đồng đang sử dụng công cụ này trong [[diffblog:2026/09/18/introducing-starter-kit-for-new-and-small-language-wikipedias/|bài viết này trên blog Diff]].
* Nhóm Phát triển Người đọc sẽ mở một đợt tái thử nghiệm của [[mw:Special:MyLanguage/Readers/Reader Growth/Image Browsing|thử nghiệm băng chuyền hình ảnh]]. Đợt tái thử nghiệm này sẽ sử dụng ba phiên bản thiết kế mới, được cập nhật dựa trên phản hồi của cộng đồng. Nhóm sẽ đánh giá kết quả và cùng cộng đồng quyết định xem có tiếp tục triển khai tính năng này hay không. Thử nghiệm này sẽ bắt đầu vào tuần ngày 28 tháng 9 và sẽ được thực hiện trên Wikipedia tiếng Ả Rập, tiếng Bengal, tiếng Trung, tiếng Séc, tiếng Anh, tiếng Ba Tư, tiếng Pháp, tiếng Đức, tiếng Indonesia, tiếng Nhật, tiếng Ba Lan, tiếng Bồ Đào Nha, tiếng Tây Ban Nha, tiếng Thụy Điển và tiếng Việt.
* Sau khi triển khai thành công trên Wikipedia tiếng Ả Rập, tiếng Bengal, tiếng Trung, tiếng Séc, tiếng Anh, tiếng Pháp, tiếng Indonesia và tiếng Việt, [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|tính năng Danh sách Đọc]] do nhóm Trải nghiệm Người đọc phát triển sẽ có mặt cho tất cả người dùng đã đăng nhập trên tất cả các dự án Wikipedia kể từ ngày 28 tháng 9.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho đoạn mã trạng thái cố vấn liên tục cập nhật trạng thái của cố vấn ngay cả khi không có gì thay đổi, tạo ra những mục không cần thiết trên Thay đổi Gần đây, nay đã được giải quyết. [https://phabricator.wikimedia.org/T436659]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* API truy vấn danh sách <bdi lang="zxx" dir="ltr"><code><nowiki>abusefilters</nowiki></code></bdi>, vốn được sử dụng để lấy thông tin chi tiết về các bộ lọc sai phạm đang hoạt động hoặc đã tắt được thiết lập trên wiki, đã được cập nhật để hỗ trợ tham số cấu hình <bdi lang="zxx" dir="ltr"><code><nowiki>formatversion=2</nowiki></code></bdi>, điều này dẫn đến những thay đổi gây ra lỗi (breaking changes) đến phản hồi của API. Tất cả người dùng đang bảo trì các đoạn mã người dùng hoặc đoạn mã khác cần kiểm tra xem họ có đang sử dụng API truy vấn danh sách <bdi lang="zxx" dir="ltr"><code><nowiki>abusefilters</nowiki></code></bdi> hay không, đồng thời điều chỉnh để giải quyết những thay đổi gây ra lỗi này. [https://phabricator.wikimedia.org/T435828]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.21|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/39|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W39"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 11:56, ngày 27 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31085309 -->
== Bản tin Kỹ thuật: Tuần 40-2026 ==
<section begin="technews-2026-W40"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/40|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Người dùng sử dụng giao diện mặc định trên trang web dành cho máy tính và thiết bị di động (lần lượt là Vector 2022 và Minerva) nay sẽ được thông báo nếu gợi ý tìm kiếm được hiển thị khi họ nhập vào hộp Tìm kiếm đến từ các trang đổi hướng. Trước đây, người dùng có thể bị bối rối khi gợi ý kết quả tìm kiếm hàng đầu không khớp chính xác với những gì họ nhập vào. Thông báo trang đổi hướng mới này giúp làm rõ rằng những gợi ý này không phải ngẫu nhiên mà có liên quan đến nội dung tìm kiếm. Các trang được gợi ý có thể là các trang đổi hướng đến những bài viết đích phù hợp nhất với nội dung được tìm kiếm. [https://phabricator.wikimedia.org/T303013]
* Người dùng Wikipedia chưa đăng nhập trên giao diện web di dộng sẽ bắt đầu nhìn thấy nút đánh dấu (bookmark) để lưu các bài viết vào [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|danh sách đọc]] của họ thay vì nút Sao theo dõi (Watchstar) hiện tại. Khi được nhấn vào, nút đánh dấu sẽ yêu cầu người dùng đăng nhập hoặc tạo tài khoản để lưu bài viết và đọc lại sau. Một thử nghiệm trước đó cho thấy biểu tượng đánh dấu có khả năng khuyến khích người dùng chưa đăng nhập tạo tài khoản cao gấp bốn lần so với nút Sao theo dõi. Thay đổi này là một phần trong nỗ lực nhằm khuyến khích nhiều độc giả trở thành chủ tài khoản hơn và sử dụng các tính năng giúp họ lưu lại và quay lại để đọc nội dung. [https://phabricator.wikimedia.org/T438769]
* Một thử nghiệm sẽ bắt đầu vào ngày 29 tháng 9 trên các phiên bản Wikipedia tiếng Tây Ban Nha, tiếng Ả Rập, tiếng Anh và tiếng Pháp nhằm đơn giản hóa trải nghiệm mà người dùng gặp ngay sau khi tạo tài khoản. Thử nghiệm này sẽ khám phá xem việc loại bỏ trở ngại từ Khảo sát Chào mừng người mới hiện tại có giúp người dùng mới dễ dàng hiểu được rằng cần phải làm những gì tiếp theo hơn hay không. Cuộc thử nghiệm này sẽ kéo dài đến hết tháng 10. [https://phabricator.wikimedia.org/T430058]
* [[m:Special:MyLanguage/Product and Technology Advisory Council|Hội đồng Cố vấn về Sản phẩm và Công nghệ]] đã kêu gọi cộng đồng đề xuất các chủ đề mà hội đồng nên xem xét và thảo luận với Quỹ Wikimedia. Các biên tập viên và tình nguyện viên kỹ thuật được mời đóng góp chủ đề tại [[m:Talk:Product and Technology Advisory Council|trang thảo luận của hội đồng]].
* Cuối tuần này, các cộng đồng sẽ có thể cấu hình tính năng [[mw:Special:MyLanguage/Help:Edit check|Kiểm tra và Gợi ý Sửa đổi]] để chúng được [[mw:Special:MyLanguage/Edit check/Configuration#extraNamespaces|hiển thị trong các không gian tên bổ sung]], chẳng hạn như không gian tên <bdi lang="zxx" dir="ltr"><code><nowiki>Draft:</nowiki></code></bdi>. [[mw:Talk:VisualEditor/Suggestion Mode|Mọi ý kiến đóng góp đều được hoan nghênh]].
* Một lỗi trong [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] đang khiến cho trang không thể tải được đối với người dùng có những thay đổi chưa được xem trên Wikimedia Commons. Các lập trình viên đang tiến hành khắc phục lỗi này. Trong thời gian đó, những người dùng bị ảnh hưởng có thể làm theo các giải pháp thay thế được nêu trong mục trợ giúp [[mw:Special:MyLanguage/Extension:GlobalWatchlist#GlobalWatchlist temporarily broken for users with Wikimedia Commons|có liên quan]].
* Các từ ma thuật mới <bdi lang="zxx" dir="ltr"><code><nowiki>{{CATEGORYSORT:TIMESTAMP}}</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>{{CATEGORYSORT:RTIMESTAMP}}</nowiki></code></bdi> hiện đã có sẵn để sử dụng. Chúng có khả năng thay đổi cách sắp xếp mặc định của các thể loại dựa trên dấu thời gian xếp thể loại. [https://phabricator.wikimedia.org/T433768]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:20}} {{PLURAL:20|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, sự cố không thể truy cập được [https://wikistats.wmcloud.org/ Wikistats] cho các trang Wikipedia nay đã được giải quyết. [https://phabricator.wikimedia.org/T435959]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Việc chuyển đổi trung tâm dữ liệu, vốn dự kiến được diễn ra vào ngày 23 tháng 9, đã bị hoãn lại. [[diffblog:2025/03/12/hear-that-the-wikis-go-silent-twice-a-year/|Cuộc diễn tập Equinox]] đã bộc lộ các vấn đề về năng lực hệ thống, khiến việc chuyển đổi toàn bộ dịch vụ sang trung tâm dữ liệu khác không thể thực hiện được. Quy trình này đã được tạm dừng để ưu tiên điều tra vấn đề nêu trên, nhằm đảm bảo rằng chúng tôi vẫn có thể phục vụ người dùng một cách ổn định và tin cậy. Một cuộc diễn tập mới sẽ được lên kế hoạch sau. Trong thời gian này, mọi lưu lượng truy cập và hoạt động sửa đổi vẫn sẽ diễn ra như bình thường.
* Vào ngày 23 tháng 9, một sự cố mất điện đã ảnh hưởng đến tất cả các dự án wiki trong một khoảng thời gian ngắn, gây ra vấn đề gián đoạn cho cả chế độ đọc và sửa đổi. Sự cố này cũng ảnh hưởng đến Gerrit. Điều này không liên quan gì đến việc hoãn chuyển đổi trung tâm dữ liệu. [https://www.wikimediastatus.net/incidents/9fm19t8qykk8]
* [[mw:Special:MyLanguage/Help:Extension:Produnto|Produnto]] đã được triển khai trên mediawiki.org và [[phab:T421436|một số wiki sử dụng ngôn ngữ Ấn Độ]]. Chúng tôi mong nhận được phản hồi của bạn về sản phẩm thử nghiệm này. Produnto cho phép người dùng sử dụng các mô đun Lua được lưu trữ trên [[gitlab:repos/lua|GitLab của Wikimedia]]. Nó giúp đơn giản hóa việc chia sẻ mã nguồn Lua giữa các wiki. Thay vì phải sao chép từng mô đun Lua riêng lẻ từ wiki này sang wiki khác, người dùng có thể dễ dàng chia sẻ các gói mã nguồn trên tất cả các wiki.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.22|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* [[m:Event:Cross-wiki Code Collaboration Workshop|Hội thảo cộng tác mã nguồn giữa các wiki]] sẽ được tổ chức trực tuyến vào ngày 2 tháng 10 lúc 12:30 UTC, quy tụ những cộng tác viên kỹ thuật Nam Á nhằm tìm hiểu về Produnto và bắt đầu thử nghiệm nó trên các phiên bản Wikipedia tiếng Hindi, tiếng Punjabi, tiếng Odia, tiếng Telugu và tiếng Malayalam. Produnto là một trình quản lý gói để triển khai các mô đun Lua được lưu trữ trên GitLab đến các wiki của Wikimedia và gần đây đã được triển khai trên một số wiki thí điểm.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/40|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W40"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 10:49, ngày 28 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31092225 -->
kkomap7xgfohr1c5be83ekbbo3vaod9
sillones
0
239618
2567086
2277800
2026-09-28T01:19:54Z
Hiyuune
50834
/* Tiếng Anh */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567086
wikitext
text/x-wiki
=={{langname|es}}==
==={{ĐM|pron}}===
{{es-pr}}
==={{ĐM|n}}===
{{head|es|Biến thể hình thái danh từ|g=m-p}}
# {{plural of|es|sillón}}
5fily43oaxm39lnqskv2hzycnu6x9fm
Bản mẫu:Mục từ cần viết/Danh sách
10
245054
2567016
2562790
2026-09-27T15:10:12Z
TheHighFighter2
42988
/* */
2567016
wikitext
text/x-wiki
[[actiniaria]]<br>
[[inline]]<br>
[[côngxoocxiom]]<br>
[[repurpose]]<br>
[[okroug]]<br>
[[checkmark]]<br>
[[hegemon]]<br>
[[cross-functional]]<br>
[[choropleth]]<br>
[[nói này nói kia]]<br>
[[dây chèo]]<br>
[[thế giới ngầm]]<br>
[[deep-lying]]<br>
[[sweet on]]<br>
[[segue]]<br>
[[this day]]<br>
[[that day]]<br>
[[tradwife]]<br>
[[mean-spiritedness]]<br>
[[sư biểu]]<br>
[[dolphin kick]]<br>
[[person-dichotomy]]<br>
[[thanh tẩy]]<br>
[[lẩy thơ]]<br>
[[hiền trí]]<br>
[[interfamily]]<br>
[[cwtch]]<br>
[[viễn ấn]]<br>
[[hương đăng]]<br>
[[định suất]]<br>
[[quê xệ]]<br>
[[ngủ nướng]]<br>
[[thâu canh]]<br>
[[phân trại]]<br>
[[phả độ]]<br>
[[canh me]]<br>
[[tác thể]]<br>
[[phên dậu]]<br>
[[biệt nhỡn]]<br>
[[bà hoàng]]<br>
[[gái gú]]<br>
jm3a1qwo22psyn2n7vee153q9tlou2o
Mô đun:languages
828
256178
2567132
2366354
2026-09-28T08:57:34Z
Hiyuune
50834
2567132
Scribunto
text/plain
--[==[ intro:
This module implements fetching of language-specific information and processing text in a given language.
===Types of languages===
There are two types of languages: full languages and etymology-only languages. The essential difference is that only
full languages appear in L2 headings in vocabulary entries, and hence categories like [[:Category:French nouns]] exist
only for full languages. Etymology-only languages have either a full language or another etymology-only language as
their parent (in the parent-child inheritance sense), and for etymology-only languages with another etymology-only
language as their parent, a full language can always be derived by following the parent links upwards. For example,
"Canadian French", code `fr-CA`, is an etymology-only language whose parent is the full language "French", code `fr`.
An example of an etymology-only language with another etymology-only parent is "Northumbrian Old English", code
`ang-nor`, which has "Anglian Old English", code `ang-ang` as its parent; this is an etymology-only language whose
parent is "Old English", code `ang`, which is a full language. (This is because Northumbrian Old English is considered
a variety of Anglian Old English.) Sometimes the parent is the "Undetermined" language, code `und`; this is the case,
for example, for "substrate" languages such as "Pre-Greek", code `qsb-grc`, and "the BMAC substrate", code `qsb-bma`.
It is important to distinguish language ''parents'' from language ''ancestors''. The parent-child relationship is one
of containment, i.e. if X is a child of Y, X is considered a variety of Y. On the other hand, the ancestor-descendant
relationship is one of descent in time. For example, "Classical Latin", code `la-cla`, and "Late Latin", code `la-lat`,
are both etymology-only languages with "Latin", code `la`, as their parents, because both of the former are varieties
of Latin. However, Late Latin does *NOT* have Classical Latin as its parent because Late Latin is *not* a variety of
Classical Latin; rather, it is a descendant. There is in fact a separate `ancestors` field that is used to express the
ancestor-descendant relationship, and Late Latin's ancestor is given as Classical Latin. It is also important to note
that sometimes an etymology-only language is actually the conceptual ancestor of its parent language. This happens,
for example, with "Old Italian" (code `roa-oit`), which is an etymology-only variant of full language "Italian" (code
`it`), and with "Old Latin" (code `itc-ola`), which is an etymology-only variant of Latin. In both cases, the full
language has the etymology-only variant listed as an ancestor. This allows a Latin term to inherit from Old Latin
using the {{tl|inh}} template (where in this template, "inheritance" refers to ancestral inheritance, i.e. inheritance
in time, rather than in the parent-child sense); likewise for Italian and Old Italian.
Full languages come in three subtypes:
* {regular}: This indicates a full language that is attested according to [[WT:CFI]] and therefore permitted in the
main namespace. There may also be reconstructed terms for the language, which are placed in the
{Reconstruction} namespace and must be prefixed with * to indicate a reconstruction. Most full languages
are natural (not constructed) languages, but a few constructed languages (e.g. Esperanto and Volapük,
among others) are also allowed in the mainspace and considered regular languages.
* {reconstructed}: This language is not attested according to [[WT:CFI]], and therefore is allowed only in the
{Reconstruction} namespace. All terms in this language are reconstructed, and must be prefixed with
*. Languages such as Proto-Indo-European and Proto-Germanic are in this category.
* {appendix-constructed}: This language is attested but does not meet the additional requirements set out for
constructed languages ([[WT:CFI#Constructed languages]]). Its entries must therefore be in
the Appendix namespace, but they are not reconstructed and therefore should not have *
prefixed in links. Most constructed languages are of this subtype.
Both full languages and etymology-only languages have a {Language} object associated with them, which is fetched using
the {getByCode} function in [[Module:languages]] to convert a language code to a {Language} object. Depending on the
options supplied to this function, etymology-only languages may or may not be accepted, and family codes may be
accepted (returning a {Family} object as described in [[Module:families]]). There are also separate {getByCanonicalName}
functions in [[Module:languages]] and [[Module:etymology languages]] to convert a language's canonical name to a
{Language} object (depending on whether the canonical name refers to a full or etymology-only language).
===Textual representations===
Textual strings belonging to a given language come in several different ''text variants'':
# The ''input text'' is what the user supplies in wikitext, in the parameters to {{tl|m}}, {{tl|l}}, {{tl|ux}},
{{tl|t}}, {{tl|lang}} and the like.
# The ''corrected input text'' is the input text with some corrections and/or normalizations applied, such as
bad-character replacements for certain languages, like replacing `l` or `1` to [[palochka]] in some languages written
in Cyrillic. (FIXME: This currently goes under the name ''display text'' but that will be repurposed below. Also,
[[User:Surjection]] suggests renaming this to ''normalized input text'', but "normalized" is used in a different sense
in [[Module:usex]].)
# The ''display text'' is the text in the form as it will be displayed to the user. This is what appears in headwords,
in usexes, in displayed internal links, etc. This can include accent marks that are removed to form the stripped
display text (see below), as well as embedded bracketed links that are variously processed further. The display text
is generated from the corrected input text by applying language-specific transformations; for most languages, there
will be no such transformations. The general reason for having a difference between input and display text is to allow
for extra information in the input text that is not displayed to the user but is sent to the transliteration module.
Note that having different display and input text is only supported currently through special-casing but will be
generalized. Examples of transformations are: (1) Removing the {{cd|^}} that is used in certain East Asian (and
possibly other unicameral) languages to indicate capitalization of the transliteration (which is currently
special-cased); (2) for Korean, removing or otherwise processing hyphens (which is currently special-cased); (3) for
Arabic, removing a ''sukūn'' diacritic placed over a ''tāʔ marbūṭa'' (like this: ةْ) to indicate that the
''tāʔ marbūṭa'' is pronounced and transliterated as /t/ instead of being silent [NOTE, NOT IMPLEMENTED YET]; (4) for
Thai and Khmer, converting space-separated words to bracketed words and resolving respelling substitutions such as
`[กรีน/กฺรีน]`, which indicate how to transliterate given words [NOTE, NOT IMPLEMENTED YET except in language-specific
templates like {{tl|th-usex}}].
## The ''right-resolved display text'' is the result of removing brackets around one-part embedded links and resolving
two-part embedded links into their right-hand components (i.e. converting two-part links into the displayed form).
The process of right-resolution is what happens when you call {{cd|remove_links()}} in [[Module:links]] on some text.
When applied to the display text, it produces exactly what the user sees, without any link markup.
# The ''stripped display text'' is the result of applying diacritic-stripping to the display text.
## The ''left-resolved stripped display text'' [NEED BETTER NAME] is the result of applying left-resolution to the
stripped display text, i.e. similar to right-resolution but resolving two-part embedded links into their left-hand
components (i.e. the linked-to page). If the display text refers to a single page, the resulting of applying
diacritic stripping and left-resolution produces the ''logical pagename''.
# The ''physical pagename text'' is the result of converting the stripped display text into physical page links. If the
stripped display text contains embedded links, the left side of those links is converted into physical page links;
otherwise, the entire text is considered a pagename and converted in the same fashion. The conversion does three
things: (1) converts characters not allowed in pagenames into their "unsupported title" representation, e.g.
{{cd|Unsupported titles/`gt`}} in place of the logical name {{cd|>}}; (2) handles certain special-cased
unsupported-title logical pagenames, such as {{cd|Unsupported titles/Space}} in place of {{cd|[space]}} and
{{cd|Unsupported titles/Ancient Greek dish}} in place of a very long Greek name for a gourmet dish as found in
Aristophanes; (3) converts "mammoth" pagenames such as [[a]] into their appropriate split component, e.g.
[[a/languages A to L]].
# The ''source translit text'' is the text as supplied to the language-specific {{cd|transliterate()}} method. The form
of the source translit text may need to be language-specific, e.g Thai and Khmer will need the corrected input text,
whereas other languages may need to work off the display text. [FIXME: It's still unclear to me how embedded bracketed
links are handled in the existing code.] In general, embedded links need to be right-resolved (see above), but when
this happens is unclear to me [FIXME]. Some languages have a chop-up-and-paste-together scheme that sends parts of the
text through the transliterate mechanism, and for others (those listed with "cont" in {{cd|substitution}} in
[[Module:languages/data]]) they receive the full input text, but preprocessed in certain ways. (The wisdom of this is
still unclear to me.)
# The ''transliterated text'' (or ''transliteration'') is the result of transliterating the source translit text. Unlike
for all the other text variants except the transcribed text, it is always in the Latin script.
# The ''transcribed text'' (or ''transcription'') is the result of transcribing the source translit text, where
"transcription" here means a close approximation to the phonetic form of the language in languages (e.g. Akkadian,
Sumerian, Ancient Egyptian, maybe Tibetan) that have a wide difference between the written letters and spoken form.
Unlike for all the other text variants other than the transliterated text, it is always in the Latin script.
Currently, the transcribed text is always supplied manually be the user; there is no such thing as a
{{cd|transcribe()}} method on language objects.
# The ''sort key'' is the text used in sort keys for determining the placing of pages in categories they belong to. The
sort key is generated from the pagename or a specified ''sort base'' by lowercasing, doing language-specific
transformations and then uppercasing the result. If the sort base is supplied and is generated from input text, it
needs to be converted to display text, have embedded links removed through right-resolution and have
diacritic-stripping applied.
# There are other text variants that occur in usexes (specifically, there are normalized variants of several of the
above text variants), but we can skip them for now.
The following methods exist on {Language} objects to convert between different text variants:
# {correctInputText} (currently called {makeDisplayText}): This converts input text to corrected input text.
# {stripDiacritics}: This converts to stripped display text. [FIXME: This needs some rethinking. In particular,
{stripDiacritics} is sometimes called on input text, corrected input text or display text (in various paths inside of
[[Module:links]], and, in the case of input text, usually from other modules). We need to make sure we don't try to
convert input text to display text twice, but at the same time we need to support calling it directly on input text
since so many modules do this. This means we need to add a parameter indicating whether the passed-in text is input,
corrected input, or display text; if the former two, we call {correctInputText} ourselves.]
# {logicalToPhysical}: This converts logical pagenames to physical pagenames.
# {transliterate}: This appears to convert input text with embedded brackets removed into a transliteration.
[FIXME: This needs some rethinking. In particular, it calls {processDisplayText} on its input, which won't work
for Thai and Khmer, so we may need language-specific flags indicating whether to pass the input text directly to the
language transliterate method. In addition, I'm not sure how embedded links are handled in the existing translit code;
a lot of callers remove the links themselves before calling {transliterate()}, which I assume is wrong.]
# {makeSortKey}: This converts display text (?) to a sort key. [FIXME: Clarify this.]
]==]
local export = {}
local debug_track_module = "Module:debug/track"
local etymology_languages_data_module = "Module:etymology languages/data"
local families_module = "Module:families"
local headword_page_module = "Module:headword/page"
local json_module = "Module:JSON"
local language_like_module = "Module:language-like"
local languages_data_module = "Module:languages/data"
local languages_data_patterns_module = "Module:languages/data/patterns"
local links_data_module = "Module:links/data"
local load_module = "Module:load"
local scripts_module = "Module:scripts"
local scripts_data_module = "Module:scripts/data"
local string_encode_entities_module = "Module:string/encode entities"
local string_pattern_escape_module = "Module:string/patternEscape"
local string_replacement_escape_module = "Module:string/replacementEscape"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local utilities_module = "Module:utilities"
local wikimedia_languages_module = "Module:wikimedia languages"
local mw = mw
local string = string
local table = table
local char = string.char
local concat = table.concat
local find = string.find
local floor = math.floor
local get_by_code -- Defined below.
local get_data_module_name -- Defined below.
local get_extra_data_module_name -- Defined below.
local getmetatable = getmetatable
local gmatch = string.gmatch
local gsub = string.gsub
local insert = table.insert
local ipairs = ipairs
local is_known_language_tag = mw.language.isKnownLanguageTag
local make_object -- Defined below.
local match = string.match
local next = next
local pairs = pairs
local remove = table.remove
local require = require
local select = select
local setmetatable = setmetatable
local sub = string.sub
local type = type
local unstrip = mw.text.unstrip
-- Loaded as needed by findBestScript.
local Hans_chars
local Hant_chars
local function check_object(...)
check_object = require(utilities_module).check_object
return check_object(...)
end
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function decode_entities(...)
decode_entities = require(string_utilities_module).decode_entities
return decode_entities(...)
end
local function decode_uri(...)
decode_uri = require(string_utilities_module).decode_uri
return decode_uri(...)
end
local function deep_copy(...)
deep_copy = require(table_module).deepCopy
return deep_copy(...)
end
local function encode_entities(...)
encode_entities = require(string_encode_entities_module)
return encode_entities(...)
end
local function get_L2_sort_key(...)
get_L2_sort_key = require(headword_page_module).get_L2_sort_key
return get_L2_sort_key(...)
end
local function get_script(...)
get_script = require(scripts_module).getByCode
return get_script(...)
end
local function find_best_script_without_lang(...)
find_best_script_without_lang = require(scripts_module).findBestScriptWithoutLang
return find_best_script_without_lang(...)
end
local function get_family(...)
get_family = require(families_module).getByCode
return get_family(...)
end
local function get_plaintext(...)
get_plaintext = require(utilities_module).get_plaintext
return get_plaintext(...)
end
local function get_wikimedia_lang(...)
get_wikimedia_lang = require(wikimedia_languages_module).getByCode
return get_wikimedia_lang(...)
end
local function keys_to_list(...)
keys_to_list = require(table_module).keysToList
return keys_to_list(...)
end
local function list_to_set(...)
list_to_set = require(table_module).listToSet
return list_to_set(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function make_family_object(...)
make_family_object = require(families_module).makeObject
return make_family_object(...)
end
local function pattern_escape(...)
pattern_escape = require(string_pattern_escape_module)
return pattern_escape(...)
end
local function replacement_escape(...)
replacement_escape = require(string_replacement_escape_module)
return replacement_escape(...)
end
local function safe_require(...)
safe_require = require(load_module).safe_require
return safe_require(...)
end
local function shallow_copy(...)
shallow_copy = require(table_module).shallowCopy
return shallow_copy(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function to_json(...)
to_json = require(json_module).toJSON
return to_json(...)
end
local function u(...)
u = require(string_utilities_module).char
return u(...)
end
local function ugsub(...)
ugsub = require(string_utilities_module).gsub
return ugsub(...)
end
local function ulen(...)
ulen = require(string_utilities_module).len
return ulen(...)
end
local function ulower(...)
ulower = require(string_utilities_module).lower
return ulower(...)
end
local function umatch(...)
umatch = require(string_utilities_module).match
return umatch(...)
end
local function uupper(...)
uupper = require(string_utilities_module).upper
return uupper(...)
end
local function track(page)
debug_track("languages/" .. page)
return true
end
local function normalize_code(code)
return load_data(languages_data_module).aliases[code] or code
end
local function check_inputs(self, check, default, ...)
local n = select("#", ...)
if n == 0 then
return false
end
local ret = check(self, (...))
if ret ~= nil then
return ret
elseif n > 1 then
local inputs = {...}
for i = 2, n do
ret = check(self, inputs[i])
if ret ~= nil then
return ret
end
end
end
return default
end
local function make_link(self, target, display)
local prefix, main
if self:getFamilyCode() == "qfa-sub" then
prefix, main = display:match("^(the )(.*)")
if not prefix then
prefix, main = display:match("^(a )(.*)")
end
end
return (prefix or "") .. "[[" .. target .. "|" .. (main or display) .. "]]"
end
-- Convert risky characters to HTML entities, which minimizes interference once returned (e.g. for "sms:a", "<!-- -->" etc.).
local function escape_risky_characters(text)
-- Spacing characters in isolation generally need to be escaped in order to be properly processed by the MediaWiki software.
if umatch(text, "^%s*$") then
return encode_entities(text, text)
end
return encode_entities(text, "!#%&*+/:;<=>?@[\\]_{|}")
end
-- Temporarily convert various formatting characters to PUA to prevent them from being disrupted by the substitution process.
local function doTempSubstitutions(text, subbedChars, keepCarets, noTrim)
-- Clone so that we don't insert any extra patterns into the table in package.loaded. For some reason, using require seems to keep memory use down; probably because the table is always cloned.
local patterns = shallow_copy(require(languages_data_patterns_module))
if keepCarets then
insert(patterns, "((\\+)%^)")
insert(patterns, "((%^))")
end
-- Ensure any whitespace at the beginning and end is temp substituted, to prevent it from being accidentally trimmed. We only want to trim any final spaces added during the substitution process (e.g. by a module), which means we only do this during the first round of temp substitutions.
if not noTrim then
insert(patterns, "^([\128-\191\244]*(%s+))")
insert(patterns, "((%s+)[\128-\191\244]*)$")
end
-- Pre-substitution, of "[[" and "]]", which makes pattern matching more accurate.
text = gsub(text, "%f[%[]%[%[", "\1"):gsub("%f[%]]%]%]", "\2")
local i = #subbedChars
for _, pattern in ipairs(patterns) do
-- Patterns ending in \0 stand are for things like "[[" or "]]"), so the inserted PUA are treated as breaks between terms by modules that scrape info from pages.
local term_divider
pattern = gsub(pattern, "%z$", function(divider)
term_divider = divider == "\0"
return ""
end)
text = gsub(text, pattern, function(...)
local m = {...}
local m1New = m[1]
for k = 2, #m do
local n = i + k - 1
subbedChars[n] = m[k]
local byte2 = floor(n / 4096) % 64 + (term_divider and 128 or 136)
local byte3 = floor(n / 64) % 64 + 128
local byte4 = n % 64 + 128
m1New = gsub(m1New, pattern_escape(m[k]), "\244" .. char(byte2) .. char(byte3) .. char(byte4), 1)
end
i = i + #m - 1
return m1New
end)
end
text = gsub(text, "\1", "%[%["):gsub("\2", "%]%]")
return text, subbedChars
end
-- Reinsert any formatting that was temporarily substituted.
local function undoTempSubstitutions(text, subbedChars)
for i = 1, #subbedChars do
local byte2 = floor(i / 4096) % 64 + 128
local byte3 = floor(i / 64) % 64 + 128
local byte4 = i % 64 + 128
text = gsub(text, "\244[" .. char(byte2) .. char(byte2+8) .. "]" .. char(byte3) .. char(byte4),
replacement_escape(subbedChars[i]))
end
text = gsub(text, "\1", "%[%["):gsub("\2", "%]%]")
return text
end
-- Check if the raw text is an unsupported title, and if so return that. Otherwise, remove HTML entities. We do the pre-conversion to avoid loading the unsupported title list unnecessarily.
local function checkNoEntities(self, text)
local textNoEnc = decode_entities(text)
if textNoEnc ~= text and load_data(links_data_module).unsupported_titles[text] then
return text
else
return textNoEnc
end
end
-- If no script object is provided (or if it's invalid or None), get one.
local function checkScript(text, self, sc)
if not check_object("script", true, sc) or sc:getCode() == "None" then
return self:findBestScript(text)
end
return sc
end
local function normalize(text, sc)
text = sc:fixDiscouragedSequences(text)
return sc:toFixedNFD(text)
end
-- Subfunction of iterateSectionSubstitutions(). Process an individual chunk of text according to the specifications in
-- `substitution_data`. The input parameters are all as in the documentation of iterateSectionSubstitutions() except for
-- `recursed`, which is set to true if we called ourselves recursively to process a script-specific setting or
-- script-wide fallback. Returns two values: the processed text and the actual substitution data used to do the
-- substitutions (same as the `actual_substitution_data` return value to iterateSectionSubstitutions()).
local function doSubstitutions(self, text, sc, substitution_data, data_field, function_name, recursed)
-- BE CAREFUL in this function because the value at any level can be `false`, which causes no processing to be done
-- and blocks any further fallback processing.
local actual_substitution_data = substitution_data
-- If there are language-specific substitutes given in the data module, use those.
if type(substitution_data) == "table" then
-- If a script is specified, run this function with the script-specific data before continuing.
local sc_code = sc:getCode()
local has_substitution_data = false
if substitution_data[sc_code] ~= nil then
has_substitution_data = true
if substitution_data[sc_code] then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data[sc_code], data_field,
function_name, true)
end
-- Hant, Hans and Hani are usually treated the same, so add a special case to avoid having to specify each one
-- separately.
elseif sc_code:match("^Han") and substitution_data.Hani ~= nil then
has_substitution_data = true
if substitution_data.Hani then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data.Hani, data_field,
function_name, true)
end
-- Substitution data with key 1 in the outer table may be given as a fallback.
elseif substitution_data[1] ~= nil then
has_substitution_data = true
if substitution_data[1] then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data[1], data_field,
function_name, true)
end
end
-- Iterate over all strings in the "from" subtable, and gsub with the corresponding string in "to". We work with
-- the NFD decomposed forms, as this simplifies many substitutions.
if substitution_data.from then
has_substitution_data = true
for i, from in ipairs(substitution_data.from) do
-- Normalize each loop, to ensure multi-stage substitutions work correctly.
text = sc:toFixedNFD(text)
text = ugsub(text, sc:toFixedNFD(from), substitution_data.to[i] or "")
end
end
if substitution_data.remove_diacritics then
has_substitution_data = true
text = sc:toFixedNFD(text)
-- Convert exceptions to PUA.
local remove_exceptions, substitutes = substitution_data.remove_exceptions
if remove_exceptions then
substitutes = {}
local i = 0
for _, exception in ipairs(remove_exceptions) do
exception = sc:toFixedNFD(exception)
text = ugsub(text, exception, function(m)
i = i + 1
local subst = u(0x80000 + i)
substitutes[subst] = m
return subst
end)
end
end
-- Strip diacritics.
text = ugsub(text, "[" .. substitution_data.remove_diacritics .. "]", "")
-- Convert exceptions back.
if remove_exceptions then
text = text:gsub("\242[\128-\191]*", substitutes)
end
end
if not has_substitution_data and sc._data[data_field] then
-- If language-specific sort key (etc.) is nil, fall back to script-wide sort key (etc.).
text, actual_substitution_data = doSubstitutions(self, text, sc, sc._data[data_field], data_field,
function_name, true)
end
elseif type(substitution_data) == "string" then
-- If there is a dedicated function module, use that.
local module = safe_require("Module:" .. substitution_data)
if module then
-- TODO: translit functions should take objects, not codes.
-- TODO: translit functions should be called with form NFD.
if function_name == "tr" then
if not module[function_name] then
error(("Internal error: Module [[%s]] has no function named 'tr'"):format(substitution_data))
end
text = module[function_name](text, self._code, sc:getCode())
elseif function_name == "stripDiacritics" then
-- FIXME, get rid of this arm after renaming makeEntryName -> stripDiacritics.
if module[function_name] then
text = module[function_name](sc:toFixedNFD(text), self, sc)
elseif module.makeEntryName then
text = module.makeEntryName(sc:toFixedNFD(text), self, sc)
else
error(("Internal error: Module [[%s]] has no function named 'stripDiacritics' or 'makeEntryName'"
):format(substitution_data))
end
else
if not module[function_name] then
error(("Internal error: Module [[%s]] has no function named '%s'"):format(
substitution_data, function_name))
end
text = module[function_name](sc:toFixedNFD(text), self, sc)
end
else
error("Substitution data '" .. substitution_data .. "' does not match an existing module.")
end
elseif substitution_data == nil and sc._data[data_field] then
-- If language-specific sort key (etc.) is nil, fall back to script-wide sort key (etc.).
text, actual_substitution_data = doSubstitutions(self, text, sc, sc._data[data_field], data_field,
function_name, true)
end
-- Don't normalize to NFC if this is the inner loop or if a module returned nil.
if recursed or not text then
return text, actual_substitution_data
end
-- Fix any discouraged sequences created during the substitution process, and normalize into the final form.
return sc:toFixedNFC(sc:fixDiscouragedSequences(text)), actual_substitution_data
end
-- Split the text into sections, based on the presence of temporarily substituted formatting characters, then iterate
-- over each section to apply substitutions (e.g. transliteration or diacritic stripping). This avoids putting PUA
-- characters through language-specific modules, which may be unequipped for them. This function is passed the following
-- values:
-- * `self` (the Language object);
-- * `text` (the text to process);
-- * `sc` (the script of the text, which must be specified; callers should call checkScript() as needed to autodetect the
-- script of the text if not given explicitly by the user);
-- * `subbedChars` (an array of the same length as the text, indicating which characters have been substituted and by
-- what, or {nil} if no substitutions are to happen);
-- * `keepCarets` (DOCUMENT ME);
-- * `substitution_data` (the data indicating which substitutions to apply, taken directly from `data_field` in the
-- language's data structure in a submodule of [[Module:languages/data]]);
-- * `data_field` (the data field from which `substitution_data` was fetched, such as "sort_key" or "strip_diacritics");
-- * `function_name` (the name of the function to call to do the substitution, in case `substitution_data` specifies a
-- module to do the substitution);
-- * `notrim` (don't trim whitespace at the edges of `text`; set when computing the sort key, because whitespace at the
-- beginning of a sort key is significant and causes the resulting page to be sorted at the beginning of the category
-- it's in).
-- Returns three values:
-- (1) the processed text;
-- (2) the value of `subbedChars` that was passed in, possibly modified with additional character substitutions; will be
-- {nil} if {nil} was passed in;
-- (3) the actual substitution data that was used to apply substitutions to `text`; this may be different from the value
-- of `substitution_data` passed in if that value recursively specified script-specific substitutions or if no
-- substitution data could be found in the language-specific data (e.g. {nil} was passed in or a structure was passed
-- in that had no setting for the script given in `sc`), but a script-wide fallback value was set; currently it is
-- only used by makeSortKey().
local function iterateSectionSubstitutions(self, text, sc, subbedChars, keepCarets, substitution_data, data_field,
function_name, notrim)
local sections
-- See [[Module:languages/data]].
if not find(text, "\244") or load_data(languages_data_module).substitution[self._code] == "cont" then
sections = {text}
else
sections = split(text, "\244[\128-\143][\128-\191]*", true)
end
local actual_substitution_data
for _, section in ipairs(sections) do
-- Don't bother processing empty strings or whitespace (which may also not be handled well by dedicated
-- modules).
if gsub(section, "%s+", "") ~= "" then
local sub, this_actual_substitution_data = doSubstitutions(self, section, sc, substitution_data, data_field,
function_name)
actual_substitution_data = this_actual_substitution_data
-- Second round of temporary substitutions, in case any formatting was added by the main substitution
-- process. However, don't do this if the section contains formatting already (as it would have had to have
-- been escaped to reach this stage, and therefore should be given as raw text).
if sub and subbedChars then
local noSub
for _, pattern in ipairs(require(languages_data_patterns_module)) do
if match(section, pattern .. "%z?") then
noSub = true
end
end
if not noSub then
sub, subbedChars = doTempSubstitutions(sub, subbedChars, keepCarets, true)
end
end
if not sub then
text = sub
break
end
text = sub and gsub(text, pattern_escape(section), replacement_escape(sub), 1) or text
end
end
if not notrim then
-- Trim, unless there are only spacing characters, while ignoring any final formatting characters.
-- Do not trim sort keys because spaces at the beginning are significant.
text = text and text:gsub("^([\128-\191\244]*)%s+(%S)", "%1%2"):gsub("(%S)%s+([\128-\191\244]*)$", "%1%2") or
nil
end
return text, subbedChars, actual_substitution_data
end
-- Process carets (and any escapes). Default to simple removal, if no pattern/replacement is given.
local function processCarets(text, pattern, repl)
local rep
repeat
text, rep = gsub(text, "\\\\(\\*^)", "\3%1")
until rep == 0
return (text:gsub("\\^", "\4")
:gsub(pattern or "%^", repl or "")
:gsub("\3", "\\")
:gsub("\4", "^"))
end
-- Remove carets if they are used to capitalize parts of transliterations (unless they have been escaped).
local function removeCarets(text, sc)
if not sc:hasCapitalization() and sc:isTransliterated() and text:find("^", 1, true) then
return processCarets(text)
else
return text
end
end
local Language = {}
--[==[Returns the language code of the language. Example: {{code|lua|"fr"}} for French.]==]
function Language:getCode()
return self._code
end
--[==[Returns the canonical name of the language. This is the name used to represent that language on Wiktionary, and is guaranteed to be unique to that language alone. Example: {{code|lua|"French"}} for French.]==]
function Language:getCanonicalName()
local name = self._name
if name == nil then
name = self._data[1]
self._name = name
end
return name
end
function Language:getCanonicalName2()
return self._data[5]
end
function Language:getCanonicalName3()
return self._data[6]
end
--[==[
Return the display form of the language. The display form of a language, family or script is the form it takes when
appearing as the <code><var>source</var></code> in categories such as <code>English terms derived from
<var>source</var></code> or <code>English given names from <var>source</var></code>, and is also the displayed text
in {makeCategoryLink()} links. For full and etymology-only languages, this is the same as the canonical name, but
for families, it reads <code>"<var>name</var> languages"</code> (e.g. {"Indo-Iranian languages"}), and for scripts,
it reads <code>"<var>name</var> script"</code> (e.g. {"Arabic script"}).
]==]
function Language:getDisplayForm()
local form = self._displayForm
if form == nil then
form = self:getCanonicalName()
-- Add article and " substrate" to substrates that lack them.
if self:getFamilyCode() == "qfa-sub" then
if not (sub(form, 1, 4) == "" or sub(form, 1, 2) == "a ") then
form = " " .. form
end
if not match(form, " [Ss]ubstrate") then
form = form .. " substrate"
end
end
self._displayForm = form
end
return form
end
--[==[Returns the value which should be used in the HTML lang= attribute for tagged text in the language.]==]
function Language:getHTMLAttribute(sc, region)
local code = self._code
if not find(code, "-", 1, true) then
return code .. "-" .. sc:getCode() .. (region and "-" .. region or "")
end
local parent = self:getParent()
region = region or match(code, "%f[%u][%u-]+%f[%U]")
if parent then
return parent:getHTMLAttribute(sc, region)
end
-- TODO: ISO family codes can also be used.
return "mis-" .. sc:getCode() .. (region and "-" .. region or "")
end
--[==[Returns a table of the aliases that the language is known by, excluding the canonical name. Aliases are synonyms for the language in question. The names are not guaranteed to be unique, in that sometimes more than one language is known by the same name. Example: {{code|lua|{"High German", "New High German", "Deutsch"} }} for [[:Category:German language|German]].]==]
function Language:getAliases()
self:loadInExtraData()
return require(language_like_module).getAliases(self)
end
--[==[
Return a table of the known subvarieties of a given language, excluding subvarieties that have been given
explicit etymology-only language codes. The names are not guaranteed to be unique, in that sometimes a given name
refers to a subvariety of more than one language. Example: {{code|lua|{"Southern Aymara", "Central Aymara"} }} for
[[:Category:Aymara language|Aymara]]. Note that the returned value can have nested tables in it, when a subvariety
goes by more than one name. Example: {{code|lua|{"North Azerbaijani", "South Azerbaijani", {"Afshar", "Afshari",
"Afshar Azerbaijani", "Afchar"}, {"Qashqa'i", "Qashqai", "Kashkay"}, "Sonqor"} }} for
[[:Category:Azerbaijani language|Azerbaijani]]. Here, for example, Afshar, Afshari, Afshar Azerbaijani and Afchar
all refer to the same subvariety, whose preferred name is Afshar (the one listed first). To avoid a return value
with nested tables in it, specify a non-{{code|lua|nil}} value for the <code>flatten</code> parameter; in that case,
the return value would be {{code|lua|{"North Azerbaijani", "South Azerbaijani", "Afshar", "Afshari",
"Afshar Azerbaijani", "Afchar", "Qashqa'i", "Qashqai", "Kashkay", "Sonqor"} }}.
]==]
function Language:getVarieties(flatten)
self:loadInExtraData()
return require(language_like_module).getVarieties(self, flatten)
end
--[==[Returns a table of the "other names" that the language is known by, which are listed in the <code>otherNames</code> field. It should be noted that the <code>otherNames</code> field itself is deprecated, and entries listed there should eventually be moved to either <code>aliases</code> or <code>varieties</code>.]==]
function Language:getOtherNames() -- To be eventually removed, once there are no more uses of the `otherNames` field.
self:loadInExtraData()
return require(language_like_module).getOtherNames(self)
end
--[==[
Return a combined table of the canonical name, aliases, varieties and other names of a given language.]==]
function Language:getAllNames()
self:loadInExtraData()
return require(language_like_module).getAllNames(self)
end
--[==[Returns a table of types as a lookup table (with the types as keys).
The possible types are
* {language}: This is a language, either full or etymology-only.
* {full}: This is a "full" (not etymology-only) language, i.e. the union of {regular}, {reconstructed} and
{appendix-constructed}. Note that the types {full} and {etymology-only} also exist for families, so if you
want to check specifically for a full language and you have an object that might be a family, you should
use {{lua|hasType("language", "full")}} and not simply {{lua|hasType("full")}}.
* {etymology-only}: This is an etymology-only (not full) language, whose parent is another etymology-only
language or a full language. Note that the types {full} and {etymology-only} also exist for
families, so if you want to check specifically for an etymology-only language and you have an
object that might be a family, you should use {{lua|hasType("language", "etymology-only")}}
and not simply {{lua|hasType("etymology-only")}}.
* {regular}: This indicates a full language that is attested according to [[WT:CFI]] and therefore permitted
in the main namespace. There may also be reconstructed terms for the language, which are placed in
the {Reconstruction} namespace and must be prefixed with * to indicate a reconstruction. Most full
languages are natural (not constructed) languages, but a few constructed languages (e.g. Esperanto
and Volapük, among others) are also allowed in the mainspace and considered regular languages.
* {reconstructed}: This language is not attested according to [[WT:CFI]], and therefore is allowed only in the
{Reconstruction} namespace. All terms in this language are reconstructed, and must be prefixed
with *. Languages such as Proto-Indo-European and Proto-Germanic are in this category.
* {appendix-constructed}: This language is attested but does not meet the additional requirements set out for
constructed languages ([[WT:CFI#Constructed languages]]). Its entries must therefore
be in the Appendix namespace, but they are not reconstructed and therefore should
not have * prefixed in links.
]==]
function Language:getTypes()
local types = self._types
if types == nil then
types = {language = true}
if self:getFullCode() == self._code then
types.full = true
else
types["etymology-only"] = true
end
for t in gmatch(self._data.type, "[^,]+") do
types[t] = true
end
self._types = types
end
return types
end
--[==[Given a list of types as strings, returns true if the language has all of them.]==]
function Language:hasType(...)
Language.hasType = require(language_like_module).hasType
return self:hasType(...)
end
--[==[Returns a table containing <code>WikimediaLanguage</code> objects (see [[Module:wikimedia languages]]), which represent languages and their codes as they are used in Wikimedia projects for interwiki linking and such. More than one object may be returned, as a single Wiktionary language may correspond to multiple Wikimedia languages. For example, Wiktionary's single code <code>sh</code> (Serbo-Croatian) maps to four Wikimedia codes: <code>sh</code> (Serbo-Croatian), <code>bs</code> (Bosnian), <code>hr</code> (Croatian) and <code>sr</code> (Serbian).
The code for the Wikimedia language is retrieved from the <code>wikimedia_codes</code> property in the data modules. If that property is not present, the code of the current language is used. If none of the available codes is actually a valid Wikimedia code, an empty table is returned.]==]
function Language:getWikimediaLanguages()
local wm_langs = self._wikimediaLanguageObjects
if wm_langs == nil then
local codes = self:getWikimediaLanguageCodes()
wm_langs = {}
for i = 1, #codes do
wm_langs[i] = get_wikimedia_lang(codes[i])
end
self._wikimediaLanguageObjects = wm_langs
end
return wm_langs
end
function Language:getWikimediaLanguageCodes()
local wm_langs = self._wikimediaLanguageCodes
if wm_langs == nil then
wm_langs = self._data.wikimedia_codes
if wm_langs then
wm_langs = split(wm_langs, ",", true, true)
else
local code = self._code
if is_known_language_tag(code) then
wm_langs = {code}
else
-- Inherit, but only if no codes are specified in the data *and*
-- the language code isn't a valid Wikimedia language code.
local parent = self:getParent()
wm_langs = parent and parent:getWikimediaLanguageCodes() or {}
end
end
self._wikimediaLanguageCodes = wm_langs
end
return wm_langs
end
--[==[
Returns the name of the Wikipedia article for the language. `project` specifies the language and project to retrieve
the article from, defaulting to {"viwiki"} for the Vietnamese Wikipedia. Normally if specified it should be the project
code for a specific-language Wikipedia e.g. "zhwiki" for the Chinese Wikipedia, but it can be any project, including
non-Wikipedia ones. If the project is the Vietnamese Wikipedia and the property {wikipedia_article} is present in the data
module it will be used first. In all other cases, a sitelink will be generated from {:getWikidataItem} (if set). The
resulting value (or lack of value) is cached so that subsequent calls are fast. If no value could be determined, and
`noCategoryFallback` is {false}, {:getCategoryName} is used as fallback; otherwise, {nil} is returned. Note that if
`noCategoryFallback` is {nil} or omitted, it defaults to {false} if the project is the Vietnamese Wikipedia, otherwise
to {true}. In other words, under normal circumstances, if the Vietnamese Wikipedia article couldn't be retrieved, the
return value will fall back to a link to the language's category, but this won't normally happen for any other project.
]==]
function Language:getWikipediaArticle(noCategoryFallback, project)
Language.getWikipediaArticle = require(language_like_module).getWikipediaArticle
return self:getWikipediaArticle(noCategoryFallback, project)
end
function Language:makeWikipediaLink()
return make_link(self, "w:" .. self:getWikipediaArticle(), self:getCanonicalName())
end
--[==[Returns the name of the Wikimedia Commons category page for the language.]==]
function Language:getCommonsCategory()
Language.getCommonsCategory = require(language_like_module).getCommonsCategory
return self:getCommonsCategory()
end
--[==[Returns the Wikidata item id for the language or <code>nil</code>. This corresponds to the the second field in the data modules.]==]
function Language:getWikidataItem()
Language.getWikidataItem = require(language_like_module).getWikidataItem
return self:getWikidataItem()
end
--[==[Returns a table of <code>Script</code> objects for all scripts that the language is written in. See [[Module:scripts]].]==]
function Language:getScripts()
local scripts = self._scriptObjects
if scripts == nil then
local codes = self:getScriptCodes()
if codes[1] == "All" then
scripts = load_data(scripts_data_module)
else
scripts = {}
for i = 1, #codes do
scripts[i] = get_script(codes[i])
end
end
self._scriptObjects = scripts
end
return scripts
end
--[==[Returns the table of script codes in the language's data file.]==]
function Language:getScriptCodes()
local scripts = self._scriptCodes
if scripts == nil then
scripts = self._data[4]
if scripts then
local codes, n = {}, 0
for code in gmatch(scripts, "[^,]+") do
n = n + 1
-- Special handling of "Hants", which represents "Hani", "Hant" and "Hans" collectively.
if code == "Hants" then
codes[n] = "Hani"
codes[n + 1] = "Hant"
codes[n + 2] = "Hans"
n = n + 2
else
codes[n] = code
end
end
scripts = codes
else
scripts = {"None"}
end
self._scriptCodes = scripts
end
return scripts
end
--[==[Given some text, this function iterates through the scripts of a given language and tries to find the script that best matches the text. It returns a {{code|lua|Script}} object representing the script. If no match is found at all, it returns the {{code|lua|None}} script object.]==]
function Language:findBestScript(text, forceDetect)
if not text or text == "" or text == "-" then
return get_script("None")
end
-- Differs from table returned by getScriptCodes, as Hants is not normalized into its constituents.
local codes = self._bestScriptCodes
if codes == nil then
codes = self._data[4]
codes = codes and split(codes, ",", true, true) or {"None"}
self._bestScriptCodes = codes
end
local first_sc = codes[1]
if first_sc == "All" then
return find_best_script_without_lang(text)
end
local codes_len = #codes
if not (forceDetect or first_sc == "Hants" or codes_len > 1) then
first_sc = get_script(first_sc)
local charset = first_sc.characters
return charset and umatch(text, "[" .. charset .. "]") and first_sc or get_script("None")
end
-- Remove all formatting characters.
text = get_plaintext(text)
-- Remove all spaces and any ASCII punctuation. Some non-ASCII punctuation is script-specific, so can't be removed.
text = ugsub(text, "[%s!\"#%%&'()*,%-./:;?@[\\%]_{}]+", "")
if #text == 0 then
return get_script("None")
end
-- Try to match every script against the text,
-- and return the one with the most matching characters.
local bestcount, bestscript, length = 0
for i = 1, codes_len do
local sc = codes[i]
-- Special case for "Hants", which is a special code that represents whichever of "Hant" or "Hans" best matches, or "Hani" if they match equally. This avoids having to list all three. In addition, "Hants" will be treated as the best match if there is at least one matching character, under the assumption that a Han script is desirable in terms that contain a mix of Han and other scripts (not counting those which use Jpan or Kore).
if sc == "Hants" then
local Hani = get_script("Hani")
if not Hant_chars then
Hant_chars = load_data("Module:zh/data/ts")
Hans_chars = load_data("Module:zh/data/st")
end
local t, s, found = 0, 0
-- This is faster than using mw.ustring.gmatch directly.
for ch in gmatch((ugsub(text, "[" .. Hani.characters .. "]", "\255%0")), "\255(.[\128-\191]*)") do
found = true
if Hant_chars[ch] then
t = t + 1
if Hans_chars[ch] then
s = s + 1
end
elseif Hans_chars[ch] then
s = s + 1
else
t, s = t + 1, s + 1
end
end
if found then
if t == s then
return Hani
end
return get_script(t > s and "Hant" or "Hans")
end
else
sc = get_script(sc)
if not length then
length = ulen(text)
end
-- Count characters by removing everything in the script's charset and comparing to the original length.
local charset = sc.characters
local count = charset and length - ulen((ugsub(text, "[" .. charset .. "]+", ""))) or 0
if count >= length then
return sc
elseif count > bestcount then
bestcount = count
bestscript = sc
end
end
end
-- Return best matching script, or otherwise None.
return bestscript or get_script("None")
end
--[==[Returns a <code>Family</code> object for the language family that the language belongs to. See [[Module:families]].]==]
function Language:getFamily()
local family = self._familyObject
if family == nil then
family = self:getFamilyCode()
-- If the value is nil, it's cached as false.
family = family and get_family(family) or false
self._familyObject = family
end
return family or nil
end
--[==[Returns the family code in the language's data file.]==]
function Language:getFamilyCode()
local family = self._familyCode
if family == nil then
-- If the value is nil, it's cached as false.
family = self._data[3] or false
self._familyCode = family
end
return family or nil
end
function Language:getFamilyName()
local family = self._familyName
if family == nil then
family = self:getFamily()
-- If the value is nil, it's cached as false.
family = family and family:getCanonicalName() or false
self._familyName = family
end
return family or nil
end
do
local function check_family(self, family)
if type(family) == "table" then
family = family:getCode()
end
if self:getFamilyCode() == family then
return true
end
local self_family = self:getFamily()
if self_family:inFamily(family) then
return true
-- If the family isn't a real family (e.g. creoles) check any ancestors.
elseif self_family:inFamily("qfa-not") then
local ancestors = self:getAncestors()
for _, ancestor in ipairs(ancestors) do
if ancestor:inFamily(family) then
return true
end
end
end
end
--[==[Check whether the language belongs to `family` (which can be a family code or object). A list of objects can be given in place of `family`; in that case, return true if the language belongs to any of the specified families. Note that some languages (in particular, certain creoles) can have multiple immediate ancestors potentially belonging to different families; in that case, return true if the language belongs to any of the specified families.]==]
function Language:inFamily(...)
if self:getFamilyCode() == nil then
return false
end
return check_inputs(self, check_family, false, ...)
end
end
function Language:getParent()
local parent = self._parentObject
if parent == nil then
parent = self:getParentCode()
-- If the value is nil, it's cached as false.
parent = parent and get_by_code(parent, nil, true, true) or false
self._parentObject = parent
end
return parent or nil
end
function Language:getParentCode()
local parent = self._parentCode
if parent == nil then
-- If the value is nil, it's cached as false.
parent = self._data.parent or false
self._parentCode = parent
end
return parent or nil
end
function Language:getParentName()
local parent = self._parentName
if parent == nil then
parent = self:getParent()
-- If the value is nil, it's cached as false.
parent = parent and parent:getCanonicalName() or false
self._parentName = parent
end
return parent or nil
end
function Language:getParentChain()
local chain = self._parentChain
if chain == nil then
chain = {}
local parent, n = self:getParent(), 0
while parent do
n = n + 1
chain[n] = parent
parent = parent:getParent()
end
self._parentChain = chain
end
return chain
end
do
local function check_lang(self, lang)
for _, parent in ipairs(self:getParentChain()) do
if (type(lang) == "string" and lang or lang:getCode()) == parent:getCode() then
return true
end
end
end
function Language:hasParent(...)
return check_inputs(self, check_lang, false, ...)
end
end
--[==[
If the language is etymology-only, this iterates through parents until a full language or family is found, and the
corresponding object is returned. If the language is a full language, then it simply returns itself.
]==]
function Language:getFull()
local full = self._fullObject
if full == nil then
full = self:getFullCode()
full = full == self._code and self or get_by_code(full)
self._fullObject = full
end
return full
end
--[==[
If the language is an etymology-only language, this iterates through parents until a full language or family is
found, and the corresponding code is returned. If the language is a full language, then it simply returns the
language code.
]==]
function Language:getFullCode()
return self._fullCode or self._code
end
--[==[
If the language is an etymology-only language, this iterates through parents until a full language or family is
found, and the corresponding canonical name is returned. If the language is a full language, then it simply returns
the canonical name of the language.
]==]
function Language:getFullName()
local full = self._fullName
if full == nil then
full = self:getFull():getCanonicalName()
self._fullName = full
end
return full
end
--[==[Returns a table of <code class="nf">Language</code> objects for all languages that this language is directly descended from. Generally this is only a single language, but creoles, pidgins and mixed languages can have multiple ancestors.]==]
function Language:getAncestors()
local ancestors = self._ancestorObjects
if ancestors == nil then
ancestors = {}
local ancestor_codes = self:getAncestorCodes()
if #ancestor_codes > 0 then
for _, ancestor in ipairs(ancestor_codes) do
insert(ancestors, get_by_code(ancestor, nil, true))
end
else
local fam = self:getFamily()
local protoLang = fam and fam:getProtoLanguage() or nil
-- For the cases where the current language is the proto-language
-- of its family, or an etymology-only language that is ancestral to that
-- proto-language, we need to step up a level higher right from the
-- start.
if protoLang and (
protoLang:getCode() == self._code or
(self:hasType("etymology-only") and protoLang:hasAncestor(self))
) then
fam = fam:getFamily()
protoLang = fam and fam:getProtoLanguage() or nil
end
while not protoLang and not (not fam or fam:getCode() == "qfa-not") do
fam = fam:getFamily()
protoLang = fam and fam:getProtoLanguage() or nil
end
insert(ancestors, protoLang)
end
self._ancestorObjects = ancestors
end
return ancestors
end
do
-- Avoid a language being its own ancestor via class inheritance. We only need to check for this if the language has inherited an ancestor table from its parent, because we never want to drop ancestors that have been explicitly set in the data.
-- Recursively iterate over ancestors until we either find self or run out. If self is found, return true.
local function check_ancestor(self, lang)
local codes = lang:getAncestorCodes()
if not codes then
return nil
end
for i = 1, #codes do
local code = codes[i]
if code == self._code then
return true
end
local anc = get_by_code(code, nil, true)
if check_ancestor(self, anc) then
return true
end
end
end
--[==[Returns a table of <code class="nf">Language</code> codes for all languages that this language is directly descended from. Generally this is only a single language, but creoles, pidgins and mixed languages can have multiple ancestors.]==]
function Language:getAncestorCodes()
if self._ancestorCodes then
return self._ancestorCodes
end
local data = self._data
local codes = data.ancestors
if codes == nil then
codes = {}
self._ancestorCodes = codes
return codes
end
codes = split(codes, ",", true, true)
self._ancestorCodes = codes
-- If there are no codes or the ancestors weren't inherited data, there's nothing left to check.
if #codes == 0 or self:getData(false, "raw").ancestors ~= nil then
return codes
end
local i, code = 1
while i <= #codes do
code = codes[i]
if check_ancestor(self, self) then
remove(codes, i)
else
i = i + 1
end
end
return codes
end
end
--[==[Given a list of language objects or codes, returns true if at least one of them is an ancestor. This includes any etymology-only children of that ancestor. If the language's ancestor(s) are etymology-only languages, it will also return true for those language parent(s) (e.g. if Vulgar Latin is the ancestor, it will also return true for its parent, Latin). However, a parent is excluded from this if the ancestor is also ancestral to that parent (e.g. if Classical Persian is the ancestor, Persian would return false, because Classical Persian is also ancestral to Persian).]==]
function Language:hasAncestor(...)
local function iterateOverAncestorTree(node, func, parent_check)
local ancestors = node:getAncestors()
local ancestorsParents = {}
for _, ancestor in ipairs(ancestors) do
-- When checking the parents of the other language, and the ancestor is also a parent, skip to the next ancestor, so that we exclude any etymology-only children of that parent that are not directly related (see below).
local ret = (parent_check or not node:hasParent(ancestor)) and
func(ancestor) or iterateOverAncestorTree(ancestor, func, parent_check)
if ret then
return ret
end
end
-- Check the parents of any ancestors. We don't do this if checking the parents of the other language, so that we exclude any etymology-only children of those parents that are not directly related (e.g. if the ancestor is Vulgar Latin and we are checking New Latin, we want it to return false because they are on different ancestral branches. As such, if we're already checking the parent of New Latin (Latin) we don't want to compare it to the parent of the ancestor (Latin), as this would be a false positive; it should be one or the other).
if not parent_check then
return nil
end
for _, ancestor in ipairs(ancestors) do
local ancestorParents = ancestor:getParentChain()
for _, ancestorParent in ipairs(ancestorParents) do
if ancestorParent:getCode() == self._code or ancestorParent:hasAncestor(ancestor) then
break
else
insert(ancestorsParents, ancestorParent)
end
end
end
for _, ancestorParent in ipairs(ancestorsParents) do
local ret = func(ancestorParent)
if ret then
return ret
end
end
end
local function do_iteration(otherlang, parent_check)
-- otherlang can't be self
if (type(otherlang) == "string" and otherlang or otherlang:getCode()) == self._code then
return false
end
repeat
if iterateOverAncestorTree(
self,
function(ancestor)
return ancestor:getCode() == (type(otherlang) == "string" and otherlang or otherlang:getCode())
end,
parent_check
) then
return true
elseif type(otherlang) == "string" then
otherlang = get_by_code(otherlang, nil, true)
end
otherlang = otherlang:getParent()
parent_check = false
until not otherlang
end
local parent_check = true
for _, otherlang in ipairs{...} do
local ret = do_iteration(otherlang, parent_check)
if ret then
return true
end
end
return false
end
do
local function construct_node(lang, memo)
local branch, ancestors = {lang = lang:getCode()}
memo[lang:getCode()] = branch
for _, ancestor in ipairs(lang:getAncestors()) do
if ancestors == nil then
ancestors = {}
end
insert(ancestors, memo[ancestor:getCode()] or construct_node(ancestor, memo))
end
branch.ancestors = ancestors
return branch
end
function Language:getAncestorChain()
local chain = self._ancestorChain
if chain == nil then
chain = construct_node(self, {})
self._ancestorChain = chain
end
return chain
end
end
function Language:getAncestorChainOld()
local chain = self._ancestorChain
if chain == nil then
chain = {}
local step = self
while true do
local ancestors = step:getAncestors()
step = #ancestors == 1 and ancestors[1] or nil
if not step then
break
end
insert(chain, step)
end
self._ancestorChain = chain
end
return chain
end
local function fetch_descendants(self, fmt)
local descendants, family = {}, self:getFamily()
-- Iterate over all three datasets.
for _, data in ipairs{
require("Module:languages/code to canonical name"),
require("Module:etymology languages/code to canonical name"),
require("Module:families/code to canonical name"),
} do
for code in pairs(data) do
local lang = get_by_code(code, nil, true, true)
if not lang then
error(("Internal error: code '%s' can't be fetched"):format(code))
end
-- Test for a descendant. Earlier tests weed out most candidates, while the more intensive tests are only used sparingly.
if (
code ~= self._code and -- Not self.
lang:inFamily(family) and -- In the same family.
(
family:getProtoLanguageCode() == self._code or -- Self is the protolanguage.
self:hasDescendant(lang) or -- Full hasDescendant check.
(lang:getFullCode() == self._code and not self:hasAncestor(lang)) -- Etymology-only child which isn't an ancestor.
)
) then
if fmt == "object" then
insert(descendants, lang)
elseif fmt == "code" then
insert(descendants, code)
elseif fmt == "name" then
insert(descendants, lang:getCanonicalName())
end
end
end
end
return descendants
end
function Language:getDescendants()
local descendants = self._descendantObjects
if descendants == nil then
descendants = fetch_descendants(self, "object")
self._descendantObjects = descendants
end
return descendants
end
function Language:getDescendantCodes()
local descendants = self._descendantCodes
if descendants == nil then
descendants = fetch_descendants(self, "code")
self._descendantCodes = descendants
end
return descendants
end
function Language:getDescendantNames()
local descendants = self._descendantNames
if descendants == nil then
descendants = fetch_descendants(self, "name")
self._descendantNames = descendants
end
return descendants
end
do
local function check_lang(self, lang)
if type(lang) == "string" then
lang = get_by_code(lang, nil, true)
end
if lang:hasAncestor(self) then
return true
end
end
function Language:hasDescendant(...)
return check_inputs(self, check_lang, false, ...)
end
end
local function fetch_children(self, fmt)
local m_etym_data = require(etymology_languages_data_module)
local self_code, children = self._code, {}
for code, lang in pairs(m_etym_data) do
local _lang = lang
repeat
local parent = _lang.parent
if parent == self_code then
if fmt == "object" then
insert(children, get_by_code(code, nil, true))
elseif fmt == "code" then
insert(children, code)
elseif fmt == "name" then
insert(children, lang[1])
end
break
end
_lang = m_etym_data[parent]
until not _lang
end
return children
end
function Language:getChildren()
local children = self._childObjects
if children == nil then
children = fetch_children(self, "object")
self._childObjects = children
end
return children
end
function Language:getChildrenCodes()
local children = self._childCodes
if children == nil then
children = fetch_children(self, "code")
self._childCodes = children
end
return children
end
function Language:getChildrenNames()
local children = self._childNames
if children == nil then
children = fetch_children(self, "name")
self._childNames = children
end
return children
end
function Language:hasChild(...)
local lang = ...
if not lang then
return false
elseif type(lang) == "string" then
lang = get_by_code(lang, nil, true)
end
if lang:hasParent(self) then
return true
end
return self:hasChild(select(2, ...))
end
--[==[Returns the name of the main category of that language. Example: {{code|lua|"French language"}} for French, whose category is at [[:Category:French language]]. Unless optional argument <code>nocap</code> is given, the language name at the beginning of the returned value will be capitalized. This capitalization is correct for category names, but not if the language name is lowercase and the returned value of this function is used in the middle of a sentence.]==]
function Language:getCategoryName(nocap)
local name = self._categoryName
if name == nil then
name = self:getCanonicalName()
-- Only add "tiếng " if a full language.
if self:getFamilyCode() == "qfa-sub" then
name = name:gsub("^", ""):gsub("^", "")
end
if self:hasType("full") then
-- Unless the canonical name already ends with "language", "lect" or their derivatives, add " language".
if not (match(name, "[Tt]iếng$$") or match(name, "[Ll]ect$")) then
name = name
end
end
self._categoryName = name
end
if nocap then
return name
end
return mw.getContentLanguage():ucfirst(name)
end
--[==[Creates a link to the category; the link text is the canonical name.]==]
function Language:makeCategoryLink()
return make_link(self, ":Category:" .. self:getCategoryName(), self:getDisplayForm())
end
function Language:getStandardCharacters(sc)
local standard_chars = self._data.standard_chars
if type(standard_chars) ~= "table" then
return standard_chars
elseif sc and type(sc) ~= "string" then
check_object("script", nil, sc)
sc = sc:getCode()
end
if (not sc) or sc == "None" then
local scripts = {}
for _, script in pairs(standard_chars) do
insert(scripts, script)
end
return concat(scripts)
end
if standard_chars[sc] then
return standard_chars[sc] .. (standard_chars[1] or "")
end
end
--[==[
Strip diacritics from display text `text` (in a language-specific fashion), which is in the script `sc`. If `sc` is
omitted or {nil}, the script is autodetected. This also strips certain punctuation characters from the end and (in the
case of Spanish upside-down question mark and exclamation points) from the beginning; strips any whitespace at the
end of the text or between the text and final stripped punctuation characters; and applies some language-specific
Unicode normalizations to replace discouraged characters with their prescribed alternatives. Return the stripped text.
]==]
function Language:stripDiacritics(text, sc)
if (not text) or text == "" then
return text
end
sc = checkScript(text, self, sc)
text = normalize(text, sc)
-- FIXME, rename makeEntryName to stripDiacritics and get rid of second and third return values
-- everywhere
text, _, _ = iterateSectionSubstitutions(self, text, sc, nil, nil,
self._data.strip_diacritics or self._data.entry_name, "strip_diacritics", "stripDiacritics")
text = umatch(text, "^[¿¡]?(.-[^%s%p].-)%s*[؟?!;՛՜ ՞ ՟?!︖︕।॥။၊་།]?$") or text
return text
end
--[==[
Convert a ''logical'' pagename (the pagename as it appears to the user, after diacritics and punctuation have been
stripped) to a ''physical'' pagename (the pagename as it appears in the MediaWiki database). Reasons for a difference
between the two are (a) unsupported titles such as `[ ]` (with square brackets in them), `#` (pound/hash sign) and
`¯\_(ツ)_/¯` (with underscores), as well as overly long titles of various sorts; (b) "mammoth" pages that are split into
parts (e.g. `a`, which is split into physical pagenames `a/languages A to L` and `a/languages M to Z`). For almost all
purposes, you should work with logical and not physical pagenames. But there are certain use cases that require physical
pagenames, such as checking the existence of a page or retrieving a page's contents.
`pagename` is the logical pagename to be converted. `is_reconstructed_or_appendix` indicates whether the page is in the
`Reconstruction` or `Appendix` namespaces. If it is omitted or has the value {nil}, the pagename is checked for an
initial asterisk, and if found, the page is assumed to be a `Reconstruction` page. Setting a value of `false` or `true`
to `is_reconstructed_or_appendix` disables this check and allows for mainspace pagenames that begin with an asterisk.
]==]
function Language:logicalToPhysical(pagename, is_reconstructed_or_appendix)
-- FIXME: This probably shouldn't happen but it happens when makeEntryName() receives nil.
if pagename == nil then
track("nil-passed-to-logicalToPhysical")
return nil
end
local initial_asterisk
if is_reconstructed_or_appendix == nil then
local pagename_minus_initial_asterisk
initial_asterisk, pagename_minus_initial_asterisk = pagename:match("^(%*)(.*)$")
if pagename_minus_initial_asterisk then
is_reconstructed_or_appendix = true
pagename = pagename_minus_initial_asterisk
elseif self:hasType("appendix-constructed") then
is_reconstructed_or_appendix = true
end
end
if not is_reconstructed_or_appendix then
-- Check if the pagename is a listed unsupported title.
local unsupportedTitles = load_data(links_data_module).unsupported_titles
if unsupportedTitles[pagename] then
return "Unsupported titles/" .. unsupportedTitles[pagename]
end
end
-- Set `unsupported` as true if certain conditions are met.
local unsupported
-- Check if there's an unsupported character. \239\191\189 is the replacement character U+FFFD, which can't be typed
-- directly here due to an abuse filter. Unix-style dot-slash notation is also unsupported, as it is used for
-- relative paths in links, as are 3 or more consecutive tildes. Note: match is faster with magic
-- characters/charsets; find is faster with plaintext.
if (
match(pagename, "[#<>%[%]_{|}]") or
find(pagename, "\239\191\189") or
match(pagename, "%f[^%z/]%.%.?%f[%z/]") or
find(pagename, "~~~")
) then
unsupported = true
-- If it looks like an interwiki link.
elseif find(pagename, ":") then
local prefix = gsub(pagename, "^:*(.-):.*", ulower)
if (
load_data("Module:data/namespaces")[prefix] or
load_data("Module:data/interwikis")[prefix]
) then
unsupported = true
end
end
-- Escape unsupported characters so they can be used in titles. ` is used as a delimiter for this, so a raw use of
-- it in an unsupported title is also escaped here to prevent interference; this is only done with unsupported
-- titles, though, so inclusion won't in itself mean a title is treated as unsupported (which is why it's excluded
-- from the earlier test).
if unsupported then
-- FIXME: This conversion needs to be different for reconstructed pages with unsupported characters. There
-- aren't any currently, but if there ever are, we need to fix this e.g. to put them in something like
-- Reconstruction:Proto-Indo-European/Unsupported titles/`lowbar``num`.
local unsupported_characters = load_data(links_data_module).unsupported_characters
pagename = pagename:gsub("[#<>%[%]_`{|}\239]\191?\189?", unsupported_characters)
:gsub("%f[^%z/]%.%.?%f[%z/]", function(m)
return (gsub(m, "%.", "`period`"))
end)
:gsub("~~~+", function(m)
return (gsub(m, "~", "`tilde`"))
end)
pagename = "Tiêu đề không được hỗ trợ/" .. pagename
elseif not is_reconstructed_or_appendix then
-- Check if this is a mammoth page. If so, which subpage should we link to?
local m_links_data = load_data(links_data_module)
local mammoth_page_type = m_links_data.mammoth_pages[pagename]
if mammoth_page_type then
local canonical_name = self:getFullName()
if canonical_name ~= "Đa ngữ" and canonical_name ~= "Tiếng Việt" then
local this_subpage
local L2_sort_key = get_L2_sort_key(canonical_name)
for _, subpage_spec in ipairs(m_links_data.mammoth_page_subpage_types[mammoth_page_type]) do
-- unpack() fails utterly on data loaded using mw.loadData() even if offsets are given
local subpage, pattern = subpage_spec[1], subpage_spec[2]
if pattern == true or L2_sort_key:match(pattern) then
this_subpage = subpage
break
end
end
if not this_subpage then
error(("Internal error: Bad data in mammoth_page_subpage_pages in [[Module:links/data]] for mammoth page %s, type %s; last entry didn't have 'true' in it"):format(
pagename, mammoth_page_type))
end
pagename = pagename .. "/" .. this_subpage
end
end
end
return (initial_asterisk or "") .. pagename
end
--[==[
Strip the diacritics from a display pagename and convert the resulting logical pagename into a physical pagename.
This allows you, for example, to retrieve the contents of the page or check its existence. WARNING: This is deprecated
and will be going away. It is a simple composition of `self:stripDiacritics` and `self:logicalToPhysical`; most callers
only want the former, and if you need both, call them both yourself.
`text` and `sc` are as in `self:stripDiacritics`, and `is_reconstructed_or_appendix` is as in `self:logicalToPhysical`.
]==]
function Language:makeEntryName(text, sc, is_reconstructed_or_appendix)
return self:logicalToPhysical(self:stripDiacritics(text, sc), is_reconstructed_or_appendix)
end
--[==[Generates alternative forms using a specified method, and returns them as a table. If no method is specified, returns a table containing only the input term.]==]
function Language:generateForms(text, sc)
local generate_forms = self._data.generate_forms
if generate_forms == nil then
return {text}
end
sc = checkScript(text, self, sc)
return require("Module:" .. self._data.generate_forms).generateForms(text, self, sc)
end
--[==[Creates a sort key for the given stripped text, following the rules appropriate for the language. This removes
diacritical marks from the stripped text if they are not considered significant for sorting, and may perform some other
changes. Any initial hyphen is also removed, and anything in parentheses is removed as well.
The <code>sort_key</code> setting for each language in the data modules defines the replacements made by this function, or it gives the name of the module that takes the stripped text and returns a sortkey.]==]
function Language:makeSortKey(text, sc)
if (not text) or text == "" then
return text
end
if match(text, "<[^<>]+>") then
track("track HTML tag")
end
-- Remove directional characters, bold, italics, soft hyphens, strip markers and HTML tags.
-- FIXME: Partly duplicated with remove_formatting() in [[Module:links]].
text = ugsub(text, "[\194\173\226\128\170-\226\128\174\226\129\166-\226\129\169]", "")
text = text:gsub("('*)'''(.-'*)'''", "%1%2"):gsub("('*)''(.-'*)''", "%1%2")
text = gsub(unstrip(text), "<[^<>]+>", "")
text = decode_uri(text, "PATH")
text = checkNoEntities(self, text)
-- Remove initial hyphens and * unless the term only consists of spacing + punctuation characters.
text = ugsub(text, "^([-]*)[-־ـ᠊*]+([-]*)(.*[^%s%p].*)", "%1%2%3")
sc = checkScript(text, self, sc)
text = normalize(text, sc)
text = removeCarets(text, sc)
-- For languages with dotted dotless i, ensure that "İ" is sorted as "i", and "I" is sorted as "ı".
if self:hasDottedDotlessI() then
text = gsub(text, "I\204\135", "i") -- decomposed "İ"
:gsub("I", "ı")
text = sc:toFixedNFD(text)
end
-- Convert to lowercase, make the sortkey, then convert to uppercase. Where the language has dotted dotless i, it is
-- usually not necessary to convert "i" to "İ" and "ı" to "I" first, because "I" will always be interpreted as
-- conventional "I" (not dotless "İ") by any sorting algorithms, which will have been taken into account by the
-- sortkey substitutions themselves. However, if no sortkey substitutions have been specified, then conversion is
-- necessary so as to prevent "i" and "ı" both being sorted as "I".
--
-- An exception is made for scripts that (sometimes) sort by scraping page content, as that means they are sensitive
-- to changes in capitalization (as it changes the target page).
if not sc:sortByScraping() then
text = ulower(text)
end
local actual_substitution_data
-- Don't trim whitespace here because it's significant at the beginning of a sort key or sort base.
text, _, actual_substitution_data = iterateSectionSubstitutions(self, text, sc, nil, nil, self._data.sort_key,
"sort_key", "makeSortKey", "notrim")
if not sc:sortByScraping() then
if self:hasDottedDotlessI() and not actual_substitution_data then
text = text:gsub("ı", "I"):gsub("i", "İ")
text = sc:toFixedNFC(text)
end
text = uupper(text)
end
-- Remove parentheses, as long as they are either preceded or followed by something.
text = gsub(text, "(.)[()]+", "%1"):gsub("[()]+(.)", "%1")
text = escape_risky_characters(text)
return text
end
--[==[Create the form used as as a basis for display text and transliteration. FIXME: Rename to correctInputText().]==]
local function processDisplayText(text, self, sc, keepCarets, keepPrefixes)
local subbedChars = {}
text, subbedChars = doTempSubstitutions(text, subbedChars, keepCarets)
text = decode_uri(text, "PATH")
text = checkNoEntities(self, text)
sc = checkScript(text, self, sc)
text = normalize(text, sc)
text, subbedChars = iterateSectionSubstitutions(self, text, sc, subbedChars, keepCarets, self._data.display_text,
"display_text", "makeDisplayText")
text = removeCarets(text, sc)
-- Remove any interwiki link prefixes (unless they have been escaped or this has been disabled).
if find(text, ":") and not keepPrefixes then
local rep
repeat
text, rep = gsub(text, "\\\\(\\*:)", "\3%1")
until rep == 0
text = gsub(text, "\\:", "\4")
while true do
local prefix = gsub(text, "^(.-):.+", function(m1)
return (gsub(m1, "\244[\128-\191]*", ""))
end)
-- Check if the prefix is an interwiki, though ignore capitalised Wiktionary:, which is a namespace.
if not prefix or prefix == text or prefix == "Wiktionary"
or not (load_data("Module:data/interwikis")[ulower(prefix)] or prefix == "") then
break
end
text = gsub(text, "^(.-):(.*)", function(m1, m2)
local ret = {}
for subbedChar in gmatch(m1, "\244[\128-\191]*") do
insert(ret, subbedChar)
end
return concat(ret) .. m2
end)
end
text = gsub(text, "\3", "\\"):gsub("\4", ":")
end
return text, subbedChars
end
--[==[Make the display text (i.e. what is displayed on the page).]==]
function Language:makeDisplayText(text, sc, keepPrefixes)
if not text or text == "" then
return text
end
local subbedChars
text, subbedChars = processDisplayText(text, self, sc, nil, keepPrefixes)
text = escape_risky_characters(text)
return undoTempSubstitutions(text, subbedChars)
end
--[==[Transliterates the text from the given script into the Latin script (see
[[Wiktionary:Transliteration and romanization]]). The language must have the <code>translit</code> property for this to
work; if it is not present, {{code|lua|nil}} is returned.
The <code>sc</code> parameter is handled by the transliteration module, and how it is handled is specific to that
module. Some transliteration modules may tolerate {{code|lua|nil}} as the script, others require it to be one of the
possible scripts that the module can transliterate, and will throw an error if it's not one of them. For this reason,
the <code>sc</code> parameter should always be provided when writing non-language-specific code.
The <code>module_override</code> parameter is used to override the default module that is used to provide the
transliteration. This is useful in cases where you need to demonstrate a particular module in use, but there is no
default module yet, or you want to demonstrate an alternative version of a transliteration module before making it
official. It should not be used in real modules or templates, only for testing. All uses of this parameter are tracked
by [[Wiktionary:Tracking/languages/module_override]].
'''Known bugs''':
* This function assumes {tr(s1) .. tr(s2) == tr(s1 .. s2)}. When this assertion fails, wikitext markups like <nowiki>'''</nowiki> can cause wrong transliterations.
* HTML entities like <code>&apos;</code>, often used to escape wikitext markups, do not work.
]==]
function Language:transliterate(text, sc, module_override)
-- If there is no text, or the language doesn't have transliteration data and there's no override, return nil.
if not text or text == "" or text == "-" then
return text
end
-- If the script is not transliteratable (and no override is given), return nil.
sc = checkScript(text, self, sc)
if not (sc:isTransliterated() or module_override) then
-- temporary tracking to see if/when this gets triggered
track("non-transliterable")
track("non-transliterable/" .. self._code)
track("non-transliterable/" .. sc:getCode())
track("non-transliterable/" .. sc:getCode() .. "/" .. self._code)
return nil
end
-- Remove any strip markers.
text = unstrip(text)
-- Do not process the formatting into PUA characters for certain languages.
local processed = load_data(languages_data_module).substitution[self._code] ~= "none"
-- Get the display text with the keepCarets flag set.
local subbedChars
if processed then
text, subbedChars = processDisplayText(text, self, sc, true)
end
-- Transliterate (using the module override if applicable).
text, subbedChars = iterateSectionSubstitutions(self, text, sc, subbedChars, true, module_override or
self._data.translit, "translit", "tr")
if not text then
return nil
end
-- Incomplete transliterations return nil.
local charset = sc.characters
if charset and umatch(text, "[" .. charset .. "]") then
-- Remove any characters in Latin, which includes Latin characters also included in other scripts (as these are
-- false positives), as well as any PUA substitutions. Anything remaining should only be script code "None"
-- (e.g. numerals).
local check_text = ugsub(text, "[" .. get_script("Latn").characters .. "-]+", "")
-- Set none_is_last_resort_only flag, so that any non-None chars will cause a script other than "None" to be
-- returned.
if find_best_script_without_lang(check_text, true):getCode() ~= "None" then
return nil
end
end
if processed then
text = escape_risky_characters(text)
text = undoTempSubstitutions(text, subbedChars)
end
-- If the script does not use capitalization, then capitalize any letters of the transliteration which are
-- immediately preceded by a caret (and remove the caret).
if text and not sc:hasCapitalization() and text:find("^", 1, true) then
text = processCarets(text, "%^([\128-\191\244]*%*?)([^\128-\191\244][\128-\191]*)", function(m1, m2)
return m1 .. uupper(m2)
end)
end
-- Track module overrides.
if module_override ~= nil then
track("module_override")
end
return text
end
do
local function handle_language_spec(self, spec, sc)
local ret = self["_" .. spec]
if ret == nil then
ret = self._data[spec]
if type(ret) == "string" then
ret = list_to_set(split(ret, ",", true, true))
end
self["_" .. spec] = ret
end
if type(ret) == "table" then
ret = ret[sc:getCode()]
end
return not not ret
end
function Language:overrideManualTranslit(sc)
return handle_language_spec(self, "override_translit", sc)
end
function Language:link_tr(sc)
return handle_language_spec(self, "link_tr", sc)
end
end
--[==[Returns {{code|lua|true}} if the language has a transliteration module, or {{code|lua|false}} if it doesn't.]==]
function Language:hasTranslit()
return not not self._data.translit
end
--[==[Returns {{code|lua|true}} if the language uses the letters I/ı and İ/i, or {{code|lua|false}} if it doesn't.]==]
function Language:hasDottedDotlessI()
return not not self._data.dotted_dotless_i
end
function Language:toJSON(opts)
local strip_diacritics, strip_diacritics_patterns, strip_diacritics_remove_diacritics = self._data.strip_diacritics
if strip_diacritics then
if strip_diacritics.from then
strip_diacritics_patterns = {}
for i, from in ipairs(strip_diacritics.from) do
insert(strip_diacritics_patterns, {from = from, to = strip_diacritics.to[i] or ""})
end
end
strip_diacritics_remove_diacritics = strip_diacritics.remove_diacritics
end
-- mainCode should only end up non-nil if dontCanonicalizeAliases is passed to make_object().
-- props should either contain zero-argument functions to compute the value, or the value itself.
local props = {
ancestors = function() return self:getAncestorCodes() end,
canonicalName = function() return self:getCanonicalName() end,
categoryName = function() return self:getCategoryName("nocap") end,
code = self._code,
mainCode = self._mainCode,
parent = function() return self:getParentCode() end,
full = function() return self:getFullCode() end,
stripDiacriticsPatterns = strip_diacritics_patterns,
stripDiacriticsRemoveDiacritics = strip_diacritics_remove_diacritics,
family = function() return self:getFamilyCode() end,
aliases = function() return self:getAliases() end,
varieties = function() return self:getVarieties() end,
otherNames = function() return self:getOtherNames() end,
scripts = function() return self:getScriptCodes() end,
type = function() return keys_to_list(self:getTypes()) end,
wikimediaLanguages = function() return self:getWikimediaLanguageCodes() end,
wikidataItem = function() return self:getWikidataItem() end,
wikipediaArticle = function() return self:getWikipediaArticle(true) end,
}
local ret = {}
for prop, val in pairs(props) do
if not opts.skip_fields or not opts.skip_fields[prop] then
if type(val) == "function" then
ret[prop] = val()
else
ret[prop] = val
end
end
end
-- Use `deep_copy` when returning a table, so that there are no editing restrictions imposed by `mw.loadData`.
return opts and opts.lua_table and deep_copy(ret) or to_json(ret, opts)
end
function export.getDataModuleName(code)
local letter = match(code, "^(%l)%l%l?$")
return "Mô đun:" .. (
letter == nil and "languages/data/exceptional" or
#code == 2 and "languages/data/2" or
"languages/data/3/" .. letter
)
end
get_data_module_name = export.getDataModuleName
function export.getExtraDataModuleName(code)
return get_data_module_name(code) .. "/extra"
end
get_extra_data_module_name = export.getExtraDataModuleName
do
local function make_stack(data)
local key_types = {
[2] = "unique",
aliases = "unique",
otherNames = "unique",
type = "append",
varieties = "unique",
wikipedia_article = "unique",
wikimedia_codes = "unique"
}
local function __index(self, k)
local stack, key_type = getmetatable(self), key_types[k]
-- Data that isn't inherited from the parent.
if key_type == "unique" then
local v = stack[stack[make_stack]][k]
if v == nil then
local layer = stack[0]
if layer then -- Could be false if there's no extra data.
v = layer[k]
end
end
return v
-- Data that is appended by each generation.
elseif key_type == "append" then
local parts, offset, n = {}, 0, stack[make_stack]
for i = 1, n do
local part = stack[i][k]
if part == nil then
offset = offset + 1
else
parts[i - offset] = part
end
end
return offset ~= n and concat(parts, ",") or nil
end
local n = stack[make_stack]
while true do
local layer = stack[n]
if not layer then -- Could be false if there's no extra data.
return nil
end
local v = layer[k]
if v ~= nil then
return v
end
n = n - 1
end
end
local function __newindex()
error("table is read-only")
end
local function __pairs(self)
-- Iterate down the stack, caching keys to avoid duplicate returns.
local stack, seen = getmetatable(self), {}
local n = stack[make_stack]
local iter, state, k, v = pairs(stack[n])
return function()
repeat
repeat
k = iter(state, k)
if k == nil then
n = n - 1
local layer = stack[n]
if not layer then -- Could be false if there's no extra data.
return nil
end
iter, state, k = pairs(layer)
end
until not (k == nil or seen[k])
-- Get the value via a lookup, as the one returned by the
-- iterator will be the raw value from the current layer,
-- which may not be the one __index will return for that
-- key. Also memoize the key in `seen` (even if the lookup
-- returns nil) so that it doesn't get looked up again.
-- TODO: store values in `self`, avoiding the need to create
-- the `seen` table. The iterator will need to iterate over
-- `self` with `next` first to find these on future loops.
v, seen[k] = self[k], true
until v ~= nil
return k, v
end
end
local __ipairs = require(table_module).indexIpairs
function make_stack(data)
local stack = {
data,
[make_stack] = 1, -- stores the length and acts as a sentinel to confirm a given metatable is a stack.
__index = __index,
__newindex = __newindex,
__pairs = __pairs,
__ipairs = __ipairs,
}
stack.__metatable = stack
return setmetatable({}, stack), stack
end
return make_stack(data)
end
local function get_stack(data)
local stack = getmetatable(data)
return stack and type(stack) == "table" and stack[make_stack] and stack or nil
end
--[==[
<span style="color: var(--wikt-palette-red,#BA0000)">This function is not for use in entries or other content pages.</span>
Returns a blob of data about the language. The format of this blob is undocumented, and perhaps unstable; it's intended for things like the module's own unit-tests, which are "close friends" with the module and will be kept up-to-date as the format changes. If `extra` is set, any extra data in the relevant `/extra` module will be included. (Note that it will be included anyway if it has already been loaded into the language object.) If `raw` is set, then the returned data will not contain any data inherited from parent objects.
-- Do NOT use these methods!
-- All uses should be pre-approved on the talk page!
]==]
function Language:getData(extra, raw)
if extra then
self:loadInExtraData()
end
local data = self._data
-- If raw is not set, just return the data.
if not raw then
return data
end
local stack = get_stack(data)
-- If there isn't a stack or its length is 1, return the data. Extra data (if any) will be included, as it's stored at key 0 and doesn't affect the reported length.
if stack == nil then
return data
end
local n = stack[make_stack]
if n == 1 then
return data
end
local extra = stack[0]
-- If there isn't any extra data, return the top layer of the stack.
if extra == nil then
return stack[n]
end
-- If there is, return a new stack which has the top layer at key 1 and the extra data at key 0.
data, stack = make_stack(stack[n])
stack[0] = extra
return data
end
function Language:loadInExtraData()
-- Only full languages have extra data.
if not self:hasType("language", "full") then
return
end
local data = self._data
-- If there's no stack, create one.
local stack = get_stack(self._data)
if stack == nil then
data, stack = make_stack(data)
-- If already loaded, return.
elseif stack[0] ~= nil then
return
end
self._data = data
-- Load extra data from the relevant module and add it to the stack at key 0, so that the __index and __pairs metamethods will pick it up, since they iterate down the stack until they run out of layers.
local code = self._code
local modulename = get_extra_data_module_name(code)
-- No data cached as false.
stack[0] = modulename and load_data(modulename)[code] or false
end
--[==[Returns the name of the module containing the language's data. Currently, this is always [[Module:scripts/data]].]==]
function Language:getDataModuleName()
local name = self._dataModuleName
if name == nil then
name = self:hasType("etymology-only") and etymology_languages_data_module or
get_data_module_name(self._mainCode or self._code)
self._dataModuleName = name
end
return name
end
--[==[Returns the name of the module containing the language's data. Currently, this is always [[Module:scripts/data]].]==]
function Language:getExtraDataModuleName()
local name = self._extraDataModuleName
if name == nil then
name = not self:hasType("etymology-only") and get_extra_data_module_name(self._mainCode or self._code) or false
self._extraDataModuleName = name
end
return name or nil
end
function export.makeObject(code, data, dontCanonicalizeAliases)
local data_type = type(data)
if data_type ~= "table" then
error(("bad argument #2 to 'makeObject' (table expected, got %s)"):format(data_type))
end
-- Convert any aliases.
local input_code = code
code = normalize_code(code)
input_code = dontCanonicalizeAliases and input_code or code
local parent
if data.parent then
parent = get_by_code(data.parent, nil, true, true)
else
parent = Language
end
parent.__index = parent
local lang = {_code = input_code}
-- This can only happen if dontCanonicalizeAliases is passed to make_object().
if code ~= input_code then
lang._mainCode = code
end
local parent_data = parent._data
if parent_data == nil then
-- Full code is the same as the code.
lang._fullCode = parent._code or code
else
-- Copy full code.
lang._fullCode = parent._fullCode
local stack = get_stack(parent_data)
if stack == nil then
parent_data, stack = make_stack(parent_data)
end
-- Insert the input data as the new top layer of the stack.
local n = stack[make_stack] + 1
data, stack[n], stack[make_stack] = parent_data, data, n
end
lang._data = data
return setmetatable(lang, parent)
end
make_object = export.makeObject
end
--[==[Finds the language whose code matches the one provided. If it exists, it returns a <code class="nf">Language</code> object representing the language. Otherwise, it returns {{code|lua|nil}}, unless <code class="n">paramForError</code> is given, in which case an error is generated. If <code class="n">paramForError</code> is {{code|lua|true}}, a generic error message mentioning the bad code is generated; otherwise <code class="n">paramForError</code> should be a string or number specifying the parameter that the code came from, and this parameter will be mentioned in the error message along with the bad code. If <code class="n">allowEtymLang</code> is specified, etymology-only language codes are allowed and looked up along with normal language codes. If <code class="n">allowFamily</code> is specified, language family codes are allowed and looked up along with normal language codes.]==]
function export.getByCode(code, paramForError, allowEtymLang, allowFamily)
-- Track uses of paramForError, ultimately so it can be removed, as error-handling should be done by [[Module:parameters]], not here.
if paramForError ~= nil then
track("paramForError")
end
if type(code) ~= "string" then
local typ
if not code then
typ = "nil"
elseif check_object("language", true, code) then
typ = "a language object"
elseif check_object("family", true, code) then
typ = "a family object"
else
typ = "a " .. type(code)
end
error("The function getByCode expects a string as its first argument, but received " .. typ .. ".")
end
local m_data = load_data(languages_data_module)
if m_data.aliases[code] or m_data.track[code] then
track(code)
end
local norm_code = normalize_code(code)
-- Get the data, checking for etymology-only languages if allowEtymLang is set.
local data = load_data(get_data_module_name(norm_code))[norm_code] or
allowEtymLang and load_data(etymology_languages_data_module)[norm_code]
-- If no data was found and allowFamily is set, check the family data. If the main family data was found, make the object with [[Module:families]] instead, as family objects have different methods. However, if it's an etymology-only family, use make_object in this module (which handles object inheritance), and the family-specific methods will be inherited from the parent object.
if data == nil and allowFamily then
data = load_data("Module:families/data")[norm_code]
if data ~= nil then
if data.parent == nil then
return make_family_object(norm_code, data)
elseif not allowEtymLang then
data = nil
end
end
end
local retval = code and data and make_object(code, data)
if not retval and paramForError then
require("Module:languages/errorGetBy").code(code, paramForError, allowEtymLang, allowFamily)
end
return retval
end
get_by_code = export.getByCode
--[==[Finds the language whose canonical name (the name used to represent that language on Wiktionary) or other name matches the one provided. If it exists, it returns a <code class="nf">Language</code> object representing the language. Otherwise, it returns {{code|lua|nil}}, unless <code class="n">paramForError</code> is given, in which case an error is generated. If <code class="n">allowEtymLang</code> is specified, etymology-only language codes are allowed and looked up along with normal language codes. If <code class="n">allowFamily</code> is specified, language family codes are allowed and looked up along with normal language codes.
The canonical name of languages should always be unique (it is an error for two languages on Wiktionary to share the same canonical name), so this is guaranteed to give at most one result.
This function is powered by [[Module:languages/canonical names]], which contains a pre-generated mapping of full-language canonical names to codes. It is generated by going through the [[:Category:Language data modules]] for full languages. When <code class="n">allowEtymLang</code> is specified for the above function, [[Module:etymology languages/canonical names]] may also be used, and when <code class="n">allowFamily</code> is specified for the above function, [[Module:families/canonical names]] may also be used.]==]
function export.getByCanonicalName(name, errorIfInvalid, allowEtymLang, allowFamily)
local byName = load_data("Module:languages/canonical names")
local code = byName and byName[name]
if not code and allowEtymLang then
byName = load_data("Module:etymology languages/canonical names")
code = byName and byName[name] or
byName[gsub(name, " [Ss]ubstrate$", "")] or
byName[gsub(name, "^a ", "")] or
byName[gsub(name, "^a ", ""):gsub(" [Ss]ubstrate$", "")] or
-- For etymology families like "ira-pro".
-- FIXME: This is not ideal, as it allows " languages" to be appended to any etymology-only language, too.
byName[match(name, "^(.*) languages$")]
end
if not code and allowFamily then
byName = load_data("Module:families/canonical names")
code = byName[name] or byName[match(name, "^(.*) languages$")]
end
local retval = code and get_by_code(code, errorIfInvalid, allowEtymLang, allowFamily)
if not retval and errorIfInvalid then
require("Module:languages/errorGetBy").canonicalName(name, allowEtymLang, allowFamily)
end
return retval
end
--[==[Used by [[Module:languages/data/2]] (et al.) and [[Module:etymology languages/data]], [[Module:families/data]], [[Module:scripts/data]] and [[Module:writing systems/data]] to finalize the data into the format that is actually returned.]==]
function export.finalizeData(data, main_type, variety)
local fields = {"type"}
if main_type == "language" then
insert(fields, 4) -- script codes
insert(fields, "ancestors")
insert(fields, "link_tr")
insert(fields, "override_translit")
insert(fields, "wikimedia_codes")
elseif main_type == "script" then
insert(fields, 3) -- writing system codes
end -- Families and writing systems have no extra fields to process.
local fields_len = #fields
for _, entity in next, data do
if variety then
-- Move parent from 3 to "parent" and family from "family" to 3. These are different for the sake of convenience, since very few varieties have the family specified, whereas all of them have a parent.
entity.parent, entity[3], entity.family = entity[3], entity.family
-- Give the type "regular" iff not a variety and no other types are assigned.
elseif not (entity.type or entity.parent) then
entity.type = "regular"
end
for i = 1, fields_len do
local key = fields[i]
local field = entity[key]
if field and type(field) == "string" then
entity[key] = gsub(field, "%s*,%s*", ",")
end
end
end
return data
end
--[==[For backwards compatibility only; modules should require the error themselves.]==]
function export.err(lang_code, param, code_desc, template_tag, not_real_lang)
return require("Module:languages/error")(lang_code, param, code_desc, template_tag, not_real_lang)
end
return export
aengzjj08dz5dwa79qnz88ozg231jfb
Mô đun:languages/data/3/n
828
260849
2566958
2564324
2026-09-27T13:14:21Z
Lcsnes
40261
2566958
Scribunto
text/plain
local m_langdata = require("Module:languages/data")
-- Loaded on demand, as it may not be needed (depending on the data).
local function u(...)
u = require("Module:string utilities").char
return u(...)
end
local c = m_langdata.chars
local p = m_langdata.puaChars
local s = m_langdata.shared
local m = {}
m["naa"] = {
"Namla",
3508760,
"paa-pau",
"Latn",
}
m["nab"] = {
"tiếng Nambikwara",
2068190,
"sai-nmk",
"Latn",
"Tiếng Nambikwara",
"Nambikwara",
}
m["nac"] = {
"Narak",
6965295,
"ngf",
"Latn",
}
m["nae"] = {
"Naka'ela",
6960073,
"poz",
"Latn",
}
m["naf"] = {
"Nabak",
11732491,
"ngf",
"Latn",
}
m["nag"] = {
"Naga Pidgin",
3503454,
"crp",
"Latn",
ancestors = "as",
}
m["nah"] = {
"tiếng Nahuatl",
13300,
"azc-nah",
"Latn",
"Tiếng Nahuatl",
"Nahuatl",
}
m["naj"] = {
"Nalu",
36026,
"alv-nal",
"Latn",
}
m["nak"] = {
"Nakanai",
6528669,
"poz-ocw",
"Latn",
}
m["nal"] = {
"Nalik",
3335387,
"poz-ocw",
"Latn",
}
m["nam"] = {
"Ngan'gityemerri",
3298041,
"aus-dal",
"Latn",
}
-- Being converted into the family "Southern Min" ("zhx-nan", which will take the code "nan" once the language can be removed). Retain the name "Min Nan" here to avoid having to move things that are scheduled for deletion anyway.
m["nan"] = {
"tiếng Mân Nam",
36495,
"zhx-com",
"Hants, Latn, Bopo, Kana",
"Tiếng Mân Nam",
"Mân Nam",
wikimedia_codes = "zh-min-nan",
generate_forms = "zh-generateforms",
sort_key = {
Hani = "Hani-sortkey",
Kana = "Kana-sortkey"
},
}
m["nao"] = {
"Naaba",
11883865,
"sit-tib",
ancestors = "xct",
}
m["nap"] = {
"tiếng Napoli",
33845,
"roa-itd",
"Latn",
"Tiếng Napoli",
"Napoli",
}
m["naq"] = {
"tiếng Khoekhoe",
13301,
"khi-khk",
"Latn",
"Tiếng Khoekhoe",
"Khoekhoe",
}
m["nar"] = {
"Iguta",
5621686,
"nic-jer",
"Latn",
}
m["nas"] = {
"Nasioi",
56772,
"paa-sbo",
"Latn",
}
m["nat"] = {
"Hungworo",
3914395,
"nic-kmk",
"Latn",
}
m["naw"] = {
"Nawuri",
35906,
"alv-gng",
"Latn",
}
m["nax"] = {
"Nakwi",
3504178,
"qfa-mal",
"Latn",
}
m["nay"] = {
"Ngarrindjeri",
7022091,
"aus-pam",
"Latn",
}
m["naz"] = {
"Coatepec Nahuatl",
5138605,
"azc-nah",
"Latn",
}
m["nba"] = {
"Nyemba",
3346655,
"bnt-clu",
"Latn",
ancestors = "lch",
}
m["nbb"] = {
"Ndoe",
36134,
"nic-eko",
"Latn",
}
m["nbc"] = {
"Chang",
5071694,
"sit-kch",
"Latn",
}
m["nbd"] = {
"Ngbinda",
11132859,
"bnt-boa",
"Latn",
}
m["nbe"] = {
"Konyak Naga",
6430448,
"sit-kch",
"Latn",
}
m["nbg"] = {
"Nagarchal",
13299,
"dra-gon",
}
m["nbh"] = {
"Ngamo",
3438705,
"cdc-wst",
"Latn",
}
m["nbi"] = {
"Mao Naga",
12952905,
"tbq-anp",
"Latn",
}
m["nbj"] = {
"Ngarinman",
10600380,
nil,
"Latn",
}
m["nbk"] = {
"Nake",
11732496,
"ngf-mad",
"Latn",
}
m["nbm"] = {
"Ngbaka Ma'bo",
3915331,
"nic-nkm",
"Latn",
}
m["nbn"] = {
"Kuri",
3200540,
"poz",
"Latn",
}
m["nbo"] = {
"Nkukoli",
3914482,
"nic-uce",
"Latn",
}
m["nbp"] = {
"Nnam",
36138,
"nic-eko",
"Latn",
}
m["nbq"] = {
"Nggem",
12952956,
"ngf",
"Latn",
}
m["nbr"] = {
"Numana",
5529310,
"nic-nin",
"Latn",
}
m["nbs"] = {
"Namibian Sign Language",
6961792,
"sgn",
"Latn", -- when documented
}
m["nbt"] = {
"Na",
12952895,
"sit-tan",
"Deva, Latn",
}
m["nbu"] = {
"Rongmei Naga",
12952912,
"sit-zem",
"Latn",
}
m["nbv"] = {
"Ngamambo",
11129694,
"nic-mom",
"Latn",
}
m["nbw"] = {
"Southern Ngbandi",
17522635,
"nic-ngd",
"Latn",
}
m["nby"] = {
"Ningera",
11732524,
"paa-brd",
"Latn",
}
m["nca"] = {
"Iyo",
6101336,
"ngf-fin",
"Latn",
}
m["ncb"] = {
"tiếng Nicobar Trung",
3335553,
"aav-nic",
"Deva, Latn",
"Tiếng Nicobar Trung",
"Nicobar Trung",
}
m["ncc"] = {
"Ponam",
3396122,
"poz-aay",
"Latn",
}
m["ncd"] = {
"Nachering",
6957144,
"sit-kic",
"Deva",
}
m["nce"] = {
"Yale",
2992915,
"paa", --kwomtari or isolate
"Latn",
}
m["ncf"] = {
"Notsi",
3344784,
"poz-ocw",
"Latn",
}
m["ncg"] = {
"tiếng Nisga'a",
3342138,
"nai-tsi",
"Latn",
"Tiếng Nisga'a",
"Nisga'a",
}
m["nch"] = {
"tiếng Trung Nahuatl Huasteca",
2194290,
"azc-hua",
"Latn",
"Tiếng Trung Nahuatl Huasteca",
"Trung Nahuatl Huasteca",
}
m["nci"] = {
"tiếng Nahuatl cổ điển",
559242,
"azc-nah",
"Latn",
"Tiếng Nahuatl cổ điển",
"Nahuatl cổ điển",
entry_name = {remove_diacritics = c.macron},
}
m["ncj"] = {
"Northern Puebla Nahuatl",
15705671,
"azc-nah",
"Latn",
}
m["nck"] = {
"Nakara",
6960662,
"aus-arn",
"Latn",
}
m["ncl"] = {
"Michoacán Nahuatl",
2896217,
"azc-nah",
"Latn",
}
m["ncm"] = {
"Nambo",
42173731,
nil,
"Latn",
}
m["ncn"] = {
"Nauna",
3337158,
"poz-aay",
"Latn",
}
m["nco"] = {
"Sibe",
56806,
"paa-sbo",
"Latn",
}
m["ncq"] = {
"tiếng Katang Bắc",
12638175,
"mkh-kat",
"Laoo, Thai",
"Tiếng Katang Bắc",
"Katang Bắc",
sort_key = {
Laoo = "Laoo-sortkey",
Thai = "Thai-sortkey",
},
}
m["ncr"] = {
"Ncane",
11297920,
"nic-bbe",
"Latn",
ancestors = "nhu",
}
m["ncs"] = {
"Nicaraguan Sign Language",
33765,
"sgn",
"Sgnw",
}
m["nct"] = {
"tiếng Naga Chothe",
5105385,
"tbq-kuk",
"Beng, Latn",
"Tiếng Naga Chothe",
"Naga Chothe",
}
m["ncu"] = {
"Chumburung",
35198,
"alv-gng",
"Latn",
}
m["ncx"] = {
"tiếng Trung Nahuatl Puebla",
5061727,
"azc-nah",
"Latn",
"Tiếng Trung Nahuatl Puebla",
"Trung Nahuatl Puebla",
}
m["ncz"] = {
"Natchez",
3111838,
nil,
"Latn",
}
m["nda"] = {
"Ndasa",
35904,
"bnt-kel",
"Latn",
}
m["ndb"] = {
"Kenswei Nsei",
7067553,
"nic-rnn",
"Latn",
}
m["ndc"] = {
"tiếng Ndau",
13311,
"bnt-sho",
"Latn",
"Tiếng Ndau",
"Ndau",
}
m["ndd"] = {
"Nde-Nsele-Nta",
36131,
"nic-eko",
"Latn",
}
m["ndf"] = {
"Nadruvian",
6957967,
nil,
"Latn",
}
m["ndg"] = {
"Ndengereko",
6983726,
"bnt-mbi",
"Latn",
}
m["ndh"] = {
"Ndali",
6983678,
"bnt-run",
"Latn",
}
m["ndi"] = {
"Chamba Leko",
36381,
"alv-lek",
"Latn",
}
m["ndj"] = {
"Ndamba",
6983684,
"bnt-kil",
"Latn",
}
m["ndk"] = {
"Ndaka",
11164947,
"bnt-nya",
"Latn",
}
m["ndl"] = {
"Ndolo",
6983788,
"bnt-zbi",
"Latn",
ancestors = "lse",
}
m["ndm"] = {
"Ndam",
56283,
"cdc-est",
"Latn",
}
m["ndn"] = {
"Ngundi",
35916,
"bnt-ngn",
"Latn",
}
m["ndp"] = {
"Ndo",
6983774,
"csu-mle",
"Latn",
}
m["ndq"] = {
"Ndombe",
6983792,
"bnt-swb",
"Latn",
}
m["ndr"] = {
"Ndoola",
35837,
"nic-mmb",
"Latn",
}
m["nds"] = {
"tiếng Hạ Đức",
25433,
"gmw-lgm",
"Latn",
"Tiếng Hạ Đức",
"Hạ Đức",
ancestors = "gml",
}
m["ndt"] = {
"Ndunga",
6983857,
"nic-mbc",
"Latn",
}
m["ndu"] = {
"Dugun",
11015189,
"alv-dur",
"Latn",
}
m["ndv"] = {
"Ndut",
36028,
"alv-cng",
"Latn",
}
m["ndw"] = {
"Ndobo",
11008568,
"bnt-ngn",
"Latn",
}
m["ndx"] = {
"Nduga",
6983833,
nil,
"Latn",
}
m["ndy"] = {
"Lutos",
6705910,
"csu-val",
"Latn",
}
m["ndz"] = {
"tiếng Ndogo",
35983,
"nic-ser",
"Latn",
"Tiếng Ndogo",
"Ndogo",
}
m["nea"] = {
"Eastern Ngad'a",
12473454,
"poz-cet",
}
m["neb"] = {
"Toura",
7853636,
"dmn-mda",
"Latn",
}
m["nec"] = {
"Nedebang",
4925378,
"ngf",
}
m["ned"] = {
"Nde-Gbite",
11010279,
"nic-grf",
}
m["nee"] = {
"Kumak",
3347266,
"poz-cln",
"Latn",
}
m["nef"] = {
"Nefamese",
6987002,
"crp",
}
m["neg"] = {
"tiếng Negidal",
33676,
"tuw-ewe",
"Cyrl",
"Tiếng Negidal",
"Negidal",
}
m["neh"] = {
"tiếng Nyen",
3695185,
"sit-ebo",
"Tibt, Latn",
"Tiếng Nyen",
"Nyen",
translit = {Tibt = "Tibt-translit"},
override_translit = true,
display_text = {Tibt = s["Tibt-displaytext"]},
entry_name = {Tibt = s["Tibt-entryname"]},
sort_key = {Tibt = "Tibt-sortkey"},
}
m["nej"] = {
"Neko",
6989840,
"ngf-fin",
"Latn",
}
m["nek"] = {
"Neku",
14916900,
"poz-cln",
}
m["nem"] = {
"Nemi",
3338008,
"poz-cln",
"Latn",
}
m["nen"] = {
"Nengone",
3338052,
"poz-occ",
"Latn",
}
m["neo"] = {
"tiếng Na Miểu",
15977293,
"hmn",
nil,
"Tiếng Na Miểu",
"Na Miểu",
}
m["neq"] = {
"North Central Mixe",
25559729,
nil,
"Latn",
}
m["ner"] = {
"Yahadian",
8046778,
nil,
"Latn",
}
m["nes"] = {
"Bhoti Kinnauri",
21179921,
"sit-las",
}
m["net"] = {
"Nete",
6998869,
"paa-eng",
}
m["neu"] = {
"Neo",
606917,
"art",
"Latn",
type = "appendix-constructed",
}
m["nev"] = {
"Nyaheun",
7070801,
"mkh-ban",
}
m["new"] = {
"tiếng Newa",
33979,
"sit-new",
"Deva, Newa, Ranj",
"Tiếng Newa",
"Newa",
ancestors = "nwx",
translit = {
Deva = "new-translit",
Newa = "new-Newa-translit",
},
}
m["nex"] = {
"Neme",
12952941,
}
m["ney"] = {
"Neyo",
36410,
"kro",
}
m["nez"] = {
"Nez Perce",
3339226,
"nai-shp",
"Latn",
}
m["nfa"] = {
"Dhao",
2053828,
"poz",
}
m["nfd"] = {
"Ahwai",
3913957,
"nic-plt",
"Latn",
}
m["nfl"] = {
"Aiwoo",
56742,
"poz-oce",
"Latn",
}
m["nfr"] = {
"tiếng Nafaanra",
13297,
"alv-snf",
"Latn",
"Tiếng Nafaanra",
"Nafaanra",
}
m["nfu"] = {
"Mfumte",
6826794,
"nic-nka",
"Latn",
}
m["nga"] = {
"tiếng Ngbaka",
36022,
"alv-gbf",
"Latn",
"Tiếng Ngbaka",
"Ngbaka",
}
m["ngb"] = {
"Northern Ngbandi",
17522631,
"nic-ngd",
"Latn",
}
m["ngc"] = {
"tiếng Ngombe (Congo)",
3123524,
"bnt-bun",
"Latn",
"Tiếng Ngombe (Congo)",
"Ngombe (Congo)",
}
m["ngd"] = {
"Ngando (Central African Republic)",
35910,
"bnt-ngn",
}
m["nge"] = {
"Ngemba",
6750551,
"nic-nge",
"Latn",
}
m["ngg"] = { -- compare 'aiy'
"Ngbaka Manza",
11033316,
"alv-gbf",
"Latn",
}
m["ngh"] = {
"tiếng Nǀuu",
2618974,
"khi-tuu",
"Latn",
"Tiếng Nǀuu",
"Nǀuu",
}
m["ngi"] = {
"Ngizim",
3914924,
"cdc-wst",
"Latn",
}
m["ngj"] = {
"Ngie",
36361,
"nic-mom",
"Latn",
}
m["ngk"] = {
"Ngalkbun",
3913790,
"aus-gun",
"Latn",
}
m["ngl"] = {
"Lomwe",
35824,
"bnt-mak",
"Latn",
}
m["ngm"] = {
"Ngatik Men's Creole",
36400,
"crp",
ancestors = "en, pon",
}
m["ngn"] = {
"Ngwo",
36051,
"nic-mom",
"Latn",
}
m["ngo"] = {
"Ngoni",
7022547,
"bnt-ngu",
"Latn",
}
m["ngp"] = {
"Ngulu",
7193332,
"bnt-seu",
"Latn",
}
m["ngq"] = {
"Ngoreme",
7022573,
"bnt-lok",
"Latn",
}
m["ngr"] = {
"Nagu",
3063524,
"poz-oce",
"Latn",
}
m["ngs"] = {
"Gvoko",
3441188,
"cdc-cbm",
"Latn",
}
m["ngt"] = {
"tiếng Ngeq",
25559548,
"mkh-kat",
"Laoo",
"Tiếng Ngeq",
"Ngeq",
translit = "lo-translit",
}
m["ngu"] = {
"Guerrero Nahuatl",
5614980,
"azc-nah",
"Latn",
}
m["ngv"] = {
"Nagumi",
35842,
"nic-jrn",
}
m["ngw"] = {
"Ngwaba",
3440480,
"cdc-cbm",
"Latn",
}
m["ngx"] = {
"Nggwahyi",
56265,
"cdc-cbm",
"Latn",
}
m["ngy"] = {
"Tibea",
36598,
"bnt-baf",
"Latn",
}
m["ngz"] = {
"Ngungwel",
35920,
"bnt-tkc",
"Latn",
}
m["nha"] = {
"Nhanda",
3339380,
"aus-psw",
"Latn",
}
m["nhb"] = {
"Beng",
3913311,
"dmn-nbe",
"Latn",
}
m["nhc"] = {
"Tabasco Nahuatl",
6047326,
"azc-nah",
"Latn",
}
m["nhd"] = {
"Chiripá",
2873230,
"tup-gua",
ancestors = "gn",
}
m["nhe"] = {
"Eastern Huasteca Nahuatl",
4358289,
"azc-nah",
"Latn",
}
m["nhf"] = {
"Nhuwala",
10600396,
"aus-nga",
"Latn",
}
m["nhg"] = {
"Tetelcingo Nahuatl",
3450252,
"azc-nah",
"Latn",
}
m["nhh"] = {
"Nahari",
6583560,
"inc-eas",
}
m["nhi"] = {
"Zacatlán-Ahuacatlán-Tepetzintla Nahuatl",
12953764,
"azc-nah",
"Latn",
}
m["nhk"] = {
"Cosoleacaque Nahuatl",
12953757,
"azc-nah",
"Latn",
}
m["nhm"] = {
"Morelos Nahuatl",
4800819,
"azc-nah",
"Latn",
}
m["nhn"] = {
"tiếng Trung Nahuatl",
6047309,
"azc-nah",
"Latn",
"Tiếng Trung Nahuatl",
"Trung Nahuatl",
}
m["nho"] = {
"Takuu",
3409818,
"poz-pnp",
"Latn",
}
m["nhp"] = {
"Pajapan Nahuatl",
12953760,
"azc-nah",
"Latn",
}
m["nhq"] = {
"Huaxcaleca Nahuatl",
12953758,
"azc-nah",
"Latn",
}
m["nhr"] = {
"Naro",
2164778,
"khi-kal",
"Latn",
}
m["nht"] = {
"tiếng Nahuatl Ometepec",
7090132,
"azc-nah",
"Latn",
}
m["nhu"] = {
"tiếng Noone",
36072,
"nic-bbe",
"Latn",
}
m["nhv"] = {
"tiếng Nahuatl Temascaltepec",
2379405,
"azc-nah",
"Latn",
"Tiếng Nahuatl Temascaltepec",
"Nahuatl Temascaltepec",
}
m["nhw"] = {
"tiếng Tây Huasteca Nahuatl",
2678840,
"azc-nah",
"Latn",
"Tiếng Tây Nahuatl Huasteca",
"Tây Nahuatl Huasteca",
}
m["nhx"] = {
"Mecayapan Nahuatl",
12953756,
"azc-nah",
"Latn",
}
m["nhy"] = {
"Northern Oaxaca Nahuatl",
12953763,
"azc-nah",
"Latn",
}
m["nhz"] = {
"Santa María La Alta Nahuatl",
15705753,
"azc-nah",
"Latn",
}
m["nia"] = {
"tiếng Nias",
2407831,
"poz-nws",
"Latn",
"Tiếng Nias",
"Nias",
}
m["nib"] = {
"Nakame",
11732495,
"ngf-fin",
"Latn",
}
m["nid"] = {
"Ngandi",
7021977,
"aus-arn",
"Latn",
}
m["nie"] = {
"Niellim",
33662,
"alv-bua",
}
m["nif"] = {
"Nek",
6989781,
"ngf-fin",
"Latn",
}
m["nig"] = {
"Ngalakan",
3913796,
"aus-gun",
"Latn",
}
m["nih"] = {
"Nyiha",
11128374,
"bnt-mby",
"Latn",
}
m["nii"] = {
"Nii",
35237,
"ngf",
"Latn",
}
m["nij"] = {
"Ngaju",
2992872,
"poz-brw",
"Latn",
}
m["nik"] = {
"tiếng Nicobar Nam",
7570194,
"aav-nic",
"Deva, Latn",
"Tiếng Nicobar Nam",
"Nicobar Nam",
}
m["nil"] = {
"Nila",
7036821,
}
m["nim"] = {
"Nilamba",
4121200,
"bnt-tkm",
"Latn",
}
m["nin"] = {
"Ninzo",
3914021,
"nic-nin",
}
m["nio"] = {
"tiếng Nganasan",
36743,
"syd",
"Cyrl",
"Tiếng Nganasan",
"Nganasan",
translit = "nio-translit",
}
m["niq"] = {
"Nandi",
6956591,
"sdv-nma",
}
m["nir"] = {
"Nimboran",
301116,
"paa-nim",
}
m["nis"] = {
"Nimi",
11732523,
"ngf-fin",
"Latn",
}
m["nit"] = {
"tiếng Nam Kolami",
56767,
"dra-knk",
"Deva, Telu",
"Tiếng Nam Kolami",
"Nam Kolami",
translit = {
Telu = "te-translit"
},
}
m["niu"] = {
"tiếng Niue",
33790,
"poz-pol",
"Latn",
"Tiếng Niue",
"Niue",
}
m["niv"] = {
"tiếng Nivkh",
36464,
"qfa-iso",
"Cyrl",
"Tiếng Nivkh",
"Nivkh",
translit = "niv-translit",
entry_name = {
from = {"['’]"},
to = {"ʼ"}
},
sort_key = "niv-sortkey",
}
m["niw"] = {
"Nimo",
3504126,
"paa-asa",
}
m["nix"] = {
"Hema",
5710904,
"bnt-nyg",
"Latn",
}
m["niy"] = {
"tiếng Ngiti",
7022396,
"csu-lnd",
"Latn",
"Tiếng Ngiti",
"Ngiti",
}
m["niz"] = {
"Ningil",
11732527,
"qfa-tor",
}
m["nja"] = {
"Nzanyi",
3441299,
"cdc-cbm",
"Latn",
}
m["njb"] = {
"Nocte Naga",
7046410,
"sit-tno",
}
m["njh"] = {
"tiếng Lotha Naga",
33590,
"sit-aao",
}
m["nji"] = {
"Gudanji",
3915692,
"aus-mir",
}
m["njj"] = {
"Njen",
36112,
"nic-mom",
"Latn",
}
m["njl"] = {
"Njalgulgule",
7071229,
"sdv-daj",
}
m["njm"] = {
"tiếng Angami",
56761,
"tbq-anp",
"Latn",
"Tiếng Angami",
"Angami",
}
m["njn"] = {
"Liangmai Naga",
14194500,
"sit-zem",
}
m["njo"] = {
"tiếng Ao",
28433,
"sit-aao",
"Latn",
"Tiếng Ao",
"Ao",
}
m["njr"] = {
"Njerep",
35844,
"nic-mmb",
"Latn",
}
m["njs"] = {
"Nisa",
13593518,
"paa-egb",
}
m["njt"] = {
"Ndyuka-Trio Pidgin",
13591205,
"crp",
ancestors = "djk, tri",
}
m["nju"] = {
"Ngadjunmaya",
7021846,
"aus-pam",
}
m["njx"] = {
"Kunyi",
3196559,
"bnt-kng",
"Latn",
}
m["njy"] = {
"Njyem",
35898,
"bnt-ndb",
"Latn",
}
m["njz"] = {
"tiếng Nyishi",
56870,
"sit-tan",
"Latn, Beng",
"Tiếng Nyishi",
"Nyishi",
}
m["nka"] = {
"Nkoya",
7042633,
"bnt-lbn",
"Latn",
}
m["nkb"] = {
"Khoibu Naga",
21481876,
"sit-mar",
}
m["nkc"] = {
"Nkongho",
35863,
"bnt-saw",
"Latn",
}
m["nkd"] = {
"Koireng",
6426342,
"sit-zem",
}
m["nke"] = {
"Duke",
3041075,
"poz-ocw",
}
m["nkf"] = {
"Inpui Naga",
21481817,
"sit-zem",
}
m["nkg"] = {
"Nekgini",
11732509,
"ngf-fin",
"Latn",
}
m["nkh"] = {
"Khezha Naga",
6401519,
"tbq-anp",
}
m["nki"] = {
"tiếng Naga Thangal",
56374,
"sit-zem",
"Latn, Beng",
"Tiếng Naga Thangal",
"Naga Thangal",
}
m["nkj"] = {
"Nakai",
14916897,
"ngf-okk",
"Latn",
}
m["nkk"] = {
"Nokuku",
7048122,
"poz-vnc",
}
m["nkm"] = {
"Namat",
15634505,
}
m["nkn"] = {
"Nkangala",
10962292,
"bnt-clu",
"Latn",
ancestors = "mck",
}
m["nko"] = {
"tiếng Nkonya",
35867,
"alv-gng",
"Latn",
"Tiếng Nkonya",
"Nkonya",
}
m["nkp"] = {
"Niuatoputapu",
3399095,
"poz-pnp",
}
m["nkq"] = {
"Nkami",
7042522,
"alv-gng",
"Latn",
}
m["nkr"] = {
"Nukuoro",
2635961,
"poz-pnp",
"Latn",
}
m["nks"] = {
"North Asmat",
11732049,
}
m["nkt"] = {
"Nyika",
16917497,
"bnt-mwi",
"Latn",
}
m["nku"] = {
"tiếng Kulango Bouna",
20668241,
"alv-kul",
"Latn",
"Tiếng Kulango Bouna",
"Kulango Bouna",
}
-- nkv is treated as nkt, see WT:LT
m["nkw"] = {
"Nkutu",
7193313,
"bnt-tet",
"Latn",
}
m["nkx"] = {
"Nkoroo",
36000,
"ijo",
}
m["nkz"] = {
"tiếng Nkari",
11130307,
"nic-ief",
ancestors = "ibr",
"Latn",
"Tiếng Nkari",
"Nkari",
}
m["nla"] = {
"Ngombale",
36292,
"bai",
"Latn",
}
m["nlc"] = {
"Nalca",
6960839,
"ngf",
"Latn",
}
m["nle"] = {
"East Nyala",
25559347,
"bnt-msl",
"Latn",
ancestors = "luy",
}
m["nlg"] = {
"Gela",
3063531,
"poz-sls",
"Latn",
}
m["nli"] = {
"Grangali",
3444203,
"inc-kun",
}
m["nlj"] = {
"Nyali",
7070830,
"bnt-nya",
"Latn",
}
m["nlk"] = {
"Ninia Yali",
12953310,
}
m["nll"] = {
"Nihali",
33904,
"qfa-iso",
"Deva, Latn",
}
m["nlm"] = {
"Mankiyali",
47522426,
"inc-koh",
}
m["nlo"] = {
"Ngul",
35894,
"bnt-bdz",
"Latn",
}
m["nlq"] = {
"Lao Naga",
63283609,
"sit-tno",
}
m["nlu"] = {
"Nchumbulu",
36143,
"alv-gng",
"Latn",
}
m["nlv"] = {
"Orizaba Nahuatl",
3086050,
"azc-nah",
"Latn",
}
m["nlw"] = {
"Walangama",
7961277,
}
m["nlx"] = {
"Nahali",
33361,
"inc-bhi",
}
m["nly"] = {
"Nyamal",
7070837,
"aus-nga",
"Latn",
}
m["nlz"] = {
"Nalögo",
20527138,
"poz-oce",
}
m["nma"] = {
"Maram Naga",
56378,
"sit-zem",
}
m["nmb"] = {
"Big Nambas",
2902304,
"poz-vnc",
}
m["nmc"] = {
"tiếng Ngam",
3915446,
"csu-sar",
"Latn",
"Tiếng Ngam",
"Ngam",
}
m["nmd"] = {
"Ndumu",
35901,
"bnt-mbt",
"Latn",
}
m["nme"] = {
"Mzieme Naga",
6949473,
"sit-zem",
}
m["nmf"] = {
"tiếng Tangkhul Naga",
7682992,
"sit-tng",
nil,
"Tiếng Tangkhul Naga",
"Tangkhul Naga",
}
m["nmg"] = {
"Kwasio",
34098,
"bnt-mnj",
"Latn",
}
m["nmh"] = {
"Monsang Naga",
6902496,
}
m["nmi"] = {
"Nyam",
3438738,
"cdc-wst",
"Latn",
}
m["nmj"] = {
"Ngombe (Central African Republic)",
3913949,
"alv-gbs",
}
m["nmk"] = {
"Namakura",
3335410,
"poz-vnc",
}
m["nml"] = {
"Ndemli",
36089,
"nic-grf",
"Latn",
}
m["nmm"] = {
"tiếng Manangba",
6746900,
"sit-tam",
"Tibt, Deva",
"Tiếng Manangba",
"Manangba",
translit = {Tibt = "Tibt-translit"},
override_translit = true,
display_text = {Tibt = s["Tibt-displaytext"]},
entry_name = {Tibt = s["Tibt-entryname"]},
sort_key = {Tibt = "Tibt-sortkey"},
}
m["nmn"] = {
"tiếng ǃXóõ",
13229,
"khi-tuu",
"Latn",
"Tiếng ǃXóõ",
"ǃXóõ",
}
m["nmo"] = {
"tiếng Naga Moyon",
6927748,
"tbq-kuk",
"Latn, Beng",
"Tiếng Naga Moyon",
"Naga Moyon",
}
m["nmp"] = {
"Nimanbur",
nil,
}
m["nmq"] = {
"Nambya",
11008869,
"bnt-sho",
"Latn",
}
m["nmr"] = {
"Nimbari",
36069,
"alv-lni",
}
m["nms"] = {
"Letemboi",
3236886,
"poz-vnc",
}
m["nmt"] = {
"Namonuito",
12908815,
"poz-mic",
}
m["nmu"] = {
"Northeast Maidu",
3278074,
"nai-mdu",
"Latn",
}
m["nmv"] = {
"Ngamini",
7021944,
"aus-kar",
"Latn",
}
m["nmw"] = {
"Nimoa",
7037729,
"poz-ocw",
}
m["nmy"] = {
"Namuyi",
56844,
"sit-nax",
"Latn",
}
m["nmz"] = {
"Nawdm",
36085,
"nic-yon",
"Latn",
}
m["nna"] = {
"Nyangumarta",
33653,
}
m["nnb"] = {
"Nande",
3196953,
"bnt-glb",
"Latn",
}
m["nnc"] = {
"Nancere",
3140491,
"cdc-est",
"Latn",
}
m["nnd"] = {
"West Ambae",
2841479,
"poz-vnc",
"Latn",
}
m["nne"] = {
"Ngandyera",
10961003,
"bnt-ova",
"Latn",
}
m["nnf"] = {
"Ngaing",
11732510,
"ngf-fin",
"Latn",
}
m["nng"] = {
"tiếng Naga Maring",
12952908,
"sit-mar",
"Latn, Beng",
"Tiếng Naga Maring",
"Naga Maring",
}
m["nnh"] = {
"tiếng Ngiemboon",
36286,
"bai",
"Latn",
"Tiếng Ngiemboon",
"Ngiemboon",
}
m["nni"] = {
"North Nuaulu",
12952968,
"poz-cma",
}
m["nnj"] = {
"Nyangatom",
4662604,
"sdv-ttu",
}
m["nnk"] = {
"tiếng Nankina",
11732502,
"ngf-fin",
"Latn",
"Tiếng Nankina",
"Nankina",
}
m["nnl"] = {
"Northern Rengma Naga",
7067615,
"tbq-anp",
}
m["nnm"] = {
"Namia",
56363,
"paa-spk",
"Latn",
}
m["nnn"] = {
"Ngete",
56625,
"cdc-mas",
"Latn",
}
m["nnp"] = {
"tiếng Wancho",
7967085,
"sit-kch",
"Wcho, Deva, Latn",
"Tiếng Wancho",
"Wancho",
}
m["nnq"] = {
"Ngindo",
7022366,
"bnt-mbi",
"Latn",
}
m["nnr"] = {
"Narungga",
13591127,
"aus-pam",
}
m["nnt"] = {
"Nanticoke",
3915517,
"alg-eas",
"Latn",
}
m["nnu"] = {
"Dwang",
35258,
"alv-gng",
"Latn",
}
m["nnv"] = {
"Nukunu",
10604066,
}
m["nnw"] = {
"Southern Nuni",
11152248,
"nic-gnn",
"Latn",
}
m["nnx"] = {
"Ngong",
12952915,
}
m["nny"] = { -- contrast aus-ynk
"Nyangga",
10604331,
"aus-tnk",
"Latn",
}
m["nnz"] = {
"Nda'nda'",
36016,
"bai",
"Latn",
}
m["noa"] = {
"Woun Meu",
3111873,
"sai-chc",
"Latn",
}
m["noc"] = {
"Nuk",
11732534,
"ngf-fin",
"Latn",
}
m["nod"] = {
"tiếng Bắc Thái",
565110,
"tai-swe",
"Lana, Thai",
"Tiếng Bắc Thái",
"Bắc Thái",
entry_name = {remove_diacritics = c.ZWNJ},
sort_key = {
Lana = "Lana-sortkey",
Thai = "Thai-sortkey"
},
}
m["noe"] = {
"Nimadi",
3502294,
"inc-wes",
"Deva",
ancestors = "raj",
translit = "hi-translit",
}
m["nof"] = {
"Nomane",
11732531,
}
m["nog"] = {
"tiếng Nogai",
33871,
"trk-kno",
"Cyrl, Arab, Latn",
"Tiếng Nogai",
"Nogai",
translit = "nog-translit",
override_translit = true,
}
m["noh"] = {
"Nomu",
11732532,
}
m["noi"] = {
"Noiri",
12953774,
"inc-bhi",
}
m["noj"] = {
"Nonuya",
5372139,
"sai-wit",
"Latn",
}
m["nok"] = {
"Nooksack",
3343396,
}
m["nol"] = {
"Nomlaki",
3343229,
"nai-wtq",
"Latn",
}
m["nom"] = {
"Nocamán",
7046289,
"sai-pan",
"Latn",
}
m["non"] = {
"tiếng Bắc Âu cổ",
35505,
"gmq",
"Latn, Runr",
"Tiếng Bắc Âu cổ",
"Bắc Âu cổ",
translit = {Runr = "Runr-translit"},
}
m["nop"] = {
"Numanggang",
7069052,
"ngf-fin",
"Latn",
}
m["noq"] = {
"Ngongo",
11057478,
"bnt-yak",
"Latn",
}
m["nos"] = {
"Eastern Nisu",
25559419,
"tbq-nis",
}
m["not"] = {
"Nomatsiguenga",
3342992,
"awd",
"Latn",
}
m["nou"] = {
"Ewage-Notu",
5418860,
}
m["nov"] = {
"tiếng Novial",
36738,
"art",
"Latn",
"Tiếng Novial",
"Novial",
type = "appendix-constructed"
}
m["now"] = {
"Nyambo",
4967930,
"bnt-haj",
"Latn",
}
m["noy"] = {
"Noy",
36321,
"alv-bua",
}
m["noz"] = {
"Nayi",
3183349,
"omv-diz",
}
m["npa"] = {
"Nar Phu",
4926353,
"sit-tam",
}
m["npb"] = {
"Nupbikha",
3695201,
"sit-ebo",
}
m["npg"] = {
"Ponyo",
7228475,
"sit-kch",
}
m["nph"] = {
"Phom",
7187109,
"sit-kch",
}
m["npl"] = {
"Southeastern Puebla Nahuatl",
4632950,
"azc-nah",
"Latn",
}
m["npn"] = {
"Mondropolon",
3320594,
"poz-aay",
}
m["npo"] = {
"Pochuri Naga",
7206342,
"tbq-anp",
}
m["nps"] = {
"Nipsan",
11732528,
}
m["npu"] = {
"Puimei Naga",
7259044,
"sit-zem",
}
m["npy"] = {
"Napu",
12953768,
}
m["nqg"] = {
"tiếng Ede Nago",
12952408,
"alv-ede",
nil,
"Tiếng Ede Nago",
"Ede Nago",
}
m["nqk"] = {
"Kura Ede Nago",
12952409,
"alv-ede",
}
m["nql"] = {
"Ngendelengo",
63283693,
"bnt-swb",
"Latn",
}
m["nqm"] = {
"Ndom",
6983791,
"ngf",
"Latn",
}
m["nqn"] = {
"Nen",
20816352,
"paa-yam",
}
m["nqo"] = {
"N'Ko",
18546266,
"dmn-man",
"Nkoo",
}
m["nqq"] = {
"Kyan-Karyaw Naga",
63283784,
"sit-tno",
}
m["nqy"] = {
"Akyaung Ari",
4702035,
"sit-tng",
}
m["nra"] = {
"Ngom",
36087,
"bnt-kel",
"Latn",
}
m["nrb"] = {
"Nara",
36179,
"sdv-nes",
}
m["nrc"] = {
"tiếng Noreia",
37023,
"cel-con",
"Ital",
"Tiếng Noreia",
"Noreia",
translit = "Ital-translit",
}
m["nre"] = {
"Southern Rengma Naga",
7313205,
"tbq-anp",
}
m["nrf"] = {
"tiếng Norman",
33850,
"roa-oil",
"Latn",
"Tiếng Norman",
"Norman",
wikimedia_codes = "nrm",
ancestors = "frm",
sort_key = s["roa-oil-sortkey"],
}
m["nrg"] = {
"Narango",
12952929,
"poz-vnc",
}
m["nri"] = {
"Chokri Naga",
5104247,
"tbq-anp",
}
m["nrk"] = {
"Ngarla",
3915860,
"aus-nga",
"Latn",
}
m["nrl"] = {
"Ngarluma",
7022078,
"aus-nga",
"Latn",
}
m["nrm"] = {
"Narom",
3336135,
"poz-swa",
"Latn",
}
m["nrn"] = {
"Norn",
36708,
"gmq-ins",
"Latn",
}
m["nrp"] = {
"tiếng Piceni Bắc",
430138,
nil,
"Ital",
"Tiếng Piceni Bắc",
"Piceni Bắc",
translit = "Ital-translit",
}
m["nrr"] = {
"Norra",
12952967,
"tai",
}
m["nrt"] = {
"Northern Kalapuya",
3192121,
"nai-klp",
}
m["nru"] = {
"tiếng Ma Thoa",
21658869,
"sit-nas",
"Latn",
"Tiếng Ma Thoa",
"Ma Thoa",
}
m["nrx"] = {
"Ngurmbur",
2591251,
}
m["nrz"] = {
"Lala (New Guinea)",
6480151,
"poz-ocw",
}
m["nsa"] = {
"Sangtam Naga",
7418144,
"sit-aao",
}
m["nsb"] = {
"Lower Nossob",
6693681,
"khi-tuu",
"Latn",
}
m["nsc"] = {
"Nshi",
11129508,
"nic-rnn",
"Latn",
}
m["nsd"] = {
"Southern Nisu",
nil,
"tbq-nis",
}
m["nse"] = {
"Nsenga",
3081996,
"bnt-sna",
"Latn",
}
m["nsg"] = {
"Ngasa",
56345,
"sdv-lma",
}
m["nsh"] = {
"Ngoshie",
7022582,
"nic-mom",
"Latn",
}
m["nsi"] = {
"Nigerian Sign Language",
7033021,
"sgn",
}
m["nsk"] = {
"tiếng Naskapi",
1704302,
"alg",
"Cans",
"Tiếng Naskapi",
"Naskapi",
ancestors = "cr",
translit = "nsk-translit",
}
m["nsl"] = {
"Norwegian Sign Language",
1781613,
"sgn",
}
m["nsm"] = {
"Sema",
3478238,
"tbq-anp",
}
m["nsn"] = {
"Nehan",
3337774,
"poz-ocw",
}
m["nso"] = {
"tiếng Sotho Bắc",
33890,
"bnt-sts",
"Latn",
"Tiếng Sotho Bắc",
"Sotho Bắc",
}
m["nsp"] = {
"Nepalese Sign Language",
3915492,
"sgn",
}
m["nsq"] = {
"Northern Sierra Miwok",
3344226,
"nai-utn",
"Latn",
}
m["nsr"] = {
"Maritime Sign Language",
3915483,
"sgn",
}
m["nss"] = {
"Nali",
3335385,
"poz-aay",
}
m["nst"] = {
"Tangsa",
56350,
"sit-tno",
"Latn, Tnsa",
}
m["nsu"] = {
"Sierra Negra Nahuatl",
nil,
"azc-nah",
"Latn",
}
m["nsv"] = {
"Southwestern Nisu",
nil,
"tbq-nis",
}
m["nsw"] = {
"Navut",
3337327,
"poz-vnc",
}
m["nsx"] = {
"Nsongo",
7067577,
"bnt-tmb",
"Latn",
}
m["nsy"] = {
"Nasal",
6966574,
}
m["nsz"] = {
"Nisenan",
33665,
"nai-mdu",
"Latn",
}
m["ntd"] = {
"Northern Tidong",
nil,
"poz-san",
}
m["nte"] = {
"Nathembo",
11030947,
"bnt-mak",
}
m["ntg"] = {
"Ngantangarra",
33060509,
}
m["nti"] = {
"Natioro",
36140,
"alv-wan",
}
m["ntj"] = {
"Ngaanyatjarra",
3915409,
"aus-pam",
"Latn",
}
m["ntk"] = {
"Ikoma",
5996114,
"bnt-lok",
"Latn",
}
m["ntm"] = {
"tiếng Nateni",
3070731,
"nic-grm",
"Latn",
"Tiếng Nateni",
"Nateni",
}
m["nto"] = {
"Ntomba",
11130292,
"bnt-mon",
"Latn",
}
m["ntp"] = {
"tiếng Tepehuan Bắc",
15615651,
"azc",
"Latn",
"Tiếng Tepehuan Bắc",
"Tepehuan Bắc",
sort_key = {remove_diacritics = c.acute},
}
m["ntr"] = {
"Delo",
35195,
"nic-gne",
"Latn",
}
m["nts"] = {
"Natagaimas",
6967931,
}
m["ntu"] = {
"Natügu",
nil,
"poz-oce",
}
m["ntw"] = {
"Nottoway",
3344791,
"iro-nor",
}
m["ntx"] = {
"Somra",
7560536,
"sit-tng",
}
m["nty"] = {
"Mantsi",
56878,
"sit-mnz",
}
m["nua"] = {
"Yuaga",
3573088,
"poz-cln",
"Latn",
}
m["nuc"] = {
"Nukuini",
3346231,
}
m["nud"] = {
"Ngala",
7021893,
"paa-spk",
"Latn",
}
m["nue"] = {
"Ngundu",
12952953,
"bad-cnt",
"Latn",
}
m["nuf"] = {
"Nusu",
56413,
"tbq-nus",
}
m["nug"] = {
"Nungali",
7069826,
"aus-mir",
}
m["nuh"] = {
"Ndunda",
3913968,
"nic-mmb",
"Latn",
}
m["nui"] = {
"Ngumbi",
36459,
"bnt-yko",
}
m["nuj"] = {
"Nyole (Uganda)",
3739448,
"bnt-msl",
"Latn",
}
m["nuk"] = {
"tiếng Nuu-chah-nulth",
2992876,
"wak",
"Latn",
"Tiếng Nuu-chah-nulth",
"Nuu-chah-nulth",
}
m["nul"] = {
"Nusa Laut",
7070332,
"poz-cma",
}
m["num"] = {
"Niuafo'ou",
36173,
"poz-pol",
"Latn",
}
m["nun"] = {
"Anong",
2748232,
"sit-nng",
}
m["nuo"] = {
"tiếng Nguồn",
3915785,
"mkh-vie",
"Latn",
"Tiếng Nguồn",
"Nguồn",
sort_key = "vi-sortkey",
}
m["nup"] = {
"tiếng Nupe",
36720,
"alv-ngb",
"Latn",
"Tiếng Nupe",
"Nupe",
entry_name = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},
sort_key = "nup-sortkey",
}
m["nuq"] = {
"Nukumanu",
12909019,
"poz-pnp",
}
m["nur"] = {
"Nuguria",
7068910,
"poz-pnp",
}
m["nus"] = {
"tiếng Nuer",
33675,
"sdv-dnu",
"Latn",
"Tiếng Nuer",
"Nuer",
}
m["nut"] = {
"tiếng Nùng",
72695,
"tai",
"Latn, Hani",
"Tiếng Nùng",
"Nùng",
sort_key = {Hani = "Hani-sortkey"},
}
m["nuu"] = {
"Ngbundu",
11126081,
"bad",
"Latn",
}
m["nuv"] = {
"Northern Nuni",
11016572,
"nic-gnn",
"Latn",
}
m["nuw"] = {
"Nguluwan",
6528643,
}
m["nux"] = {
"Mehek",
6809452,
"paa-spk",
"Latn",
}
m["nuy"] = {
"Nunggubuyu",
1747811,
"aus-arn",
}
m["nuz"] = {
"Tlamacazapa Nahuatl",
2073277,
"azc-nah",
"Latn",
}
m["nvh"] = {
"Nasarian",
6966614,
"poz-vnc",
}
m["nvm"] = {
"Namiae",
12952922,
}
m["nvo"] = {
"Nyokon",
nil,
"nic-mbw",
"Latn",
}
m["nwa"] = {
"Nawathinehena",
6982892,
"alg-ara",
"Latn",
}
m["nwb"] = {
"Nyabwa",
33664,
"kro-wee",
}
m["nwc"] = {
"Classical Newar",
5128301,
"sit-new",
}
m["nwe"] = {
"Ngwe",
36181,
"bai",
"Latn",
}
m["nwi"] = {
"Southwest Tanna",
3504488,
}
m["nwm"] = {
"Nyamusa-Molo",
12747951,
"csu-bbk",
}
m["nwo"] = {
"Nauo",
6981305,
"aus-pam",
"Latn",
}
m["nwr"] = {
"Nawaru",
12638166,
"ngf",
}
m["nwx"] = {
"Middle Newar",
nil,
"sit-new",
"Deva, Newa, Ranj",
ancestors = "nwc",
}
m["nwy"] = {
"Nottoway-Meherrin",
nil,
"iro-nor",
}
m["nxa"] = {
"Nauete",
6981095,
"poz-tim",
}
m["nxd"] = {
"Ngando (Congo)",
3913277,
"bnt-ske",
}
m["nxe"] = {
"Nage",
2295569,
"poz-cet",
}
m["nxg"] = {
"tiếng Ngadha",
1516651,
"poz-cet",
"Latn",
"Tiếng Ngadha",
"Ngadha",
}
m["nxi"] = {
"Nindi",
7038230,
"bnt-mbi",
"Latn",
}
m["nxl"] = {
"South Nuaulu",
18544857,
"poz-cma",
}
m["nxm"] = {
"tiếng Numidia",
35761,
"afa",
"Tfng, Latn", --Tfng may not support all the needed characters
"Tiếng Numidia",
"Numidia",
translit = {Tfng = "Tfng-translit"},
}
m["nxn"] = {
"Ngawun",
3915711,
"aus-pam",
"Latn",
}
m["nxo"] = {
"Ndambomo",
6983681,
"bnt-kel",
"Latn",
}
m["nxq"] = {
"tiếng Nạp Tây",
2478711,
"sit-nas",
"Nkdb, Nkgb, Latn, Lisu",
"Tiếng Nạp Tây",
"Nạp Tây",
translit = {Lisu = "Lisu-translit"},
sort_key = {Lisu = s["Lisu-sortkey"]},
}
m["nxr"] = {
"Ninggerum",
11732526,
"ngf-okk",
"Latn",
}
m["nxu"] = {
"Narau",
6965452,
"ngf",
"Latn",
}
m["nxx"] = {
"Nafri",
6958211,
"paa-sen",
"Latn",
}
m["nyb"] = {
"Nyangbo",
36256,
"alv-ktg",
"Latn",
}
m["nyc"] = {
"Nyanga-li",
7070876,
"bnt-boa",
"Latn",
}
m["nyd"] = {
"Nyole (Kenya)",
7071227,
"bnt-msl",
"Latn",
}
m["nye"] = {
"Nyengo",
7071068,
"bnt-clu",
"Latn",
}
m["nyf"] = {
"tiếng Giryama",
3107606,
"bnt-mij",
"Latn",
"Tiếng Giryama",
"Giryama",
}
m["nyg"] = {
"Nyindu",
11030685,
"bnt-shh",
"Latn",
}
m["nyh"] = {
"Nyigina",
3913780,
"aus-nyu",
"Latn",
}
m["nyi"] = {
"Nyimang",
34846,
"sdv-nyi",
"Latn",
}
m["nyj"] = {
"Nyanga (Congo)",
7070879,
"bnt-nyb",
"Latn",
}
m["nyk"] = {
"Nyaneka",
10962298,
"bnt-swb",
"Latn",
}
m["nyl"] = {
"tiếng Nyeu",
3033578,
"mkh-kat",
"Thai, Khmr, Laoo",
"Tiếng Nyeu",
"Nyeu",
}
m["nym"] = {
"Nyamwezi",
4121131,
"bnt-tkm",
"Latn",
}
m["nyn"] = {
"Nyankole",
13207,
"bnt-nyg",
"Latn",
}
m["nyo"] = {
"tiếng Nyoro",
33794,
"bnt-nyg",
"Latn",
"Tiếng Nyoro",
"Nyoro",
}
m["nyp"] = {
"Nyang'i",
7070894,
"ssa-klk",
}
m["nys"] = {
"tiếng Nyunga",
7049771,
"aus-pam",
"Latn",
"Tiếng Nyunga",
"Nyunga",
}
m["nyt"] = {
"Nyawaygi",
3915783,
"aus-dyb",
}
m["nyu"] = {
"Nyungwe",
7071318,
"bnt-sna",
"Latn",
}
m["nyv"] = {
"Nyulnyul",
3442732,
"aus-nyu",
"Latn",
}
m["nyw"] = {
"tiếng Nyaw",
26425602,
"tai",
"Thai, Latn, Tayo", -- Vietnamese alphabet
"Tiếng Nyaw",
"Nyaw",
sort_key = "Thai-sortkey", -- no effect on Latn
}
m["nyx"] = {
"Nganyaywana",
3913800,
"aus-cww",
"Latn",
}
m["nyy"] = {
"Nyakyusa",
3272620,
"bnt-run",
"Latn",
}
m["nza"] = {
"tiếng Mbembe Tigon",
36518,
"nic-jkn",
"Latn",
"Tiếng Mbembe Tigon",
"Mbembe Tigon",
}
m["nzb"] = {
"Njebi",
35923,
"bnt-nze",
"Latn",
}
m["nzd"] = {
"tiếng Nzadi",
17152586,
"bnt-bdz",
"Latn",
"Tiếng Nzadi",
"Nzadi",
entry_name = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.caron},
}
m["nzi"] = {
"Nzima",
36337,
"alv-ctn",
}
m["nzk"] = {
"Nzakara",
3913339,
"znd",
"Latn",
}
m["nzm"] = {
"Zeme Naga",
21491053,
"sit-zem",
}
m["nzs"] = {
"New Zealand Sign Language",
36239,
"sgn",
}
m["nzu"] = {
"Central Teke",
36473,
"bnt-tkc",
}
m["nzy"] = {
"Nzakambay",
36374,
"alv-mbm",
"Latn",
}
m["nzz"] = {
"Nanga Dama Dogon",
6963443,
"nic-nwa",
}
return require("Module:languages").finalizeData(m, "language")
2cjaqdtzgj1vokj2pxzctve5zmd5qzo
tha vằn
0
264283
2567067
2067402
2026-09-28T01:08:07Z
WhoAlone
40420
2567067
wikitext
text/x-wiki
{{-tyz-}}
{{-pron-}}
{{tyz-IPA}}
{{-pr-noun-}}
{{pn}}
# [[Mặt Trời]].
#: {{ux|tyz|'''Tha vằn''' khửn nhọt khau|'''Mặt trời''' lên đỉnh núi}}
[[Thể loại:Danh từ riêng tiếng Tày]]
{{c|tyz|Thiên thể|Nguồn ánh sáng}}
4a0qe4v4xs482wji6cw5aug7tbcdyw7
Mô đun:hak-pron
828
264662
2567124
2052283
2026-09-28T08:03:49Z
Hiyuune
50834
2567124
Scribunto
text/plain
local export = {}
local gsub = mw.ustring.gsub
local sub = mw.ustring.sub
local match = mw.ustring.match
local find = mw.ustring.find
local len = mw.ustring.len
function export.rom_display(text,convtype)
if type(text) == 'table' then text,convtype = text.args[1],(text.args[2] or '') end
local display = ''
local show = { ['pfs'] = '', ['gd'] = '', ", ['kuching'] = " }
local decomp = mw.text.split(gsub(text,'/',' / '),';',true)
local TableTools = require('Module:table')
for i = 1,#decomp,1 do
if match(decomp[i],'pfs') then
decomp[i] = gsub(decomp[i],'pfs=','')
local pfs_readings = { ['n'] = {}, ['s'] = {} }
local hrs_readings = { ['n'] = {}, ['s'] = {} }
local hpy_readings = { ['n'] = {}, ['s'] = {} }
local ipa_readings = { ['n'] = {}, ['s'] = {} }
local function display_format(style)
local label = { ['n'] = 'Miền Bắc ', ['s'] = 'Miền Nam ', ['ns'] = '' }
local city = {
['n'] = '[[w:Miêu Lật (thành phố)|Miêu Lật]]',
['s'] = '[[w:Mỹ Nùng|Mỹ Nùng]]',
['ns'] = '[[w:Miêu Lật (thành phố)|Miêu Lật]] và [[w:Mỹ Nùng|Mỹ Nùng]]'
}
local text = string.format("\n** <small>(''[[w:Phương ngữ Tứ Huyện|%sTứ Huyện]], bao gồm %s'')</small>", label[style], city[style])
text = text .. "\n*** <small>''[[w:Pha̍k-fa-sṳ|Pha̍k-fa-sṳ]]''</small>: <span style=\"font-family: Consolas, monospace;\">" .. table.concat(pfs_readings[style:sub(1,1)], ' / ') .. '</span>'
text = text .. "\n*** <small>''[[w:zh:客家語拼音方案|Hệ thống La Mã hóa tiếng Khách Gia]]''</small>: <span style=\"font-family: Consolas, monospace;\">" .. table.concat(hrs_readings[style:sub(1,1)], ' / ') .. '</span>'
text = text .. "\n*** <small>''[[w:Bính âm tiếng Khách Gia|Bính âm tiếng Khách Gia]]''</small>: <span style=\"font-family: Consolas, monospace;\">" .. table.concat(hpy_readings[style:sub(1,1)], ' / ') .. '</span>'
local ipa = '\n*** <small>[[Wiktionary:IPA|IPA]] Hán học '
local span = '</small>: <span class="IPA">/'
text = text .. ipa
if style == 'ns' then
local north = table.concat(ipa_readings['n'], '/, /')
local south = table.concat(ipa_readings['s'], '/, /')
if north == south then
text = text .. span .. north .. '/</span>'
else
text = text .. " (''Miền Bắc bao gồm " .. city['n'] .. "'')" .. span .. north .. "/</span>"
text = text .. ipa .. " (''Miền Nam bao gồm " .. city['s'] .. "'')" .. span .. south .. "/</span>"
end
else
text = text .. span .. table.concat(ipa_readings[style], '/, /') .. '/</span>'
end
return text
end
local function southern(text)
local function convert(a, b, c)
local e_a = { ['e'] = 'a', ['ê'] = 'â', ['é'] = 'á', ['è'] = 'à' }
return a .. e_a[b] .. c
end
text = gsub(text, '([yY])([eéèê])(̍?[nt])', convert)
text = gsub(text, '([nN]gi)([eéèê])(̍?[nt])', convert)
text = gsub(text, '([kK]h?i)([eéèê])(̍?[nt])', convert)
text = gsub(text, '^([hH]i)([eéèê])(̍?[nt])', convert)
text = gsub(text, '([%-%s][hH]i)([eéèê])(̍?[nt])', convert)
return text
end
local function add(style, reading)
pfs_readings[style][#pfs_readings[style] + 1] = reading
hrs_readings[style][#hrs_readings[style] + 1] = export.hrs(reading, style)
hpy_readings[style][#hpy_readings[style] + 1] = export.pfs_to_hpy(reading)
ipa_readings[style][#ipa_readings[style] + 1] = export.ipa(reading, style)
end
local ns = true
for _, reading in ipairs(mw.text.split(decomp[i], ' / ')) do
if match(reading,':') then
local pair = mw.text.split(reading, ':')
if pair[1] == 'ns' then
add('n', pair[2])
add('s', pair[2])
else
ns = false
add(pair[1], pair[2])
end
elseif match(reading,'[yY]') or reading ~= southern(reading) then
ns = false
add('n', reading)
add('s', southern(reading))
else
add('n', reading)
add('s', reading)
end
end
if convtype == '' then
if ns then
display = display .. display_format('ns')
else
if #pfs_readings['n'] ~= 0 then display = display .. display_format('n') end
if #pfs_readings['s'] ~= 0 then display = display .. display_format('s') end
end
else
for i, reading in ipairs(pfs_readings['s']) do
pfs_readings['n'][#pfs_readings['n'] + 1] = pfs_readings['s'][i]
end
show['pfs'] = table.concat(TableTools.removeDuplicates(pfs_readings['n']), ' / ')
end
end
if match(decomp[i],'gd') then
if convtype == '' then
display = display .. "\n** <small>(''[[w:Phương ngữ Mai Huyện|Mai Huyện]]'')</small>"
display = display .. "\n*** <small>''[[w:Tiếng Quảng Đông La Mã hóa#Tiếng Khách Gia|Quảng Đông]]''</small>: <span style=\"font-family: Consolas, monospace;\">" .. string.gsub(string.gsub(decomp[i],'gd=',''),'([1-6])','<sup>%1</sup>') .. '</span>'
display = display .. '\n*** <small>[[Wiktionary:IPA|IPA]] Hán học </small>: <span class="IPA">/' .. export.gd_to_ipa(decomp[i]) .. "/</span>"
else
show['gd'] = gsub(gsub(decomp[i], 'gd=', ''), '([1-6])', '<sup>%1</sup>')
end
end
if match(decomp[i],'kuching') then
show['kuching'] = gsub(gsub(decomp[i], 'kuching=', ''), '([1-6])', '<sup>%1</sup>')
end
end
if convtype ~= '' then
local pfs = " <small>(''[[w:Phương ngữ Tứ Huyện|Tứ Huyện]], [[w:Pha̍k-fa-sṳ|PFS]]'')</small>: <span style=\"font-family: Consolas, monospace;\">" .. show['pfs'] .. '</span>'
local gd = " <small>(''[[w:Phương ngữ Mai Huyện|Mai Huyện]], [[w:Tiếng Quảng Đông La Mã hóa#Tiếng Khách Gia|Quảng Đông]]'')</small>: <span style=\"font-family: Consolas, monospace;\">" .. show['gd'] .. '</span>'
if show['pfs'] ~= '' and show['gd'] ~= '' then
display = display .. '\n*:' .. pfs .. '\n*:' .. gd
elseif show['pfs'] ~= '' then
display = display .. pfs
elseif show['gd'] ~= '' then
display = display .. gd
end
end
return display
end
local function find_tone(text)
text = mw.ustring.toNFD(text)
if find(text, '̂') then
return 1
elseif find(text, '̀') then
return 2
elseif find(text, '́') then
return 3
elseif find(text, '̍') then
return 6
elseif find(text, '[^n][ptkbdg]$') then
return 5
else
return 4
end
end
function export.ipa(text, dialect)
local syllables, initial, final, tone, tone_conv = {}, {}, {}, {}, {}
local ipa = {}
if type(text) == 'table' then text = text.args[1] end
text = gsub(gsub(gsub(mw.ustring.lower(text), '%.', ''), '%s+$', ''), '%s+', '-')
syllables = mw.text.split(text, "-")
for i, syllable in ipairs(syllables) do
syllable = gsub(syllable, ",", "")
syllable = gsub(syllable,'o̍[ae]',{['o̍a']='ua̍',['o̍e']='ue̍'})
syllable = gsub(syllable,'[oóòôō][ae]',{['oa']='ua',['óa']='uá',['òa']='uà',['ôa']='uâ',['ōa']='uā',['oe']='ue',['óe']='ué',['òe']='uè',['ôe']='uê',['ōe']='uē'})
local palatal = false
initial[i] = match(syllable, '^[mnptkcfvshyl]?[gh]?h?')
final[i] = sub(syllable, len(initial[i]) + 1, -1)
if find(final[i], '^[iíìî]') then
palatal = true
end
local function add_palatal(text, add_or_not)
local palatal_initial = {
['ch'] = true,
['chh'] = true,
['s'] = true,
['ng'] = true
}
if add_or_not and palatal_initial[text] then
return text .. 'i'
else
return text
end
end
local initial_ipa = {
['ngi'] = 'ɲ',
['ng'] = 'ŋ',
['ph'] = 'pʰ',
['th'] = 'tʰ',
['kh'] = 'kʰ',
['ch'] = 't͡s',
['chi'] = 't͡ɕ',
['chh'] = 't͡sʰ',
['chhi'] = 't͡ɕʰ',
['si'] = 'ɕ',
['y'] = 'i'
}
initial[i] = initial_ipa[add_palatal(initial[i], palatal)] or initial[i]
tone[i] = find_tone(final[i])
local final_conv = {
['á'] = 'a', ['é'] = 'e', ['í'] = 'i', ['ó'] = 'o', ['ú'] = 'u', ['́'] = '',
['à'] = 'a', ['è'] = 'e', ['ì'] = 'i', ['ò'] = 'o', ['ù'] = 'u', ['̀'] = '',
['â'] = 'a', ['ê'] = 'e', ['î'] = 'i', ['ô'] = 'o', ['û'] = 'u', ['̂'] = '',
['ń'] = 'n', ['ǹ'] = 'n',
['̍'] = '',
['ṳ'] = 'ɨ',
}
final[i] = gsub(final[i], '[âêîôû̂àèìòù̀áéíóú́ńǹ̍ṳ]', final_conv)
if initial[i] == 'i' then
final[i] = (find(final[i], '^i[mnpt]?$') and '' or 'i') .. final[i]
initial[i] = dialect == 's' and '(j)' or ''
end
final[i] = gsub(final[i], '([ptk])$', '%1̚')
final[i] = gsub(final[i], 'ng$', 'ŋ')
final[i] = final[i] == 'ŋ' and 'ŋ̍' or final[i]
final[i] = gsub(final[i], 'er$', 'ə')
final[i] = gsub(final[i], '([aeiouɨ])([aeiouɨ])([aeiouɨ]?)', function(first, second, third)
if third ~= '' then
first = first .. '̯'
third = third .. '̯'
elseif first == 'i' or first == 'u' then
first = first .. '̯'
elseif second == 'i' or second == 'u' then
second = second .. '̯'
end
return first .. second .. third end)
end
for i, syllable in ipairs(syllables) do
local tone_ipa = {
[1] = '²⁴',
[2] = '¹¹',
[3] = '³¹',
[4] = '⁵⁵',
[5] = '²',
[6] = '⁵',
}
tone_conv[i] = tone_ipa[tone[i]]
if (tone[i] == 1 and find(tostring(tone[i+1]), '[146]') and not find(syllable, ",")) or (syllable == 'é' and dialect == 'n' and find(mw.title.getCurrentTitle().text, '仔') and find(text, '-é') and find(tostring(tone[i-1]), '[35]')) then
tone_conv[i] = tone_conv[i] .. '⁻¹¹'
end
ipa[i] = initial[i] .. final[i] .. tone_conv[i]
end
return gsub(table.concat(ipa, " "), ",", "")
end
function export.hrs(text, dialect)
if type(text) == 'table' then text = text.args[1] end
local syllables = mw.text.split(gsub(mw.ustring.lower(text), ' ', '-'), "-")
for i, syllable in ipairs(syllables) do
-- check for commas
local comma = ''
if find(syllable, ',') then
comma = ','
syllable = sub(syllable, 1, -2)
end
-- change consonants
syllable = gsub(syllable,'[ptky]',{['p']='b',['t']='d',['k']='g',['y']=dialect == 's' and '(r)i' or 'i'})
syllable = gsub(syllable,'[bdgc]h',{['bh']='p',['dh']='t',['gh']='k',['ch']='z'})
syllable = gsub(syllable,'zh','c')
local palatal = {['z']='j',['c']='q',['s']='x',['i']=''}
syllable = gsub(syllable,'([zcsi])([iíìî])', function(a,b) return palatal[a]..b end)
-- find tones
local marks = { [1] = '´', [2] = 'ˇ', [3] = '`', [5] = '`' }
local tone = marks[find_tone(syllable)] or ''
-- remove tone marks and fix vowels
syllable = gsub(syllable, 'ṳ', 'ii')
syllable = gsub(mw.ustring.toNFD(syllable), '[́̀̂̍]', '')
syllable = gsub(syllable, 'o([ae])', 'u%1')
-- add new tone marks
syllables[i] = syllable .. tone .. comma
end
return table.concat(syllables, " ")
end
function export.pfs_to_hpy(text)
if type(text) == 'table' then text = text.args[1] end
local syllables = mw.text.split(gsub(mw.ustring.lower(text), ' ', '-'), "-")
for i, syllable in ipairs(syllables) do
if syllable == '...' then
syllables[i] = syllable
else
-- check for commas
local comma = ''
if find(syllable, ',') then
comma = ','
syllable = sub(syllable, 1, -2)
end
-- change consonants
syllable = gsub(syllable,'[ptk]',{['p']='b',['t']='d',['k']='g'})
syllable = gsub(syllable,'[bdgc]h',{['bh']='p',['dh']='t',['gh']='k',['ch']='z'})
syllable = gsub(syllable,'zh','c')
local palatal = {['z']='j',['c']='q',['s']='x'}
syllable = gsub(syllable,'([zcs])([iíìî])', function(a,b) return palatal[a]..b end)
-- find tones
local tone = find_tone(syllable)
-- remove tone marks and fix vowels
syllable = gsub(syllable, 'ṳ', 'i')
syllable = gsub(mw.ustring.toNFD(syllable), '[́̀̂̍]', '')
syllable = gsub(syllable, 'o([ae])', 'u%1')
syllable = syllable == 'yu' and 'yiu' or syllable
syllable = gsub(syllable, '([iy])e([nd])', '%1a%2')
-- put everything together
syllables[i] = syllable .. '<sup>' .. tone .. '</sup>' .. comma
end
end
return table.concat(syllables, " ")
end
function export.gd_to_ipa(text)
local initial_conv = {
["b"] = "p", ["p"] = "pʰ", ["m"] = "m", ["f"] = "f", ["v"] = "ʋ",
["d"] = "t", ["t"] = "tʰ", ["n"] = "n", ["l"] = "l",
["g"] = "k", ["k"] = "kʰ", ["ng"] = "ŋ", ["h"] = "h",
["z"] = "t͡s", ["c"] = "t͡sʰ", ["s"] = "s",
["j"] = "t͡ɕ", ["q"] = "t͡ɕʰ", ["x"] = "ɕ",
[""] = "",
}
local final_conv = {
["ii"] = "z̩", ["i"] = "i", ["u"] = "u",
["a"] = "a", ["ia"] = "ia", ["ua"] = "ua",
["ê"] = "e", ["iê"] = "ie", ["uê"] = "ue",
["o"] = "o", ["io"] = "io", ["uo"] = "uo",
["m"] = "m̩", ["n"] = "n̩",
["ai"] = "aɪ", ["iai"] = "iaɪ", ["uai"] = "uaɪ",
["oi"] = "oɪ",
["ui"] = "uɪ", ["iui"] = "iuɪ",
["au"] = "au", ["iau"] = "iau",
["êu"] = "eu",
["iu"] = "iu",
["em"] = "əm", ["im"] = "im",
["am"] = "am", ["iam"] = "iam",
["êm"] = "ɛm",
["en"] = "ən", ["in"] = "in",
["an"] = "an", ["ian"] = "ian", ["uan"] = "uan",
["ên"] = "ɛn", ["iên"] = "iɛn", ["uên"] = "uɛn",
["on"] = "ɔn", ["ion"] = "iɔn", ["uon"] = "uɔn",
["un"] = "un", ["iun"] = "iun",
["ang"] = "aŋ", ["iang"] = "iaŋ", ["uang"] = "uaŋ",
["ong"] = "ɔŋ", ["iong"] = "iɔŋ", ["uong"] = "uɔŋ",
["ung"] = "ʊŋ", ["iung"] = "iʊŋ",
["eb"] = "əp̚", ["ib"] = "ip̚",
["ab"] = "ap̚", ["iab"] = "iap̚",
["êb"] = "ɛp̚",
["ed"] = "ət̚", ["id"] = "it̚",
["ad"] = "at̚", ["iad"] = "iat̚", ["uad"] = "uat̚",
["êd"] = "ɛt̚", ["iêd"] = "iɛt̚", ["uêd"] = "uɛt̚",
["od"] = "ɔt̚",
["ud"] = "ut̚", ["iud"] = "iut̚",
["ag"] = "ak̚", ["iag"] = "iak̚", ["uag"] = "uak̚",
["og"] = "ɔk̚", ["iog"] = "iɔk̚", ["uog"] = "uɔk̚",
["ug"] = "ʊk̚", ["iug"] = "iʊk̚",
}
local tone_conv = {
["1"] = "⁴⁴", ["2"] = "¹¹",
["3"] = "³¹",
["4"] = "⁵³",
["5"] = "¹", ["6"] = "⁵",
["1*"] = "⁴⁴⁻³⁵",
["4*"] = "⁵³⁻⁵⁵",
}
local palatal = {
['g'] = 'c',
['k'] = 'cʰ',
['ng'] = 'ɲ',
['h'] = 'ç',
}
if type(text) == 'table' then text = text.args[1] end
local words = mw.text.split(text, " / ")
local result = {}
for _, word in ipairs(words) do
word = gsub(gsub(gsub(word, 'gd=', ''), '[%.,]', ''), '%s+$', '')
local syllables = mw.text.split(word, '%s+')
local initial, final, tone, ipa = {}, {}, {}, {}
for i, syllable in ipairs(syllables) do
initial[i] = match(syllable, "^[bpmfvdtnlgkhzcsjqx]?g?")
final[i] = match(sub(syllable, len(initial[i]) + 1, -1), "^[^1-6]*")
if initial[i] == "" and find(final[i], "^i") then
error('Syllables starting with "i" need a "y" in front.')
end
final[i] = gsub(gsub(final[i], "^yi", "i"), "^y", "i")
if find(initial[i], "[zcs]") and final[i] == "i" then
final[i] = "ii"
end
if final[i] == "" then
final[i] = initial[i]
initial[i] = ""
end
tone[i] = match(syllable, "[1-6]$")
end
for i, syllable in ipairs(syllables) do
initial[i] = (find(final[i], "^i") and palatal[initial[i]] or initial_conv[initial[i]]) or error(("Unrecognised initial: \"%s\""):format(initial[i]))
final[i] = final_conv[final[i]] or error(("Unrecognised final: \"%s\""):format(final[i]))
if find(initial[i], "s") and find(final[i], "^i") then
error("Palatal initial needed.")
end
if find(initial[i], "ɕ") and find(final[i], "^[^i]") then
error("Palatal initial incompatible with rime.")
end
if match(tone[i], "[14]") and match(tone[i+1] or "", "[2345]") then
tone[i] = tone[i] .. "*"
end
if initial[i] == "" and final[i] == "e" and tone[i] == "3" and find(mw.title.getCurrentTitle().text, '仔') then
initial[i] = match(final[i-1] or '', '([mnŋpti])̚?$') or initial[i]
initial[i] = find(final[i-1] or '', 'u$') and 'ʋ' or initial[i]
initial[i] = find(final[i-1] or '', '[ao]$') and '(ʋ)' or initial[i]
initial[i] = find(final[i-1] or '', 'e$') and '(i)' or initial[i]
end
tone[i] = tone_conv[tone[i]]
ipa[i] = initial[i] .. final[i] .. tone[i]
end
table.insert(result, table.concat(ipa, " "))
end
return table.concat(result, "/, /")
end
return export
ceksw5ofri9ot9kc7m1qydh4fs6gqnj
ໄຊສົມບູນ
0
265494
2567014
2055148
2026-09-27T14:55:11Z
Kelly zhrm
58416
2567014
wikitext
text/x-wiki
=={{langname|lo}}==
{{wp|lo:ແຂວງ+}}
==={{ĐM|etym}}===
Từ ghép giữa {{com|lo|ໄຊ|ສົມ|ບູນ|t1=thắng lợi|t2=|t3=hoàn toàn}}
==={{ĐM|pron}}===
{{lo-pron|ໄຊ-ສົມ-ບູນ}}
==={{ĐM|pr-noun}}===
{{lo-proper noun}}
# ({{lang|lo|[[ແຂວງ]]~}}) {{place|lo|tỉnh|c/Lào|t1=Xaisomboun}}
===={{ĐM|see}}====
{{list:tỉnh của Lào/lo}}
is57cjct8xu0yoyoj2327ziwf3fg3be
安巴
0
267472
2566992
2063069
2026-09-27T14:07:43Z
WhoAlone
40420
2566992
wikitext
text/x-wiki
{{-tuw-kkl-}}
{{-translit-}}
* {{Latn}}: amba
{{-noun-}}
{{pn}}
# [[hổ]].
[[Thể loại:Danh từ tiếng Kyakala]]
{{c|tuw-kkl|Họ Mèo}}
goupyv33z113kc6f6dqbyckc85ofg3d
安楚
0
267482
2566989
2338452
2026-09-27T14:07:25Z
WhoAlone
40420
2566989
wikitext
text/x-wiki
=={{langname|tuw-kkl}}==
==={{ĐM|etym}}===
Cùng gốc với {{cog|juc|ancu}}. So sánh với {{cog|mnc|ᠠᡳᠰᡳᠨ}}.
==={{ĐM|n}}===
{{head|tuw-kkl|noun|tr=anchu}}
# [[vàng|Vàng]].
==={{ĐM|ref}}===
* {{cite-journal|title= Udi, Udihe, and the language(s) of the Kyakala|author=Andreas Hölzl|year=2018|pages=111–146|journal=International Journal of Diachronic Linguistics and Linguistic Reconstruction|volume=15|url= https://www.academia.edu/37070620/Udi_Udihe_and_the_language_s_of_the_Kyakala}}
{{C|tuw-kkl|Nguyên tố hóa học|Kim loại}}
d4ephs6m2lrwvdo6pnfx6swx4wparic
莫克
0
267484
2566973
2063117
2026-09-27T14:05:10Z
WhoAlone
40420
2566973
wikitext
text/x-wiki
{{-tuw-kkl-}}
{{-translit-}}
* {{Latn}}: mokə
{{-noun-}}
{{pn}}
# [[gia tộc]].
[[Thể loại:Danh từ tiếng Kyakala]]
{{c|tuw-kkl|Gia đình}}
0zkqknhs5au5xtg1n9cgkxk7ybk1agy
萨噶
0
267486
2566969
2063127
2026-09-27T14:04:18Z
WhoAlone
40420
2566969
wikitext
text/x-wiki
{{-tuw-kkl-}}
{{-translit-}}
* {{Latn}}: saga
{{-noun-}}
{{pn}}
# [[phụ nữ]].
# [[vợ]].
{{-drv-}}
* [[萨噶吉]] (saga ji, “bé gái”)
[[Thể loại:Danh từ tiếng Kyakala]]
{{c|tuw-kkl|Thành viên nữ trong gia đình|Hôn nhân}}
f4n3hvldaxxbclfmv4o6pk7ds6ddns4
Mô đun:etymology
828
270847
2567136
2536245
2026-09-28T09:32:51Z
Hiyuune
50834
2567136
Scribunto
text/plain
local export = {}
-- For testing
local force_cat = false
local debug_track_module = "Module:debug/track"
local languages_module = "Module:languages"
local links_module = "Module:links"
local table_module = "Module:table"
local utilities_module = "Module:utilities"
local concat = table.concat
local insert = table.insert
local new_title = mw.title.new
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function format_categories(...)
format_categories = require(utilities_module).format_categories
return format_categories(...)
end
local function full_link(...)
full_link = require(links_module).full_link
return full_link(...)
end
local function get_language_data_module_name(...)
get_language_data_module_name = require(languages_module).getDataModuleName
return get_language_data_module_name(...)
end
local function get_link_page(...)
get_link_page = require(links_module).get_link_page
return get_link_page(...)
end
local function language_link(...)
language_link = require(links_module).language_link
return language_link(...)
end
local function serial_comma_join(...)
serial_comma_join = require(table_module).serialCommaJoin
return serial_comma_join(...)
end
local function shallow_copy(...)
shallow_copy = require(table_module).shallowCopy
return shallow_copy(...)
end
local function track(page, code)
local tracking_page = "etymology/" .. page
debug_track(tracking_page)
if code then
debug_track(tracking_page .. "/" .. code)
end
end
local function join_segs(segs, conj)
if not segs[2] then
return segs[1]
elseif conj == "and" or conj == "or" then
return serial_comma_join(segs, {conj = conj})
end
local sep
if conj == "," or conj == ";" then
sep = conj .. " "
elseif conj == "/" then
sep = "/"
elseif conj == "~" then
sep = " ~ "
elseif conj then
error(("Internal error: Unrecognized conjunction \"%s\""):format(conj))
else
error(("Internal error: No value supplied for conjunction"):format(conj))
end
return concat(segs, sep)
end
-- Returns true if `lang` is the same as `source`, or a variety of it.
local function lang_is_source(lang, source)
return lang:getCode() == source:getCode() or lang:hasParent(source)
end
--[==[
Format one or more links as specified in `termobjs`, a list of term objects of the format accepted by `full_link()` in
[[Module:links]], additionally with optional qualifiers, labels and references. `conj` is used to join multiple terms
and must be specified if there is more than one term. `template_name` is the template name used in debug tracking and
must be specified. Optional `sourcetext` is text to prepend to the concatenated terms, separated by a space if the
concatenated terms are non-empty (which is always the case unless there is a single term with the value "-"). If
`qualifiers_labels_on_outside` is given, any qualifiers, labels or references specified in the first term go on the
outside of (i.e before) `sourcetext`; otherwise they will end up on the inside.
]==]
function export.format_links(termobjs, conj, template_name, sourcetext, decorations_on_outside)
if not template_name then
error("Internal error: Must specify `template_name` to format_links()")
end
for i, termobj in ipairs(termobjs) do
if termobj.lang:hasType("family") or termobj.lang:getFamilyCode() == "qfa-sub" then
if termobj.term and termobj.term ~= "-" then
debug_track(template_name .. "/family-with-term")
end
termobj.term = "-"
end
if termobj.term == "-" then
--[=[
[[Special:WhatLinksHere/Wiktionary:Tracking/cognate/no-term]]
[[Special:WhatLinksHere/Wiktionary:Tracking/derived/no-term]]
[[Special:WhatLinksHere/Wiktionary:Tracking/borrowed/no-term]]
[[Special:WhatLinksHere/Wiktionary:Tracking/calque/no-term]]
]=]
debug_track(template_name .. "/no-term")
termobjs[i] = i == 1 and sourcetext or ""
else
if i == 1 and decorations_on_outside and sourcetext then
termobj.pretext = sourcetext .. " "
sourcetext = nil
end
termobjs[i] = (i == 1 and sourcetext and sourcetext .. " " or "") .. full_link(termobj, "term")
end
end
return join_segs(termobjs, conj)
end
function export.get_display_and_cat_name(source, raw)
local display, cat_name
if source:getCode() == "und" then
display = "undetermined"
cat_name = "other languages"
elseif source:getCode() == "mul" then
display = raw and "translingual" or "[[w:Translingualism|translingual]]"
cat_name = "Translingual"
elseif source:getCode() == "mul-tax" then
display = raw and "taxonomic name" or "[[w:Biological nomenclature|taxonomic name]]"
cat_name = "taxonomic names"
else
display = raw and source:getCanonicalName() or source:makeWikipediaLink()
cat_name = source:getDisplayForm()
end
return display, cat_name
end
function export.insert_source_cat_get_display(data)
local categories, lang, source = data.categories, data.lang, data.source
local display, cat_name = export.get_display_and_cat_name(source, data.raw)
if lang and not data.nocat then
-- Add the category, but only if there is a current language
if not categories then
categories = {}
end
local langname = lang:getFullName()
-- If `lang` is an etym-only language, we need to check both it and its parent full language against `source`.
-- Otherwise if e.g. `lang` is Medieval Latin and `source` is Latin, we'll end up wrongly constructing a
-- category 'Latin terms derived from Latin'.
insert(categories, (
lang_is_source(lang, source) and " terms borrowed back into " .. cat_name or
" " .. (data.borrowing_type or "Từ dẫn xuất") .. " từ " .. cat_name .. " " ..
langname))
end
return display, categories
end
function export.format_source(data)
local lang, sort_key = data.lang, data.sort_key
-- [[Special:WhatLinksHere/Wiktionary:Tracking/etymology/sortkey]]
if sort_key then
track("sortkey")
end
local display, categories = export.insert_source_cat_get_display(data)
if lang and not data.nocat then
-- Format categories, but only if there is a current language; {{cog}} currently gets no categories
categories = format_categories(categories, lang, sort_key, nil, data.force_cat or force_cat)
else
categories = ""
end
return "<span class=\"etyl\">" .. display .. categories .. "</span>"
end
--[==[
Format sources for etymology templates such as {{tl|bor}}, {{tl|der}}, {{tl|inh}} and {{tl|cog}}. There may potentially
be more than one source language (except currently {{tl|inh}}, which doesn't support it because it doesn't really
make sense). In that case, all but the last source language is linked to the first term, but only if there is such a
term and this linking makes sense, i.e. either (1) the term page exists after stripping diacritics according to the
source language in question, or (2) the result of stripping diacritics according to the source language in question
results in a different page from the same process applied with the last source language. For example, {{m|ru|соля́нка}}
will link to [[солянка]] but {{m|en|соля́нка}} will link to [[соля́нка]] with an accent, and since they are different
pages, the use of English as a non-final source with term 'соля́нка' will link to [[соля́нка]] even though it doesn't
exist, on the assumption that it is merely a redlink that might exist. If none of the above criteria apply, a non-final
source language will be linked to the Wikipedia entry for the language, just as final source languages always are.
`data` contains the following fields:
* `lang`: The destination language object into which the terms were borrowed, inherited or otherwise derived. Used for
categorization and can be nil, as with {{tl|cog}}.
* `sources`: List of source objects. Most commonly there is only one. If there are multiple, the non-final ones are
handled specially; see above.
* `terms`: List of term objects. Most commonly there is only one. If there are multiple source objects as well as
multiple term objects, the non-final source objects link to the first term object.
* `sort_key`: Sort key for categories. Usually nil.
* `categories`: Categories to add to the page. Additional categories may be added to `categories` based on the source
languages ('''in which case `categories` is destructively modified'''). If `lang` is nil, no categories will be
added.
* `nocat`: Don't add any categories to the page.
* `sourceconj`: Conjunction used to separate multiple source languages. Defaults to {"and"}. Currently recognized
values are `and`, `or`, `,`, `;`, `/` and `~`.
* `borrowing_type`: Borrowing type used in categories, such as {"learned borrowings"}. Defaults to {"terms derived"}.
* `force_cat`: Force category generation on non-mainspace pages.
]==]
function export.format_sources(data)
local lang, sources, terms, borrowing_type, sort_key, categories, nocat =
data.lang, data.sources, data.terms, data.borrowing_type, data.sort_key, data.categories, data.nocat
local term1, sources_n, source_segs = terms[1], #sources, {}
local final_link_page
local term1_term, term1_sc = term1.term, term1.sc
if sources_n > 1 and term1_term and term1_term ~= "-" then
final_link_page = get_link_page(term1_term, sources[sources_n], term1_sc)
end
for i, source in ipairs(sources) do
local seg, display_term
if i < sources_n and term1_term and term1_term ~= "-" then
local link_page = get_link_page(term1_term, source, term1_sc)
display_term = (link_page ~= final_link_page) or (link_page and not not new_title(link_page):getContent())
end
-- TODO: if the display forms or transliterations are different, display the terms separately.
if display_term then
local display, this_cats = export.insert_source_cat_get_display{
lang = lang,
source = source,
borrowing_type = borrowing_type,
raw = true,
categories = categories,
nocat = nocat,
}
seg = language_link {
lang = source,
term = term1_term,
alt = display,
tr = "-",
}
if lang and not nocat then
-- Format categories, but only if there is a current language; {{cog}} currently gets no categories
this_cats = format_categories(this_cats, lang, sort_key, nil, data.force_cat or force_cat)
else
this_cats = ""
end
seg = "<span class=\"etyl\">" .. seg .. this_cats .. "</span>"
else
seg = export.format_source{
lang = lang,
source = source,
borrowing_type = borrowing_type,
sort_key = sort_key,
categories = categories,
nocat = nocat,
}
end
insert(source_segs, seg)
end
return join_segs(source_segs, data.sourceconj or "and")
end
-- Internal implementation of {{cognate}}/{{cog}} template.
function export.format_cognate(data)
return export.format_derived {
sources = data.sources,
terms = data.terms,
sort_key = data.sort_key,
sourceconj = data.sourceconj,
conj = data.conj,
template_name = "cognate",
force_cat = data.force_cat,
}
end
--[==[
Internal implementation of {{derived}}/{{der}} template. This dispThis is called externally from [[Module:affix]],
[[Module:affixusex]] and [[Module:see]] and needs to support qualifiers, labels and references on the outside
of the sources for use by those modules.
`data` contains the following fields:
* `lang`: The destination language object into which the terms were derived. Used for categorization and can be nil, as
with {{tl|cog}}; in this case, no categories are added.
* `sources`: List of source objects. Most commonly there is only one. If there are multiple, the non-final ones are
handled specially; see `format_sources()`.
* `terms`: List of term objects. Most commonly there is only one. If there are multiple source objects as well as
multiple term objects, the non-final source objects link to the first term object.
* `conj`: Conjunction used to separate multiple terms. '''Required'''. Currently recognized values are `and`, `or`, `,`,
`;`, `/` and `~`.
* `sourceconj`: Conjunction used to separate multiple source languages. Defaults to {"and"}. Currently recognized
values are as for `conj` above.
* `qualifiers_labels_on_outside`: If specified, any qualifiers, labels or references in the first term in `terms` will
be displayed on the outside of (before) the source language(s) in `sources`. Normally this should be specified if
there is only one term possible in `terms`.
* `template_name`: Name of the template invoking this function. Must be specified. Only used for tracking pages.
* `sort_key`: Sort key for categories. Usually nil.
* `categories`: Categories to add to the page. Additional categories may be added to `categories` based on the source
languages ('''in which case `categories` is destructively modified'''). If `lang` is nil, no categories will be
added.
* `nocat`: Don't add any categories to the page.
* `borrowing_type`: Borrowing type used in categories, such as {"learned borrowings"}. Defaults to {"terms derived"}.
* `force_cat`: Force category generation on non-mainspace pages.
]==]
function export.format_derived(data)
local terms = data.terms
local sourcetext = export.format_sources(data)
return export.format_links(terms, data.conj, data.template_name, sourcetext, data.decorations_on_outside)
end
function export.insert_borrowed_cat(categories, lang, source)
if lang_is_source(lang, source) then
return
end
-- If both are the same, we want e.g. [[:Category:English terms borrowed back into English]] not
-- [[:Category:English terms borrowed from English]]; the former is inserted automatically by format_source().
-- The second parameter here doesn't matter as it only affects `display`, which we don't use.
insert(categories, "Từ vay mượn từ " .. select(2, export.get_display_and_cat_name(source, "raw")) .. " " .. lang:getFullName())
end
-- Internal implementation of {{borrowed}}/{{bor}} template.
function export.format_borrowed(data)
local categories = {}
if not data.nocat then
local lang = data.lang
for _, source in ipairs(data.sources) do
export.insert_borrowed_cat(categories, lang, source)
end
end
data = shallow_copy(data)
data.categories = categories
return export.format_links(data.terms, data.conj, "borrowed", export.format_sources(data))
end
do
-- Generate the non-ancestor error message.
local function show_language(lang)
local retval = ("%s (%s)"):format(lang:makeCategoryLink(), lang:getCode())
if lang:hasType("etymology-only") then
retval = retval .. (" (an etymology-only language whose regular parent is %s)"):format(
show_language(lang:getParent()))
end
return retval
end
-- Check that `lang` has `otherlang` (which may be an etymology-only language) as an ancestor. Throw an error if
-- not. When `lang` is a family, verifies that `otherlang` is a language in that family.
function export.check_ancestor(lang, otherlang)
-- When `lang` is a family, verify `otherlang` is in that family or in its parent family.
if lang.hasType and lang:hasType("family") then
local family_code = lang:getCode()
local function in_family_code(fcode, other)
if not fcode or fcode == "" then return false end
if other.inFamily and other:inFamily(fcode) then return true end
if other.getFamilyCode and other:getFamilyCode() == fcode then return true end
return false
end
local in_family = in_family_code(family_code, otherlang)
if not in_family then
local parent_code
if lang.getParent then
local parent_family = lang:getParent()
if parent_family and parent_family.getCode then
parent_code = parent_family:getCode()
end
end
if not parent_code and family_code:find("-", 1, true) then
parent_code = family_code:match("^(.+)-[^-]+$")
end
if parent_code then
in_family = in_family_code(parent_code, otherlang)
end
end
if not in_family then
local other_display = (otherlang.getCanonicalName and otherlang:getCanonicalName()) or (otherlang.getCode and otherlang:getCode()) or tostring(otherlang)
local fam_display = (lang.getCanonicalName and lang:getCanonicalName()) or family_code
error(("%s is not in family %s; inherited ancestor under a family must be a language in that family or its parent family.")
:format(other_display, fam_display))
end
return
end
-- FIXME: I don't know if this function works correctly with etym-only languages in `lang`. I have fixed up
-- the module link code appropriately (June 2024) but the remaining logic is untouched.
if lang:hasAncestor(otherlang) then
-- [[Special:WhatLinksHere/Wiktionary:Tracking/etymology/variety]]
-- Track inheritance from varieties of Latin that shouldn't have any descendants (everything except Old Latin, Classical Latin and Vulgar Latin).
if otherlang:getFullCode() == "la" then
otherlang = otherlang:getCode()
if not (otherlang == "itc-ola" or otherlang == "la-cla" or otherlang == "la-vul") then
track("bad ancestor", otherlang)
end
end
return
end
local ancestors = lang:getAncestors()
local postscript
local etym_module_link = lang:hasType("etymology-only") and "[[Module:etymology languages/data]] or " or ""
local module_link = "[[" .. get_language_data_module_name(lang:getFullCode()) .. "]]"
if not ancestors[1] then
postscript = show_language(lang) .. " không có ngôn ngữ tổ tiên."
else
local ancestor_list = {}
for _, ancestor in ipairs(ancestors) do
insert(ancestor_list, show_language(ancestor))
end
postscript = ("ngôn ngữ nguyên thủy %s của %s %s %s."):format(
ancestors[2] and "" or "", lang:getCanonicalName(),
ancestors[2] and "là" or "là", concat(ancestor_list, " và "))
end
error(("%s is not set as an ancestor of %s in %s%s. %s")
:format(show_language(otherlang), show_language(lang), etym_module_link, module_link, postscript))
end
end
-- Internal implementation of {{inherited}}/{{inh}} template.
function export.format_inherited(data)
local lang, terms, nocat = data.lang, data.terms, data.nocat
local source = terms[1].lang
local categories = {}
if not nocat then
insert(categories, " Từ kế thừa từ " .. source:getCanonicalName() .. " " .. lang:getFullName() )
end
export.check_ancestor(lang, source)
data = shallow_copy(data)
data.categories = categories
data.source = source
return export.format_links(terms, data.conj, "inherited", export.format_source(data))
end
-- Internal implementation of "misc variant" templates such as {{abbrev}}, {{clipping}}, {{reduplication}} and the like.
function export.format_misc_variant(data)
local lang, notext, terms, cats, parts = data.lang, data.notext, data.terms, data.cats, {}
if not notext then
insert(parts, data.text)
end
if terms[1] then
if not notext then
-- FIXME: If term is given as '-', we should consider displaying just "Clipping" not "Clipping of".
insert(parts, " " .. (data.oftext or "của"))
end
local termparts = {}
-- Make links out of all the parts.
for _, termobj in ipairs(terms) do
local result
if termobj.lang then
result = export.format_derived {
lang = lang,
terms = {termobj},
sources = termobj.termlangs or {termobj.lang},
template_name = "misc_variant",
decorations_on_outside = true,
force_cat = data.force_cat,
}
else
termobj.lang = lang
result = export.format_links({termobj}, nil, "misc_variant")
end
table.insert(termparts, result)
end
local linktext = join_segs(termparts, data.conj)
if not notext and linktext ~= "" then
insert(parts, " ")
end
insert(parts, linktext)
end
local categories = {}
if not data.nocat and cats then
for _, cat in ipairs(cats) do
insert(categories, cat .. " " .. lang:getFullName())
end
end
if categories[1] then
insert(parts, format_categories(categories, lang, data.sort_key, nil, data.force_cat or force_cat))
end
return concat(parts)
end
-- Implementation of miscellaneous templates such as {{unknown}} and {{onomatopoeia}} that have no associated terms.
function export.format_misc_variant_no_term(data)
local parts = {}
if not data.notext then
insert(parts, data.title)
end
if not data.nocat and data.cat then
local lang, categories = data.lang, {}
insert(categories, data.cat .. " " .. lang:getFullName())
insert(parts, format_categories(categories, lang, data.sort_key, nil, data.force_cat or force_cat))
end
return concat(parts)
end
return export
dntsv1dj3n04y03h2zrr7namb1ypmal
xuýt xoa
0
270964
2567017
2181470
2026-09-27T16:22:26Z
Hiyuune
50834
2567017
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|v}}===
{{vi-verb}}
# [[phát|Phát]] ra những tiếng [[gió]] [[khe khẽ]] trong [[miệng]] để [[biểu thị]] cảm giác [[đau]], hoặc [[tiếc rẻ]], [[thương xót]], [[kinh ngạc]].
#: {{ux|vi|'''Xuýt xoa''' vì đau.}}
#: {{ux|vi|Miệng '''xuýt xoa''' thán phục.}}
===={{section|see}}====
* {{l|vi|xì xụp}}
==={{section|ref}}
* {{R:Tratu}}
* {{R:vi:Hoàng Phê 2021|page=1474}}
pmuves0l72u9pvdfosmfge1cwy7zflq
2567018
2567017
2026-09-27T16:22:38Z
Hiyuune
50834
2567018
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|v}}===
{{vi-verb}}
# [[phát|Phát]] ra những tiếng [[gió]] [[khe khẽ]] trong [[miệng]] để [[biểu thị]] cảm giác [[đau]], hoặc [[tiếc rẻ]], [[thương xót]], [[kinh ngạc]].
#: {{ux|vi|'''Xuýt xoa''' vì đau.}}
#: {{ux|vi|Miệng '''xuýt xoa''' thán phục.}}
===={{section|see}}====
* {{l|vi|xì xụp}}
==={{section|ref}}===
* {{R:Tratu}}
* {{R:vi:Hoàng Phê 2021|page=1474}}
kfrx9kmvjml0xpjlxqv1b4yj6kfzsmw
đì đùng
0
271017
2567019
2073837
2026-09-27T16:23:53Z
Hiyuune
50834
2567019
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|adj}}===
{{vi-adj}}
# Từ [[mô phỏng]] những tiếng [[nổ]] [[to]], không [[dồn dập]] nhưng rất [[vang]].
#: {{ux|vi|Sấm chớp '''đì đùng'''}}
==={{section|ref}}===
* {{R:Tratu}}
* {{R:vi:Hoàng Phê 2021|page=395}}
3iixrju9fws7gort3bzk7myqgonpbew
Mô đun:egy-utilities
828
274078
2567123
2307925
2026-09-28T05:28:08Z
Hiyuune
50834
2567123
Scribunto
text/plain
local export = {}
local sortkey_replacements = mw.loadData "Module:egy-utilities/data"
-- Replace Egyptian letters with a series of arbitrary codepoints that happen to
-- be in the right sequence.
function export.makeSortKey(text, lang, sc)
text= mw.ustring.lower(text)
text = mw.ustring.gsub(text, "[%-%s]", "")
return mw.ustring.upper(mw.ustring.gsub(text, ".", sortkey_replacements))
end
function export.show_sort_order(frame)
local output = {}
for i, word in ipairs(frame.args) do
output[i] = word
end
local function link(word)
return '<span class="Latn" lang="egy">[[' .. word .. '#Tiếng Ai Cập|' .. word .. ']]</span>'
end
local make_sortkey = require("Module:memoize")(export.makeSortKey)
table.sort(
output,
function(word1, word2)
return make_sortkey(word1) < make_sortkey(word2)
end)
return table.concat(
require("Module:fun").map(
function(word)
return "* " .. link(word) .. " (<code>" .. make_sortkey(word) .. "</code>)"
end,
output),
"\n")
end
function export.hieroforms(frame)
local parent_args = frame:getParent().args
local default_title = parent_args['head'] or mw.title.getCurrentTitle().text
default_title = 'Chữ tượng hình thay thế cho '
.. require 'Module:script utilities'.tag_text(
default_title, require 'Module:languages'.getByCode 'egy', nil, 'term', nil)
local tabletitle = parent_args['title'] or default_title
local text = '<div class="NavFrame" style="clear:both;display:inline-block;">\n<div class="NavHead" style="">' .. tabletitle .. ' </div>\n<div class="NavContent">\n{| style="text-align:center;"'
local i = 1
while parent_args[i] do
local new_frame = frame:newChild{title = frame:getTitle(), args = {[1] = parent_args[i]}}
local hiero = require 'Module:egy-hieroglyphs'.parameter_to_hiero(new_frame)
text = text .. '\n| style="background-color:var(--wikt-palette-lightergrey,#eeeeee);color:inherit"|<span style="margin:0px 6px;">' .. hiero .. '</span>'
i = i + 1
end
local j = 1
local no_read = true
local since_last = 1
local read = 'read1'
while j < i do
if parent_args[read] then
if no_read then
text = text .. '\n|-'
no_read = false
end
while since_last > 0 do
text = text .. '\n|'
since_last = since_last - 1
end
local link = require 'Module:links'.full_link( {
lang = require 'Module:languages'.getByCode 'egy', term = parent_args[read]
}, 'term' )
text = text .. 'style="background-color:var(--wikt-palette-lightergrey,#eeeeee);color:inherit"|' .. link
end
since_last = since_last + 1
j = j + 1
read = 'read' .. j
end
j = 1
local no_date = true
since_last = 1
local date = 'date1'
while j < i do
if parent_args[date] then
if no_date then
text = text .. '\n|-'
no_date = false
end
while since_last > 0 do
text = text .. '\n|'
since_last = since_last - 1
end
text = text .. 'style="background-color:var(--wikt-palette-lightergrey,#eeeeee);color:inherit"|' .. frame:expandTemplate{title = 'defdate', args = {parent_args[date]}}
end
since_last = since_last + 1
j = j + 1
date = 'date' .. j
end
j = 1
local no_note = true
since_last = 1
local note = 'note1'
while j < i do
if parent_args[note] then
if no_note then
text = text .. '\n|- style="font-size:70%"'
no_note = false
end
while since_last > 0 do
text = text .. '\n|'
since_last = since_last - 1
end
text = text .. 'style="background-color:#efefef;color:inherit"|' .. parent_args[note]
end
since_last = since_last + 1
j = j + 1
note = 'note' .. j
end
text = text .. '\n|}</div></div>'
return text
end
return export
jwzlg5wv17pl1cxi9htr34oc1nsfzk0
thắc nghến
0
274730
2567069
2113977
2026-09-28T01:11:03Z
WhoAlone
40420
2567069
wikitext
text/x-wiki
{{-mlc-}}
{{-noun-}}
{{pn}}
# [[mặt trời]].
{{-ref-}}
* Lê Ngọc Thắng, Trần Văn Ái. [https://web.archive.org/web/20230214141132/http://thuvien.due.udn.vn:8080/dspace/bitstream/TVDHKT/2655/1/000000CVv208S042004048.pdf Một vài ý kiến về thành phần dân tộc Sán Chay (Sán Chỉ)].
{{catname|Danh từ|tiếng Sán Chay}}
{{c|mlc|Thiên thể|Nguồn ánh sáng}}
9dpu8p4i8tc7e56dtq279dwu3b6p7lf
अक्षयता
0
277977
2567149
2341539
2026-09-28T09:39:11Z
Hiyuune
50834
/* Danh từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567149
wikitext
text/x-wiki
=={{langname|sa}}==
==={{section|alternative script}}===
{{san-alt}}
==={{section|pron}}===
* {{sa-IPA}}
==={{section|n}}===
{{sa-noun|f}}
# Sự [[bất diệt]].
bi6hxwgi255h9qlfi3bel3x3ro9w5mv
乌春
0
281831
2567003
2338312
2026-09-27T14:09:36Z
WhoAlone
40420
2567003
wikitext
text/x-wiki
=={{langname|tuw-kkl}}==
==={{ĐM|etym}}===
Cùng gốc với {{cog|mnc|ᡠᠴᡠᠨ|t=bài hát}}.
==={{ĐM|n}}===
{{head|tuw-kkl|Danh từ|tr=(w)uchun}}
# [[bài hát|Bài hát]].
==={{ĐM|ref}}===
* {{cite-journal|title= A wedding ceremony of the Kyakala in China: Language and ritual|author=Andreas Hölzl|year=2019|pages=113|journal=International Journal of Diachronic Linguistics and Linguistic Reconstruction|volume=16|url= https://www.academia.edu/41584945/A_wedding_ceremony_of_the_Kyakala_in_China_Language_and_ritual}}
{{c|tuw-kkl|Âm nhạc}}
4onrz4nq8gw826gxxoa63h42705vqqw
内
0
281832
2567000
2101591
2026-09-27T14:09:03Z
WhoAlone
40420
2567000
wikitext
text/x-wiki
{{-tuw-kkl-}}
{{-translit-}}
* {{Latn}}: neisu
{{-noun-}}
{{pn}}
# [[người]].
[[Thể loại:Danh từ tiếng Kyakala]]
{{c|tuw-kkl|Mọi người}}
tno8itfixju2kgo370b9zq9nuaae469
古楚
0
281833
2566998
2338459
2026-09-27T14:08:32Z
WhoAlone
40420
2566998
wikitext
text/x-wiki
=={{langname|tuw-kkl}}==
==={{ĐM|etym}}===
Cùng gốc với {{cog|mnc|ᡤᡠᠴᡠ}}.
==={{ĐM|n}}===
{{head|tuw-kkl|Danh từ|tr=guchu}}
# [[bạn bè|Bạn bè]].
==={{ĐM|ref}}===
* {{cite-journal|title= A wedding ceremony of the Kyakala in China: Language and ritual|author=Andreas Hölzl|year=2019|pages=113|journal=International Journal of Diachronic Linguistics and Linguistic Reconstruction|volume=16|url= https://www.academia.edu/41584945/A_wedding_ceremony_of_the_Kyakala_in_China_Language_and_ritual}}
{{c|tuw-kkl|Xã hội}}
7ktopzs0f2asl8urdbu17yldk1kji3m
纳莫尼
0
281838
2566970
2306367
2026-09-27T14:04:30Z
WhoAlone
40420
2566970
wikitext
text/x-wiki
=={{langname|tuw-kkl}}==
==={{section|etym}}===
Cùng gốc với
{{etym-cog|tuw-alk|nəmə}},
{{etym-cog|tuw-bal|纳莫|tr=namo}},
{{etym-cog|mnc|ᠨᡳᠶᠠᠯᠮᠠ}},
{{etym-cog|sjo|ᠨᠠᠨᡝ|tr=nane}},
{{etym-cog|eve|няри|tr=ņari}},
{{etym-cog|gld|най|tr=nai}}.
==={{section|n}}===
{{head|tuw-kkl|Danh từ|tr=namoni}}
# [[người|Người]].
sr5yj0i4xkr5blwrsjegr15pv8tlshx
2566971
2566970
2026-09-27T14:04:42Z
WhoAlone
40420
2566971
wikitext
text/x-wiki
=={{langname|tuw-kkl}}==
==={{section|etym}}===
Cùng gốc với
{{etym-cog|tuw-alk|nəmə}},
{{etym-cog|tuw-bal|纳莫|tr=namo}},
{{etym-cog|mnc|ᠨᡳᠶᠠᠯᠮᠠ}},
{{etym-cog|sjo|ᠨᠠᠨᡝ|tr=nane}},
{{etym-cog|eve|няри}},
{{etym-cog|gld|най}}.
==={{section|n}}===
{{head|tuw-kkl|Danh từ|tr=namoni}}
# [[người|Người]].
4o0e9t66kvb6s8k1z6m73o6lomiibry
2566972
2566971
2026-09-27T14:05:01Z
WhoAlone
40420
2566972
wikitext
text/x-wiki
=={{langname|tuw-kkl}}==
==={{section|etym}}===
Cùng gốc với
{{etym-cog|tuw-alk|nəmə}},
{{etym-cog|tuw-bal|纳莫|tr=namo}},
{{etym-cog|mnc|ᠨᡳᠶᠠᠯᠮᠠ}},
{{etym-cog|sjo|ᠨᠠᠨᡝ|tr=nane}},
{{etym-cog|eve|няри}},
{{etym-cog|gld|най}}.
==={{section|n}}===
{{head|tuw-kkl|Danh từ|tr=namoni}}
# [[người|Người]].
{{c|tuw-kkl|Con người}}
2sgxbrlrvgxy538fb48bpxuzg0a7ao9
阿玛
0
281839
2566962
2338307
2026-09-27T14:02:17Z
WhoAlone
40420
2566962
wikitext
text/x-wiki
=={{langname|tuw-kkl}}==
==={{ĐM|etym}}===
Từ {{inh|tuw-kkl|tuw-pro|*ama}}. Cùng gốc với {{cog|mnc|ᠠᠮᠠ|t=cha, bố}}
==={{ĐM|n}}===
{{head|tuw-kkl|Danh từ|tr=ama}}
# [[cha|Cha]], [[bố]].
#: {{ant|tuw-kkl|额莫|tr=emo|t=mẹ}}
==={{ĐM|ref}}===
* {{cite-journal|title= A wedding ceremony of the Kyakala in China: Language and ritual|author=Andreas Hölzl|year=2019|pages=114|journal=International Journal of Diachronic Linguistics and Linguistic Reconstruction|volume=16|url= https://www.academia.edu/41584945/A_wedding_ceremony_of_the_Kyakala_in_China_Language_and_ritual}}
{{c|tuw-kkl|Thành viên nam trong gia đình}}
=={{langname|zh}}==
{{zh-see|阿瑪}}
tdqldtdt3f0twg4xpxibcga91cywhlm
арван зургаа
0
282159
2567147
2339710
2026-09-28T09:37:14Z
Hiyuune
50834
/* Số từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567147
wikitext
text/x-wiki
=={{langname|mn}}==
==={{ĐM|numeral}}===
{{mn-head|num|ᠠᠷᠪᠠᠨ ᠵᠢᠷᠭᠤᠭᠠ}}
# [[mười sáu|Mười sáu]].
{{cln|mn|Số đếm}}
f3smg0fy9n5ynq4extq89hw7ngy49hj
арван долоо
0
282160
2567145
2339711
2026-09-28T09:36:56Z
Hiyuune
50834
2567145
wikitext
text/x-wiki
=={{langname|mn}}==
==={{ĐM|numeral}}===
{{{{mn-head|num|ᠠᠷᠪᠠᠨ ᠳᠣᠯᠤᠭᠠ}}
# [[mười bảy|Mười bảy]].
{{cln|mn|Số đếm}}
t3jsiyvfguwjjq6d9v9usjtius93yre
2567146
2567145
2026-09-28T09:37:03Z
Hiyuune
50834
2567146
wikitext
text/x-wiki
=={{langname|mn}}==
==={{ĐM|numeral}}===
{{mn-head|num|ᠠᠷᠪᠠᠨ ᠳᠣᠯᠤᠭᠠ}}
# [[mười bảy|Mười bảy]].
{{cln|mn|Số đếm}}
lpf2lxx10rmwzzd7i06vrd4ztxfv0vz
арван найм
0
282161
2567144
2339548
2026-09-28T09:36:42Z
Hiyuune
50834
2567144
wikitext
text/x-wiki
=={{langname|mn}}==
==={{ĐM|numeral}}===
{{mn-head|num|ᠠᠷᠪᠠᠨ ᠨᠠᠢᠮᠠ}}
# [[mười tám|Mười tám]].
{{cln|mn|Số đếm}}
t675uz902qbs47wjfb91jcbwhbz1dr8
Mô đun:etymology languages/code to canonical name
828
286988
2567134
2462900
2026-09-28T09:02:23Z
Hiyuune
50834
cập nhật
2567134
Scribunto
text/plain
return {
["aae"] = "Arbëresh Albanian",
["aat"] = "Arvanitika Albanian",
["abr"] = "Abron",
["acm-khu"] = "Khuzestani Arabic",
["act"] = "Achterhoeks",
["adx"] = "Amdo Tibetan",
["ae-old"] = "Old Avestan",
["ae-yng"] = "Younger Avestan",
["ain-hok"] = "Hokkaido Ainu",
["ain-kur"] = "Kuril Ainu",
["ain-sak"] = "Sakhalin Ainu",
["akk-lbb"] = "Late Babylonian",
["akk-mas"] = "Middle Assyrian",
["akk-mbb"] = "Middle Babylonian",
["akk-nas"] = "Neo-Assyrian",
["akk-nbb"] = "Neo-Babylonian",
["akk-oas"] = "Old Assyrian",
["akk-obb"] = "Old Babylonian",
["akk-old"] = "Old Akkadian",
["akk-stb"] = "Standard Babylonian",
["aln"] = "Gheg Albanian",
["als"] = "Tosk Albanian",
["alv-kro"] = "Kromanti",
["ang-ang"] = "Anglian Old English",
["ang-ken"] = "Kentish Old English",
["ang-mer"] = "Mercian Old English",
["ang-nor"] = "Northumbrian Old English",
["ang-wsx"] = "West Saxon Old English",
["apc-ale"] = "Aleppine North Levantine Arabic",
["apc-dam"] = "Damascene North Levantine Arabic",
["apc-leb"] = "Lebanese North Levantine Arabic",
["apc-nle"] = "North Lebanese North Levantine Arabic",
["apc-sle"] = "South Lebanese North Levantine Arabic",
["apc-syr"] = "Syrian North Levantine Arabic",
["arc-bib"] = "Biblical Aramaic",
["arc-cpa"] = "Christian Palestinian Aramaic",
["arc-hat"] = "Hatran Aramaic",
["arc-imp"] = "Imperial Aramaic",
["arc-jla"] = "Jewish Literary Aramaic",
["arc-nab"] = "Nabataean Aramaic",
["arc-old"] = "Old Aramaic",
["arc-pal"] = "Palmyrene Aramaic",
["as-bkm"] = "Barpetia Kamrupi Assamese",
["as-nkm"] = "Nalbaria Kamrupi Assamese",
["as-pkm"] = "Palasbaria Kamrupi Assamese",
["atn"] = "Ashtiani",
["az-cls"] = "Classical Azerbaijani",
["bat-dni"] = "Dnieper Baltic",
["bat-gol"] = "Golyad",
["bat-pro"] = "Proto-Baltic",
["bcc"] = "Southern Balochi",
["bew-kot"] = "Betawi Kota",
["bgn"] = "Western Balochi",
["bgp"] = "Eastern Balochi",
["bn-dvn"] = "Dhakaiya Vaṅga Bengali",
["bn-nvn"] = "Noakhailla Vaṅga Bengali",
["bnt-cmn"] = "Common Bantu",
["bra-old"] = "Old Braj",
["bry-ear"] = "Early Brythonic",
["bry-lat"] = "Late Brythonic",
["bsg-ban"] = "Bandari",
["bsg-hor"] = "Hormozi",
["bsg-min"] = "Minabi",
["bsh-kat"] = "Kativiri",
["bsh-mum"] = "Mumviri",
["ca-val"] = "Valencian",
["ckm"] = "Chakavian Serbo-Croatian",
["cls"] = "Classical Sanskrit",
["cmn-MY"] = "Malaysian Mandarin",
["cmn-PH"] = "Philippine Mandarin",
["cmn-SG"] = "Singapore Mandarin",
["cmn-TW"] = "Taiwanese Mandarin",
["cmn-bec"] = "Beijingic Mandarin",
["cmn-bei"] = "Beijing Mandarin",
["cmn-cep"] = "Central Plains Mandarin",
["cmn-ear"] = "Early Mandarin",
["cmn-gua"] = "Guanzhong Mandarin",
["cmn-gui"] = "Guilin Mandarin",
["cmn-jhu"] = "Jianghuai Mandarin",
["cmn-lan"] = "Lanyin Mandarin",
["cmn-nan"] = "Nanjing Mandarin",
["cmn-noe"] = "Northeastern Mandarin",
["cmn-palladius"] = "Palladius",
["cmn-pinyin"] = "Hanyu Pinyin",
["cmn-sow"] = "Southwestern Mandarin",
["cmn-tia"] = "Tianjin Mandarin",
["cmn-tongyong"] = "Tongyong Pinyin",
["cmn-wadegiles"] = "Wade–Giles",
["cmn-wuh"] = "Wuhan Mandarin",
["cmn-wvc"] = "Written vernacular Mandarin",
["cmn-xin"] = "Xining Mandarin",
["cmn-yan"] = "Yangzhou Mandarin",
["cop-akh"] = "Akhmimic Coptic",
["cop-boh"] = "Bohairic Coptic",
["cop-fay"] = "Fayyumic Coptic",
["cop-ggg"] = "Coptic Dialect G",
["cop-her"] = "Hermopolitan Coptic",
["cop-jjj"] = "Coptic Dialect J",
["cop-kkk"] = "Coptic Dialect K",
["cop-lyc"] = "Lycopolitan Coptic",
["cop-old"] = "Old Coptic",
["cop-oxy"] = "Oxyrhynchite Coptic",
["cop-ply"] = "Proto-Lycopolitan Coptic",
["cop-ppp"] = "Coptic Dialect P",
["cop-sah"] = "Sahidic Coptic",
["crh-dbj"] = "Dobrujan Tatar",
["crp-cpr-kya"] = "Kyakhta Chinese Pidgin Russian",
["cs-ear"] = "Early Modern Czech",
["cu-bgm"] = "Middle Bulgarian",
["cv-ana"] = "Anatri Chuvash",
["cv-mid"] = "Middle Chuvash",
["cv-old"] = "Old Chuvash",
["cv-vir"] = "Viryal Chuvash",
["cy-nor"] = "North Wales Welsh",
["cy-sou"] = "South Wales Welsh",
["de-AT"] = "Austrian German",
["de-AT-vie"] = "Viennese German",
["de-CH"] = "Switzerland German",
["de-bal"] = "Baltic German",
["de-ear"] = "Early New High German",
["drt"] = "Drents",
["dv-add"] = "Addu Dhivehi",
["dv-huv"] = "Huvadhu Dhivehi",
["dv-mul"] = "Mulaku Dhivehi",
["dv-old"] = "Old Dhivehi",
["egl-old"] = "Old Emilian",
["egy-lat"] = "Late Egyptian",
["egy-mid"] = "Middle Egyptian",
["egy-nmi"] = "Neo-Middle Egyptian",
["egy-old"] = "Old Egyptian",
["el-crt"] = "Cretan Greek",
["el-cyp"] = "Cypriot Greek",
["el-kal"] = "Kaliarda",
["el-kth"] = "Katharevousa",
["el-pap"] = "Paphian Greek",
["elx-ach"] = "Achaemenid Elamite",
["elx-mid"] = "Middle Elamite",
["elx-neo"] = "Neo-Elamite",
["elx-old"] = "Old Elamite",
["en-AU"] = "Australian English",
["en-CA"] = "Canadian English",
["en-GB"] = "British English",
["en-GB-NIR"] = "Northern Irish English",
["en-GB-SCT"] = "Scottish English",
["en-GB-WLS"] = "Welsh English",
["en-HK"] = "Hong Kong English",
["en-IE"] = "Irish English",
["en-IM"] = "Manx English",
["en-IN"] = "Indian English",
["en-NNN"] = "North American English",
["en-NZ"] = "New Zealand English",
["en-US"] = "American English",
["en-US-CA"] = "California English",
["en-ZA"] = "South African English",
["en-aae"] = "Australian Aboriginal English",
["en-ear"] = "Early Modern English",
["en-geo"] = "Geordie",
["en-uls"] = "Ulster English",
["enm-emi"] = "East Midland Middle English",
["enm-esc"] = "Early Scots",
["enm-ken"] = "Kentish Middle English",
["enm-nor"] = "Northern Middle English",
["enm-sou"] = "Southern Middle English",
["enm-wmi"] = "West Midland Middle English",
["es-AR"] = "Rioplatense Spanish",
["es-BO"] = "Bolivian Spanish",
["es-CL"] = "Chilean Spanish",
["es-CO"] = "Colombian Spanish",
["es-CU"] = "Cuban Spanish",
["es-MX"] = "Mexican Spanish",
["es-PE"] = "Peruvian Spanish",
["es-PH"] = "Philippine Spanish",
["es-PR"] = "Puerto Rican Spanish",
["es-US"] = "United States Spanish",
["es-VE"] = "Venezuelan Spanish",
["es-ear"] = "Early Modern Spanish",
["es-lun"] = "Lunfardo",
["esi"] = "North Alaskan Inupiatun",
["esk"] = "Northwest Alaskan Inupiatun",
["fa-cls"] = "Classical Persian",
["fa-ear"] = "Early New Persian",
["fa-ira"] = "Iranian Persian",
["fat"] = "Fante Akan",
["fay-bsh"] = "Bushehri",
["fay-bur"] = "Burenjani",
["fay-dav"] = "Davani",
["fay-dsh"] = "Dashtaki",
["fay-eze"] = "Emamzada Esmaili",
["fay-gav"] = "Gavkoshaki",
["fay-kar"] = "Khargi",
["fay-kho"] = "Khollari",
["fay-kon"] = "Kondazi",
["fay-kzo"] = "Old Kazeruni",
["fay-mas"] = "Masarami",
["fay-pap"] = "Papuni",
["fay-sam"] = "Samghani",
["fay-sho"] = "Old Shirazi",
["fay-shr"] = "Shirazi",
["fay-sor"] = "Sorkhi",
["ffm"] = "Maasina Fulfulde",
["fiu-pro"] = "Proto-Finno-Ugric",
["fr-CA"] = "Canadian French",
["fr-CH"] = "Swiss French",
["fr-aca"] = "Acadian French",
["fr-lou"] = "Louisiana French",
["fr-mis"] = "Missouri French",
["frc"] = "Cajun French",
["frk"] = "Frankish",
["fro-nor"] = "Old Northern French",
["fro-pic"] = "Picard Old French",
["frp-old"] = "Old Franco-Provençal",
["frr-amr"] = "Amrum North Frisian",
["frr-fam"] = "Föhr-Amrum North Frisian",
["frr-foh"] = "Föhr North Frisian",
["frr-goe"] = "Goesharde North Frisian",
["frr-hal"] = "Halligen North Frisian",
["frr-hel"] = "Heligoland North Frisian",
["frr-ins"] = "Insular North Frisian",
["frr-kar"] = "Karrharde North Frisian",
["frr-mai"] = "Mainland North Frisian",
["frr-moo"] = "Mooring North Frisian",
["frr-syl"] = "Sylt North Frisian",
["frr-wie"] = "Wiedingharde North Frisian",
["frs"] = "East Frisian Low German",
["fub"] = "Adamawa Fulfulde",
["fuc"] = "Pulaar",
["fue"] = "Borgu Fulfulde",
["fuf"] = "Pular",
["fuh"] = "Western Niger Fulfulde",
["fui"] = "Bagirmi Fulfulde",
["fuq"] = "Central-Eastern Niger Fulfulde",
["fur-old"] = "Old Friulian",
["fuv"] = "Nigerian Fulfulde",
["gax"] = "Borana",
["gbz"] = "Zoroastrian Dari",
["gem-sue"] = "Suevic",
["gkm"] = "Medieval Greek",
["gmq-osw-lat"] = "Late Old Swedish",
["gmw-afr-pro"] = "Proto-Anglo-Frisian",
["gmw-nsg-pro"] = "Proto-North Sea Germanic",
["gos"] = "Gronings",
["grc-aeo"] = "Aeolic Greek",
["grc-arc"] = "Arcadian Greek",
["grc-arp"] = "Arcadocypriot Greek",
["grc-att"] = "Attic Greek",
["grc-boi"] = "Boeotian Greek",
["grc-cyp"] = "Cypriot Ancient Greek",
["grc-dor"] = "Doric Greek",
["grc-ela"] = "Elean Greek",
["grc-epi"] = "Epic Greek",
["grc-ion"] = "Ionic Greek",
["grc-koi"] = "Koine Greek",
["grc-kre"] = "Cretan Ancient Greek",
["grc-opl"] = "Opuntian Locrian",
["grc-ozl"] = "Ozolian Locrian",
["grc-pam"] = "Pamphylian Greek",
["grc-ths"] = "Thessalian Greek",
["gsw-FR-als"] = "Alsatian Alemannic German",
["gsw-hig"] = "High Alemannic German",
["gsw-hst"] = "Highest Alemannic German",
["gsw-low"] = "Low Alemannic German",
["gu-kat"] = "Kathiyawadi",
["gu-lda"] = "Lisan ud-Dawat Gujarati",
["gzi"] = "Gazi",
["hae"] = "Harar Oromo",
["hak-HK"] = "Hong Kong Hakka",
["hak-TW"] = "Taiwanese Hakka",
["hak-dab"] = "Dabu Hakka",
["hak-eam"] = "Early Modern Hakka",
["hak-hai"] = "Hailu Hakka",
["hak-hui"] = "Huiyang Hakka",
["hak-hui-MY"] = "Malaysian Huiyang Hakka",
["hak-mei"] = "Meixian Hakka",
["hak-six"] = "Sixian Hakka",
["hak-zha"] = "Zhao'an Hakka",
["haz"] = "Hazaragi",
["hbo"] = "Biblical Hebrew",
["he-IL"] = "Israeli Hebrew",
["he-med"] = "Medieval Hebrew",
["he-mis"] = "Mishnaic Hebrew",
["hi-mid"] = "Middle Hindi",
["hi-mum"] = "Bombay Hindi",
["hsn-hya"] = "Hengyang Xiang",
["hsn-hzh"] = "Hengzhou Xiang",
["hsn-lou"] = "Loudi Xiang",
["hsn-new"] = "New Xiang",
["hsn-old"] = "Old Xiang",
["ht-sdm"] = "Saint Dominican Creole French",
["htx"] = "Middle Hittite",
["hye"] = "Eastern Armenian",
["hyw"] = "Western Armenian",
["inc-aav"] = "Avahattha",
["inc-agu"] = "Gurjara Apabhramsa",
["inc-aka"] = "Kasmiri Apabhramsa",
["inc-ama"] = "Maharastri Apabhramsa",
["inc-asa"] = "Sauraseni Apabhramsa",
["inc-ash-pro"] = "Proto-Middle Indo-Aryan",
["inc-ata"] = "Takka Apabhramsa",
["inc-avr"] = "Vracada Apabhramsa",
["inc-khr-par"] = "Parnadiya Khortha",
["inc-mit"] = "Mitanni",
["iro-ohu"] = "Old Wendat",
["iro-omo"] = "Old Mohawk",
["iro-oon"] = "Old Onondaga",
["it-CH"] = "Switzerland Italian",
["itc-ala"] = "Archaic Latin",
["itc-lan"] = "Lanuvian",
["itc-ola"] = "Old Latin",
["itc-pra"] = "Praenestine",
["ja-cla"] = "Classical Japanese",
["ja-ear"] = "Early Modern Japanese",
["ja-mid"] = "Middle Japanese",
["ja-mid-ear"] = "Early Middle Japanese",
["ja-mid-lat"] = "Late Middle Japanese",
["jpa"] = "Jewish Palestinian Aramaic",
["jrb"] = "Judeo-Arabic",
["ka-mid"] = "Middle Georgian",
["kbg"] = "Khamba",
["kea-alu"] = "ALUPEC Kabuverdianu",
["kea-bar"] = "Barlavento Kabuverdianu",
["kea-bra"] = "Brava Kabuverdianu",
["kea-bvi"] = "Boa Vista Kabuverdianu",
["kea-fog"] = "Fogo Kabuverdianu",
["kea-mai"] = "Maio Kabuverdianu",
["kea-saa"] = "Santo Antão Kabuverdianu",
["kea-sal"] = "Sal Kabuverdianu",
["kea-san"] = "Santiago Kabuverdianu",
["kea-sni"] = "São Nicolau Kabuverdianu",
["kea-sot"] = "Sotavento Kabuverdianu",
["kea-svi"] = "São Vicente Kabuverdianu",
["kfm"] = "Khunsari",
["khg"] = "Khams Tibetan",
["kho-lat"] = "Late Khotanese",
["kho-old"] = "Old Khotanese",
["kjh-fyu"] = "Fuyu Kyrgyz",
["kjv"] = "Kajkavian Serbo-Croatian",
["klj-arg"] = "Arghu",
["kn-hav"] = "Havigannada",
["kn-kun"] = "Kundagannada",
["ko-KP"] = "North Korean standard",
["ko-KR"] = "South Korean standard",
["ko-cen"] = "Central Korean",
["ko-chu"] = "Chungcheong Korean",
["ko-gan"] = "Gangwon Korean",
["ko-gyg"] = "Gyeonggi Korean",
["ko-gys"] = "Gyeongsang Korean",
["ko-ham"] = "Hamgyong Korean",
["ko-hwa"] = "Hwanghae Korean",
["ko-jeo"] = "Jeolla Korean",
["ko-pyo"] = "Pyongan Korean",
["ko-yuk"] = "Yukjin Korean",
["kok-mid"] = "Middle Konkani",
["kok-old"] = "Old Konkani",
["krl-nor"] = "North Karelian",
["krl-sou"] = "South Karelian",
["ksh"] = "Kölsch",
["kze"] = "Kosena",
["la-afr"] = "African Romance",
["la-cla"] = "Classical Latin",
["la-con"] = "Contemporary Latin",
["la-ecc"] = "Ecclesiastical Latin",
["la-eme"] = "Early Medieval Latin",
["la-lat"] = "Late Latin",
["la-med"] = "Medieval Latin",
["la-new"] = "New Latin",
["la-ren"] = "Renaissance Latin",
["la-vul"] = "Vulgar Latin",
["lij-old"] = "Old Ligurian",
["lld-amp"] = "Ampezan Ladin",
["lld-bad"] = "Badiot Ladin",
["lld-cad"] = "Cadorino Ladin",
["lld-fas"] = "Fascian Ladin",
["lld-fod"] = "Fodom Ladin",
["lld-for"] = "Fornes Ladin",
["lld-ghe"] = "Gherdëina Ladin",
["lld-non"] = "Nones Ladin",
["lmo-old"] = "Old Lombard",
["lng"] = "Lombardic",
["ltc-ear"] = "Early Middle Chinese",
["ltc-lat"] = "Late Middle Chinese",
["lut-nor"] = "Northern Lushootseed",
["lzh-KO"] = "Korean Classical Chinese",
["lzh-VI"] = "Vietnamese Classical Chinese",
["lzh-cii"] = "Ci",
["lzh-cmn"] = "Classical Mandarin",
["lzh-cmn-TW"] = "Classical Taiwanese Mandarin",
["lzh-lit"] = "Literary Chinese",
["lzh-pre"] = "Pre-Classical Chinese",
["lzh-shi"] = "Traditional Chinese poetry",
["lzh-tai"] = "Classical Taishanese",
["lzh-yue"] = "Classical Cantonese",
["mn-cha"] = "Chakhar Mongolian",
["mn-kha"] = "Khalkha Mongolian",
["mn-khr"] = "Khorchin Mongolian",
["mn-ord"] = "Ordos Mongolian",
["mns-eas"] = "Eastern Mansi",
["mns-wes"] = "Western Mansi",
["ms-cla"] = "Classical Malay",
["ms-old"] = "Old Malay",
["mul-tax"] = "taxonomic name",
["nan-anx"] = "Anxi Hokkien",
["nan-cha"] = "Changtai Hokkien",
["nan-hbl-PH"] = "Philippine Hokkien",
["nan-hbl-SG"] = "Singapore Hokkien",
["nan-hbl-TW"] = "Taiwanese Hokkien",
["nan-hou"] = "Houlu Min",
["nan-hui"] = "Hui'an Hokkien",
["nan-jin"] = "Jinjiang Hokkien",
["nan-kin"] = "Kinmenese Hokkien",
["nan-med"] = "Medan Hokkien",
["nan-pen"] = "Penang Hokkien",
["nan-qia"] = "Qianlu Min",
["nan-qua"] = "Quanzhou Hokkien",
["nan-spm"] = "Southern Malaysian Hokkien",
["nan-ton"] = "Tong'an Hokkien",
["nan-xia"] = "Xiamen Hokkien",
["nan-yon"] = "Yongchun Hokkien",
["nan-zha"] = "Zhangzhou Hokkien",
["nan-zho"] = "Zhao'an Hokkien",
["nan-zhp"] = "Zhangping Hokkien",
["nap-old"] = "Old Neapolitan",
["ncb-cam"] = "Camorta",
["ncb-kat"] = "Katchal",
["ncb-nan"] = "Nancowry",
["nds-de"] = "German Low German",
["nds-lpr"] = "Low Prussian",
["nds-nl"] = "Dutch Low Saxon",
["nei"] = "Neo-Hittite",
["nl-BE"] = "Belgian Dutch",
["non-grn"] = "Greenlandic Norse",
["non-oen"] = "Old East Norse",
["non-own"] = "Old West Norse",
["nrf-grn"] = "Guernsey Norman",
["nrf-jer"] = "Jersey Norman",
["ntz"] = "Natanzi",
["nyq"] = "Nayini",
["oc-ara"] = "Aranese",
["oc-auv"] = "Auvergnat",
["oc-gas"] = "Gascon",
["oc-jud"] = "Shuadit",
["oc-lan"] = "Languedocien",
["oc-lim"] = "Limousin",
["oc-pro"] = "Provençal",
["oc-pro-old"] = "Old Provençal",
["oc-viv"] = "Vivaro-Alpine",
["och-ear"] = "Early Old Chinese",
["och-lat"] = "Late Old Chinese",
["oht"] = "Old Hittite",
["ojp-eas"] = "Eastern Old Japanese",
["okm-ear"] = "Early Middle Korean",
["oko-lat"] = "Late Old Korean",
["okz-ang"] = "Angkorian Old Khmer",
["okz-pre"] = "Pre-Angkorian Old Khmer",
["ont"] = "Ontenu",
["oos"] = "Old Ossetic",
["oos-ear"] = "Early Old Ossetic",
["oos-lat"] = "Late Old Ossetic",
["orc"] = "Orma",
["oru-kan"] = "Kaniguram",
["oru-log"] = "Logar",
["os-dig"] = "Digor Ossetian",
["os-iro"] = "Iron Ossetian",
["osc-luc"] = "Lucanian",
["osc-sam"] = "Samnite",
["otk-kir"] = "Old Kirghiz",
["otk-ork"] = "Orkhon Turkic",
["pal-ear"] = "Early Middle Persian",
["pal-lat"] = "Late Middle Persian",
["peo-ear"] = "Early Old Persian",
["peo-lat"] = "Late Old Persian",
["pfl"] = "Palatine German",
["pl-gor"] = "Goral",
["pl-gre"] = "Greater Polish",
["pl-les"] = "Lesser Polish",
["pl-mas"] = "Masovian Polish",
["pld"] = "Polari",
["pms-old"] = "Old Piedmontese",
["pnb"] = "Western Punjabi",
["pra-abh"] = "Abhiri",
["pra-ard"] = "Ardhamagadhi Prakrit",
["pra-ava"] = "Avanti",
["pra-bah"] = "Bahliki",
["pra-can"] = "Candali",
["pra-dak"] = "Daksinatya",
["pra-dra"] = "Dramili",
["pra-hel"] = "Helu Prakrit",
["pra-kha"] = "Khasa Prakrit",
["pra-mag"] = "Magadhi Prakrit",
["pra-mah"] = "Maharastri Prakrit",
["pra-odr"] = "Odri",
["pra-pai"] = "Paisaci Prakrit",
["pra-pra"] = "Pracya",
["pra-pro"] = "Proto-New Indo-Aryan",
["pra-sab"] = "Sabari",
["pra-sak"] = "Sakari",
["pra-sau"] = "Sauraseni Prakrit",
["prs"] = "Dari",
["ps-afr"] = "Afridi",
["ps-ban"] = "Bannu",
["ps-bng"] = "Bangash",
["ps-cgi"] = "Central Ghilzay",
["ps-jad"] = "Jadrani",
["ps-kak"] = "Kakari",
["ps-kan"] = "Kandahari",
["ps-mah"] = "Mahsudi",
["ps-nea"] = "Northeastern Pashto",
["ps-nwe"] = "Northwestern Pashto",
["ps-pes"] = "Peshawari",
["ps-sea"] = "Southeastern Pashto",
["ps-ser"] = "Sher",
["ps-swe"] = "Southwestern Pashto",
["ps-waz"] = "Waziri",
["ps-xat"] = "Khatak",
["pse-bsm"] = "Besemah",
["pt-BR"] = "Brazilian Portuguese",
["pt-PT"] = "European Portuguese",
["qfa-yke-pro"] = "Proto-Ketic",
["qfa-yko-pro"] = "Proto-Kottic",
["qfa-ypm-pro"] = "Proto-Pumpokolic",
["qfa-yrn-pro"] = "Proto-Arinic",
["qsb-bal"] = "Paleo-Balkan",
["qsb-bma"] = "the BMAC substrate",
["qsb-grc"] = "Pre-Greek",
["qsb-ibe"] = "Paleo-Hispanic",
["qwm-arm"] = "Armeno-Kipchak",
["qwm-cum"] = "Cuman",
["qwm-mam"] = "Mamluk-Kipchak",
["qxq"] = "Qashqai",
["rdb-jir"] = "Jirofti",
["rdb-kah"] = "Kahnuji",
["rgn-old"] = "Old Romagnol",
["rm-gri"] = "Rumantsch Grischun",
["rm-old"] = "Old Romansh",
["rm-put"] = "Puter Romansh",
["rm-srm"] = "Surmiran Romansh",
["rm-srs"] = "Sursilvan Romansh",
["rm-sut"] = "Sutsilvan Romansh",
["rm-val"] = "Vallader Romansh",
["ro-MD"] = "Moldovan",
["roa-oit"] = "Old Italian",
["roa-pro"] = "Proto-Romance",
["rw-kin"] = "Kinyarwanda",
["rw-run"] = "Kirundi",
["sa-bhs"] = "Buddhist Hybrid Sanskrit",
["sa-bra"] = "Brahmanic Sanskrit",
["sa-epi"] = "Epic Sanskrit",
["sa-neo"] = "New Sanskrit",
["sa-rig"] = "Rigvedic Sanskrit",
["sc-nuo"] = "Nuorese",
["sc-old"] = "Old Sardinian",
["sc-src"] = "Logudorese",
["sc-sro"] = "Campidanese",
["scn-old"] = "Old Sicilian",
["sco-ins"] = "Insular Scots",
["sco-nor"] = "Northern Scots",
["sco-sou"] = "Southern Scots",
["sco-uls"] = "Ulster Scots",
["sdz"] = "Sallands",
["sgh-baj"] = "Bajui",
["sgh-bar"] = "Bartangi",
["sgh-bro"] = "Bartangi-Oroshori",
["sgh-oro"] = "Oroshori",
["sgh-ros"] = "Roshani",
["sgh-rsx"] = "Roshani-Khufi",
["sgh-xgb"] = "Khughni-Bajui",
["sgh-xuf"] = "Khufi",
["sgh-xug"] = "Khughni",
["sh-tor"] = "Torlakian Serbo-Croatian",
["shi-med"] = "Medieval Tashelhit",
["si-med"] = "Medieval Sinhalese",
["ska"] = "Skagit",
["slh"] = "Southern Lushootseed",
["sli"] = "Silesian East Central German",
["sno"] = "Snohomish",
["sog-ear"] = "Early Sogdian",
["sog-lat"] = "Late Sogdian",
["soj"] = "Soi",
["ssn"] = "Waata",
["stl"] = "Stellingwerfs",
["sxu"] = "Upper Saxon German",
["ta-mid"] = "Middle Tamil",
["tai-shz"] = "Shangsi Zhuang",
["taq"] = "Tamasheq",
["tbq-pro"] = "Proto-Tibeto-Burman",
["th-ayu"] = "Ayutthaya Old Thai",
["th-old"] = "Old Thai",
["th-suk"] = "Sukhothai Old Thai",
["thv"] = "Tamahaq",
["thv-ght"] = "Ghat",
["thz"] = "Tayert",
["tks-cal"] = "Chali Tati",
["tks-dan"] = "Danesfani",
["tks-ebr"] = "Ebrahimabadi",
["tks-esf"] = "Esfarvarini",
["tks-sag"] = "Sagzabadi",
["tks-tak"] = "Takestani",
["tks-xia"] = "Khiaraji",
["tks-xoz"] = "Khoznini",
["tl-cls"] = "Classical Tagalog",
["tl-old"] = "Old Tagalog",
["tly-anb"] = "Anbarani",
["tly-asa"] = "Asalemi",
["tly-aze"] = "Azerbaijani Talysh",
["tly-cen"] = "Central Talysh",
["tly-fum"] = "Fumani",
["tly-kar"] = "Karganrudi",
["tly-msa"] = "Masali",
["tly-msu"] = "Masulei",
["tly-nor"] = "Northern Talysh",
["tly-san"] = "Shandarmani",
["tly-sou"] = "Southern Talysh",
["tly-tal"] = "Taleshdulabi",
["tly-tul"] = "Tularudi",
["tmr"] = "Jewish Babylonian Aramaic",
["tpw-lga"] = "Língua Geral Amazônica",
["tpw-lgp"] = "Língua Geral Paulista",
["tr-CY"] = "Cypriot Turkish",
["trk-bul-pro"] = "Proto-Bulgar",
["trk-cmn-pro"] = "Proto-Common Turkic",
["trk-ogr-pro"] = "Proto-Oghur",
["trk-ogz-pro"] = "Proto-Oghuz",
["tsk"] = "Tseku",
["ttq"] = "Tawellemmet",
["tw"] = "Twi Akan",
["tw-aku"] = "Akuapem Twi",
["tw-asa"] = "Asante Twi",
["twd"] = "Twents",
["uk-CA"] = "Canadian Ukrainian",
["urj-fpr-pro"] = "Proto-Finno-Permic",
["uz-afg"] = "Afghan Uzbek",
["vaf"] = "Vafsi",
["vec-old"] = "Old Venetan",
["vel"] = "Veluws",
["vsn"] = "Vedic Sanskrit",
["wae"] = "Walser German",
["wep"] = "Westphalian",
["wss"] = "Wasa",
["wuu-chm"] = "Shadi Wu",
["wuu-han"] = "Hangzhounese",
["wuu-nin"] = "Ningbonese",
["wuu-nor"] = "Northern Wu",
["wuu-sha"] = "Shanghainese",
["wuu-suz"] = "Suzhounese",
["wuu-wen"] = "Wenzhounese",
["xaq"] = "Aquitanian",
["xbo-dan"] = "Danube Bulgar",
["xbo-vol"] = "Volga Bulgar",
["xcg"] = "Cisalpine Gaulish",
["xfa-cap"] = "Capenate",
["xh-bha"] = "Bhaca",
["xme-aby"] = "Abyanehi",
["xme-abz"] = "Abuzeydabadi",
["xme-amo"] = "Amorehi",
["xme-ana"] = "Anaraki",
["xme-ard"] = "Ardestani",
["xme-azr"] = "Old Azari",
["xme-bdr"] = "Badrudi",
["xme-bid"] = "Bidhandi",
["xme-bij"] = "Bijagani",
["xme-bor"] = "Borujerdi",
["xme-cim"] = "Chimehi",
["xme-del"] = "Delijani",
["xme-far"] = "Farizandi",
["xme-ham"] = "Hamadani",
["xme-han"] = "Hanjani",
["xme-isf"] = "Isfahani",
["xme-jow"] = "Jowshaqani",
["xme-kaf"] = "Kafroni",
["xme-kah"] = "Kahaki",
["xme-kas"] = "Kashani",
["xme-kes"] = "Kesehi",
["xme-kom"] = "Komjani",
["xme-krm"] = "Kermani",
["xme-mah"] = "Mahallati",
["xme-mey"] = "Meymehi",
["xme-nar"] = "Naraqi",
["xme-nas"] = "Nashalji",
["xme-nus"] = "Nushabadi",
["xme-qal"] = "Qalhari",
["xme-qoh"] = "Qohrudi",
["xme-sed"] = "Sedehi",
["xme-tar"] = "Tari",
["xme-trh"] = "Tarehi",
["xme-ttc-cen"] = "Central Tati",
["xme-ttc-eas"] = "Eastern Tati",
["xme-ttc-nor"] = "Northern Tati",
["xme-ttc-sou"] = "Southern Tati",
["xme-ttc-wes"] = "Western Tati",
["xme-val"] = "Valujerdi",
["xme-var"] = "Varani",
["xme-von"] = "Vonishuni",
["xme-vrz"] = "Varzenehi",
["xme-xur"] = "Khuri",
["xme-yar"] = "Yarandi",
["xme-yaz"] = "Yazdi",
["xme-zef"] = "Zefrehi",
["xme-zor"] = "Zori",
["xmn"] = "Manichaean Middle Persian",
["xng-ear"] = "Early Middle Mongol",
["xng-lat"] = "Late Middle Mongol",
["xnn"] = "Northern Kankanaey",
["xno"] = "Anglo-Norman",
["xno-law"] = "Law French",
["xtg"] = "Transalpine Gaulish",
["xvi"] = "Kamviri",
["yue-HK"] = "Hong Kong Cantonese",
["yue-gua"] = "Guangzhou Cantonese",
["yue-lit"] = "Literary Cantonese",
["yue-wvc"] = "Written vernacular Cantonese",
["zh-postal"] = "Postal Romanization",
["zhx-dan"] = "Danzhou Chinese",
["zhx-tai-wvc"] = "Written vernacular Taishanese",
["zhx-zho"] = "Zhongshan Min",
["zle-mbe"] = "Middle Belarusian",
["zle-mru"] = "Middle Russian",
["zle-muk"] = "Middle Ukrainian",
["zle-ops"] = "Old Pskovian",
["zls-chs-ru"] = "Russian Church Slavonic",
["zls-chs-uk"] = "Ukrainian Church Slavonic",
["zlw-mpl"] = "Middle Polish",
["zrp"] = "Zarphatic",
}
aqfbvc60azspb84admzxv5qb75xfoia
厄能
0
290782
2566999
2125931
2026-09-27T14:08:42Z
WhoAlone
40420
2566999
wikitext
text/x-wiki
{{-tuw-kkl-}}
{{-translit-}}
* {{Latn}}: eneng
{{-noun-}}
{{pn}}
# [[hôm nay]].
[[Thể loại:Danh từ tiếng Kyakala]]
{{c|tuw-kkl|Thời gian}}
1hx29b7hpqrfj7ct19wn99kythanpom
安达
0
290784
2566988
2125932
2026-09-27T14:07:04Z
WhoAlone
40420
2566988
wikitext
text/x-wiki
{{-tuw-kkl-}}
{{-translit-}}
* {{Latn}}: anda
{{-noun-}}
{{pn}}
# [[anh em]] [[kết nghĩa]].
# [[bạn]] [[thân thiết]].
[[Thể loại:Danh từ tiếng Kyakala]]
{{c|tuw-kkl|Xã hội}}
2wyssksvwdyeug3hf19bo6fes9lsfe3
玛法
0
290787
2566975
2250006
2026-09-27T14:05:44Z
WhoAlone
40420
2566975
wikitext
text/x-wiki
=={{langname|tuw-kkl}}==
==={{ĐM|n}}===
{{head|tuw-kkl|Danh từ|số nhiều|玛法利|tr=mafa}}
# [[ông nội|Ông nội]].
# [[tổ tiên|Tổ tiên]].
# [[cụ già|Cụ già]].
{{c|tuw-kkl|Thành viên nam trong gia đình}}
b5c73q27nxr6460prnizlgwdlg13hyd
海兰
0
290790
2566976
2125941
2026-09-27T14:05:53Z
WhoAlone
40420
2566976
wikitext
text/x-wiki
{{-tuw-kkl-}}
{{-translit-}}
* {{Latn}}: hailan
{{-noun-}}
{{pn}}
# [[lòng]] [[nhân ái]], [[sự]] [[dịu dàng]].
[[Thể loại:Danh từ tiếng Kyakala]]
{{c|tuw-kkl|Đức hạnh}}
6cjmjusgzi3imcf2htk8x0w9ch72gqe
阿库蜜
0
290792
2566961
2125944
2026-09-27T14:01:59Z
WhoAlone
40420
2566961
wikitext
text/x-wiki
{{-tuw-kkl-}}
{{-translit-}}
* {{Latn}}: akumi
{{-noun-}}
{{pn}}
# [[áo choàng]] [[da]] [[dê]].
[[Thể loại:Danh từ tiếng Kyakala]]
{{c|tuw-kkl|Trang phục}}
f50556xxc1725a85a0q43yuuevo0l27
𖼀𖽔
0
291638
2567023
2258595
2026-09-27T16:28:35Z
Hiyuune
50834
/* Tiếng A-Hmao */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567023
wikitext
text/x-wiki
=={{langname|hmd}}==
==={{đm|pron}}===
* {{IPA|hmd|/pa³¹/}}
==={{đm|v}}===
{{head|hmd|Động từ|tr=baf}}
# [[ôm|Ôm]].
m09r45u57wb9x2bys6n2ra96f5vq03b
𖼀𖽔𖾐
0
291674
2567024
2351589
2026-09-27T16:28:45Z
Hiyuune
50834
/* Tiếng A-Hmao */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567024
wikitext
text/x-wiki
=={{langname|hmd}}==
==={{section|pron}}===
* {{IPA|hmd|/pa³³/}}
==={{section|v}}===
{{head|hmd|Động từ|tr=bat}}
# [[dàn|Dàn]] [[trải]], [[sắp xếp]].
82lcr4fg72e1569uk1f8rdrgl626wpi
𖼀𖽘𖾐
0
291675
2567025
2519988
2026-09-27T16:28:59Z
Hiyuune
50834
/* Tiếng A-Hmao */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567025
wikitext
text/x-wiki
=={{langname|hmd}}==
==={{section|etym}}===
Từ {{inh|hmd|hmx-pro|*bi̯aŋ}}. Cùng gốc với {{cog|ium|biangh}} và {{cog|mww|paj}}.
==={{section|pron}}===
* {{IPA|hmd|/paŋ³⁵/}}
==={{section|noun}}===
{{head|hmd|Danh từ|tr=bangx}}
# [[hoa|Hoa]].
{{C|hmd|Hoa}}
enurkn6d9ar7mvy9no34qr379t8kp7k
𖼐𖽑𖽪𖾐
0
291676
2567026
2410936
2026-09-27T16:29:31Z
Hiyuune
50834
/* Tiếng A-Hmao */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567026
wikitext
text/x-wiki
=={{langname|hmd}}==
==={{section|pron}}===
* {{IPA|hmd|/n̥u⁵³/}}
==={{section|noun}}===
{{head|hmd|Danh từ|tr=hnub}}
# [[Mặt Trời]].
{{C|hmd|Nguồn ánh sáng}}
c99e0xfnhyl4o4hk6ta01llb59nus4w
𖼐𖽻𖾏
0
291677
2567030
2290593
2026-09-27T16:31:26Z
Hiyuune
50834
/* Tiếng A-Hmao */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567030
wikitext
text/x-wiki
=={{langname|hmd}}==
==={{ĐM|pron}}===
* {{IPA|hmd|/ɳɑu̯³⁵/}}
==={{ĐM|verb}}===
{{head|hmd|Động từ|tr=naox}}
# [[ăn|Ăn]].
bxagixqajw5uoaab0jiodjh2h9l3hpk
𖼯𖽙
0
291678
2567031
2128232
2026-09-27T16:32:08Z
Hiyuune
50834
2567031
wikitext
text/x-wiki
=={{langname|hmd}}==
==={{section|pron}}===
* {{IPA|hmd|/t͡ɕɑu̯³¹/}}
==={{section|v}}===
{{head|hmd|Động từ|tr=jos}}
# [[trồng|Trồng]].
dvi6pl5vetnngkq9tkc1c1q61vy9upt
уул
0
291946
2567131
2136279
2026-09-28T08:47:17Z
Hiyuune
50834
2567131
wikitext
text/x-wiki
{{also|үүл|-уул}}
=={{langname|xal}}==
==={{section|n}}===
{{head|xal|Danh từ}}
# [[núi|Núi]].
=={{langname|ky}}==
==={{section|pron}}===
{{inh+|ky|trk-pro|*ogul}}.
==={{section|pron}}===
* {{IPA|ky|/uul/}}
==={{section|n}}===
{{ky-noun}}
# [[con trai|Con trai]].
=={{langname|mn}}==
==={{section|etym}} 1===
{{mn-variant|ᠤᠤᠯ|уул}}
{{etystub|mn}}
{{doublet|mn|уугуул|t1=[[bản địa]]}}.
===={{section|pron}}====
* {{IPA|mn|/ʊː.la/}}
* {{IPA|mn|[ʊ̞̙ːɮ]|a=khk}}
* {{hyph|mn|уул}} {{q|chính tả, Mông Cổ}}
===={{section|adj}}====
{{mn-adj}}
# [[bản địa|Bản địa]]; [[nguồn gốc]]; [[gốc gác]].
====={{section|drv}}=====
{{col|mn|уул нь}}
====={{section|ref}}=====
* {{R:mn:mongoltoli|97952|уул III}}
==={{section|etym}} 2===
{{mn-variant|ᠤᠤᠯᠠ|уул}}
Từ {{inh|mn|xgn-pro|*huxula}}. Cùng gốc với {{cog|dta|xwaal}}.
===={{section|pron}}====
* {{IPA|mn|/ʊː.la/}}
* {{IPA|mn|[ʊ̞̙ːɮ]|a=khk}}
* {{hyph|mn|уул}} {{q|chính tả, Mông Cổ}}
===={{section|n}}====
{{mn-noun}}
# [[bùi nhùi|Bùi nhùi]].
====={{section|decl}}=====
{{rfinfl|mn|danh từ}}
====={{section|drv}}=====
{{col|mn|цагаан уул}}
====={{section|ref}}=====
* {{R:mn:mongoltoli|97950|уул II}}
==={{section|etym}} 3===
{{mn-variant|ᠤᠤᠯᠠ|уул}}
{{bor+|mn|cmn|烏拉|id=giày|tr=wùla}}, từ {{der|mn|mnc|ᡤᡡᠯᡥᠠ|t=giày}}
===={{section|pron}}====
* {{IPA|mn|/ʊː.la/}}
* {{IPA|mn|[ʊ̞̙ːɮ]|a=khk}}
* {{hyph|mn|уул}} {{q|chính tả, Mông Cổ}}
===={{section|n}}====
{{mn-noun}}
# {{n-g|một loại giày ống}}.
# {{ellipsis of|mn|уул өвс|t={{taxlink|Carex meyeriana|loài}}}}
====={{section|decl}}=====
{{rfinfl|mn|danh từ}}
====={{section|alt}}=====
* {{alt|mn|ул}}
====={{section|ref}}=====
* {{R:mn:mongoltoli|97950|уул II|97958|уул IV}}
==={{section|etym}} 4===
{{mn-variant|ᠠᠭᠤᠯᠠ|уул}}
{{inh+|mn|cmg|ᠠᠭᠤᠯᠠ}}, từ {{inh|mn|xng|}}, từ {{inh|mn|xgn-pro|*axula}}, so sánh với {{cog|bua|уула}}, {{cog|dta|aul}}.
===={{section|pron}}====
* {{IPA|mn|/ʊː.la/}}
* {{IPA|mn|[ʊ̞̙ːɮ]|a=khk}}
* {{hyph|mn|уул}} {{q|chính tả, Mông Cổ}}
===={{section|n}}====
{{mn-noun|pl=уулс,уулууд|dec=n}}
# [[núi|Núi]].
====={{section|usage}}=====
* Dạng sinh cách là {{m|mn|уулын}} mặc dù danh từ này thuộc hệ biến cách ẩn n với [[oblique|bổ cách]], [[dative|dữ cách]] và [[ablative cases|ly cách]].
====={{section|decl}}=====
{{mn-decl-noun
|уул|уулс
|уулын|уулсын
|obl=уулан
|3a=уулынх|3b=уулсынх
|уулынхан|уулсынхан
|ууланд|уулсад
|уулан [[дахь]]|уулс [[дахь]]
|уулан [[дахин]]|уулс [[дахин]]
|уулыг|уулсыг
|уулаас|уулсаас
|уулаар|уулсаар
|уултай|уулстай
|уул [[лугаа]]|уулс [[лугаа]]
|уул [[руу]]|уулс [[руу]]
}}
====={{section|drv}}=====
{{col3|mn|уулархаг|галт уул<t:núi lửa>}}
====={{section|see}}=====
* {{l|mn|дов}}
* {{l|mn|өндөрлөг}}
====={{section|ref}}=====
* {{R:mn:mongoltoli|97887|уул I}}
=={{langname|alt}}==
==={{section|etym}}===
Từ {{inh|alt|trk-pro|*ogul|t=con trai}}.
==={{section|n}}===
{{alt-noun}}
# [[con trai|Con trai]].
===={{section|decl}}====
{{alt-ndecl-c|у|л}}
===={{section|drv}}====
* {{l|alt|уулду}}
==={{section|ref}}===
* {{R:alt:Baskakov}}
0s8yt6fvu0we6xdjbd1a4qd3gde4f68
маш дэлгэмэл
0
292310
2567130
2296413
2026-09-28T08:35:49Z
Hiyuune
50834
/* Số từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567130
wikitext
text/x-wiki
=={{langname|mn}}==
{{mn-variant|ᠮᠠᠰᠢ ᠳᠡᠯᠭᠡᠮᠡᠯ|маш дэлгэмэл}}
{{number box|mn|10000000000000}}
==={{ĐM|etym}}===
Từ {{compound|mn|маш|t1=lớn|дэлгэмэл|t2=sự bao la}}.
==={{ĐM|pron}}===
{{mn-IPA}}
==={{ĐM|num}}===
{{mn-head|Số từ}}
# [[mười|Mười]] [[nghìn]] [[tỷ]].
0ho9smdccpjiq4dzuo23eaby0grmqbp
дүнчүүр
0
292351
2567128
2296422
2026-09-28T08:33:39Z
Hiyuune
50834
/* Số từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567128
wikitext
text/x-wiki
=={{langname|mn}}==
{{mn-variant|ᠳ᠋ᠦᠩᠰᠢᠭᠤᠷ|дүнчүүр}}
{{number box|mn|100000000}}
==={{ĐM|pron}}===
{{mn-IPA}}
==={{ĐM|num}}===
{{mn-head|Số từ}}
# [[trăm|Trăm]] [[triệu]].
42q7ya3a79fpnxgp9mcs8fbmxb5ywyl
халбага
0
292678
2567129
2145273
2026-09-28T08:35:26Z
Hiyuune
50834
2567129
wikitext
text/x-wiki
=={{langname|bua}}==
==={{section|etym}}===
Từ {{inherited|bua|xgn-pro|*kalbuga}}, so sánh với {{cognate|dta|xalbeg|t=lưỡi cuốc}}.
==={{section|pron}}===
* {{IPA|bua|/χal.ba.ɢa/|[χäl.bɐ.ʁɐ]}}
* {{hyph|bua|хал|ба|га}}
==={{section|n}}===
{{bua-noun}}
# [[thìa|Thìa]].
=={{langname|mn}}==
==={{section|n}}===
{{mn-noun|ᠬᠠᠯᠪᠠᠭᠠ}}
# [[thìa|Thìa]].
===={{section|decl}}====
{{mn-decl|халбага<r.nuud>}}
oqwut45ndli4t0aw8ry0ajkgmyvuhgr
сүү
0
292990
2567127
2437703
2026-09-28T08:33:19Z
Hiyuune
50834
/* Danh từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567127
wikitext
text/x-wiki
=={{langname|bua}}==
==={{ĐM|n}}===
{{head|bua|Danh từ}}
# {{label|bua|Okinsky}} [[sữa|Sữa]].
==={{ĐM|ref}}===
* {{R:Rassadin 2002}}
=={{langname|mn}}==
==={{ĐM|etym}}===
Từ {{inh|mn|xgn-pro|*sün}}/{{l|xgn-pro|*üsün}}, so sánh với {{cog|bua|һүн}}, {{cog|xal|үсн}}, {{cog|yuy|hsün}}, so sánh với {{cog|dta|suu}}.
==={{ĐM|pron}}===
* {{IPA4|mn|/suː/|[suː]|a=Ulaanbaatar}}
==={{ĐM|n}}===
{{mn-noun|ᠰᠦᠨ|dec=n}}
# [[sữa|Sữa]].
===={{ĐM|drv}}====
* {{l|mn|хөхний сүү}}
* {{l|mn|эхийн сүү}}
{{C|mn|Sữa}}
ea3i8ip14gtthesj5e5jmtd4cum31za
乌底哈
0
293303
2567002
2133381
2026-09-27T14:09:25Z
WhoAlone
40420
2567002
wikitext
text/x-wiki
{{-tuw-kkl-}}
{{-noun-}}
{{head|tuw-kkl|Danh từ|tr=(w)udiha}}
# [[người]] [[Udihe]].
{{c|tuw-kkl|Mọi người}}
dji74ufqo49z3kbtap9g10zdm91ze0r
米旦
0
293310
2566974
2236552
2026-09-27T14:05:26Z
WhoAlone
40420
2566974
wikitext
text/x-wiki
=={{langname|tuw-kkl}}==
==={{ĐM|n}}===
{{head|tuw-kkl|Danh từ|tr=midan}}
# [[cung tên|Cung tên]].
{{c|tuw-kkl|Vũ khí}}
2hd6wvytnqx3plwy61v18ifaixyw3jp
踏踏玛
0
293312
2566966
2235610
2026-09-27T14:02:52Z
WhoAlone
40420
2566966
wikitext
text/x-wiki
=={{langname|tuw-kkl}}==
==={{ĐM|n}}===
{{head|tuw-kkl|Danh từ|tr=tatama}}
# [[giày|Giày]] [[da]] [[gấu]].
{{c|tuw-kkl|Trang phục}}
ozw68mm7sebkq6sgc74b8mzgtvs7j3q
阿穆格
0
293317
2566960
2133420
2026-09-27T14:01:49Z
WhoAlone
40420
2566960
wikitext
text/x-wiki
{{-tuw-kkl-}}
{{-noun-}}
{{head|tuw-kkl|Danh từ|tr=amege}}
# [[bố vợ]].
{{c|tuw-kkl|Thành viên nam trong gia đình|Hôn nhân}}
3zmidsw9ofzmce0i5ngjbisdfap0ksw
靰鞡
0
293321
2566967
2133427
2026-09-27T14:03:08Z
WhoAlone
40420
2566967
wikitext
text/x-wiki
{{-tuw-kkl-}}
{{-noun-}}
{{head|tuw-kkl|Danh từ|tr=eniang}}
# [[mẹ]].
{{c|tuw-kkl|Thành viên nữ trong gia đình}}
7sy79r7bf1nwo6v4bgga9fjgzg2ug1b
अग्निपर्वत
0
293661
2567151
2134096
2026-09-28T09:41:15Z
Hiyuune
50834
2567151
wikitext
text/x-wiki
=={{langname|sa}}==
==={{section|alt}}===
{{sa-alt}}
==={{section|etym}}===
{{com+|sa|अग्नि|पर्वत|t1=lửa|t2=núi}}
==={{section|pron}}===
{{sa-IPA}}
==={{section|n}}===
{{sa-noun|m}}
# [[núi lửa|Núi lửa]].
===={{section|decl}}====
{{sa-decl-noun-m|agniparvata}}
===={{section|desc}}====
* {{desc|kn|ಅಗ್ನಿಪರ್ವತ|bor=1}}
* {{desc|ml|അഗ്നിപർവ്വതം|bor=1}}
* {{desc|te|అగ్నిపర్వతము|lbor=1}}
==={{section|ref}}===
* {{R:MW|0005}}
jxblehcmblg3yfmtoa4wshlnmprdg7c
аж үйлдвэр
0
295583
2567126
2339715
2026-09-28T08:32:01Z
Hiyuune
50834
/* Tiếng Mông Cổ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567126
wikitext
text/x-wiki
=={{langname|mn}}==
==={{ĐM|etym}}===
Từ {{com|mn|аж|үйлдвэр}}.
==={{ĐM|pron}}===
{{mn-IPA}}
==={{ĐM|n}}===
{{mn-noun|ᠠᠵᠤ ᠦᠢᠯᠡᠳᠪᠦᠷᠢ|dec=r}}
# [[công nghiệp|Công nghiệp]].
===={{ĐM|decl}}====
{{mn-decl|аж үйлдвэр<r>}}
8unk42x94yrh1wgqwx66g34azo9o1ib
загас
0
295797
2567125
2138663
2026-09-28T08:31:21Z
Hiyuune
50834
2567125
wikitext
text/x-wiki
=={{langname|mn}}==
==={{section|etym}}===
Từ {{inherited|mn|xgn-pro|*jïgasun}}.
Cùng gốc với {{cog|xng|جیغاسون|tr=jighasun}}, {{m|xng|جیقاسونی|tr=jiqasun[i]}}, {{cog|bua|загаһан}}, {{cog|xal|заһсн}}, {{cog|dta|jaus}}, {{cog|sce|zhagvasun}}.
==={{section|pron}}===
* {{IPA|mn|/t͡saɢəs/|a=Ulaanbaatar}}
==={{section|n}}===
{{mn-noun|ᠵᠢᠭᠠᠰᠤ|pl=загаснууд|dec=n}}
# [[cá|Cá]].
===={{section|drv}}====
* {{l|mn|загасчин}}
* {{l|mn|могой загас}}
{{topics|mn|Cá}}
r22sypfd0ws32yf4eh2fknzy31yexqb
vạn niên thanh
0
307469
2567022
2302250
2026-09-27T16:27:37Z
Hiyuune
50834
/* Danh từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567022
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|n}}===
{{vi-noun}}
# [[cây|Cây]] thuộc [[họ]] [[ráy]], [[lá]] luôn [[xanh]] [[tốt]] [[nên]] thường được [[trồng]] trong [[nước]] để làm [[cảnh]].
#* '''2023''', Tuệ Lâm, ''[https://vtcnews.vn/co-nen-trong-cay-van-nien-thanh-trong-nha-ar824091.html Có nên trồng cây vạn niên thanh trong nhà?]'', Báo điện tử VTC News:
#*: Trong phong thủy, '''vạn niên thanh''' là một trong những loại cây nên trồng trong nhà vì đem lại sự may mắn, thịnh vượng cho gia chủ.
==={{section|ref}}===
* {{R:vi:Hoàng Phê 2021|page=1391}}
ohcvmg2mxbhuaocufieocxea3pi7hcs
aankondigingen
0
310099
2567081
2256288
2026-09-28T01:18:30Z
Hiyuune
50834
2567081
wikitext
text/x-wiki
=={{langname|nl}}==
==={{ĐM|pron}}===
* {{audio|nl|Nl-aankondigingen.ogg}}
==={{ĐM|n}}===
{{head|nl|Biến thể hình thái danh từ}}
# {{plural of|nl|aankondiging}}
8rzm4m21tymrxz7i2gwfjj5y1cuqk41
Déchuān
0
326878
2567094
2207986
2026-09-28T01:21:49Z
Hiyuune
50834
/* Tiếng Nhật */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567094
wikitext
text/x-wiki
=={{langname|cmn}}==
==={{ĐM|rom}}===
{{cmn-pinyin}}
# {{cmn-pinyin of|德川}}
b6mo88wf9i56gsly9ew0bd2zzss227t
Thể loại:Mục từ tiếng Mơ Nâm
14
329822
2567111
2213188
2026-09-28T03:00:01Z
WhoAlone
40420
2567111
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:Danh từ tiếng Mơ Nâm
14
329823
2567112
2213189
2026-09-28T03:00:41Z
WhoAlone
40420
2567112
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
chuo2
0
340406
2567089
2230594
2026-09-28T01:20:45Z
Hiyuune
50834
/* Tiếng Thái */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567089
wikitext
text/x-wiki
=={{langname|cmn}}==
==={{ĐM|rom}}===
{{cmn-pinyin}}
# {{alternative spelling of|cmn|chuó}}
t7z9y536jidm4bm62kyv6jotevvsbvh
Mô đun:category tree/topic/Nature
828
343314
2567027
2560599
2026-09-27T16:30:11Z
Hiyuune
50834
2567027
Scribunto
text/plain
local labels = {}
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
labels["Tự nhiên"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Tất cả chủ đề"},
wpcat = true,
}
labels["Môi trường"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Tự nhiên"},
wpcat = true,
}
labels["Acid"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Vật chất"},
}
labels["actinide series chemical elements"] = {
breadcrumb = "actinide series",
type = "chủ đề thuộc nhóm tập hợp",
description = "{{{langname}}} terms for those chemical elements in the {{w|f-block}} of the [[periodic table]] with [[atomic number]]s from 89 to 103.",
parents = {"chemical elements", "kim loại", "Phóng xạ"},
}
labels["air"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"atmosphere"},
}
labels["alkali metals"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "{{{langname}}} terms for [[alkali metal]]s, chemical elements in [[w:Group (periodic table)|group]] 1 of the [[periodic table]], which all have one [[valence electron]].",
parents = {"chemical elements", "kim loại"},
}
labels["alkaline earth metals"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "{{{langname}}} terms for [[alkaline earth metal]]s, chemical elements in [[w:Group (periodic table)|group]] 2, which all have two [[valence electron]]s.",
parents = {"chemical elements", "kim loại"},
}
labels["alkaloids"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Hợp chất hữu cơ"},
}
labels["hợp kim"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"kim loại"},
}
labels["aluminium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"boron group elements"},
}
labels["amino acids"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Acid carboxylic"},
}
labels["Âm thanh động vật"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Tiếng", "Tiếng kêu"},
}
labels["animal welfare"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "{{{langname}}} terms closely associated with [[animal welfare]].",
parents = {"ethics"},
}
labels["antimatter"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"matter"},
}
labels["antimony"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"pnictogens"},
}
labels["argon"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"noble gases"},
}
labels["arsenic"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"pnictogens"},
}
labels["astatine"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"halogens"},
}
labels["asteroids"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"celestial bodies"},
}
labels["khí quyển"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"tự nhiên"},
}
labels["hiện tượng khí quyển"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "=[[hiện tượng]] [[khí quyển]]",
parents = {"khí quyển"},
}
labels["autumn"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"seasons"},
}
labels["barium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"alkaline earth metals"},
}
labels["baryons"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"hadrons"},
}
labels["beryllium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"alkaline earth metals"},
}
labels["birth"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"reproduction"},
}
labels["bismuth"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"pnictogens"},
}
labels["boron"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"boron group elements"},
}
labels["boron group elements"] = {
breadcrumb = "boron group",
type = "chủ đề thuộc nhóm tập hợp",
description = "{{{langname}}} terms for chemical elements in [[w:Group (periodic table)|group]] 13 of the [[periodic table]], which all have three [[valence electron]]s.",
parents = {"chemical elements"},
}
labels["bosons"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"subatomic particles"},
}
labels["bromine"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"halogens"},
}
labels["cadmium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["calcium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"alkaline earth metals"},
}
labels["carbohydrates"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Hợp chất hữu cơ"},
}
labels["carbon"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"carbon group elements"},
}
labels["carbon group elements"] = {
breadcrumb = "carbon group",
type = "chủ đề thuộc nhóm tập hợp",
description = "{{{langname}}} terms for chemical elements in [[w:Group (periodic table)|group]] 14 of the [[periodic table]], which all have four [[valence electron]]s.",
parents = {"chemical elements"},
}
labels["Acid carboxylic"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Acid", "Hợp chất hữu cơ"},
}
labels["Thiên thể"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "{{{langname}}} terms for varous [[celestial body|celestial bodies]]; things found in outer space.",
parents = {"Không gian"},
}
labels["cerium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"lanthanide series chemical elements"},
}
labels["cesium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"alkali metals"},
}
labels["chalcogens"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "{{{langname}}} terms for chemical elements in [[w:Group (periodic table)|group]] 16 of the [[periodic table]], which all have 6 [[valence electron]]s.",
parents = {"chemical elements"},
}
labels["nguyên tố hóa học"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Vật chất"},
}
for period = 1, 7 do
local key = ("Nguyên tố chu kì %d"):format(period)
if not labels[key] then
labels[key] = {
type = "chủ đề thuộc nhóm tập hợp",
description = ("{{{langname}}} terms for [[chemical element]]s in period %d of the [[periodic table]]."):format(period),
parents = {"nguyên tố hóa học"},
}
end
end
labels["chemical isomers"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"matter", "physical chemistry", "shapes"},
}
labels["Quá trình hóa học"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "=[[quá trình]] [[hóa học]]",
parents = {"Tự nhiên"},
}
labels["chlorine"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"halogens"},
}
labels["chromium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["classical planets"] = {
type = "name",
description = "{{{langname}}} names for the [[classical planet]]s of our Solar System.",
parents = {"celestial bodies"},
}
labels["climate change"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "=[[anthropogenic]] [[climate change]]",
parents = {"tự nhiên"},
}
labels["clouds"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"hiện tượng khí quyển"},
}
labels["coal"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"fossil fuels"},
}
labels["cobalt"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["coenzymes"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"enzymes"},
}
labels["màu sắc"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Ánh sáng", "Thị giác"},
}
for _, color_etc in ipairs {
{"Màu đen"},
{"blue"},
{"brown"},
{"green"},
{"grey", "[[grey]] ([[gray]])"},
{"orange"},
{"pink"},
{"purple"},
{"red"},
{"white"},
{"yellow"},
} do
local color, desc = unpack(color_etc)
desc = desc or ("[[%s]]"):format(color)
labels[color] = {
type = "chủ đề thuộc nhóm tập hợp",
description = ("=shades of the [[color]] %s"):format(desc),
parents = {"màu sắc"},
}
end
labels["Colors of the rainbow"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "=[[color]]s of the [[rainbow]]",
parents = {"màu sắc"},
}
labels["Cháy"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Quá trình hóa học"},
}
labels["điểm la bàn"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "=[[điểm]] [[la bàn]]",
parents = {"phương hướng", "định hướng"},
}
labels["copper"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["crystal"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"matter", "physical chemistry"},
}
labels["darkness"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Ánh sáng"},
}
labels["deuterium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"hydrogen", "two", "isotopes"}
}
labels["phương hướng"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"tự nhiên"},
}
labels["distance"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"tự nhiên"},
}
labels["chất gây nghiện"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Vật chất", "Dược lý học"},
}
labels["dryness"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"liquids"},
}
labels["dwarf planets of the Solar System"] = {
type = "name",
description = "=[[dwarf planet]]s of our [[Solar System]]",
parents = {"celestial bodies"},
}
labels["Nhuộm"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Vật chất", "Sắc tố"},
}
labels["Năng lượng"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Tự nhiên"},
}
labels["enzymes"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"proteins", "catalysis"},
}
labels["europium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"lanthanide series chemical elements"},
}
labels["explosives"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"matter", "weapons"},
}
labels["eye colors"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "=[[color]]s that are mostly or exclusively used of [[eye]]s",
parents = {"màu sắc", "eyes"},
}
labels["Acid béo"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Acid carboxylic"},
}
labels["fermions"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"subatomic particles"},
}
labels["fictional materials"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"science fiction", "materials"},
}
labels["Lửa"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Cháy", "nguồn ánh sáng"},
wp = "Lửa",
}
labels["fluorine"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"halogens"},
}
labels["fog"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"weather", "water"},
}
labels["fossil fuels"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"carbon", "Năng lượng", "natural resources"},
}
labels["francium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"alkali metals"},
}
labels["gadolinium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"lanthanide series chemical elements"},
}
labels["galaxies"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"celestial bodies"},
}
labels["gallium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"boron group elements"},
}
labels["gases"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"matter"},
}
labels["germanium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"carbon group elements"},
}
labels["gold"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["hadrons"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"subatomic particles"},
}
labels["hair colors"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "=[[color]]s that are mostly or exclusively used of [[hair]]",
parents = {"màu sắc", "hair"},
}
labels["halogens"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "=[[chemical element]]s in [[w:Group (periodic table)|group]] 17 of the [[periodic table]], which all have 7 [[valence electron]]s",
parents = {"chemical elements"},
}
labels["helium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"noble gases"},
}
labels["heroin"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"recreational drugs"},
}
labels["height"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"distance"},
}
labels["horse colors"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "=[[color]]s that are mostly or exclusively used of [[horse]]s",
parents = {"màu sắc", "horses"},
}
labels["hydrogen"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"chemical elements"},
}
labels["hypothetical chemical elements"] = {
breadcrumb = "hypothetical",
type = "chủ đề thuộc nhóm tập hợp",
description = "{{{langname}}} terms for types or instances of [[chemical element]]s which have been hypothesized to exist, but not (yet) discovered.",
parents = {"chemical elements", "fictional materials"},
}
labels["ice"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"water"},
}
labels["indium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"boron group elements"},
}
labels["Hợp chất vô cơ"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Vật chất"},
}
labels["iodine"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"halogens"},
}
labels["ions"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"matter", "chemistry", "electricity"},
}
labels["iridium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["iron"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["isotopes"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"chemical elements"},
}
labels["krypton"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"noble gases"},
}
labels["lanthanide series chemical elements"] = {
breadcrumb = "lanthanide series",
type = "chủ đề thuộc nhóm tập hợp",
description = "=[[chemical element]]s in the {{w|f-block}} of the [[periodic table]] with [[atomic number]]s from 57 to 71",
parents = {"chemical elements"},
}
labels["lanthanum"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"lanthanide series chemical elements"},
}
labels["lead"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"carbon group elements"},
}
labels["length"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"distance"},
}
labels["leptons"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"fermions"},
}
labels["Sự sống"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Tự nhiên"},
}
labels["Ánh sáng"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Năng lượng"},
}
labels["nguồn ánh sáng"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Ánh sáng"},
}
labels["Tia sét"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"hiện tượng khí quyển", "weather", "electricity", "nguồn ánh sáng"},
}
labels["Chất lỏng"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default", -- At what temperature?
parents = {"Vật chất"},
}
labels["lithium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"alkali metals"},
}
labels["magnesium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"alkaline earth metals"},
}
labels["manganese"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["Mars (planet)"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "=the planet [[Mars]]",
parents = {"planets of the Solar System"},
}
labels["marijuana"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"hemp family plants", "recreational drugs"},
}
labels["Vật chất"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "=physical [[matter]]",
parents = {"Tự nhiên", "Hóa học"},
}
labels["mercury (element)"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["mesons"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"hadrons"},
}
labels["metalloids"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"chemical elements"},
}
labels["kim loại"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Vật chất", "Luyện kim"},
}
labels["Khoáng chất"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Vật chất", "Khoáng vật học"},
}
labels["molybdenum"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["moon"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "=the [[Moon]], Earth's only natural satellite",
parents = {"tự nhiên", "Ánh sáng", "celestial bodies", "moons"},
}
labels["moons"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"celestial bodies"},
}
for _, planet in ipairs {"Mars", "Haumea", "Jupiter", "Saturn", "Neptune", "Uranus", "Pluto"} do
labels["moons of " .. planet] = {
type = "name",
description = ("=[[moon]]s that orbit [[%s]]"):format(planet),
parents = {"moons"},
}
end
labels["natural products (Chemistry)"] = {
type = "name",
description = "=[[organic compound]]s produced by living [[organism]]s",
parents = {"Hợp chất hữu cơ"},
}
labels["natural resources"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"matter"},
}
labels["neodymium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"lanthanide series chemical elements"},
}
labels["neon"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"noble gases"},
}
labels["neurotoxins"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"poisons", "neuroscience"},
}
labels["nickel"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["niobium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["nitrogen"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"pnictogens"},
}
labels["noble gases"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "=[[chemical element]]s in [[w:Group (periodic table)|group]] 18 of the [[periodic table]], which all have a full chủ đề thuộc nhóm tập hợp of [[valence electron]]s: 2 for helium and 8 for the others",
parents = {"chemical elements", "gases"},
}
labels["Hợp chất hữu cơ"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Vật chất"},
}
labels["osmium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["oxygen"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"chalcogens"},
}
labels["palladium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["petroleum"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"fossil fuels", "liquids"},
}
labels["thuốc"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "{{{langname}}} names for [[pharmaceutical#Adjective|pharmaceutical]] [[drug#Noun|drugs]].",
parents = {"chất gây nghiện"},
}
labels["pharmaceutical effects"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "{{{langname}}} names for [[pharmaceutical#Adjective|pharmaceutical]] [[effect#Noun|effects]].",
parents = {"pharmacology"},
}
labels["phosphorus"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"pnictogens"},
}
labels["Sắc tố"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"màu sắc"},
}
labels["planetoids"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"celestial bodies"},
}
labels["Hành tinh"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Thiên thể"},
}
labels["Hành tinh trong hệ Mặt Trời"] = {
type = "chủ đề thuộc nhóm tên gọi",
description = "=hành tinh trong hệ Mặt Trời",
parents = {"Hành tinh"},
}
labels["platinum"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["Pluto"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "=the dwarf planet [[Pluto]]",
parents = {"dwarf planets of the Solar System"},
}
labels["pnictogens"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "=[[chemical element]]s in [[w:Group (periodic table)|group]] 15 of the [[periodic table]], which all have 5 [[valence electron]]s",
parents = {"chemical elements"},
}
labels["poisons"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"matter"},
}
labels["potassium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"alkali metals"},
}
labels["praseodymium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"lanthanide series chemical elements"},
}
labels["promethium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"lanthanide series chemical elements"},
}
labels["quarks"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"fermions"},
}
labels["Bức xạ"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Năng lượng"},
}
labels["Phóng xạ"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Bức xạ", "Vật lý hạt nhân"},
}
labels["radium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"alkaline earth metals"},
}
labels["radon"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"noble gases"},
}
labels["mưa"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Thời tiết", "Nước"},
}
labels["Chất hướng thần"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"chất gây nghiện"},
}
labels["rhodium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["rubidium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"alkali metals"},
}
labels["ruthenium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["salt"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Khoáng chất", "condiments"},
}
labels["samarium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"lanthanide series chemical elements"},
}
labels["scandium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["selenium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"chalcogens"},
}
labels["shadow"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"darkness"},
}
labels["silence"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"sound"},
}
labels["silicon"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"carbon group elements"},
}
labels["silver"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["Kích thước"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Tự nhiên"},
}
labels["snow"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"weather", "water"},
}
labels["sodium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"alkali metals"},
}
labels["Âm thanh"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Năng lượng"},
wpcat = true,
}
labels["Tiếng"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Âm thanh"},
}
labels["Không gian"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Tự nhiên"},
wpcat = true,
}
labels["spring"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"seasons"},
}
labels["squarks"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"fermions"},
}
labels["Sao"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "{{{langname}}} names of individual [[star]]s, not including the [[Sun]].",
parents = {"Thiên thể"},
}
labels["steel"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"iron", "alloys"},
}
labels["steroids"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Hợp chất hữu cơ"},
}
labels["strength"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"tự nhiên", "health"},
}
labels["strontium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"alkaline earth metals"},
}
labels["subatomic particles"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"matter", "particle physics"},
}
labels["sugar acids"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Acid carboxylic", "carbohydrates"},
}
labels["sugars"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"carbohydrates"},
}
labels["sulfur"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"chalcogens"},
}
labels["summer"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"seasons"},
}
labels["sun"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "=the [[Sun]]",
parents = {"tự nhiên", "Ánh sáng", "celestial bodies"},
}
labels["supposed chemical elements"] = {
breadcrumb = "supposed",
type = "chủ đề thuộc nhóm tập hợp",
description = "{{{langname}}} terms for types or instances of [[chemical element]]s which were erroneously identified.",
parents = {"chemical elements", "obsolete scientific theories"},
}
labels["tantalum"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["technetium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["tellurium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"chalcogens"},
}
labels["temperature"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"tự nhiên", "weather"},
}
labels["teratogens"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"poisons"},
}
labels["thalium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"boron group elements"},
}
labels["thorium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"actinide series chemical elements"},
}
labels["tin"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"carbon group elements"},
}
labels["titanium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["tobacco"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"nightshades", "recreational drugs", "smoking"},
}
labels["transition metals"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "{{{langname}}} terms for [[chemical element]]s in [[w:Group (periodic table)|group]]s 3 to 12 of the [[periodic table]], which are also in the {{w|d-block}} of the [[periodic table]] ",
parents = {"chemical elements", "kim loại"},
}
labels["tritium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"hydrogen", "three", "isotopes"},
}
labels["tungsten"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["types of planets"] = {
type = "type",
topic = "planets",
description = "=[[planet]]s",
parents = {"planets"},
}
labels["uranium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"actinide series chemical elements"},
}
labels["vanadium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["Tiếng kêu"] = {
type = "chủ đề thuộc nhóm tập hợp",
description = "default",
parents = {"Tiếng", "Giao tiếp"},
}
labels["Nước"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Chất lỏng"},
}
labels["waterfalls"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"water"},
}
labels["Thời tiết"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Khí quyển"},
}
labels["weight"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"tự nhiên"},
}
labels["wetlands"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"bodies of water", "ecosystems"},
}
labels["wetness"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"liquids"},
}
labels["wind"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"weather"},
}
labels["Mùa đông"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"Mùa"},
}
labels["xenon"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"noble gases"},
}
labels["yttrium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["zinc"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["zirconium"] = {
type = "chủ đề thuộc nhóm liên quan",
description = "default",
parents = {"transition metals"},
}
labels["exoplanets"] = {
type = "name",
description = "default",
parents = {"planets"},
}
return labels
m0fely60y1opmvvmrks1j3euqwz2m6c
pinguïntjes
0
350118
2567083
2247993
2026-09-28T01:18:56Z
Hiyuune
50834
/* Tiếng Anh */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567083
wikitext
text/x-wiki
=={{langname|nl}}==
==={{ĐM|alter}}===
* {{alter|nl|pinguïnnetjes}}
==={{ĐM|pron}}===
* {{audio|nl|Nl-pinguïntjes.ogg}}
==={{ĐM|n}}===
{{head|nl|Biến thể hình thái danh từ}}
# {{plural of|nl|pinguïntje}}
6hmsfu7q4gjvjv2d5okqm9utoynum55
pinguïnnetjes
0
350119
2567082
2247994
2026-09-28T01:18:42Z
Hiyuune
50834
2567082
wikitext
text/x-wiki
=={{langname|nl}}==
==={{ĐM|alter}}===
* {{alter|nl|pinguïntjes}}
==={{ĐM|pron}}===
* {{audio|nl|Nl-pinguïnnetjes.ogg}}
==={{ĐM|n}}===
{{head|nl|Biến thể hình thái danh từ}}
# {{plural of|nl|pinguïnnetje}}
0ajhxtw04go853v7hz9hehchm5pd0um
Mô đun:dialect synonyms
828
353072
2567114
2348157
2026-09-28T05:14:09Z
Hiyuune
50834
2567114
Scribunto
text/plain
-- Module:dialect synonyms
-- Generates dialectal synonym tables for various languages.
local export = {}
local m_links = require("Module:links")
local m_languages = require("Module:languages")
local m_table = require("Module:table")
local m_param_utils = require("Module:parameter utilities")
local PARAM_MODS = {
group = { type = "string" },
note = { type = "string" },
ipa = { type = "string" },
alt = {},
t = { item_dest = "gloss" },
gloss = {},
tr = {},
ts = {},
g = { item_dest = "genders", sublist = true },
pos = {},
lit = {},
id = {},
sc = { type = "script" },
q = { type = "qualifier" },
qq = { type = "qualifier" },
l = { type = "labels" },
ll = { type = "labels" },
}
local TERM_NA = "—"
local langs = {}
local handler_cache = {}
-- TODO: 3 collapsing modes? collapsed, uncollapsed (all locations matching the current entry title), uncollapsed (all)
-- Create the main table
local function __create_table()
return mw.html.create("table")
:addClass("dial-syn")
:addClass("wikitable")
:addClass("mw-collapsible")
:addClass("mw-collapsed")
:done()
end
-- Create the title row of the table
local function __create_title_row(columns, title, color)
return mw.html.create("tr")
:tag("th")
:attr("colspan", #columns)
:css("background-color", color)
:css("color:inherit")
:wikitext(title)
:done()
:done()
end
-- Create the header row with column names
local function __create_columns_row(columns, color)
local tr = mw.html.create("tr"):done()
for _, col in ipairs(columns) do
tr:tag("th")
:css("background-color", color)
:css("color:inherit")
:wikitext(col)
:done()
end
return tr
end
-- Create the row with "view map" and "edit data" links
local function __create_view_map_row(columns, color, view_map, edit_link)
return mw.html.create("tr")
:tag("td")
:attr("colspan", #columns)
:css("text-align", "right")
:css("background-color", color)
:css("color:inherit")
:tag("span")
:attr("class", "dialect-synonyms-map-overlay-trigger")
:attr("data-dialect-map-page", view_map)
:wikitext(("[[%s|xem bản đồ]]"):format(view_map))
:done()
:wikitext(("; [[%s|chỉnh sửa dữ liệu]]"):format(edit_link))
:done()
:done()
end
-- Helper to generate a link to create a missing data module
local function __prompt_create_data(module_path, preload_path)
local url = mw.uri.fullUrl(module_path, { action = 'edit', preload = preload_path })
return ("→Tạo [%s %s]?"):format(tostring(url), module_path)
end
-- Retrieve or load a language-specific handler module
local function __get_handler(code_main)
if not code_main then return nil end
if handler_cache[code_main] == nil then
local path = "Mô đun:dialect synonyms/handlers/" .. code_main
handler_cache[code_main] = mw.title.new(path).exists and require(path) or false
end
return handler_cache[code_main] or nil
end
export.get_handler = __get_handler
function export.collect_aliases(varieties)
local alias_map = {}
local function __collect_recursive(node)
if node.name then
alias_map[node.name] = node.name
end
if node.aliases then
if type(node.aliases) == "table" then
for _, alias in ipairs(node.aliases) do
alias_map[alias] = node.name
end
elseif type(node.aliases) == "string" then
alias_map[node.aliases] = node.name
end
end
for _, child in ipairs(node) do
__collect_recursive(child)
end
end
for _, variety in ipairs(varieties) do
__collect_recursive(variety)
end
return alias_map
end
-- Process a single term object using the handler and standard normalization techniques.
-- This handles legacy syntax parsing (e.g. term:note) and applies language-specific logic.
function export.process_term(data_variety, data, invalid_langs)
-- Re-use language objects if possible to avoid overhead
if not langs[data_variety.code] then
local lang = m_languages.getByCode(data_variety.code, nil, true)
if not lang then
if invalid_langs then
table.insert(invalid_langs, data_variety.code)
end
lang = m_languages.getByCode(data_variety.code_main)
elseif lang:hasType("etymology-only") then
lang = lang:getFull()
end
langs[data_variety.code] = lang
end
data.lang = data.lang or langs[data_variety.code]
data.alt = data.alt or data.term
if data_variety.nolink then data.term = nil end
-- Language-specific processing via handlers (e.g. stripping Etymology N numbers)
local handler = __get_handler(data_variety.code_main)
if handler and handler.process then
data = handler.process(data_variety, data)
end
return data
end
-- Format a processed term object into a final string for display (link + qualifiers).
-- This uses Module:links to generate the standard Wiktionary link.
function export.format_term(data_variety, data)
if type(data) == "string" then return data end -- Already formatted or special string (e.g. TERM_NA)
-- Convert q to qq so qualifiers appear after the term.
-- FIXME: NOOOOOOOOOOOOOOOO!!!!! User should be able to specify left or right qualifiers.
if data.q and not data.qq then
data.qq = data.q
data.q = nil
elseif data.q and data.qq then
-- Merge q into qq if both exist
if type(data.q) ~= "table" then data.q = {data.q} end
if type(data.qq) ~= "table" then data.qq = {data.qq} end
for _, v in ipairs(data.q) do
table.insert(data.qq, v)
end
data.q = nil
end
local word
local handler = __get_handler(data_variety.code_main)
if handler and handler.format_term then
word = handler.format_term(data_variety, data)
elseif handler and handler.make_link then
word = handler.make_link(data)
else
-- Pass data with show_decorations to let full_link handle qualifiers automatically.
-- FIXME: support all types of decorations not just right qualifiers.
local link_data = {}
for k, v in pairs(data) do
link_data[k] = v
end
if data.qq then
link_data.show_decorations = true
end
word = m_links.full_link(link_data)
end
return word
end
-- Format the display text for a variety or location (e.g. making parens small).
local function __format_text_display(data_variety, is_leaf)
if data_variety.text_display then
return data_variety
end
data_variety.text_display = data_variety.english or data_variety.name
if not data_variety.text_display then
return data_variety
end
data_variety.text_display = mw.ustring.gsub(data_variety.text_display, '(%(.+%))', '<small>%1</small>')
-- Language-specific display formatting via handlers (leaf nodes only)
if is_leaf then
local handler = __get_handler(data_variety.code_main)
if handler and handler.format_display then
data_variety = handler.format_display(data_variety)
end
end
-- Fallback: simple Wikipedia link
if not data_variety.text_display_formatted then
-- Wikipedia link
if data_variety.link then
data_variety.text_display = ('[[w:%s|%s]]'):format(data_variety.link, data_variety.text_display)
-- Wikidata link
elseif data_variety.wikidata then
data_variety.text_display = (
type(data_variety.wikidata) == 'number' and '[[d:Q%s|%s]]' or '[[d:%s|%s]]'
):format(data_variety.wikidata, data_variety.text_display)
end
end
return data_variety
end
-- Main data fetching function.
function export.get_data(lang_code, term, id, demo_mode, skip_validation)
local module_path = "Mô đun:dialect synonyms"
local synonym_data_path
local handler = __get_handler(lang_code)
if handler and handler.get_synonym_data_path then
synonym_data_path = handler.get_synonym_data_path(lang_code, term, id)
end
local language_data_path = module_path .. "/" .. lang_code
local term_path = term .. (id and id ~= "" and "/" .. id or "")
if not synonym_data_path then
synonym_data_path = language_data_path .. "/" .. term_path
end
-- Set defaults
local language_data_req = mw.title.new(language_data_path).exists and require(language_data_path) or nil
local synonym_data_req = mw.title.new(synonym_data_path).exists and require(synonym_data_path) or (
-- get the blank data template if it exists (for auto-generation purposes), make a deep copy if so
mw.title.new(language_data_path .. "/").exists and m_table.deepCopy(require(language_data_path .. "/")) or nil
)
if demo_mode then
synonym_data_path = language_data_path
synonym_data_req = {}
synonym_data_req.syns = {}
end
if (not language_data_req) or (not synonym_data_req) then
return nil, language_data_path, synonym_data_path -- Return paths for create prompts
end
local root_path = mw.title.getCurrentTitle().prefixedText == language_data_path
if handler and handler.get_map_params then
local params = handler.get_map_params(language_data_req, synonym_data_req)
for k, v in pairs(params) do
language_data_req[k] = v
end
end
language_data_req.title = language_data_req.title or "Phương ngữ đồng nghĩa của %s"
language_data_req.notes = language_data_req.notes or {}
language_data_req.sources = language_data_req.sources or {}
language_data_req.note_aliases = language_data_req.note_aliases or {}
local collected_notes = {}
local collected_notes_set = {}
if synonym_data_req.note then
local notes = type(synonym_data_req.note) == "string" and { synonym_data_req.note } or synonym_data_req.note
for _, note_key in ipairs(notes) do
if note_key ~= "" and not collected_notes_set[note_key] then
collected_notes_set[note_key] = true
table.insert(collected_notes, note_key)
end
end
end
if synonym_data_req.notes then
for _, note_key in ipairs(synonym_data_req.notes) do
if note_key ~= "" and not collected_notes_set[note_key] then
collected_notes_set[note_key] = true
table.insert(collected_notes, note_key)
end
end
end
local expanded_sources = {}
if synonym_data_req.source then
for _, src_key in ipairs(synonym_data_req.source) do
local expanded = language_data_req.sources[src_key]
if expanded then
table.insert(expanded_sources, expanded)
elseif src_key ~= "" then
table.insert(expanded_sources, src_key)
end
end
end
local combined_sources = #expanded_sources > 0 and ("'''Nguồn:''' " .. table.concat(expanded_sources, "; ")) or nil
local allowed_keys = {
["syns"] = true,
["gloss"] = true,
["meaning"] = true,
["title"] = true,
["note"] = true,
["notes"] = true,
["source"] = true,
["last_column"] = true,
}
-- Validation tracking
local used_keys = {}
local duplicate_usage = {}
local duplicate_terms = {}
local invalid_langs = {}
local is_module_ns = mw.title.getCurrentTitle().nsText == "Mô_đun"
if skip_validation then is_module_ns = false end
local alias_map = export.collect_aliases(language_data_req.varieties)
if synonym_data_req.syns then
for alias, canonical in pairs(alias_map) do
if alias ~= canonical and synonym_data_req.syns[alias] then
synonym_data_req.syns[canonical] = synonym_data_req.syns[canonical] or {}
for _, term in ipairs(synonym_data_req.syns[alias]) do
table.insert(synonym_data_req.syns[canonical], term)
end
used_keys[alias] = true
end
end
end
local function __populate_tree(data_variety)
local new_node = m_table.shallowCopy(data_variety)
if #new_node == 0 then
-- Leaf node
if (synonym_data_req.syns[new_node.name]) then
if is_module_ns then
if used_keys[new_node.name] then
table.insert(duplicate_usage, new_node.name)
end
used_keys[new_node.name] = true
-- Check for duplicate terms within the same list
local seen_terms = {}
for _, t in ipairs(synonym_data_req.syns[new_node.name]) do
if seen_terms[t] then
if not duplicate_terms[new_node.name] then
duplicate_terms[new_node.name] = {}
end
local already_added = false
for _, dt in ipairs(duplicate_terms[new_node.name]) do
if dt == t then already_added = true break end
end
if not already_added then
table.insert(duplicate_terms[new_node.name], t)
end
end
seen_terms[t] = true
end
end
if (synonym_data_req.syns[new_node.name][1] ~= '') then
new_node.syns = synonym_data_req.syns[new_node.name]
end
end
if demo_mode then
new_node.syns = { '-' }
end
if (new_node.default) and (not new_node.syns) then
if new_node.default == 'module name' then
new_node.syns = { term } -- default fallback
end
-- for auto-generation, execute the set function in the `default` param
if type(new_node.default) == "function" then
new_node.syns = new_node.default(term) or nil
end
end
if (new_node.syns) and (new_node.syns[1] == '-') then
new_node.nolink = true
new_node.syns[1] = TERM_NA
end
if (not new_node.syns) then
return nil
end
-- Process synonyms
local terms = new_node.syns
local terms_processed = {}
-- Special case for TERM_NA
if terms[1] == TERM_NA and #terms == 1 then
terms_processed = terms
else
local simple_processing = true
for _, term_str in ipairs(terms) do
if type(term_str) == "string" and term_str:find("[<,;]") then
simple_processing = false
break
end
end
if simple_processing then
for _, term_entry in ipairs(terms) do
local term_obj
if type(term_entry) == "table" then
term_obj = term_entry
else
term_obj = { term = term_entry }
end
table.insert(terms_processed, export.process_term(new_node, term_obj, invalid_langs))
end
else
local masked_terms = {}
for _, term_str in ipairs(terms) do
local masked_term = term_str:gsub("<(%/?sup[^>]*)>", "\1%1\2")
table.insert(masked_terms, masked_term)
end
local parsed_terms = m_param_utils.parse_list_with_inline_modifiers_and_separate_params({
processed_args = { masked_terms },
param_mods = PARAM_MODS,
termarg = 1,
track_module = "dialect synonyms",
})
for _, term_obj in ipairs(parsed_terms) do
if term_obj.term then
term_obj.term = term_obj.term:gsub("\1", "<"):gsub("\2", ">")
end
if term_obj.note and not collected_notes_set[term_obj.note] then
collected_notes_set[term_obj.note] = true
table.insert(collected_notes, term_obj.note)
end
if term_obj.q then
for i, qual in ipairs(term_obj.q) do
local alias = qual:match("^%[(.+)%]$")
if alias then
term_obj.q[i] = alias
if not collected_notes_set[alias] then
collected_notes_set[alias] = true
table.insert(collected_notes, alias)
end
end
end
end
table.insert(terms_processed, export.process_term(new_node, term_obj, invalid_langs))
end
end
end
new_node.syns = terms_processed
new_node = __format_text_display(new_node, true)
return new_node
else
-- Branch node
new_node = __format_text_display(new_node, false)
if not new_node.code then
new_node.code = (new_node.parent and new_node.parent.code or lang_code)
end
local valid_children = {}
for i, child_raw in ipairs(data_variety) do
local child_clone = m_table.shallowCopy(child_raw)
child_clone.parent = new_node -- Point to the new parent
child_clone.code_main = lang_code
child_clone.code = (child_clone.code or new_node.code)
child_clone.color = (child_clone.color or new_node.color)
local populated_child = __populate_tree(child_clone)
if populated_child then
if populated_child.leaf_count then
new_node.leaf_count = (new_node.leaf_count or 0) + populated_child.leaf_count
else
new_node.leaf_count = (new_node.leaf_count or 0) + 1
end
table.insert(valid_children, populated_child)
end
end
-- Branch has its own syns (regional data) and some localities: show region as first row, then localities
if #valid_children > 0 and synonym_data_req.syns[new_node.name] then
local synthetic = {}
for k, v in pairs(new_node) do
if type(k) ~= "number" then
synthetic[k] = v
end
end
synthetic.region_summary_row = true -- same name as branch; hide location text, no top border
local region_leaf = __populate_tree(synthetic)
if region_leaf then
table.insert(valid_children, 1, region_leaf)
new_node.leaf_count = (new_node.leaf_count or 0) + 1
end
end
for i = #new_node, 1, -1 do
new_node[i] = nil
end
for i, child in ipairs(valid_children) do
new_node[i] = child
end
if #valid_children == 0 then
-- No locality data: if this branch has its own syns (regional-only data), show it as one row
if synonym_data_req.syns[new_node.name] then
local synthetic = {}
for k, v in pairs(new_node) do
if type(k) ~= "number" then
synthetic[k] = v
end
end
local leaf_result = __populate_tree(synthetic)
if leaf_result then
for i = #new_node, 1, -1 do
new_node[i] = nil
end
new_node.syns = leaf_result.syns
new_node.text_display = leaf_result.text_display
new_node.text_display_formatted = leaf_result.text_display_formatted
new_node.nolink = leaf_result.nolink
new_node.leaf_count = 1
return new_node
end
end
return nil
end
return new_node
end
end
local populated_varieties = __populate_tree(language_data_req.varieties)
local expanded_notes = {}
for _, note_key in ipairs(collected_notes) do
if note_key == "" then
-- Skip empty
elseif note_key:match("^%[(.+)%]$") then
local alias = note_key:match("^%[(.+)%]$")
local expanded = language_data_req.note_aliases[alias] or (language_data_req.notes and language_data_req.notes[alias])
if expanded then
table.insert(expanded_notes, expanded)
else
table.insert(expanded_notes, alias)
end
else
local expanded = language_data_req.note_aliases[note_key] or (language_data_req.notes and language_data_req.notes[note_key])
if expanded then
table.insert(expanded_notes, expanded)
else
table.insert(expanded_notes, note_key)
end
end
end
local combined_notes = #expanded_notes > 0 and ("'''Ghi chú:''' " .. table.concat(expanded_notes, " ")) or nil
-- Post-processing validation results
local validation = {
unused_keys = {},
invalid_keys = {},
invalid_langs = invalid_langs,
duplicate_usage = duplicate_usage,
duplicate_terms = duplicate_terms,
missing_name = {},
duplicate_variety_names = {}
}
if is_module_ns then
if root_path then
local allowed_keys_lang = { varieties = true, columns = true, title = true, notes = true, sources = true, note_aliases = true }
for key, _ in pairs(language_data_req) do
if not allowed_keys_lang[key] then
table.insert(validation.invalid_keys, key)
end
end
local name_to_paths = {}
local function __validate_varieties_tree(nodes, path_prefix)
for i, node in ipairs(nodes) do
if type(node) == "table" then
local path = (path_prefix and path_prefix .. "." or "") .. (node.name or ("[" .. i .. "]"))
if not node.name or node.name == "" then
local missing_path = path_prefix and (path_prefix .. ".[" .. i .. "]") or ("[" .. i .. "]")
table.insert(validation.missing_name, missing_path)
else
if not name_to_paths[node.name] then
name_to_paths[node.name] = {}
end
table.insert(name_to_paths[node.name], path)
end
__validate_varieties_tree(node, path)
end
end
end
if language_data_req.varieties and #language_data_req.varieties > 0 then
__validate_varieties_tree(language_data_req.varieties, nil)
end
for name, paths in pairs(name_to_paths) do
if #paths > 1 then
table.insert(validation.duplicate_variety_names, name .. " (" .. table.concat(paths, ", ") .. ")")
end
end
else
for loc, _ in pairs(synonym_data_req.syns or {}) do
if not used_keys[loc] then
table.insert(validation.unused_keys, loc)
end
end
for key, _ in pairs(synonym_data_req) do
if not allowed_keys[key] then
table.insert(validation.invalid_keys, key)
end
end
end
end
local raw_columns = language_data_req.columns or { "Biến thể", "Địa phương" }
local data_label = synonym_data_req.last_column or "Từ"
local location_columns = {}
if raw_columns[#raw_columns] == "Từ" then
for i = 1, #raw_columns - 1 do table.insert(location_columns, raw_columns[i]) end
else
for _, c in ipairs(raw_columns) do table.insert(location_columns, c) end
end
local final_columns = {}
for _, c in ipairs(location_columns) do table.insert(final_columns, c) end
table.insert(final_columns, data_label)
local resolved_title = (root_path and "Biến thể phương ngữ")
or (synonym_data_req.title and synonym_data_req.title ~= "" and synonym_data_req.title)
or language_data_req.title
return {
varieties = populated_varieties,
properties = {
title = resolved_title,
columns = final_columns,
notes = language_data_req.notes,
combined_notes = combined_notes,
combined_sources = combined_sources,
gloss = (synonym_data_req.gloss ~= "" and synonym_data_req.gloss) or (synonym_data_req.meaning ~= "" and synonym_data_req.meaning) or nil,
map_template_path = "Bản mẫu:dialect map/" .. lang_code .. "/" .. (root_path and ".all" or term_path),
synonym_data_path = synonym_data_path,
language_data_path = language_data_path,
},
validation = validation
}
end
function export.show(frame)
local params = {
[1] = { required = true, default = "und" },
[2] = { default = mw.loadData("Module:headword/data").pagename },
['id'] = {},
['dpath syns'] = {}, -- Keeping param name for compatibility
['demo mode'] = { type = "boolean" },
['title'] = { type = "string" }, -- to change the title of the term of the table header
}
local args = require("Module:parameters").process(frame:getParent().args, params, nil, "dialect synonyms", "show")
local lang_code = args[1]
local term = args[2]
local id = args['id']
local dataset, language_data_path, synonym_data_path = export.get_data(lang_code, term, id, args['demo mode'])
language_data_path = language_data_path or dataset.properties.language_data_path
synonym_data_path = synonym_data_path or dataset.properties.synonym_data_path
-- the one in parenthesis is for when the varieties is `nil` and there is no page exists
-- which is for when auto-generation is not supported
if not dataset or (not dataset.varieties and not mw.title.new(synonym_data_path).exists) then
if language_data_path and synonym_data_path then
local has_lang = mw.title.new(language_data_path).exists
if not has_lang then
return __prompt_create_data(language_data_path, 'Mô đun:dialect synonyms/und')
else
return __prompt_create_data(synonym_data_path, 'Mô đun:dialect synonyms/' .. lang_code .. '/')
end
else
return "Error loading data."
end
end
local varieties = dataset.varieties
local props = dataset.properties
local validation = dataset.validation
if not varieties then
return "No varieties found."
end
local dialect_synonyms_table
local handler = __get_handler(lang_code)
if handler and handler.create_table then
dialect_synonyms_table = handler.create_table()
else
dialect_synonyms_table = __create_table()
end
dialect_synonyms_table = dialect_synonyms_table:done()
local lang, lang_qualifier = string.match(args[1], '^(.+):(.+)$')
lang = lang or args[1]
local main_word_link = m_links.full_link({
lang = m_languages.getByCode(lang_qualifier and "en" or lang),
term = args["title"] and "" or term,
gloss = props.gloss,
id = id,
alt = args["title"],
}, "term")
local header_color = 'var(--wikt-palette-green-0);color:inherit'
local title_row
if handler and handler.create_title_row then
title_row = handler.create_title_row(props.columns, (props.title):format(main_word_link), header_color)
else
title_row = __create_title_row(props.columns, (props.title):format(main_word_link), header_color)
end
dialect_synonyms_table:node(title_row)
local map_row
if handler and handler.create_map_row then
map_row = handler.create_map_row(props.columns, header_color, props.map_template_path, props.synonym_data_path)
else
map_row = __create_view_map_row(props.columns, header_color, props.map_template_path, props.synonym_data_path)
end
dialect_synonyms_table:node(map_row)
local columns_row
if handler and handler.create_columns_row then
columns_row = handler.create_columns_row(props.columns, header_color)
else
columns_row = __create_columns_row(props.columns, header_color)
end
dialect_synonyms_table:node(columns_row)
dialect_synonyms_table:done()
-- Recursive function to render the tree of varieties into HTML rows.
-- Every row is capped to exactly num_columns (#props.columns). Last column is always Words (colspan 1).
-- cols_taken: number of columns already taken by branch th(s) in this row (0 at root).
local num_columns = #props.columns
local function __render_tree(data_variety, tr, cols_taken)
if not data_variety then return end
cols_taken = cols_taken or 0
if #m_table.numKeys(data_variety) == 0 then
-- Leaf: first cell = rest (capped), last cell = Words (always 1)
local rest_cols = num_columns - 1 - cols_taken
local leaf_colspan = math.max(1, math.min(rest_cols, num_columns - 1))
if not tr then
tr = mw.html.create('tr'):done()
end
local syns_text_list = {}
for _, item in ipairs(data_variety.syns) do
table.insert(syns_text_list, export.format_term(data_variety, item))
end
local syns_str = table.concat(syns_text_list, ', ')
local is_region_summary = data_variety.region_summary_row
local location_content = is_region_summary and "" or data_variety.text_display
local th = tr:tag('th')
:attr('colspan', leaf_colspan)
:css("background-color", data_variety.color)
:attr('data-term', data_variety.text_display)
if is_region_summary then
th:addClass("dial-syn-region-summary-row")
else
th:attr('data-lat', data_variety.lat):attr('data-lon', data_variety.long)
end
th:tag('span')
:wikitext(location_content)
:done()
:done()
:tag('td')
:attr('colspan', 1)
:css("background-color", data_variety.color)
:wikitext(syns_str)
:done()
:done()
dialect_synonyms_table:node(tr):done()
else
-- Branch node: one column (colspan 1), then recurse with cols_taken + 1
if (not tr) and (data_variety.parent) then
tr = mw.html.create('tr'):done()
end
local next_cols_taken = cols_taken
if tr then
local branch_th = tr:tag('th')
:attr('rowspan', data_variety.leaf_count)
:attr('colspan', 1)
:css("background-color", data_variety.color)
if data_variety[1] and data_variety[1].region_summary_row then
branch_th:addClass("dial-syn-region-summary-adjacent")
end
branch_th:tag('span')
:wikitext(data_variety.text_display)
:done()
:done()
next_cols_taken = cols_taken + 1
end
local first = true
for i, _ in m_table.sparseIpairs(data_variety) do
if not first then tr = nil end
__render_tree(data_variety[i], tr, next_cols_taken)
first = false
end
end
end
if handler and handler.render_table_content then
handler.render_table_content(varieties, dialect_synonyms_table)
else
__render_tree(varieties)
end
-- Output validation warnings (unused keys, duplicates)
local validation_errors = {}
if #validation.unused_keys > 0 then
table.sort(validation.unused_keys)
table.insert(validation_errors, {
track = "dialect synonyms/unused key",
warning = "Cảnh báo: The following locations are not present in the varieties data:",
items = validation.unused_keys
})
end
if #validation.invalid_keys > 0 then
table.sort(validation.invalid_keys)
table.insert(validation_errors, {
track = "dialect synonyms/invalid key",
warning = "Cảnh báo: The following keys are not allowed in the dataset:",
items = validation.invalid_keys
})
end
if #validation.invalid_langs > 0 then
table.sort(validation.invalid_langs)
table.insert(validation_errors, {
track = "dialect synonyms/invalid lang code",
warning = "Cảnh báo: Mã ngôn ngữ không hợp lệ (quay lại ngôn ngữ chính):",
items = validation.invalid_langs
})
end
if #validation.duplicate_usage > 0 then
table.sort(validation.duplicate_usage)
table.insert(validation_errors, {
track = "dialect synonyms/duplicate key usage",
warning = "Cảnh báo: Địa danh được dùng nhiều lần trong dữ liệu biến thể:",
items = validation.duplicate_usage
})
end
if next(validation.duplicate_terms) then
local items = {}
for loc, terms in pairs(validation.duplicate_terms) do
table.insert(items, loc .. ": " .. table.concat(terms, ", "))
end
table.sort(items)
table.insert(validation_errors, {
track = "dialect synonyms/duplicate terms",
warning = "Warning: The following locations contain duplicate terms:",
items = items
})
end
if validation.missing_name and #validation.missing_name > 0 then
table.sort(validation.missing_name)
table.insert(validation_errors, {
track = "dialect synonyms/missing name",
warning = "Warning: The following variety nodes are missing a name:",
items = validation.missing_name
})
end
if validation.duplicate_variety_names and #validation.duplicate_variety_names > 0 then
table.sort(validation.duplicate_variety_names)
table.insert(validation_errors, {
track = "dialect synonyms/duplicate variety name",
warning = "Warning: The following variety names appear more than once in the tree:",
items = validation.duplicate_variety_names
})
end
if #validation_errors > 0 then
local track = require("Module:debug/track")
local warning_div = mw.html.create("div")
:css("background-color", "var(--wikt-palette-red-1);color:inherit")
:css("border", "1px solid var(--wikt-palette-red-5);color:inherit")
:css("padding", "0.5em")
:css("margin", "0.5em 0")
for _, err in ipairs(validation_errors) do
track(err.track)
warning_div:tag("strong"):wikitext(err.warning):done()
local ul = warning_div:tag("ul"):css("margin-left", "1.5em")
for _, item in ipairs(err.items) do
ul:tag("li"):wikitext(item):done()
end
end
dialect_synonyms_table:node(warning_div:done())
end
-- Append combined notes row
local all_notes = {}
for _, note in ipairs(props.notes) do
table.insert(all_notes, note)
end
if props.combined_notes then
table.insert(all_notes, props.combined_notes)
end
if #all_notes > 0 then
local notes_text = table.concat(all_notes, "<br>")
dialect_synonyms_table:tag('tr'):tag('td'):attr("colspan", #props.columns):wikitext(notes_text):done():done():done()
end
if props.combined_sources then
dialect_synonyms_table:tag('tr'):tag('td'):attr("colspan", #props.columns):css("font-size", "90%"):wikitext(props.combined_sources):done():done():done()
end
if props.map_template_path and mw.title.getCurrentTitle().nsText == "Mô_đun" then
local data_module_path = "Mô dun:dialect map/data/" .. lang_code
if mw.title.new(data_module_path).exists then
local map_title = mw.title.new(props.map_template_path)
if map_title and not map_title.exists then
require("Module:debug/track")("dialect synonyms/missing map")
end
end
end
return tostring(dialect_synonyms_table) .. require("Module:TemplateStyles")("Template:dialect synonyms/styles.css")
end
return export
7ogsc5tilpempaprkkex0hvn44yxg1c
ñu
0
356715
2566951
2566946
2026-09-27T12:11:53Z
TheHighFighter2
42988
2566951
wikitext
text/x-wiki
{{also|Phụ lục:Biến thể của "nu"}}
=={{langname|ibh}}==
==={{ĐM|pronoun}}===
{{head|ibh|Đại từ}}
# {{n-g|Dùng cho một đại từ ngôi thứ ba có tính cách được chú trọng trong lời nói.}}
==={{ĐM|ref}}===
* Tam Thi Minh Nguyen, ''A grammar of Bih'' (2013)
=={{langname|gl}}==
{{wp|gl:}}
==={{ĐM|etym}}===
{{ubor|gl|es|ñu}}, từ {{der|gl|de|Gnu}}, từ {{der|gl|naq|!nu:}}, có thể thông qua {{cog|nl|gnoe}}, khả năng cao là {{onom|gl|nocap=1}} mô phỏng tiếng kêu của linh dương đầu bò.
==={{ĐM|noun}}===
{{gl-noun|m}}
# {{cap|linh dương đầu bò}}.
{{C|gl|Lớp Thú}}
=={{langname|tl}}==
==={{ĐM|etym}}===
{{ubor|tl|es|ñu}}, từ {{der|tl|de|Gnu}}, từ {{der|tl|naq|!nu:}}, có thể thông qua {{cog|nl|gnoe}}, khả năng cao là {{onom|tl|nocap=1}} mô phỏng tiếng kêu của linh dương đầu bò.
==={{ĐM|pron}}===
{{tl-pr|hmp=Niu}}
==={{ĐM|noun}}===
{{tl-noun|b=+}}
# {{cap|linh dương đầu bò}}.
===={{ĐM|see}}====
{{col3|tl|bubalo|busepalo}}
==={{ĐM|further}}===
* {{R:KWF Diksiyonaryo}}
* {{R:Pambansang Diksiyonaryo|ñ}}
{{C|tl|Phân họ Quyến linh}}
=={{langname|es}}==
{{wp|es:}}
==={{ĐM|etym}}===
Từ {{der|es|de|Gnu}}, từ {{der|es|naq|!nu:}}, có thể thông qua {{cog|nl|gnoe}}, khả năng cao là {{onom|es|nocap=1}} mô phỏng tiếng kêu của linh dương đầu bò.
==={{ĐM|pron}}===
{{es-pr|+<audio:LL-Q1321 (spa)-Millars-ñu.wav>}}
==={{ĐM|noun}}===
{{es-noun|m}}
# {{cap|linh dương đầu bò}}.
==={{ĐM|further}}===
* {{R:es:DRAE}}
{{C|es|Linh dương}}
=={{langname|xto}}==
==={{ĐM|etym}} 1===
{{enum|xto|okät|śäk|số đếm}}
Từ {{inh|xto|ine-toc-pro|*ñäwä}}, từ {{inh|xto|ine-pro|*h₁néwn̥}}. So sánh với {{cog|txb|ñu}}.
===={{ĐM|num}}====
{{head|xto|numeral|cat2=Số đếm}}
# [[chín|Chín]].
===={{ĐM|ref}}====
* {{R:txb:Adams 2013|head=ñu|page=286}}
==={{ĐM|etym}} 2===
Từ {{inh|xto|ine-toc-pro|*ñäwe}}, từ {{inh|xto|ine-pro|*néwos}}. So sánh với {{cog|txb|ñuwe}}.
===={{ĐM|adj}}====
{{head|xto|adjective}}
# [[mới|Mới]].
===={{ĐM|ref}}====
* {{R:txb:Adams 2013|head=ñuwe|pages=287-288}}
=={{langname|txb}}==
{{enum|txb|okt|śak|số đếm}}
==={{ĐM|etym}} 1===
Từ {{inh|txb|ine-toc-pro|*ñäwä}}, từ {{inh|txb|ine-pro|*h₁néwn̥}}. So sánh với {{cog|xto|ñu}}.
===={{ĐM|num}}====
{{head|txb|numeral|cat2=Số đếm}}
# [[chín|Chín]].
===={{ĐM|ref}}====
* {{R:txb:Adams 2013|head=ñu|page=286}}
==={{ĐM|etym}} 2===
Kế thừa từ {{inh|txb|ine-pro|*nu}}. Cùng gốc với {{cog|la|nunc}}, {{cog|grc|νῦν}}, {{cog|sla-pro|*nyně}}.
===={{ĐM|adv}}====
{{head|txb|adverb}}
# [[bây giờ|Bây giờ]], [[hiện nay]].
====={{ĐM|der}}=====
* {{l|txb|eñwetstse}}
rsvqo2k7a6vnu4aa3fuyrvei1i01f02
cāomǐ
0
358046
2567087
2265351
2026-09-28T01:20:20Z
Hiyuune
50834
2567087
wikitext
text/x-wiki
=={{langname|cmn}}==
==={{ĐM|rom}}===
{{cmn-pinyin}}
# {{cmn-pinyin of|糙米}}
0z7g9o2d5buy84y3b59t85xusewmcsd
chuó
0
393736
2567092
2346796
2026-09-28T01:21:09Z
Hiyuune
50834
/* Cách viết khác */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567092
wikitext
text/x-wiki
{{also|chuo|chuò|chuō|chūō|Chūō}}
=={{langname|cmn}}==
==={{section|alt}}===
* {{alt|cmn|chuo||nonstandard}}
* {{alt|cmn|ĉuó||tốc ký rất hiếm gặp}}
==={{section|rom}}===
{{cmn-pinyin}}
# {{cmn-pinyin of|犳}}
q4fa82emal7qmkml33hzu2si0bx9miy
chángshí
0
397592
2567088
2353948
2026-09-28T01:20:30Z
Hiyuune
50834
2567088
wikitext
text/x-wiki
{{also|chángshì}}
=={{langname|cmn}}==
==={{ĐM|rom}}===
{{cmn-pinyin}}
# {{cmn-pinyin of|常識}}
# {{cmn-pinyin of|常時}}
# {{cmn-pinyin of|長石}}
p5b4fjsus3dn7mxv01pysy9e0dmf61q
अकरत्
0
403517
2567148
2373320
2026-09-28T09:38:50Z
Hiyuune
50834
/* Động từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567148
wikitext
text/x-wiki
=={{langname|sa}}==
==={{section|alt}}===
{{sa-alt}}
==={{section|pron}}===
{{sa-IPA|a=1}}
==={{section|v}}===
{{sa-verb|tr=ákarat|कृ|||aorist}}
# {{inflection of|sa|कृ||aorist}}: [[làm]].
#: {{syn|sa|अकार्षीत्|tr=ákārṣīt|अकर्|tr2=ákar}}
===={{section|forms}}====
{{sa-conj|aor|ákarat}}
id7vi0y5nj1lw9zvr105llm6ymi6n2s
अगमत्
0
403544
2567150
2373777
2026-09-28T09:39:28Z
Hiyuune
50834
/* Động từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567150
wikitext
text/x-wiki
=={{langname|sa}}==
==={{section|pron}}===
{{sa-IPA|a=1}}
==={{section|v}}===
{{sa-verb|गम्|tr=ágamat|||aorist}}
# {{inflection of|sa|गम्||thì quá khứ bất định hoặc chưa hoàn thành}}
===={{section|forms}}====
{{sa-conj|aor|ágamat}}
cqmjtgs2y0r42dqqxuwtotwwk4tjhcp
अखानीत्
0
403596
2567143
2374348
2026-09-28T09:36:13Z
Hiyuune
50834
2567143
wikitext
text/x-wiki
=={{langname|sa}}==
==={{ĐM|alt}}===
* {{alt|sa|अखनीत्}}
==={{ĐM|alternative script}}===
{{sa-alt}}
==={{ĐM|pron}}===
{{sa-IPA|a=1}}
==={{ĐM|v}}===
{{sa-verb|खन्|||aorist}}
# {{infl of|sa|खन्||aorist}}
===={{ĐM|forms}}====
{{sa-conj|aor}}
8pvo2vnoxm8krpj0edsjcq7qafzd1qx
अखनीत्
0
403597
2567142
2374353
2026-09-28T09:35:44Z
Hiyuune
50834
/* Động từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567142
wikitext
text/x-wiki
=={{langname|sa}}==
==={{section|alt}}===
* {{alt|sa|अखानीत्}}
==={{section|alternative script}}===
{{sa-alt}}
==={{section|pron}}===
{{sa-IPA|a=1}}
==={{section|v}}===
{{sa-verb|खन्|||aorist}}
# {{infl of|sa|खन्||aorist}}
===={{section|forms}}====
{{sa-conj|aor}}
s1wjjid30yuk74cc9dstwjjrs1bun69
मक्षिक
0
403613
2567141
2374440
2026-09-28T09:35:36Z
Hiyuune
50834
/* Danh từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567141
wikitext
text/x-wiki
{{also|मक्षिका}}
=={{langname|sa}}==
==={{ĐM|alternative script}}===
{{sa-alt}}
==={{ĐM|etym}}===
Từ {{mention|sa|मक्षि}}.
==={{ĐM|noun}}===
{{sa-noun|m}}
# [[ong|Ong]].
# Con [[ruồi]].
===={{ĐM|decl}}====
{{sa-decl-noun-m}}
{{C|sa|Lớp Côn trùng}}
42rmmkjse7dokfuh12sa6dbmqk3ipdt
अनौत्सीत्
0
403617
2567139
2374598
2026-09-28T09:34:48Z
Hiyuune
50834
/* {{section|v}} */
2567139
wikitext
text/x-wiki
=={{langname|sa}}==
==={{section|alternative form}}===
{{sa-alt}}
==={{section|pron}}===
{{sa-IPA|a=1}}
==={{section|v}}===
{{sa-verb|tr=ánautsīt|नुद्|||aorist}}
# {{inflection of|sa|नुद्||aorist}}
===={{section|forms}}====
{{sa-conj|aor|ánautsīt|ánutta}}
do2fd9xpfvxjwpczd3l48egz57sxijr
इध्यते
0
403705
2567138
2376118
2026-09-28T09:34:30Z
Hiyuune
50834
/* Động từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567138
wikitext
text/x-wiki
=={{langname|sa}}==
==={{section|alternative script}}===
{{sa-alt}}
==={{section|etym}}===
{{sa-root|इध्|यते॑}}.
==={{section|pron}}===
* {{sa-IPA|a=2}}
==={{section|v}}===
{{sa-verb|इध्|tr=idhyáte|||passive}}<ref>{{R:sa:MW|167|col=3|head=इन्ध्}}</ref><ref>{{R:sa:Kulikov:2012|pages=55-58}}</ref>
# [[thắp|Thắp]] [[sáng]].
===={{section|forms}}====
{{sa-conj|pres|idhyáte}}
==={{section|ref}}===
{{reflist}}
qywl1qk9ygtuzk0lluyekwist5bggt6
अरंहीत्
0
403708
2567137
2376197
2026-09-28T09:34:00Z
Hiyuune
50834
/* Động từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567137
wikitext
text/x-wiki
=={{langname|sa}}==
==={{section|alternative script}}===
{{sa-alt}}
==={{section|pron}}===
{{sa-IPA|a=1}}
==={{section|v}}===
{{sa-verb|रंह्|||aorist|tr=áraṃhīt}}
# {{infl of|sa|रंह्||aorist}}
===={{section|forms}}====
{{sa-conj|aor|áraṃhīt}}
muaudo4ik3c180zrnkfzn9gq1wgynhm
Bản mẫu:ga-decl-m1-nopl
10
406479
2567119
2432200
2026-09-28T05:22:29Z
Hiyuune
50834
2567119
wikitext
text/x-wiki
{{#invoke:checkparams|error}}<!-- Validate template parameters
-->{{ga-decl-noun-nopl|declclass=1
| {{l-self|ga|{{{1}}}{{{2}}}}}
| a {{l-self|ga|{{ga-lenition|{{{1}}}}}{{{3}}}}}
| {{l-self|ga|{{{1}}}{{{3}}}}}
| {{l-self|ga|{{{1}}}{{{2}}}}}
| an {{l-self|ga|{{#switch:{{{1|}}}
| a | á | e | é | i | í | o | ó | u | ú = t-{{{1}}}
| A | Á | E | É | I | Í | O | Ó | U | Ú = t{{{1}}}
| {{{1}}}
}}{{{2}}}}}
| an {{l-self|ga|{{ga-lenition an|{{{1}}}}}{{{3}}}}}
| leis an {{l-self|ga|{{ga-eclipsis an|{{{1}}}}}{{{2}}}}}<br />don {{l-self|ga|{{#switch:{{{1|}}}
| b | B | c | C | f | F | g | G | m | M | p | P = {{{1}}}h
| {{{1}}}
}}{{{2}}}}}
}}<includeonly>{{cln|ga|Danh từ biến cách loại 1}}</includeonly><noinclude>{{documentation}}</noinclude>
bhmqejzqhvu7h610vsvjocotr7rp11t
විද්වාංස්
0
407436
2567140
2565770
2026-09-28T09:35:16Z
Hiyuune
50834
/* Tiếng Phạn */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567140
wikitext
text/x-wiki
=={{langname|sa}}==
==={{section|alt}}===
{{sa-alt|Deva=विद्वांस्}}
==={{section|ptcp}}===
{{sa-part|विद्|perf|act}}
# {{sa-sc}}
==={{section|n}}===
{{sa-noun|m}}
# {{sa-sc}}
#* {{quote-web
|sa
|url=https://www.unicode.org/L2/L2018/18060-sinhala-candrabindu.pdf
|format=PDF
|title=Proposal to encode the CANDRABINDU for Sinhala
|page = 3
|passage = '''විද්වාඁල්ලි'''ඛති
|transliteration = '''vidvāl̐'''likhati
|author1=Srinidhi A
|author2=Sridatta A
|date=2018-02-05
|work=Unicode Document Register L2018/18060
}}
oub94x8sg7aztj9p16rcc3mb42ruydq
dàhǎi
0
409941
2567093
2480005
2026-09-28T01:21:30Z
Hiyuune
50834
2567093
wikitext
text/x-wiki
{{also|dahai}}
=={{langname|cmn}}==
==={{ĐM|rom}}===
{{cmn-pinyin}}
# {{cmn-pinyin of|大海}}
0utgiml1om5528gr7cwgasmo9wgtonw
ñuwe
0
418344
2566952
2026-09-27T12:18:42Z
TheHighFighter2
42988
Trang mới: “{{also|nuwe}} =={{langname|txb}}== ==={{ĐM|etym}}=== Từ {{inh|txb|ine-toc-pro|*ñäwe}}, từ {{inh|txb|ine-pro|*néwos}}. So sánh với {{cog|xto|ñu}}. ==={{ĐM|adj}}=== {{head|txb|adjective}} # [[mới|Mới]]. ===={{ĐM|ref}}==== * {{R:txb:Adams 2013|head=ñuwe|pages=287-288}}”
2566952
wikitext
text/x-wiki
{{also|nuwe}}
=={{langname|txb}}==
==={{ĐM|etym}}===
Từ {{inh|txb|ine-toc-pro|*ñäwe}}, từ {{inh|txb|ine-pro|*néwos}}. So sánh với {{cog|xto|ñu}}.
==={{ĐM|adj}}===
{{head|txb|adjective}}
# [[mới|Mới]].
===={{ĐM|ref}}====
* {{R:txb:Adams 2013|head=ñuwe|pages=287-288}}
q1dk5lep3fp4rt36i3tv8srtzb5dcjt
Thể loại:Tính từ tiếng Tochari B
14
418345
2566953
2026-09-27T12:19:25Z
TheHighFighter2
42988
Trang mới: “{{auto cat}}”
2566953
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:Số từ tiếng Tochari B
14
418346
2566954
2026-09-27T12:20:08Z
TheHighFighter2
42988
Trang mới: “{{auto cat}}”
2566954
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:Phó từ tiếng Tochari B
14
418347
2566955
2026-09-27T12:20:50Z
TheHighFighter2
42988
Trang mới: “{{auto cat}}”
2566955
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:Số từ tiếng Tochari A
14
418348
2566956
2026-09-27T12:21:19Z
TheHighFighter2
42988
Trang mới: “{{auto cat}}”
2566956
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:Tính từ tiếng Tochari A
14
418349
2566957
2026-09-27T12:21:41Z
TheHighFighter2
42988
Trang mới: “{{auto cat}}”
2566957
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
ཥ
0
418350
2566959
2026-09-27T13:15:23Z
Lcsnes
40261
Trang mới: “{{minitoc}} {{-Tibt-}} {{character info}} ==={{ĐM|letter}}=== {{head|mul|Chữ cái|tr=ṣa}} #Chữ Tạng '''ṣa'''. =={{langname|bft}}== ==={{ĐM|pron}}=== *{{IPA4|bft|/ʂɑ/|[ʂɑ]}} ==={{ĐM|letter}}=== {{head|bft|Chữ cái}} #{{n-g|Chữ cái thứ 35 trong bảng chữ cái Tạng tiếng Balti.}} ==={{ĐM|see}}=== *{{letters|lang=bft|sc=Tibt|qual=Chữ Tạng tiếng Balti|ཀ|ཫ|ཁ|ཁ༹|ག|ག༹|ང|ཅ|ཆ|ཇ|ཉ|ཏ|ཐ|ད|ན|ཊ|ཋ|ཌ|ཬ|ཙ|…”
2566959
wikitext
text/x-wiki
{{minitoc}}
{{-Tibt-}}
{{character info}}
==={{ĐM|letter}}===
{{head|mul|Chữ cái|tr=ṣa}}
#Chữ Tạng '''ṣa'''.
=={{langname|bft}}==
==={{ĐM|pron}}===
*{{IPA4|bft|/ʂɑ/|[ʂɑ]}}
==={{ĐM|letter}}===
{{head|bft|Chữ cái}}
#{{n-g|Chữ cái thứ 35 trong bảng chữ cái Tạng tiếng Balti.}}
==={{ĐM|see}}===
*{{letters|lang=bft|sc=Tibt|qual=Chữ Tạng tiếng Balti|ཀ|ཫ|ཁ|ཁ༹|ག|ག༹|ང|ཅ|ཆ|ཇ|ཉ|ཏ|ཐ|ད|ན|ཊ|ཋ|ཌ|ཬ|ཙ|ཚ|ཛ|ཝ|པ|ཕ|བ|མ|ཞ|ཟ|འ|ཡ|ཬ/ར|ལ|ཤ|ཥ|ས|ཧ|ཨ}}
==={{ĐM|ref}}===
*{{Chú thích sách|author=Richard Keith Sprigg|title=Balti-English English-Balti Dictionary|year=2002|publisher=Psychology Press|isbn=9780700713806|page=100|pageurl=https://books.google.com/books?id=o3Pjk-4ZshMC&pg=PA100}}
=={{langname|dka}}==
==={{ĐM|pron}}===
*{{IPA4|dka|[ʂa]}}
==={{ĐM|letter}}===
{{head|dka|Chữ cái}}
#Chữ Tạng biểu thị phụ âm '''{{IPAchar|/ʂ/}}''' trong tiếng Dakpa.
=={{langname|bfu}}==
==={{ĐM|pron}}===
*{{IPA4|bfu|[ʂə]}}
==={{ĐM|letter}}===
{{head|bfu|Chữ cái}}
#{{n-g|Chữ Tạng thể hiện phụ âm '''{{IPAchar|/ʂa/}}''' trong tiếng Gahri}}
#:{{ux|bfu|'''ཥ'''ངས་|[[ngựa]]|inline=1}}
=={{langname|ght}}==
==={{ĐM|pron}}===
*{{IPA4|ght|[s]}}
==={{ĐM|letter}}===
{{head|ght|Chữ cái}}
#Chữ Tạng biểu thị phụ âm '''{{IPAchar|/s/}}''' trong tiếng Kuke.
=={{langname|nmm}}==
==={{ĐM|pron}}===
*{{IPA4|nmm|[ʂa]}}
==={{ĐM|letter}}===
{{head|nmm|Chữ cái}}
#Chữ Tạng biểu thị phụ âm '''{{IPAchar|/ʂ/}}''' trong tiếng Manangba.
#:{{ux|nmm|'''ཥུ'''ང|[[dày]]|inline=1}}
=={{langname|sa}}==
==={{ĐM|alt sc}}===
{{sa-alt}}
==={{ĐM|pron}}===
{{san-IPA|ष}}
==={{ĐM|letter}}===
{{head|sa|Chữ cái|tr=ṣa}}
#Chữ Tạng biểu thị phụ âm '''{{IPAchar|/ʂ/}}''' trong tiếng Phạn.
#:{{ux|sa|ཨིཕི'''ཥི'''ཎཿ|[[s:Ê-phê-sô|Ê-phê-sô]]|inline=1}}
===={{ĐM|see}}====
*{{list helper 2|title=Chữ Tạng tiếng Phạn|list={{l-self|sa|ཀ|tr=-}}, {{l-self|sa|ཁ|tr=-}}, {{l-self|sa|ག|tr=-}}, {{l-self|sa|གྷ|tr=-}}, {{l-self|sa|ང|tr=-}}, {{l-self|sa|ཅ|tr=-}}, {{l-self|sa|ཆ|tr=-}}, {{l-self|sa|ཇ|tr=-}}, {{l-self|sa|ཛྷ|tr=-}}, {{l-self|sa|ཉ|tr=-}}, {{l-self|sa|ཊ|tr=-}}, {{l-self|sa|ཏ|tr=-}}, {{l-self|sa|ཐ|tr=-}}, {{l-self|sa|ད|tr=-}}, {{l-self|sa|ན|tr=-}}, {{l-self|sa|པ|tr=-}}, {{l-self|sa|ཕ|tr=-}}, {{l-self|sa|བ|tr=-}}, {{l-self|sa|མ|tr=-}}, {{l-self|sa|ཙ|tr=-}}, {{l-self|sa|ཚ|tr=-}}, {{l-self|sa|ཛ|tr=-}}, {{l-self|sa|ཝ|tr=-}}, {{l-self|sa|ཞ|tr=-}}, {{l-self|sa|ཟ|tr=-}}, {{l-self|sa|འ|tr=-}}, {{l-self|sa|ཡ|tr=-}}, {{l-self|sa|ར|tr=-}}, {{l-self|sa|ལ|tr=-}}, {{l-self|sa|ཤ|tr=-}}, {{l-self|sa|ས|tr=-}}, {{l-self|sa|ཧ|tr=-}}, {{l-self|sa|ཨ|tr=-}}}}
==={{ĐM|ref}}===
*{{Chú thích web|sa|author=Sanskrit Bible|entryurl=https://www.bible.com/bible/2112/EPH.1.SANTI|entry=ཨིཕིཥིཎཿ 1|work=སཏྱཝེདཿ།|year=2024}}
=={{langname|taj}}==
==={{ĐM|pron}}===
*{{IPA4|taj|[s]}}
==={{ĐM|letter}}===
{{head|taj|Chữ cái|tr=ṣa}}
#{{n-g|Chữ cái thứ 46 trong bảng chữ cái Tạng tiếng Tamang Đông.}}
#:{{quote|taj|གན་གན་ལ་བ་ག་དེ། སྱན་དོ་ད་དོ'''ཥ'''་ལ་བ་ག་དེ། ནའི་བ་སེམ་ཨན་ཆར་གེ་ལ་བ་ག་དེ། གྷྲེན་དོ་སི་ཏཱམ་ལ་བ་ག་དེ་དེན་ཧྲང་ལ་ཕཱཡི་ད་ལ་ལ་གི་རི་ལུ་སི་ལ་ཏཱམ་པཱང་བ་ག་དེ་ཅ་ཅུག་དེན་ཧིན་ན།|Ấy đều là những kẻ hay lằm-bằm, hay phàn-nàn luôn về số-phận mình, làm theo sự ham-muốn mình, miệng đầy những lời kiêu-căng, và vì lợi mà nịnh-hót người ta. ([[s:Giu-đe#1:16|Giu-đe 1:16]])}}
===={{ĐM|see}}====
*{{list helper 2|title=Chữ Tạng tiếng Tamang Đông|list={{l-self|taj|ཀ|tr=-}}, {{l-self|taj|ཁ|tr=-}}, {{l-self|taj|ག|tr=-}}, {{l-self|taj|ང|tr=-}}, {{l-self|taj|ང་།|tr=-}}, {{l-self|taj|ཅ|tr=-}}, {{l-self|taj|ཆ|tr=-}}, {{l-self|taj|ཇ|tr=-}}, {{l-self|taj|ཉ།|tr=-}}, {{l-self|taj|ཏ|tr=-}}, {{l-self|taj|ཐ|tr=-}}, {{l-self|taj|ད|tr=-}}, {{l-self|taj|ན|tr=-}}, {{l-self|taj|ན།|tr=-}}, {{l-self|taj|པ|tr=-}}, {{l-self|taj|ཕ|tr=-}}, {{l-self|taj|བ|tr=-}}, {{l-self|taj|མ|tr=-}}, {{l-self|taj|མ།|tr=-}}, {{l-self|taj|ཙ|tr=-}}, {{l-self|taj|ཚ|tr=-}}, {{l-self|taj|ཛ|tr=-}}, {{l-self|taj|ཝ|tr=-}}, {{l-self|taj|ཝ།|tr=-}}, {{l-self|taj|ཞ|tr=-}}, {{l-self|taj|ཟ|tr=-}}, {{l-self|taj|འ|tr=-}}, {{l-self|taj|ཡ|tr=-}}, {{l-self|taj|ཡ།|tr=-}}, {{l-self|taj|ར|tr=-}}, {{l-self|taj|ཧྲ|tr=-}}, {{l-self|taj|ལ|tr=-}}, {{l-self|taj|ལྷ|tr=-}}, {{l-self|taj|ཤ|tr=-}}, {{l-self|taj|ས|tr=-}}, {{l-self|taj|ས།|tr=-}}, {{l-self|taj|ཧ|tr=-}}, {{l-self|taj|ཊ|tr=-}}, {{l-self|taj|ཋ|tr=-}}, {{l-self|taj|ཌ|tr=-}}, {{l-self|taj|གྷ|tr=-}}, {{l-self|taj|ཛྷ|tr=-}}, {{l-self|taj|ཌྷ|tr=-}}, {{l-self|taj|དྷ|tr=-}}, {{l-self|taj|བྷ|tr=-}}, {{l-self|taj|ཥ|tr=-}}, {{l-self|taj|ཀྵ།|tr=-}}, {{l-self|taj|ཛྙ།|tr=-}}, {{l-self|taj|ཨ}}}}
==={{ĐM|ref}}===
*{{Chú thích web|taj|author=Eastern Tamang Language Team|entryurl=https://www.bible.com/bible/1177/JUD.1.TAJNT|entry=यहूदा 1|year=2011|publisher=Wycliffe Bible Translators, Inc.|work=परमेश्वरला बचन छार कबुल}}
=={{langname|tge}}==
==={{ĐM|pron}}===
*{{IPA4|tge|[s]}}
==={{ĐM|letter}}===
{{head|tge|Chữ cái|tr=ṣa}}
#{{n-g|Chữ cái thứ 46 trong bảng chữ cái Tạng tiếng Tamang Gorkha Đông.}}
===={{ĐM|see}}====
*{{list helper 2|title=Chữ Tạng tiếng Tamang Gorkha Đông|list={{l-self|tge|ཀ|tr=-}}, {{l-self|tge|ཁ|tr=-}}, {{l-self|tge|ག|tr=-}}, {{l-self|tge|ང|tr=-}}, {{l-self|tge|ང་།|tr=-}}, {{l-self|tge|ཅ|tr=-}}, {{l-self|tge|ཆ|tr=-}}, {{l-self|tge|ཇ|tr=-}}, {{l-self|tge|ཉ།|tr=-}}, {{l-self|tge|ཏ|tr=-}}, {{l-self|tge|ཐ|tr=-}}, {{l-self|tge|ད|tr=-}}, {{l-self|tge|ན|tr=-}}, {{l-self|tge|ན།|tr=-}}, {{l-self|tge|པ|tr=-}}, {{l-self|tge|ཕ|tr=-}}, {{l-self|tge|བ|tr=-}}, {{l-self|tge|མ|tr=-}}, {{l-self|tge|མ།|tr=-}}, {{l-self|tge|ཙ|tr=-}}, {{l-self|tge|ཚ|tr=-}}, {{l-self|tge|ཛ|tr=-}}, {{l-self|tge|ཝ|tr=-}}, {{l-self|tge|ཝ།|tr=-}}, {{l-self|tge|ཞ|tr=-}}, {{l-self|tge|ཟ|tr=-}}, {{l-self|tge|འ|tr=-}}, {{l-self|tge|ཡ|tr=-}}, {{l-self|tge|ཡ།|tr=-}}, {{l-self|tge|ར|tr=-}}, {{l-self|tge|ཧྲ|tr=-}}, {{l-self|tge|ལ|tr=-}}, {{l-self|tge|ལྷ|tr=-}}, {{l-self|tge|ཤ|tr=-}}, {{l-self|tge|ས|tr=-}}, {{l-self|tge|ས།|tr=-}}, {{l-self|tge|ཧ|tr=-}}, {{l-self|tge|ཊ|tr=-}}, {{l-self|tge|ཋ|tr=-}}, {{l-self|tge|ཌ|tr=-}}, {{l-self|tge|གྷ|tr=-}}, {{l-self|tge|ཛྷ|tr=-}}, {{l-self|tge|ཌྷ|tr=-}}, {{l-self|tge|དྷ|tr=-}}, {{l-self|tge|བྷ|tr=-}}, {{l-self|tge|ཥ|tr=-}}, {{l-self|tge|ཀྵ།|tr=-}}, {{l-self|tge|ཛྙ།|tr=-}}, {{l-self|tge|ཨ}}}}
=={{langname|tdg}}==
==={{ĐM|pron}}===
*{{IPA4|tdg|[s]}}
==={{ĐM|letter}}===
{{head|tdg|Chữ cái|tr=ṣa}}
#{{n-g|Chữ cái thứ 46 trong bảng chữ cái Tạng tiếng Tamang Tây.}}
===={{ĐM|see}}====
*{{list helper 2|title=Chữ Tạng tiếng Tamang Tây|list={{l-self|tdg|ཀ|tr=-}}, {{l-self|tdg|ཁ|tr=-}}, {{l-self|tdg|ག|tr=-}}, {{l-self|tdg|ང|tr=-}}, {{l-self|tdg|ང་།|tr=-}}, {{l-self|tdg|ཅ|tr=-}}, {{l-self|tdg|ཆ|tr=-}}, {{l-self|tdg|ཇ|tr=-}}, {{l-self|tdg|ཉ།|tr=-}}, {{l-self|tdg|ཏ|tr=-}}, {{l-self|tdg|ཐ|tr=-}}, {{l-self|tdg|ད|tr=-}}, {{l-self|tdg|ན|tr=-}}, {{l-self|tdg|ན།|tr=-}}, {{l-self|tdg|པ|tr=-}}, {{l-self|tdg|ཕ|tr=-}}, {{l-self|tdg|བ|tr=-}}, {{l-self|tdg|མ|tr=-}}, {{l-self|tdg|མ།|tr=-}}, {{l-self|tdg|ཙ|tr=-}}, {{l-self|tdg|ཚ|tr=-}}, {{l-self|tdg|ཛ|tr=-}}, {{l-self|tdg|ཝ|tr=-}}, {{l-self|tdg|ཝ།|tr=-}}, {{l-self|tdg|ཞ|tr=-}}, {{l-self|tdg|ཟ|tr=-}}, {{l-self|tdg|འ|tr=-}}, {{l-self|tdg|ཡ|tr=-}}, {{l-self|tdg|ཡ།|tr=-}}, {{l-self|tdg|ར|tr=-}}, {{l-self|tdg|ཧྲ|tr=-}}, {{l-self|tdg|ལ|tr=-}}, {{l-self|tdg|ལྷ|tr=-}}, {{l-self|tdg|ཤ|tr=-}}, {{l-self|tdg|ས|tr=-}}, {{l-self|tdg|ས།|tr=-}}, {{l-self|tdg|ཧ|tr=-}}, {{l-self|tdg|ཊ|tr=-}}, {{l-self|tdg|ཋ|tr=-}}, {{l-self|tdg|ཌ|tr=-}}, {{l-self|tdg|གྷ|tr=-}}, {{l-self|tdg|ཛྷ|tr=-}}, {{l-self|tdg|ཌྷ|tr=-}}, {{l-self|tdg|དྷ|tr=-}}, {{l-self|tdg|བྷ|tr=-}}, {{l-self|tdg|ཥ|tr=-}}, {{l-self|tdg|ཀྵ།|tr=-}}, {{l-self|tdg|ཛྙ།|tr=-}}, {{l-self|tdg|ཨ}}}}
==={{ĐM|ref}}===
*{{Chú thích web|author=Mother Tongue Center Nepal|entryurl=https://www.webonary.org/wtamang/browse/browse-vernacular-nepali/?key=tdg&letter=%E0%A4%B8&lang=en|entry=स|year=2017|publisher=SIL International®|work=Western Tamang Dictionary}}
[[Thể loại:Khối ký tự Tibetan|65]]
d3ys161emh5bii6mg5stg7c6a5vd6ad
Thể loại:tuw-kkl:Thành viên nam trong gia đình
14
418351
2566963
2026-09-27T14:02:23Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566963
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Trang phục
14
418352
2566964
2026-09-27T14:02:24Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566964
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Thành viên gia đình
14
418353
2566965
2026-09-27T14:02:37Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566965
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Thành viên nữ trong gia đình
14
418354
2566968
2026-09-27T14:03:16Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566968
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Đức hạnh
14
418355
2566977
2026-09-27T14:06:00Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566977
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Vũ khí
14
418356
2566978
2026-09-27T14:06:02Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566978
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Luân lý học
14
418357
2566979
2026-09-27T14:06:10Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566979
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Danh sách chủ đề thuộc nhóm loại hình
14
418358
2566980
2026-09-27T14:06:18Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566980
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Dụng cụ
14
418359
2566981
2026-09-27T14:06:20Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566981
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Săn bắn
14
418360
2566982
2026-09-27T14:06:21Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566982
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Quân sự
14
418361
2566983
2026-09-27T14:06:23Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566983
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Triết học
14
418362
2566984
2026-09-27T14:06:28Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566984
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Hoạt động của con người
14
418363
2566985
2026-09-27T14:06:34Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566985
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Công nghệ
14
418364
2566986
2026-09-27T14:06:39Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566986
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Hành vi con người
14
418365
2566987
2026-09-27T14:06:47Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566987
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Nguyên tố hóa học
14
418366
2566990
2026-09-27T14:07:34Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566990
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Kim loại
14
418367
2566991
2026-09-27T14:07:35Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566991
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Vật chất
14
418368
2566993
2026-09-27T14:07:52Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566993
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Luyện kim
14
418369
2566994
2026-09-27T14:07:54Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566994
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Họ Mèo
14
418370
2566995
2026-09-27T14:07:58Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566995
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Hóa học
14
418371
2566996
2026-09-27T14:08:02Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566996
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Khoa học
14
418372
2566997
2026-09-27T14:08:10Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2566997
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Thời gian
14
418373
2567001
2026-09-27T14:09:07Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2567001
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Âm nhạc
14
418374
2567004
2026-09-27T14:09:41Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2567004
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Âm thanh
14
418375
2567005
2026-09-27T14:09:49Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2567005
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Nghệ thuật
14
418376
2567006
2026-09-27T14:09:51Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2567006
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:tuw-kkl:Năng lượng
14
418377
2567007
2026-09-27T14:09:57Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2567007
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
tem phiếu
0
418378
2567008
2026-09-27T14:10:24Z
Waitforbabyglobe
61372
([[Mediawiki:Gadget-start.js|Trang mới]]) +vi:noun:# ([[lịch sử]]) [[giấy|Giấy]] do [[nhà nước]] hoặc [[cơ quan]] có [[thẩm quyền]] [[cấp]] để [[mua]] một [[lượng]] [[hàng hóa]] [[nhất định]] theo [[định mức]], thường trong [[thời kỳ]] [[bao cấp]].
2567008
wikitext
text/x-wiki
=={{langname|vi}}==
==={{ĐM|pron}}===
{{vi-pron}}
==={{ĐM|noun}}===
{{vi-noun}}
# ([[lịch sử]]) [[giấy|Giấy]] do [[nhà nước]] hoặc [[cơ quan]] có [[thẩm quyền]] [[cấp]] để [[mua]] một [[lượng]] [[hàng hóa]] [[nhất định]] theo [[định mức]], thường trong [[thời kỳ]] [[bao cấp]].
===={{ĐM|trans}}====
{{trans-top}}
* {{langname|en}}: {{t|en|ration coupons}}
{{trans-bottom}}
{{mẫu}}
k5s14p7bnpw6jrsadfrd29hcu6tz2by
itadakimanmosu
0
418379
2567009
2026-09-27T14:10:56Z
WhoAlone
40420
Trang mới: “=={{langname|ja}}== ==={{ĐM|rom}}=== {{ja-romaji}} # {{ja-romanization of|いただきマンモス}}”
2567009
wikitext
text/x-wiki
=={{langname|ja}}==
==={{ĐM|rom}}===
{{ja-romaji}}
# {{ja-romanization of|いただきマンモス}}
jcv8w4wgp1wkoh9ln89gwcbxt46vvzx
Thành viên:Waitforbabyglobe
2
418380
2567012
2026-09-27T14:35:49Z
Waitforbabyglobe
61372
Trang mới: “ chả có j trong đây”
2567012
wikitext
text/x-wiki
chả có j trong đây
cbwv0zluw05qx4k7nalholuw7bdy7kr
ໂຕະ
0
418381
2567013
2026-09-27T14:50:10Z
Kelly zhrm
58416
Trang mới: “=={{langname|lo}}== ==={{ĐM|alt}}=== * {{alter|lo|ໂຕ໊ະ}} ==={{ĐM|etym}}=== So sánh với {{cog|km|តុ|tr=tok}}, {{cog|th|โต๊ะ}}. ==={{ĐM|pron}}=== {{lo-pron}} ==={{ĐM|n}}=== {{lo-noun|ໜ່ວຍ}} # [[bàn|Bàn]]. {{C|lo|Vật dụng nội thất}}”
2567013
wikitext
text/x-wiki
=={{langname|lo}}==
==={{ĐM|alt}}===
* {{alter|lo|ໂຕ໊ະ}}
==={{ĐM|etym}}===
So sánh với {{cog|km|តុ|tr=tok}}, {{cog|th|โต๊ะ}}.
==={{ĐM|pron}}===
{{lo-pron}}
==={{ĐM|n}}===
{{lo-noun|ໜ່ວຍ}}
# [[bàn|Bàn]].
{{C|lo|Vật dụng nội thất}}
dv9gf12avq6zebclan6m7s7cdqkcldn
đì đoành
0
418382
2567020
2026-09-27T16:26:02Z
Hiyuune
50834
Trang mới: “=={{langname|vi}}== ==={{section|pron}}=== {{vi-pron}} ==={{section|adj}}=== {{vi-adj}} # Từ [[mô phỏng]] những tiếng nổ to, không liên tiếp [[dồn dập]], nhưng đanh và [[vang đội]]. #: {{ux|vi|Tiếng đại bác chốc chốc lại '''đì đoành'''.}} ==={{section|ref}}=== * {{R:vi:Hoàng Phê 2021|page=395}}”
2567020
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|adj}}===
{{vi-adj}}
# Từ [[mô phỏng]] những tiếng nổ to, không liên tiếp [[dồn dập]], nhưng đanh và [[vang đội]].
#: {{ux|vi|Tiếng đại bác chốc chốc lại '''đì đoành'''.}}
==={{section|ref}}===
* {{R:vi:Hoàng Phê 2021|page=395}}
27k5cazn96sez2t36vza7d3irda30es
2567021
2567020
2026-09-27T16:26:57Z
Hiyuune
50834
/* Tính từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567021
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|adj}}===
{{vi-adj}}
# Từ [[mô phỏng]] những tiếng nổ to, không liên tiếp [[dồn dập]], nhưng đanh và [[vang dội]].
#: {{ux|vi|Tiếng đại bác chốc chốc lại '''đì đoành'''.}}
==={{section|ref}}===
* {{R:vi:Hoàng Phê 2021|page=395}}
p1d0ry0ro4a6xy1ezh8q3t75jr5j3ox
Thể loại:hmd:Nguồn ánh sáng
14
418383
2567028
2026-09-27T16:30:23Z
Hiyuune
50834
Trang mới: “{{auto cat}}”
2567028
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:Nguồn ánh sáng
14
418384
2567029
2026-09-27T16:30:45Z
Hiyuune
50834
Trang mới: “{{auto cat}}”
2567029
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
посадити
0
418385
2567032
2026-09-27T16:33:28Z
Hiyuune
50834
+ sh (động từ)
2567032
wikitext
text/x-wiki
=={{langname|sh}}==
==={{section|etym}}===
Từ {{prefix|sh|по|садити}}.
==={{section|pron}}===
* {{IPA|sh|/posǎːditi/}}
* {{hyphenation|sh|по|са|ди|ти}}
==={{section|v}}===
{{sh-verb|поса́дити|pf}}
# {{lb|sh|transitive}} [[trồng|Trồng]].
===={{section|forms}}====
{{sh-conj|sc=Cyrl
|p.va=поса́дӣвши
|pr.1s=посадим
|pr.2s=посадиш
|pr.3s=посади
|pr.1p=посадимо
|pr.2p=посадите
|pr.3p=посаде
|f1.hr=посадит
|f1.stem=посади
|a.1s=посадих
|a.2s=посади
|a.3s=посади
|a.1p=посадисмо
|a.2p=посадисте
|a.3p=посадише
|impt.2s=посади
|impt.1p=посадимо
|impt.2p=посадите
|app.ms=посадио
|app.fs=посадила
|app.ns=посадило
|app.mp=посадили
|app.fp=посадиле
|app.np=посадила
|ppp.ms=посађен
|ppp.fs=посађена
|ppp.ns=посађено
|ppp.mp=посађени
|ppp.fp=посађене
|ppp.np=посађена
}}
===={{section|rel}}====
* {{l|sh|посађи́вати|g=impf}}
qu7fbbb3372e9iqfofdo9ctijldgxks
magtanim
0
418386
2567033
2026-09-27T16:35:58Z
Hiyuune
50834
+ tl
2567033
wikitext
text/x-wiki
=={{langname|tl}}==
==={{section|etym}}===
{{ety|tl|:af|mag-|tanim|text=+|tree=1}}
==={{section|pron}}===
{{tl-pr|magtaním}}
==={{section|v}}===
{{tl-verb|b=+|magtaním|nagtanim|nagtatanim|magtatanim|type=actor II}}
# [[trồng|Trồng]].
# [[chôn|Chôn]]; [[mai táng]].
#: {{syn|tl|maglibing}}
# {{ellipsis of|tl|magtanim ng galit}}
===={{section|infl}}====
{{tl-infl-mag|t|a|nim}}
===={{section|drv}}====
{{col|tl|magtanim ng galit|magtanim ng sama ng loob}}
===={{section|rel}}====
{{col|tl|itanim|tamnan|pananim|pagtatanim}}
hgn5i7s3l54tnmccn5s5mvs0cwl0ud8
maglibing
0
418387
2567034
2026-09-27T16:37:07Z
Hiyuune
50834
+ tl
2567034
wikitext
text/x-wiki
=={{langname|tl}}==
==={{section|etym}}===
{{ety|tl|:af|mag-|libing|text=+|tree=1}}
==={{section|pron}}===
{{tl-pr|maglibíng}}
==={{section|v}}===
{{tl-verb|maglibíng|naglibing|naglilibing|maglilibing|b=+}}
# [[chôn|Chôn]]; [[mai táng]].
===={{section|infl}}====
{{tl-infl-mag|l|i|bing}}
gqsfo1l5wgw4j9se34e0g8brfyx9buv
begraven
0
418388
2567035
2026-09-27T16:39:45Z
Hiyuune
50834
Trang mới: “=={{langname|nl}}== ==={{section|pron}}=== * {{IPA|nl|/bəˈɣraːvə(n)/}} * {{audio|nl|Nl-begraven.ogg}} * {{hyphenation|nl|be|gra|ven}} * {{rhymes|nl|aːvən|s=3}} ==={{section|etym}} 1=== Từ {{inh|nl|dum|begrāven}}, từ {{inh|nl|odt|bigravan}}, từ {{der|nl|gem-pro|*bigrabaną}}. Tương đương với {{prefix|nl|be|graven}}. ===={{section|v}}==== {{nl-verb}} # {{lb|nl|transitive}} [[chôn|Chôn]]; [[mai táng]]. ====={{section|forms}}===== {{nl-conj-st|cla…”
2567035
wikitext
text/x-wiki
=={{langname|nl}}==
==={{section|pron}}===
* {{IPA|nl|/bəˈɣraːvə(n)/}}
* {{audio|nl|Nl-begraven.ogg}}
* {{hyphenation|nl|be|gra|ven}}
* {{rhymes|nl|aːvən|s=3}}
==={{section|etym}} 1===
Từ {{inh|nl|dum|begrāven}}, từ {{inh|nl|odt|bigravan}}, từ {{der|nl|gem-pro|*bigrabaną}}. Tương đương với {{prefix|nl|be|graven}}.
===={{section|v}}====
{{nl-verb}}
# {{lb|nl|transitive}} [[chôn|Chôn]]; [[mai táng]].
====={{section|forms}}=====
{{nl-conj-st|class=6|pref=be|graaf|groef|graven|grave|groeve}}
====={{section|drv}}=====
* {{l|nl|begraafplaats}}
* {{l|nl|begrafenis}}
====={{section|desc}}=====
* {{desc|af|begrawe|begraaf}}
* {{desc|brc|bugrafu}}
* {{desc|gmw-jdt|bexrâve}}
* {{desc|dcr|begraaf|begraev|graav|graav na}}
==={{section|etym}} 2===
{{nonlemma}}
===={{section|ptcp}}====
{{nl-past-ptc}}
# {{past participle of|nl|begraven}}
====={{section|decl}}=====
{{nl-decl-past-ptc}}
5qlykk7dlwd7k5rtilsgw2hudm0qxdb
planten
0
418389
2567036
2026-09-27T16:47:29Z
Hiyuune
50834
Trang mới: “=={{langname|en}}== ==={{section|n}}=== {{en-noun}} # {{obsolete spelling of|en|plantain}} =={{langname|enm}}== ==={{section|n}}=== {{head|enm|Danh từ|var=1}} # {{alt form|enm|planteyne}} =={{langname|ast}}== ==={{section|v}}=== {{head|ast|Biến thể hình thái động từ}} # {{inflection of|ast|plantar||ind//sub|pres|ở|3|p}} =={{langname|ca}}== ==={{section|v}}=== {{head|ca|Biến thể hình thái động từ}} # {{ca-verb form of|plantar}} =={{la…”
2567036
wikitext
text/x-wiki
=={{langname|en}}==
==={{section|n}}===
{{en-noun}}
# {{obsolete spelling of|en|plantain}}
=={{langname|enm}}==
==={{section|n}}===
{{head|enm|Danh từ|var=1}}
# {{alt form|enm|planteyne}}
=={{langname|ast}}==
==={{section|v}}===
{{head|ast|Biến thể hình thái động từ}}
# {{inflection of|ast|plantar||ind//sub|pres|ở|3|p}}
=={{langname|ca}}==
==={{section|v}}===
{{head|ca|Biến thể hình thái động từ}}
# {{ca-verb form of|plantar}}
=={{langname|nl}}==
==={{section|pron}}===
* {{IPA|nl|/ˈplɑntə(n)/}}
* {{audio|nl|nl-planten.ogg}}
* {{rhyme|nl|ɑntən|s=2}}
* {{hyphenation|nl|plan|ten}}
==={{section|etym}} 1===
Từ {{inh|nl|dum|planten}}, từ {{inh|nl|odt|planton}}, từ {{der|nl|fro|planter}}, từ {{der|nl|la|plantō}}.
===={{section|v}}====
{{nl-verb}}
# [[trồng|Trồng]].
====={{section|forms}}=====
{{nl-conj-wk|plant}}
====={{section|drv}}=====
{{col|nl
|planter
|plantgoed
|plantstok
|aanplanten
|beplanten
|neerplanten
|verplanten
}}
====={{section|desc}}=====
* {{desc|af|plant}}
* {{desc|brc|plandi}}
* {{desc|dcr|plan|plant}}
==={{section|etym}} 2===
{{nonlemma}}
===={{section|n}}====
{{head|nl|Biến thể hình thái danh từ}}
# {{plural of|nl|plant}}
=={{langname|dum}}==
==={{section|etym}}===
Từ {{inh|dum|odt|planton}}, từ {{der|dum|fro|planter}}, từ {{der|dum|la|plantō}}.
==={{section|v}}===
{{dum-verb}}
# [[trồng|Trồng]].
===={{section|infl}}====
{{rfinfl|dum|động từ}}{{cln|dum|Động từ yếu}}
===={{section|desc}}====
* {{desc|nl|planten}}
* {{desc|li|plantje}}
==={{section|further}}===
* {{R:VMNW|ID90782}}
* {{R:MNW|42967}}
=={{langname|nb}}==
==={{section|alt}}===
* {{alt|nb|planta}}
==={{section|n}}===
{{head|nb|Biến thể hình thái danh từ|g=m|g2=f}}
# {{inflection of|nb|plante||def|ở|m|s}}
=={{langname|nn}}==
==={{section|alt}}===
* {{alt|nn|planta}}
==={{section|n}}===
{{head|nn|Biến thể hình thái danh từ|g=m|g2=f}}
# {{inflection of|nn|plante||def|ở|m|s}}
=={{langname|es}}==
==={{section|pron}}===
{{es-pr}}
==={{section|v}}===
{{head|es|Biến thể hình thái động từ}}
# {{es-verb form of|plantar}}
=={{langname|fy}}==
==={{section|n}}===
{{head|fy|Biến thể hình thái danh từ}}
# {{plural of|fy|plant}}
=={{langname|da}}==
==={{section|n}}===
{{head|da|Biến thể hình thái danh từ|g=c}}
# {{infl of|da|plante||def|s}}
=={{langname|de}}==
==={{section|pron}}===
* {{audio|de|De-planten.ogg|a=Berlin}}
==={{section|v}}===
{{head|de|Biến thể hình thái động từ}}
# {{verb form of|de|planen||pret|ở|1//3|p|;|sub|loại II|ở|1//3|p}}
b0ev035pom8idimhaxww69a2kitu7p2
plantayn
0
418390
2567037
2026-09-27T16:48:26Z
Hiyuune
50834
Trang mới: “=={{langname|enm}}== ==={{section|n}}=== {{head|enm|Danh từ|var=1}} # {{alt form|enm|planteyne}}”
2567037
wikitext
text/x-wiki
=={{langname|enm}}==
==={{section|n}}===
{{head|enm|Danh từ|var=1}}
# {{alt form|enm|planteyne}}
iabmnrr1dblogdmtjt96tp8wmomj5j2
plantayne
0
418391
2567038
2026-09-27T16:48:53Z
Hiyuune
50834
Trang mới: “=={{langname|enm}}== ==={{section|n}}=== {{head|enm|Danh từ|var=1}} # {{alt form|enm|planteyne}}”
2567038
wikitext
text/x-wiki
=={{langname|enm}}==
==={{section|n}}===
{{head|enm|Danh từ|var=1}}
# {{alt form|enm|planteyne}}
iabmnrr1dblogdmtjt96tp8wmomj5j2
planteyn
0
418392
2567039
2026-09-27T16:49:49Z
Hiyuune
50834
Trang mới: “=={{langname|enm}}== ==={{section|n}}=== {{head|enm|Danh từ|var=1}} # {{alt form|enm|planteyne}}”
2567039
wikitext
text/x-wiki
=={{langname|enm}}==
==={{section|n}}===
{{head|enm|Danh từ|var=1}}
# {{alt form|enm|planteyne}}
iabmnrr1dblogdmtjt96tp8wmomj5j2
planti
0
418393
2567040
2026-09-27T16:53:16Z
Hiyuune
50834
Trang mới: “{{also|plantí|plänti}} =={{langname|ca}}== ==={{section|v}}=== {{head|ca|Biến thể hình thái động từ}} # {{ca-verb form of|plantar}} =={{langname|fo}}== ==={{section|pron}}=== * {{IPA|fo|[ˈplan̥tɪ]}} * {{rhymes|fo|an̥tɪ}} * {{homophones|fo|plantið}} ==={{section|v}}=== {{head|fo|Biến thể hình thái động từ}} # {{inflection of|fo|planta||ind|pres|ở|1|s}} =={{langname|io}}== ==={{section|n}}=== {{head|io|Biến thể hình thái danh t…”
2567040
wikitext
text/x-wiki
{{also|plantí|plänti}}
=={{langname|ca}}==
==={{section|v}}===
{{head|ca|Biến thể hình thái động từ}}
# {{ca-verb form of|plantar}}
=={{langname|fo}}==
==={{section|pron}}===
* {{IPA|fo|[ˈplan̥tɪ]}}
* {{rhymes|fo|an̥tɪ}}
* {{homophones|fo|plantið}}
==={{section|v}}===
{{head|fo|Biến thể hình thái động từ}}
# {{inflection of|fo|planta||ind|pres|ở|1|s}}
=={{langname|io}}==
==={{section|n}}===
{{head|io|Biến thể hình thái danh từ}}
# {{plural of|io|planto}}
=={{langname|eo}}==
==={{section|etym}}===
{{ety|eo|:af|planto<t:trồng>|-i|text=+|tree=1}}
==={{section|pron}}===
{{eo-pr|a=LL-Q143 (epo)-Lepticed7-planti.wav}}
==={{section|v}}===
{{eo-head}}
# {{lb|eo|transitive}} [[trồng|Trồng]].
===={{section|forms}}====
{{eo-conj}}
===={{section|syn}}====
* {{l|eo|priplanti}}
==={{section|further}}===
* {{R:eo:PIV 2020}}
* {{R:eo:ReVo}}
glc4w21ypzzs74eo48fp4aew0rom7ds
priplanti
0
418394
2567041
2026-09-27T16:56:26Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|etym}}=== {{ety|eo|:af|pri-|planti|text=+|tree=1}} ==={{section|pron}}=== {{eo-pr|h=pri‧planti}} ==={{section|v}}=== {{eo-head}} # [[trồng|Trồng]]. ===={{section|forms}}==== {{eo-conj}} ==={{section|further}}=== * {{R:eo:PIV 2020}}”
2567041
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|etym}}===
{{ety|eo|:af|pri-|planti|text=+|tree=1}}
==={{section|pron}}===
{{eo-pr|h=pri‧planti}}
==={{section|v}}===
{{eo-head}}
# [[trồng|Trồng]].
===={{section|forms}}====
{{eo-conj}}
==={{section|further}}===
* {{R:eo:PIV 2020}}
ncj9mkcph5jlv1vpviq5eqjiskhw45z
priplantas
0
418395
2567042
2026-09-28T00:37:12Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|pron}}=== {{eo-pr}} ==={{section|v}}=== {{eo-head}} # {{eo-form of|priplant|as}}”
2567042
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|pron}}===
{{eo-pr}}
==={{section|v}}===
{{eo-head}}
# {{eo-form of|priplant|as}}
iy1veylf5o8krwexctjlpp85rm2e118
priplantis
0
418396
2567043
2026-09-28T00:37:54Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|pron}}=== {{eo-pr}} ==={{section|v}}=== {{eo-head}} # {{eo-form of|priplant|is}}”
2567043
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|pron}}===
{{eo-pr}}
==={{section|v}}===
{{eo-head}}
# {{eo-form of|priplant|is}}
2e6t83kaoc0ix541scz6iy4ko5cldw8
priplantos
0
418397
2567044
2026-09-28T00:38:43Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|pron}}=== {{eo-pr}} ==={{section|v}}=== {{eo-head}} # {{eo-form of|priplant|os}}”
2567044
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|pron}}===
{{eo-pr}}
==={{section|v}}===
{{eo-head}}
# {{eo-form of|priplant|os}}
e6ddi28zql6h8p3xt66wi883r5tmz8g
priplantanta
0
418398
2567045
2026-09-28T00:39:19Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adj}}=== {{eo-part}} # {{eo-form of|priplant|anta}}”
2567045
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adj}}===
{{eo-part}}
# {{eo-form of|priplant|anta}}
goxbm86zpsfehzbclyi0xjgrkbmk1sb
priplantantan
0
418399
2567046
2026-09-28T00:39:52Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adj}}=== {{eo-part-form}} # {{eo-form of|priplant|antan}}”
2567046
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adj}}===
{{eo-part-form}}
# {{eo-form of|priplant|antan}}
kvkoaa4l0g3c7y99ps22cu6gzt5v1gv
priplantantaj
0
418400
2567047
2026-09-28T00:40:24Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adj}}=== {{eo-part-form}} # {{eo-form of|priplant|antaj}}”
2567047
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adj}}===
{{eo-part-form}}
# {{eo-form of|priplant|antaj}}
9gibk5u11o35fau18cog4r9i1c0xy9z
priplantantajn
0
418401
2567048
2026-09-28T00:40:58Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adj}}=== {{eo-part-form}} # {{eo-form of|priplant|antajn}}”
2567048
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adj}}===
{{eo-part-form}}
# {{eo-form of|priplant|antajn}}
ccxoibnhzffughw4dmvp94wzsslkc43
priplantinta
0
418402
2567049
2026-09-28T00:42:09Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adj}}=== {{eo-part}} # {{eo-form of|priplant|inta}}”
2567049
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adj}}===
{{eo-part}}
# {{eo-form of|priplant|inta}}
sunmj1eyzrw7wu6glceps16go3n5x9f
priplantintan
0
418403
2567050
2026-09-28T00:42:32Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adj}}=== {{eo-part-form}} # {{eo-form of|priplant|intan}}”
2567050
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adj}}===
{{eo-part-form}}
# {{eo-form of|priplant|intan}}
ombtrbwupicw6ydz69r70ekrln4pexi
priplantintaj
0
418404
2567051
2026-09-28T00:43:13Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adj}}=== {{eo-part-form}} # {{eo-form of|priplant|intaj}}”
2567051
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adj}}===
{{eo-part-form}}
# {{eo-form of|priplant|intaj}}
g3n2suyqg7p2nzvixalqus0abbijlj8
priplantintajn
0
418405
2567052
2026-09-28T00:43:41Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adj}}=== {{eo-part-form}} # {{eo-form of|priplant|intajn}}”
2567052
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adj}}===
{{eo-part-form}}
# {{eo-form of|priplant|intajn}}
6f46q7h43ov06pfafigioi5tykqg08v
priplantu
0
418406
2567053
2026-09-28T00:44:47Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|pron}}=== {{eo-pr}} ==={{section|v}}=== {{eo-head}} # {{eo-form of|priplant|u}}”
2567053
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|pron}}===
{{eo-pr}}
==={{section|v}}===
{{eo-head}}
# {{eo-form of|priplant|u}}
osj37m4lcks5hyepxp2au00x01lflnz
priplantus
0
418407
2567054
2026-09-28T00:45:16Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|pron}}=== {{eo-pr}} ==={{section|v}}=== {{eo-head}} # {{eo-form of|priplant|us}}”
2567054
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|pron}}===
{{eo-pr}}
==={{section|v}}===
{{eo-head}}
# {{eo-form of|priplant|us}}
5wetgl1hzlp7r3il94731oa24guy68c
priplantote
0
418408
2567055
2026-09-28T00:45:46Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adv}}=== {{eo-part}} # {{eo-form of|priplant|ote}}”
2567055
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adv}}===
{{eo-part}}
# {{eo-form of|priplant|ote}}
t9qtozjmkbgadwexo46dyblpzn9gxqd
priplantite
0
418409
2567056
2026-09-28T00:46:34Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adv}}=== {{eo-part}} # {{eo-form of|priplant|ite}}”
2567056
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adv}}===
{{eo-part}}
# {{eo-form of|priplant|ite}}
pykkrob8e31iydgkwis16t80jx6as3w
priplantate
0
418410
2567057
2026-09-28T00:47:23Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adv}}=== {{eo-part}} # {{eo-form of|priplant|ate}}”
2567057
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adv}}===
{{eo-part}}
# {{eo-form of|priplant|ate}}
jsa8gza3ixg2qekf60x3ak2czilzmqy
priplantonta
0
418411
2567058
2026-09-28T00:48:17Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adj}}=== {{eo-part}} # {{eo-form of|priplant|onta}}”
2567058
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adj}}===
{{eo-part}}
# {{eo-form of|priplant|onta}}
gb853nnnstq41xpgpo7qaj1fyd04ow7
priplantontan
0
418412
2567059
2026-09-28T00:48:40Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adv}}=== {{eo-part-form}} # {{eo-form of|priplant|ontan}}”
2567059
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adv}}===
{{eo-part-form}}
# {{eo-form of|priplant|ontan}}
pbo40ccgaw94ridhbsyd3drdtz76w3b
priplantontaj
0
418413
2567060
2026-09-28T00:49:08Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adv}}=== {{eo-part-form}} # {{eo-form of|priplant|ontaj}}”
2567060
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adv}}===
{{eo-part-form}}
# {{eo-form of|priplant|ontaj}}
edbwl539oj39zqijdjwm2qt74ts139x
priplantontajn
0
418414
2567061
2026-09-28T00:50:01Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adj}}=== {{eo-part-form}} # {{eo-form of|priplant|ontajn}}”
2567061
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adj}}===
{{eo-part-form}}
# {{eo-form of|priplant|ontajn}}
b644ugn34rfeeql9x74zlfyhy68qje7
priplantata
0
418415
2567062
2026-09-28T00:50:45Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adj}}=== {{eo-part}} # {{eo-form of|priplant|ata}}”
2567062
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adj}}===
{{eo-part}}
# {{eo-form of|priplant|ata}}
o5eug1gq3izve6hlrw1kg9n1rklnhjx
priplantatan
0
418416
2567063
2026-09-28T00:51:05Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adv}}=== {{eo-part-form}} # {{eo-form of|priplant|atan}}”
2567063
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adv}}===
{{eo-part-form}}
# {{eo-form of|priplant|atan}}
5pxo16rr7saso0uhc5i4ujdhqvgxnu7
priplantataj
0
418417
2567064
2026-09-28T00:51:29Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adv}}=== {{eo-part-form}} # {{eo-form of|priplant|ataj}}”
2567064
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adv}}===
{{eo-part-form}}
# {{eo-form of|priplant|ataj}}
8ei5nglrcj6c98910c7upn9fzf8ewj7
2567066
2567064
2026-09-28T00:52:30Z
Hiyuune
50834
/* Phó từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567066
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adj}}===
{{eo-part-form}}
# {{eo-form of|priplant|ataj}}
30gbrzktjrl8vnocob6gzpiidk1iqbe
priplantatajn
0
418418
2567065
2026-09-28T00:52:20Z
Hiyuune
50834
Trang mới: “=={{langname|eo}}== ==={{section|adj}}=== {{eo-part-form}} # {{eo-form of|priplant|atajn}}”
2567065
wikitext
text/x-wiki
=={{langname|eo}}==
==={{section|adj}}===
{{eo-part-form}}
# {{eo-form of|priplant|atajn}}
8vr8a1up3kywzqqqasb3itt95bukbv6
Thể loại:tyz:Nguồn ánh sáng
14
418419
2567068
2026-09-28T01:08:32Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2567068
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:mlc:Thiên thể
14
418420
2567070
2026-09-28T01:11:32Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2567070
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:mlc:Nguồn ánh sáng
14
418421
2567071
2026-09-28T01:11:46Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2567071
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:mlc:Không gian
14
418422
2567072
2026-09-28T01:11:47Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2567072
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:mlc:Ánh sáng
14
418423
2567073
2026-09-28T01:12:01Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2567073
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:mlc:Năng lượng
14
418424
2567074
2026-09-28T01:12:12Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2567074
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
やじゅう
0
418425
2567075
2026-09-28T01:16:42Z
WhoAlone
40420
Trang mới: “=={{langname|ja}}== {{ja-see|野獣}}”
2567075
wikitext
text/x-wiki
=={{langname|ja}}==
{{ja-see|野獣}}
17eirh60nhuyc26fd4zdpy8o4nf8e3f
やじう
0
418426
2567076
2026-09-28T01:16:45Z
WhoAlone
40420
Trang mới: “=={{langname|ja}}== {{ja-see|野獣}}”
2567076
wikitext
text/x-wiki
=={{langname|ja}}==
{{ja-see|野獣}}
17eirh60nhuyc26fd4zdpy8o4nf8e3f
yajū
0
418427
2567077
2026-09-28T01:17:06Z
WhoAlone
40420
Trang mới: “=={{langname|ja}}== ==={{ĐM|rom}}=== {{ja-romaji}} # {{ja-romanization of|やじゅう}}”
2567077
wikitext
text/x-wiki
=={{langname|ja}}==
==={{ĐM|rom}}===
{{ja-romaji}}
# {{ja-romanization of|やじゅう}}
keg7if059ixsij4qbqrxe6hxt72utn9
おうへん
0
418428
2567078
2026-09-28T01:17:49Z
WhoAlone
40420
Trang mới: “=={{langname|ja}}== {{ja-see|応変}}”
2567078
wikitext
text/x-wiki
=={{langname|ja}}==
{{ja-see|応変}}
0u152aed9izogxdd29e0f7shzt9kbvc
begraaf
0
418429
2567079
2026-09-28T01:17:50Z
Hiyuune
50834
+ nl
2567079
wikitext
text/x-wiki
=={{langname|nl}}==
==={{section|pron}}===
* {{audio|nl|Nl-begraaf.ogg}}
==={{section|v}}===
{{head|nl|Biến thể hình thái động từ}}
# {{infl of|nl|begraven||bare-verb}}
qy77m3r8x1aq1ppeglhqhc39m71ezcp
ōhen
0
418430
2567080
2026-09-28T01:18:08Z
WhoAlone
40420
Trang mới: “{{also|ohen|oheň}} =={{langname|ja}}== ==={{ĐM|rom}}=== {{ja-romaji}} # {{ja-romanization of|おうへん}}”
2567080
wikitext
text/x-wiki
{{also|ohen|oheň}}
=={{langname|ja}}==
==={{ĐM|rom}}===
{{ja-romaji}}
# {{ja-romanization of|おうへん}}
rx2wf0qwcl3sns8ujl22cwi31gpzs1v
じんみんへい
0
418431
2567084
2026-09-28T01:18:56Z
WhoAlone
40420
Trang mới: “=={{langname|ja}}== {{ja-see|人民幣}}”
2567084
wikitext
text/x-wiki
=={{langname|ja}}==
{{ja-see|人民幣}}
3byccdpfz9tq66owljhfrviict5mc8s
jinminhei
0
418432
2567085
2026-09-28T01:19:45Z
WhoAlone
40420
Trang mới: “=={{langname|ja}}== ==={{ĐM|rom}}=== {{ja-rom}} # {{ja-rom of|じんみんへい}}”
2567085
wikitext
text/x-wiki
=={{langname|ja}}==
==={{ĐM|rom}}===
{{ja-rom}}
# {{ja-rom of|じんみんへい}}
67w1v937dps3rlhhzsxmfy3s2zt8ny5
인민폐
0
418433
2567090
2026-09-28T01:20:46Z
WhoAlone
40420
Trang mới: “=={{langname|ko}}== ==={{ĐM|etym}}=== {{ko-etym-sino|人民幣}}. {{doublet|ko|런민비}}. ==={{ĐM|pron}}=== {{ko-IPA|cap=y}} ===Proper noun=== {{ko-proper noun|hanja=人民幣}} # [[nhân dân tệ]]. {{c|ko|Đơn vị tiền tệ}}”
2567090
wikitext
text/x-wiki
=={{langname|ko}}==
==={{ĐM|etym}}===
{{ko-etym-sino|人民幣}}. {{doublet|ko|런민비}}.
==={{ĐM|pron}}===
{{ko-IPA|cap=y}}
===Proper noun===
{{ko-proper noun|hanja=人民幣}}
# [[nhân dân tệ]].
{{c|ko|Đơn vị tiền tệ}}
4cg2wdflivwimxc0x8t2koxeha55l4o
2567091
2567090
2026-09-28T01:21:02Z
WhoAlone
40420
2567091
wikitext
text/x-wiki
=={{langname|ko}}==
==={{ĐM|etym}}===
{{ko-etym-sino|人民幣}}. {{doublet|ko|런민비}}.
==={{ĐM|pron}}===
{{ko-IPA|cap=y}}
==={{ĐM|pr-noun}}===
{{ko-proper noun|hanja=人民幣}}
# [[nhân dân tệ]].
{{c|ko|Đơn vị tiền tệ}}
pdwwmgvyxs6pmx97fgujfztoq5ohwet
hanu
0
418434
2567095
2026-09-28T01:24:52Z
Hiyuune
50834
+ lv, cs
2567095
wikitext
text/x-wiki
=={{langname|lv}}==
==={{section|n}}===
{{head|lv|Biến thể hình thái danh từ|g=m}}
# {{infl of|lv|hans||acc//ins|s|;|gen|p}}
=={{langname|cs}}==
==={{section|pron}}===
* {{cs-IPA}}
==={{section|n}}===
{{head|cs|Biến thể hình thái danh từ|g=f}}
# {{infl of|cs|hana||acc|s}}
qpukiuku7njvhqic3l7wuuhl966n57c
タマリンド
0
418435
2567096
2026-09-28T01:26:41Z
Hiyuune
50834
+ ja
2567096
wikitext
text/x-wiki
=={{langname|ja}}==
{{swp|ja:}}
==={{section|etym}}===
{{internationalism|ja}}; xem {{cog|en|tamarind}}.
==={{section|n}}===
{{ja-noun}}
# [[quả|Quả]] [[me]].
==={{section|see}}===
* {{ja-r|タマリン}}
{{C|ja|Trái cây|sort=たまりんど}}
qyuo6r6c28hr02offrknjpdcv51xcys
monaraigh
0
418436
2567097
2026-09-28T01:31:05Z
Hiyuune
50834
+ ga
2567097
wikitext
text/x-wiki
=={{langname|ga}}==
==={{section|etym}}===
{{surf|ga|monar|-igh}}.
==={{section|v}}===
{{ga-verb|pres=monaraíonn|fut=monaróidh|vn=monarú|pp=monaraithe}}
# [[sản xuất|Sản xuất]]; [[chế tạo]].
===={{section|forms}}====
{{ga-conj-2|m|onar|q=broad|stem=onaraigh}}
==={{section|mut}}===
{{ga-mut}}
==={{section|further}}===
* {{R:ga:Ó Dónaill}}
* {{R:ga:EID}}
* {{R:ga:NEID}}
* {{R:ga:FNG}}
es472bj0ywlajodmkz9ggumsymbc4mh
緜羊
0
418437
2567098
2026-09-28T01:32:03Z
WhoAlone
40420
Trang mới: “=={{langname|zh}}== {{ja-see|綿羊}}”
2567098
wikitext
text/x-wiki
=={{langname|zh}}==
{{ja-see|綿羊}}
ooyawu3g72jgncghr6m0t15zu5ppptw
めんよう
0
418438
2567099
2026-09-28T01:33:04Z
WhoAlone
40420
Trang mới: “=={{langname|ja}}== {{ja-see|綿羊}}”
2567099
wikitext
text/x-wiki
=={{langname|ja}}==
{{ja-see|綿羊}}
odqxdmf0t7ghobktc0f7wmlr48ccs9f
めんやう
0
418439
2567100
2026-09-28T01:33:06Z
WhoAlone
40420
Trang mới: “=={{langname|ja}}== {{ja-see|綿羊}}”
2567100
wikitext
text/x-wiki
=={{langname|ja}}==
{{ja-see|綿羊}}
odqxdmf0t7ghobktc0f7wmlr48ccs9f
kotivalmisteinen
0
418440
2567101
2026-09-28T01:34:13Z
Hiyuune
50834
+ fi
2567101
wikitext
text/x-wiki
=={{langname|fi}}==
==={{section|etym}}===
{{affix|fi|koti|valmistaa|-einen}}
==={{section|pron}}===
{{fi-p|koti-valmisteinen}}
==={{section|adj}}===
{{fi-adj}}
# [[cây nhà lá vườn|Cây nhà lá vườn]].
===={{section|decl}}====
{{fi-decl-nainen|pos=adj|kotivalmistei|a}}
==={{section|further}}===
* {{R:fi:KTSK|accessdate=2023-07-02}}
7a65j1y5th5etwrqjcb2qpvvizyp8vl
tamarindo
0
418441
2567102
2026-09-28T01:35:21Z
WhoAlone
40420
Trang mới: “=={{langname|ja}}== ==={{ĐM|rom}}=== {{ja-romaji}} # {{ja-romanization of|タマリンド}}”
2567102
wikitext
text/x-wiki
=={{langname|ja}}==
==={{ĐM|rom}}===
{{ja-romaji}}
# {{ja-romanization of|タマリンド}}
er6920q43qlou8f4wccf0h0trz1ovlf
タマリン
0
418442
2567103
2026-09-28T01:37:04Z
WhoAlone
40420
Trang mới: “=={{langname|ja}}== {{swp|ja:}} ==={{ĐM|etym}}=== {{bor+|ja|en|tamarin}}. ==={{ĐM|pron}}=== {{ja-pron|acc=1}} ==={{ĐM|noun}}=== {{ja-noun}} # [[khỉ vuốt]]. ==={{ĐM|see also}}=== * {{ja-r|ライオン タマリン}} * {{ja-r|タマリンド}} {{C|ja|Khỉ}}”
2567103
wikitext
text/x-wiki
=={{langname|ja}}==
{{swp|ja:}}
==={{ĐM|etym}}===
{{bor+|ja|en|tamarin}}.
==={{ĐM|pron}}===
{{ja-pron|acc=1}}
==={{ĐM|noun}}===
{{ja-noun}}
# [[khỉ vuốt]].
==={{ĐM|see also}}===
* {{ja-r|ライオン タマリン}}
* {{ja-r|タマリンド}}
{{C|ja|Khỉ}}
4hbopdekpnq2f5kpnj570z0tlgj81vp
Mô đun:workgroup ping
828
418443
2567104
2026-09-28T01:46:24Z
Hiyuune
50834
Trang mới: “local concat = table.concat local get_template_invocation_name = require("Module:template parser").getTemplateInvocationName local insert = table.insert local is_preview = require("Module:pages").is_preview local export = {} local m_data = mw.loadData('Module:workgroup ping/data') function export.ping(frame) local parent_frame = frame:getParent() local args = parent_frame.args local users, errors = {}, {} local function gather_users(myself) local had_user = { }…”
2567104
Scribunto
text/plain
local concat = table.concat
local get_template_invocation_name = require("Module:template parser").getTemplateInvocationName
local insert = table.insert
local is_preview = require("Module:pages").is_preview
local export = {}
local m_data = mw.loadData('Module:workgroup ping/data')
function export.ping(frame)
local parent_frame = frame:getParent()
local args = parent_frame.args
local users, errors = {}, {}
local function gather_users(myself)
local had_user = { }
if myself and not args.fix then
had_user[myself] = true
end
local empty = true
for _, wgid in ipairs(args) do
local _, user = wgid:match("^Thành viên:(.*)")
if user then
if not had_user[user] then
insert(users, user)
had_user[user] = true
end
else
local data = m_data[wgid]
if data then
if data[1] then
for i, user in ipairs(data) do
if not had_user[user] then
insert(users, user)
had_user[user] = true
end
end
else
insert(errors, ('%s=empty'):format(wgid))
end
else
insert(errors, ('%s=404'):format(wgid))
end
end
empty = false
end
if empty then
insert(errors, "nogroups")
end
end
local title = mw.title.getCurrentTitle()
local invocation = get_template_invocation_name(mw.title.new(parent_frame:getTitle()))
if mw.isSubsting() then
local output = { '{{', invocation }
local my_username = frame:callParserFunction("REVISIONUSER", title.fullText)
gather_users(my_username)
for _, wgid in ipairs(args) do
insert(output, '|' .. wgid)
end
for i, user in ipairs(users) do
insert(output, ('|u%u=%s'):format(i, user))
end
-- [[gerrit:159800]]
if #users > 50 then
insert(errors, "limit")
end
for i, err in ipairs(errors) do
insert(output, ('|e%u=%s'):format(i, err))
end
insert(output, '}}')
return concat(output)
end
if parent_frame:getTitle() == title.fullText then
return '<small>(thông báo đến [[Thành viên:Ví dụ|Ví dụ]]): </small>'
end
local output = { '<small>(thông báo đến [[Bản mẫu:workgroup ping|nhóm]]: ' }
local i
-- the |u#= and |e#= parameters are for internal use only.
i = 1
while args['e' .. i] do
insert(errors, args['e' .. i])
i = i + 1
end
i = 1
while args['u' .. i] do
insert(users, args['u' .. i])
i = i + 1
end
if (#users + #errors) == 0 then
if is_preview() then
local unfmted = {}
for _, item in ipairs(args) do
insert(unfmted, '|' .. item)
-- XXX: more detailed?
end
return '<strong class="error">Lỗi: <code>{{' .. invocation .. '}}</code> nên được [[mw:Manual:Substitution|thay thế]]! ' ..
'Vui lòng dùng <code>{{subst:' .. invocation .. concat(unfmted) .. '}}</code> để thay thế</strong>'
else
insert(output, "[[Thể loại:" .. invocation .. " chưa được thay thế]]")
insert(errors, "subst")
gather_users()
end
end
for i, user in ipairs(users) do
insert(output, ('%s[[Thành viên:%s|%s]]'):format(
(i == 1) and "" or ", ",
user, user
))
end
local function explain_error(e)
if e == "subst" then
return "bảng mấu không được thay thế; vui lòng thay thế qua |fix=1"
elseif e == "nogroups" then
return "không có nhóm được chỉ định"
else
local g, e = e:match("(.-)=(.*)")
if e == "404" then
return "nhóm '" .. g .. "' không có sẵn"
elseif e == "empty" then
return "nhóm '" .. g .. "' trống"
elseif e == "limit" then
return "thông báo vượt quá 50 người: chức năng thông báo sẽ không hoạt động"
end
end
return "lỗi không rõ nguyên nhân '" .. e .. "'"
end
if #errors > 0 then
if is_preview() then
insert(output, '; <strong class="error">lỗi: ')
for i, e in ipairs(errors) do
insert(output, ((i == 1) and "" or ", ") .. explain_error(e))
end
insert(output, '</strong>')
else
insert(output, '; <span style="border-bottom: 1px dotted var(--wikt-palette-deepred,red); color: var(--wikt-palette-red-9,red); font-weight: bold;" title="')
for i, e in ipairs(errors) do
insert(output, ((i == 1) and "" or ", ") .. explain_error(e))
end
insert(output, '">errors</span>')
end
end
insert(output, '): </small>')
return concat(output)
end
function export.show_list(frame)
local categories_list = {}
local categories_map = {}
local wg_codes, wg_aliases = {}, {}
for key, data in pairs(m_data) do
if type(data) == 'string' then
if not wg_aliases[data] then
wg_aliases[data] = {}
end
insert(wg_aliases[data], ("<code>%s</code>"):format(key))
else
local categ = data.category or ""
if not categories_map[categ] then
local newcat = { desc = categ, groups = {} }
insert(categories_list, newcat)
categories_map[categ] = newcat
end
categ = categories_map[categ]
wg_codes[data] = key
insert(categ.groups, data)
end
end
table.sort(categories_list, function (apple, orange)
return apple.desc < orange.desc
end)
local output = {
'{| class="wikitable" style="width: 90%;" \n|-\n! style="width: 8em;" | Lối tắt(s) \n! Tên nhóm \n! Thành viên'
}
for _, categ in pairs(categories_list) do
table.sort(categ.groups, function (apple, orange)
return apple.desc < orange.desc
end)
if categ.desc ~= "" then
insert(output, '|-\n! colspan="3" style="font-size: smaller; text-align: left;" | ' .. categ.desc)
end
for _, wgdata in pairs(categ.groups) do
local members = {}
local had_users, had_tfs = {}, {}
if type(wgdata) ~= 'table' then
return
end
for _, user in ipairs(wgdata) do
if not had_users[user] then
insert(members, ("[[Thành viên:%s|%s]]"):format(user, user))
had_users[user] = true
end
end
local wg_code = ("<code>%s</code>"):format(wg_codes[wgdata])
if wg_aliases[wg_codes[wgdata]] then
wg_code = ('%s<br/><small>(%s)</small>'):format(wg_code, concat(wg_aliases[wg_codes[wgdata]], ", "))
end
insert(output, ('|- id="%s" style="vertical-align: top;" \n|%s\n|%s\n|%s <small>(%u %s)</small>'):format(
wg_codes[wgdata], wg_code, wgdata.desc, concat(members, ", "), #members, ((#members == 1) and 'user' or 'users')
))
end
end
insert(output, "|}")
return concat(output, "\n")
end
return export
aajqy2zvsmjn9i5wv8hjpdnbqfx9ie6
Mô đun:workgroup ping/data
828
418444
2567105
2026-09-28T01:51:25Z
Hiyuune
50834
Trang mới: “local groups = {} local CAT_GENERAL = "Nhóm chung" local CAT_TOPICAL = "Nhóm theo chủ đề" groups["module"] = "Lua" groups["modules"] = "Lua" groups["lua"] = "Lua" groups["Lua"] = { desc = "Mã Lua", category = CAT_GENERAL, "Hiyuune", "Kateru Zakuro", "TheHighFighter2", } groups["temp"] = "bản mẫu" groups["templates"] = "bản mẫu" groups["bản mẫu"] = { desc = "bản mẫu", category = CAT_GENERAL, "Hiyuune", "Kateru Zakuro", "TheHighFighter2"…”
2567105
Scribunto
text/plain
local groups = {}
local CAT_GENERAL = "Nhóm chung"
local CAT_TOPICAL = "Nhóm theo chủ đề"
groups["module"] = "Lua"
groups["modules"] = "Lua"
groups["lua"] = "Lua"
groups["Lua"] = {
desc = "Mã Lua",
category = CAT_GENERAL,
"Hiyuune",
"Kateru Zakuro",
"TheHighFighter2",
}
groups["temp"] = "bản mẫu"
groups["templates"] = "bản mẫu"
groups["bản mẫu"] = {
desc = "bản mẫu",
category = CAT_GENERAL,
"Hiyuune",
"Kateru Zakuro",
"TheHighFighter2",
}
return groups
48jhytehr15vbhxoi77z1zf28552vcy
2567113
2567105
2026-09-28T05:07:27Z
Hiyuune
50834
2567113
Scribunto
text/plain
local groups = {}
local CAT_GENERAL = "Nhóm chung"
local CAT_TOPICAL = "Nhóm theo chủ đề"
groups["module"] = "Lua"
groups["modules"] = "Lua"
groups["lua"] = "Lua"
groups["Lua"] = {
desc = "Mã Lua",
category = CAT_GENERAL,
"Hiyuune",
"Kateru Zakuro",
"Mxn",
"TheHighFighter2",
}
groups["temp"] = "bản mẫu"
groups["templates"] = "bản mẫu"
groups["bản mẫu"] = {
desc = "bản mẫu",
category = CAT_GENERAL,
"Higashizakura",
"Hiyuune",
"Kateru Zakuro",
"TheHighFighter2",
}
groups["ety"] = "từ nguyên"
groups["etym"] = "từ nguyên"
groups["etyl"] = "từ nguyên"
groups["etymologies"] = "từ nguyên"
groups["etymology"] = "từ nguyên"
groups["từ nguyên"] = {
desc = "từ nguyên và từ tái tạo",
category = CAT_TOPICAL,
"Higashizakura",
"Hiyuune",
"WhoAlone",
"TheHighFighter2",
}
return groups
drqvz0lr1c6a7ts3dcq3vyarxhu5e6n
Bản mẫu:workgroup ping
10
418445
2567106
2026-09-28T01:52:42Z
Hiyuune
50834
Trang mới: “{{safesubst:<noinclude/>#invoke:workgroup ping|ping}}<noinclude>{{documentation}}</noinclude>”
2567106
wikitext
text/x-wiki
{{safesubst:<noinclude/>#invoke:workgroup ping|ping}}<noinclude>{{documentation}}</noinclude>
ib4h6arkzp1nefke7t2s4fwzq56y45q
Mô đun:zh/data/dial-syn/白糖
828
418446
2567107
2026-09-28T01:55:54Z
Hiyuune
50834
Trang mới: “local export = {} export.list = { ["title"] = "", ["meaning"] = "đường trắng; đường tinh luyện", ["note"] = "", ["Classical"] = { "" }, ["Formal"] = { "白糖", "白砂糖" }, ["Taxonomic"] = { "" }, ["Beijing"] = { "" }, ["Beijing-MY"] = { "" }, ["Beijing-HR"] = { "" }, ["Beijing-YQ"] = { "" }, ["Beijing-CP"] = { "" }, ["Beijing-MTG"] = { "" }, ["Beijing-FS"] = { "" }, ["Taiwan"] = { "" }, ["…”
2567107
Scribunto
text/plain
local export = {}
export.list = {
["title"] = "",
["meaning"] = "đường trắng; đường tinh luyện",
["note"] = "",
["Classical"] = { "" },
["Formal"] = { "白糖", "白砂糖" },
["Taxonomic"] = { "" },
["Beijing"] = { "" },
["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"] = { "" },
["Jingzhou-SS"] = { "" },
["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"] = { "" },
["Beijing-PG"] = { "" },
["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"] = { "" },
["Wendeng"] = { "" },
["Rongcheng"] = { "" },
["Qingdao"] = { "" },
["Chengyang"] = { "" },
["Jimo"] = { "" },
["Laixi"] = { "" },
["Pingdu"] = { "" },
["Jiaozhou"] = { "" },
["Jiaonan"] = { "" },
["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"] = { "" },
["Yanchi"] = { "" },
["Guyuan"] = { "" },
["Xiji"] = { "" },
["Longde"] = { "" },
["Jingyuan"] = { "" },
["Tianshui"] = { "" },
["Hezuo"] = { "" },
["Xining"] = { "白糖" },
["Menyuan"] = { "" },
["Yanqi"] = { "" },
["Dunhuang"] = { "" },
["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"] = { "白糖" },
["Lingwu"] = { "" },
["Najiahu"] = { "" },
["Wuzhong"] = { "" },
["Tongxin"] = { "" },
["Zhongwei"] = { "" },
["Bayanhot"] = { "" },
["Lanzhou"] = { "白糖" },
["Jiuquan"] = { "" },
["Shandan"] = { "" },
["Wuwei-GS"] = { "" },
["Wuwei-GS-ZY"] = { "" },
["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"] = { "" },
["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"] = { "" },
["Shuifu"] = { "" },
["Daguan"] = { "" },
["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"] = { "" },
["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"] = { "" },
["Jintan-XG"] = { "" },
["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"] = { "" },
["Langxi"] = { "" },
["Guangde"] = { "" },
["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"] = { "" },
["Jinhua-M-SDJ"] = { "" },
["Dianbai-Jun"] = { "" },
["Qinzhou-M"] = { "" },
["Pinghai-Jun"] = { "" },
["Ningguo-GK"] = { "" },
["Changle-QJ"] = { "" },
["Yanping"] = { "" },
["Wuping-ZS-Jun"] = { "" },
["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"] = { "" },
["Shangdang"] = { "" },
["Baochang"] = { "" },
["Linhe"] = { "" },
["Pingshun"] = { "" },
["Zhangzi"] = { "" },
["Qinxian"] = { "" },
["Jincheng"] = { "" },
["Lingchuan"] = { "" },
["Yangcheng"] = { "" },
["Gaoping"] = { "" },
["Jining"] = { "" },
["Liangcheng"] = { "" },
["Hohhot"] = { "" },
["Baotou"] = { "" },
["Dongsheng"] = { "" },
["Haibowan"] = { "" },
["Erenhot"] = { "" },
["Pingshan"] = { "" },
["Luquan"] = { "" },
["Zhangjiakou"] = { "" },
["Chongli"] = { "" },
["Handan"] = { "" },
["Linzhang"] = { "" },
["Anyang"] = { "" },
["Linzhou"] = { "" },
["Hebi"] = { "" },
["Xinxiang"] = { "" },
["Huojia"] = { "" },
["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-HS"] = { "" },
["Cangnan-JX"] = { "" },
["Cangnan-PC"] = { "" },
["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"] = { "" },
["Shangrao-ZF"] = { "" },
["Guangfeng"] = { "" },
["Yushan"] = { "" },
["Yanshan-JC"] = { "" },
["Hengfeng-GY"] = { "" },
["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"] = { "" },
["Xiangtan-CES"] = { "" },
["Miluo-CL"] = { "" },
["Xiangxiang"] = { "" },
["Xiangxiang-MQ"] = { "" },
["Loudi"] = { "白砂糖" },
["Shuangfeng"] = { "" },
["Xinhua"] = { "" },
["Lianyuan"] = { "" },
["Shaoyang"] = { "" },
["Lengshuitan"] = { "" },
["Zhuzhou"] = { "" },
["Longhui"] = { "" },
["Suining-X"] = { "" },
["Dongkou-HQ"] = { "" },
["Wugang"] = { "" },
["Hengyang"] = { "" },
["Hengyang County"] = { "" },
["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"] = { "" },
["Yushan-G"] = { "" },
["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"] = { "" },
["Dabu-XH"] = { "" },
["Dabu-TY"] = { "" },
["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"] = { "" },
["Shenzhen-HG"] = { "" },
["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"] = { "" },
["Lechang-MH"] = { "" },
["Xinfeng-MT"] = { "" },
["Xinfeng-DX"] = { "" },
["Xiaosanjiang"] = { "" },
["Liannan"] = { "" },
["Conghua-H"] = { "" },
["Jiexi"] = { "" },
["Jiexi-HZ"] = { "" },
["Luhe"] = { "" },
["Raoping-XF"] = { "" },
["Xiuzhuan"] = { "" },
["Pinghe-JF"] = { "" },
["Nanjing-ML"] = { "" },
["Nanjing-BL"] = { "" },
["Changting"] = { "" },
["Shanghang"] = { "" },
["Shanghang-GT"] = { "" },
["Yongding"] = { "" },
["Yongding-XY"] = { "" },
["Yongding-GB"] = { "" },
["Yongding-HK"] = { "" },
["Longyan-WA"] = { "" },
["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"] = { "" },
["Miaoli"] = { "" },
["Zaoqiao"] = { "" },
["Touwu"] = { "" },
["Nanzhuang"] = { "" },
["Shitan"] = { "" },
["Sanwan"] = { "" },
["Toufen"] = { "" },
["Gongguan"] = { "" },
["Taoyuan"] = { "" },
["Longtan"] = { "" },
["Zhuolan-SX"] = { "" },
["Guanxi"] = { "" },
["Changhua-PT"] = { "" },
["Liudui"] = { "" },
["Wuluo"] = { "" },
["Daluguan"] = { "" },
["Jiadong"] = { "" },
["Meinong"] = { "" },
["Shanlin"] = { "" },
["Hsinchu"] = { "" },
["Guanxi-DP"] = { "" },
["Guanxi-LQW"] = { "" },
["Xinwu-HL"] = { "" },
["Dongshi"] = { "" },
["Raoping"] = { "" },
["Guanxi-RP"] = { "" },
["Hukou-RP"] = { "" },
["Liujia-RP"] = { "" },
["Zhongli-ZB-RP"] = { "" },
["Zhongli-XN-RP"] = { "" },
["Zhongli-GL-RP"] = { "" },
["Pingzhen-NS-RP"] = { "" },
["Xinwu-TZ-RP"] = { "" },
["Guanyin-XP-RP"] = { "" },
["Zhuolan-RP"] = { "" },
["Yunlin"] = { "" },
["Daxi"] = { "" },
["Guoxing"] = { "" },
["Hong Kong-H"] = { "" },
["Tangkou"] = { "" },
["Sanjia"] = { "" },
["Sihe"] = { "" },
["Qianpai"] = { "" },
["Xindong"] = { "" },
["Shalang"] = { "" },
["Xin'an"] = { "" },
["Shijiao"] = { "" },
["Qingping"] = { "" },
["Xihe"] = { "" },
["Fumian-XS"] = { "" },
["Luchuan-LC"] = { "" },
["Luchuan-DQ"] = { "" },
["Luchuan-SH"] = { "" },
["Luchuan-WS"] = { "" },
["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"] = { "" },
["Guigang-H-WL"] = { "" },
["Guigang-H-QX"] = { "" },
["Guigang-H-BT"] = { "" },
["Guiping-H-JT"] = { "" },
["Guiping-H-DX"] = { "" },
["Pingnan-H-GA"] = { "" },
["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"] = { "" },
["Shexian-SY"] = { "" },
["Tunxi"] = { "" },
["Huizhou-HZ"] = { "" },
["Xiuning"] = { "" },
["Yixian"] = { "" },
["Qimen"] = { "" },
["Qimen-AL-Min"] = { "" },
["Wuyuan"] = { "" },
["Wuyuan-QK"] = { "" },
["Wuyuan-JW"] = { "" },
["Fuliang"] = { "" },
["Fuliang-EH"] = { "" },
["Dexing"] = { "" },
["Dexing-ZC"] = { "" },
["Jingde"] = { "" },
["Zhanda"] = { "" },
["Chun'an"] = { "" },
["Sui'an"] = { "" },
["Jiande"] = { "" },
["Shouchang"] = { "" },
["Guangzhou"] = { "白糖" },
["Hong Kong"] = { "白糖", "白砂糖" }, --砂糖?
["HK Weitou"] = { "" },
["Kam Tin"] = { "" },
["Shek Pik"] = { "" },
["Ting Kok"] = { "" },
["Tung Ping Chau"] = { "" },
["Sam Mun Tsai"] = { "" },
["Macau"] = { "" },
["Macau-Tanka"] = { "" },
["Guangzhou-XJ"] = { "" },
["Guangzhou-LX"] = { "" },
["Guangzhou-HP"] = { "" },
["Luogang"] = { "" },
["Guangzhou-LH"] = { "" },
["Guangzhou-MT"] = { "" },
["Guangzhou-JS"] = { "" },
["Guangzhou-XS"] = { "" },
["Guangzhou-SJ"] = { "" },
["Guangzhou-JC"] = { "" },
["Guangzhou-LG"] = { "" },
["Guangzhou-RH"] = { "" },
["Guangzhou-ZL"] = { "" },
["Guangzhou-ZLT"] = { "" },
["Guangzhou-JF"] = { "" },
["Panyu"] = { "" },
["Huadu"] = { "" },
["Conghua"] = { "" },
["Zengcheng"] = { "" },
["Zengcheng-XT"] = { "" },
["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"] = { "" },
["Zhongshan-TG"] = { "" },
["Zhuhai"] = { "" },
["Zhuhai-TJW"] = { "" },
["Doumen-T"] = { "" },
["Doumen-S"] = { "" },
["Jiangmen"] = { "" },
["Xinhui"] = { "" },
["Taishan"] = { "" },
["Taishan-GH"] = { "" },
["Kaiping"] = { "" },
["Enping"] = { "" },
["Heshan"] = { "" },
["Heshan-SP"] = { "" },
["Malan"] = { "" },
["Malan-BTQ"] = { "" },
["Malan-MHD"] = { "" },
["Malan-SZP"] = { "" },
["Malan-BLH"] = { "" },
["Dongguan"] = { "白糖" },
["Shenzhen-C-LH"] = { "" },
["Shenzhen-NT"] = { "" },
["Shenzhen-XX"] = { "" },
["Bao'an"] = { "" },
["Yantian"] = { "" },
["Dapeng"] = { "" },
["Shenzhen-PD"] = { "" },
["Pingshan-ZM"] = { "" },
["Ebu-ZM"] = { "" },
["Longmen"] = { "" },
["Qingyuan"] = { "" },
["Fogang"] = { "" },
["Yingde"] = { "" },
["Yangshan"] = { "" },
["Lianshan"] = { "" },
["Lianshan-YH"] = { "" },
["Lianzhou"] = { "" },
["Shaoguan"] = { "" },
["Qujiang-C"] = { "" },
["Renhua"] = { "" },
["Lechang"] = { "" },
["Gaoyao"] = { "" },
["Sihui"] = { "" },
["Guangning"] = { "" },
["Deqing"] = { "" },
["Huaiji"] = { "" },
["Huaiji-LC"] = { "" },
["Fengkai"] = { "" },
["Fengkai-JK"] = { "" },
["Fengkai-LD"] = { "" },
["Yunfu"] = { "" },
["Xinxing"] = { "" },
["Luoding"] = { "" },
["Luoding-SL"] = { "" },
["Yunan"] = { "" },
["Yangjiang"] = { "" },
["Yangdong"] = { "" },
["Yangdong-YS"] = { "" },
["Yangchun"] = { "" },
["Yangxi"] = { "" },
["Xinyi"] = { "" },
["Maoming"] = { "" },
["Maoming-YJ"] = { "" },
["Gaozhou"] = { "" },
["Huazhou"] = { "" },
["Huazhou-CQ"] = { "" },
["Zhanjiang"] = { "" },
["Lianjiang"] = { "" },
["Lianjiang-CB"] = { "" },
["Wuchuan"] = { "" },
["Wuchuan-ML"] = { "" },
["Nanning"] = { "" },
["Nanning-Tanka"] = { "" },
["Wuzhou"] = { "" },
["Wuzhou-LX"] = { "" },
["Cangwu-SQ"] = { "" },
["Cangwu-LB"] = { "" },
["Tengxian"] = { "" },
["Yulin"] = { "" },
["Rongxian"] = { "" },
["Hepu"] = { "" },
["Hepu-ST"] = { "" },
["Guiping"] = { "" },
["Guiping-JT"] = { "" },
["Guiping-JK"] = { "" },
["Guiping-MD"] = { "" },
["Guiping-ML"] = { "" },
["Pingnan-PN"] = { "" },
["Pingnan-DZ"] = { "" },
["Pingnan-GC"] = { "" },
["Mengshan"] = { "" },
["Mengshan-XX"] = { "" },
["Mengshan-CT"] = { "" },
["Guigang-GC"] = { "" },
["Guigang-NJ"] = { "" },
["Guigang-PD"] = { "" },
["Beiliu"] = { "" },
["Beiliu-TL"] = { "" },
["Beiliu-XC"] = { "" },
["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"] = { "" },
["Zhaoping"] = { "" },
["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"] = { "" },
["Wuxuan-ZC"] = { "" },
["Chongzuo-P"] = { "" },
["Chongzuo-P-XH"] = { "" },
["Fusui-P"] = { "" },
["Liucheng-P"] = { "" },
["Liucheng-P-GZ"] = { "" },
["Liucheng-P-DP"] = { "" },
["Rongshui"] = { "" },
["Yizhou-P-DS"] = { "" },
["Luocheng-P"] = { "" },
["Baise-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"] = { "" },
["Cieding"] = { "" },
["Xinwu-YX"] = { "" },
["Yilan"] = { "" },
["Luodong"] = { "" },
["Toucheng"] = { "" },
["Lukang"] = { "" },
["Yongjing-MN"] = { "" },
["Caotun"] = { "" },
["Taichung"] = { "" },
["Wuqi"] = { "" },
["Tainan"] = { "" },
["Anping"] = { "" },
["Shanhua"] = { "" },
["Jiali"] = { "" },
["Taitung"] = { "" },
["Green Island"] = { "" },
["Hsinchu-MN"] = { "" },
["Miaoli-MN"] = { "" },
["Mailiao"] = { "" },
["Taixi"] = { "" },
["Lunbei"] = { "" },
["Chiayi"] = { "" },
["Chiayi-TB"] = { "" },
["Chiayi-SS"] = { "" },
["Chiayi-ZP"] = { "" },
["Chiayi-DP"] = { "" },
["Chiayi-ZQ"] = { "" },
["Chiayi-DL"] = { "" },
["Chiayi-XK"] = { "" },
["Chiayi-MX"] = { "" },
["Chiayi-PZ"] = { "" },
["Chiayi-LJ"] = { "" },
["Chiayi-ST"] = { "" },
["Chiayi-FL"] = { "" },
["Chiayi-ALS"] = { "" },
["Chiayi-LC"] = { "" },
["Chiayi-YZ"] = { "" },
["Chiayi-XG"] = { "" },
["Chiayi-MS"] = { "" },
["Chiayi-DS"] = { "" },
["Chiayi-BD"] = { "" },
["Chiayi-WL"] = { "" },
["Pingtung"] = { "" },
["Baoli"] = { "" },
["Liuqiu"] = { "" },
["Gabulong"] = { "" },
["Kinmen"] = { "" },
["Jinsha"] = { "" },
["Magong"] = { "" },
["Pengnan"] = { "" },
["Xiyu"] = { "" },
["Huxi"] = { "" },
["Wangan"] = { "" },
["Cimei"] = { "" },
["Huayu"] = { "" },
["Zhongtun"] = { "" },
["Houliao"] = { "" },
["Tongliang"] = { "" },
["Jibei"] = { "" },
["Malaysia-MN"] = { "" },
["Melaka"] = { "" },
["Labuan"] = { "" },
["Klang"] = { "" },
["Singapore-MN"] = { "" },
["Philippine-MN"] = { "" },
["Medan"] = { "" },
["Seri Begawan"] = { "" },
["Ho Chi Minh City-MN"] = { "" },
["Yangon-MN"] = { "" },
["Longyan"] = { "" },
["Shizhong"] = { "" },
["Zhangping"] = { "" },
["Yongfu"] = { "" },
["Datian"] = { "" },
["Datian-GP"] = { "" },
["Youxi-JM"] = { "" },
["Youxi-XQ"] = { "" },
["Shunchang-PS"] = { "" },
["Xiapu-SS"] = { "" },
["Putian-MN"] = { "" },
["Pingnan"] = { "" },
["Pingnan-PT"] = { "" },
["Pingnan-SJ"] = { "" },
["Guiping-XW"] = { "" },
["Guiping-DS"] = { "" },
["Guilin-MN-BYG"] = { "" },
["Pingle-MN"] = { "" },
["Qinzhou-MN"] = { "" },
["Lechang-TT"] = { "" },
["Renhua-CSB"] = { "" },
["Yingde-YZ"] = { "" },
["Yunan-LT"] = { "" },
["Heyuan-NJ"] = { "" },
["Hangzhou-PF"] = { "" },
["Cangnan-MN"] = { "" },
["Yuhuan-KM"] = { "" },
["Wenling-RS"] = { "" },
["Yixing-SB"] = { "" },
["Guangfeng-NSD"] = { "" },
["Hengfeng-YJ"] = { "" },
["Yushan-ZH"] = { "" },
["Langxi-FL"] = { "" },
["Chaozhou"] = { "" },
["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"] = { "" },
["Nanlang"] = { "" },
["Fuzhou"] = { "白糖" },
["Changle"] = { "" },
["Lianjiang-MD"] = { "" },
["Tailu"] = { "" },
["Minhou"] = { "" },
["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"] = { "" },
["Longyou-LS"] = { "" },
["Singapore-MD-FQ"] = { "" },
["Sitiawan-MD-GT"] = { "" },
["Sibu-MD-MQ"] = { "" },
["Jian'ou"] = { "" }, --沙仔糖?
["Dikou"] = { "" },
["Yanping-XY"] = { "" },
["Yanping-XD"] = { "" },
["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"] = { "" },
["Zhangping-She"] = { "" },
["Guixi-She"] = { "" },
["Yanshan-She"] = { "" },
["Wuning-She"] = { "" },
["Cangnan-She"] = { "" },
["Jingning-She"] = { "" },
["Jingning-ZK-She"] = { "" },
["Lishui-She"] = { "" },
["Longyou-She"] = { "" },
["Lin'an-She"] = { "" },
["Jiande-She"] = { "" },
["Jinhua-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"] = { "" },
["Lianzhou-XZ"] = { "" },
["Lianzhou-BA"] = { "" },
["Lianzhou-YC"] = { "" },
["Lianzhou-XA"] = { "" },
["Lianzhou-FY"] = { "" },
}
return export
96rday18wtrgcachikr7uoeubrkx0z9
白糖
0
418447
2567108
2026-09-28T01:59:14Z
Hiyuune
50834
Trang mới: “=={{langname|ko}}== {{ko-hanjatab}} ==={{section|n}}=== {{ko-noun|hangeul=백당}} # {{hanja form of|백당|đường trắng}} =={{langname|zh}}== {{zh-forms}} {{wp|zh:}} ==={{section|pron}}=== {{zh-pron |m=báitáng |c=baak6 tong4 |c-t=bak5 hong3 |g='pah6 tong2 |j=bai1 ton1 |mn=qz,tw,xm:pe̍h-thn̂g/zz:pe̍eh-thn̂g |mn-t=bêh8 teng5 |w=sh:8baq daon6 |cat=n }} ==={{section|n}}=== {{head|zh|noun}} # [[đường|Đường]] [[trắng]]; [[đường]] [[tinh luyện]…”
2567108
wikitext
text/x-wiki
=={{langname|ko}}==
{{ko-hanjatab}}
==={{section|n}}===
{{ko-noun|hangeul=백당}}
# {{hanja form of|백당|đường trắng}}
=={{langname|zh}}==
{{zh-forms}}
{{wp|zh:}}
==={{section|pron}}===
{{zh-pron
|m=báitáng
|c=baak6 tong4
|c-t=bak5 hong3
|g='pah6 tong2
|j=bai1 ton1
|mn=qz,tw,xm:pe̍h-thn̂g/zz:pe̍eh-thn̂g
|mn-t=bêh8 teng5
|w=sh:8baq daon6
|cat=n
}}
==={{section|n}}===
{{head|zh|noun}}
# [[đường|Đường]] [[trắng]]; [[đường]] [[tinh luyện]].
===={{section|syn}}====
{{zh-dial}}
===={{section|drv}}====
{{col3|zh|白糖鬃|白糖粽|白糖糕}}
{{C|zh|Đường (thực phẩm)}}
efxk316gvym00hc86idslr13gv51bfe
白砂糖
0
418448
2567109
2026-09-28T02:03:21Z
Hiyuune
50834
Trang mới: “=={{langname|ja}}== {{ja-kanjitab|しろ|さ|k2=ざ|とう|yomi=k,o2}} ==={{section|etym}}=== {{ja-com|白|しろ|t1=trắng|砂糖|さとう|t2=đường}}. ==={{section|pron}}=== {{ja-pron|しろざとう|acc=3|acc_ref=DJR,NHK}} ==={{section|n}}=== {{ja-noun|しろざとう|hhira=しろざたう}} # [[đường|Đường]] [[trắng]]; [[đường]] [[tinh luyện]]. #: {{syn|ja|白糖|tr=hakutō}} ==={{section|ref}}=== {{reflist}} =={{langname|ko}}== {{ko-hanjata…”
2567109
wikitext
text/x-wiki
=={{langname|ja}}==
{{ja-kanjitab|しろ|さ|k2=ざ|とう|yomi=k,o2}}
==={{section|etym}}===
{{ja-com|白|しろ|t1=trắng|砂糖|さとう|t2=đường}}.
==={{section|pron}}===
{{ja-pron|しろざとう|acc=3|acc_ref=DJR,NHK}}
==={{section|n}}===
{{ja-noun|しろざとう|hhira=しろざたう}}
# [[đường|Đường]] [[trắng]]; [[đường]] [[tinh luyện]].
#: {{syn|ja|白糖|tr=hakutō}}
==={{section|ref}}===
{{reflist}}
=={{langname|ko}}==
{{ko-hanjatab}}
==={{section|n}}===
{{ko-noun|hangeul=백사탕}}
# {{hanja form of|백사탕|đường trắng}}
=={{langname|zh}}==
{{zh-forms|type=12}}
{{wp|zh:}}
==={{section|pron}}===
{{zh-pron
|m=báishātáng
|c=baak6 saa1 tong4
|cat=n
}}
==={{section|n}}===
{{head|zh|Danh từ}}
# [[đường|Đường]] [[trắng]]; [[đường]] [[tinh luyện]].
===={{section|syn}}====
{{zh-dial|白糖}}
{{C|zh|Đường (thực phẩm)}}
ofru9iw267kt2ea9w927420ufsmh3zo
しろざとう
0
418449
2567110
2026-09-28T02:04:36Z
Hiyuune
50834
Trang mới: “=={{langname|ja}}== {{ja-see|白砂糖}}”
2567110
wikitext
text/x-wiki
=={{langname|ja}}==
{{ja-see|白砂糖}}
1hv02385fhluokmi1l3qgqkfndxh64x
Bản mẫu:dialect map/ain/タンネチェㇷ゚
10
418450
2567115
2026-09-28T05:14:57Z
Hiyuune
50834
Trang mới: “{{dialect map}}”
2567115
wikitext
text/x-wiki
{{dialect map}}
d6v0nb58x909aihj701mhww3omkirht
Bản mẫu:zh-dial-map/白糖
10
418451
2567116
2026-09-28T05:18:29Z
Hiyuune
50834
Trang mới: “{{zh-dial-map}}”
2567116
wikitext
text/x-wiki
{{zh-dial-map}}
2k1iq8ezm3e0psqf7avnc52al6y68vt
Mô đun:zh/data/dial-syn/冰糖
828
418452
2567117
2026-09-28T05:20:05Z
Hiyuune
50834
Trang mới: “local export = {} export.list = { ["meaning"] = "đường phèn", ["note"] = "", ["Classical"] = { "石蜜" }, ["Formal"] = { "" }, ["Taxonomic"] = { "" }, ["Beijing"] = { "冰糖" }, ["Beijing-PG"] = { "" }, ["Beijing-MY"] = { "" }, ["Beijing-HR"] = { "" }, ["Beijing-YQ"] = { "" }, ["Beijing-CP"] = { "" }, ["Beijing-MTG"] = { "" }, ["Beijing-FS"] = { "" }, ["Taiwan"] = { "冰糖" }, ["Tianjin-WQ"] = {…”
2567117
Scribunto
text/plain
local export = {}
export.list = {
["meaning"] = "đường phèn",
["note"] = "",
["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"] = { "糖霜" },
["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"] = { "" },
["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
a0btxtbs42eep54mfq9oiozm8pf9d26
monar
0
418453
2567118
2026-09-28T05:21:56Z
Hiyuune
50834
Trang mới: “=={{langname|ga}}== ==={{section|n}}=== {{ga-noun|m|monair|-}} # {{lb|ga|literary}} [[công việc|Công việc]] [[nặng nhọc]]. ===={{section|decl}}==== {{ga-decl-m1-nopl|m|onar|onair}} ===={{section|drv}}==== * {{l|ga|monaraigh}} ==={{section|mut}}=== {{ga-mut}} ==={{section|further}}=== * {{R:ga:Ó Dónaill}}”
2567118
wikitext
text/x-wiki
=={{langname|ga}}==
==={{section|n}}===
{{ga-noun|m|monair|-}}
# {{lb|ga|literary}} [[công việc|Công việc]] [[nặng nhọc]].
===={{section|decl}}====
{{ga-decl-m1-nopl|m|onar|onair}}
===={{section|drv}}====
* {{l|ga|monaraigh}}
==={{section|mut}}===
{{ga-mut}}
==={{section|further}}===
* {{R:ga:Ó Dónaill}}
meq2in8w14auj9ek8dgosi2puhj4lyq
tarmlig
0
418454
2567120
2026-09-28T05:23:45Z
Hiyuune
50834
Trang mới: “=={{langname|ga}}== ==={{section|v}}=== {{ga-verb|pres=tarmligeann|fut=tarmligfidh|vn=tarmligean|pp=~the}} # [[ủy quyền|Uỷ quyền]], [[uỷ thác]], [[giao phó]]. ===={{section|forms}}==== {{ga-conj-1b|t|armli|g|slender|vn=tarmligean}} ==={{section|mut}}=== {{ga-mut}} ==={{section|further}}=== * {{R:ga:Ó Dónaill}} * {{R:ga:EID}} * {{R:ga:NEID}} * {{R:ga:FNG}}”
2567120
wikitext
text/x-wiki
=={{langname|ga}}==
==={{section|v}}===
{{ga-verb|pres=tarmligeann|fut=tarmligfidh|vn=tarmligean|pp=~the}}
# [[ủy quyền|Uỷ quyền]], [[uỷ thác]], [[giao phó]].
===={{section|forms}}====
{{ga-conj-1b|t|armli|g|slender|vn=tarmligean}}
==={{section|mut}}===
{{ga-mut}}
==={{section|further}}===
* {{R:ga:Ó Dónaill}}
* {{R:ga:EID}}
* {{R:ga:NEID}}
* {{R:ga:FNG}}
5u1aks99sfln03lb83hz2qrv8o02axh
srincne
0
418455
2567121
2026-09-28T05:25:33Z
Hiyuune
50834
+ ga
2567121
wikitext
text/x-wiki
=={{langname|ga}}==
==={{section|etym}}===
{{root|ga|ine-pro|*strengʰ-}}
Từ {{inh|ga|mga|sringcne}}, từ {{der|ga|sga|sreng||string, cord}} và hậu tố số ít {{m|sga|-ne}} cùng gốc với {{cog|cy|-en}}.
==={{section|n}}===
{{ga-noun|f|~|srincní}}
# [[cuống|Cuống]] [[nhau]], [[dây rốn]], cuống rốn.
#: {{syn|ga|sreang imleacáin}}
===={{section|decl}}====
{{ga-decl-f4|sr|incne|incní}}
===={{section|rel}}====
* {{l|ga|sreang}}
{{C|ga|Giải phẫu học}}
6dezjdmsne8yibwo9834dhhgpuvnowk
2567152
2567121
2026-09-28T09:41:46Z
TheHighFighter2
42988
/* Từ nguyên */
2567152
wikitext
text/x-wiki
=={{langname|ga}}==
==={{section|etym}}===
{{root|ga|ine-pro|*strengʰ-}}
Từ {{inh|ga|mga|sringcne}}, từ {{der|ga|sga|sreng||dây}} và hậu tố số ít {{m|sga|-ne}} cùng gốc với {{cog|cy|-en}}.
==={{section|n}}===
{{ga-noun|f|~|srincní}}
# [[cuống|Cuống]] [[nhau]], [[dây rốn]], cuống rốn.
#: {{syn|ga|sreang imleacáin}}
===={{section|decl}}====
{{ga-decl-f4|sr|incne|incní}}
===={{section|rel}}====
* {{l|ga|sreang}}
{{C|ga|Giải phẫu học}}
68enmlq9kn9h2cwo4mtyoj2jfsl5oeh
ẖpꜣ
0
418456
2567122
2026-09-28T05:27:05Z
Hiyuune
50834
Trang mới: “{{also|Phụ lục:Biến thể của "hp"}} =={{langname|egy}}== ==={{section|pron}}=== {{egy-pr|o=ˈçuplVw|m=ˈçuplVw|ml=ˈçuplə|l=ˈçøplə}} ==={{section|n}}=== {{egy-noun|m|head=X:p-G41-A-F51}} # [[dây rốn|Dây rốn]]. #: {{syn|egy|npꜣw}} # [[rốn|Rốn]]. ===={{section|infl}}==== {{egy-decl-noun|g=m|ẖpꜣ}} ===={{section|alt}}==== {{egy-hieroforms |X:p-pA-A-w-Aa2:F51|read1=ẖpꜣw |S-pA-N33|read2=špꜣ }} ===={{section|desc}}==== * {{desc|cop-b…”
2567122
wikitext
text/x-wiki
{{also|Phụ lục:Biến thể của "hp"}}
=={{langname|egy}}==
==={{section|pron}}===
{{egy-pr|o=ˈçuplVw|m=ˈçuplVw|ml=ˈçuplə|l=ˈçøplə}}
==={{section|n}}===
{{egy-noun|m|head=X:p-G41-A-F51}}
# [[dây rốn|Dây rốn]].
#: {{syn|egy|npꜣw}}
# [[rốn|Rốn]].
===={{section|infl}}====
{{egy-decl-noun|g=m|ẖpꜣ}}
===={{section|alt}}====
{{egy-hieroforms
|X:p-pA-A-w-Aa2:F51|read1=ẖpꜣw
|S-pA-N33|read2=špꜣ
}}
===={{section|desc}}====
* {{desc|cop-boh|ϧⲉⲗⲡⲓ}}
* {{desc|cop-sah|ϩⲉⲗⲡⲉ|ϩⲗⲡⲉ}}
==={{section|ref}}===
* {{R:egy:Allen|297}}
* {{R:egy:Wb|3|365.14–365.16}}
bhulllzxwh06k213xk7rv5p6f46465w
Mô đun:etymology languages/by code
828
418457
2567133
2026-09-28T09:00:02Z
Hiyuune
50834
Trang mới: “local export = {} for code, data in pairs(require("Module:etymology languages/data")) do export[code] = data[1] end return export”
2567133
Scribunto
text/plain
local export = {}
for code, data in pairs(require("Module:etymology languages/data")) do
export[code] = data[1]
end
return export
8j22cngeqbkzn3bn0capeyip8mnnqt3
Mô đun:etymology languages/data/sandbox
828
418458
2567135
2026-09-28T09:27:00Z
Hiyuune
50834
Trang mới: “local m_langdata = require("Module:languages/data") -- Loaded on demand, as it may not be needed (depending on the data). local function u(...) u = require("Module:string utilities").char return u(...) end local c = m_langdata.chars local p = m_langdata.puaChars local s = m_langdata.shared local m = {} ---------------------------------------------------------------------------------------------------------------------- --…”
2567135
Scribunto
text/plain
local m_langdata = require("Module:languages/data")
-- Loaded on demand, as it may not be needed (depending on the data).
local function u(...)
u = require("Module:string utilities").char
return u(...)
end
local c = m_langdata.chars
local p = m_langdata.puaChars
local s = m_langdata.shared
local m = {}
----------------------------------------------------------------------------------------------------------------------
-- Afroasiatic varieties --
----------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
-- Berber varieties --
--------------------------------------------------------------------------------------
m["shi-med"] = {
"tiếng Tashelhit trung cổ",
34152,
"shi",
}
-- Tuareg lects
m["thv"] = {
"tiếng Tamahaq",
56703,
"tmh",
}
m["ttq"] = {
"tiếng Tawellemmet",
56390,
"tmh",
}
m["taq"] = {
"tiếng Tamasheq",
4670066,
"tmh",
}
m["thz"] = {
"tiếng Tayert",
56388,
"tmh",
}
m["thv-ght"] = {
"tiếng Ghat",
47012900,
"thv",
}
--------------------------------------------------------------------------------------
-- Cushitic varieties --
--------------------------------------------------------------------------------------
-- Oromo varieties
m["hae"] = {
"tiếng Oromo Harar",
5330355,
"om",
aliases = {"Oromo Đông"},
}
m["gax"] = {
"tiếng Borana",
2910610,
"om",
aliases = {"Oromo Nam"},
}
m["orc"] = {
"tiếng Orma",
2919128,
"om",
}
m["ssn"] = {
"tiếng Waata",
3501553,
"om",
}
--------------------------------------------------------------------------------------
-- Egyptian varieties --
--------------------------------------------------------------------------------------
-----------------------------------------------------
-- Ancient Egyptian varieties --
-----------------------------------------------------
m["egy-old"] = {
"tiếng Ai Cập cổ",
447117,
"egy",
}
m["egy-mid"] = {
"tiếng Ai Cập trung đại",
657330,
"egy",
aliases = {"Ai Cập cổ điển"},
}
m["egy-nmi"] = {
"tiếng Ai Cập tân trung cổ",
123735278,
"egy",
aliases = {"Égyptien de tradition", "tiếng Ai Cập truyền thống"},
}
m["egy-lat"] = {
"tiếng Ai Cập hậu kỳ",
1852329,
"egy",
}
-----------------------------------------------------
-- Coptic varieties --
-----------------------------------------------------
m["cop-akh"] = {
"tiếng Copt Akhmim",
125176464,
"cop",
aliases = {"Akhmim"},
}
m["cop-boh"] = {
"tiếng Copt Bohair",
890733,
"cop",
aliases = {"Bohair", "Cpot Memphit", "Memphit"},
}
m["cop-ggg"] = {
"tiếng Copt phương ngữ G",
nil,
"cop",
aliases = {"phương ngữ G", "Copt Mansur", "Mansur"},
}
m["cop-jjj"] = {
"tiếng Copt phương ngữ J",
nil,
"cop",
}
m["cop-kkk"] = {
"tiếng Copt phương ngữ K",
nil,
"cop",
}
m["cop-ppp"] = {
"tiếng Copt phương ngữ P",
nil,
"cop",
aliases = {"Copt-Theban nguyên thủy", "Copt Palaeo-Theban"},
}
m["cop-fay"] = {
"tiếng Copt Fayyum",
1399115,
"cop",
aliases = {"Fayyum", "Copt Faiyum", "Faiyum", "Copt Fayum", "Fayum",
"Copt Bashmur", "Bashmur"},
}
m["cop-her"] = {
"tiếng Copt Hermopolis",
nil,
"cop",
aliases = {"Hermopolis", "Copt phương ngữ H", "Ashmunin", "Copt Ashmunin"},
}
m["cop-lyc"] = {
"tiếng Copt Lycopolitan",
nil,
"cop",
aliases = {
"Lycopolitan",
"Copt Assiut", "Copt Asyut Coptic", "Assiut", "Asyut",
"Copt Lyco-Diospolitan", "Lyco-Diospolitan",
"Copt Subakhmim", "Subakhmim"
},
}
m["cop-old"] = {
"tiếng Copt cổ",
115518040,
"cop",
}
m["cop-oxy"] = {
"tiếng Copt Oxyrhynchus",
nil,
"cop",
aliases = {"Oxyrhynchus", "Copt Mesokem", "Mesokem", "Copt Ai Cập trung đại"},
}
m["cop-ply"] = {
"tiếng Copt Lycopolitan nguyên thủy",
nil,
"cop",
aliases = {"Copt phương ngữ i", "Copt Lyco-Diospolitan nguyên thủy"},
}
m["cop-sah"] = {
"tiếng Copt Sahid",
2645851,
"cop",
aliases = {"Sahid", "Copt Said", "Said", "Copt Theba", "Theba"},
}
--------------------------------------------------------------------------------------
-- Semitic varieties --
--------------------------------------------------------------------------------------
-----------------------------------------------------
-- Akkadian varieties --
-----------------------------------------------------
m["akk-old"] = {
"tiếng Akkad cổ",
nil,
"akk",
}
m["akk-obb"] = {
"tiếng Babylon cổ",
nil,
"akk",
}
m["akk-oas"] = {
"tiếng Assyria cổ",
nil,
"akk",
}
m["akk-mbb"] = {
"tiếng Babylon trung đại",
nil,
"akk",
}
m["akk-mas"] = {
"tiếng Assyria trung đại",
nil,
"akk",
}
m["akk-nbb"] = {
"tiếng Tân Babylon",
nil,
"akk",
}
m["akk-nas"] = {
"tiếng Tân Assyria",
nil,
"akk",
}
m["akk-lbb"] = {
"tiếng Babylon hậu kỳ",
nil,
"akk",
}
m["akk-stb"] = {
"tiếng Babylon tiêu chuẩn",
nil,
"akk",
}
-----------------------------------------------------
-- Arabic varieties --
-----------------------------------------------------
m["jrb"] = {
"tiếng Ả Rập-Do Thái",
37733,
"ar",
pseudo_families = "qfa-jew",
}
m["apc-leb"] = {
"tiếng Ả Rập Bắc Levant Liban",
1516642,
"apc",
aliases = {"Ả Rập Liban"},
}
m["apc-sle"] = {
"tiếng Ả Rập Bắc Levant Nam Liban",
14206590,
"apc",
aliases = {"Ả Rập Nam Liban"},
}
m["apc-nle"] = {
"tiếng Ả Rập Bắc Levant Bắc Liban",
nil,
"apc",
aliases = {"Ả Rập Bắc Liban"},
}
m["apc-syr"] = {
"tiếng Ả Rập Bắc Levant Syria",
2143071,
"apc",
aliases = {"Ả Rập Syria"},
}
m["apc-ale"] = {
"tiếng Ả Rập Bắc Levant Aleppo",
7056921,
"apc-syr",
aliases = {"Ả Rập Aleppo", "Ả Rập Aleppine"},
}
m["apc-dam"] = {
"tiếng Ả Rập Bắc Levant Damascus",
12237466,
"apc-syr",
aliases = {"Ả Rập Damascus", "Ả Rập Damascene"},
}
m["acm-khu"] = {
"tiếng Ả Rập Khuzestan",
1040944,
"acm",
}
-----------------------------------------------------
-- Aramaic varieties --
-----------------------------------------------------
m["arc-bib"] = {
"Biblical Aramaic",
843235,
"arc",
family = "sem-are",
pseudo_families = "qfa-jew",
}
m["arc-cpa"] = {
"Christian Palestinian Aramaic",
60790119,
"arc",
family = "sem-arw",
aliases = {"Melkite Aramaic", "Palestinian Syriac", "Syropalestinian Aramaic"},
}
m["arc-imp"] = {
"Imperial Aramaic",
7079491,
"arc",
aliases = {"Official Aramaic"},
}
m["arc-hat"] = {
"Hatran Aramaic",
3832926,
"arc",
family = "sem-are",
}
m["arc-jla"] = {
"Jewish Literary Aramaic",
105952842,
"arc",
pseudo_families = "qfa-jew",
}
m["arc-nab"] = {
"Nabataean Aramaic",
36178,
"arc",
}
m["arc-old"] = {
"Old Aramaic",
3398392,
"arc",
}
m["arc-pal"] = {
"Palmyrene Aramaic",
1510113,
"arc",
family = "sem-arw",
}
m["tmr"] = {
"Jewish Babylonian Aramaic",
33407,
"arc",
family = "sem-ase",
pseudo_families = "qfa-jew",
}
m["jpa"] = {
"Jewish Palestinian Aramaic",
948909,
"arc",
family = "sem-arw",
aliases = {"Galilean Aramaic"},
pseudo_families = "qfa-jew",
}
-----------------------------------------------------
-- Hebrew varieties --
-----------------------------------------------------
m["hbo"] = {
"Biblical Hebrew",
1982248,
"he",
aliases = {"Classical Hebrew"},
}
m["he-mis"] = {
"Mishnaic Hebrew",
1649362,
"he",
ancestors = "hbo",
}
m["he-med"] = {
"Medieval Hebrew",
2712572,
"he",
ancestors = "he-mis",
}
m["he-IL"] = {
"Israeli Hebrew",
8141,
"he",
}
----------------------------------------------------------------------------------------------------------------------
-- Ainu varieties --
----------------------------------------------------------------------------------------------------------------------
m["ain-hok"] = {
"Hokkaido Ainu",
20968488,
"ain",
aliases = {"Hokkaidō Ainu"},
}
m["ain-kur"] = {
"Kuril Ainu",
20967012,
"ain",
}
m["ain-sak"] = {
"Sakhalin Ainu",
20747371,
"ain",
}
----------------------------------------------------------------------------------------------------------------------
-- American indigenous varieties --
----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-- Inuit varieties --
-----------------------------------------------------
m["esi"] = {
"North Alaskan Inupiatun",
nil,
"ik"
}
m["esk"] = {
"Northwest Alaskan Inupiatun",
25559714,
"ik"
}
-----------------------------------------------------
-- Iroquoian varieties --
-----------------------------------------------------
m["iro-ohu"] = {
"Old Wendat",
nil,
"wdt",
}
m["iro-omo"] = {
"Old Mohawk",
nil,
"moh",
}
m["iro-oon"] = {
"Old Onondaga",
nil,
"ono",
}
-----------------------------------------------------
-- Tupi-Guarani varieties --
-----------------------------------------------------
-- Old Tupi varieties
m["tpw-lga"] = {
"Língua Geral Amazônica",
18275323,
"tpw",
aliases = {"Língua Geral"},
}
m["tpw-lgp"] = {
"Língua Geral Paulista",
2669239,
"tpw",
}
----------------------------------------------------------------------------------------------------------------------
-- Austroasiatic varieties --
----------------------------------------------------------------------------------------------------------------------
-- Khmer varieties
m["okz-ang"] = {
"Angkorian Old Khmer",
nil,
"okz",
wikipedia_article = "Khmer language#Historical periods",
}
m["okz-pre"] = {
"Pre-Angkorian Old Khmer",
nil,
"okz",
wikipedia_article = "Khmer language#Historical periods",
}
-- Central Nicobarese varieties
m["ncb-cam"] = {
"Camorta",
5026908,
"ncb",
aliases = {"Kamorta"},
}
m["ncb-kat"] = {
"Katchal",
17064263,
"ncb",
aliases = {"Tehnu"},
}
m["ncb-nan"] = {
"Nancowry",
6962504,
"ncb",
aliases = {"Nankwari"},
}
----------------------------------------------------------------------------------------------------------------------
-- Austronesian varieties --
----------------------------------------------------------------------------------------------------------------------
-- Malay and related varieties
m["ms-old"] = { -- this has the ISO code 'omy'
"Old Malay",
nil,
"ms",
}
m["ms-cla"] = {
"Classical Malay",
nil,
"ms",
ancestors = "ms-old",
}
m["pse-bsm"] = {
"Besemah",
nil,
"pse",
}
m["bew-kot"] = {
"Betawi Kota",
nil,
"bew",
aliases = {"Urban Betawi"}, -- in Jakarta
}
-- Philippine varieties
m["xnn"] = {
"Northern Kankanaey",
12953609,
"kne",
aliases = {"Northern Kankanay", "Northern Kankana-ey"},
}
m["tl-old"] = {
"Old Tagalog",
12967437,
"tl",
}
m["tl-cls"] = {
"Classical Tagalog",
nil,
"tl",
}
----------------------------------------------------------------------------------------------------------------------
-- Caucasian varieties --
----------------------------------------------------------------------------------------------------------------------
-- Kartvelian varieties
m["ka-mid"] = {
"Middle Georgian",
nil,
"ka",
ancestors = "oge",
}
----------------------------------------------------------------------------------------------------------------------
-- Dravidian varieties --
----------------------------------------------------------------------------------------------------------------------
m["ta-mid"] = {
"Middle Tamil",
20987434,
"ta",
}
m["kn-hav"] = {
"Havigannada",
24276369,
"kn",
}
m["kn-kun"] = {
"Kundagannada",
6444255,
"kn",
}
----------------------------------------------------------------------------------------------------------------------
-- Indo-European varieties --
----------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
-- Albanian varieties --
--------------------------------------------------------------------------------------
m["aln"] = {
"Gheg Albanian",
181037,
"sq",
aliases = {"Gheg"},
}
m["aae"] = {
"Arbëresh Albanian",
1075302,
"als",
aliases = {"Arbëreshë", "Arbëresh"},
}
m["aat"] = {
"Arvanitika Albanian",
29347,
"als",
aliases = {"Arvanitika"},
}
m["als"] = {
"Tosk Albanian",
180937,
"sq",
aliases = {"Tosk"},
}
--------------------------------------------------------------------------------------
-- Armenian varieties --
--------------------------------------------------------------------------------------
m["hyw"] = {
"Western Armenian",
180945,
"hy",
}
m["hye"] = {
"Eastern Armenian",
181059,
"hy",
}
--------------------------------------------------------------------------------------
-- Balto-Slavic varieties --
--------------------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Baltic varieties --
-------------------------------------------------------------------------
m["bat-pro"] = {
"Proto-Baltic",
1703347,
"ine-bsl-pro",
}
m["bat-dni"] = {
"Dnieper Baltic",
4163178,
"bat-pro",
family = "bat",
aliases = {"Dniepr Baltic", "Dnieper-Oka Baltic", "Dniepr-Oka Baltic"},
}
m["bat-gol"] = {
"Golyad",
4142855,
"bat-dni",
aliases = {"Eastern Galindian", "East Galindian"},
}
-------------------------------------------------------------------------
-- Slavic varieties --
-------------------------------------------------------------------------
-----------------------------------------------------
-- Bulgarian varieties --
-----------------------------------------------------
m["cu-bgm"] = {
"Middle Bulgarian",
12294897,
"cu",
ancestors = "cu"
}
-----------------------------------------------------
-- Church Slavonic varieties --
-----------------------------------------------------
-- Old Moscow Church Slavonic deleted as it seems not distinct enough from Russian (Synodal) Church Slavonic.
m["zls-chs-ru"] = {
"Russian Church Slavonic",
21662400,
"zls-chs",
aliases = {"Synodal Church Slavonic", "New Moscow Church Slavonic", "Novomoskovsk Church Slavonic"},
}
m["zls-chs-uk"] = {
"Ukrainian Church Slavonic",
12153548,
"zls-chs",
aliases = {"Rusyn Church Slavonic", "Belarusian Church Slavonic"},
}
--[=[
-- Not sure about these yet.
m["zls-chs-bg"] = {
"Bulgarian Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-cs"] = {
"Czech Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-hr"] = {
"Croatian Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-mk"] = {
"Macedonian Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-ro"] = {
"Romanian Church Slavonic",
nil,
"zls-chs",
}
m["zls-chs-sr"] = {
"Serbian Church Slavonic",
nil,
"zls-chs",
}
]=]
-----------------------------------------------------
-- Czech varieties --
-----------------------------------------------------
m["cs-ear"] = {
"Early Modern Czech",
nil,
"cs",
ancestors = "zlw-ocs"
}
-----------------------------------------------------
-- East Slavic varieties --
-----------------------------------------------------
m["zle-ops"] = {
"Old Pskovian",
4167885,
"zle-ono",
}
m["zle-mru"] = {
"Middle Russian",
35228,
"ru",
"Cyrs",
ancestors = "orv",
translit = "ru-translit",
strip_diacritics = {
Cyrs = {
remove_diacritics = c.grave .. c.acute .. c.diaer,
},
},
}
m["zle-mbe"] = {
"Middle Belarusian",
13211,
"zle-ort",
ancestors = "zle-ort",
}
m["zle-muk"] = {
"Middle Ukrainian",
13211,
"zle-ort",
ancestors = "zle-ort",
}
m["uk-CA"] = {
"Canadian Ukrainian",
4161010,
"uk",
}
m["crp-cpr-kya"] = {
"Kyakhta Chinese Pidgin Russian",
1062960,
"crp-cpr",
}
-----------------------------------------------------
-- Polish varieties --
-----------------------------------------------------
m["zlw-mpl"] = {
"Middle Polish",
402878,
"pl",
ancestors = "zlw-opl",
strip_diacritics = {
remove_diacritics = c.acute,
remove_exceptions = {"Ć", "ć", "Ń", "ń", "Ó", "ó", "Ś", "ś", "Ź", "ź"},
},
}
m["pl-gre"] = {
"Greater Polish",
4106789,
"pl",
}
m["pl-les"] = {
"Lesser Polish",
361709,
"pl",
}
m["pl-mas"] = {
"Masovian Polish",
4274559,
"pl",
}
m["pl-gor"] = {
"Goral",
452889,
"pl",
}
-----------------------------------------------------
-- Serbo-Croatian varieties --
-----------------------------------------------------
m["ckm"] = {
"Chakavian Serbo-Croatian",
337565,
"sh",
aliases = {"Čakavian"},
}
m["kjv"] = {
"Kajkavian Serbo-Croatian",
838165,
"sh",
}
m["sh-tor"] = { -- Linguist code srp-tor
"Torlakian Serbo-Croatian",
1078803,
"sh",
aliases = {"Torlak"},
}
--------------------------------------------------------------------------------------
-- Celtic varieties --
--------------------------------------------------------------------------------------
-----------------------------------------------------
-- Brythonic varieties --
-----------------------------------------------------
m["bry-ear"] = {
"Early Brythonic",
nil,
"cel-bry-pro",
}
m["bry-lat"] = {
"Late Brythonic",
nil,
"cel-bry-pro",
}
-----------------------------------------------------
-- Gaulish varieties --
-----------------------------------------------------
m["xcg"] = {
"Cisalpine Gaulish",
3832927,
"cel-gau",
}
m["xtg"] = {
"Transalpine Gaulish",
29977,
"cel-gau",
}
-----------------------------------------------------
-- Welsh varieties --
-----------------------------------------------------
m["cy-nor"] = {
"North Wales Welsh",
13127692,
"cy",
aliases = {"North Walian Welsh", "Northern Welsh"},
}
m["cy-sou"] = {
"South Wales Welsh",
13127689,
"cy",
aliases = {"South Walian Welsh", "Southern Welsh"},
}
--------------------------------------------------------------------------------------
-- Germanic varieties --
--------------------------------------------------------------------------------------
-- Proto-West Germanic varieties
m["frk"] = {
"Frankish",
10860505,
"gmw-pro",
family = "gmw-frk",
aliases = {"Old Frankish"},
}
m["gem-sue"] = {
"Suevic",
134600275,
"gmw-pro",
aliases = {"Suebian"},
}
m["gmw-afr-pro"] = {
"Proto-Anglo-Frisian",
134603379,
"gmw-nsg-pro",
family = "gmw-afr",
}
m["gmw-nsg-pro"] = {
"Proto-North Sea Germanic",
134603374,
"gmw-pro",
family = "gmw-nsg",
aliases = {"Proto-Ingvaeonic"},
}
-----------------------------------------------------
-- Dutch varieties --
-----------------------------------------------------
m["nl-BE"] = {
"Belgian Dutch",
34147,
"nl",
aliases = {"Flemish", "Flemish Dutch", "Southern Dutch"},
}
-----------------------------------------------------
-- English and Scots varieties --
-----------------------------------------------------
-- English varieties
m["en-AU"] = {
"Australian English",
44679,
"en",
}
m["en-GB"] = {
"British English",
7979,
"en",
}
m["en-GB-SCT"] = {
"Scottish English",
1553250,
"en-GB",
}
m["en-GB-WLS"] = {
"Welsh English",
2363292,
"en-GB",
}
m["en-IM"] = {
"Manx English",
6753295,
"en-GB",
}
m["en-aae"] = {
"Australian Aboriginal English",
783347,
"en-AU",
}
m["en-ear"] = {
"Early Modern English",
1472196,
"en",
ancestors = "enm",
aliases = {"Early New English"},
}
m["en-geo"] = {
"Geordie",
653421,
"en",
ancestors = "enm-nor",
}
m["en-IE"] = { -- FIXME: "IE" doesn't cover Northern Ireland
"Irish English",
665624,
"en",
}
m["en-uls"] = {
"Ulster English",
6840826,
"en-IE",
}
m["en-GB-NIR"] = {
"Northern Irish English",
6840826, -- actually the code for Ulster English
"en-uls",
}
m["en-NNN"] = { -- NA = Namibia; NNN is NATO 3-letter code for North America
"North American English",
7053766,
"en",
ietf_subtag = "en-021" -- 021 = UN M49 code for "Northern America" (i.e. North America wihout Central America or the Caribbean)
}
m["en-US"] = {
"American English",
7976,
"en-NNN",
}
m["en-NZ"] = {
"New Zealand English",
44661,
"en"
}
m["en-ZA"] = {
"South African English",
1156228,
"en"
}
m["en-US-CA"] = {
"California English",
1026812,
"en-US",
}
m["en-CA"] = {
"Canadian English",
44676,
"en-US",
}
m["en-HK"] = {
"Hong Kong English",
1068863,
"en",
}
m["en-IN"] = {
"Indian English",
1348800,
"en",
}
m["pld"] = {
"Polari",
1359130,
"en",
}
-- Scots varieties
m["sco-ins"] = {
"Insular Scots",
16919205,
"sco",
}
m["sco-uls"] = {
"Ulster Scots",
201966,
"sco",
}
m["sco-nor"] = {
"Northern Scots",
16928150,
"sco",
}
m["sco-sou"] = {
"Southern Scots",
7570457,
"sco",
aliases = {"South Scots", "Borders Scots"},
}
-- Middle English varieties
m["enm-esc"] = { -- Part of Middle English until it developed into Middle Scots.
"Early Scots",
5326738,
"enm",
ancestors = "enm-nor",
aliases = {"Old Scots", "Scottish Middle English"},
}
m["enm-emi"] = {
"East Midland Middle English",
134238810,
"enm",
ancestors = "ang-ang", -- Technically ang-mer, but attested Mercian is mostly WM IIRC
}
m["enm-ken"] = {
"Kentish Middle English",
134238532,
"enm",
ancestors = "ang-ken",
}
m["enm-nor"] = {
"Northern Middle English",
134238541,
"enm",
ancestors = "ang-nor",
}
m["enm-sou"] = {
"Southern Middle English",
134238528,
"enm",
ancestors = "ang-wsx",
}
m["enm-wmi"] = {
"West Midland Middle English",
134238824,
"enm",
ancestors = "ang-mer",
}
-- Old English varieties
-- Includes both Mercian and Northumbrian.
m["ang-ang"] = {
"Anglian Old English",
121142917,
"ang",
}
m["ang-ken"] = {
"Kentish Old English",
11687485,
"ang",
}
m["ang-mer"] = {
"Mercian Old English",
602072,
"ang-ang",
}
m["ang-nor"] = {
"Northumbrian Old English",
1798915,
"ang-ang",
}
m["ang-wsx"] = {
"West Saxon Old English",
2658603,
"ang",
}
-----------------------------------------------------
-- High German varieties --
-----------------------------------------------------
-- (modern) German varieties
m["de-AT"] = {
"Austrian German",
306626,
"de",
}
m["de-AT-vie"] = {
"Viennese German",
56474,
"de-AT",
}
m["de-CH"] = {
"Switzerland German",
1366643,
"de",
aliases = {"Schweizer Hochdeutsch", "Swiss Standard German", "Swiss High German"},
}
m["de-bal"] = {
"Baltic German",
15785413,
"de",
}
m["de-ear"] = {
"Early New High German",
1472199,
"de",
ancestors = "gmh",
aliases = {"Early Modern High German"},
}
m["ksh"] = {
"Kölsch",
4624,
"gmw-cfr",
}
m["pfl"] = {
"Palatine German",
23014,
"gmw-rfr",
aliases = {"Pfälzisch", "Pälzisch", "Palatinate German"},
}
m["sli"] = {
"Silesian East Central German",
152965,
"gmw-ecg",
aliases = {"Silesian"},
}
m["sxu"] = {
"Upper Saxon German",
699284,
"gmw-ecg",
}
-- Old High German varieties
m["lng"] = {
"Lombardic",
35972,
"goh",
}
-- Alemannic German varieties
m["gsw-low"] = {
"Low Alemannic German",
503724,
"gsw",
}
m["gsw-FR-als"] = {
"Alsatian Alemannic German",
8786,
"gsw-low",
}
m["gsw-hig"] = {
"High Alemannic German",
503728,
"gsw",
}
m["gsw-hst"] = {
"Highest Alemannic German",
687538,
"gsw",
}
m["wae"] = {
"Walser German",
680517,
"gsw-hst",
}
-----------------------------------------------------
-- Low German varieties --
-----------------------------------------------------
m["nds-de"] = {
"German Low German",
25433,
"nds",
ietf_subtag = "nds-DE", -- should we make this the actual code?
wikimedia_codes = "nds",
}
m["nds-nl"] = {
"Dutch Low Saxon",
516137,
"nds",
ietf_subtag = "nds-NL", -- should we make this the actual code?
wikimedia_codes = "nds-nl",
}
m["act"] = {
"Achterhoeks",
153627,
"nds-nl",
aliases = {"Achterhoek", "Achterhooks"},
}
m["drt"] = {
"Drents",
2736709,
"nds-nl",
aliases = {"Drèents", "Dreins", "Dreints", "Drints"},
}
m["frs"] = {
"East Frisian Low German",
149208,
"nds-de",
aliases = {"East Frisian", "East Frisian Low Saxon"},
}
m["gos"] = {
"Gronings",
508854,
"nds-nl",
aliases = {"Grunnegs", "Grönnegs"},
}
m["nds-lpr"] = {
"Low Prussian",
33982,
"nds-de",
}
m["sdz"] = {
"Sallands",
3436668,
"nds-nl",
aliases = {"Sallaans", "Sallaands"},
}
m["stl"] = {
"Stellingwerfs",
506010,
"nds-nl",
aliases = {"Stellingwarfs"},
}
m["twd"] = {
"Twents",
497363,
"nds-nl",
aliases = {"Tweants"},
}
m["vel"] = {
"Veluws",
2484810,
"nds-nl",
}
m["wep"] = {
"Westphalian",
505655,
"nds-de",
aliases = {"Westfalish", "Westphalien"},
}
-----------------------------------------------------
-- North Frisian varieties --
-----------------------------------------------------
m["frr-ins"] = {
"Insular North Frisian",
110629610,
"frr",
}
m["frr-fam"] = {
"Föhr-Amrum North Frisian",
110629601,
"frr-ins",
}
m["frr-foh"] = {
"Föhr North Frisian",
28185,
"frr-fam",
aliases = {"Föhr Frisian", "Fering",
"Ferring", -- Glottolog
},
varieties = {"Aasdring", "Weesdring"},
}
m["frr-amr"] = {
"Amrum North Frisian",
28192,
"frr-fam",
aliases = {"Amrum Frisian", "Amrum", "Öömrang"},
}
m["frr-hel"] = {
"Heligoland North Frisian",
28086,
"frr-ins",
aliases = {"Heligoland Frisian", "Halunder", "Heligolandic Frisian", "Heligolandic North Frisian",
"Helgoland Frisian", "Helgoland North Frisian", "Helgoland"},
}
m["frr-syl"] = {
"Sylt North Frisian",
28181,
"frr-ins",
aliases = {"Sylt Frisian", "Söl'ring",
"Sölreng", -- Glottolog
},
}
m["frr-mai"] = {
"Mainland North Frisian",
110629626,
"frr",
}
m["frr-hal"] = {
"Halligen North Frisian",
28177,
"frr-mai",
aliases = {"Halligen Frisian", "Halifreesk", "Hallingen Frisian", "Hallingen North Frisian",
"Hallingen", -- Glottolog
},
}
m["frr-moo"] = {
"Mooring North Frisian",
28187,
"frr-mai",
aliases = {"Bökingharde North Frisian", "Bökingharde Frisian", "Böökinghiirder frasch",
"Mooring", "Moring",
},
varieties = {{"East Mooring", "Ostermooring"}, {"West Mooring", "Westermooring"}},
}
m["frr-kar"] = {
"Karrharde North Frisian",
28191,
"frr-mai",
aliases = {"Karrharde Frisian", "Karrharder",
},
}
m["frr-goe"] = {
-- Technically this refers to three adjacent dialects (Northern, Central and Southern), the latter of which went
-- extinct in 1980-1981. As a result, Glottolog speaks of "Norder-Mittelgoesharde", referring to the remaining two.
"Goesharde North Frisian",
28183,
"frr-mai",
aliases = {"Norder-Mittelgoesharde North Frisian", "Norder-Mittelgoesharde Frisian", "Norder-Mittelgoesharde",
"Goesharde Frisian", "Goesharde", "Gooshiirder",
},
}
m["frr-wie"] = {
"Wiedingharde North Frisian",
28171,
"frr-mai",
aliases = {"Wiedingharde Frisian", "Wiedingharde", "Wiringhiirder freesk",
},
}
-----------------------------------------------------
-- Old Norse varieties --
-----------------------------------------------------
m["non-grn"] = {
"Greenlandic Norse",
855236,
"non-own",
}
m["non-oen"] = {
"Old East Norse",
10498031,
"non",
ancestors = "non",
}
m["non-own"] = {
"Old West Norse",
2377483,
"non",
ancestors = "non",
}
-----------------------------------------------------
-- Old Swedish varieties --
-----------------------------------------------------
m["gmq-osw-lat"] = {
"Late Old Swedish",
10723594,
"gmq-osw",
ancestors = "gmq-osw",
}
--------------------------------------------------------------------------------------
-- Greek varieties --
--------------------------------------------------------------------------------------
m["qsb-grc"] = {
"Pre-Greek",
965052,
"und",
family = "qfa-sub",
}
m["grc-aeo"] = {
"Aeolic Greek",
406373,
"grc",
aliases = {"Lesbic Greek", "Lesbian Greek", "Aeolian Greek"},
}
m["grc-arc"] = {
"Arcadian Greek",
nil,
"grc-arp",
}
m["grc-arp"] = {
"Arcadocypriot Greek",
499602,
"grc",
}
m["grc-att"] = {
"Attic Greek",
506588,
"grc",
}
m["grc-boi"] = {
"Boeotian Greek",
406373,
"grc-aeo",
}
m["grc-cyp"] = {
"Cypriot Ancient Greek", -- to distinguish from Cypriot Greek below
nil,
"grc-arp",
}
m["grc-dor"] = {
"Doric Greek",
285494,
"grc",
}
m["grc-ela"] = {
"Elean Greek",
nil,
"grc",
}
m["grc-epi"] = {
"Epic Greek",
990062,
"grc",
aliases = {"Homeric Greek"},
}
m["grc-ion"] = {
"Ionic Greek",
504165,
"grc",
}
m["grc-koi"] = {
"Koine Greek",
107358,
"grc",
ancestors = "grc-att",
aliases = {"Hellenistic Greek"},
}
m["grc-kre"] = {
"Cretan Ancient Greek", -- to distinguish from Cretan Greek below
nil,
"grc-dor",
}
m["grc-opl"] = {
"Opuntian Locrian",
nil,
"grc",
}
m["grc-ozl"] = {
"Ozolian Locrian",
nil,
"grc",
}
m["grc-pam"] = {
"Pamphylian Greek",
2271793,
"grc",
}
m["grc-ths"] = {
"Thessalian Greek",
406373,
"grc-aeo",
}
m["gkm"] = {
"Medieval Greek",
36387,
"grc",
ancestors = "grc-koi",
aliases = {"Byzantine Greek"},
}
m["el-cyp"] = {
"Cypriot Greek",
245899,
"el",
aliases = {"Cypriotic Greek"},
}
m["el-pap"] = {
"Paphian Greek",
nil,
"el",
}
m["el-crt"] = {
"Cretan Greek",
588306,
"el",
}
m["el-kth"] = {
"Katharevousa",
35961,
"el",
"Polyt",
ancestors = "gkm",
aliases = {"Katharevousa Greek"},
-- Polyt display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["el-kal"] = {
"Kaliarda",
12878658,
"el",
}
--------------------------------------------------------------------------------------
-- Hittite varieties --
--------------------------------------------------------------------------------------
m["htx"] = {
"Middle Hittite",
12642599,
"hit",
}
m["nei"] = {
"Neo-Hittite",
41499830,
"hit",
aliases = {"New Hittite"},
}
m["oht"] = {
"Old Hittite",
41499994,
"hit",
}
--------------------------------------------------------------------------------------
-- Indo-Iranian varieties --
--------------------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Indo-Aryan varieties --
-------------------------------------------------------------------------
-- reconstructed intermediate stages
m["pra-pro"] = {
"Proto-New Indo-Aryan",
nil,
"pra",
}
m["inc-ash-pro"] = {
"Proto-Middle Indo-Aryan",
nil,
"inc-ash",
}
m["inc-mit"] = {
"Mitanni",
1986700,
"inc-pro",
}
m["bra-old"] = {
"Old Braj",
nil,
"bra",
}
-- Apabhramsas
m["inc-aav"] = {
"Avahattha",
nil,
"inc-apa",
aliases = {"Abahattha"},
}
m["inc-asa"] = {
"Sauraseni Apabhramsa",
nil,
"inc-apa",
}
m["inc-agu"] = {
"Gurjara Apabhramsa",
nil,
"inc-apa",
}
m["inc-aka"] = {
"Kasmiri Apabhramsa",
nil,
"inc-apa",
}
m["inc-ama"] = {
"Maharastri Apabhramsa",
nil,
"inc-apa",
}
m["inc-ata"] = {
"Takka Apabhramsa",
nil,
"inc-apa",
}
m["inc-avr"] = {
"Vracada Apabhramsa",
nil,
"inc-apa",
}
-- Khortha varieties
m["inc-khr-par"] = {
"Parnadiya Khortha",
nil,
"inc-khr",
}
-- Assamese varieties
m["as-bkm"] = {
"Barpetia Kamrupi Assamese",
30642960,
"as",
}
m["as-nkm"] = {
"Nalbaria Kamrupi Assamese",
85787678,
"as",
}
m["as-pkm"] = {
"Palasbaria Kamrupi Assamese",
nil,
"as",
}
-- Bengali varieties
m["bn-dvn"] = {
"Dhakaiya Vaṅga Bengali",
48726851,
"bn", -- Eastern Bengali variety
}
m["bn-nvn"] = {
"Noakhailla Vaṅga Bengali",
107548681,
"bn", -- Eastern Bengali variety
}
-- Dhivehi varieties
m["dv-old"] = {
"Old Dhivehi",
117790875,
"dv",
}
m["dv-mul"] = {
"Mulaku Dhivehi",
nil,
"dv",
aliases = {"Mulaku Divehi", "Mulaku Bas"},
}
m["dv-huv"] = {
"Huvadhu Dhivehi",
nil,
"dv",
aliases = {"Huvadhu Divehi", "Huvadhu Bas"},
}
m["dv-add"] = {
"Addu Dhivehi",
nil,
"dv",
aliases = {"Addu Divehi", "Addu Bas"},
}
-- Gujarati varieties
m["gu-kat"] = {
"Kathiyawadi",
nil,
"gu",
aliases = {"Kathiyawadi Gujarati", "Kathiawadi"},
}
m["gu-lda"] = {
"Lisan ud-Dawat Gujarati",
nil,
"gu",
aliases = {"Lisan ud-Dawat", "LDA"},
}
-- Hindi varieties
m["hi-mum"] = {
"Bombay Hindi",
3543151,
"hi",
aliases = {"Mumbai Hindi", "Bambaiyya Hindi"},
}
m["hi-mid"] = {
"Middle Hindi",
nil,
"inc-ohi",
ancestors = "inc-ohi",
}
-- Konkani varieties
m["kok-mid"] = {
"Middle Konkani",
nil,
"kok",
aliases = {"Medieval Konkani"},
}
m["kok-old"] = {
"Old Konkani",
nil,
"kok",
aliases = {"Early Konkani"},
}
-- Prakrits
m["pra-ard"] = {
"Ardhamagadhi Prakrit",
35217,
"pra",
aliases = {"Ardhamagadhi"},
}
m["pra-hel"] = {
"Helu Prakrit",
15080869,
"pra",
aliases = {"Elu", "Elu Prakrit", "Helu"},
}
m["pra-kha"] = {
"Khasa Prakrit",
nil,
"pra",
aliases = {"Khasa"},
}
m["pra-mag"] = {
"Magadhi Prakrit", -- Not to be confused with Magahi (mag)
2652214,
"pra",
aliases = {"Magadhi"},
}
m["pra-mah"] = {
"Maharastri Prakrit",
2586773,
"pra",
aliases = {"Maharashtri Prakrit", "Maharastri", "Maharashtri"},
}
m["pra-pai"] = {
"Paisaci Prakrit",
2995607,
"pra-sau",
aliases = {"Paisaci", "Paisachi"},
ancestors = "pra-sau"
}
m["pra-sau"] = {
"Sauraseni Prakrit",
2452885,
"pra",
aliases = {"Sauraseni", "Shauraseni"},
}
m["pra-ava"] = {
"Avanti",
nil,
"pra",
aliases = {"Avanti Prakrit"},
}
m["pra-pra"] = {
"Pracya",
nil,
"pra",
aliases = {"Pracya Prakrit"},
}
m["pra-bah"] = {
"Bahliki",
nil,
"pra",
aliases = {"Bahliki Prakrit"},
}
m["pra-dak"] = {
"Daksinatya",
nil,
"pra",
aliases = {"Daksinatya Prakrit"},
}
m["pra-sak"] = {
"Sakari",
nil,
"pra",
aliases = {"Sakari Prakrit"},
}
m["pra-can"] = {
"Candali",
nil,
"pra",
aliases = {"Candali Prakrit"},
}
m["pra-sab"] = {
"Sabari",
nil,
"pra",
aliases = {"Sabari Prakrit"},
}
m["pra-abh"] = {
"Abhiri",
nil,
"pra",
aliases = {"Abhiri Prakrit"},
}
m["pra-dra"] = {
"Dramili",
nil,
"pra",
aliases = {"Dramili Prakrit"},
}
m["pra-odr"] = {
"Odri",
nil,
"pra",
aliases = {"Odri Prakrit"},
}
-- Punjabi varieties
m["pnb"] = {
"Western Punjabi",
58635,
"pa",
"Aran",
}
-- Sanskrit varieties
m["vsn"] = {
"Vedic Sanskrit",
36858,
"sa",
}
m["cls"] = {
"Classical Sanskrit",
9333703,
"sa",
}
m["sa-bhs"] = {
"Buddhist Hybrid Sanskrit",
248758,
"sa",
}
m["sa-bra"] = {
"Brahmanic Sanskrit",
139822891,
"vsn",
}
m["sa-epi"] = {
"Epic Sanskrit",
56702805,
"cls",
}
m["sa-neo"] = {
"New Sanskrit",
nil,
"sa",
}
m["sa-rig"] = {
"Rigvedic Sanskrit",
139822680,
"vsn",
}
-- Sinhalese varieties
m["si-med"] = {
"Medieval Sinhalese",
nil,
"si",
aliases = {"Medieval Sinhala"},
}
-------------------------------------------------------------------------
-- Iranian varieties --
-------------------------------------------------------------------------
m["qsb-bma"] = {
"the BMAC substrate",
133187435,
"und",
family = "qfa-sub",
aliases = {"the Bactria-Margiana substrate", "the Bactria-Margiana Archaeological Complex substrate"},
}
-- Historical and current Iranian dialects
m["ae-old"] = {
"Old Avestan",
29572,
"ae",
aliases = {"Gathic Avestan"},
}
m["ae-yng"] = {
"Younger Avestan",
29572,
"ae-old",
aliases = {"Young Avestan"},
}
m["bcc"] = {
"Southern Balochi",
33049,
"bal",
aliases = {"Southern Baluchi"},
}
m["bgp"] = {
"Eastern Balochi",
33049,
"bal",
aliases = {"Eastern Baluchi"},
}
m["bgn"] = {
"Western Balochi",
33049,
"bal",
aliases = {"Western Baluchi"},
}
m["bsg-ban"] = {
"Bandari",
nil,
"bsg",
}
m["bsg-hor"] = {
"Hormozi",
nil,
"bsg",
}
m["bsg-min"] = {
"Minabi",
nil,
"bsg",
}
m["kho-old"] = {
"Old Khotanese",
nil,
"kho",
}
m["kho-lat"] = {
"Late Khotanese",
nil,
"kho-old",
}
m["peo-ear"] = {
"Early Old Persian",
nil,
"peo",
}
m["peo-lat"] = {
"Late Old Persian",
nil,
"peo",
}
m["pal-ear"] = {
"Early Middle Persian",
nil,
"pal",
}
m["pal-lat"] = {
"Late Middle Persian",
nil,
"pal",
ancestors = "pal-ear",
}
m["ps-nwe"] = {
"Northwestern Pashto",
nil,
"ps",
}
m["ps-cgi"] = {
"Central Ghilzay",
nil,
"ps-nwe",
}
m["ps-mah"] = {
"Mahsudi",
nil,
"ps-nwe",
}
m["ps-nea"] = {
"Northeastern Pashto",
nil,
"ps",
}
m["ps-afr"] = {
"Afridi",
nil,
"ps-nea",
}
m["ps-bng"] = {
"Bangash",
nil,
"ps-nea",
}
m["ps-xat"] = {
"Khatak",
nil,
"ps-nea",
}
m["ps-pes"] = {
"Peshawari",
nil,
"ps-nea",
}
m["ps-sea"] = {
"Southeastern Pashto",
nil,
"ps",
}
m["ps-ban"] = {
"Bannu",
nil,
"ps-sea",
}
m["ps-kak"] = {
"Kakari",
nil,
"ps-sea",
}
m["ps-ser"] = {
"Sher",
nil,
"ps-sea",
}
m["ps-waz"] = {
"Waziri",
12274473,
"ps-sea",
}
m["ps-swe"] = {
"Southwestern Pashto",
nil,
"ps",
}
m["ps-kan"] = {
"Kandahari",
nil,
"ps-swe",
}
m["ps-jad"] = {
"Jadrani",
nil,
"ps",
ancestors = "ira-pat-pro"
}
m["xme-azr"] = {
"Old Azari",
nil,
"xme-ott",
aliases = {"Old Azeri", "Azari", "Azeri", "Āḏarī", "Adari", "Adhari"},
}
m["xme-ttc-cen"] = {
"Central Tati",
nil,
"xme-ott",
}
m["xme-ttc-eas"] = {
"Eastern Tati",
nil,
"xme-ott",
}
m["xme-ttc-nor"] = {
"Northern Tati",
nil,
"xme-ott",
}
m["xme-ttc-sou"] = {
"Southern Tati",
nil,
"xme-ott",
}
m["xme-ttc-wes"] = {
"Western Tati",
nil,
"xme-ott",
}
m["xmn"] = {
"Manichaean Middle Persian",
nil,
"pal-lat",
}
m["fa-ear"] = {
"Early New Persian",
127413796,
"fa",
ancestors = "pal-lat",
translit = "fa-cls-translit",
}
m["fa-cls"] = {
"Classical Persian",
9168,
"fa",
ancestors = "fa-ear",
translit = "fa-cls-translit",
}
m["fa-ira"] = {
"Iranian Persian",
3513637,
"fa",
aliases = {"Modern Persian", "Western Persian"},
translit = "fa-ira-translit",
}
m["prs"] = {
"Dari",
178440,
"fa",
aliases = {"Dari Persian", "Central Persian", "Eastern Persian", "Afghan Persian"},
translit = "fa-cls-translit",
}
m["haz"] = {
"Hazaragi",
33398,
"prs",
translit = "fa-cls-translit",
}
m["os-dig"] = {
"Digor Ossetian",
3027861,
"os",
aliases = {"Digoron", "Digor"},
}
m["os-iro"] = {
"Iron Ossetian",
nil,
"os",
aliases = {"Iron"},
}
m["sog-ear"] = {
"Early Sogdian",
nil,
"sog",
}
m["sog-lat"] = {
"Late Sogdian",
nil,
"sog-ear",
}
m["ro-MD"] = {
"Moldovan",
36392,
"ro",
aliases = {"Moldavian"},
}
m["oru-kan"] = {
"Kaniguram",
6363164,
"oru",
}
m["oru-log"] = {
"Logar",
nil,
"oru",
}
m["oos"] = {
"Old Ossetic",
65455882,
"xln",
}
m["oos-ear"] = {
"Early Old Ossetic",
nil,
"oos",
}
m["oos-lat"] = {
"Late Old Ossetic",
nil,
"oos",
}
m["rdb-jir"] = {
"Jirofti",
nil,
"rdb",
}
m["rdb-kah"] = {
"Kahnuji",
nil,
"rdb",
}
-- Southwestern Fars lects
m["fay-bur"] = {
"Burenjani",
nil,
"fay",
}
m["fay-bsh"] = {
"Bushehri",
nil,
"fay",
}
m["fay-dsh"] = {
"Dashtaki",
nil,
"fay",
}
m["fay-dav"] = {
"Davani",
5228140,
"fay",
}
m["fay-eze"] = {
"Emamzada Esmaili",
nil,
"fay",
}
m["fay-gav"] = {
"Gavkoshaki",
nil,
"fay",
}
m["fay-kho"] = {
"Khollari",
nil,
"fay",
}
m["fay-kon"] = {
"Kondazi",
nil,
"fay",
}
m["fay-kzo"] = {
"Old Kazeruni",
nil,
"fay",
}
m["fay-mas"] = {
"Masarami",
nil,
"fay",
}
m["fay-pap"] = {
"Papuni",
nil,
"fay",
}
m["fay-sam"] = {
"Samghani",
nil,
"fay",
}
m["fay-shr"] = {
"Shirazi",
nil,
"fay",
}
m["fay-sho"] = {
"Old Shirazi",
nil,
"fay",
}
m["fay-kar"] = {
"Khargi",
nil,
"fay",
}
m["fay-sor"] = {
"Sorkhi",
nil,
"fay",
}
-- Talysh lects
m["tly-cen"] = {
"Central Talysh",
nil,
"tly",
}
m["tly-asa"] = {
"Asalemi",
nil,
"tly-cen",
}
m["tly-kar"] = {
"Karganrudi",
nil,
"tly-cen",
}
m["tly-tul"] = {
"Tularudi",
nil,
"tly-cen",
}
m["tly-tal"] = {
"Taleshdulabi",
nil,
"tly-cen",
}
m["tly-nor"] = {
"Northern Talysh",
nil,
"tly",
}
m["tly-aze"] = {
"Azerbaijani Talysh",
nil,
"tly-nor",
}
m["tly-anb"] = {
"Anbarani",
nil,
"tly-nor",
}
m["tly-sou"] = {
"Southern Talysh",
nil,
"tly",
}
m["tly-fum"] = {
"Fumani",
nil,
"tly-sou",
}
m["tly-msu"] = {
"Masulei",
nil,
"tly-sou",
}
m["tly-msa"] = {
"Masali",
nil,
"tly-sou",
}
m["tly-san"] = {
"Shandarmani",
nil,
"tly-sou",
}
-- Tafreshi lects
m["xme-amo"] = {
"Amorehi",
nil,
"xme-taf",
}
m["atn"] = {
"Ashtiani",
3436590,
"xme-taf",
}
m["xme-bor"] = {
"Borujerdi",
nil,
"xme-taf",
}
m["xme-ham"] = {
"Hamadani",
6302426,
"xme-taf",
}
m["xme-kah"] = {
"Kahaki",
nil,
"xme-taf",
}
m["vaf"] = {
"Vafsi",
32611,
"xme-taf",
}
-- Kermanic lects
m["kfm"] = {
"Khunsari",
6403030,
"xme-ker",
}
m["xme-mah"] = {
"Mahallati",
nil,
"xme-ker",
}
m["xme-von"] = {
"Vonishuni",
nil,
"xme-ker",
}
m["xme-bdr"] = {
"Badrudi",
nil,
"xme-ker",
}
m["xme-del"] = {
"Delijani",
nil,
"xme-ker",
}
m["xme-kas"] = {
"Kashani",
nil,
"xme-ker",
}
m["xme-kes"] = {
"Kesehi",
nil,
"xme-ker",
}
m["xme-mey"] = {
"Meymehi",
nil,
"xme-ker",
}
m["ntz"] = {
"Natanzi",
6968399,
"xme-ker",
}
m["xme-abz"] = {
"Abuzeydabadi",
nil,
"xme-ker",
}
m["xme-aby"] = {
"Abyanehi",
nil,
"xme-ker",
}
m["xme-far"] = {
"Farizandi",
nil,
"xme-ker",
}
m["xme-jow"] = {
"Jowshaqani",
nil,
"xme-ker",
}
m["xme-nas"] = {
"Nashalji",
nil,
"xme-ker",
}
m["xme-qoh"] = {
"Qohrudi",
nil,
"xme-ker",
}
m["xme-yar"] = {
"Yarandi",
nil,
"xme-ker",
}
m["soj"] = {
"Soi",
7930463,
"xme-ker",
aliases = {"Sohi"},
}
m["xme-tar"] = {
"Tari",
nil,
"xme-ker",
}
m["gzi"] = {
"Gazi",
5529130,
"xme-ker",
}
m["xme-sed"] = {
"Sedehi",
nil,
"xme-ker",
}
m["xme-ard"] = {
"Ardestani",
nil,
"xme-ker",
}
m["xme-zef"] = {
"Zefrehi",
nil,
"xme-ker",
}
m["xme-isf"] = {
"Isfahani",
nil,
"xme-ker",
}
m["xme-kaf"] = {
"Kafroni",
nil,
"xme-ker",
}
m["xme-vrz"] = {
"Varzenehi",
nil,
"xme-ker",
}
m["xme-xur"] = {
"Khuri",
nil,
"xme-ker",
}
m["nyq"] = {
"Nayini",
6983146,
"xme-ker",
}
m["xme-ana"] = {
"Anaraki",
nil,
"xme-ker",
}
m["gbz"] = {
"Zoroastrian Dari",
32389,
"xme-ker",
aliases = {"Behdināni", "Gabri", "Gavrŭni", "Gabrōni"},
}
m["xme-krm"] = {
"Kermani",
nil,
"xme-ker",
}
m["xme-yaz"] = {
"Yazdi",
nil,
"xme-ker",
}
m["xme-bid"] = {
"Bidhandi",
nil,
"xme-ker",
}
m["xme-bij"] = {
"Bijagani",
nil,
"xme-ker",
}
m["xme-cim"] = {
"Chimehi",
nil,
"xme-ker",
}
m["xme-han"] = {
"Hanjani",
nil,
"xme-ker",
}
m["xme-kom"] = {
"Komjani",
nil,
"xme-ker",
}
m["xme-nar"] = {
"Naraqi",
nil,
"xme-ker",
}
m["xme-nus"] = {
"Nushabadi",
nil,
"xme-ker",
}
m["xme-qal"] = {
"Qalhari",
nil,
"xme-ker",
}
m["xme-trh"] = {
"Tarehi",
nil,
"xme-ker",
}
m["xme-val"] = {
"Valujerdi",
nil,
"xme-ker",
}
m["xme-var"] = {
"Varani",
nil,
"xme-ker",
}
m["xme-zor"] = {
"Zori",
nil,
"xme-ker",
}
-- Ramandi lects
m["tks-ebr"] = {
"Ebrahimabadi",
nil,
"tks",
}
m["tks-sag"] = {
"Sagzabadi",
nil,
"tks",
}
m["tks-esf"] = {
"Esfarvarini",
nil,
"tks",
}
m["tks-tak"] = {
"Takestani",
nil,
"tks",
}
m["tks-cal"] = {
"Chali Tati",
nil,
"tks",
aliases = {"Chāli"},
}
m["tks-dan"] = {
"Danesfani",
nil,
"tks",
}
m["tks-xia"] = {
"Khiaraji",
nil,
"tks",
}
m["tks-xoz"] = {
"Khoznini",
nil,
"tks",
}
-- Shughni dialects
m["sgh-bro"] = {
"Bartangi-Oroshori",
nil,
"sgh",
}
m["sgh-bar"] = {
"Bartangi",
nil,
"sgh-bro",
}
m["sgh-oro"] = {
"Oroshori",
nil,
"sgh-bro",
aliases = {"Roshorvi"},
}
m["sgh-rsx"] = {
"Roshani-Khufi",
nil,
"sgh",
}
m["sgh-xuf"] = {
"Khufi",
2562249,
"sgh-rsx",
aliases = {"Xufi", "Xūfī"},
}
m["sgh-ros"] = {
"Roshani",
2597566,
"sgh-rsx",
aliases = {"Rushani", "Rōšāni"},
}
m["sgh-xgb"] = {
"Khughni-Bajui",
nil,
"sgh",
}
m["sgh-xug"] = {
"Khughni",
nil,
"sgh-xgb",
}
m["sgh-baj"] = {
"Bajui",
nil,
"sgh-xgb",
}
-------------------------------------------------------------------------
-- Nuristani varieties --
-------------------------------------------------------------------------
m["bsh-kat"] = {
"Kativiri",
2605045,
"bsh",
aliases = {"Katə́viri"},
}
m["xvi"] = {
"Kamviri",
1193495,
"bsh",
aliases = {"Kamvíri"},
}
m["bsh-mum"] = {
"Mumviri",
nil,
"bsh",
aliases = {"Mumvíri"},
}
--------------------------------------------------------------------------------------
-- Italic varieties --
--------------------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Latin varieties --
-------------------------------------------------------------------------
-- Latin varieties by period
m["itc-ala"] = {
"Archaic Latin",
nil,
"la",
"Latn, Ital",
translit = {
Ital = "Ital-translit",
},
}
m["itc-ola"] = {
"Old Latin",
12289,
"la",
"Latn",
ancestors = "itc-ala",
}
m["itc-lan"] = {
"Lanuvian",
16890829,
"la",
aliases = {"Lanuvine"},
}
m["itc-pra"] = {
"Praenestine",
16889772,
"la",
aliases = {"Praenestinian"},
}
m["la-cla"] = {
"Classical Latin",
253854,
"la",
}
m["la-vul"] = {
"Vulgar Latin",
37560,
"la-cla",
}
m["la-afr"] = {
"African Romance",
162064,
"roa-pro",
}
m["la-lat"] = {
"Late Latin",
1503113,
"la",
ancestors = "la-cla",
}
m["la-med"] = {
"Medieval Latin",
1163234,
"la",
ancestors = "la-lat",
}
m["la-eme"] = {
"Early Medieval Latin",
nil,
"la-med",
}
m["la-ecc"] = {
"Ecclesiastical Latin",
1247932,
"la",
aliases = {"Church Latin", "Liturgical Latin"},
ancestors = "la-lat",
}
m["la-ren"] = {
"Renaissance Latin",
499083,
"la",
ancestors = "la-med",
}
m["la-new"] = {
"New Latin",
1248221,
"la",
aliases = {"Modern Latin"},
ancestors = "la-ren",
}
m["la-con"] = {
"Contemporary Latin",
1246397,
"la-new",
}
-------------------------------------------------------------------------
-- Miscellaneous Italic varieties --
-------------------------------------------------------------------------
m["xfa-cap"] = {
"Capenate",
133182969,
"xfa",
}
m["osc-luc"] = {
"Lucanian",
3265025,
"osc",
}
m["osc-sam"] = {
"Samnite",
133184287,
"osc",
}
-------------------------------------------------------------------------
-- Romance varieties --
-------------------------------------------------------------------------
m["roa-pro"] = {
"Proto-Romance",
3408029,
"la-lat",
ancestors = "la-vul",
}
-----------------------------------------------------
-- Catalan varieties --
-----------------------------------------------------
m["ca-val"] = {
"Valencian",
32641,
"ca",
}
-----------------------------------------------------
-- Franco-Provençal varieties --
-----------------------------------------------------
m["frp-old"] = {
"Old Franco-Provençal",
nil,
"frp",
}
-----------------------------------------------------
-- French and derived creole varieties --
-----------------------------------------------------
m["fro-nor"] = {
"Old Northern French",
2044917,
"fro",
aliases = {"Old Norman", "Old Norman French"},
}
m["fro-pic"] = {
"Picard Old French",
nil,
"fro",
}
m["xno"] = {
"Anglo-Norman",
35214,
"fro-nor",
}
m["xno-law"] = {
"Law French",
2044323,
"xno",
}
m["zrp"] = {
"Zarphatic",
36994,
"fro",
aliases = {"Judeo-French"},
pseudo_families = "qfa-jew",
}
m["fr-CA"] = {
"Canadian French",
1450506,
"fr",
}
m["fr-CH"] = {
"Swiss French",
1480152,
"fr",
}
m["fr-aca"] = {
"Acadian French",
415109,
"fr",
}
m["fr-lou"] = {
"Louisiana French",
3083213,
"fr",
}
m["fr-mis"] = {
"Missouri French",
3083210,
"fr",
}
m["frc"] = {
"Cajun French",
880301,
"fr-lou",
}
m["ht-sdm"] = {
"Saint Dominican Creole French",
nil,
"ht",
ancestors = "fr",
}
-- Norman varieties
m["nrf-grn"] = {
"Guernsey Norman",
56428,
"nrf",
aliases = {"Guernsey"},
}
m["nrf-jer"] = {
"Jersey Norman",
56430,
"nrf",
aliases = {"Jersey"},
}
-----------------------------------------------------
-- Gallo-Italic varieties --
-----------------------------------------------------
m["egl-old"] = {
"Old Emilian",
nil,
"egl",
}
m["lij-old"] = {
"Old Ligurian",
nil,
"lij",
aliases = {"Old Genoese"},
}
m["lmo-old"] = {
"Old Lombard",
97165320,
"lmo",
}
m["pms-old"] = {
"Old Piedmontese",
nil,
"pms",
aliases = {"Old Piemontese"},
}
m["vec-old"] = {
"Old Venetan",
nil,
"vec",
aliases = {"Old Venetian"},
}
m["rgn-old"] = {
"Old Romagnol",
nil,
"rgn",
}
-----------------------------------------------------
-- Italo-Romance varieties --
-----------------------------------------------------
-- Italian varieties
m["roa-oit"] = {
"Old Italian",
nil,
"it",
}
m["it-CH"] = {
"Switzerland Italian",
672147,
"it",
}
-- Other Italo-Romance varieties
m["nap-old"] = {
"Old Neapolitan",
nil,
"nap",
}
m["scn-old"] = {
"Old Sicilian",
nil,
"scn",
}
-----------------------------------------------------
-- Occitan varieties --
-----------------------------------------------------
m["oc-auv"] = {
"Auvergnat",
35359,
"oc",
aliases = {"Auvernhat", "Auvergnese"},
}
m["oc-gas"] = {
"Gascon",
35735,
"oc",
}
-- standardized dialect of Gascon
m["oc-ara"] = {
"Aranese",
10196,
"oc-gas",
}
m["oc-lan"] = {
"Languedocien",
942602,
"oc",
aliases = {"Lengadocian"},
}
m["oc-lim"] = {
"Limousin",
427614,
"oc",
}
m["oc-pro"] = {
"Provençal",
241243,
"oc",
aliases = {"Provencal"},
}
m["oc-pro-old"] = {
"Old Provençal",
2779185,
"pro",
}
m["oc-viv"] = {
"Vivaro-Alpine",
1649613,
"oc",
}
m["oc-jud"] = {
"Shuadit",
56472,
"oc",
aliases = {
"Chouhadite", "Chouhadit", "Chouadite", "Chouadit", "Shuhadit",
"Judeo-Occitan", "Judæo-Occitan", "Judaeo-Occitan",
"Judeo-Provençal", "Judæo-Provençal", "Judaeo-Provençal",
"Judeo-Provencal", "Judaeo-Provencal",
"Judeo-Comtadin", "Judæo-Comtadin", "Judaeo-Comtadin",
},
pseudo_families = "qfa-jew",
}
-----------------------------------------------------
-- Portuguese and derived creole varieties --
-----------------------------------------------------
-- Portuguese
m["pt-BR"] = {
"Brazilian Portuguese",
750553,
"pt",
}
m["pt-PT"] = {
"European Portuguese",
922399,
"pt",
}
-- Kabuverdianu (Cape Verde Creole, Cape Verdean Creole)
m["kea-bar"] = {
"Barlavento Kabuverdianu",
2217638,
"kea",
aliases = {"Barlavento", "Barlavento Creole", "Sampadjudu"},
}
m["kea-bvi"] = {
"Boa Vista Kabuverdianu",
16501837,
"kea-bar",
aliases = {"Boa Vista Creole"},
}
m["kea-sal"] = {
"Sal Kabuverdianu",
18707467,
"kea-bar",
aliases = {"Sal Creole"},
}
m["kea-saa"] = {
"Santo Antão Kabuverdianu",
18707472,
"kea-bar",
aliases = {"Santo Antão Creole"},
}
m["kea-sni"] = {
"São Nicolau Kabuverdianu",
18707549,
"kea-bar",
aliases = {"São Nicolau Creole"},
}
m["kea-svi"] = {
"São Vicente Kabuverdianu",
18707550,
"kea-bar",
aliases = {"São Vicente Creole"},
}
m["kea-sot"] = {
"Sotavento Kabuverdianu",
10261559,
"kea",
aliases = {"Sotavento", "Sotavento Creole", "Badiu"},
}
m["kea-bra"] = {
"Brava Kabuverdianu",
18670181,
"kea-sot",
aliases = {"Brava Creole"},
}
m["kea-fog"] = {
"Fogo Kabuverdianu",
18706861,
"kea-sot",
aliases = {"Fogo Creole"},
}
m["kea-mai"] = {
"Maio Kabuverdianu",
18707286,
"kea-sot",
aliases = {"Maio Creole"},
}
m["kea-san"] = {
"Santiago Kabuverdianu",
35117,
"kea-sot",
aliases = {"Santiago Creole"},
}
m["kea-alu"] = {
"ALUPEC Kabuverdianu",
375704,
"kea",
aliases = {"ALUPEC", "Alfabeto Unificado para a Escrita do Cabo-Verdiano"},
}
-----------------------------------------------------
-- Rhaeto-Romance varieties --
-----------------------------------------------------
-- Friulian varieties
m["fur-old"] = {
"Old Friulian",
nil,
"fur",
}
-- Ladin varieties
m["lld-amp"] = {
"Ampezan Ladin",
25617466,
"lld",
aliases = {"Anpezan", "Ampezan", "Ampezzan", "Ampezzano"},
}
m["lld-bad"] = {
"Badiot Ladin",
3706562,
"lld",
aliases = {"Badiot", "Badioto", "Badiotto"},
}
m["lld-cad"] = {
"Cadorino Ladin",
3706570,
"lld",
aliases = {"Cadorino"},
}
m["lld-fas"] = {
"Fascian Ladin",
742627,
"lld",
aliases = {"Fascian", "Fassano"},
}
m["lld-fod"] = {
"Fodom Ladin",
3706605,
"lld",
aliases = {"Fodom", "Livinallese"},
}
m["lld-for"] = {
"Fornes Ladin",
5470374,
"lld",
aliases = {"Fornes"},
}
m["lld-ghe"] = {
"Gherdëina Ladin",
3706597,
"lld",
aliases = {"Gherdëina", "Gardenese", "Val Gardena"},
}
m["lld-non"] = {
"Nones Ladin",
1055027,
"lld",
aliases = {"Nones", "Noneso"},
}
-- Romansh varieties
m["rm-old"] = {
"Old Romansh",
nil,
"rm",
}
m["rm-put"] = {
"Puter Romansh",
688309,
"rm",
aliases = {"Puter", "Putèr", "Upper Engadine", "rm-puter"},
}
m["rm-srm"] = {
"Surmiran Romansh",
690216,
"rm",
aliases = {"Surmiran", "rm-surmiran",
"Surmiran-Albula", -- Glottolog
},
}
m["rm-srs"] = {
"Sursilvan Romansh",
688348,
"rm",
aliases = {"Sursilvan", "rm-sursilv"},
}
m["rm-sut"] = {
"Sutsilvan Romansh",
688272,
"rm",
aliases = {"Sutsilvan", "rm-sutsilv"},
varieties = {"Scharans Sutsilvan"}, -- per Glottolog
}
m["rm-val"] = {
"Vallader Romansh",
690226,
"rm",
aliases = {"Vallader", "Putèr", "Lower Engadine", "rm-vallader"},
}
m["rm-gri"] = {
"Rumantsch Grischun",
688873,
"rm",
aliases = {"rm-rumgr"},
}
-----------------------------------------------------
-- Sardinian varieties --
-----------------------------------------------------
m["sc-old"] = {
"Old Sardinian",
nil,
"sc",
}
m["sc-src"] = {
"Logudorese",
777974,
"sc",
aliases = {"Logudorese Sardinian"},
}
m["sc-nuo"] = {
"Nuorese",
nil,
"sc-src",
aliases = {"Nuorese Sardinian"},
}
m["sc-sro"] = {
"Campidanese",
35348,
"sc",
aliases = {"Campidanese Sardinian"},
}
-----------------------------------------------------
-- Spanish varieties --
-----------------------------------------------------
m["es-ear"] = {
"Early Modern Spanish",
5364419,
"es",
}
m["es-AR"] = {
"Rioplatense Spanish",
509780,
"es",
}
m["es-BO"] = {
"Bolivian Spanish",
510730,
"es",
}
m["es-CL"] = {
"Chilean Spanish",
857295,
"es",
}
m["es-CO"] = {
"Colombian Spanish",
1115875,
"es",
}
m["es-CU"] = {
"Cuban Spanish",
824909,
"es",
}
m["es-MX"] = {
"Mexican Spanish",
616620,
"es",
}
m["es-PE"] = {
"Peruvian Spanish",
736236,
"es",
}
m["es-PH"] = {
"Philippine Spanish",
22091406,
"es",
}
m["es-US"] = {
"United States Spanish",
2301077,
"es",
aliases = {"US Spanish"},
}
--use label "US Spanish" to put Spanish terms in this category
m["es-PR"] = {
"Puerto Rican Spanish",
7258609,
"es",
}
m["es-VE"] = {
"Venezuelan Spanish",
840017,
"es",
}
m["es-lun"] = {
"Lunfardo",
1401612,
"es",
}
----------------------------------------------------------------------------------------------------------------------
-- Japonic varieties --
----------------------------------------------------------------------------------------------------------------------
-- Japanese varieties
m["ja-mid"] = {
"Middle Japanese",
6841474,
"ojp",
ancestors = "ojp",
}
m["ja-mid-ear"] = {
"Early Middle Japanese",
182695,
"ja-mid",
}
m["ja-mid-lat"] = {
"Late Middle Japanese",
1816184,
"ja-mid",
ancestors = "ja-mid-ear",
}
m["ja-ear"] = {
"Early Modern Japanese",
5326692,
"ja",
ancestors = "ja-mid-lat",
}
m["ojp-eas"] = {
"Eastern Old Japanese",
65247957,
"ojp",
}
m["ja-cla"] = {
"Classical Japanese",
1332057,
"ja",
-- FIXME: This is redundant because Classical Japanese is considered a child of (Modern) Japanese, which has ja-mid-ear
-- (as well as ja-mid-lat) as ancestors. However, the intent here is that the *direct* ancestor of ja-cla is ja-mid-ear
-- and ja-mid-lat is not an ancestor. Need to rethink ancestor handling.
-- ancestors = "ja-mid-ear",
}
----------------------------------------------------------------------------------------------------------------------
-- Koreanic varieties --
----------------------------------------------------------------------------------------------------------------------
-- Korean varieties
m["ko-KR"] = {
"South Korean standard",
18795,
"ko",
aliases = {"South Korean","Pyojuneo","P'yojunŏ"},
}
m["ko-KP"] = {
"North Korean standard",
18784,
"ko",
aliases = {"North Korean","Munhwa'eo","Munhwa'ŏ"},
}
m["oko-lat"] = {
"Late Old Korean",
nil,
"oko",
}
m["okm-ear"] = {
"Early Middle Korean",
nil,
"okm",
}
m["ko-cen"] = {
"Central Korean",
nil,
"ko",
}
m["ko-gyg"] = {
"Gyeonggi Korean",
485492,
"ko-cen",
aliases = {"Seoul Korean"},
}
m["ko-chu"] = {
"Chungcheong Korean",
625800,
"ko-cen",
aliases = {"Hoseo Korean"},
}
m["ko-hwa"] = {
"Hwanghae Korean",
16183706,
"ko-cen",
}
m["ko-gan"] = {
"Gangwon Korean",
11260444,
"ko-cen",
aliases = {"Yeongdong Korean"},
}
m["ko-gys"] = {
"Gyeongsang Korean",
488002,
"ko",
aliases = {"Southeastern Korean"},
}
m["ko-jeo"] = {
"Jeolla Korean",
11250166,
"ko",
aliases = {"Southwestern Korean"},
}
m["ko-pyo"] = {
"Pyongan Korean",
7263142,
"ko",
aliases = {"Northwestern Korean"},
}
m["ko-ham"] = {
"Hamgyong Korean",
860702,
"ko",
aliases = {"Northeastern Korean"},
}
m["ko-yuk"] = {
"Yukjin Korean",
16171275,
"ko",
aliases = {"Yukchin Korean", "Ryukjin Korean", "Ryukchin Korean"},
}
----------------------------------------------------------------------------------------------------------------------
-- Mongolic varieties --
----------------------------------------------------------------------------------------------------------------------
m["xng-ear"] = {
"Early Middle Mongol",
nil,
"xng",
}
m["xng-lat"] = {
"Late Middle Mongol",
nil,
"xng",
ancestors = "xng-ear",
}
m["mn-kha"] = {
"Khalkha Mongolian",
6399808,
"mn",
aliases = {"Khalkha"},
}
m["mn-ord"] = {
"Ordos Mongolian",
716904,
"mn",
aliases = {"Ordos"},
}
m["mn-cha"] = {
"Chakhar Mongolian",
907425,
"mn",
aliases = {"Chakhar"},
}
m["mn-khr"] = {
"Khorchin Mongolian",
3196210,
"mn",
aliases = {"Khorchin"},
}
----------------------------------------------------------------------------------------------------------------------
-- Niger-Congo varieties --
----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-- Akan varieties --
-----------------------------------------------------
m["tw"] = {
"Twi Akan",
36850,
"ak",
aliases = {"Twi"},
}
m["abr"] = {
"Abron",
34831,
"tw",
aliases = {"Brong", "Bono", "Bono Twi"},
}
m["tw-asa"] = {
"Asante Twi",
19261685,
"tw",
aliases = {"Asante", "Ashanti", "Ashante"},
}
m["tw-aku"] = {
"Akuapem Twi",
31150449,
"tw",
aliases = {"Akuapem", "Akuapim", "Akwapem Twi", "Akwapi"},
}
m["fat"] = {
"Fante Akan",
35570,
"ak",
aliases = {"Fante", "Fanti", "Fantse", "Mfantse"},
}
m["wss"] = {
"Wasa",
36914,
"ak",
}
-- creole
m["alv-kro"] = {
"Kromanti",
1093206,
"crp-mar",
}
-----------------------------------------------------
-- Bantu varieties --
-----------------------------------------------------
m["bnt-cmn"] = {
"Common Bantu",
nil,
"bnt-pro",
}
m["xh-bha"] = {
"Bhaca",
4900493,
"xh",
aliases = {"isiBhaca", "IsiBhaca"},
}
-- Rwanda-Rundi varieties
m["rw-kin"] = {
"Kinyarwanda",
33573,
"rw",
aliases = {"Rwanda"},
}
m["rw-run"] = {
"Kirundi",
33583,
"rw",
aliases = {"Rundi"},
}
-----------------------------------------------------
-- Fula varieties --
-----------------------------------------------------
m["fuc"] = {
"Pulaar",
1420205,
"ff",
}
m["fuf"] = {
"Pular",
3915357,
"ff",
}
m["ffm"] = {
"Maasina Fulfulde",
3915322,
"ff",
}
m["fue"] = {
-- no enwiki entry as of yet but frwiki and pmswiki have one
"Borgu Fulfulde",
12952426,
"ff",
}
m["fuh"] = {
-- no enwiki entry as of yet but frwiki and pmswiki have one
"Western Niger Fulfulde",
12952430,
"ff",
}
m["fuq"] = {
-- no enwiki entry as of yet but frwiki, hrwiki and pmswiki have one
"Central-Eastern Niger Fulfulde",
12628799,
"ff",
}
m["fuv"] = {
-- no enwiki entry as of yet but dewiki, frwiki, hrwiki, pmswiki and swwiki have one
"Nigerian Fulfulde",
36129,
"ff",
}
m["fub"] = {
-- no enwiki entry as of yet but dewiki, frwiki, hrwiki, pmswiki, ptwiki, swwiki and yowiki have one
"Adamawa Fulfulde",
34776,
"ff",
}
m["fui"] = {
-- no enwiki entry as of yet but pmswiki and swwiki have one
"Bagirmi Fulfulde",
11003859,
"ff",
}
----------------------------------------------------------------------------------------------------------------------
-- Papuan varieties --
----------------------------------------------------------------------------------------------------------------------
m["kze"] = {
"Kosena",
12952663,
"auy",
}
m["ont"] = {
"Ontenu",
3352827,
"gaj",
aliases = {"Ontena"},
}
----------------------------------------------------------------------------------------------------------------------
-- Salishan varieties --
----------------------------------------------------------------------------------------------------------------------
m["lut-nor"] = {
"Northern Lushootseed",
nil,
"lut",
aliases = {"Northern Puget Sound Salish"},
}
m["slh"] = {
"Southern Lushootseed",
7997684,
"lut",
aliases = {"Southern Puget Sound Salish", "Twulshootseed", "Whulshootseed"},
}
m["ska"] = {
"Skagit",
12642471,
"lut-nor",
}
m["sno"] = {
"Snohomish",
25559662,
"lut-nor",
}
----------------------------------------------------------------------------------------------------------------------
-- Sino-Tibetan varieties --
----------------------------------------------------------------------------------------------------------------------
m["tbq-pro"] = {
"Proto-Tibeto-Burman",
7251864,
"sit-pro",
}
-----------------------------------------------------
-- Chinese varieties --
-----------------------------------------------------
------------- Old Chinese, Middle Chinese -------------
m["och-ear"] = {
"Early Old Chinese",
nil,
"och",
}
m["och-lat"] = {
"Late Old Chinese",
nil,
"och",
}
m["ltc-ear"] = {
"Early Middle Chinese",
nil,
"ltc",
}
m["ltc-lat"] = {
"Late Middle Chinese",
nil,
"ltc",
}
------------- Classical/Literary varieties -------------
-- FIXME: Temporary.
m["lzh-shi"] = {
"Traditional Chinese poetry",
1759242,
"lzh",
}
-- FIXME: Temporary.
m["lzh-cii"] = {
"Ci",
1091366,
"lzh",
}
-- FIXME: Temporary.
m["lzh-yue"] = {
"Classical Cantonese",
nil,
"lzh",
}
-- FIXME: Temporary.
m["lzh-cmn"] = {
"Classical Mandarin",
nil,
"lzh",
}
-- FIXME: Temporary.
m["lzh-tai"] = {
"Classical Taishanese",
nil,
"lzh",
}
-- FIXME: Temporary.
m["lzh-cmn-TW"] = {
"Classical Taiwanese Mandarin",
nil,
"lzh-cmn",
}
-- FIXME: Temporary.
m["lzh-VI"] = {
"Vietnamese Classical Chinese",
17034227,
"lzh",
}
-- FIXME: Temporary.
m["lzh-KO"] = {
"Korean Classical Chinese",
10496257,
"lzh",
ietf_subtag = "lzh-KR" -- KR = South Korea, as there is no code for Korea as a whole
}
-- FIXME: Temporary.
m["lzh-lit"] = {
"Literary Chinese",
nil,
"lzh",
}
-- FIXME: Temporary. FIXME: Do we need this? How does it differ from Old Chinese?
m["lzh-pre"] = {
"Pre-Classical Chinese",
nil,
"lzh",
}
------------- Written Vernacular varieties -------------
-- FIXME: Temporary.
m["cmn-wvc"] = {
"Written vernacular Mandarin",
783605,
"cmn",
}
-- FIXME: Temporary. FIXME: How does this differ from "Literary Cantonese"?
m["yue-wvc"] = {
"Written vernacular Cantonese",
nil,
"yue",
}
-- FIXME: Temporary.
m["zhx-tai-wvc"] = {
"Written vernacular Taishanese",
nil,
"zhx-tai",
}
------------- Mandarin varieties -------------
-- FIXME: Temporary. NOTE: The Linguist List assigns the "w:Beijing dialect" (Wikidata 1147606) the code "cmn-bej" and
-- the larger "w:Beijing Mandarin (division of Mandarin)" dialect group (Wikidata 2169652; what we call "Beijingic
-- Mandarin", after Glottolog) the code "cmn-bei".
m["cmn-bei"] = {
"Beijing Mandarin",
1147606,
"cmn-bec",
}
-- FIXME: Temporary.
m["cmn-bec"] = {
"Beijingic Mandarin",
2169652,
"cmn",
}
-- FIXME: Temporary. NOTE: The Linguist List uses the code cmn-zho.
m["cmn-cep"] = {
"Central Plains Mandarin",
3048775,
"cmn",
aliases = {"Zhongyuan Mandarin"},
}
m["cmn-ear"] = {
"Early Mandarin",
837169,
"cmn",
ancestors = "ltc",
}
-- FIXME: Temporary.
m["cmn-gua"] = {
"Guanzhong Mandarin",
3431648,
"cmn-cep",
}
-- FIXME: Temporary. Appears to be a subdialect of Guiliu Mandarin, which in turn is a subdialect of Southwestern Mandarin.
m["cmn-gui"] = {
"Guilin Mandarin",
11111636,
"cmn-sow",
}
m["cmn-jhu"] = {
"Jianghuai Mandarin",
2128953,
"cmn",
aliases = {"Lower Yangtze Mandarin"},
}
-- FIXME: Temporary.
m["cmn-lan"] = {
"Lanyin Mandarin",
662754,
"cmn",
}
-- FIXME: Temporary.
m["cmn-MY"] = {
"Malaysian Mandarin",
13646143,
"cmn",
}
-- FIXME: Temporary.
m["cmn-nan"] = {
"Nanjing Mandarin",
2681098,
"cmn-jhu",
}
-- FIXME: Temporary.
m["cmn-noe"] = {
"Northeastern Mandarin",
1064504,
"cmn",
}
-- FIXME: Temporary.
m["cmn-PH"] = {
"Philippine Mandarin",
7185155,
"cmn",
}
-- FIXME: Temporary.
m["cmn-SG"] = {
"Singapore Mandarin",
1048980,
"cmn",
}
-- FIXME: Temporary.
m["cmn-sow"] = {
"Southwestern Mandarin",
2609239,
"cmn",
}
-- FIXME: Temporary. Appears to be a subdialect of Jilu Mandarin.
m["cmn-tia"] = {
"Tianjin Mandarin",
7800220,
"cmn",
}
-- FIXME: Temporary. NOTE: Wikidata also has Q4380827 "Taiwanese Mandarin", defined as "rare dialect of Standard Chinese
-- (Mandarin) used in Taiwan, which is strongly influenced by Taiwanese Hokkien; mostly used by elderlies" and having no
-- English Wikipedia article (but see w:zh:臺灣國語).
m["cmn-TW"] = {
"Taiwanese Mandarin",
262828,
"cmn",
}
-- FIXME: Temporary. Appears to be a subdialect of Wu-Tian Mandarin, in turn a subdialect of Southwestern Mandarin.
-- Given the code cmn-xwu in the Linguist List.
m["cmn-wuh"] = {
"Wuhan Mandarin",
11124731,
"cmn-sow",
aliases = {"Wuhanese"},
}
-- FIXME: Temporary. Appears to be a subdialect of Lanyin Mandarin.
m["cmn-xin"] = {
"Xining Mandarin",
nil,
"cmn-lan",
}
-- FIXME: Temporary.
m["cmn-yan"] = {
"Yangzhou Mandarin",
nil,
"cmn-jhu",
}
------------- Cantonese varieties -------------
-- FIXME: Temporary.
m["yue-gua"] = {
"Guangzhou Cantonese",
nil,
"yue",
}
-- FIXME: Temporary. Given the codes yue-yue or yue-can in the Linguist List.
m["yue-HK"] = {
"Hong Kong Cantonese",
5894342,
"yue",
}
-- FIXME: Temporary. FIXME: How does this differ from "Written vernacular Cantonese"?
m["yue-lit"] = {
"Literary Cantonese",
2472605,
"yue",
}
------------- Wu varieties -------------
m["wuu-han"] = {
"Hangzhounese",
5648144,
"wuu",
}
m["wuu-nin"] = {
"Ningbonese",
3972199,
"wuu",
}
-- FIXME: Temporary.
m["wuu-nor"] = {
"Northern Wu",
7675988,
"wuu",
aliases = {"Taihu Wu"},
}
-- FIXME: Temporary? Subvariety of Taihu Wu. NOTE: "chm" stands for Chongming, the main dialect, to avoid a conflict
-- with Shanghainese.
m["wuu-chm"] = {
"Shadi Wu",
6112340,
"wuu-nor",
}
m["wuu-sha"] = {
"Shanghainese",
36718,
"wuu-nor",
}
m["wuu-suz"] = {
"Suzhounese",
831744,
"wuu-nor",
}
-- FIXME: Temporary. May be converted into a full language and/or split.
m["wuu-wen"] = {
"Wenzhounese",
710218,
"wuu",
}
------------- Xiang varieties -------------
m["hsn-lou"] = {
"Loudi Xiang",
10943823,
"hsn-old",
}
m["hsn-hya"] = {
"Hengyang Xiang",
20689035,
"hsn-hzh",
}
m["hsn-hzh"] = {
"Hengzhou Xiang",
nil,
"hsn",
}
m["hsn-new"] = {
"New Xiang",
7012696,
"hsn",
aliases = {"Chang-Yi"},
}
m["hsn-old"] = {
"Old Xiang",
7085453,
"hsn",
aliases = {"Lou-Shao"},
}
------------- Hakka varieties -------------
-- FIXME: Temporary.
m["hak-dab"] = {
"Dabu Hakka",
19855566,
"hak", -- formerly hak-TW but seems to be spoken primary in Dabu County in Guangdong
}
-- FIXME: Temporary.
m["hak-eam"] = {
"Early Modern Hakka",
nil,
"hak",
}
-- FIXME: Temporary.
m["hak-hai"] = {
"Hailu Hakka",
17038519,
"hak", -- often considered a Taiwanese lect but also spoken in [[Shanwei]], [[Guangdong]]
}
-- FIXME: Temporary.
m["hak-HK"] = {
"Hong Kong Hakka",
2675834,
"hak",
}
-- FIXME: Temporary.
m["hak-hui"] = {
"Huiyang Hakka",
16873881,
"hak",
}
-- FIXME: Temporary.
m["hak-hui-MY"] = {
"Malaysian Huiyang Hakka",
nil,
"hak-hui",
}
-- FIXME: Temporary. Similar to and possibly the parent of Sixian Hakka in Taiwan.
m["hak-mei"] = {
"Meixian Hakka",
839295,
"hak",
aliases = {"Moiyan Hakka", "Meizhou Hakka"},
}
-- FIXME: Temporary.
m["hak-six"] = {
"Sixian Hakka",
9668261,
"hak-TW",
}
-- FIXME: Temporary.
m["hak-TW"] = {
"Taiwanese Hakka",
2391532,
"hak",
}
-- FIXME: Temporary.
m["hak-zha"] = {
"Zhao'an Hakka",
6703311,
"hak",
aliases = {"Zhangzhou Hakka"},
}
-- Southern Min varieties --
m["nan-anx"] = {
"Anxi Hokkien",
97064149,
"nan-qua",
}
m["nan-cha"] = {
"Changtai Hokkien",
nil,
"nan-zha",
}
m["nan-hou"] = {
"Houlu Min",
19855492,
"nan-dat",
}
m["nan-hui"] = {
"Hui'an Hokkien",
16241797,
"nan-qua",
}
m["nan-jin"] = {
"Jinjiang Hokkien",
11089375,
"nan-qua",
}
m["nan-kin"] = {
"Kinmenese Hokkien",
56278342,
"nan-xia",
aliases = {"Kinmen Hokkien"},
}
m["nan-med"] = {
"Medan Hokkien",
6805114,
"nan-zha",
}
m["nan-pen"] = {
"Penang Hokkien",
11120689,
"nan-zha",
}
m["nan-hbl-PH"] = {
"Philippine Hokkien",
3236692,
"nan-qua",
}
m["nan-qia"] = {
"Qianlu Min",
19842517,
"nan-dat",
}
m["nan-qua"] = {
"Quanzhou Hokkien",
2251677,
"nan-hbl",
aliases = {"Chinchew", "Choanchew"},
}
-- FIXME: Temporary? Derived from both Quanzhou and Zhangzhou Hokkien.
m["nan-hbl-SG"] = {
"Singapore Hokkien",
3846528,
"nan-hbl",
}
m["nan-spm"] = {
"Southern Malaysian Hokkien",
7570322,
"nan-qua",
aliases = {"Southern Malaysia Hokkien", "Southern Peninsular Malaysian Hokkien", "Southern Peninsular Malaysia Hokkien"}
}
m["nan-hbl-TW"] = {
"Taiwanese Hokkien",
36778,
"nan-hbl",
}
m["nan-ton"] = {
"Tong'an Hokkien",
nil,
"nan-xia",
}
m["nan-xia"] = {
"Xiamen Hokkien",
68744,
"nan-hbl",
aliases = {"Amoy", "Amoyese", "Amoynese", "Xiamenese"},
}
m["nan-yon"] = {
"Yongchun Hokkien",
65118728,
"nan-qua",
}
m["nan-zha"] = {
"Zhangzhou Hokkien",
8070492,
"nan-hbl",
aliases = {"Changchew", "Chiangchew", "Changchow"},
}
m["nan-zho"] = {
"Zhao'an Hokkien",
65118728,
"nan-zha",
aliases = {"Zhao'an", "Chawan", "Chawan Hokkien"},
}
m["nan-zhp"] = {
"Zhangping Hokkien",
15937822,
"nan-zha",
}
------------- Other Min varieties -------------
-- FIXME: Temporary. Affiliation within Min uncertain; some combination of Eastern and Southern.
m["zhx-zho"] = {
"Zhongshan Min",
8070958,
"zh",
}
------------- Other Chinese varieties -------------
-- FIXME: Temporary. Affiliation within Chinese uncertain; possibly Yue.
m["zhx-dan"] = {
"Danzhou Chinese",
2578935,
"zh",
}
------------- Chinese romanization varieties -------------
-- [[Wiktionary:Information desk/2022/June#Etymology Coding Issue]]
-- [[Wiktionary:Grease pit/2022/June#Transliteration Systems in Etymologies 2]]
m["cmn-pinyin"] = {
"Hanyu Pinyin",
42222,
"cmn",
aliases = {"Pinyin"},
}
m["cmn-tongyong"] = {
"Tongyong Pinyin",
700739,
"cmn",
}
m["cmn-wadegiles"] = {
"Wade–Giles",
208442,
"cmn",
aliases = {"Wade-Giles", "Wade Giles"},
}
m["zh-postal"] = {
"Postal Romanization",
151868,
"zh",
}
-- Chinese cyrillization
m["cmn-palladius"] = {
"Palladius",
1234239,
"cmn",
aliases = {"Palladius system"},
}
-----------------------------------------------------
-- Tibetic varieties --
-----------------------------------------------------
m["adx"] = {
"Amdo Tibetan",
56509,
"bo",
}
m["kbg"] = {
"Khamba",
12952626,
"bo",
}
m["khg"] = {
"Khams Tibetan",
56601,
"bo",
}
m["tsk"] = {
"Tseku",
11159532,
"bo",
}
----------------------------------------------------------------------------------------------------------------------
-- Tai-Kadai varieties --
----------------------------------------------------------------------------------------------------------------------
m["th-old"] = {
"Old Thai",
nil,
"tai-swe-pro",
wikipedia_article = "Thai language#Old Thai",
}
m["th-suk"] = {
"Sukhothai Old Thai", -- 1238-1438. Cannot use "Sukhothai Thai" as Sukhothai is the current city and "Sukhothai Thai" is a lect.
nil,
"th-old",
aliases = {"Sukhothai Siamese"},
wikipedia_article = "Thai language#Old Thai",
}
m["th-ayu"] = {
"Ayutthaya Old Thai", -- 1351-1767. Cannot use "Ayutthaya Thai" as Ayutthaya is the current city.
nil,
"th-old",
aliases = {"Ayutthaya Siamese"},
wikipedia_article = "Thai language#Old Thai",
}
--[[
m["th-new"] = {
"Hacked Thai", -- temporary for testing new translit/display methods
nil,
"th",
translit = "User:Benwing2/th-scraping-translit",
display_text = "User:Benwing2/th-scraping-translit",
strip_diacritics = "User:Benwing2/th-scraping-translit",
preprocess_links = "User:Benwing2/th-scraping-translit",
}
]]
m["tai-shz"] = {
"Shangsi Zhuang",
13216,
"za",
}
----------------------------------------------------------------------------------------------------------------------
-- Turkic varieties --
----------------------------------------------------------------------------------------------------------------------
m["trk-cmn-pro"] = {
"Proto-Common Turkic",
1126028,
"trk-pro",
}
m["trk-ogr-pro"] = {
"Proto-Oghur",
1422731,
"trk-pro",
family = "trk-ogr",
}
m["trk-bul-pro"] = {
"Proto-Bulgar",
nil,
"trk-ogr-pro",
}
m["trk-ogz-pro"] = {
"Proto-Oghuz",
494600,
"trk-pro",
family = "trk-ogz",
aliases = {"Southwestern Common Turkic"},
}
m["crh-dbj"] = {
"Dobrujan Tatar",
12811566,
"crh",
aliases = {"Romanian Tatar"},
}
m["cv-ana"] = {
"Anatri Chuvash",
nil,
"cv",
aliases = {"Anatri", "Lower Chuvash"},
}
m["cv-mid"] = {
"Middle Chuvash",
nil,
"cv",
ancestors = "cv-old",
}
m["cv-old"] = {
"Old Chuvash",
nil,
"cv",
ancestors = "xbo-vol",
}
m["cv-vir"] = {
"Viryal Chuvash",
4278332,
"cv",
aliases = {"Viryal", "Upper Chuvash"},
}
m["kjh-fyu"] = {
"Fuyu Kyrgyz",
2598963,
"kjh",
aliases = {"Fuyu Kirgiz", "Fuyu Kirghiz", "Manchurian Kyrgyz", "Manchurian Kirgiz", "Manchurian Kirghiz"},
}
m["klj-arg"] = {
"Arghu",
33455,
"klj",
ancestors = "trk-cmn-pro",
}
m["otk-kir"] = {
"Old Kirghiz",
83142,
"otk",
aliases = {"Yenisei Turkic", "Yenisei Kyrgyz"},
}
m["otk-ork"] = {
"Orkhon Turkic",
31295480,
"otk",
}
m["qwm-cum"] = {
"Cuman",
1075050,
"qwm",
aliases = {"Kuman", "Polovtsian", "Polovcian"},
}
m["qwm-arm"] = {
"Armeno-Kipchak",
2027503,
"qwm",
ancestors = "qwm-cum",
aliases = {"Xıpçaχ tili", "Tatarça"},
}
m["qwm-mam"] = {
"Mamluk-Kipchak",
4279942,
"qwm",
aliases = {"Mameluk-Kipchak"},
}
m["az-cls"] = {
"Classical Azerbaijani",
nil,
"az",
aliases = {"Classical Azeri"},
}
m["qxq"] = {
"Qashqai",
13192,
"az",
aliases = {"Qaşqay", "Qashqayi", "Kashkai", "Kashkay"},
}
m["tr-CY"] = {
"Cypriot Turkish",
7917392,
"tr",
}
m["uz-afg"] = {
-- NOTE: has ISO 639-3 code uzs assigned to it.
"Afghan Uzbek",
1066787,
"uz",
aliases = {"Southern Uzbek"},
translit = "uz-afg-translit",
}
m["xbo-dan"] = {
"Danube Bulgar",
nil,
"xbo",
}
m["xbo-vol"] = {
"Volga Bulgar",
nil,
"xbo",
}
----------------------------------------------------------------------------------------------------------------------
-- Uralic varieties --
----------------------------------------------------------------------------------------------------------------------
m["fiu-pro"] = {
"Proto-Finno-Ugric",
79890,
"urj-pro",
}
m["urj-fpr-pro"] = {
"Proto-Finno-Permic",
nil,
"urj-pro",
}
m["krl-nor"] = {
"North Karelian",
125501196,
"krl",
}
m["krl-sou"] = {
"South Karelian",
129812730,
"krl",
}
m["mns-eas"] = {
"Eastern Mansi",
30311755,
"mns-cen",
}
m["mns-wes"] = {
"Western Mansi",
30311756,
"mns-cen",
}
----------------------------------------------------------------------------------------------------------------------
-- Yeneseian varieties --
----------------------------------------------------------------------------------------------------------------------
m["qfa-yke-pro"] = {
"Proto-Ketic",
nil,
"qfa-yen-pro",
family = "qfa-yke",
}
m["qfa-yko-pro"] = {
"Proto-Kottic",
nil,
"qfa-yen-pro",
family = "qfa-yko",
}
m["qfa-yrn-pro"] = {
"Proto-Arinic",
nil,
"qfa-yen-pro",
family = "qfa-yrn",
}
m["qfa-ypm-pro"] = {
"Proto-Pumpokolic",
nil,
"qfa-yen-pro",
family = "qfa-ypm",
}
----------------------------------------------------------------------------------------------------------------------
-- Miscellaneous varieties --
----------------------------------------------------------------------------------------------------------------------
m["mul-tax"] = {
"taxonomic name",
522190,
"mul",
}
-----------------------------------------------------
-- Elamite varieties --
-----------------------------------------------------
m["elx-old"] = {
"Old Elamite",
nil,
"elx",
}
m["elx-mid"] = {
"Middle Elamite",
nil,
"elx",
}
m["elx-neo"] = {
"Neo-Elamite",
nil,
"elx",
}
m["elx-ach"] = {
"Achaemenid Elamite",
nil,
"elx",
}
-----------------------------------------------------
-- Substrates --
-----------------------------------------------------
-- Pre-Roman substrates
m["qsb-ibe"] = {
"Paleo-Hispanic",
246801,
"und",
family = "qfa-sub",
aliases = {"Palaeo-Hispanic", "Paleohispanic", "Palaeohispanic", "Paleo-Iberian", "Palaeo-Iberian"},
}
m["qsb-bal"] = {
"tiếng Balkan cổ",
1815070,
"und",
family = "qfa-sub",
aliases = {"Palaeo-Balkan", "Paleobalkan", "Palaeobalkan", "Paleo-Balkan"},
}
m["xaq"] = {
"tiếng Aquitani",
500522,
"euq-pro",
family = "euq",
}
return require("Module:languages").finalizeData(m, "language", true)
3n0hnrlze7w8cwaqhgjnprzw6zq120f
Mô đun:inc-ash/dial/data/𑀅𑀕𑀺
828
418459
2567153
2026-09-28T09:44:06Z
Hiyuune
50834
Trang mới: “local export = {} export.list = { ["meaning"] = "lửa", ["note"] = "", ["Mansehra"] = { "𐨀𐨒𐨁" }, ["Shahbazgarhi"] = { "𐨗𐨆𐨟𐨁" }, ["Kalsi"] = { "𑀅𑀕𑀺" }, ["Dhauli"] = { "𑀅𑀕𑀺" }, ["Girnar"] = { "𑀅𑀕𑀺" }, } return export”
2567153
Scribunto
text/plain
local export = {}
export.list = {
["meaning"] = "lửa",
["note"] = "",
["Mansehra"] = { "𐨀𐨒𐨁" },
["Shahbazgarhi"] = { "𐨗𐨆𐨟𐨁" },
["Kalsi"] = { "𑀅𑀕𑀺" },
["Dhauli"] = { "𑀅𑀕𑀺" },
["Girnar"] = { "𑀅𑀕𑀺" },
}
return export
em74rdy14243el4hin3mx9jenrp4h7u
𑀅𑀕𑀺
0
418460
2567154
2026-09-28T09:44:17Z
Hiyuune
50834
Trang mới: “{{also|𑀅𑀕}} =={{langname|inc-ash}}== ==={{section|etym}}=== {{root|inc-ash|ine-pro|*h₁engʷ-}} {{etymon|inc-ash|id=fire|:inh|sa:अग्नि<id:lửa>}} Từ {{inh|inc-ash|sa|अग्नि|tr=agní}}, từ {{inh|inc-ash|inc-pro|*Hagníṣ}}, từ {{inh|inc-ash|iir-pro|*Hagníš}}, từ {{inh|inc-ash|ine-pro|*h₁n̥gʷnís}}. Cùng gốc với {{cog|pi|aggi}}. ==={{section|n}}=== {{h|inc-ash|Danh từ|ts=aggi}} {{tlb|inc-ash|Dhauli|Girnar|Kalsi}} # lửa…”
2567154
wikitext
text/x-wiki
{{also|𑀅𑀕}}
=={{langname|inc-ash}}==
==={{section|etym}}===
{{root|inc-ash|ine-pro|*h₁engʷ-}}
{{etymon|inc-ash|id=fire|:inh|sa:अग्नि<id:lửa>}}
Từ {{inh|inc-ash|sa|अग्नि|tr=agní}}, từ {{inh|inc-ash|inc-pro|*Hagníṣ}}, từ {{inh|inc-ash|iir-pro|*Hagníš}}, từ {{inh|inc-ash|ine-pro|*h₁n̥gʷnís}}. Cùng gốc với {{cog|pi|aggi}}.
==={{section|n}}===
{{h|inc-ash|Danh từ|ts=aggi}} {{tlb|inc-ash|Dhauli|Girnar|Kalsi}}
# [[lửa|Lửa]].
===={{section|alt}}====
{{inc-ash-dial}}
===={{section|desc}}====
* {{desctree|pra|𑀅𑀕𑁆𑀕𑀺}}
==={{section|ref}}===
* {{R:inc:CGMIA|44}}
* {{R:CDIAL|agní|55}}
{{topics|inc-ash|Lửa}}
qsr0kxpqp6t7hi6zl28iikug0hjeusl
2567155
2567154
2026-09-28T09:45:01Z
Hiyuune
50834
/* Từ nguyên */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2567155
wikitext
text/x-wiki
{{also|𑀅𑀕}}
=={{langname|inc-ash}}==
==={{section|etym}}===
{{root|inc-ash|ine-pro|*h₁engʷ-}}
{{etymon|inc-ash|id=lửa|:inh|sa:अग्नि<id:lửa>}}
Từ {{inh|inc-ash|sa|अग्नि|tr=agní}}, từ {{inh|inc-ash|inc-pro|*Hagníṣ}}, từ {{inh|inc-ash|iir-pro|*Hagníš}}, từ {{inh|inc-ash|ine-pro|*h₁n̥gʷnís}}. Cùng gốc với {{cog|pi|aggi}}.
==={{section|n}}===
{{h|inc-ash|Danh từ|ts=aggi}} {{tlb|inc-ash|Dhauli|Girnar|Kalsi}}
# [[lửa|Lửa]].
===={{section|alt}}====
{{inc-ash-dial}}
===={{section|desc}}====
* {{desctree|pra|𑀅𑀕𑁆𑀕𑀺}}
==={{section|ref}}===
* {{R:inc:CGMIA|44}}
* {{R:CDIAL|agní|55}}
{{topics|inc-ash|Lửa}}
999rujyv6fe3qtszqjgvbb2jkqcc07v
teine
0
418461
2567156
2026-09-28T10:00:42Z
Hiyuune
50834
Trang mới: “=={{langname|et}}== {{number box|et}} ==={{section|etym}}=== Từ {{inh|et|urj-fin-pro|*toinën}}. ==={{section|pron}}=== * {{et-IPA}} * {{rhymes|et|eine|s=2}} * {{hyph|et|tei|ne}} ==={{section|adj}}=== {{head|et|Tính từ}} # {{cln|et|Số thứ tự}} [[thứ|Thứ]] [[hai]]. ===={{section|decl}}==== {{et-decl-oluline|tei|ne}} ==={{section|pronoun}}=== {{head|et|Đại từ}} # {{lb|et|bất định}} [[khác|Khác]], [[người khác]]. ===={{section|decl}}===…”
2567156
wikitext
text/x-wiki
=={{langname|et}}==
{{number box|et}}
==={{section|etym}}===
Từ {{inh|et|urj-fin-pro|*toinën}}.
==={{section|pron}}===
* {{et-IPA}}
* {{rhymes|et|eine|s=2}}
* {{hyph|et|tei|ne}}
==={{section|adj}}===
{{head|et|Tính từ}}
# {{cln|et|Số thứ tự}} [[thứ|Thứ]] [[hai]].
===={{section|decl}}====
{{et-decl-oluline|tei|ne}}
==={{section|pronoun}}===
{{head|et|Đại từ}}
# {{lb|et|bất định}} [[khác|Khác]], [[người khác]].
===={{section|decl}}====
{{et-decl-oluline|tei|ne}}
===={{section|drv}}====
* {{l|et|teiseks}}
==={{section|ref}}===
* {{R:et:EÕS}}
{{C|et|Hai}}
=={{langname|gd}}==
==={{section|etym}}===
Từ {{inh|gd|sga|teine}},<ref>{{R:DIL|40385|head=1 teine}}</ref> từ {{inh|gd|cel-pro|*teɸnets||lửa}} (so sánh tiếng Breton và Cornwall {{m|br|tan}}, tiếng Wales {{m|cy|tân}}).
==={{section|pron}}===
* {{IPA|gd|/ˈtʲʰãnə/|/ˈtʃʰãnə/|ref={{R:gd:Oftedal}}|ref2={{R:gd:Borgstrom1940}}<<name:B1940>>|a=phần lớn ở,_,Lewis}}
* {{IPA|gd|/ˈtʲʰɛnə/|/ˈtʃʰɛnə/|ref2=<<name:B1940>>|a=Bernera,Harris,North Uist}}
* {{IPA|gd|/ˈtʃʰɛɲə/|/ˈtʃʰeɲə/|ref2=<<name:B1940>> !!! {{R:Mac Gill-Fhinnein:1966}}|;|[ˈtʃʰeˀɲə]|ref3={{R:gd:Jones:2009|page=9}}|a=Benbecula,South Uist,Eriskay,South Argyll|a3=Islay}}
* {{IPA|gd|/ˈtʃʰĩɲʌ/|ref=<<name:B1940>> !!! {{R:gd:Borgstrom1937}}|a=Barra}}
* {{IPA|gd|/ˈtʃʰĩɲə/|a=Raasay,Mull}}
* {{IPA|gd|/ˈtʃʰeɲə/|/ˈtʃʰĩnə/|ref2={{R:gd:Borgstrom1941|page=60}}|a=Skye}}
* {{IPA|gd|/ˈtʃʰĩnə/|/ˈtʲʰĩnə/|ref={{R:gd:OMaolalaigh:2008}}|ref2={{R:gd:Borgstrom1941|page=72}}|a=Tiree,Wester Ross}}
==={{section|n}}===
{{gd-noun|g=m|dat=teine|dat2=teinidh|gen=teine|pl=teintean}}
# [[lửa|Lửa]], [[ngọn lửa]].
# [[đám cháy|Đám cháy]] [[lớn]].
# Cây [[kim]] [[tước]].
# Tên gọi [[t]] trong bảng chữ cái Gael cổ.
===={{section|drv}}====
{{col3|gd|beinn-theine<t:núi lửa>
|cliath-theine
|teàrnadair-o-theine
|teine-sionnachain
|is fheàrr teine beag a gharas na teine mòr a loisgeas
}}
==={{section|mut}}===
{{gd-mut-cons|t|eine}}
==={{section|ref}}===
{{reflist|size=smaller}}
==={{section|further}}===
* {{R:Dwelly}}
* {{R:DIL|40385|head=1 teine}}
{{topics|gd|Lửa}}
=={{langname|ga}}==
==={{section|n}}===
{{ga-noun|f|~|teinte|gen2=teineadh}}
# {{obsolete spelling of|ga|tine|t=lửa}}
===={{section|decl}}====
Bảng biến tố của danh từ biến cách loại 4:
{{ga-decl-f4|t|eine|einte}}
Bảng biến tố của danh từ biến cách loại 5:
{{ga-decl-f5|t|eine|eineadh|einte|dat=einidh|datoc=a}}
==={{section|mut}}===
{{ga-mut}}
=={{langname|sga}}==
==={{section|alt}}===
* {{l|sga|tene}}
==={{section|etym}}===
{{root|sga|ine-pro|*tep-}}
{{dercat|sga|ine-pro}}
Từ {{inh|sga|cel-pro|*teɸnets||lửa}} (so sánh với {{cog|kw|-}} và {{cog|br|tan}}, {{cog|cy|tân}}).
==={{section|pron}}===
* {{sga-IPA}}
==={{section|n}}===
{{sga-noun|m|teined|teinid}}
# [[lửa|Lửa]].
===={{section|infl}}====
{{sga-decl-t&d|t|g=m
|teinid|teined|teint|dat_sg2=tein}}
===={{section|syn}}====
* {{l|sga|áed}}
* {{l|sga|daig}}
* {{l|sga|grís}}
* {{l|sga|lasar}}
* {{l|sga|loscud}}
* {{l|sga|smál}}
===={{section|drv}}====
* {{l|sga|tenlach}}
** {{desctree|mga|tellach}}
===={{section|desc}}====
* {{desc|ga|tine}}
* {{desc|gv|çhenney}}
* {{desc|gd|teine}}
* {{desc|non|dini|bor=1}}
==={{section|mut}}===
{{sga-mutation}}
==={{section|ref}}===
* {{R:DIL|40385|head=1 teine}}
{{topics|sga|Lửa}}
=={{langname|lt}}==
==={{section|n}}===
{{head|lt|Biến thể hình thái danh từ|head=teinè|g=m}}
# {{infl of|lt|tei̇̀nas||loc|s}}
==={{section|n}}===
{{head|lt|Biến thể hình thái danh từ|head=tei̇̀ne|g=m}}
# {{infl of|lt|tei̇̀nas||voc|s}}
=={{langname|ro}}==
==={{section|pron}}===
* {{IPA|ro|/teˈi.ne/}}
* {{rhymes|ro|ine|s=3}}
* {{hyph|ro|te|i|ne}}
==={{section|n}}===
{{head|ro|Biến thể hình thái danh từ|g=f}}
# {{infl of|ro|teină||indef|gen//dat}}
=={{langname|sm}}==
==={{section|n}}===
{{head|sm|Danh từ}}
# [[gái|Gái]].
==={{section|ref}}===
* {{R:sm:Milner 1993|page=260}}
=={{langname|tkl}}==
==={{section|etym}}===
Từ {{inh|tkl|poz-pol-pro|*taqahine}}. Các từ cùng gốc bao gồm {{cog|to|taʻahine}} và {{cog|sm|teine}}.
==={{section|pron}}===
* {{tkl-IPA|te'ine}}
* {{hyph|tkl|te|i|ne}}
==={{section|n}}===
{{head|tkl|Danh từ}}
# [[gái|Gái]].
==={{section|ref}}===
* {{R:tkl:TD|page=380}}
=={{langname|it}}==
==={{section|pron}}===
{{it-pr|[ì]}}
==={{section|n}}===
{{head|it|Biến thể hình thái danh từ|g=f}}
# {{plural of|it|teina}}
==={{section|ana}}===
* {{anagrams|it|a=eeint|etnei|etnie|tenie|tiene}}
n4s6rco7hj6d8e3k53dg9v5k1v6xewq
2567157
2567156
2026-09-28T10:03:50Z
Hiyuune
50834
2567157
wikitext
text/x-wiki
=={{langname|et}}==
{{number box|et}}
==={{section|etym}}===
Từ {{inh|et|urj-fin-pro|*toinën}}.
==={{section|pron}}===
* {{et-IPA}}
* {{rhymes|et|eine|s=2}}
* {{hyph|et|tei|ne}}
==={{section|adj}}===
{{head|et|Tính từ}}
# {{cln|et|Số thứ tự}} [[thứ|Thứ]] [[hai]].
===={{section|decl}}====
{{et-decl-oluline|tei|ne}}
==={{section|pronoun}}===
{{head|et|Đại từ}}
# {{lb|et|bất định}} [[khác|Khác]], [[người khác]].
===={{section|decl}}====
{{et-decl-oluline|tei|ne}}
===={{section|drv}}====
* {{l|et|teiseks}}
==={{section|ref}}===
* {{R:et:EÕS}}
{{C|et|Hai}}
=={{langname|gd}}==
==={{section|etym}}===
Từ {{inh|gd|sga|teine}},<ref>{{R:DIL|40385|head=1 teine}}</ref> từ {{inh|gd|cel-pro|*teɸnets||lửa}} (so sánh tiếng Breton và Cornwall {{m|br|tan}}, tiếng Wales {{m|cy|tân}}).
==={{section|pron}}===
* {{IPA|gd|/ˈtʲʰãnə/|/ˈtʃʰãnə/|ref={{R:gd:Oftedal}}|ref2={{R:gd:Borgstrom1940}}<<name:B1940>>|a=phần lớn ở,_,Lewis}}
* {{IPA|gd|/ˈtʲʰɛnə/|/ˈtʃʰɛnə/|ref2=<<name:B1940>>|a=Bernera,Harris,North Uist}}
* {{IPA|gd|/ˈtʃʰɛɲə/|/ˈtʃʰeɲə/|ref2=<<name:B1940>> !!! {{R:Mac Gill-Fhinnein:1966}}|;|[ˈtʃʰeˀɲə]|ref3={{R:gd:Jones:2009|page=9}}|a=Benbecula,South Uist,Eriskay,South Argyll|a3=Islay}}
* {{IPA|gd|/ˈtʃʰĩɲʌ/|ref=<<name:B1940>> !!! {{R:gd:Borgstrom1937}}|a=Barra}}
* {{IPA|gd|/ˈtʃʰĩɲə/|a=Raasay,Mull}}
* {{IPA|gd|/ˈtʃʰeɲə/|/ˈtʃʰĩnə/|ref2={{R:gd:Borgstrom1941|page=60}}|a=Skye}}
* {{IPA|gd|/ˈtʃʰĩnə/|/ˈtʲʰĩnə/|ref={{R:gd:OMaolalaigh:2008}}|ref2={{R:gd:Borgstrom1941|page=72}}|a=Tiree,Wester Ross}}
==={{section|n}}===
{{gd-noun|g=m|dat=teine|dat2=teinidh|gen=teine|pl=teintean}}
# [[lửa|Lửa]], [[ngọn lửa]].
# [[đám cháy|Đám cháy]] [[lớn]].
# Cây [[kim]] [[tước]].
# Tên gọi [[t]] trong bảng chữ cái Gael cổ.
===={{section|drv}}====
{{col3|gd|beinn-theine<t:núi lửa>
|cliath-theine
|teàrnadair-o-theine
|teine-sionnachain
|is fheàrr teine beag a gharas na teine mòr a loisgeas
}}
==={{section|mut}}===
{{gd-mut-cons|t|eine}}
==={{section|ref}}===
{{reflist|size=smaller}}
==={{section|further}}===
* {{R:Dwelly}}
* {{R:DIL|40385|head=1 teine}}
{{topics|gd|Lửa}}
=={{langname|ga}}==
==={{section|n}}===
{{ga-noun|f|~|teinte|gen2=teineadh}}
# {{obsolete spelling of|ga|tine|t=lửa}}
===={{section|decl}}====
Bảng biến tố của danh từ biến cách loại 4:
{{ga-decl-f4|t|eine|einte}}
Bảng biến tố của danh từ biến cách loại 5:
{{ga-decl-f5|t|eine|eineadh|einte|dat=einidh|datoc=a}}
==={{section|mut}}===
{{ga-mut}}
=={{langname|sga}}==
==={{section|alt}}===
* {{l|sga|tene}}
==={{section|etym}}===
{{root|sga|ine-pro|*tep-}}
{{dercat|sga|ine-pro}}
Từ {{inh|sga|cel-pro|*teɸnets||lửa}} (so sánh với {{cog|kw|-}} và {{cog|br|tan}}, {{cog|cy|tân}}).
==={{section|pron}}===
* {{sga-IPA}}
==={{section|n}}===
{{sga-noun|m|teined|teinid}}
# [[lửa|Lửa]].
===={{section|infl}}====
{{sga-decl-t&d|t|g=m
|teinid|teined|teint|dat_sg2=tein}}
===={{section|syn}}====
* {{l|sga|áed}}
* {{l|sga|daig}}
* {{l|sga|grís}}
* {{l|sga|lasar}}
* {{l|sga|loscud}}
* {{l|sga|smál}}
===={{section|drv}}====
* {{l|sga|tenlach}}
** {{desctree|mga|tellach}}
===={{section|desc}}====
* {{desc|ga|tine}}
* {{desc|gv|çhenney}}
* {{desc|gd|teine}}
* {{desc|non|dini|bor=1}}
==={{section|mut}}===
{{sga-mutation}}
==={{section|ref}}===
* {{R:DIL|40385|head=1 teine}}
{{topics|sga|Lửa}}
=={{langname|lt}}==
==={{section|n}}===
{{head|lt|Biến thể hình thái danh từ|head=teinè|g=m}}
# {{infl of|lt|tei̇̀nas||loc|s}}
==={{section|n}}===
{{head|lt|Biến thể hình thái danh từ|head=tei̇̀ne|g=m}}
# {{infl of|lt|tei̇̀nas||voc|s}}
=={{langname|ro}}==
==={{section|pron}}===
* {{IPA|ro|/teˈi.ne/}}
* {{rhymes|ro|ine|s=3}}
* {{hyph|ro|te|i|ne}}
==={{section|n}}===
{{head|ro|Biến thể hình thái danh từ|g=f}}
# {{infl of|ro|teină||gen//dat|indef}}
=={{langname|sm}}==
==={{section|n}}===
{{head|sm|Danh từ}}
# [[gái|Gái]].
==={{section|ref}}===
* {{R:sm:Milner 1993|page=260}}
=={{langname|tkl}}==
==={{section|etym}}===
Từ {{inh|tkl|poz-pol-pro|*taqahine}}. Các từ cùng gốc bao gồm {{cog|to|taʻahine}} và {{cog|sm|teine}}.
==={{section|pron}}===
* {{tkl-IPA|te'ine}}
* {{hyph|tkl|te|i|ne}}
==={{section|n}}===
{{head|tkl|Danh từ}}
# [[gái|Gái]].
==={{section|ref}}===
* {{R:tkl:TD|page=380}}
=={{langname|it}}==
==={{section|pron}}===
{{it-pr|[ì]}}
==={{section|n}}===
{{head|it|Biến thể hình thái danh từ|g=f}}
# {{plural of|it|teina}}
==={{section|ana}}===
* {{anagrams|it|a=eeint|etnei|etnie|tenie|tiene}}
3l26t2amj4l2xb2gut0w78nv7pl8apb