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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/41|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/42|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/43|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/44|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/45|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/46|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/47|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/48|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/49|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/50|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/51|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/52|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/03|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/04|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/05|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/06|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/07|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/08|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/09|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/10|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/11|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/12|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/13|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/14|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/15|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/16|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/17|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/18|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/19|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/20|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/21|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/22|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/23|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/24|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/25|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/26|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/27|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Contribute]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/28|Translate]]&nbsp;• [[m:Tech|Get help]]&nbsp;• [[m:Talk:Tech/News|Give feedback]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/29|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/30|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/31|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/32|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/33|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/34|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/35|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/36|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/37|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/38|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/39|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/40|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[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>&amp;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 .. '&nbsp;&nbsp;</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 = "&mdash;" 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