Wiktionary
viwiktionary
https://vi.wiktionary.org/wiki/Wiktionary:Trang_Ch%C3%ADnh
MediaWiki 1.47.0-wmf.23
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
Wiktionary
0
631
2569989
2567632
2026-10-12T15:51:18Z
Hiyuune
50834
2569989
wikitext
text/x-wiki
=={{langname|vi}}==
{{wp}}
[[Tập tin:Wiktionary-logo-vi.svg|120px|phải|[[biểu trưng|Biểu trưng]] của Wiktionary tiếng Việt]]
==={{section|pron}}===
{{vi-pron|uých|sân|na|ri}}
==={{section|pr-noun}}===
{{vi-pr-noun}}
# {{senseid|vi|Q151}} Một [[dự án]] trực thuộc [[quỹ hỗ trợ|Quỹ Hỗ trợ]] [[Wikimedia]], cùng với [[Wikipedia]], để [[biên soạn]] một bộ [[từ điển]] [[nội dung mở]] dùng hệ thống [[wiki]], bao gồm nhiều [[ngôn ngữ]].
===={{section|trans}}====
{{trans-top|dự án từ điển mở}}
* {{langname|ar}}: {{t+|ar|وِيكَامُوس|m}}
* {{langname|af}}: {{t+|af|Wikiwoordeboek}}
* {{langname|sq}}: {{t|sq|Wikifjalor|m}}
* {{langname|am}}: {{t|am|ዊኪ መዝገበ ቃላት}}
* {{langname|en}}: {{t+|en|Wiktionary}}
* {{langname|an}}: {{t+|an|Biquizionario|m}}
* {{langname|hy}}: {{t|hy|Վիքիբառարան}}
* {{langname|as}}: {{t|as|ৱিকিঅভিধান}}
* {{langname|ast}}: {{t+|ast|Wikcionariu}}
* {{langname|az}}: {{t+|az|Vikilüğət}}
* {{langname|pl}}: {{t+|pl|Wikisłownik|m}}
* {{langname|fa}}:
*: {{langname|fa-ira}}: {{t+|fa-ira|ویکیواژِه|tr=viki-vâže}}
* {{langname|eu}}: {{t+|eu|Wikiztegia}}
* {{langname|be}}: {{t+|be|Вікісло́ўнік|m}}
* {{langname|bn}}: {{t+|bn|উইকিঅভিধান}}
* Tiếng Bikol:
*: {{langname|bcl}}: {{t|bcl|Wiksyunaryo}}
* {{langname|ia}}: {{t+|ia|Wiktionario}}
* {{langname|pt}}: {{t+|pt|Wikcionário}}
* {{langname|br}}: {{t+|br|Wikeriadur|m}}
* {{langname|bg}}: {{t|bg|Уикире́чник|m}}
* {{langname|ca}}: {{t+|ca|Viccionari|m}}
* {{langname|cv}}: {{t|cv|Викисӑмахсар}}
* {{langname|co}}: {{t+|co|Wikizziunariu|m}}
* {{langname|he}}: {{t+|he|ויקימילון|m|alt=וִיקִימִלּוֹן \ ויקימילון|tr=vikimilón}}
* {{langname|ug}}: {{t|ug|ۋىكىلۇغەت}}
* {{langname|da}}: {{t|da|Wikiordbog|c}}, {{t+|da|Wiktionary}}
* {{langname|de}}: {{t+|de|Wiktionary|n}}, {{t+|de|Wikiwörterbuch|n}}
* {{langname|et}}: {{t+|et|Vikisõnaraamat}}, {{t+|et|Vikisõnastik}}
* {{langname|ka}}: {{t+|ka|ვიქსიკონი}}, {{t+|ka|ვიქსიკონი}}
* {{langname|gu}}: {{t+|gu|વિકિકોશ}}
* {{langname|nl}}: {{t+|nl|WikiWoordenboek|n}}, {{t+|nl|Wiktionary|m}}
* {{langname|nds}}: {{t|nds|Wikiwöörbook|n}}, {{t|nds|Wiktionary|n}}
* {{langname|hi}}: {{t+|hi|विक्षनरी|f}}, {{t+|hi|विकि-शब्दकोश|tr=viki-śabdakoś}}
* {{langname|hu}}: {{t+|hu|Wikiszótár}}, {{t+|hu|Wiktionary}}
* {{langname|el}}: {{t+|el|Βικιλεξικό|n}}
* {{langname|is}}: {{t+|is|Wikiorðabók|f}}
* {{langname|io}}: {{t+|io|Wikivortaro}}
* {{langname|id}}: {{t+|id|Wikikamus}}
* {{langname|ga}}: {{t+|ga|Vicífhoclóir}}
* {{langname|jv}}: {{t+|jv|Wikisastra}}
* {{langname|kn}}: {{t+|kn|ವಿಕ್ಷನರಿ}}
* {{langname|kk}}: {{t|kk|Уикисөздік}}
* {{langname|km}}: {{t+|km|វិគីនានុក្រម}}
* Tiếng Kurd:
*: {{langname|kmr}}: {{t+|kmr|Wîkîferheng|m}}
*: {{langname|ckb}}: {{t+|ckb|ویکیفەرھەنگ}}
* {{langname|ky}}: {{t+|ky|Викисөздүк}}
* {{langname|lo}}: {{t|lo|ວິກິພົດຈະນານຸກົມ}}
* {{langname|la}}: {{t+|la|Victiōnārium}}
* {{langname|lv}}: {{t+|lv|Vikivārdnīca|f}}
* {{langname|li}}: {{t+|li|Wiktionair}}
* {{langname|lt}}: {{t+|lt|Vikižodynas|m}}
* {{langname|lb}}: {{t+|lb|Wiktionnaire|m}}
* {{langname|mk}}: {{t|mk|Викире́чник|m}}
* {{langname|mg}}: {{t+|mg|Wikibolana}}
* {{langname|ms}}: {{t+|ms|Wikikamus}}
* {{langname|ml}}: {{t+|ml|വിക്കിനിഘണ്ടു}}
* {{langname|mt}}: {{t|mt|Wikizzjunarju|m}}
* {{langname|mr}}: {{t|mr|विक्षनरी|tr=vikśanarī}}
* {{langname|my}}: {{t+|my|ဝစ်ရှင်နရီ}}
* {{langname|mnw}}: {{t|mnw|ဝိက်ရှေန်နရဳ}}
* {{langname|mn}}:
*: Kirin: {{t|mn|Викитоль}}
* {{langname|no}}:
*: {{langname|nb}}: {{t+|nb|Wiktionary}}
* {{langname|ne}}: {{t+|ne|विक्सनरी}}, {{t|ne|विक्षनरी}}
* {{langname|ru}}: {{t+|ru|Викислова́рь|m}}
* {{langname|ja}}: {{t+|ja|ウィクショナリー|tr=Wikushonarī}}
* {{langname|oc}}: {{t+|oc|Wikiccionari|m}}
* {{langname|or}}: {{t|or|ଉଇକିଅଭିଧାନ}}
* {{langname|ps}}: {{t+|ps|ويکيسيند|m|tr=wikisind}}
* {{langname|fi}}: {{t+|fi|Wikisanakirja}}
* {{langname|fr}}: {{t+|fr|Wiktionnaire|m}}
* {{langname|pms}}: {{t|pms|Wiktionary}}, {{t|pms|Wiksionari}}
* {{langname|pa}}:
*: Gurmukhi: {{t+|pa|ਵਿਕਸ਼ਨਰੀ}}
* {{langname|qu}}: {{t|qu|Wiksimitaqi}}
* {{langname|eo}}: {{t+|eo|Vikivortaro}}
* {{langname|ro}}: {{t+|ro|Wikționar|n}}
* {{langname|sa}}: {{t|sa|विकिशब्दकोश}}
* {{langname|sco}}: {{t|sco|Wiktionar}}
* {{langname|cs}}: {{t+|cs|Wikislovník|m}}
* {{langname|sh}}:
*: Kirin: {{t|sh|Викиречник|m}}, {{t|sh|Викирјечник|m}}
*: Latinh: {{t|sh|Vikirečnik|m}}, {{t+|sh|Vikirječnik|m}}, {{t|sh|Wječnik|m}}
* {{langname|shn}}: {{t|shn|ဝိၵ်ႇသျိၼ်ႇၼရီႇ}}
* {{langname|scn}}: {{t|scn|Wikizziunaru|m}} {{qual|chính tả}}; {{t+|scn|Wikizziunariu|m}} {{qual|cách viết theo chuẩn hóa Ý áp dụng cho dự án tương ứng}}
* {{langname|szl}}: {{t|szl|Wikcjōnorz|m}}
* {{langname|sd}}: {{t+|sd|وڪي لغت|tr=wiki lughat}}
* {{langname|si}}: {{t+|si|වික්ෂනරිය}}
* {{langname|sk}}: {{t+|sk|Wikislovník|m}}
* {{langname|sl}}: {{t+|sl|Wikislovar|m}}
* {{langname|sw}}: {{t|sw|Wikamusi}}
* {{langname|tl}}: {{t+|tl|Wiksiyonaryo}}
* {{langname|es}}: {{t+|es|Wikcionario|m}}
* {{langname|tg}}: {{t|tg|Викилуғат}}
* {{langname|ta}}: {{t+|ta|விக்சனரி}}
* {{langname|tt}}: {{t+|tt|Викисүзлек}}
*: Latinh: {{t+|tt|Wikisüzlek}}
* {{langname|te}}: {{t+|te|విక్షనరీ}}
* {{langname|th}}: {{t+|th|วิกิพจนานุกรม}}
* {{langname|tr}}: {{t+|tr|Vikisözlük}}
* {{langname|sv}}: {{t+|sv|Wiktionary|c}}
* {{langname|ti}}: {{t|ti|ዊኪ-መዝገበ-ቃላት}}
* {{langname|ko}}: {{t+|ko|^위키낱말사전(辭典)}}, {{t+|ko|^윅셔너리}}
* {{langname|zh}}:
*: {{langname|cmn}}: {{t+|cmn|維基詞典}}, {{t|cmn|維基辭典}}
*: {{langname|yue}}: {{t|yue|維基辭典}}, {{t|yue|維基詞典}}
* {{langname|tk}}: {{t|tk|Wikisözlük}}
* {{langname|uk}}: {{t+|uk|Вікісловни́к|m}}
* {{langname|ur}}: {{t|ur|وِکْشَنْری|f}}
* {{langname|uz}}: {{t+|uz|Vikilugʻat}}
* {{langname|vo}}: {{t+|vo|Vükivödabuk}}
* {{langname|cy}}: {{t+|cy|Wiciadur}}
* {{langname|it}}: {{t+|it|Wikizionario|m}}
* {{langname|yi}}: {{t+|yi|וויקיווערטערבוך|n}}
{{trans-bottom}}
=={{langname|en}}==
[[Tập tin:WiktionaryEn - DP Derivative.svg|135px|phải|Biểu trưng của Wiktionary tiếng Anh]]
==={{section|alt}}===
* {{alt|en|wiktionary}}
* {{alt|en|Wikitionary||từ sai chính tả}}
==={{section|etym}}===
{{ety|en|id=Q151|:blend|wiki|dictionary|text=+|tree=1}}
==={{section|pron}}===
* {{IPA|en|/ˈwɪk.ʃən.ɹi/|/ˈwɪk.ʃə.nə.ɹi/|a=UK}}
** {{audio|en|en-uk-Wiktionary.ogg|a=UK}}
** {{audio|en|en-uk-Wiktionary-2.ogg|a=UK}}
* {{enPR|wĭkʹshə-nĕr'ē|a=US}}, {{IPA|en|/ˈwɪk.ʃəˌnɛɹ.i/|/ˈwɪk.tʃəˌnɛɹ.i/}}
** {{audio|en|en-us-Wiktionary.ogg|a=GA|q=giọng nữ}}
** {{audio|en|en-us-Wiktionary-3.ogg|a=GA|q=giọng nam}}
* {{IPA|en|/ˈwɪk.ʃəˌnɛ.ɹi/|a=Canada}}
** {{audio|en|en-ca-wiktionary.ogg|a=Canada}}
* {{IPA|en|/ˈwɪk.ʃə.nə.ɹiː/|a=AU}}
** {{audio|en|en-au-Wiktionary.ogg|a=AU}}
* {{IPA|en|/ˈʋɪkʃ.nə.ri/|/ˈʋɪk.ʃə.nɛ.ri/|[ˈwikʃ.nə.ɾi]|a=InE}}
* {{rhymes|en|ɪkʃənɹi<s:3>|ɪkʃənəɹi<s:4>|ɪkʃənɛəɹi<s:4>|ɛəɹi<s:4>}}
* {{hyph|en|Wik|tion|a|ry||Wik|tion|ary}}
==={{section|pr-noun}}===
{{en-prop|ies}}
# {{tcl|en|Wiktionary|id=Q151}}
#: {{syn|en|Wikt}}
===={{section|drv}}====
{{col|en
|Wikt<qq:dạng cắt từ>
|Wiktionarian
}}
==={{section|further}}===
* [[:Thể loại:Wiktionary]]
* {{commons inline}}
* {{wikiquote inline}}
* {{wikibooks inline}}
* {{wikiversity inline}}
* {{meta-wiki inline|Wiktionary#List of Wiktionaries}}
{{C|en|Từ điển|Website}}
=={{langname|de}}==
[[Tập tin:WiktionaryEn - DP Derivative.svg|135px|phải|Biểu trưng của Wiktionary tiếng Anh]]
{{wp|de:}}
==={{section|pron}}===
{{ety|de|:bor|en:Wiktionary}}
{{bor+|de|en|Wiktionary}}.
==={{section|pron}}===
* {{IPA|de|/ˈvɪk.(t)ʃəˌnɛ.ʁi/|/-ɹi/}}
* {{IPA|de|/ˈvɪk.(t)ʃənˌʁiː/|/-ˌɹiː/}} {{q|có lẽ hiếm}}
* {{audio|de|De-Wiktionary.ogg|IPA=[ˈʋɪktʃəˌnɛɹi]}}
* {{audio|de|De-Wiktionary2.ogg|a=Berlin}}
* {{hyph|de|Wik|tio|na|ry}}
==={{section|pr-noun}}===
{{de-proper noun|n,(s)}}
# {{tcl|de|Wiktionary|id=Q151}}
#: {{syn|de|Wikiwörterbuch}}
===={{section|decl}}====
{{de-ndecl|n,(s).sg}}
{{C|de|Từ điển|Website}}
9qernf6lvctodc4642tdgtds8g5besd
2569992
2569989
2026-10-12T16:07:20Z
TheHighFighter2
42988
2569992
wikitext
text/x-wiki
=={{langname|vi}}==
{{wp}}
[[Tập tin:Wiktionary-logo-vi.svg|120px|phải|[[biểu trưng|Biểu trưng]] của Wiktionary tiếng Việt]]
==={{section|etym}}===
Từ {{bor|vi|en|Wiktionary}}.
==={{section|pron}}===
{{vi-pron|uých|sân|na|ri}}
==={{section|pr-noun}}===
{{vi-pr-noun}}
# {{senseid|vi|Q151}} Một [[dự án]] trực thuộc [[quỹ hỗ trợ|Quỹ Hỗ trợ]] [[Wikimedia]], cùng với [[Wikipedia]], để [[biên soạn]] một bộ [[từ điển]] [[nội dung mở]] dùng hệ thống [[wiki]], bao gồm nhiều [[ngôn ngữ]].
===={{section|trans}}====
{{trans-top|dự án từ điển mở}}
* {{langname|ar}}: {{t+|ar|وِيكَامُوس|m}}
* {{langname|af}}: {{t+|af|Wikiwoordeboek}}
* {{langname|sq}}: {{t|sq|Wikifjalor|m}}
* {{langname|am}}: {{t|am|ዊኪ መዝገበ ቃላት}}
* {{langname|en}}: {{t+|en|Wiktionary}}
* {{langname|an}}: {{t+|an|Biquizionario|m}}
* {{langname|hy}}: {{t|hy|Վիքիբառարան}}
* {{langname|as}}: {{t|as|ৱিকিঅভিধান}}
* {{langname|ast}}: {{t+|ast|Wikcionariu}}
* {{langname|az}}: {{t+|az|Vikilüğət}}
* {{langname|pl}}: {{t+|pl|Wikisłownik|m}}
* {{langname|fa}}:
*: {{langname|fa-ira}}: {{t+|fa-ira|ویکیواژِه|tr=viki-vâže}}
* {{langname|eu}}: {{t+|eu|Wikiztegia}}
* {{langname|be}}: {{t+|be|Вікісло́ўнік|m}}
* {{langname|bn}}: {{t+|bn|উইকিঅভিধান}}
* Tiếng Bikol:
*: {{langname|bcl}}: {{t|bcl|Wiksyunaryo}}
* {{langname|ia}}: {{t+|ia|Wiktionario}}
* {{langname|pt}}: {{t+|pt|Wikcionário}}
* {{langname|br}}: {{t+|br|Wikeriadur|m}}
* {{langname|bg}}: {{t|bg|Уикире́чник|m}}
* {{langname|ca}}: {{t+|ca|Viccionari|m}}
* {{langname|cv}}: {{t|cv|Викисӑмахсар}}
* {{langname|co}}: {{t+|co|Wikizziunariu|m}}
* {{langname|he}}: {{t+|he|ויקימילון|m|alt=וִיקִימִלּוֹן \ ויקימילון|tr=vikimilón}}
* {{langname|ug}}: {{t|ug|ۋىكىلۇغەت}}
* {{langname|da}}: {{t|da|Wikiordbog|c}}, {{t+|da|Wiktionary}}
* {{langname|de}}: {{t+|de|Wiktionary|n}}, {{t+|de|Wikiwörterbuch|n}}
* {{langname|et}}: {{t+|et|Vikisõnaraamat}}, {{t+|et|Vikisõnastik}}
* {{langname|ka}}: {{t+|ka|ვიქსიკონი}}, {{t+|ka|ვიქსიკონი}}
* {{langname|gu}}: {{t+|gu|વિકિકોશ}}
* {{langname|nl}}: {{t+|nl|WikiWoordenboek|n}}, {{t+|nl|Wiktionary|m}}
* {{langname|nds}}: {{t|nds|Wikiwöörbook|n}}, {{t|nds|Wiktionary|n}}
* {{langname|hi}}: {{t+|hi|विक्षनरी|f}}, {{t+|hi|विकि-शब्दकोश|tr=viki-śabdakoś}}
* {{langname|hu}}: {{t+|hu|Wikiszótár}}, {{t+|hu|Wiktionary}}
* {{langname|el}}: {{t+|el|Βικιλεξικό|n}}
* {{langname|is}}: {{t+|is|Wikiorðabók|f}}
* {{langname|io}}: {{t+|io|Wikivortaro}}
* {{langname|id}}: {{t+|id|Wikikamus}}
* {{langname|ga}}: {{t+|ga|Vicífhoclóir}}
* {{langname|jv}}: {{t+|jv|Wikisastra}}
* {{langname|kn}}: {{t+|kn|ವಿಕ್ಷನರಿ}}
* {{langname|kk}}: {{t|kk|Уикисөздік}}
* {{langname|km}}: {{t+|km|វិគីនានុក្រម}}
* Tiếng Kurd:
*: {{langname|kmr}}: {{t+|kmr|Wîkîferheng|m}}
*: {{langname|ckb}}: {{t+|ckb|ویکیفەرھەنگ}}
* {{langname|ky}}: {{t+|ky|Викисөздүк}}
* {{langname|lo}}: {{t|lo|ວິກິພົດຈະນານຸກົມ}}
* {{langname|la}}: {{t+|la|Victiōnārium}}
* {{langname|lv}}: {{t+|lv|Vikivārdnīca|f}}
* {{langname|li}}: {{t+|li|Wiktionair}}
* {{langname|lt}}: {{t+|lt|Vikižodynas|m}}
* {{langname|lb}}: {{t+|lb|Wiktionnaire|m}}
* {{langname|mk}}: {{t|mk|Викире́чник|m}}
* {{langname|mg}}: {{t+|mg|Wikibolana}}
* {{langname|ms}}: {{t+|ms|Wikikamus}}
* {{langname|ml}}: {{t+|ml|വിക്കിനിഘണ്ടു}}
* {{langname|mt}}: {{t|mt|Wikizzjunarju|m}}
* {{langname|mr}}: {{t|mr|विक्षनरी|tr=vikśanarī}}
* {{langname|my}}: {{t+|my|ဝစ်ရှင်နရီ}}
* {{langname|mnw}}: {{t|mnw|ဝိက်ရှေန်နရဳ}}
* {{langname|mn}}:
*: Kirin: {{t|mn|Викитоль}}
* {{langname|no}}:
*: {{langname|nb}}: {{t+|nb|Wiktionary}}
* {{langname|ne}}: {{t+|ne|विक्सनरी}}, {{t|ne|विक्षनरी}}
* {{langname|ru}}: {{t+|ru|Викислова́рь|m}}
* {{langname|ja}}: {{t+|ja|ウィクショナリー|tr=Wikushonarī}}
* {{langname|oc}}: {{t+|oc|Wikiccionari|m}}
* {{langname|or}}: {{t|or|ଉଇକିଅଭିଧାନ}}
* {{langname|ps}}: {{t+|ps|ويکيسيند|m|tr=wikisind}}
* {{langname|fi}}: {{t+|fi|Wikisanakirja}}
* {{langname|fr}}: {{t+|fr|Wiktionnaire|m}}
* {{langname|pms}}: {{t|pms|Wiktionary}}, {{t|pms|Wiksionari}}
* {{langname|pa}}:
*: Gurmukhi: {{t+|pa|ਵਿਕਸ਼ਨਰੀ}}
* {{langname|qu}}: {{t|qu|Wiksimitaqi}}
* {{langname|eo}}: {{t+|eo|Vikivortaro}}
* {{langname|ro}}: {{t+|ro|Wikționar|n}}
* {{langname|sa}}: {{t|sa|विकिशब्दकोश}}
* {{langname|sco}}: {{t|sco|Wiktionar}}
* {{langname|cs}}: {{t+|cs|Wikislovník|m}}
* {{langname|sh}}:
*: Kirin: {{t|sh|Викиречник|m}}, {{t|sh|Викирјечник|m}}
*: Latinh: {{t|sh|Vikirečnik|m}}, {{t+|sh|Vikirječnik|m}}, {{t|sh|Wječnik|m}}
* {{langname|shn}}: {{t|shn|ဝိၵ်ႇသျိၼ်ႇၼရီႇ}}
* {{langname|scn}}: {{t|scn|Wikizziunaru|m}} {{qual|chính tả}}; {{t+|scn|Wikizziunariu|m}} {{qual|cách viết theo chuẩn hóa Ý áp dụng cho dự án tương ứng}}
* {{langname|szl}}: {{t|szl|Wikcjōnorz|m}}
* {{langname|sd}}: {{t+|sd|وڪي لغت|tr=wiki lughat}}
* {{langname|si}}: {{t+|si|වික්ෂනරිය}}
* {{langname|sk}}: {{t+|sk|Wikislovník|m}}
* {{langname|sl}}: {{t+|sl|Wikislovar|m}}
* {{langname|sw}}: {{t|sw|Wikamusi}}
* {{langname|tl}}: {{t+|tl|Wiksiyonaryo}}
* {{langname|es}}: {{t+|es|Wikcionario|m}}
* {{langname|tg}}: {{t|tg|Викилуғат}}
* {{langname|ta}}: {{t+|ta|விக்சனரி}}
* {{langname|tt}}: {{t+|tt|Викисүзлек}}
*: Latinh: {{t+|tt|Wikisüzlek}}
* {{langname|te}}: {{t+|te|విక్షనరీ}}
* {{langname|th}}: {{t+|th|วิกิพจนานุกรม}}
* {{langname|tr}}: {{t+|tr|Vikisözlük}}
* {{langname|sv}}: {{t+|sv|Wiktionary|c}}
* {{langname|ti}}: {{t|ti|ዊኪ-መዝገበ-ቃላት}}
* {{langname|ko}}: {{t+|ko|^위키낱말사전(辭典)}}, {{t+|ko|^윅셔너리}}
* {{langname|zh}}:
*: {{langname|cmn}}: {{t+|cmn|維基詞典}}, {{t|cmn|維基辭典}}
*: {{langname|yue}}: {{t|yue|維基辭典}}, {{t|yue|維基詞典}}
* {{langname|tk}}: {{t|tk|Wikisözlük}}
* {{langname|uk}}: {{t+|uk|Вікісловни́к|m}}
* {{langname|ur}}: {{t|ur|وِکْشَنْری|f}}
* {{langname|uz}}: {{t+|uz|Vikilugʻat}}
* {{langname|vo}}: {{t+|vo|Vükivödabuk}}
* {{langname|cy}}: {{t+|cy|Wiciadur}}
* {{langname|it}}: {{t+|it|Wikizionario|m}}
* {{langname|yi}}: {{t+|yi|וויקיווערטערבוך|n}}
{{trans-bottom}}
==={{section|further}}===
* [[:Thể loại:Wiktionary]]
* {{commons inline}}
* {{wikiquote inline}}
* {{wikibooks inline}}
* {{wikiversity inline}}
* {{meta-wiki inline|Wiktionary#List of Wiktionaries}}
=={{langname|en}}==
[[Tập tin:WiktionaryEn - DP Derivative.svg|135px|phải|Biểu trưng của Wiktionary tiếng Anh]]
==={{section|alt}}===
* {{alt|en|wiktionary}}
* {{alt|en|Wikitionary||từ sai chính tả}}
==={{section|etym}}===
{{ety|en|id=Q151|:blend|wiki|dictionary|text=+|tree=1}}
==={{section|pron}}===
* {{IPA|en|/ˈwɪk.ʃən.ɹi/|/ˈwɪk.ʃə.nə.ɹi/|a=UK}}
** {{audio|en|en-uk-Wiktionary.ogg|a=UK}}
** {{audio|en|en-uk-Wiktionary-2.ogg|a=UK}}
* {{enPR|wĭkʹshə-nĕr'ē|a=US}}, {{IPA|en|/ˈwɪk.ʃəˌnɛɹ.i/|/ˈwɪk.tʃəˌnɛɹ.i/}}
** {{audio|en|en-us-Wiktionary.ogg|a=GA|q=giọng nữ}}
** {{audio|en|en-us-Wiktionary-3.ogg|a=GA|q=giọng nam}}
* {{IPA|en|/ˈwɪk.ʃəˌnɛ.ɹi/|a=Canada}}
** {{audio|en|en-ca-wiktionary.ogg|a=Canada}}
* {{IPA|en|/ˈwɪk.ʃə.nə.ɹiː/|a=AU}}
** {{audio|en|en-au-Wiktionary.ogg|a=AU}}
* {{IPA|en|/ˈʋɪkʃ.nə.ri/|/ˈʋɪk.ʃə.nɛ.ri/|[ˈwikʃ.nə.ɾi]|a=InE}}
* {{rhymes|en|ɪkʃənɹi<s:3>|ɪkʃənəɹi<s:4>|ɪkʃənɛəɹi<s:4>|ɛəɹi<s:4>}}
* {{hyph|en|Wik|tion|a|ry||Wik|tion|ary}}
==={{section|pr-noun}}===
{{en-prop|ies}}
# {{tcl|en|Wiktionary|id=Q151}}
#: {{syn|en|Wikt}}
===={{section|drv}}====
{{col|en
|Wikt<qq:dạng cắt từ>
|Wiktionarian
}}
{{C|en|Từ điển|Website}}
=={{langname|de}}==
[[Tập tin:WiktionaryEn - DP Derivative.svg|135px|phải|Biểu trưng của Wiktionary tiếng Anh]]
{{wp|de:}}
==={{section|pron}}===
{{ety|de|:bor|en:Wiktionary}}
{{bor+|de|en|Wiktionary}}.
==={{section|pron}}===
* {{IPA|de|/ˈvɪk.(t)ʃəˌnɛ.ʁi/|/-ɹi/}}
* {{IPA|de|/ˈvɪk.(t)ʃənˌʁiː/|/-ˌɹiː/}} {{q|có lẽ hiếm}}
* {{audio|de|De-Wiktionary.ogg|IPA=[ˈʋɪktʃəˌnɛɹi]}}
* {{audio|de|De-Wiktionary2.ogg|a=Berlin}}
* {{hyph|de|Wik|tio|na|ry}}
==={{section|pr-noun}}===
{{de-proper noun|n,(s)}}
# {{tcl|de|Wiktionary|id=Q151}}
#: {{syn|de|Wikiwörterbuch}}
===={{section|decl}}====
{{de-ndecl|n,(s).sg}}
{{C|de|Từ điển|Website}}
q6434ct0vc67bk57wo5ahrdkhmqlq52
2570000
2569992
2026-10-12T16:16:18Z
Hiyuune
50834
/* Cách phát âm */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2570000
wikitext
text/x-wiki
=={{langname|vi}}==
{{wp}}
[[Tập tin:Wiktionary-logo-vi.svg|120px|phải|[[biểu trưng|Biểu trưng]] của Wiktionary tiếng Việt]]
==={{section|etym}}===
Từ {{bor|vi|en|Wiktionary}}.
==={{section|pron}}===
{{vi-pron|uých|sân|na|ri}}
==={{section|pr-noun}}===
{{vi-pr-noun}}
# {{senseid|vi|Q151}} Một [[dự án]] trực thuộc [[quỹ hỗ trợ|Quỹ Hỗ trợ]] [[Wikimedia]], cùng với [[Wikipedia]], để [[biên soạn]] một bộ [[từ điển]] [[nội dung mở]] dùng hệ thống [[wiki]], bao gồm nhiều [[ngôn ngữ]].
===={{section|trans}}====
{{trans-top|dự án từ điển mở}}
* {{langname|ar}}: {{t+|ar|وِيكَامُوس|m}}
* {{langname|af}}: {{t+|af|Wikiwoordeboek}}
* {{langname|sq}}: {{t|sq|Wikifjalor|m}}
* {{langname|am}}: {{t|am|ዊኪ መዝገበ ቃላት}}
* {{langname|en}}: {{t+|en|Wiktionary}}
* {{langname|an}}: {{t+|an|Biquizionario|m}}
* {{langname|hy}}: {{t|hy|Վիքիբառարան}}
* {{langname|as}}: {{t|as|ৱিকিঅভিধান}}
* {{langname|ast}}: {{t+|ast|Wikcionariu}}
* {{langname|az}}: {{t+|az|Vikilüğət}}
* {{langname|pl}}: {{t+|pl|Wikisłownik|m}}
* {{langname|fa}}:
*: {{langname|fa-ira}}: {{t+|fa-ira|ویکیواژِه|tr=viki-vâže}}
* {{langname|eu}}: {{t+|eu|Wikiztegia}}
* {{langname|be}}: {{t+|be|Вікісло́ўнік|m}}
* {{langname|bn}}: {{t+|bn|উইকিঅভিধান}}
* Tiếng Bikol:
*: {{langname|bcl}}: {{t|bcl|Wiksyunaryo}}
* {{langname|ia}}: {{t+|ia|Wiktionario}}
* {{langname|pt}}: {{t+|pt|Wikcionário}}
* {{langname|br}}: {{t+|br|Wikeriadur|m}}
* {{langname|bg}}: {{t|bg|Уикире́чник|m}}
* {{langname|ca}}: {{t+|ca|Viccionari|m}}
* {{langname|cv}}: {{t|cv|Викисӑмахсар}}
* {{langname|co}}: {{t+|co|Wikizziunariu|m}}
* {{langname|he}}: {{t+|he|ויקימילון|m|alt=וִיקִימִלּוֹן \ ויקימילון|tr=vikimilón}}
* {{langname|ug}}: {{t|ug|ۋىكىلۇغەت}}
* {{langname|da}}: {{t|da|Wikiordbog|c}}, {{t+|da|Wiktionary}}
* {{langname|de}}: {{t+|de|Wiktionary|n}}, {{t+|de|Wikiwörterbuch|n}}
* {{langname|et}}: {{t+|et|Vikisõnaraamat}}, {{t+|et|Vikisõnastik}}
* {{langname|ka}}: {{t+|ka|ვიქსიკონი}}, {{t+|ka|ვიქსიკონი}}
* {{langname|gu}}: {{t+|gu|વિકિકોશ}}
* {{langname|nl}}: {{t+|nl|WikiWoordenboek|n}}, {{t+|nl|Wiktionary|m}}
* {{langname|nds}}: {{t|nds|Wikiwöörbook|n}}, {{t|nds|Wiktionary|n}}
* {{langname|hi}}: {{t+|hi|विक्षनरी|f}}, {{t+|hi|विकि-शब्दकोश|tr=viki-śabdakoś}}
* {{langname|hu}}: {{t+|hu|Wikiszótár}}, {{t+|hu|Wiktionary}}
* {{langname|el}}: {{t+|el|Βικιλεξικό|n}}
* {{langname|is}}: {{t+|is|Wikiorðabók|f}}
* {{langname|io}}: {{t+|io|Wikivortaro}}
* {{langname|id}}: {{t+|id|Wikikamus}}
* {{langname|ga}}: {{t+|ga|Vicífhoclóir}}
* {{langname|jv}}: {{t+|jv|Wikisastra}}
* {{langname|kn}}: {{t+|kn|ವಿಕ್ಷನರಿ}}
* {{langname|kk}}: {{t|kk|Уикисөздік}}
* {{langname|km}}: {{t+|km|វិគីនានុក្រម}}
* Tiếng Kurd:
*: {{langname|kmr}}: {{t+|kmr|Wîkîferheng|m}}
*: {{langname|ckb}}: {{t+|ckb|ویکیفەرھەنگ}}
* {{langname|ky}}: {{t+|ky|Викисөздүк}}
* {{langname|lo}}: {{t|lo|ວິກິພົດຈະນານຸກົມ}}
* {{langname|la}}: {{t+|la|Victiōnārium}}
* {{langname|lv}}: {{t+|lv|Vikivārdnīca|f}}
* {{langname|li}}: {{t+|li|Wiktionair}}
* {{langname|lt}}: {{t+|lt|Vikižodynas|m}}
* {{langname|lb}}: {{t+|lb|Wiktionnaire|m}}
* {{langname|mk}}: {{t|mk|Викире́чник|m}}
* {{langname|mg}}: {{t+|mg|Wikibolana}}
* {{langname|ms}}: {{t+|ms|Wikikamus}}
* {{langname|ml}}: {{t+|ml|വിക്കിനിഘണ്ടു}}
* {{langname|mt}}: {{t|mt|Wikizzjunarju|m}}
* {{langname|mr}}: {{t|mr|विक्षनरी|tr=vikśanarī}}
* {{langname|my}}: {{t+|my|ဝစ်ရှင်နရီ}}
* {{langname|mnw}}: {{t|mnw|ဝိက်ရှေန်နရဳ}}
* {{langname|mn}}:
*: Kirin: {{t|mn|Викитоль}}
* {{langname|no}}:
*: {{langname|nb}}: {{t+|nb|Wiktionary}}
* {{langname|ne}}: {{t+|ne|विक्सनरी}}, {{t|ne|विक्षनरी}}
* {{langname|ru}}: {{t+|ru|Викислова́рь|m}}
* {{langname|ja}}: {{t+|ja|ウィクショナリー|tr=Wikushonarī}}
* {{langname|oc}}: {{t+|oc|Wikiccionari|m}}
* {{langname|or}}: {{t|or|ଉଇକିଅଭିଧାନ}}
* {{langname|ps}}: {{t+|ps|ويکيسيند|m|tr=wikisind}}
* {{langname|fi}}: {{t+|fi|Wikisanakirja}}
* {{langname|fr}}: {{t+|fr|Wiktionnaire|m}}
* {{langname|pms}}: {{t|pms|Wiktionary}}, {{t|pms|Wiksionari}}
* {{langname|pa}}:
*: Gurmukhi: {{t+|pa|ਵਿਕਸ਼ਨਰੀ}}
* {{langname|qu}}: {{t|qu|Wiksimitaqi}}
* {{langname|eo}}: {{t+|eo|Vikivortaro}}
* {{langname|ro}}: {{t+|ro|Wikționar|n}}
* {{langname|sa}}: {{t|sa|विकिशब्दकोश}}
* {{langname|sco}}: {{t|sco|Wiktionar}}
* {{langname|cs}}: {{t+|cs|Wikislovník|m}}
* {{langname|sh}}:
*: Kirin: {{t|sh|Викиречник|m}}, {{t|sh|Викирјечник|m}}
*: Latinh: {{t|sh|Vikirečnik|m}}, {{t+|sh|Vikirječnik|m}}, {{t|sh|Wječnik|m}}
* {{langname|shn}}: {{t|shn|ဝိၵ်ႇသျိၼ်ႇၼရီႇ}}
* {{langname|scn}}: {{t|scn|Wikizziunaru|m}} {{qual|chính tả}}; {{t+|scn|Wikizziunariu|m}} {{qual|cách viết theo chuẩn hóa Ý áp dụng cho dự án tương ứng}}
* {{langname|szl}}: {{t|szl|Wikcjōnorz|m}}
* {{langname|sd}}: {{t+|sd|وڪي لغت|tr=wiki lughat}}
* {{langname|si}}: {{t+|si|වික්ෂනරිය}}
* {{langname|sk}}: {{t+|sk|Wikislovník|m}}
* {{langname|sl}}: {{t+|sl|Wikislovar|m}}
* {{langname|sw}}: {{t|sw|Wikamusi}}
* {{langname|tl}}: {{t+|tl|Wiksiyonaryo}}
* {{langname|es}}: {{t+|es|Wikcionario|m}}
* {{langname|tg}}: {{t|tg|Викилуғат}}
* {{langname|ta}}: {{t+|ta|விக்சனரி}}
* {{langname|tt}}: {{t+|tt|Викисүзлек}}
*: Latinh: {{t+|tt|Wikisüzlek}}
* {{langname|te}}: {{t+|te|విక్షనరీ}}
* {{langname|th}}: {{t+|th|วิกิพจนานุกรม}}
* {{langname|tr}}: {{t+|tr|Vikisözlük}}
* {{langname|sv}}: {{t+|sv|Wiktionary|c}}
* {{langname|ti}}: {{t|ti|ዊኪ-መዝገበ-ቃላት}}
* {{langname|ko}}: {{t+|ko|^위키낱말사전(辭典)}}, {{t+|ko|^윅셔너리}}
* {{langname|zh}}:
*: {{langname|cmn}}: {{t+|cmn|維基詞典}}, {{t|cmn|維基辭典}}
*: {{langname|yue}}: {{t|yue|維基辭典}}, {{t|yue|維基詞典}}
* {{langname|tk}}: {{t|tk|Wikisözlük}}
* {{langname|uk}}: {{t+|uk|Вікісловни́к|m}}
* {{langname|ur}}: {{t|ur|وِکْشَنْری|f}}
* {{langname|uz}}: {{t+|uz|Vikilugʻat}}
* {{langname|vo}}: {{t+|vo|Vükivödabuk}}
* {{langname|cy}}: {{t+|cy|Wiciadur}}
* {{langname|it}}: {{t+|it|Wikizionario|m}}
* {{langname|yi}}: {{t+|yi|וויקיווערטערבוך|n}}
{{trans-bottom}}
==={{section|further}}===
* [[:Thể loại:Wiktionary]]
* {{commons inline}}
* {{wikiquote inline}}
* {{wikibooks inline}}
* {{wikiversity inline}}
* {{meta-wiki inline|Wiktionary#List of Wiktionaries}}
=={{langname|en}}==
[[Tập tin:WiktionaryEn - DP Derivative.svg|135px|phải|Biểu trưng của Wiktionary tiếng Anh]]
==={{section|alt}}===
* {{alt|en|wiktionary}}
* {{alt|en|Wikitionary||từ sai chính tả}}
==={{section|etym}}===
{{ety|en|id=Q151|:blend|wiki|dictionary|text=+|tree=1}}
==={{section|pron}}===
* {{IPA|en|/ˈwɪk.ʃən.ɹi/|/ˈwɪk.ʃə.nə.ɹi/|a=UK}}
** {{audio|en|en-uk-Wiktionary.ogg|a=UK}}
** {{audio|en|en-uk-Wiktionary-2.ogg|a=UK}}
* {{enPR|wĭkʹshə-nĕr'ē|a=US}}, {{IPA|en|/ˈwɪk.ʃəˌnɛɹ.i/|/ˈwɪk.tʃəˌnɛɹ.i/}}
** {{audio|en|en-us-Wiktionary.ogg|a=GA|q=giọng nữ}}
** {{audio|en|en-us-Wiktionary-3.ogg|a=GA|q=giọng nam}}
* {{IPA|en|/ˈwɪk.ʃəˌnɛ.ɹi/|a=Canada}}
** {{audio|en|en-ca-wiktionary.ogg|a=Canada}}
* {{IPA|en|/ˈwɪk.ʃə.nə.ɹiː/|a=AU}}
** {{audio|en|en-au-Wiktionary.ogg|a=AU}}
* {{IPA|en|/ˈʋɪkʃ.nə.ri/|/ˈʋɪk.ʃə.nɛ.ri/|[ˈwikʃ.nə.ɾi]|a=InE}}
* {{rhymes|en|ɪkʃənɹi<s:3>|ɪkʃənəɹi<s:4>|ɪkʃənɛəɹi<s:4>|ɛəɹi<s:4>}}
* {{hyph|en|Wik|tion|a|ry||Wik|tion|ary}}
==={{section|pr-noun}}===
{{en-prop|ies}}
# {{tcl|en|Wiktionary|id=Q151}}
#: {{syn|en|Wikt}}
===={{section|drv}}====
{{col|en
|Wikt<qq:dạng cắt từ>
|Wiktionarian
}}
{{C|en|Từ điển|Website}}
=={{langname|de}}==
[[Tập tin:WiktionaryEn - DP Derivative.svg|135px|phải|Biểu trưng của Wiktionary tiếng Anh]]
{{wp|de:}}
==={{section|etym}}===
{{ety|de|:bor|en:Wiktionary}}
{{bor+|de|en|Wiktionary}}.
==={{section|pron}}===
* {{IPA|de|/ˈvɪk.(t)ʃəˌnɛ.ʁi/|/-ɹi/}}
* {{IPA|de|/ˈvɪk.(t)ʃənˌʁiː/|/-ˌɹiː/}} {{q|có lẽ hiếm}}
* {{audio|de|De-Wiktionary.ogg|IPA=[ˈʋɪktʃəˌnɛɹi]}}
* {{audio|de|De-Wiktionary2.ogg|a=Berlin}}
* {{hyph|de|Wik|tio|na|ry}}
==={{section|pr-noun}}===
{{de-proper noun|n,(s)}}
# {{tcl|de|Wiktionary|id=Q151}}
#: {{syn|de|Wikiwörterbuch}}
===={{section|decl}}====
{{de-ndecl|n,(s).sg}}
{{C|de|Từ điển|Website}}
80qx7rkpnakg26pbchhnicq6chsqphg
2570001
2570000
2026-10-12T16:17:39Z
Hiyuune
50834
2570001
wikitext
text/x-wiki
=={{langname|vi}}==
{{wp}}
[[Tập tin:Wiktionary-logo-vi.svg|120px|phải|[[biểu trưng|Biểu trưng]] của Wiktionary tiếng Việt]]
==={{section|etym}}===
Từ {{bor|vi|en|Wiktionary}}.
==={{section|pron}}===
{{vi-pron|uých|sân|na|ri}}
==={{section|pr-noun}}===
{{vi-pr-noun}}
# {{senseid|vi|Q151}} Một [[dự án]] trực thuộc [[quỹ hỗ trợ|Quỹ Hỗ trợ]] [[Wikimedia]], cùng với [[Wikipedia]], để [[biên soạn]] một bộ [[từ điển]] [[nội dung mở]] dùng hệ thống [[wiki]], bao gồm nhiều [[ngôn ngữ]].
===={{section|trans}}====
{{trans-top|dự án từ điển mở}}
* {{langname|ar}}: {{t+|ar|وِيكَامُوس|m}}
* {{langname|af}}: {{t+|af|Wikiwoordeboek}}
* {{langname|sq}}: {{t|sq|Wikifjalor|m}}
* {{langname|am}}: {{t|am|ዊኪ መዝገበ ቃላት}}
* {{langname|en}}: {{t+|en|Wiktionary}}
* {{langname|an}}: {{t+|an|Biquizionario|m}}
* {{langname|hy}}: {{t|hy|Վիքիբառարան}}
* {{langname|as}}: {{t|as|ৱিকিঅভিধান}}
* {{langname|ast}}: {{t+|ast|Wikcionariu}}
* {{langname|az}}: {{t+|az|Vikilüğət}}
* {{langname|pl}}: {{t+|pl|Wikisłownik|m}}
* {{langname|fa}}:
*: {{langname|fa-ira}}: {{t+|fa-ira|ویکیواژِه|tr=viki-vâže}}
* {{langname|eu}}: {{t+|eu|Wikiztegia}}
* {{langname|be}}: {{t+|be|Вікісло́ўнік|m}}
* {{langname|bn}}: {{t+|bn|উইকিঅভিধান}}
* Tiếng Bikol:
*: {{langname|bcl}}: {{t|bcl|Wiksyunaryo}}
* {{langname|ia}}: {{t+|ia|Wiktionario}}
* {{langname|pt}}: {{t+|pt|Wikcionário}}
* {{langname|br}}: {{t+|br|Wikeriadur|m}}
* {{langname|bg}}: {{t|bg|Уикире́чник|m}}
* {{langname|ca}}: {{t+|ca|Viccionari|m}}
* {{langname|cv}}: {{t|cv|Викисӑмахсар}}
* {{langname|co}}: {{t+|co|Wikizziunariu|m}}
* {{langname|he}}: {{t+|he|ויקימילון|m|alt=וִיקִימִלּוֹן \ ויקימילון|tr=vikimilón}}
* {{langname|ug}}: {{t|ug|ۋىكىلۇغەت}}
* {{langname|da}}: {{t|da|Wikiordbog|c}}, {{t+|da|Wiktionary}}
* {{langname|de}}: {{t+|de|Wiktionary|n}}, {{t+|de|Wikiwörterbuch|n}}
* {{langname|et}}: {{t+|et|Vikisõnaraamat}}, {{t+|et|Vikisõnastik}}
* {{langname|ka}}: {{t+|ka|ვიქსიკონი}}, {{t+|ka|ვიქსიკონი}}
* {{langname|gu}}: {{t+|gu|વિકિકોશ}}
* {{langname|nl}}: {{t+|nl|WikiWoordenboek|n}}, {{t+|nl|Wiktionary|m}}
* {{langname|nds}}: {{t|nds|Wikiwöörbook|n}}, {{t|nds|Wiktionary|n}}
* {{langname|hi}}: {{t+|hi|विक्षनरी|f}}, {{t+|hi|विकि-शब्दकोश|tr=viki-śabdakoś}}
* {{langname|hu}}: {{t+|hu|Wikiszótár}}, {{t+|hu|Wiktionary}}
* {{langname|el}}: {{t+|el|Βικιλεξικό|n}}
* {{langname|is}}: {{t+|is|Wikiorðabók|f}}
* {{langname|io}}: {{t+|io|Wikivortaro}}
* {{langname|id}}: {{t+|id|Wikikamus}}
* {{langname|ga}}: {{t+|ga|Vicífhoclóir}}
* {{langname|jv}}: {{t+|jv|Wikisastra}}
* {{langname|kn}}: {{t+|kn|ವಿಕ್ಷನರಿ}}
* {{langname|kk}}: {{t|kk|Уикисөздік}}
* {{langname|km}}: {{t+|km|វិគីនានុក្រម}}
* Tiếng Kurd:
*: {{langname|kmr}}: {{t+|kmr|Wîkîferheng|m}}
*: {{langname|ckb}}: {{t+|ckb|ویکیفەرھەنگ}}
* {{langname|ky}}: {{t+|ky|Викисөздүк}}
* {{langname|lo}}: {{t|lo|ວິກິພົດຈະນານຸກົມ}}
* {{langname|la}}: {{t+|la|Victiōnārium}}
* {{langname|lv}}: {{t+|lv|Vikivārdnīca|f}}
* {{langname|li}}: {{t+|li|Wiktionair}}
* {{langname|lt}}: {{t+|lt|Vikižodynas|m}}
* {{langname|lb}}: {{t+|lb|Wiktionnaire|m}}
* {{langname|mk}}: {{t|mk|Викире́чник|m}}
* {{langname|mg}}: {{t+|mg|Wikibolana}}
* {{langname|ms}}: {{t+|ms|Wikikamus}}
* {{langname|ml}}: {{t+|ml|വിക്കിനിഘണ്ടു}}
* {{langname|mt}}: {{t|mt|Wikizzjunarju|m}}
* {{langname|mr}}: {{t|mr|विक्षनरी|tr=vikśanarī}}
* {{langname|my}}: {{t+|my|ဝစ်ရှင်နရီ}}
* {{langname|mnw}}: {{t|mnw|ဝိက်ရှေန်နရဳ}}
* {{langname|mn}}:
*: Kirin: {{t|mn|Викитоль}}
* {{langname|no}}:
*: {{langname|nb}}: {{t+|nb|Wiktionary}}
* {{langname|ne}}: {{t+|ne|विक्सनरी}}, {{t|ne|विक्षनरी}}
* {{langname|ru}}: {{t+|ru|Викислова́рь|m}}
* {{langname|ja}}: {{t+|ja|ウィクショナリー|tr=Wikushonarī}}
* {{langname|oc}}: {{t+|oc|Wikiccionari|m}}
* {{langname|or}}: {{t|or|ଉଇକିଅଭିଧାନ}}
* {{langname|ps}}: {{t+|ps|ويکيسيند|m|tr=wikisind}}
* {{langname|fi}}: {{t+|fi|Wikisanakirja}}
* {{langname|fr}}: {{t+|fr|Wiktionnaire|m}}
* {{langname|pms}}: {{t|pms|Wiktionary}}, {{t|pms|Wiksionari}}
* {{langname|pa}}:
*: Gurmukhi: {{t+|pa|ਵਿਕਸ਼ਨਰੀ}}
* {{langname|qu}}: {{t|qu|Wiksimitaqi}}
* {{langname|eo}}: {{t+|eo|Vikivortaro}}
* {{langname|ro}}: {{t+|ro|Wikționar|n}}
* {{langname|sa}}: {{t|sa|विकिशब्दकोश}}
* {{langname|sco}}: {{t|sco|Wiktionar}}
* {{langname|cs}}: {{t+|cs|Wikislovník|m}}
* {{langname|sh}}:
*: Kirin: {{t|sh|Викиречник|m}}, {{t|sh|Викирјечник|m}}
*: Latinh: {{t|sh|Vikirečnik|m}}, {{t+|sh|Vikirječnik|m}}, {{t|sh|Wječnik|m}}
* {{langname|shn}}: {{t|shn|ဝိၵ်ႇသျိၼ်ႇၼရီႇ}}
* {{langname|scn}}: {{t|scn|Wikizziunaru|m}} {{qual|chính tả}}; {{t+|scn|Wikizziunariu|m}} {{qual|cách viết theo chuẩn hóa Ý áp dụng cho dự án tương ứng}}
* {{langname|szl}}: {{t|szl|Wikcjōnorz|m}}
* {{langname|sd}}: {{t+|sd|وڪي لغت|tr=wiki lughat}}
* {{langname|si}}: {{t+|si|වික්ෂනරිය}}
* {{langname|sk}}: {{t+|sk|Wikislovník|m}}
* {{langname|sl}}: {{t+|sl|Wikislovar|m}}
* {{langname|sw}}: {{t|sw|Wikamusi}}
* {{langname|tl}}: {{t+|tl|Wiksiyonaryo}}
* {{langname|es}}: {{t+|es|Wikcionario|m}}
* {{langname|tg}}: {{t|tg|Викилуғат}}
* {{langname|ta}}: {{t+|ta|விக்சனரி}}
* {{langname|tt}}: {{t+|tt|Викисүзлек}}
*: Latinh: {{t+|tt|Wikisüzlek}}
* {{langname|te}}: {{t+|te|విక్షనరీ}}
* {{langname|th}}: {{t+|th|วิกิพจนานุกรม}}
* {{langname|tr}}: {{t+|tr|Vikisözlük}}
* {{langname|sv}}: {{t+|sv|Wiktionary|c}}
* {{langname|ti}}: {{t|ti|ዊኪ-መዝገበ-ቃላት}}
* {{langname|ko}}: {{t+|ko|^위키낱말사전(辭典)}}, {{t+|ko|^윅셔너리}}
* {{langname|zh}}:
*: {{langname|cmn}}: {{t+|cmn|維基詞典}}, {{t|cmn|維基辭典}}
*: {{langname|yue}}: {{t|yue|維基辭典}}, {{t|yue|維基詞典}}
* {{langname|tk}}: {{t|tk|Wikisözlük}}
* {{langname|uk}}: {{t+|uk|Вікісловни́к|m}}
* {{langname|ur}}: {{t|ur|وِکْشَنْری|f}}
* {{langname|uz}}: {{t+|uz|Vikilugʻat}}
* {{langname|vo}}: {{t+|vo|Vükivödabuk}}
* {{langname|cy}}: {{t+|cy|Wiciadur}}
* {{langname|it}}: {{t+|it|Wikizionario|m}}
* {{langname|yi}}: {{t+|yi|וויקיווערטערבוך|n}}
{{trans-bottom}}
==={{section|further}}===
* [[:Thể loại:Wiktionary]]
* {{commons inline}}
* {{wikiquote inline}}
* {{wikibooks inline}}
* {{wikiversity inline}}
* {{meta-wiki inline|Wiktionary#List of Wiktionaries}}
=={{langname|en}}==
[[Tập tin:WiktionaryEn - DP Derivative.svg|135px|phải|Biểu trưng của Wiktionary tiếng Anh]]
==={{section|alt}}===
* {{alt|en|wiktionary}}
* {{alt|en|Wikitionary||từ sai chính tả}}
==={{section|etym}}===
{{ety|en|id=Q151|:blend|wiki|dictionary|text=+|tree=1}}
==={{section|pron}}===
* {{IPA|en|/ˈwɪk.ʃən.ɹi/|/ˈwɪk.ʃə.nə.ɹi/|a=UK}}
** {{audio|en|en-uk-Wiktionary.ogg|a=UK}}
** {{audio|en|en-uk-Wiktionary-2.ogg|a=UK}}
* {{enPR|wĭkʹshə-nĕr'ē|a=US}}, {{IPA|en|/ˈwɪk.ʃəˌnɛɹ.i/|/ˈwɪk.tʃəˌnɛɹ.i/}}
** {{audio|en|en-us-Wiktionary.ogg|a=GA|q=giọng nữ}}
** {{audio|en|en-us-Wiktionary-3.ogg|a=GA|q=giọng nam}}
* {{IPA|en|/ˈwɪk.ʃəˌnɛ.ɹi/|a=Canada}}
** {{audio|en|en-ca-wiktionary.ogg|a=Canada}}
* {{IPA|en|/ˈwɪk.ʃə.nə.ɹiː/|a=AU}}
** {{audio|en|en-au-Wiktionary.ogg|a=AU}}
* {{IPA|en|/ˈʋɪkʃ.nə.ri/|/ˈʋɪk.ʃə.nɛ.ri/|[ˈwikʃ.nə.ɾi]|a=InE}}
* {{rhymes|en|ɪkʃənɹi<s:3>|ɪkʃənəɹi<s:4>|ɪkʃənɛəɹi<s:4>|ɛəɹi<s:4>}}
* {{hyph|en|Wik|tion|a|ry||Wik|tion|ary}}
==={{section|pr-noun}}===
{{en-prop|ies}}
# {{tcl|en|Wiktionary|id=Q151}}
#: {{syn|en|Wikt}}
===={{section|drv}}====
{{col|en
|Wikt<qq:dạng cắt từ>
|Wiktionarian
}}
{{C|en|Từ điển|Website}}
=={{langname|da}}==
{{wp|da:}}
==={{section|etym}}===
{{ubor|da|en|Wiktionary}}.
==={{section|pr-noun}}===
{{head|da|Danh từ riêng}}
# {{tcl|da|Wiktionary|id=Q151}}
#: {{syn|da|Wikiordbog}}
{{C|da|Từ điển|Website}}
=={{langname|de}}==
[[Tập tin:WiktionaryEn - DP Derivative.svg|135px|phải|Biểu trưng của Wiktionary tiếng Anh]]
{{wp|de:}}
==={{section|etym}}===
{{ety|de|:bor|en:Wiktionary}}
{{bor+|de|en|Wiktionary}}.
==={{section|pron}}===
* {{IPA|de|/ˈvɪk.(t)ʃəˌnɛ.ʁi/|/-ɹi/}}
* {{IPA|de|/ˈvɪk.(t)ʃənˌʁiː/|/-ˌɹiː/}} {{q|có lẽ hiếm}}
* {{audio|de|De-Wiktionary.ogg|IPA=[ˈʋɪktʃəˌnɛɹi]}}
* {{audio|de|De-Wiktionary2.ogg|a=Berlin}}
* {{hyph|de|Wik|tio|na|ry}}
==={{section|pr-noun}}===
{{de-proper noun|n,(s)}}
# {{tcl|de|Wiktionary|id=Q151}}
#: {{syn|de|Wikiwörterbuch}}
===={{section|decl}}====
{{de-ndecl|n,(s).sg}}
{{C|de|Từ điển|Website}}
5enr359awmho6cybzhglw14mzsymuaj
2570004
2570001
2026-10-12T16:18:45Z
Hiyuune
50834
/* {{section|drv}} */
2570004
wikitext
text/x-wiki
=={{langname|vi}}==
{{wp}}
[[Tập tin:Wiktionary-logo-vi.svg|120px|phải|[[biểu trưng|Biểu trưng]] của Wiktionary tiếng Việt]]
==={{section|etym}}===
Từ {{bor|vi|en|Wiktionary}}.
==={{section|pron}}===
{{vi-pron|uých|sân|na|ri}}
==={{section|pr-noun}}===
{{vi-pr-noun}}
# {{senseid|vi|Q151}} Một [[dự án]] trực thuộc [[quỹ hỗ trợ|Quỹ Hỗ trợ]] [[Wikimedia]], cùng với [[Wikipedia]], để [[biên soạn]] một bộ [[từ điển]] [[nội dung mở]] dùng hệ thống [[wiki]], bao gồm nhiều [[ngôn ngữ]].
===={{section|trans}}====
{{trans-top|dự án từ điển mở}}
* {{langname|ar}}: {{t+|ar|وِيكَامُوس|m}}
* {{langname|af}}: {{t+|af|Wikiwoordeboek}}
* {{langname|sq}}: {{t|sq|Wikifjalor|m}}
* {{langname|am}}: {{t|am|ዊኪ መዝገበ ቃላት}}
* {{langname|en}}: {{t+|en|Wiktionary}}
* {{langname|an}}: {{t+|an|Biquizionario|m}}
* {{langname|hy}}: {{t|hy|Վիքիբառարան}}
* {{langname|as}}: {{t|as|ৱিকিঅভিধান}}
* {{langname|ast}}: {{t+|ast|Wikcionariu}}
* {{langname|az}}: {{t+|az|Vikilüğət}}
* {{langname|pl}}: {{t+|pl|Wikisłownik|m}}
* {{langname|fa}}:
*: {{langname|fa-ira}}: {{t+|fa-ira|ویکیواژِه|tr=viki-vâže}}
* {{langname|eu}}: {{t+|eu|Wikiztegia}}
* {{langname|be}}: {{t+|be|Вікісло́ўнік|m}}
* {{langname|bn}}: {{t+|bn|উইকিঅভিধান}}
* Tiếng Bikol:
*: {{langname|bcl}}: {{t|bcl|Wiksyunaryo}}
* {{langname|ia}}: {{t+|ia|Wiktionario}}
* {{langname|pt}}: {{t+|pt|Wikcionário}}
* {{langname|br}}: {{t+|br|Wikeriadur|m}}
* {{langname|bg}}: {{t|bg|Уикире́чник|m}}
* {{langname|ca}}: {{t+|ca|Viccionari|m}}
* {{langname|cv}}: {{t|cv|Викисӑмахсар}}
* {{langname|co}}: {{t+|co|Wikizziunariu|m}}
* {{langname|he}}: {{t+|he|ויקימילון|m|alt=וִיקִימִלּוֹן \ ויקימילון|tr=vikimilón}}
* {{langname|ug}}: {{t|ug|ۋىكىلۇغەت}}
* {{langname|da}}: {{t|da|Wikiordbog|c}}, {{t+|da|Wiktionary}}
* {{langname|de}}: {{t+|de|Wiktionary|n}}, {{t+|de|Wikiwörterbuch|n}}
* {{langname|et}}: {{t+|et|Vikisõnaraamat}}, {{t+|et|Vikisõnastik}}
* {{langname|ka}}: {{t+|ka|ვიქსიკონი}}, {{t+|ka|ვიქსიკონი}}
* {{langname|gu}}: {{t+|gu|વિકિકોશ}}
* {{langname|nl}}: {{t+|nl|WikiWoordenboek|n}}, {{t+|nl|Wiktionary|m}}
* {{langname|nds}}: {{t|nds|Wikiwöörbook|n}}, {{t|nds|Wiktionary|n}}
* {{langname|hi}}: {{t+|hi|विक्षनरी|f}}, {{t+|hi|विकि-शब्दकोश|tr=viki-śabdakoś}}
* {{langname|hu}}: {{t+|hu|Wikiszótár}}, {{t+|hu|Wiktionary}}
* {{langname|el}}: {{t+|el|Βικιλεξικό|n}}
* {{langname|is}}: {{t+|is|Wikiorðabók|f}}
* {{langname|io}}: {{t+|io|Wikivortaro}}
* {{langname|id}}: {{t+|id|Wikikamus}}
* {{langname|ga}}: {{t+|ga|Vicífhoclóir}}
* {{langname|jv}}: {{t+|jv|Wikisastra}}
* {{langname|kn}}: {{t+|kn|ವಿಕ್ಷನರಿ}}
* {{langname|kk}}: {{t|kk|Уикисөздік}}
* {{langname|km}}: {{t+|km|វិគីនានុក្រម}}
* Tiếng Kurd:
*: {{langname|kmr}}: {{t+|kmr|Wîkîferheng|m}}
*: {{langname|ckb}}: {{t+|ckb|ویکیفەرھەنگ}}
* {{langname|ky}}: {{t+|ky|Викисөздүк}}
* {{langname|lo}}: {{t|lo|ວິກິພົດຈະນານຸກົມ}}
* {{langname|la}}: {{t+|la|Victiōnārium}}
* {{langname|lv}}: {{t+|lv|Vikivārdnīca|f}}
* {{langname|li}}: {{t+|li|Wiktionair}}
* {{langname|lt}}: {{t+|lt|Vikižodynas|m}}
* {{langname|lb}}: {{t+|lb|Wiktionnaire|m}}
* {{langname|mk}}: {{t|mk|Викире́чник|m}}
* {{langname|mg}}: {{t+|mg|Wikibolana}}
* {{langname|ms}}: {{t+|ms|Wikikamus}}
* {{langname|ml}}: {{t+|ml|വിക്കിനിഘണ്ടു}}
* {{langname|mt}}: {{t|mt|Wikizzjunarju|m}}
* {{langname|mr}}: {{t|mr|विक्षनरी|tr=vikśanarī}}
* {{langname|my}}: {{t+|my|ဝစ်ရှင်နရီ}}
* {{langname|mnw}}: {{t|mnw|ဝိက်ရှေန်နရဳ}}
* {{langname|mn}}:
*: Kirin: {{t|mn|Викитоль}}
* {{langname|no}}:
*: {{langname|nb}}: {{t+|nb|Wiktionary}}
* {{langname|ne}}: {{t+|ne|विक्सनरी}}, {{t|ne|विक्षनरी}}
* {{langname|ru}}: {{t+|ru|Викислова́рь|m}}
* {{langname|ja}}: {{t+|ja|ウィクショナリー|tr=Wikushonarī}}
* {{langname|oc}}: {{t+|oc|Wikiccionari|m}}
* {{langname|or}}: {{t|or|ଉଇକିଅଭିଧାନ}}
* {{langname|ps}}: {{t+|ps|ويکيسيند|m|tr=wikisind}}
* {{langname|fi}}: {{t+|fi|Wikisanakirja}}
* {{langname|fr}}: {{t+|fr|Wiktionnaire|m}}
* {{langname|pms}}: {{t|pms|Wiktionary}}, {{t|pms|Wiksionari}}
* {{langname|pa}}:
*: Gurmukhi: {{t+|pa|ਵਿਕਸ਼ਨਰੀ}}
* {{langname|qu}}: {{t|qu|Wiksimitaqi}}
* {{langname|eo}}: {{t+|eo|Vikivortaro}}
* {{langname|ro}}: {{t+|ro|Wikționar|n}}
* {{langname|sa}}: {{t|sa|विकिशब्दकोश}}
* {{langname|sco}}: {{t|sco|Wiktionar}}
* {{langname|cs}}: {{t+|cs|Wikislovník|m}}
* {{langname|sh}}:
*: Kirin: {{t|sh|Викиречник|m}}, {{t|sh|Викирјечник|m}}
*: Latinh: {{t|sh|Vikirečnik|m}}, {{t+|sh|Vikirječnik|m}}, {{t|sh|Wječnik|m}}
* {{langname|shn}}: {{t|shn|ဝိၵ်ႇသျိၼ်ႇၼရီႇ}}
* {{langname|scn}}: {{t|scn|Wikizziunaru|m}} {{qual|chính tả}}; {{t+|scn|Wikizziunariu|m}} {{qual|cách viết theo chuẩn hóa Ý áp dụng cho dự án tương ứng}}
* {{langname|szl}}: {{t|szl|Wikcjōnorz|m}}
* {{langname|sd}}: {{t+|sd|وڪي لغت|tr=wiki lughat}}
* {{langname|si}}: {{t+|si|වික්ෂනරිය}}
* {{langname|sk}}: {{t+|sk|Wikislovník|m}}
* {{langname|sl}}: {{t+|sl|Wikislovar|m}}
* {{langname|sw}}: {{t|sw|Wikamusi}}
* {{langname|tl}}: {{t+|tl|Wiksiyonaryo}}
* {{langname|es}}: {{t+|es|Wikcionario|m}}
* {{langname|tg}}: {{t|tg|Викилуғат}}
* {{langname|ta}}: {{t+|ta|விக்சனரி}}
* {{langname|tt}}: {{t+|tt|Викисүзлек}}
*: Latinh: {{t+|tt|Wikisüzlek}}
* {{langname|te}}: {{t+|te|విక్షనరీ}}
* {{langname|th}}: {{t+|th|วิกิพจนานุกรม}}
* {{langname|tr}}: {{t+|tr|Vikisözlük}}
* {{langname|sv}}: {{t+|sv|Wiktionary|c}}
* {{langname|ti}}: {{t|ti|ዊኪ-መዝገበ-ቃላት}}
* {{langname|ko}}: {{t+|ko|^위키낱말사전(辭典)}}, {{t+|ko|^윅셔너리}}
* {{langname|zh}}:
*: {{langname|cmn}}: {{t+|cmn|維基詞典}}, {{t|cmn|維基辭典}}
*: {{langname|yue}}: {{t|yue|維基辭典}}, {{t|yue|維基詞典}}
* {{langname|tk}}: {{t|tk|Wikisözlük}}
* {{langname|uk}}: {{t+|uk|Вікісловни́к|m}}
* {{langname|ur}}: {{t|ur|وِکْشَنْری|f}}
* {{langname|uz}}: {{t+|uz|Vikilugʻat}}
* {{langname|vo}}: {{t+|vo|Vükivödabuk}}
* {{langname|cy}}: {{t+|cy|Wiciadur}}
* {{langname|it}}: {{t+|it|Wikizionario|m}}
* {{langname|yi}}: {{t+|yi|וויקיווערטערבוך|n}}
{{trans-bottom}}
==={{section|further}}===
* [[:Thể loại:Wiktionary]]
* {{commons inline}}
* {{wikiquote inline}}
* {{wikibooks inline}}
* {{wikiversity inline}}
* {{meta-wiki inline|Wiktionary#List of Wiktionaries}}
=={{langname|en}}==
[[Tập tin:WiktionaryEn - DP Derivative.svg|135px|phải|Biểu trưng của Wiktionary tiếng Anh]]
==={{section|alt}}===
* {{alt|en|wiktionary}}
* {{alt|en|Wikitionary||từ sai chính tả}}
==={{section|etym}}===
{{ety|en|id=Q151|:blend|wiki|dictionary|text=+|tree=1}}
==={{section|pron}}===
* {{IPA|en|/ˈwɪk.ʃən.ɹi/|/ˈwɪk.ʃə.nə.ɹi/|a=UK}}
** {{audio|en|en-uk-Wiktionary.ogg|a=UK}}
** {{audio|en|en-uk-Wiktionary-2.ogg|a=UK}}
* {{enPR|wĭkʹshə-nĕr'ē|a=US}}, {{IPA|en|/ˈwɪk.ʃəˌnɛɹ.i/|/ˈwɪk.tʃəˌnɛɹ.i/}}
** {{audio|en|en-us-Wiktionary.ogg|a=GA|q=giọng nữ}}
** {{audio|en|en-us-Wiktionary-3.ogg|a=GA|q=giọng nam}}
* {{IPA|en|/ˈwɪk.ʃəˌnɛ.ɹi/|a=Canada}}
** {{audio|en|en-ca-wiktionary.ogg|a=Canada}}
* {{IPA|en|/ˈwɪk.ʃə.nə.ɹiː/|a=AU}}
** {{audio|en|en-au-Wiktionary.ogg|a=AU}}
* {{IPA|en|/ˈʋɪkʃ.nə.ri/|/ˈʋɪk.ʃə.nɛ.ri/|[ˈwikʃ.nə.ɾi]|a=InE}}
* {{rhymes|en|ɪkʃənɹi<s:3>|ɪkʃənəɹi<s:4>|ɪkʃənɛəɹi<s:4>|ɛəɹi<s:4>}}
* {{hyph|en|Wik|tion|a|ry||Wik|tion|ary}}
==={{section|pr-noun}}===
{{en-prop|ies}}
# {{tcl|en|Wiktionary|id=Q151}}
#: {{syn|en|Wikt}}
===={{section|drv}}====
{{col|en
|Wikt<qq:dạng cắt từ>
|Wiktionarian
}}
{{C|en|Từ điển|Website}}
=={{langname|nl}}==
{{wp|nl:}}
==={{section|etym}}===
{{ubor|nl|en|Wiktionary}}.
==={{section|pron}}===
* {{IPA|nl|/ˈʋɪk.ʃən.ri/|/ˈʋɪk.ʃə.nɛ.ri/|/ˈʋɪk.ʃə.nɛː.ri/}}
* {{audio|nl|Nl-Wiktionary.ogg}}
* {{rhymes|nl|ɪkʃənri|ɪkʃənɛri|ɪkʃənɛːri|s1=3|s2=4|s3=4}}
* {{hyph|nl|Wik|ti|o|na|ry}}
==={{section|pr-noun}}===
{{nl-proper noun|m}}
# {{tcl|nl|Wiktionary|id=Q151}}
#: {{syn|nl|WikiWoordenboek}}
{{C|nl|Từ điển|Website}}
=={{langname|da}}==
{{wp|da:}}
==={{section|etym}}===
{{ubor|da|en|Wiktionary}}.
==={{section|pr-noun}}===
{{head|da|Danh từ riêng}}
# {{tcl|da|Wiktionary|id=Q151}}
#: {{syn|da|Wikiordbog}}
{{C|da|Từ điển|Website}}
=={{langname|de}}==
[[Tập tin:WiktionaryEn - DP Derivative.svg|135px|phải|Biểu trưng của Wiktionary tiếng Anh]]
{{wp|de:}}
==={{section|etym}}===
{{ety|de|:bor|en:Wiktionary}}
{{bor+|de|en|Wiktionary}}.
==={{section|pron}}===
* {{IPA|de|/ˈvɪk.(t)ʃəˌnɛ.ʁi/|/-ɹi/}}
* {{IPA|de|/ˈvɪk.(t)ʃənˌʁiː/|/-ˌɹiː/}} {{q|có lẽ hiếm}}
* {{audio|de|De-Wiktionary.ogg|IPA=[ˈʋɪktʃəˌnɛɹi]}}
* {{audio|de|De-Wiktionary2.ogg|a=Berlin}}
* {{hyph|de|Wik|tio|na|ry}}
==={{section|pr-noun}}===
{{de-proper noun|n,(s)}}
# {{tcl|de|Wiktionary|id=Q151}}
#: {{syn|de|Wikiwörterbuch}}
===={{section|decl}}====
{{de-ndecl|n,(s).sg}}
{{C|de|Từ điển|Website}}
tfmhvesh91smbluqsry1iguq1i1ji6x
Trang đầu
0
3276
2570116
2037364
2026-10-13T07:50:23Z
TienMinh-mun6xnChing
57893
TienMinh-mun6xnChing đã đổi [[Trang đầu]] thành [[Wiktionary:Trang đầu]]: hợp nhất
2037364
wikitext
text/x-wiki
#redirect [[Wiktionary:Trang Chính]]
nn5ph1776qhobnh5nix269kajfd50yj
2570118
2570116
2026-10-13T07:50:37Z
TienMinh-mun6xnChing
57893
TienMinh-mun6xnChing đã đổi [[Wiktionary:Trang đầu]] thành [[Trang đầu]] qua đổi hướng: Lùi lại
2037364
wikitext
text/x-wiki
#redirect [[Wiktionary:Trang Chính]]
nn5ph1776qhobnh5nix269kajfd50yj
thuổng
0
29557
2570128
2418433
2026-10-13T08:04:15Z
TienMinh-mun6xnChing
57893
/* */
2570128
wikitext
text/x-wiki
{{-vie-}}
{{-pron-}}
{{vi-pron}}
{{-nôm-}}
{{đầu}}
*[[𨭑]]: [[thuổng]]
*[[𨪞]]: [[thuổng]]
{{cuối}}
{{-paro-}}
{{đầu}}
:* [[thường]]
:* [[Thương]]
:* [[thưởng]]
:* [[thượng]]
{{giữa}}
:* [[Thương]]
:* [[thương]]
:* [[thướng]]
{{cuối}}
{{-noun-}}
'''thuổng'''
# [[dụng cụ|Dụng cụ]] [[đào]] [[đất]], [[gồm]] một [[lưỡi]] [[sắt]] [[nặng]], [[hơi]] [[uốn]] [[lòng máng]], [[lắp]] vào [[cán]] [[dài]].
#: ''Mang '''thuổng''' đi trồng cây.''
{{-verb-}}
'''thuổng'''
# Lấy [[trộm]], dùng một cách bông đùa
{{-ref-}}
{{R:FVDP}}
{{R:WinVNKey:Lê Sơn Thanh}}
[[Thể loại:Danh từ tiếng Việt]]
fhnnrdc3ul4gdniw0qr9wsjl6lrbclc
2570129
2570128
2026-10-13T08:04:35Z
TienMinh-mun6xnChing
57893
/* */
2570129
wikitext
text/x-wiki
{{-vie-}}
{{-pron-}}
{{vi-pron}}
{{-nôm-}}
{{đầu}}
*[[𨭑]]: [[thuổng]]
*[[𨪞]]: [[thuổng]]
{{cuối}}
{{-paro-}}
{{đầu}}
:* [[thường]]
:* [[Thương]]
:* [[thưởng]]
:* [[thượng]]
{{giữa}}
:* [[Thương]]
:* [[thương]]
:* [[thướng]]
{{cuối}}
{{-noun-}}
'''thuổng'''
# [[dụng cụ|Dụng cụ]] [[đào]] [[đất]], [[gồm]] một [[lưỡi]] [[sắt]] [[nặng]], [[hơi]] [[uốn]] [[lòng máng]], [[lắp]] vào [[cán]] [[dài]].
#: ''Mang '''thuổng''' đi trồng cây.''
{{-verb-}}
'''thuổng'''
# Lấy [[trộm]], dùng một cách [[bông đùa]].
{{-ref-}}
{{R:FVDP}}
{{R:WinVNKey:Lê Sơn Thanh}}
[[Thể loại:Danh từ tiếng Việt]]
hmd4xflo24xsgfl654c9ya6bkzayroz
rang
0
32781
2569915
2565631
2026-10-12T14:32:56Z
WhoAlone
40420
2569915
wikitext
text/x-wiki
{{-vie-}}
{{-pron-}}
{{vi-pron}}
{{-nôm-}}
{{đầu}}
*[[烊]]: [[dương]], [[rang]]
*[[㶥]]: [[rang]]
*[[浪]]: [[dằng]], [[rằng]], [[lang]], [[lảng]], [[lặng]], [[lãng]], [[lăng]], [[sáng]], [[bằng]], [[láng]], [[rang]], [[rặng]], [[trảng]]
*[[煬]]: [[dượng]], [[rạng]], [[dương]], [[rang]], [[sượng]], [[dạng]]
{{mid}}
*[[𤍎]]: [[rạng]], [[rang]], [[sắng]]
*[[朗]]: [[sang]], [[lứng]], [[lung]], [[lửng]], [[lẵng]], [[lẳng]], [[lảng]], [[lặng]], [[lãng]], [[lăng]], [[sáng]], [[rạng]], [[láng]], [[lựng]], [[rang]], [[lững]], [[lắng]]
*[[𤎜]]: [[ràng]], [[rậng]], [[sáng]], [[rạng]], [[rang]], [[sắng]]
{{cuối}}
{{-paro-}}
{{đầu}}
:* [[rạng]]
:* [[ràng]]
:* [[rằng]]
{{giữa}}
:* [[ráng]]
:* [[răng]]
:* [[rặng]]
{{cuối}}
{{-verb-}}
{{vie-verb}}
# Làm [[chín]] [[bằng]] cách [[đảo]] [[đi]] [[đảo]] lại trong [[chảo]] [[nóng]] và [[khô]].
#: '''''Rang''' lạc.''
#: '''''Rang''' ngô.''
{{-ref-}}
{{R:FVDP}}
{{R:WinVNKey:Lê Sơn Thanh}}
=={{langname|jeh}}==
==={{ĐM|noun}}===
{{head|jeh|Danh từ}}
# [[hoa]].
==={{ĐM|ref}}===
* Cohen, Patrick D., Thŭng (1972). ''ʼDŏk tơtayh Jeh, au pơchŏ hŏk chù Jeh: Hŏk tro pơsèm hŏk, lăm-al 1-3 (Ðọc tiếng Jeh, Em học vần tiếng Jeh: Lớp vỡ-lòng, quyển 1-3)''. SIL International.
{{c|jeh|Hoa}}
{{-fra-}}
{{-pron-}}
* [[Wiktionary:IPA|IPA]]: {{IPA-old|/ʁɑ̃/}}
{{-noun-}}
{{fra-noun|
s=rang|p=rangs|
sp=/ʁɑ̃/|pp=/ʁɑ̃/}}
'''rang''' {{g-old|m}} {{IPA-old|/ʁɑ̃/}}
# [[hàng|Hàng]].
#: '''''Rang''' de colonnes'' — hàng cột
#: ''Au premier '''rang''''' — ở hàng đầu
#: ''Avoir '''rang''' de ministre'' — ở hàng bộ trưởng
# [[cương vị|Cương vị]], [[địa vị]].
#: ''Tenir son '''rang''''' — giữ đúng địa vị của mình
# [[hàng ngũ|Hàng ngũ]].
#: ''Sortir des '''rangs''''' — ra ngoài hàng ngũ
# [[đám|Đám]] [[người]].
#: ''Les '''rangs''' des mécontents'' — những đám người bất mãn
# [[hạng|Hạng]].
#: ''Mettre au '''rang''' des savants'' — đặt vào hạng những nhà bác học
# [[cấp|Cấp]], [[bậc]].
#: ''Officier d’un certain '''rang''''' — sĩ quan cấp bậc nào đó
#: ''grossir les '''rangs''' de...'' — nhập cục với đám người...
#: ''mettre une chose au '''rang''' des vieux péchés'' — không bận lòng đến việc gì, không còn quan tâm đến việc gì
#: ''prendre '''rang''''' — nhập vào, đứng vào hàng ngũ, tham gia vào
#: '''''rang''' de taille'' — thứ tự cao thấp
#: ''rentrer dans le '''rang''''' — bỏ quyền hành, bỏ chức tước+ trở về hàng ngũ cũ
#: ''se mettre en '''rangs''''' — sắp hàng
#: ''se mettre sur les '''rangs''''' — cùng ngấp nghé một việc gì
#: ''serrer les '''rangs''''' — siết chặt hàng ngũ
#: ''servir dans le '''rang''''' — (quân sự) phục vụ tại quân ngũ
#: ''sortir du '''rang''''' — xem sortir
{{-ref-}}
{{R:FVDP}}
{{-nor-}}
{{-noun-}}
{{nor-noun|word=rang|root=rang|defsg=rang|indefsg=rangen|defpl=ranger|indefpl=rangene}}
'''rang''' {{g-old|m}}
# [[giai cấp|Giai cấp]], [[cấp bậc]], [[thứ bậc]], [[hạng]].
#: '' Han har kapteins '''rang''',
#: '' å gjøre noen '''rangen''' stridig '' — Tranh giành địa vị của ai.
#: ''Han er en kunstner av '''rang'''. '' — Ông ta là một nghệ sĩ có hạng.
{{-drv-}}
* (1) [[førsterangs/annenrangs]] : [[bậc|Bậc]] [[nhất]] /bậc [[nhì]].
{{-ref-}}
{{R:FVDP}}
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/raːŋ/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} [[gùi]] đựng [[củi]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
{{-wuh-}}
{{-noun-}}
{{pn}}
# [[người]].
{{catname|Danh từ|tiếng Ngũ Đồn}}
{{c|wuh|Con người}}
[[Thể loại:Danh từ tiếng Na Uy]]
[[Thể loại:Danh từ tiếng Pháp]]
=={{langname|tdr}}==
==={{ĐM|noun}}===
{{head|tdr|Danh từ}}
# {{label|tdr|Mơdra}} [[hoa]].
==={{ĐM|ref}}===
* Gregerson, Kenneth J. và Smith, Kenneth D. (1973). ''The development of Todrah register''. SIL International.
{{c|tdr|Hoa}}
{{-uzb-}}
{{-noun-}}
{{pn}}
# [[màu sắc]].
{{catname|Danh từ|tiếng Uzbek}}
8hdjzjxiywsist0l2m7ewzrhlipnsn9
aboutissement
0
34834
2570046
2428863
2026-10-13T03:18:44Z
Hiyuune
50834
2570046
wikitext
text/x-wiki
=={{langname|fr}}==
==={{section|etym}}===
{{ety|fr|:af|aboutir|-ment<id:danh tính>}}
Từ {{af|fr|aboutir|-ment<id:danh tính>}}.
==={{section|pron}}===
* {{fr-IPA}}
* {{audio|fr|Fr-aboutissement.ogg}}
* {{audio|fr|LL-Q150 (fra)-DenisdeShawi-aboutissement.wav|a=Shawinigan}}
* {{audio|fr|LL-Q150 (fra)-DSwissK-aboutissement.wav|a=Valais}}
* {{audio|fr|LL-Q150 (fra)-Poslovitch-aboutissement.wav|a=Vosges}}
* {{audio|fr|LL-Q150 (fra)-Touam-aboutissement.wav|a=Saint-Étienne}}
==={{section|n}}===
{{fr-noun|m}}
# [[kết quả|Kết quả]].
#: {{ux|fr|L’aboutissement des efforts.|Kết quả những cố gắng.}}
===={{section|drv}}====
* {{l|fr|tenants et aboutissements}}
==={{section|ref}}===
* {{R:FVDP|db=fv}}
==={{section|further}}===
* {{R:fr:TLFi}}
prjsdicb66jonf1wxhnj9aucdszc27c
nowadays
0
61998
2570072
2501612
2026-10-13T05:56:25Z
Hiyuune
50834
2570072
wikitext
text/x-wiki
{{also|now-a-days|now-adays|now a days}}
=={{langname|en}}==
==={{section|alt}}===
* {{alter|en|nowaday}}
* {{alter|en|nowadayes||obsolete}}
* {{alter|en|now-a-days}}
* {{alter|en|now-adays||archaic}}
* {{alter|en|now a days}}
* {{alter|en|nowdays||chính tả cách phát âm}}
* {{alter|en|nowsaday||Singapore}}
==={{section|etym}}===
Từ {{compound|en|now|adays}}.
==={{section|pron}}===
* {{IPA|en|/ˈnaʊ.ə.deɪz/|a=RP,GA}}
** {{audio|en|En-us-nowadays.ogg|a=US}}
* {{IPA|en|/ˈnuː.ə.deɪz/|a=Northumbria}}
==={{section|adv}}===
{{en-adv|-}}
# [[ngày nay|Ngày nay]], [[đời nay]], [[thời buổi]] này, [[thời buổi]] [[tân tiến]] này.
#: {{ux|en|Vietnamese people nowadays are terrible.|Người Việt Nam ngày nay thật tồi tệ.}}
==={{section|ref}}===
* {{R:FVDP|db=ev}}
{{C|en|Hiện tại}}
l6bds1vk2gsb2ur2tbqf94z7gm9orsv
2570073
2570072
2026-10-13T05:56:43Z
Hiyuune
50834
2570073
wikitext
text/x-wiki
{{also|now-a-days|now-adays|now a days}}
=={{langname|en}}==
==={{section|alt}}===
* {{alter|en|nowaday}}
* {{alter|en|nowadayes||obsolete}}
* {{alter|en|now-a-days}}
* {{alter|en|now-adays||archaic}}
* {{alter|en|now a days}}
* {{alter|en|nowdays||chính tả cách phát âm}}
* {{alter|en|nowsaday||Singapore}}
==={{section|etym}}===
Từ {{compound|en|now|adays}}.
==={{section|pron}}===
* {{IPA|en|/ˈnaʊ.ə.deɪz/|a=RP,GA}}
** {{audio|en|En-us-nowadays.ogg|a=US}}
* {{IPA|en|/ˈnuː.ə.deɪz/|a=Northumbria}}
==={{section|adv}}===
{{en-adv|-}}
# [[ngày nay|Ngày nay]], [[đời nay]], [[thời buổi]] này, [[thời buổi]] [[tân tiến]] này.
#: {{ux|en|Vietnamese people '''nowadays''' are terrible.|Người Việt Nam ngày nay thật tồi tệ.}}
==={{section|ref}}===
* {{R:FVDP|db=ev}}
{{C|en|Hiện tại}}
pfurcnqisl1scmg9fdlr06olrnaenz8
Thảo luận Wiktionary:Thảo luận
5
103987
2570109
2568704
2026-10-13T07:40:02Z
MediaWiki message delivery
19980
Mục mới: /* Bản tin Kỹ thuật: Tuần 42-2026 */
2570109
wikitext
text/x-wiki
<!-- Xin bắt đầu cuộc thảo luận mói ở CUỐI trang! Cám ơn. -->
{{Lưu trữ}}
== Upcoming Dark Mode user interface rollout for anonymous Wikimedia sites users ==
<div lang="en" dir="ltr">
{{int:Hello}} Wikimedians,
Apologies if this message is not in your language. {{int:please-translate}}.
The [[mw:Special:MyLanguage/Reading/Web|Reader Experience team]] will launch the Dark mode feature for anonymous users on all Wikimedia sites, including yours, on October 29, 2025.
[[:en:Special:MyLanguage/Light-on-dark color scheme|Dark mode]] is an option that allows users to view pages in light-coloured text, and icons on a dark background. Once it is available for anonymous users, they can enable it when using various devices. More information on ways to enable it can be found on [[:en:Special:MyLanguage/Wikipedia:Dark mode#Options for anyone|this page]].
Given many pages are still not compatible with dark mode this will be an opt-in feature and not automatically apply to pages.
Dark mode requires modifications to content pages and templates, and since our initial launch [https://diff.wikimedia.org/2024/07/17/dark-modes-bright-future-how-dark-mode-will-transform-wikipedias-accessibility/ in July 2024], we have been working with communities and helping them prepare for dark mode. Before the rollout, it is essential that template authors and technical contributors test dark mode and read [[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-04|this page]] to learn how to make pages Dark mode-ready and address any compatibility issues found in templates.
We will fix most color compatibility issues only on the most-viewed pages on projects with over 5 million monthly page views. Technical contributors with an account should opt into dark mode currently using preferences or settings and test pages and seek help before the release to ensure everything complies before the enablement.
If you have any questions or need help, please [[mw:Special:MyLanguage/Talk:Reading/Web/Accessibility for reading#|contact the Reader Experience team]] for support.
Thank you!
</div>
<bdi lang="en" dir="ltr">[[User:UOzurumba (WMF)|UOzurumba (WMF)]]</bdi> 02:08, ngày 30 tháng 9 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:UOzurumba_(WMF)/sandbox_Dark_mode_deployment_mass_message_list_(October_2025)&oldid=29358561 -->
== Bản tin Kỹ thuật: Tuần 41-2025 ==
<section begin="technews-2025-W41"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/41|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Help:Edit check#paste|Kiểm tra Nội dung Dán (Paste Check)]] là một tính năng Kiểm tra Sửa đổi mới để giúp phòng tránh và chống lại các hành vi vi phạm bản quyền. Khi biên tập viên dán văn bản vào bài viết, Kiểm tra Nội dung Dán sẽ nhắc họ xác nhận nguồn gốc và giấy phép của nội dung được dán đó. Bắt đầu từ thứ 4, ngày 8 tháng 10, [[phab:T403680|22 wiki sẽ thử nghiệm tính năng Kiểm tra Nội dung Dán]]. Kiểm tra Nội dung Dán sẽ giúp các tình nguyện viên mới hiểu và tuân theo các quy định và hướng dẫn cần thiết để thực hiện những đóng góp mang tính xây dựng cho các dự án Wikipedia.
'''Cập nhật cho biên tập viên'''
* Các thiết bị di động sẽ hiển thị các bài viết trên trang di động trực tiếp trên tên miền chuẩn (như <code>en.wikipedia.org</code>), thay vì thông qua việc đổi hướng tới tên miền "m" (như <code>en.m.wikipedia.org</code>). Thay đổi này nhằm cải thiện hiệu năng. Nó sẽ được kích hoạt trên các trang Wikipedia trong tuần này. Liên kết URL di động và tùy chọn "Phiên bản máy tính" vẫn sẽ tiếp tục khả dụng. [[mw:Requests for comment/Mobile domain sunsetting/2025 Announcement|Tìm hiểu thêm]]. [https://phabricator.wikimedia.org/T214998]
* [[mw:Special:MyLanguage/Help:CirrusSearch#creationdate and lasteditdate|Bộ lọc ngày]] mới, <code dir=ltr>creationdate:</code> và <code dir=ltr>lasteditdate:</code>, nay có sẵn trong bộ máy tìm kiếm của wiki. Những bộ lọc này cho phép người dùng lọc kết quả tìm kiếm theo bản sửa đổi đầu tiên hoặc cuối cùng của trang. Bộ lọc hỗ trợ các toán tử so sánh (v.d. <code dir=ltr>>2024</code>) và ngày dạng tương đối (v.d. <code dir=ltr>today-1d</code>), giúp việc tìm nội dung hoặc trang được cập nhật gần đây trong khoảng năm cụ thể trở nên dễ dàng hơn. [https://phabricator.wikimedia.org/T403593]
* [[f:|Wikifunctions]] nay hỗ trợ văn bản giàu tính chất (rich text) trong lời gọi hàm nhúng trên 150 wiki đã kích hoạt nó. Để giới thiệu tính năng này, nhóm đã tạo [[f:Z26333|bảng biến cách tiếng Latin]] mà biên tập viên Wiktionary có thể sử dụng để tự động tạo ra các dạng danh từ, nhằm tạo ra những kết quả rõ ràng và được định dạng — xem một [[f:Wikifunctions:Embedded function calls/Wiktionary tables demonstration|ví dụ đầu ra]] cụ thể. Nếu bạn cần hỗ trợ hay có bất kỳ phản hồi nào, vui lòng [[f:Wikifunctions:Project chat|liên hệ nhóm Wikifunctions]]. [https://phabricator.wikimedia.org/T397402]
* Một liên kết sửa đổi nay sẽ hiển thị trong hộp thể loại trên các trang bài viết đối với người dùng đã đăng nhập, khi nhấn vào sẽ khởi động trực tiếp hộp thoại thể loại bằng Trình Soạn thảo Trực quan (VisualEditor). [https://phabricator.wikimedia.org/T291691]
* [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:34}} {{PLURAL:34|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, tuần trước đã có vấn đề khi tải các tập tin pdf và hiện nó đã được giải quyết. [https://phabricator.wikimedia.org/T405957]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Trường <code dir=ltr>rev_sha1</code> trong bảng cơ sở dữ liệu bản sửa đổi đang chuẩn bị được loại bỏ để thay thế bằng trường <code dir=ltr>content_sha1</code> trong bảng cơ sở dữ liệu nội dung. Xem [https://lists.wikimedia.org/hyperkitty/list/cloud@lists.wikimedia.org/thread/2D2M3SP4WHR6BXXKTZ2PBLZQYR3EGQVR/ thông báo này] để biết thêm thông tin.
* [[mw:Special:MyLanguage/Reading/Web|Nhóm Trải nghiệm Người đọc]] sẽ triển khai giao diện người dùng [[w:en:Light-on-dark color scheme|Chế độ Tối]] trên tất cả các trang Wikimedia vào ngày 29 tháng 10 năm 2025. Tất cả thành viên vô danh trên các trang Wikimedia sẽ có tùy chọn kích hoạt bảng màu có văn bản màu sáng trên nền tối. Chế độ này được thiết kế để cung cấp trải nghiệm đọc thoải mái hơn, đặc biệt trong những trường hợp thiếu sáng. Tác giả bản mẫu và biên tập viên kỹ thuật được khuyến khích [[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-04|tìm hiểu cách chuẩn bị các trang để tương thích với Chế độ tối]] và giải quyết bất kỳ vấn đề tương thích nào xuất hiện trong các bản mẫu trên wiki của họ trước thời điểm kích hoạt. Vui lòng liên hệ nhóm Web nếu có bất kỳ câu hỏi hay cần sự trợ giúp nào trên [[mw:Talk:Reading/Web/Accessibility for reading#|trang thảo luận này]] trước ngày kích hoạt. [https://phabricator.wikimedia.org/T395628]
* Bắt đầu từ thứ 2, ngày 6 tháng 10, các điểm cuối API theo đường dẫn <code>rest.php</code> sẽ được định tuyến lại qua Cổng API nội bộ mới. Mỗi wiki sẽ được cập nhật dựa trên các nhóm phát hành tiêu chuẩn, với tổng lưu lượng truy cập tăng dần theo thời gian. Thay đổi này dự kiến không gây ra bất kỳ sự gián đoạn gì. Nếu phát hiện thấy có bất kỳ vấn đề nào, vui lòng tạo tác vụ Phabricator gửi lên [[phab:tag/serviceops/|bảng của nhóm Vận hành Dịch vụ]]. [https://phabricator.wikimedia.org/T400130]
* [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.22|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/41|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W41"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:23, ngày 6 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29400897 -->
== <span lang="en" dir="ltr">Have your say: vote for the 2025 Board of Trustees</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Hello all,
The voting period for the [[m:Special:MyLanguage/Wikimedia Foundation elections/2025|2025 Board of Trustees election]] is now open. Candidates are running for two (2) seats on the Board.
To check your voter eligibility, please visit the [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Voter eligibility guidelines|voter eligibility page]].
Learn more about them by [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Candidates|reading their application statements and watch their candidacy videos]].
When you are ready, go to the [[m:Special:SecurePoll/vote/405|SecurePoll voting page to vote]].
'''The vote is open from October 8 at 00:00 UTC to October 22 at 23:59 UTC.'''
Best regards,
Abhishek Suryawanshi<br />Chair, Elections Committee<section end="announcement-content" />
</div>
[[Thành viên:MediaWiki message delivery|MediaWiki message delivery]] ([[Thảo luận Thành viên:MediaWiki message delivery|thảo luận]]) 04:49, ngày 9 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:RamzyM (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29360896 -->
== Bản tin Kỹ thuật: Tuần 42-2025 ==
<section begin="technews-2025-W42"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/42|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Tuần trước, chúng tôi đã tiến hành triển khai những cải tiến về các tính năng bảo mật tài khoản và xác thực hai yếu tố (2FA) trên tất cả các wiki. Những thay đổi đó bao gồm cải tiến giao diện người dùng cho trang [https://auth.wikimedia.org/metawiki/wiki/Special:AccountSecurity Đặc biệt:Bảo mật tài khoản], hỗ trợ nhiều phương thức xác thực 2FA thông qua các ứng dụng xác thực và khóa bảo mật di động (trước đây người dùng chỉ có thể kích hoạt một phương thức xác thực), và mô đun Mã Khôi phục mới giúp giảm thiểu tình trạng khóa tài khoản do mất ứng dụng và thiết bị xác thực hai yếu tố. Là một phần của dự án [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]], quá trình này sẽ tiếp tục trong phần còn lại của năm 2025 để cải thiện nhiều hơn trải nghiệm người dùng, cùng việc thêm hỗ trợ cho mã khóa làm phương thức xác thực thứ hai thay thế.
'''Cập nhật cho biên tập viên'''
* Một phần khác của dự án Bảo mật tài khoản là cung cấp 2FA cho tất cả người dùng. Bên cạnh biên tập viên có quyền nâng cao, chẳng hạn như bảo quản viên và hành chính viên, 40% biên tập viên nay có quyền truy cập vào 2FA. Bạn có thể kiểm tra xem bạn có quyền truy cập đó không tại [https://auth.wikimedia.org/metawiki/wiki/Special:AccountSecurity Đặc biệt: Bảo mật tài khoản]. Hướng dẫn kích hoạt có trên trang được liên kết theo. Kế hoạch là tiếp tục tăng cường tính khả dụng nếu xác định rằng khả năng hỗ trợ người dùng có thể hỗ trợ việc sử dụng toàn cục của nó. [https://phabricator.wikimedia.org/T400579]
* Tuần này, người dùng trên các wiki mà mặc định đã có sẵn tính năng [[mw:Special:MyLanguage/Talk pages project/Usability|Cải tiến Khả năng Sử dụng]] trên trang thảo luận (tất cả ''trừ'' 12 wiki được liệt kê trong tác vụ [[phab:T379264|T379264]]) sẽ có được khả năng gửi lời cảm ơn bình luận trực tiếp trên trang thảo luận mà nó xuất hiện. Trước thay đổi này, việc cảm ơn chỉ có thể được thực hiện bằng cách truy cập lịch sử sửa đổi của trang thảo luận. Bạn có thể [[diffblog:2025/10/13/revolutionizing-gratitude-a-new-era-of-thanking-comments/|tìm hiểu thêm về thay đổi này]]. [https://phabricator.wikimedia.org/T366095]
* Người dùng chưa [[Special:Preferences#mw-prefsection-personal-email|xác thực địa chỉ email của mình]] sẽ sớm nhận thông báo hàng tháng nhắc họ làm điều này. Điều này là bởi vì người dùng đã xác thực email của họ có thể dễ dàng khôi phục tài khoản của mình hơn. Những lời nhắc này sẽ không được gửi nếu người dùng không hoạt động hoặc đã loại bỏ email chưa được xác thực khỏi tài khoản của mình. [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Email_confirmation][https://phabricator.wikimedia.org/T58074]
* [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, đã có một bản sửa lỗi nhằm giải quyết một lỗi thỉnh thoảng xảy ra khi lưu các đoạn đã được dịch trong công cụ Dịch Nội dung, cùng với đó các thông báo lỗi có liên quan giờ dễ nhìn hơn. [https://phabricator.wikimedia.org/T376531]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Nhóm Công cụ Không được Hỗ trợ đã chọn [[c:Special:MyLanguage/Commons:Video2commons|Video2Commons]] làm công cụ đầu tiên cho chu kỳ thí điểm của họ. Nhóm sẽ tìm hiểu cách để cải tiến và duy trì công cụ này trong những tháng tiếp theo. [[m:Special:MyLanguage/Product and Technology Advisory Council/Unsupported Tools Working Group|Tìm hiểu thêm trên Meta]].
* [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.23|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/42|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W42"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:59, ngày 13 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29434481 -->
== <span lang="en" dir="ltr">Help us decide the name of the new Abstract Wikipedia project</span> ==
<div lang="en" dir="ltr">
<section begin="function1"/>
{{int:Hello}}. Please help pick a name for the new Abstract Wikipedia wiki project. This project will be a wiki that will enable users to combine functions from [[:f:|Wikifunctions]] and data from Wikidata in order to generate natural language sentences in any supported languages. These sentences can then be used by any Wikipedia (or elsewhere).
There will be two rounds of voting, each followed by legal review of candidates, with votes beginning on 20 October and 17 November 2025. Our goal is to have a final project name selected on mid-December 2025. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki.
{{Int:Feedback-thanks-title}}
<section end="function1"/>
</div>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 11:44, ngày 20 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:Sannita (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29432175 -->
== Bản tin Kỹ thuật: Tuần 43-2025 ==
<section begin="technews-2025-W43"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/43|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Để tối ưu hóa cách dữ liệu người dùng được lưu trong cơ sở dữ liệu của chúng tôi, các tùy chọn được lưu của người dùng chưa đăng nhập trong vòng hơn 5 năm và có ít hơn 100 sửa đổi sẽ bị xóa. Khi những người dùng đó quay lại, tùy chọn mặc định sẽ được áp dụng. [https://phabricator.wikimedia.org/T406724]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:20}} {{PLURAL:20|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, đã có một liên kết hỏng từ thông điệp giao diện Đóng góp toàn cục đến trang Đóng góp toàn cục trên XTools mà hiện đã được giải quyết. [https://phabricator.wikimedia.org/T406415]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Việc định tuyến lại toàn bộ lưu lượng đến các điểm cuối API theo cổng <code dir=ltr><nowiki>rest.php</nowiki></code> thông qua một cổng API chung hiện đã hoàn tất. Nếu phát hiện bất kỳ vấn đề nào, vui lòng gửi tác vụ phabricator lên [[phab:tag/serviceops/|bảng tác vụ của nhóm Vận hành Dịch vụ]].
* Các sửa đổi đối với chú thích hoặc từ hạn định Wikidata nay sẽ ít hiển thị thường xuyên hơn trên các mục Thay đổi gần đây và Danh sách theo dõi trên các wiki khác, nhằm giảm bớt các thông báo không cần thiết. Thay đổi này sẽ giảm tổng số lượng các khoản mục 'gây nhiễu'. Bản thân các trang Wikidata sẽ không có sự thay đổi nào. [https://phabricator.wikimedia.org/T401290]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.24|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/43|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W43"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:36, ngày 20 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29478670 -->
== Bản tin Kỹ thuật: Tuần 44-2025 ==
<section begin="technews-2025-W44"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/44|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Ứng dụng Wikipedia dành cho iOS đã ra mắt thử nghiệm A/B/C nhằm cải tiến tính năng duyệt theo thẻ cho một số khu vực và ngôn ngữ nhất định. Thử nghiệm mang tên “Nhiều thẻ động hơn” này sẽ khám phá trải nghiệm trên thẻ mới cùng với việc bổ sung đề xuất bài viết ở mục “Bạn có biết” và “Vì bạn đã đọc”. Bạn có thể [[mw:Special:MyLanguage/Wikimedia Apps/Team/iOS/Tabbed Browsing (Tabs)/New Tab Experience and Recommendations Experiment|đọc thêm thông tin trên trang dự án này]].
* Thành viên tự xác nhận trên các wiki [[gitiles:operations/mediawiki-config/+/a2d2aaab9ace84280dd2f4c70a33bb69cd73850f/dblists/small.dblist|nhỏ]] và [[gitiles:operations/mediawiki-config/+/a2d2aaab9ace84280dd2f4c70a33bb69cd73850f/dblists/medium.dblist|vừa]] đã triển khai phần mở rộng CampaignEvents nay có thể sử dụng công cụ [[m:Special:MyLanguage/Event Center/Registration|Đăng ký Sự kiện]] mà không cần quyền Người tổ chức Sự kiện. Tính năng này cho phép người tổ chức kích hoạt việc đăng ký, quản lý người tham gia, và cho phép các thành viên đăng ký chỉ với một cú nhấp chuột thay vì phải ký vào trang sự kiện.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:31}} {{PLURAL:31|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, vấn đề về màu sắc nhấp nháy khi giữ hoặc nhấn phím mũi tên trong phần cài đặt chế độ tối của giao diện Vector 2022 nay đã được giải quyết. [https://phabricator.wikimedia.org/T402285]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Phần mở rộng CampaignEvents sẽ được triển khai trên tất cả những wiki còn lại trong tuần từ ngày 17 tháng 11 năm 2025. Phần mở rộng này hiện bao gồm ba tính năng: Đăng ký Sự kiện, Danh sách Cộng tác, và Danh sách Mời. Trong đợt triển khai này, Danh sách Lời mời sẽ không được kích hoạt cho Wikifunctions và MediaWiki cho đến khi những cộng đồng này yêu cầu kích hoạt. [[m:Special:MyLanguage/CampaignEvents/Deployment status|Truy cập trang thông tin triển khai để biết thêm thông tin]].
* Trải nghiệm chỗ thử REST dựa trên SwaggerUI nay đã có mặt trên tất cả các dự án wiki. Chỗ thử này có thể truy cập được thông qua trang [[{{#special:RestSandbox}}]]. Vui lòng báo cáo bất kỳ vấn đề nào lên bảng tin của nhóm Giao diện MediaWiki, hoặc tham gia thảo luận trên trang [[mw:Special:MyLanguage/MediaWiki Interfaces Team/Feature Feedback/REST Sandbox|khởi động dự án]] này. [https://phabricator.wikimedia.org/project/board/6931/]
* Những điểm cuối chuyển đổi với đường dẫn kết thúc bằng dấu gạch chéo trong REST API của MediaWiki hiện đang được đánh dấu là lỗi thời. Chúng vẫn sẽ tiếp tục hoạt động trong thời gian này, tuy nhiên dự kiến chúng sẽ bị loại bỏ vào cuối tháng 1 năm 2026. Toàn bộ người dùng API đang gọi chúng được khuyến khích chuyển sang bản đường dẫn không kết thúc bằng dấu gạch chéo. Cả hai biến thể điểm cuối này đều có thể tìm thấy và thử được sử dụng [https://test.wikipedia.org/w/index.php?api=mw-extra&title=Special%3ARestSandbox Chỗ thử REST]. Xem trang [[mw:API/Deprecation|Ngừng hỗ trợ với REST API MediaWiki]] để biết thêm thông tin chi tiết về các chính sách và thủ tục trong việc ngừng hỗ trợ API.
* [[mw:API:REST API/Changelog|Nhật trình thay đổi chuyên biệt nay đã có sẵn cho REST API của MediaWiki]]. Nhật trình thay đổi này cung cấp tổng quan về những thay đổi này, giúp các nhà phát triển dễ dàng theo dõi những cải tiến và lần lặp lại của chúng. Mọi thông báo cũng sẽ tiếp tục được gửi thông qua các kênh truyền thông chính, bao gồm Bản tin Kỹ thuật và danh sách phân phối qua thư điện tử, nhưng nay có thể dễ dàng tham khảo hơn từ một vị trí trung tâm. Nếu bạn có bất kỳ phản hồi nào về định dạng, cấu trúc, hoặc nội dung về nhật trình thay đổi này, vui lòng [[mw:API talk:REST API/Changelog|tham gia thảo luận tại đây]].
* Bảo quản viên nay có thể xóa thể loại theo dõi mà trước đây được thêm bởi phần mở rộng JsonConfig, do nó không còn được sử dụng. Xem các thể loại được liên kết từ [[d:Q130635582#sitelinks-wikipedia|Q130635582]]. Việc vẫn còn trang được liệt kê trên thể loại này là bình thường vì nó chỉ là vấn đề về bộ nhớ đệm, và chúng sẽ tự động được xóa khi các trang đó được sửa đổi trong lần tiếp theo. [https://phabricator.wikimedia.org/T378352]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.25|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/44|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W44"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:31, ngày 27 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29513638 -->
== <span lang="en" dir="ltr">Seeking volunteers to join several of the movement’s committees</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Each year, typically from October through December, several of the movement’s committees seek new volunteers.
Read more about the committees on their Meta-wiki pages:
* [[m:Special:MyLanguage/Affiliations Committee|Affiliations Committee (AffCom)]]
* [[m:Special:MyLanguage/Ombuds commission|Ombuds commission (OC)]]
* [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Community Resilience and Sustainability/Trust and Safety/Case Review Committee|Case Review Committee (CRC)]]
Applications for the committees open on October 30, 2025. Applications for the Affiliations Committee, Ombuds commission and the Case Review Committee close on December 11, 2025. Learn how to apply by [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Committee appointments|visiting the appointment page on Meta-wiki]]. Post to the talk page or email cst[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org with any questions you may have.
For the Committee Support team,
<section end="announcement-content" />
</div>
-[[m:User:MKaur (WMF)| MKaur (WMF)]] 14:14, ngày 30 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:MKaur (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29517125 -->
== Bản tin Kỹ thuật: Tuần 45-2025 ==
<section begin="technews-2025-W45"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/45|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Các bảo quản viên giờ đây sẽ thấy rằng [[{{#special:MergeHistory}}]] đã trở nên linh hoạt hơn đáng kể trong việc hợp nhất. Nó có thể hợp nhất các phần được lấy từ giữa lịch sử của trang nguồn (thay vì chỉ từ phần đầu), và chèn các phiên bản vào bất kỳ vị trí nào trong lịch sử của trang đích (thay vì chỉ ở phần đầu). [https://phabricator.wikimedia.org/T382958]
* Đối với những người dùng đã kích hoạt "{{int:discussiontools-preference-autotopicsub}}" [[Special:Preferences#mw-prefsection-editing|trong tùy chọn của họ]], việc bắt đầu một chủ đề mới hoặc thêm một phản hồi vào một chủ đề hiện có giờ đây sẽ tự động đăng ký họ theo dõi các phản hồi mới trong chủ đề đó. Trước đây, điều này chỉ xảy ra nếu người dùng sử dụng tiện ích "{{int:Skin-action-addsection}}" hoặc "{{int:Discussiontools-replybutton}}" của DiscussionTools. Khi DiscussionTools mới được ra mắt, các tài khoản hiện có không được tự động bật tính năng theo dõi chủ đề, vì vậy thay đổi này chủ yếu sẽ ảnh hưởng đến các tài khoản mới hơn và những người dùng đã chủ động thay đổi tùy chọn của mình kể từ thời điểm đó. [https://phabricator.wikimedia.org/T290778]
* Các mô đun Scribunto giờ đây có thể được dùng để [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#SVG library|tạo ảnh SVG]]. Tính năng này cho phép tạo biểu đồ, đồ họa và các hình minh họa khác một cách linh hoạt thông qua Lua, giúp giảm nhu cầu phải tạo chúng bên ngoài rồi tải lên dưới dạng tập tin. [https://phabricator.wikimedia.org/T405861]
* Các trang web của Wikimedia giờ đây sẽ cung cấp cho tất cả người dùng ẩn danh tùy chọn bật chế độ tối, với giao diện chữ sáng trên nền tối. Cải tiến này nhằm mang lại trải nghiệm đọc dễ chịu hơn, đặc biệt là trong môi trường thiếu sáng. [https://phabricator.wikimedia.org/T395628]
* Những người dùng có danh sách theo dõi lớn từ lâu đã gặp lỗi quá thời gian khi chỉnh sửa [[Special:EditWatchlist|Special:EditWatchlist]]. Trang này nay sẽ tải các mục theo từng phần nhỏ thay vì tải toàn bộ cùng lúc nhờ bản cập nhật phân trang, giúp mọi người có thể chỉnh sửa danh sách theo dõi mượt mà hơn. Trong quá trình cập nhật cơ sở dữ liệu, tính năng sắp xếp theo thời hạn đã bị loại bỏ vì chậm hơn hơn 100 lần so với sắp xếp theo tên trang. Một [https://meta.wikimedia.org/wiki/Community_Wishlist/W454 yêu cầu từ cộng đồng] đã được tạo để tìm các cách thay thế nhằm khôi phục tính năng sắp xếp theo thời hạn. Nếu bạn thấy tính năng này quan trọng, hãy ủng hộ yêu cầu đó! [https://phabricator.wikimedia.org/T41510]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:31}} {{PLURAL:31|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, việc khắc phục lỗi tô sáng vẫn còn hiển thị sau khi sử dụng tính năng tìm và thay thế của VisualEditor trong quá trình tìm kiếm. [https://phabricator.wikimedia.org/T407318]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Từ năm 2019, [[m:Special:MyLanguage/Wikimedia URL Shortener|Trình rút gọn URL của Wikimedia]] tại https://w.wiki đã có sẵn cho tất cả các wiki của Wikimedia để tạo liên kết ngắn đến bài viết, liên kết cố định, bản so sánh, v.v. Tính năng này có trong thanh bên với tên "Lấy URL rút gọn". Hiện có 30 wiki vẫn đang sử dụng tiện ích mở rộng cũ "ShortUrl". Tiện ích cũ này sẽ sớm bị gỡ bỏ. Điều này có nghĩa là các URL dạng <code>/s/</code> sẽ không còn được hiển thị dưới tiêu đề bài viết thông qua thẻ HTML <code dir=ltr>class="title-shortlink"</code>. Tuy nhiên, các URL dạng <code>/s/</code> vẫn sẽ tiếp tục hoạt động. [https://phabricator.wikimedia.org/T107188]
* Vào thứ Năm, ngày 30 tháng 10, các nhóm [[:mw:Special:MyLanguage/MediaWiki Interfaces Team|Giao diện MediaWiki]] và [[:mw:Special:MyLanguage/Wikimedia Site Reliability Engineering|Vận hành Dịch vụ SRE]] đã bắt đầu chuyển hướng lưu lượng của Action API thông qua một cổng API chung. Các wiki riêng lẻ sẽ được cập nhật theo từng nhóm phát hành tiêu chuẩn, với tổng lưu lượng được tăng dần theo thời gian. Thay đổi này được kỳ vọng sẽ không gây ra lỗi hoặc gián đoạn. Nếu bạn phát hiện bất kỳ sự cố nào, vui lòng gửi báo cáo trên bảng [https://phabricator.wikimedia.org/tag/serviceops/ của nhóm Vận hành Dịch vụ].
* Việc triển khai MediaWiki Train sẽ tạm dừng trong hai tuần cuối cùng của năm 2025: ngày 22 và 29 tháng 12. Các khung thời gian backport cũng sẽ tạm ngưng từ thứ Hai, ngày 22 tháng 12 năm 2025 đến thứ Năm, ngày 2 tháng 1 năm 2026. "Backport window" là khoảng thời gian được lên lịch để bổ sung các nội dung như bản vá lỗi và thay đổi cấu hình. Hiện vẫn còn bảy đợt triển khai MediaWiki Train nữa trong năm 2025. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/SMWTEAES4SDLDUSK4HMWNBSKNCXZAWYN/]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.26|MediaWiki]]
'''Chuyên sâu'''
* Năm 2025, Quỹ Wikimedia báo cáo rằng các hệ thống AI và công cụ tìm kiếm ngày càng sử dụng nội dung từ Wikipedia mà không dẫn người dùng quay lại trang, góp phần khiến lượng lượt xem từ người dùng thực giảm 8% so với năm 2024. Sau khi phát hiện các bot giả dạng người dùng thật, Wikimedia đã cập nhật dữ liệu truy cập để phản ánh sự thay đổi này. Bạn có thể đọc thêm về xu hướng người dùng hiện nay trên Wikipedia trong [[diffblog:2025/10/17/new-user-trends-on-wikipedia/|bài viết trên blog Diff]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/45|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W45"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:34, ngày 3 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29552512 -->
== Bản tin Kỹ thuật: Tuần 46-2025 ==
<section begin="technews-2025-W46"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/46|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
[[File:Talk pages default look (April 2023).jpg|thumb|alt=Hình chụp những thay đổi về mặt trực quan được thực hiện trên trang thảo luận|Ví dụ về trang thảo luận với thiết kế mới, bằng tiếng Pháp.]]
* Kể từ ngày 12 tháng 11, người dùng sẽ nhận thấy sự thay đổi về [[m:Special:MyLanguage/Talk pages project/Feature summary#Usability improvements|giao diện của các trang thảo luận]] trên [[Phab:T379264|một số trang Wikipedia]]. Hầu hết [[phab:T392121|toàn bộ các wiki]] đã có được thay đổi về mặt thiết kế này; những thay đổi này sẽ được thực hiện sau trên [[phab:T409297|Wikipedia tiếng Anh]]. Bạn có thể đọc thêm [[diffblog:2024/05/02/making-talk-pages-better-for-everyone/|trên ''Diff'']]. Người dùng có thể chọn không thực hiện thay đổi này [[Special:Preferences#mw-prefsection-editing|trong tùy chọn người dùng của mình]] ở tùy chọn "{{int:discussiontools-preference-visualenhancements}}". [https://phabricator.wikimedia.org/T379264]
* MediaWiki nay có thể hiển thị [[mw:Special:MyLanguage/Help:Protection indicators|chỉ báo trên trang]] tự động khi một trang bị khóa. Tính năng này được tắt theo mặc định. Nó có thể được bật theo [[m:Special:MyLanguage/Requesting wiki configuration changes|yêu cầu của cộng đồng]]. [https://phabricator.wikimedia.org/T12347]
* Việc sử dụng các nút "{{int:showpreview}}" hoặc "{{int:showdiff}}" trong trình soạn thảo mã nguồn nay sẽ đi kèm một số tham số URL nhất định như '[[mw:Special:MyLanguage/Manual:Parameters to index.php#useskin|useskin]]', '[[mw:Special:MyLanguage/Manual:Parameters to index.php#uselang|uselang]]' và '[[mw:Special:MyLanguage/Help:Section#Editing sections|section]]'. Bản cập nhật này đồng thời cũng sửa một vấn đề mà, nếu trình duyệt bị sập khi đang xem trước sửa đổi một đề mục duy nhất, việc lưu sửa đổi này có thể ghi đè toàn bộ trang chỉ bằng nội dung của đề mục đó. [https://phabricator.wikimedia.org/T62744][https://phabricator.wikimedia.org/T24029][https://phabricator.wikimedia.org/T155097]
* Các wiki Wikivoyage có thể dùng [[mw:Special:MyLanguage/Help:Extension:Kartographer#Markers and counters|điểm đánh dấu bản đồ bằng màu trong nội dung văn bản của bài viết]]. Nội dung văn bản của những điểm đánh dấu đó nay sẽ được hiển thị bằng màu đen hoặc trắng tương phản, thay vì luôn luôn là màu trắng. Cộng đồng có thể loại bỏ các phương pháp giải quyết cục bộ cho vấn đề này. [https://phabricator.wikimedia.org/T369454]
* Tab Hoạt động trên ứng dụng Wikipedia dành cho Android nay có sẵn cho tất cả người dùng. Tab mới này cung cấp thông tin chuyên sâu được cá nhân hóa về hoạt động đọc, sửa đổi, và quyên góp, đồng thời đơn giản hóa việc điều hướng và giúp cho việc sử dụng ứng dụng trở nên hấp dẫn hơn. [https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/Android/Activity_Tab_Experiment]
* Nhóm Phát triển Độc giả (Reader Growth) chuẩn bị khởi động thử nghiệm mang tên "Duyệt hình ảnh" để kiểm tra cách giúp người đọc dễ dàng duyệt và khám phá hình ảnh trên các bài viết Wikipedia hơn. Thử nghiệm này, một thử nghiệm A/B dành riêng cho thiết bị di động, sẽ bắt đầu được thực hiện vào tuần từ ngày 17 tháng 11 và sẽ kéo dài trong bốn tuần, ảnh hưởng đến 0,05% người dùng trên wiki tiếng Anh. Thử nghiệm này đã bắt đầu vào ngày 3 tháng 11 trên các wiki tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Indonesia và tiếng Việt, ảnh hưởng đến tối đa 10% người dùng trên những wiki này. [https://www.mediawiki.org/wiki/Readers/Reader_Growth/WE3.1.3_Image_Browsing]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ như đã khắc phục việc không thể khóa tài khoản trên trang web dành cho di động. [https://phabricator.wikimedia.org/T256185]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[wikitech:Help talk:Toolforge/Toolforge standards committee#November 2025 committee nominations|Wikitech đang mở đề cử]] chọn thành viên mới của [[wikitech:Help:Toolforge/Toolforge standards committee|Ủy ban tiêu chuẩn của Toolforge]]. Ủy ban này giám sát [[wikitech:Help:Toolforge/Right to fork policy|Chính sách quyền sử dụng bản sao]] và [[wikitech:Help:Toolforge/Abandoned tool policy|Chính sách cho công cụ bị bỏ rơi]] của Toolforge cùng nhiều nhiệm vụ khác. Đề cử sẽ tiếp tục mở đến hết ngày 28 tháng 11 năm 2025.
* [[w:JSON Web Token#Standard fields|Trường bên cung cấp JWT]] trong [[mw:Special:MyLanguage/OAuth/For Developers#OAuth 2|mã truy cập OAuth 2]] dành cho [[m:Special:MyLanguage/Help:Unified login|wiki SUL]] (đăng nhập trung ương) đã được thay đổi thành <code><nowiki>https://meta.wikimedia.org</nowiki></code>. Các mã truy cập cũ vẫn sẽ hoạt động. [https://phabricator.wikimedia.org/T399199]
* [[w:JSON Web Token#Standard fields|Trường chủ đề JWT]] trong [[mw:Special:MyLanguage/OAuth/For Developers#OAuth 2|mã truy cập OAuth 2]] sẽ sớm thay đổi từ <code><user id></code> sang <code dir=ltr style="white-space:nowrap">mw:<identity type>:<user id></code>, trong đó <code><identity type></code> thường là <code dir=ltr>CentralAuth:</code><!-- not a typo --> (đối với [[m:Special:MyLanguage/Help:Unified login|wiki SUL]]) hoặc <code dir=ltr style="white-space:nowrap">local:<wiki id></code> (đối với các wiki khác). Điều này là nhằm tránh xung đột giữa các loại ID người dùng khác nhau, và để mã truy cập OAuth 2 và cookie <code>sessionJwt</code> trở nên giống nhau hơn. Các mã truy cập cũ vẫn sẽ hoạt động. [https://phabricator.wikimedia.org/T399199]
* Các thông điệp cấm của MediaWiki ([[MediaWiki:Blockedtext|blockedtext]], [[MediaWiki:Blockedtext-partial|blockedtext-partial]], [[MediaWiki:Autoblockedtext|autoblockedtext]], [[MediaWiki:Systemblockedtext|systemblockedtext]], [[MediaWiki:Blockedtext-tempuser|blockedtext-tempuser]], [[MediaWiki:Autoblockedtext-tempuser|autoblockedtext-tempuser]]) nay hỗ trợ thêm các tham số bổ sung nhằm chỉ ra xem người dùng đó có bị cấm sửa đổi trang thảo luận của mình <code><nowiki>$9</nowiki></code> hoặc gửi thư điện tử cho người dùng khác <code><nowiki>$</nowiki><nowiki>10</nowiki></code> hay không. [https://phabricator.wikimedia.org/T285612]
* Nhánh <code>REL1_45</code> cho lõi MediaWiki và từng phần mở rộng cùng giao diện trong git của Wikimedia đã được tạo. Đây là bước đầu tiên trong quá trình phát hành phiên bản MediaWiki 1.45.0, được lên kế hoạch triển khai vào cuối tháng 11 năm 2025. Nếu bạn đang thực hiện việc khắc phục lỗi nghiêm trọng hoặc thực hiện tính năng mới, bạn có thể cần phải lưu ý thay đổi này. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/ZUY7TY3Z6XPZWZVAZV63OPO5OW52Q6GE/]
* Quy trình tạo bản dump CirrusSearch đã được cập nhật do hiệu suất bị chậm. Nếu bạn gặp bất kỳ sự cố nào khi chuyển sang bản dump thay thế, vui lòng liên hệ với Nhóm Nền tảng Tìm kiếm để được hỗ trợ. [https://phabricator.wikimedia.org/T366248][https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/3KQPOR6ACVN6OVLMLZPIBXQSWQKW4E3K/]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.2|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/46|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W46"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:38, ngày 10 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29606150 -->
== Bản tin Kỹ thuật: Tuần 47-2025 ==
<section begin="technews-2025-W47"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/47|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đang thử nghiệm tính năng [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4_Reading lists|danh sách đọc trên trang di động]], cho phép người đọc đã đăng nhập chưa thực hiện sửa đổi nào có thể lưu danh sách bài viết riêng tư để đọc sau. Thử nghiệm đang được thực hiện trên các Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Indonesia, và tiếng Việt kể từ tuần ngày 10 tháng 11, và sẽ bắt đầu trên Wikipedia tiếng Anh trong tuần ngày 17 tháng 11.
* Người dùng không thể nhận được mã xác nhận qua thư điện tử khi đăng nhập nay có thể nhờ hỗ trợ bằng cách gửi biểu mẫu trên trang đặc biệt mới. Cập nhật này là một phần của sáng kiến [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]]. Nếu tài khoản của bạn có địa chỉ thư điện tử, hãy đảm bảo rằng bạn vẫn có quyền truy cập vào nó. Trong quá trình đăng nhập từ thiết bị hoặc địa điểm mới mà không có 2FA, bạn có thể được yêu cầu nhập mã 6 ký tự được gửi từ thư điện tử để hoàn tất đăng nhập. [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security#Why are you requiring me to enter a code from my email to log in? Can I opt out of this?|Tìm hiểu thêm]].
* Một wiki mới đã được tạo ra: {{int:project-localized-name-group-wikisource}} tiếng [[d:Q13324|Minangkabau]] ([[s:min:|<code>s:min:</code>]]) [https://phabricator.wikimedia.org/T408317]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Là một phần của dự án [[mw:Special:MyLanguage/Parsoid/Parser Unification|Hợp nhất Trình Phân tích Cú pháp]], Nhóm Chuyển đổi Nội dung đã triển khai Parsoid làm trình phân tích cú pháp mặc định cho nhiều trang Wikipedia có lưu lượng truy cập thấp và đang chuẩn bị tiếp tục bước tiếp theo để triển khai đến những trang có lưu lượng truy cập cao. Tin nhắn này là lời mời cho bạn tham gia vào Parsoid, như được miêu tả trong tài liệu [[mw:Special:MyLanguage/Help:Extension:ParserMigration|Extension:ParserMigration]], và tìm ra bất kỳ vấn đề nào mà bạn có thể gặp phải với quy trình làm việc của mình khi sử dụng bot, tiện ích hoặc đoạn mã người dùng. Hãy cho chúng tôi biết thông qua liên kết ''"Báo cáo lỗi hiển thị"'' trên thanh bên Công cụ hoặc tạo một tác vụ phab và gắn thẻ [[phab:project/view/5846|Nhóm Chuyển đổi Nội dung trên Phabricator]].
* Dự án Công cụ Không được Hỗ trợ: Một vài vấn đề với [[:c:Special:MyLanguage/Commons:Video2commons|Video2Commons]] đã được giải quyết, bao gồm lỗi tải lên liên quan đến tên tập tin, nhập video bị đen, và xử lý việc thử lại. Hỗ trợ cho AV1 cũng đã được thêm vào. Những công việc đang được tiến hành tập trung vào tính ổn định của backend, lỗi ffmpeg, nhập phụ đề, xử lý siêu dữ liệu, và tải lên danh sách phát. Để theo dõi các tác vụ cụ thể, hãy kiểm tra [[phab:tag/video2commons/|bảng tác vụ trên Phabricator]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.3|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* Hãy lưu lịch ngay cho Hackathon Wikimedia tiếp theo sẽ diễn ra tại Milan, Ý từ ngày 1–3 tháng 5 năm 2026. Cổng đăng ký sẽ được mở vào tháng 1 năm 2026. [https://pretix.eu/wikimedia/Hackathon-2026/ Đơn đăng ký nhận học bổng hiện đang được mở], và sẽ đóng vào ngày 28 tháng 11 năm 2025. Nếu bạn có bất kỳ câu hỏi nào, vui lòng gửi thư đến <bdi lang="en" dir="ltr">hackathon@wikimedia.org</bdi>.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/47|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W47"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:26, ngày 17 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29627455 -->
== <span lang="en" dir="ltr">Reminder: Help us decide the name of the new Abstract Wikipedia project</span> ==
<div lang="en" dir="ltr">
<section begin="function2"/>
{{int:Hello}}. Reminder: Please help to choose name for the new Abstract Wikipedia wiki project. The finalist vote starts today. The finalists for the name are: <span lang="en" dir="ltr" class="mw-content-ltr">Abstract Wikipedia, Multilingual Wikipedia, Wikiabstracts, Wikigenerator, Proto-Wiki</span>. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki.
{{Int:Feedback-thanks-title}}
<section end="function2"/>
</div>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 14:23, ngày 20 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:Sannita (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29583860 -->
== Bản tin Kỹ thuật: Tuần 48-2025 ==
<section begin="technews-2025-W48"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/48|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tuần trước, [[mw:Special:MyLanguage/Wikimedia Search Platform|Nhóm Tìm kiếm Wikimedia]] đã tạo lại chức năng của tiện ích "DWIM" (Do What I Mean - Làm những gì bạn muốn) trên máy chủ, cho Wikipedia tiếng Nga và tiếng Do Thái. Tính năng này bổ sung gợi ý đa bàn phím vào gợi ý trên hộp tìm kiếm tiêu chuẩn. Ví dụ, khi tìm kiếm ''<span lang="und" dir="ltr">cxfcnmt</span>'' trên Wikipedia tiếng Nga giờ đây sẽ bổ sung thêm gợi ý cho ''<span lang="ru" dir="ltr">счастье</span>'' ("sự hạnh phúc") mà người dùng có thể có ý định tìm tới. Họ dự kiến sẽ kích hoạt tính năng này trên các wiki khác bằng tiếng Nga và tiếng Do Thái trong tuần này. [https://phabricator.wikimedia.org/T408734]
* Cuối tuần này, người dùng [[Special:Preferences#mw-prefsection-betafeatures|tính năng beta]] "{{int:codemirror-beta-feature-title}}" sẽ có thể sử dụng tính năng tô màu cú pháp trong [[mw:Special:MyLanguage/Help:DiscussionTools|Công cụ Thảo luận]]. Điều này yêu cầu phải thiết lập tùy chọn "{{int:discussiontools-preference-sourcemodetoolbar}}". [https://phabricator.wikimedia.org/T407918]
* [[mw:Special:MyLanguage/Help:Extension:CampaignEvents|Phần mở rộng chiến dịch sự kiện]] – một bộ công cụ để phối hợp tổ chức sự kiện và các hoạt động cộng tác khác trên wiki nay đã được triển khai tới tất cả các wiki của Wikimedia. Một tính năng mới được gọi là [[m:Special:MyLanguage/CampaignEvents/Collaborative contributions|Đóng góp cộng tác]] cũng đã được thêm vào để giúp những người tổ chức và người tham gia thấy được tác động của những hoạt động đó. Hãy tham gia [[m:Special:MyLanguage/Event:Connection learning session 3|buổi học sắp tới]] để xem tính năng mới đó hoạt động thực tế như thế nào và chia sẻ phản hồi của bạn.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:24}} {{PLURAL:24|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho CodeReviewBot ngừng hoạt động hiện đã được giải quyết. [https://phabricator.wikimedia.org/T410417]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Người dùng API của Wikimedia có thể tham gia nghiên cứu khả năng sử dụng để giúp xác thực thiết kế mới dành cho chỗ thử REST API của Wikimedia. Những người có hứng thú tham gia cần điền vào [https://wikimediafoundation.limesurvey.net/487662 biểu mẫu khảo sát tham gia] này. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/IREJRRWTZTGCYWQHDMSNJFTQAEPOOAE3/]
* Nhóm Giao diện MediaWiki đang trong quá trình ngừng hỗ trợ các bảng định dạng (stylesheet) kiểu XSLT trong Action API. Hỗ trợ cho <code dir=ltr>format=xml'''&xlst={stylesheet}'''</code> sẽ bị loại bỏ khỏi các dự án Wikimedia vào cuối tháng 11 năm 2025. Ngoài ra, nó sẽ sớm mặc định bị vô hiệu hóa trong các phiên bản phát hành của MediaWiki: v1.43 (LTS), v1.44, và v1.45. Hỗ trợ cho các bảng định dạng kiểu XSLT sẽ bị loại bỏ hoàn toàn khỏi MediaWiki v1.46 (dự kiến phát hành vào khoảng thời gian từ tháng 4 đến tháng 5 năm 2026). [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/5AX7UWAVVUNUSBOIRHMNOKWOZ5EZI3JX/]
* Điểm cuối kế thừa của WDQS ([https://query-legacy-full.wikidata.org/ query-legacy-full.wikidata.org]) sẽ ngừng hoạt động vào cuối tháng 12 năm 2025, và sẽ chính thức bị vô hiệu hóa vào ngày 7 tháng 1 năm 2026. Sau ngày này, người dùng sẽ nhận thấy những yêu cầu đến query.wikidata.org mà yêu cầu toàn bộ biểu đồ bị lỗi hoặc trả về kết quả không hợp lệ nếu chúng không được viết lại để sử dụng liên kết SPARQL. Nhóm khuyên người dùng cần đảm bảo các công cụ và quy trình làm việc sử dụng các điểm cuối WDQS được hỗ trợ (<span dir=ltr><nowiki>https://query.wikidata.org/</nowiki></span> - Biểu đồ chính hoặc <span dir=ltr><nowiki>https://query-scholarly.wikidata.org/</nowiki></span> - Biểu đồ học thuật). Để được hỗ trợ chuyển đổi các trường hợp sử dụng (use case), vui lòng xem lại các trang [[d:Special:MyLanguage/Wikidata:Data_access|Truy cập Dữ liệu]] và [[d:Wikidata:Request_a_query|Yêu cầu Truy vấn]] để biết thêm thông tin và được hỗ trợ về các phương thức truy cập thay thế.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.4|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/48|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W48"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:56, ngày 24 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29702226 -->
== Bản tin Kỹ thuật: Tuần 49-2025 ==
<section begin="technews-2025-W49"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/49|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Bảng Nhìn lại Một Năm Wikipedia 2025 sẽ có mặt vào ngày 2 tháng 12 dành cho người dùng ứng dụng Wikipedia trên iOS và Android, gồm thông tin chuyên sâu được cá nhân hóa, những điểm nổi bật để đọc được cập nhật, cùng thiết kế đã được làm mới. Tìm hiểu thêm trên [[mw:Special:MyLanguage/Wikimedia Apps/Team/Wikipedia Year in Review/Updates|trang dự án]] của tính năng nhìn lại này.
* Nhóm Tăng trưởng đang nỗ lực cải thiện nội dung và cách trình bày của Email Xác minh được gửi tới người dùng mới để chúng trở nên thân thiện, hữu ích và có thêm nhiều thông tin hơn. Một số văn bản mới đã được soạn thảo cho thử nghiệm A/B và bạn có thể giúp đỡ bằng cách dịch chúng. Xem [[phab:T396155|Phabricator]].
* Tính năng [[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|Thêm liên kết]] nay sẽ được triển khai tới Wikipedia tiếng Nhật, tiếng Urdu và tiếng Trung vào ngày 2 tháng 12. Thêm liên kết được dựa trên mô hình dự đoán nhằm gợi ý liên kết cần được thêm vào bài viết. Trong khi tính năng này đã có mặt trên hầu hết các trang Wikipedia, mô hình dự đoán đó không thể hỗ trợ một số ngôn ngữ nhất định. Một mô hình mới đã được phát triển để xử lý những ngôn ngữ này, và mô hình đó sẽ dần được triển khai sang các trang Wikipedia khác theo thời gian. Nếu bạn muốn được biết thêm thông tin, vui lòng liên hệ [[mw:user:Trizek (WMF)|Trizek (WMF)]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:34}} {{PLURAL:34|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà hộp tìm kiếm trên một số trang Commons không hiển thị kết quả nào do việc chuyển đổi từ SpecialSearch sang MediaSearch, hiện đã được giải quyết. [https://phabricator.wikimedia.org/T399476]
* Hai wiki mới đã được tạo ra:
** {{int:project-localized-name-group-wikipedia}} tiếng [[d:Q36846|Toki Pona]] ([[w:tok:|<code>w:tok:</code>]]) [https://phabricator.wikimedia.org/T404457]
** {{int:project-localized-name-group-wikiquote}} tiếng [[d:Q33655|Pidgin Nigeria]] ([[q:pcm:|<code>q:pcm:</code>]]) [https://phabricator.wikimedia.org/T408318]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.5|MediaWiki]]
'''Chuyên sâu'''
* Quỹ Wikimedia đang trong giai đoạn đầu của việc khám phá các phương pháp tiếp cận cho '''Chỉ dẫn bài viết'''. Sáng kiến này nhằm mục đích xác định các phương pháp can thiệp có thể giúp các biên tập viên mới dễ dàng hiểu và áp dụng các quy tắc và chính sách hiện hành của Wikipedia khi tạo bài viết. Dự án đang trong giai đoạn khám phá và thiết kế thử nghiệm giai đoạn đầu. Tất cả các thành viên cộng đồng được khuyến khích [[mw:Special:MyLanguage/Article guidance|tìm hiểu thêm]] về dự án, và chia sẻ suy nghĩ của họ trên [[mw:Special:MyLanguage/Talk:Article guidance|trang thảo luận này]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/49|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W49"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:58, ngày 1 tháng 12 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29732328 -->
== Bản tin Kỹ thuật: Tuần 50-2025 ==
<section begin="technews-2025-W50"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/50|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Bất kỳ ai muốn bảo mật tài khoản người dùng của mình nay có thể sử dụng tính năng [[m:Special:MyLanguage/Help:Two-factor authentication|xác thực hai yếu tố]] (2FA). Tính năng này có sẵn cho tất cả người dùng của toàn bộ các dự án Wikimedia. Đây là một phần của sáng kiến [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]]. Sau này, 2FA sẽ được yêu cầu đối với tất cả người dùng có thể thực hiện các hành động mang tính nhạy cảm về bảo mật hoặc quyền riêng tư.
'''Cập nhật cho biên tập viên'''
* Tiếp nối đợt triển khai lần trước, tính năng [[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|Thêm liên kết]], một tính năng cho phép biên tập viên thêm liên kết được đề xuất trong quá trình sửa đổi, sẽ có mặt trên [[Phab:T410469|33 trang Wikipedia]] kể từ ngày 9 tháng 12. Việc mở rộng này có được nhờ mô hình dự đoán mới nay hỗ trợ tất cả các ngôn ngữ, kể cả những ngôn ngữ mà chưa được đề cập trước đây. Dù tính năng này đã có mặt trên hầu hết các trang Wikipedia được một thời gian, nhưng lần triển khai này sẽ giúp chúng tôi tiến gần hơn đến việc sử dụng mô hình được cải tiến này ở mọi nơi. Nếu bạn có bất kỳ câu hỏi nào hoặc muốn được biết thêm thông tin chi tiết vui lòng liên hệ với [[mw:user:Trizek (WMF)|Trizek (WMF)]].
* Tuần trước, [[mw:Special:MyLanguage/Wikimedia Search Platform|nhóm Nền tảng Tìm kiếm]] đã thêm gợi ý tìm kiếm [[w:vi:Chuyển tự|được chuyển tự]] khi bạn nhập tới các wiki bằng tiếng Georgia. Nếu chỉ có một vài gợi ý tìm kiếm thông thường, thì các truy vấn bằng chữ Latinh hoặc Kirin [[phab:T127003|nay sẽ được viết lại thành chữ Georgia]] để có thể tìm kiếm được nhiều kết quả trùng khớp hơn. Ví dụ, tìm kiếm <bdi lang="ka-Latn" dir="ltr">''bedniereba''</bdi> hoặc <bdi lang="ka-Cyrl" dir="ltr">''бедниереба''</bdi> nay sẽ gợi ý bài viết hiện có về <bdi lang="ka" dir="ltr">ბედნიერება</bdi> ("sự hạnh phúc"). Bạn có thể đề xuất những ngôn ngữ khác mà việc gợi ý được chuyển tự có thể hữu ích [[phab:T375215|trên Phabricator]] để dùng cho quá trình phát triển sau này.
* Cuối tuần này, một thử nghiệm có kiểm soát sẽ bắt đầu dành cho các biên tập viên trên 100 trang Wikipedia lớn nhất khi đang thực hiện sửa đổi một đề mục bằng trình soạn thảo trực quan trên trang web di động. 50% số biên tập viên đó sẽ nhận thấy nút "Sửa đổi toàn bộ trang" mới cho phép họ mở rộng phiên sửa đổi của mình lên toàn bộ trang đó. Tính năng này nhằm mục đích giúp người dùng trên trang web di động sửa đổi bất kỳ đề mục nào trong bài viết một cách dễ dàng hơn, bất kể việc họ chạm vào biểu tượng sửa đề mục nào để bắt đầu sửa đổi. Thử nghiệm này sẽ kéo dài khoảng 4 tuần. Bạn có thể tìm hiểu [[phab:T409112|thêm thông tin]] về dự án này.
* Cuối tuần này, [[mw:Special:MyLanguage/Readers/Reader Growth|nhóm Tăng trưởng Độc giả]] sẽ khởi động [[mw:Special:MyLanguage/Readers/Reader Growth/WE3.1.14 Expanded Mobile Sections|thử nghiệm trên trang web di động]] để mở rộng tất cả đề mục bài viết theo mặc định (hiện giờ chúng được mặc định thu gọn lại) và ghim tiêu đề của đề mục mà người dùng hiện đang đọc lên đầu trang. Thử nghiệm này sẽ ảnh hưởng tới 10% người dùng trên Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Indonesia và tiếng Việt. [https://phabricator.wikimedia.org/T409485]
* [[mw:Special:MyLanguage/Wikimedia Apps/Team/Wikipedia Year in Review/2025 Year in Review|Tổng kết Một Năm Wikipedia 2025]], một tính năng trong ứng dụng Wikipedia dành cho thiết bị di động (iOS và Android) nhằm cung cấp cho người dùng bản tóm tắt được cá nhân hóa về mức độ tương tác của họ với Wikipedia xuyên suốt trong một năm, nay đã có mặt trên ứng dụng iOS và Android. Phiên bản này bao gồm những thông tin chuyên sâu được mở rộng và cá nhân hóa, cải thiện những điểm nổi bật trong quá trình đọc, thông điệp mới cho nhà quyên góp, cùng thiết kế được cập nhật. Hãy mở ứng dụng để xem chuyên mục Tổng kết Năm và khám phá hành trình đọc của bạn trong năm 2025 nhé.
* Một lỗi phần mềm xảy ra gần đây khiến cho các sửa đổi được thực hiện bằng Trình Soạn thảo Trực quan thực hiện những thay đổi không mong muốn với mã nguồn wiki, trong đó có việc loại bỏ khoảng trắng và thay thế các dấu cách bằng dấu gạch dưới trong các liên kết wiki bên trong chú thích. Vấn đề này đã được giải quyết một phần vào tuần trước, và việc giải quyết vấn đề vẫn đang tiếp tục được thực hiện. Các biên tập viên sử dụng Trình Soạn thảo Trực quan trong các ngày từ 28 tháng 11 đến 2 tháng 12 nên kiểm tra lại sửa đổi của mình để tìm ra những thay đổi ngoài ý muốn. [https://phabricator.wikimedia.org/T411238]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, vấn đề về việc xử lý không đúng các đường dẫn URL được sao chép từ thanh địa chỉ của người dùng Microsoft Edge đã được giải quyết. [https://phabricator.wikimedia.org/T341281]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bắt đầu từ tuần này, người dùng [[Special:Preferences#mw-prefsection-betafeatures|tính năng beta]] "{{int:codemirror-beta-feature-title}}" sẽ sử dụng [[mw:Special:MyLanguage/Help:Extension:CodeMirror|CodeMirror]] làm trình sửa đổi dành cho các kiểu nội dung Lua, JavaScript, CSS, JSON và Vue, thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]]. Với thay đổi này, [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Linting|các linter]] sẽ được nâng cấp. Đây là một phần trong nỗ lực lớn hơn nhằm thay thế CodeEditor và mang tới trải nghiệm sửa đổi mã nguồn một cách nhất quán. [https://phabricator.wikimedia.org/T373711]
* Các nhà phát triển được khuyến khích tham gia [https://wikimediafoundation.limesurvey.net/552643 Khảo sát Mức độ Hài lòng của Nhà phát triển năm 2025], hiện vẫn đang được mở đến hết ngày 5 tháng 1 năm 2026. Nếu bạn tham gia vào việc xây dựng phần mềm cho hệ sinh thái Wikimedia và muốn chia sẻ kinh nghiệm hoặc phản hồi của mình, thì chúng tôi sẽ rất trân trọng sự tham gia của bạn. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/W4WBKO6Q55UWWCCSFWQATKEXBEHP3QNR/]
* Tuần này không có phiên bản MediaWiki mới nào.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/50|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W50"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:45, ngày 8 tháng 12 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29738112 -->
== Bản tin Kỹ thuật: Tuần 51-2025 ==
<section begin="technews-2025-W51"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/51|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:18}} {{PLURAL:18|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một trong số đó là việc giải quyết vấn đề khi tài khoản tạm thời chèn liên kết URL ngoài, việc này kích hoạt yêu cầu hCaptcha trong nhiều trường hợp hơn so với dự định, và không hiển thị popup cần thiết trong lần thử xuất bản sửa đổi đầu tiên. [https://phabricator.wikimedia.org/T411927]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* <span class="mw-translate-fuzzy">Để cải thiện hiệu suất cho cơ sở dữ liệu và trang web, các liên kết ngoài tới các dự án Wikimedia sẽ không còn được lưu trữ trong cơ sở dữ liệu. Điều này có nghĩa là chúng sẽ không thể được tìm thấy trong [[{{#special:LinkSearch}}]], sẽ không được kiểm tra bởi Danh sách đen về spam hoặc Bộ lọc Sai phạm dưới dạng liên kết mới, và sẽ không có trong bảng <code dir=ltr>externallinks</code> trên các bản sao cơ sở dữ liệu. Trong tương lai nó có thể được mở rộng sang những trang web khác đáng tin cậy được liên kết nhiều trên cơ sở từng wiki, chẳng hạn như liên kết Creative Commons trên Wikimedia Commons.</span> [https://phabricator.wikimedia.org/T405005]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.7|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/51|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W51"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:03, ngày 15 tháng 12 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29796010 -->
== Bản tin Kỹ thuật: Tuần 52-2025 ==
<section begin="technews-2025-W52"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/52|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Kể từ tháng 1, các bộ lọc sai phạm [[mw:Special:MyLanguage/Extension:AbuseFilter/Access flags|có thể được thiết lập]] để tự động loại bỏ chi tiết bộ lọc chẳng hạn như quy tắc và danh sách các sửa đổi và tác vụ thực hiện được ghi lại. Điều này sẽ giúp người giám sát sử dụng các bộ lọc sai phạm để ngăn chặn doxxing hoặc nội dung khác có thể bị loại bỏ. [https://phabricator.wikimedia.org/T290324]
* Số tiếp theo của Bản tin Kỹ thuật sẽ được phát hành vào ngày 12 tháng 1 năm 2026 do trùng vào kỳ nghỉ cuối năm. Xin cảm ơn tất cả các biên dịch viên cùng những người đã gửi nội dung hoặc phản hồi trong năm nay.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:16}} {{PLURAL:16|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, sự cố xảy ra khiến cho ứng dụng bị sập khi chạm vào mục "Bước Đầu tiên" trong mục Nhìn lại Một năm trên ứng dụng Wikipedia dành cho Android nay đã được giải quyết, và tính năng này được mở như mong đợi. [https://phabricator.wikimedia.org/T411546]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Những thành phần giao diện như khác biệt giữa các phiên bản và thể loại được tạo bởi MediaWiki từng có thuộc tính <code dir=ltr>data-mw="interface"</code> để phân biệt với nội dung wiki. Thuộc tính này đã được thay thế bằng <code dir=ltr>data-mw-interface=""</code>, nhằm tránh khả năng gây xung đột với những thuộc tính <code dir=ltr>data-mw</code> khác được tạo bởi Parsoid. [https://phabricator.wikimedia.org/T409187]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Không có phiên bản MediaWiki mới nào trong tuần này hoặc tuần tới.
'''Các cuộc họp và sự kiện'''
* [[mw:Wikimedia Hackathon Northwestern Europe 2026|Wikimedia Hackathon Tây Bắc Âu năm 2026]] sẽ diễn ra vào các ngày 13-14 tháng 3 năm 2026 tại Arnhem, Hà Lan. Đơn đăng ký vừa được mở vào giữa tháng 12 và sẽ đóng vào giữa tháng 1 hoặc có thể đóng sớm hơn nếu hết chỗ. Do sự kiện giới hạn khoảng 100 người tham gia, chúng tôi khuyến khích bạn đăng ký thật sớm.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/52|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W52"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:45, ngày 22 tháng 12 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29831856 -->
== Bản tin Kỹ thuật: Tuần 03-2026 ==
<section begin="technews-2026-W03"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/03|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Quỹ Wikimedia đã chia sẻ một số câu hỏi định hướng cho Kế hoạch Thường niên giai đoạn tháng 7 năm 2026–tháng 6 năm 2027 trên [[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2026-2027/Product & Technology OKRs|Meta]] và ''[[diffblog:2025/12/10/shaping-wikimedia-foundations-2026-2027-annual-goals-key-questions-for-the-wikimedia-movement/|Diff]]''. Những câu hỏi này tập trung vào những xu hướng toàn cầu, những thử nghiệm nhanh và hiệu quả hơn, hỗ trợ tốt hơn cho người mới, tăng cường năng lực cho biên tập viên và người dùng có quyền nâng cao, cải thiện sự cộng tác giữa các dự án, cũng như phát triển và duy trì lượng người đọc. Mọi phản hồi và ý kiến đóng góp đều được hoan nghênh trên [[m:Talk:Wikimedia Foundation Annual Plan/2026-2027|trang thảo luận]].
'''Cập nhật cho biên tập viên'''
* Là một phần của công việc hiện do nhóm Công nghệ Cộng đồng thực hênj xoay quanh dự án [[m:Special:MyLanguage/Community Wishlist/W372|Nhiều danh sách theo dõi]] (Multiple watchlists), việc hiển thị của tính năng [[Special:EditWatchlist|Sửa đổi Danh sách theo dõi]] (EditWatchlist) sẽ được cập nhật làm bước đầu tiên hướng tới việc có được nhiều danh sách theo dõi. Ngoài ra, việc phân trang của trang [[Special:Search|Tìm kiếm]] cũng sẽ được cập nhật như là một phần của công việc liên quan đến mong muốn [[m:Special:MyLanguage/Community Wishlist/W186|Cải tiến phân trang / điều hướng trang]]. [https://phabricator.wikimedia.org/T411596]
* [[m:Special:GlobalWatchlist|Danh sách theo dõi toàn cục]] là [[mw:Special:MyLanguage/Extension:GlobalWatchlist|phần mở rộng]] của MediaWiki cho phép bạn xem danh sách theo dõi của bạn từ các wiki khác nhau trên cùng một trang. Danh sách này gần đây đã được cập nhật để trông giống như [[Special:Watchlist|Danh sách theo dõi]] thông thường hơn, chẳng hạn như tiền xử lý các tài khoản tạm thời để che giấu địa chỉ IP (trong đó có việc chuyển hướng liên kết người dùng đến các trang đóng góp), in đậm tiêu đề trang, và mở các liên kết trong phần tóm lược sửa đổi và thẻ trong tab trình duyệt mới. [https://phabricator.wikimedia.org/T398361][https://phabricator.wikimedia.org/T298919][https://phabricator.wikimedia.org/T273526][https://phabricator.wikimedia.org/T286309]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, vấn đề mà việc cấm tài khoản toàn cục không có tùy chọn cấm gửi thư điện tử, nay đã được giải quyết, và sẽ có thể sử dụng kể từ tuần ngày 13 tháng 1. [https://phabricator.wikimedia.org/T401293]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[mw:Special:MyLanguage/VisualEditor/Citation tool|Công cụ chú thích của Soạn thảo Trực quan]] và [[mw:Special:MyLanguage/Help:Reference Previews|Xem trước Chú thích]] nay hỗ trợ kiểu chú thích dạng "bản đồ". [https://phabricator.wikimedia.org/T411083]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.10|MediaWiki]]/[[mw:MediaWiki 1.46/wmf.11|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/03|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W03"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:33, ngày 12 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29907192 -->
== Thank You for Last Year – Join Wiki Loves Ramadan 2026 ==
Dear Wikimedia communities,
We hope you are doing well, and we wish you a happy New Year.
''Last year, we captured light. This year, we’ll capture legacy.''
In 2025, communities around the world shared the glow of Ramadan nights and the warmth of collective iftars. In 2026, ''Wiki Loves Ramadan'' is expanding, bringing more stories, more cultures, and deeper global connections across Wikimedia projects.
We invite you to explore the ''Wiki Loves Ramadan 2026'' [[m:Special:MyLanguage/Wiki Loves Ramadan 2026|Meta page]] to learn how you can participate and [[m:Special:MyLanguage/Wiki Loves Ramadan 2026/Participating communities|sign up]] your community.
📷 ''Photo campaign on '' [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan 2026|Wikimedia Commons]]
If you have questions about the project, please refer to the FAQs:
* [[m:Special:MyLanguage/Wiki Loves Ramadan/FAQ/|Meta-Wiki]]
* [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan/FAQ|Wikimedia Commons]]
''Early registration for updates is now open via the '''[[m:Special:RegisterForEvent/2710|Event page]]'''''
''Stay connected and receive updates:''
* [https://t.me/WikiLovesRamadan Telegram channel]
* [https://lists.wikimedia.org/postorius/lists/wikilovesramadan.lists.wikimedia.org/ Mailing list]
We look forward to collaborating with you and your community.
'''The Wiki Loves Ramadan 2026 Organizing Team''' 19:45, ngày 16 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:ZI Jony@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29879549 -->
== Bản tin Kỹ thuật: Tuần 04-2026 ==
<section begin="technews-2026-W04"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/04|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Khay được hiển thị trên [[Special:Diff|Đặc biệt:Khác]] trong chế độ xem di động đã được thiết kế lại. Giờ đây nó mặc định được thu gọn, đồng thời tích hợp một liên kết để lùi lại sửa đổi đang được hiển thị trên màn hình, giúp các biên tập viên và người duyệt bài trên điện thoại di động dễ dàng thực hiện tác vụ mà vẫn giữ giao diện thật gọn gàng. [https://phabricator.wikimedia.org/T402297]
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi từ nhiều wiki khác nhau trên cùng một trang. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] này tiếp tục được cải thiện — nay nó có thể tự động xác định hướng văn bản (nhằm đảm bảo việc hiển thị chính xác các trang web mà có tên miền bất thường) và hiển thị chi tiết phần miêu tả cho các tác vụ được lưu trong nhật trình. Cuối tuần này, một liên kết thường trực mới cho các tác vụ tạo trang cùng các lớp CSS cho từng mục nhập sẽ được thêm vào. [https://phabricator.wikimedia.org/T412505][https://phabricator.wikimedia.org/T287929][https://phabricator.wikimedia.org/T262768][https://phabricator.wikimedia.org/T414135]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:32}} {{PLURAL:32|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà được ghi nhận trước đây trong giao diện Vector 2022 mà các liên kết anchor đích bị che khuất bởi tiêu đề cố định nay đã được giải quyết. [https://phabricator.wikimedia.org/T406114]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Như đã đề cập trong [[m:Special:MyLanguage/Tech/News/2025/44|thông báo ngừng hỗ trợ vào tháng 10 năm 2025]], nhóm Giao diện MediaWiki sẽ bắt đầu loại bỏ toàn bộ điểm cuối chuyển đổi có dấu gạch chéo ở cuối khỏi API REST của MediaWiki vào tuần từ ngày 26 tháng 1. Những thay đổi này dự kiến sẽ được triển khai tới tất cả các wiki chậm nhất vào ngày 30 tháng 1. Tất cả người dùng API đang gọi những điểm cuối này được khuyên chuyển đổi sang những phiên bản không có dấu gạch chéo ở cuối. Cả hai loại biến thể điểm cuối này đều có thể được tìm thấy, so sánh và kiểm tra sử dụng [https://test.wikipedia.org/wiki/Special:RestSandbox Chỗ thử REST]. Nếu bạn có thắc mắc hay gặp bất kỳ sự cố nào, hãy gửi yêu cầu bằng cách tạo một tác vụ trong Phabricator gửi tới [https://phabricator.wikimedia.org/project/view/6931/ bảng tin #MW-Interfaces-Team].
* Tài liệu tham khảo trực quan cho [[mw:Special:MyLanguage/Wikimedia REST API|API REST của Wikimedia]] đã được chuyển. Những yêu cầu đến các tài liệu API trước đây được lưu trữ thông qua [[mw:Special:MyLanguage/RESTBase|RESTBase]] (v.d.: <code dir=ltr>https://en.wikipedia.org/api/rest_v1/</code>) nay được chuyển hướng tới [[w:en:Special:RestSandbox|Chỗ thử REST]].
* [[mw:Special:MyLanguage/Wikidata Platform|Nhóm Nền tảng Wikidata của WMF]] (WDP) đã phát hành [[d:Special:MyLanguage/Wikidata:Wikidata Platform team/Newsletter|bản tin tháng 1 năm 2026]]. Bản tin bao gồm những cập nhật về việc ngừng hoạt động điểm cuối biểu đồ đầy đủ (full-graph) cũ, thay đổi về chính sách User-Agent, thời gian làm việc hàng tháng của kế hoạch chuyển đổi sang Blazegraph, cùng những nỗ lực nhằm giảm thiểu những lỗi hồi quy gây ra bởi việc ngừng điểm cuối cũ. Xin nhắc lại rằng bạn có thể [[m:Special:MyLanguage/Global message delivery/Targets/WDP team updates|đăng ký nhận bản tin WDP đó]]!
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.12|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* [[mw:Wikimedia Hackathon Northwestern Europe 2026|Cuộc thi Hackathon Wikimedia khu vực Tây Bắc Châu Âu năm 2026]] sẽ diễn ra vào ngày 13-14 tháng 3 năm 2026 tại Arnhem, Hà Lan. Cổng đăng ký đã được mở vào giữa tháng 12 và sẽ sớm đóng lại hoặc đóng ngay khi đã đủ số lượng người tham gia. Đây là cuộc thi hackathon kéo dài hai ngày, tập trung vào mảng kỹ thuật và quy tụ các thành viên Wikimedia từ khắp khu vực. Hy vọng sẽ gặp lại bạn tại đó!
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/04|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W04"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:29, ngày 19 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29943403 -->
== Rà soát thường niên Bộ Quy tắc Ứng xử Chung và Hướng dẫn Thực thi ==
<section begin="announcement-content" />
Tôi viết thư này để thông báo với bạn rằng thời gian xem xét hàng năm đối với Bộ Quy tắc Ứng xử và Hướng dẫn Thực thi hiện đã bắt đầu. Bạn có thể đưa ra các đề xuất thay đổi đến hết ngày 9 tháng 2 năm 2026. Đây là bước đầu tiên trong nhiều bước cần thực hiện cho quá trình xem xét hàng năm. [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Đọc thêm thông tin và tìm cuộc thảo luận để tham gia trên trang UCoC trên Meta]].
[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Ủy ban Điều phối Bộ Quy tắc Ứng xử Toàn cầu]] (U4C) là một nhóm toàn cầu chuyên trách việc thực hiện Bộ Quy tắc Ứng xử Toàn cầu một cách công bằng và nhất quán. Đánh giá thường niên này được lên kế hoạch và thực hiện bởi U4C. Để biết thêm thông tin và trách nhiệm của U4C, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|bạn có thể xem Hiến chương U4C]].
Vui lòng chia sẻ thông tin này với các thành viên khác trong cộng đồng của bạn ở bất cứ nơi nào phù hợp.
-- Hợp tác với U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]])<section end="announcement-content" />
21:02, ngày 19 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Keegan (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 -->
== Bản tin Kỹ thuật: Tuần 05-2026 ==
<section begin="technews-2026-W05"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/05|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Quỹ Wikimedia mời mọi người đóng góp ý kiến cho [[m:Special:MyLanguage/Product and Technology Advisory Council/Year1 Reflections and Proposed Way Forward 2026 Update|đề xuất kế hoạch tương lai]] của [[:m:Special:MyLanguage/Product and Technology Advisory Council|Hội đồng Cố vấn Sản phẩm và Công nghệ]] chậm nhất ngày 28 tháng 2.
* Tất cả người dùng đã đăng ký tài khoản nay có thể sử dụng passkey (mã xác thực) cho việc [[m:Special:MyLanguage/Help:Two-factor authentication|xác thực hai yếu tố]] (2FA). Passkey là một cách đơn giản để đăng nhập mà không cần phải sử dụng thiết bị thứ hai. Chúng sẽ xác thực danh tính của người dùng sử dụng vân tay, nhận diện khuôn mặt, hoặc dùng mã PIN. Để thiết lập một passkey, đầu tiên hãy thiết lập phương thức xác thực 2FA thông thường. Hiện tại, để đăng nhập bằng passkey, người dùng cũng phải sử dụng cả mật khẩu. Vào cuối quý này, tính năng đăng nhập không cần mật khẩu sẽ cho phép người dùng đăng nhập chỉ bằng một cú nhấn chuột và passkey. Người dùng có quyền nâng cao cũng sẽ bắt buộc phải kích hoạt xác thực 2FA. Đây là một phần của dự án [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]].
* Những người đóng góp chưa đăng ký tài khoản trên các IP hoặc dải IP bị cấm nay có thể tương tác trên wiki để chống lại quyết định cấm trên trang thảo luận thành viên, trừ khi tùy chọn "ngăn người dùng này sửa đổi trang thảo luận của họ" được bật. Điều này giúp giải quyết vấn đề rằng người dùng chưa đăng nhập không thể sử dụng quy trình bỏ cấm mặc định thông qua trang thảo luận thành viên. [https://phabricator.wikimedia.org/T398673]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:20}} {{PLURAL:20|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, phần miêu tả phương thức Xác thực hai yếu tố (2FA) trên trang quản lý đã được cập nhật. Giờ đây nó trở nên rõ ràng và dễ hiểu hơn, giúp người dùng dễ dàng sử dụng hơn. [https://phabricator.wikimedia.org/T332385]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Một biến Bộ lọc Sai phạm mới, <code>account_type</code>, đã được thêm vào để cung cấp một cách đáng tin cậy trong việc xác định loại tài khoản được tạo trong các tác vụ <code>createaccount</code> và <code>autocreateaccount</code>. Là một phần của thay đổi này, biến <code>accountname</code> đã được đổi tên thành <code>account_name</code>, và <code>accountname</code> nay đã lỗi thời. Những người quản lý bộ lọc sai phạm nên cập nhật bất kỳ bộ lọc nào đang sử dụng biến kiểm tra loại tài khoản mã hóa cứng hoặc đã lỗi thời nào nếu có. [https://phabricator.wikimedia.org/T414049]
* Các hình thu nhỏ được yêu cầu với kích thước không chuẩn và sử dụng các phương thức không chuẩn như yêu cầu trực tiếp đến <code dir=ltr><nowiki>upload.wikimedia.org/…</nowiki></code> sẽ ngừng hoạt động trong thời gian tới. Thay đổi này nhằm ngăn chặn việc các trình thu thập dữ liệu web và bot từ bên ngoài lạm dụng. Một số người dùng có đoạn mã CSS/JS tùy chỉnh, các bảo quản viên giao diện có thể sửa tiện ích và giao diện cục bộ, cùng người viết công cụ sẽ cần cập nhật đoạn mã của mình để sử dụng kích thước hình thu nhỏ tiêu chuẩn. [[phab:T414805|Thông tin chi tiết, các liên kết tìm kiếm, cùng ví dụ về cách giải quyết chúng có sẵn trong tác vụ này]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.13|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/05|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W05"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:17, ngày 26 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29969530 -->
== Bản tin Kỹ thuật: Tuần 06-2026 ==
<section begin="technews-2026-W06"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/06|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng "{{int:pageinfo-toolboxlink}}", một tính năng cung cấp thông tin xác thực về một trang ([{{fullurl:{{FULLPAGENAME}}|action=info}} ví dụ]), nay có thêm cả phần mục lục được tạo tự động. Nếu có trang [[MediaWiki:Pageinfo-header]] được người dùng tạo cục bộ, giờ nó có thể được xóa đi. [https://phabricator.wikimedia.org/T363726]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, Trình Soạn thảo Trực quan trước đây đã thêm chức năng in đậm hoặc nghiêng vào phần miêu tả liên kết, làm cho mã wiki trở nên phức tạp. Vấn đề này hiện đã được giải quyết. [https://phabricator.wikimedia.org/T409669]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Không có bản dump XML nào được tạo ra vào ngày 20 tháng 1. Ngoài ra, kể từ giờ, các bản dump sẽ chỉ được tạo một lần mỗi tháng. [https://phabricator.wikimedia.org/T414389]
* Nhóm Giao diện MediaWiki đã ngừng hỗ trợ tất cả điểm cuối chuyển đổi có dấu gạch chéo ở cuối khỏi [https://www.mediawiki.org/wiki/Special:MyLanguage/API:REST%20API API REST của MediaWiki]. Tất cả người dùng API hiện đang gọi những điểm cuối đó được khuyến khích chuyển sang các bản không có dấu gạch chéo ở cuối. Nếu bạn có thắc mắc hoặc gặp bất kỳ sự cố nào, vui lòng gửi tác vụ phabricator tới [https://phabricator.wikimedia.org/project/view/6931/ bảng tin của #MW-Interfaces-Team].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.14|MediaWiki]]
'''Nổi bật trong tuần'''
* Xin nhắc tới người dùng rằng Quỹ Wikimedia đã chia sẻ một số câu hỏi định hướng cho Kế hoạch Hàng năm giai đoạn tháng 7 năm 2026–tháng 6 năm 2027 trên [[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2026-2027/Product & Technology OKRs|Meta]] và ''[[diffblog:2025/12/10/shaping-wikimedia-foundations-2026-2027-annual-goals-key-questions-for-the-wikimedia-movement/|Diff]]''. Những câu hỏi này tập trung vào những xu hướng toàn cầu, thử nghiệm nhanh hơn và hiệu quả hơn, hỗ trợ tốt hơn cho người mới, nâng cao năng lực cho biên tập viên và người dùng có quyền nâng cao, cải thiện việc cộng tác giữa các dự án, cũng như phát triển và giữ chân độc giả. Mọi phản hồi và ý kiến đóng góp đều được hoan nghênh trên [[m:Talk:Wikimedia Foundation Annual Plan/2026-2027|trang thảo luận]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/06|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W06"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:43, ngày 2 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30000986 -->
== Bản tin Kỹ thuật: Tuần 07-2026 ==
<section begin="technews-2026-W07"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/07|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Mục Mong muốn cộng đồng]] <span lang="en" dir="ltr" class="mw-content-ltr">Logged-in contributors who manage large or complex watchlists can now organise and filter watched pages in ways that improve their workflows with the new [[mw:Special:MyLanguage/Help:Watchlist labels|Watchlist labels]] feature. By adding custom labels (for example: pages you created, pages being monitored for vandalism, or discussion pages) users can more quickly identify what needs attention, reduce cognitive load, and respond more efficiently. This improves watchlist usability, especially for highly active editors.</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">A new feature available on [[Special:Contributions|Special:Contributions]] shows [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|temporary accounts]] that are likely operated by the same person, and so makes patrolling less time-consuming. Upon checking contributions of a temporary account, users with access to temporary account IP addresses can now see a view of contributions from the related temporary accounts. The feature looks up all the IPs associated with a given temporary account within the data retention period and shows all the contributions of all temporary accounts that have used these IPs. [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts#February 2026: Improvements to the patroller tooling|Learn more]].</span> [https://phabricator.wikimedia.org/T415674]
* <span lang="en" dir="ltr" class="mw-content-ltr">When editors preview a wikitext edit, the reminder box that they are only seeing a preview (which is shown at the top), now has a grey/neutral background instead of a yellow/warning background. This makes it easier to distinguish preview notes from actual warnings (for example, edit conflicts or problematic redirect targets), which will now be shown in separate warning or error boxes.</span> [https://phabricator.wikimedia.org/T414742]
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[m:Special:GlobalWatchlist|Global Watchlist]] lets you view your watchlists from multiple wikis on one page. The [[mw:Special:MyLanguage/Extension:GlobalWatchlist|extension]] continues to improve — it now properly supports more than one Wikibase site, for example both [[d:|Wikidata]] and [[testwikidata:|testwikidata]]. In addition, issues regarding text direction have been fixed for users who prefer Wikidata or other Wikibase sites in right-to-left (RTL) languages.</span> [https://phabricator.wikimedia.org/T415440][https://phabricator.wikimedia.org/T415458]
* <span lang="en" dir="ltr" class="mw-content-ltr">The automatic "magic links" for ISBN, RFC, and PMID numbers have been [[mw:Special:MyLanguage/Help:Magic links|deprecated in wikitext since 2021]] due to inflexibility and difficulties with localization. Several wikis have successfully replaced RFC and PMID magic links with equivalent external links, but a template was often required to replace the functionality of the ISBN magic link. There is now a new [[mw:Special:MyLanguage/Help:Magic words#isbn|built-in parser function]] <code dir=ltr><nowiki>{{#isbn}}</nowiki></code> available to replace the basic functionality of the ISBN magic link. This makes it easier for wikis who wish to migrate off of the deprecated magic link functionality to do so.</span> [https://phabricator.wikimedia.org/T145604]
* <span lang="en" dir="ltr" class="mw-content-ltr">Two new wikis have been created:</span>
** <span lang="en" dir="ltr" class="mw-content-ltr">a {{int:project-localized-name-group-wikipedia}} in [[d:Q35401|Jju]]</span> ([[w:kaj:|<code>w:kaj:</code>]]) [https://phabricator.wikimedia.org/T413283]
** <span lang="en" dir="ltr" class="mw-content-ltr">a {{int:project-localized-name-group-wikipedia}} in [[d:Q1186896|Nawat]]</span> ([[w:ppl:|<code>w:ppl:</code>]]) [https://phabricator.wikimedia.org/T413273]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* <span lang="en" dir="ltr" class="mw-content-ltr">A new global user group has been created: [[{{int:grouppage-local-bot}}|{{int:group-local-bot}}]]. It will be used internally by the software to allow community bots to bypass rate limits that are applied to abusive [[w:en:Web scraping|web scrapers]]. Accounts that are approved as bots on at least one Wikimedia wiki will be automatically added to this group. It will not change what user permissions the bot has.</span> [https://phabricator.wikimedia.org/T415588]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.15|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[mw:Special:MyLanguage/MediaWiki Users and Developers Conference Spring 2026|MediaWiki Users and Developers Conference, Spring 2026]] will be held March 25–27 in Salt Lake City, USA. This event is organized by and for the third-party MediaWiki community. You can propose sessions and register to attend.</span> [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/AZBWVI46SDEB65PGR5J6E4TYOQQEZXM7/]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/07|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W07"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 23:30, ngày 9 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30026671 -->
== Bản tin Kỹ thuật: Tuần 08-2026 ==
<section begin="technews-2026-W08"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/08|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Wikimedia Site Reliability Engineering|Nhóm SRE]] sẽ tiến hành dọn dẹp phiên bản [[m:Special:MyLanguage/Etherpad|Etherpad]] của Wikimedia, một trình sửa đổi trên web dành cho việc sửa đổi tài liệu cộng tác theo thời gian thực. Tất cả pad sẽ bị xóa vĩnh viễn sau ngày 30 tháng 4 năm 2026 – trường hợp nếu còn dự án vẫn đang được tiến hành di chuyển vào thời điểm đó thì nhóm có thể xem xét lại thời gian đó tùy từng trường hợp. Vui lòng tạo bản sao lưu cục bộ cho bất kỳ nội dung nào mà bạn muốn giữ lại, vì dữ liệu đã bị xóa không thể khôi phục được nữa. Việc dọn dẹp này sẽ giúp giảm bớt kích thước cơ sở dữ liệu và giảm thiểu lãng phí (dấu ấn) cơ sở hạ tầng. Etherpad sẽ tiếp tục hỗ trợ cộng tác theo thời gian thực, nhưng không kỳ vọng vào khả năng lưu trữ lâu dài. Những đợt dọn dẹp khác có thể xảy ra trong tương lai mà không cần báo trước. [https://phabricator.wikimedia.org/T415237]
'''Cập nhật cho biên tập viên'''
* Nhóm Tìm kiếm Thông tin sẽ triển khai [[mw:Special:MyLanguage/Readers/Information Retrieval/Phase 1|thử nghiệm trên ứng dụng di động dùng Android]] nhằm kiểm tra khả năng tìm kiếm kết hợp, có thể xử lý cả các truy vấn tìm theo ngữ nghĩa và theo từ khóa. Việc cải thiện tìm kiếm trên nền tảng này sẽ giúp người đọc dễ dàng tìm thấy những gì mà họ đang tìm kiếm hơn ngay trên Wikipedia. Thử nghiệm này sẽ bắt đầu được triển khai trước tiên là trên Wikipedia tiếng Hy Lạp vào cuối tháng 2, sau đó là các wiki tiếng Anh, tiếng Pháp và tiếng Bồ Đào Nha vào tháng 3. [https://diff.wikimedia.org/2026/01/08/semantic-search-making-it-easier-to-find-the-information-readers-want/ Đọc thêm] trên blog Diff. [https://www.mediawiki.org/wiki/Readers/Information_Retrieval]
* Nhóm Phát triển Độc giả sẽ tiến hành [[mw:Special:MyLanguage/Readers/Reader Growth/WE3.10.2 Mobile Table of Contents|một thử nghiệm]] cho người dùng web trên thiết bị di động nhằm thêm mục lục và tự động mở rộng tất cả các đề mục trong bài viết, nhằm tìm hiểu thêm về những vấn đề về điều hướng mà họ gặp phải. Thử nghiệm này sẽ có mặt trên các Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Anh, tiếng Pháp, tiếng Indonesia và tiếng Việt.
* Trước đây, các thông báo đầu trang ([[{{ns:8}}:Sitenotice]] và [[{{ns:8}}:Anonnotice]]) chỉ được hiển thị trên trang web dành cho máy tính để bàn. Giờ đây, chúng sẽ được hiển thị trên mọi nền tảng. Người dùng trên trang web di động nay sẽ thấy được những thông báo này và được thông báo. Các bảo quản viên trang web nên sẵn sàng kiểm tra và sửa các thông báo đầu trang trên các thiết bị di động để tránh xung đột với bài viết. Để từ chối, bảo quản viên giao diện có thể thêm <code dir="ltr">#siteNotice { display: none; }</code> vào [[{{ns:8}}:Minerva.css]]. [https://phabricator.wikimedia.org/T138572][https://phabricator.wikimedia.org/T416644]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:19}} {{PLURAL:19|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề trên [[Special:RecentChanges|Đặc biệt:Thay đổi gần đây]] đã được giải quyết. Trước đây, nhấn vào nút ẩn trên các bộ lọc đang được áp dụng khiến cho nút "xem những thay đổi mới từ…" biến mất, dù nó đáng lẽ phải được hiển thị. Nút này giờ đây sẽ hoạt động như mong đợi. [https://phabricator.wikimedia.org/T406339]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Hiện đã có tài liệu mới giúp biên tập viên gỡ lỗi các tính năng tìm kiếm trên trang. Nó hỗ trợ việc khắc phục sự cố khi các trang xuất hiện trong kết quả tìm kiếm, khi thứ hạng có vẻ không như mong đợi và khi bạn cần kiểm tra nội dung nào đang được lập chỉ mục, giúp việc tìm hiểu và phân tích hành vi tìm kiếm trở nên dễ dàng hơn. [[mw:Help:CirrusSearch/Debug|Tìm hiểu thêm]]. [https://phabricator.wikimedia.org/T411169]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.16|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/08|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W08"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:17, ngày 16 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30086330 -->
== Bản tin Kỹ thuật: Tuần 09-2026 ==
<section begin="technews-2026-W09"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/09|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Tính năng [[mw:Special:MyLanguage/Edit check/Reference Check|Kiểm tra Nguồn Tham khảo]] đã được triển khai tới Wikipedia tiếng Anh, điều này có nghĩa là việc triển khai tính năng trên tất cả các trang Wikipedia đã hoàn thành. Tính năng này nhắc những người mới thêm nguồn tham khảo trước khi đăng nội dung mới, giúp giảm thiểu việc lùi sửa liên quan đến các vấn đề nguồn tham khảo phổ biến và cải thiện khả năng kiểm chứng được. Trong quá trình thử nghiệm A/B, tính năng này mang lại hiệu quả rất đáng kể: những người mới có hiển thị Kiểm tra Nguồn Tham khảo có khả năng thêm nguồn tham khảo cao hơn khoảng 2,2 lần trên trang web dành cho máy tính và cao hơn khoảng 17,5 lần trên trang web dành cho di động. [https://analytics.wikimedia.org/published/reports/editing/reference_check_ab_test_report_final_2025.html]
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Extension:InterwikiSorting|Phần mở rộng InterwikiSorting]], một phần mở rộng cho phép [[m:Special:MyLanguage/Interwiki sorting order|sắp xếp các liên kết liên wiki]], đã bị gỡ bỏ khỏi Wikipedia. Do đó, những biên tập viên đã bật tính năng sắp xếp liên kết liên wiki ở chế độ không rút gọn (định dạng danh sách đầy đủ) sẽ thấy được rằng các liên kết được sắp xếp lại. Các liên kết từ nay trở đi sẽ được liệt kê theo thứ tự bảng chữ cái dựa trên mã ngôn ngữ. [https://phabricator.wikimedia.org/T253764]
* Cuối tuần này, người dùng sửa đổi một đề mục của trang bằng cách sử dụng trình soạn thảo trực quan trên thiết bị di động, sẽ nhìn thấy một nút mới có tên "Sửa đổi toàn bộ trang". Khi chạm vào nút đó, bạn sẽ có thể sửa đổi toàn bộ bài viết. Điều này sẽ giúp ích khi thay đổi bạn muốn thực hiện nằm ngoài đề mục mà bạn mở ban đầu. [https://phabricator.wikimedia.org/T387175][https://phabricator.wikimedia.org/T409112]
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đang mời các biên tập viên đánh giá xem chế độ tối có nên tiếp tục được coi là ở giai đoạn "thử nghiệm" (beta) trên wiki của họ hay không, dựa trên kinh nghiệm của họ về mức độ hoạt động tốt hay không của chế độ này trên máy tính và thiết bị di động. Nếu tính năng này được đánh giá là hoàn thiện rồi, thì các biên tập viên có thể cập nhật các thông báo giao diện trong <code dir=ltr>MediaWiki:skin-theme-description</code> và <code dir=ltr>MediaWiki:Vector-night-mode-beta-tag</code> để cho biết rằng chế độ tối đã sẵn sàng và không còn được coi là trong giai đoạn thử nghiệm nữa.
* [[mw:Wikimedia_Apps/Team/iOS/Activity_Tab|Tab Hoạt động]] được cải tiến mà hiển thị thông tin chuyên sâu về người dùng nay có sẵn cho tất cả người dùng ứng dụng Wikipedia trên (phiên bản 7.9.0 trở lên). Sau quá trình thử nghiệm A/B trước đây cho thấy tỷ lệ tạo tài khoản trong số những người dùng có quyền truy cập vào tính năng này cao hơn, tính năng này đã được triển khai cho 100% người dùng kèm vài cập nhật. Tab Hoạt động nay hiển thị các bài viết bạn đã sửa đổi trên dòng thời gian, cung cấp thông tin chi tiết về tác động của việc sửa đổi chẳng hạn như số lượng đóng góp và xu hướng xem bài viết, cùng những tùy chọn tùy chỉnh để cải thiện trải nghiệm dành cho người dùng trong ứng dụng.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho [[mw:Special:MyLanguage/Extension:DiscussionTools|Công cụ Thảo luận (DiscussionTools)]] không thể hoạt động trên thiết bị di động, từ đó khôi phục đầy đủ tất cả chức năng. [https://phabricator.wikimedia.org/T415303]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi từ nhiều wiki trên cùng một trang. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] giúp thực hiện được điều này tiếp tục được cải tiến. Cải tiến mới nhất là việc bổ sung [[mw:Extension:GlobalWatchlist#hook|hook mới]], <code dir=ltr>ext.globalwatchlist.rebuild</code>, được kích hoạt sau mỗi lần xây dựng lại danh sách theo dõi. Điều này cho phép bạn chạy các tiện ích và đoạn mã người dùng cho trang Đặc biệt. [https://phabricator.wikimedia.org/T275159]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.17|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/09|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W09"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:03, ngày 23 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30119102 -->
== Bản tin Kỹ thuật: Tuần 10-2026 ==
<section begin="technews-2026-W10"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/10|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments|Chế độ Sinh nhật]] Wikipedia 25 nay đã có mặt trên các trang Wikipedia tiếng Betawi, tiếng Breton, tiếng Trung, tiếng Séc, tiếng Hà Lan, tiếng Anh, tiếng Pháp, tiếng Gorontalo, tiếng Indonesia, tiếng Ý, tiếng Luxembourg, tiếng Madura, tiếng Sicilia, tiếng Tây Ban Nha, tiếng Thái và tiếng Việt! Tính năng chiến dịch hữu hạn này kỷ niệm 25 năm thành lập Wikipedia cùng linh vật cho ngày sinh nhật, Quả cầu Nhỏ (Baby Globe). Khi được bật, Quả cầu Nhỏ được hiển thị trên [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments/article configuration|~2,500 bài viết]], chờ người đọc khám phá. Cộng đồng có thể chọn bật chế độ Sinh nhật bằng cách đạt đồng thuận từ cộng đồng của mình và yêu cầu một bảo quản viên bật tính năng đó cũng như tùy chỉnh nó thông qua [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments#Community Configuration Demo|cấu hình cộng đồng]] trên wiki cục bộ.
'''Cập nhật cho biên tập viên'''
* [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Tham chiếu phụ (sub-referencing)]], một tính năng mới để tái sử dụng nguồn tham khảo với những chi tiết khác đã được triển khai tới Wikipedia tiếng Thụy Điển, Wikipedia tiếng Ba Lan và [[:phab:T418209|một vài trang wiki khác]]. Bạn có thể [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#test|thử tính năng này]] trên những dự án đó hoặc trên testwiki và [https://en.wikipedia.beta.wmcloud.org/wiki/Sub-referencing betawiki]. Kinh nghiệm từ wiki thí điểm đầu tiên Wikipedia tiếng Đức đã được [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing/Learnings|công bố trong báo cáo]]. Hãy liên hệ với nhóm Wikimedia Deutschland nếu bạn [[:m:Talk:WMDE Technical Wishes/Sub-referencing#Pilot wikis|quan tâm đến việc trở thành một wiki thí điểm]].
* [[mw:Special:MyLanguage/Help:Edit check#Paste check|Kiểm tra Chép dán]] (Paste Check) sẽ có mặt trên mọi trang Wikipedia trong tuần này. Tính năng này nhắc những người mới dán các đoạn văn bản mà họ không chắc viết vào Trình Soạn thảo Trực quan cân nhắc xem làm như thế có nguy cơ vi phạm bản quyền hay không. Kiểm tra Chép dán [[mw:Special:MyLanguage/Edit check/Tags|gắn thẻ]] tất cả sửa đổi mà nó hiển thị để có thể xem xét tiếp. Các bảo quản viên cục bộ có thể thiết lập cấu hình cho các khía cạnh khác nhau của tính năng này thông qua [[{{#special:EditChecks}}]]. [[mw:Special:MyLanguage/Edit check/Paste Check#A/B Experiment|Nghiên cứu]] trên 22 wiki cho thấy Kiểm tra Chép dán giúp giảm 18% số lượng sửa đổi bị lùi lại wikis found that so với nhóm đối chứng. Các biên dịch viên có thể [https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-visualeditor-ve-mw-editcheck&filter=&optional=1&action=translate giúp biên dịch] tính năng này cùng những tính năng có liên quan.
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] sẽ chuẩn hóa menu người dùng ở góc trên bên phải cho tất cả người dùng di động nhằm giúp nó gần giống trải nghiệm trên máy tính hơn. Hiện tại menu người dùng này chỉ hiển thị cho những người đã bật Chế độ Điều khiển Di động Nâng cao (AMC). Thay đổi duy nhất là một vài nút trước đây ở menu bên trái sẽ chuyển sang góc trên bên phải cho người dùng không bật chế độ AMC. Thay đổi này dự kiến được triển khai vào ngày 9 tháng 3 và nhằm mục đích cải thiện giao diện người dùng. [https://phabricator.wikimedia.org/T413912]
* Bắt đầu từ tuần ngày 2 tháng 3, các email được gửi khi thêm, xóa hoặc sửa địa chỉ email của tài khoản sẽ chuyển sang định dạng email HTML đẹp mắt và rõ ràng hơn nhiều so với định dạng email văn bản thuần túy trước đây. [https://phabricator.wikimedia.org/T410807]
* Thông báo hiện chỉ giới hạn lưu 2.000 mục lịch sử cho mỗi người dùng, điều này kéo dài trở về năm 2013 khi tính năng này mới được phát hành. Giờ nó sẽ thay đổi thành việc lưu các Thông báo trong 5 năm trở lại đây, nhưng mở rộng lên tối đa 10.000 mục. Điều này sẽ giúp bảo vệ cơ sở hạ tầng và giúp ngăn việc những thông báo xuất hiện gần đây hơn biến mất quá sớm. [https://phabricator.wikimedia.org/T383948]
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi của bạn từ nhiều wiki khác nhau trên cùng một trang tiếp tục được cải tiến. Lần cập nhật gần đây nhất cải thiện trải nghiệm sử dụng nhãn. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] nay cho phép kích hoạt [[mw:Special:MyLanguage/Manual:Language#Fallback languages|hệ thống ngôn ngữ dự phòng]] cho các khoản mục Wikidata không có nhãn bằng ngôn ngữ được xem, đồng thời hiển thị những nhãn đó trong ngôn ngữ Wikidata yêu thích của người dùng nếu không cung cấp tham số URL <code dir=ltr>uselang=</code>. [https://phabricator.wikimedia.org/T373686][https://phabricator.wikimedia.org/T416111]
* Nhóm Wikipedia dành cho Android đã bắt đầu cuộc thử nghiệm beta cho tính năng [[mw:Special:MyLanguage/Readers/Information Retrieval/Phase 1|tìm kiếm kết hợp]] (hybrid search) trên Wikipedia tiếng Hy Lạp. Khả năng tìm kiếm kết hợp có thể xử lý cả truy vấn ngữ nghĩa và từ khóa giúp người đọc dễ dàng tìm kiếm những gì họ muốn tìm kiếm ngay trên Wikipedia hơn.
* Vì lý do bảo mật, thành viên của một vài nhóm người dùng nhất định [[m:Special:MyLanguage/Mandatory two-factor authentication for users with some extended rights|bắt buộc phải bật tính năng xác thực hai yếu tố]] (2FA). Hiện tại, 2FA bắt buộc phải được bật để sử dụng nhóm người dùng, nhưng không cần phải là để trở thành thành viên nhóm đó. Do mô hình này vẫn còn một vài lỗ hổng, tình hình này sẽ [[phab:T418580|dần dần thay đổi vào tháng 3]]. Các thành viên thuộc những nhóm người dùng đó sẽ không thể tắt phương thức 2FA cuối cùng có trên tài khoản của họ, và sẽ không thể thêm người dùng không dùng 2FA vào những nhóm này. Người dùng vẫn sẽ có thể thêm phương thức xác thực mới hoặc loại bỏ chúng, miễn là còn ít nhất một phương thức được bật. Trong khoảng nửa sau của tháng 3, những người dùng mà không có 2FA sẽ bị loại bỏ khỏi những nhóm này. Điều này áp dụng cho: Bảo quản viên Thông báo Trung ương, kiểm định viên, bảo quản viên giao diện, giám sát viên, nhân viên Wikidata, nhân viên Wikifunctions, bộ phận CNTT của Văn phòng WMF và bộ phận Tin cậy & An toàn của and WMF. Sẽ không có gì thay đổi với những người dùng khác. Xem tác vụ được liên kết để biết khung thời gian triển khai. [https://phabricator.wikimedia.org/T418580]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề ngăn người dùng tạo một phiên bản trong [https://www.wikibase.cloud/ Wikibase.cloud] hiện đã được giải quyết. [https://phabricator.wikimedia.org/T416807]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Để giúp đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng cơ sở hạ tầng một cách hợp lý]], trong tháng tới Quỹ Wikimedia sẽ triển khai giới hạn truy cập API toàn cục trên tất cả các API của chúng tôi. Vào đầu tháng 3, các giới hạn nghiêm ngặt hơn sẽ được áp dụng cho các yêu cầu không xác định từ bên ngoài Toolforge/WMCS và các yêu cầu API được thực hiện từ các trình duyệt web. Vào tháng 4, những giới hạn cao hơn sẽ được áp dụng cho lưu lượng truy cập được xác định. Những giới hạn này được cố ý đặt ở mức cao nhất có thể nhằm giảm thiểu tác động đến cộng đồng. Các bot chạy trong Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào sẽ không bị ảnh hưởng vào lúc này. Tuy vậy, mọi nhà phát triển được khuyến cáo làm theo những lời khuyên thực tiễn được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn truy cập]].
* Điểm cuối Truy vấn Dữ liệu được Liên kết (LDF) của Dịch vụ Truy vấn Wikidata sẽ ngừng hoạt động vào tháng 2. Điểm cuối này phục vụ lưu lượng truy cập hạn chế, lưu lượng này đã được chuyển đổi thành công sang các phương thức truy cập dữ liệu khác phù hợp hơn để hỗ trợ các trường hợp sử dụng (use case) hiện có. Phần cứng được sử dụng để hỗ trợ điểm cuối LDF sẽ được phân bổ lại để hỗ trợ những nỗ lực chuyển đổi hệ thống backend đang diễn ra. [https://phabricator.wikimedia.org/T415696]
* Trình phân tích cú pháp Parsoid mới [[mw:Special:MyLanguage/Parsoid/Parser Unification/Updates|tiếp tục được triển khai đến nhiều wiki hơn]], nhằm cải thiện tính bền vững của nền tảng và giúp việc giới thiệu các tính năng đọc và sửa đổi mới trở nên dễ dàng hơn. Parsoid nay là trình phân tích cú pháp mặc định trên 488 trang wiki của WMF (268 trang Wikipedia), hiện chiếm hơn 10% tổng số lượt xem trang Wikipedia.
* Quy trình và tiêu chí để [[Special:MyLanguage/Wikimedia Enterprise#Access|yêu cầu quyền truy cập đặc biệt]] vào nguồn cấp dữ liệu khối lượng lớn của API ''Wikimedia Enterprise'' (miễn phí cho các trường hợp sử dụng phù hợp với nhiệm vụ), [[m:Talk:Wikimedia Enterprise#Exceptional access criteria|hiện đã được công bố]]. Điều này nhằm cung cấp tài liệu đầy đủ và rõ ràng hơn cho người dùng.
* [https://techblog.wikimedia.org/ Blog Kỹ thuật], một blog dành riêng cho cộng đồng kỹ thuật Wikimedia [https://techblog.wikimedia.org/2026/02/24/a-tech-blog-diff/ sẽ được chuyển] sang [[diffblog:|Diff]], blog tin tức và sự kiện cộng đồng. Việc chuyển đổi dự kiến sẽ được hoàn thành vào tháng 4 năm 2026, sau thời điểm này các bài viết mới sẽ được chấp nhận xuất bản. Người đọc sẽ có thể truy cập các bài đăng – cả bài cũ và mới – trên trang đích này tại https://diff.wikimedia.org/techblog.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.18|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/10|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W10"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:51, ngày 2 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30137798 -->
== Bản tin Kỹ thuật: Tuần 11-2026 ==
<section begin="technews-2026-W11"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/11|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[m:Special:MyLanguage/Tech/Server switch|Tất cả các wiki sẽ chuyển sang chế độ chỉ đọc trong vòng vài phút]] vào thứ 4, ngày 25 tháng 3 năm 2026 lúc [https://zonestamp.toolforge.org/1774450800 15:00 UTC]. Điều này là nhằm phục vụ cho việc thử nghiệm chuyển đổi máy chủ cơ sở dữ liệu dự phòng, [[wikitech:Deployments/Yearly calendar|diễn ra hai lần trong một năm]]. Trong quá trình chuyển đổi này, toàn bộ lưu lượng trên các trang web của Wikimedia được chuyển từ trung tâm dữ liệu chính sang trung tâm dữ liệu dự phòng nhằm kiểm tra tính khả dụng và ngăn ngừa việc gián đoạn dịch vụ ngay cả trong những trường hợp khẩn cấp.
* Tuần trước, tất cả các wiki đều bị giới hạn ở chế độ chỉ đọc trong vòng 2 giờ đồng hồ, cùng với đó các đoạn mã người dùng và tiện ích cũng không khả dụng trong thời gian được kéo dài. Điều này là do một sự cố bảo mật mà đã được khắc phục sau đó. Chúng tôi đang tiếp tục cố gắng để ngăn điều này tái diễn. Để cập nhật thông tin vui lòng xem [[m:Steward's noticeboard#Statement on Meta about today's user script security incident|bài đăng trên bảng tin của Nhân viên]] ([[m:Special:MyLanguage/Wikimedia Foundation/Product and Technology/Product Safety and Integrity/March 2026 User Script Incident|bản dịch]]).
'''Cập nhật cho biên tập viên'''
* Người dùng đang gặp phải nhiều lệnh cấm trên thiết bị di động nay sẽ thấy lý do cấm cho từng lần cấm riêng thay vì một thông báo chung chung. Điều này giúp họ hiểu tại sao mình bị cấm và cần thực hiện những bước nào để giải quyết vấn đề. Ví dụ, người dùng bị ảnh hưởng do sử dụng VPN phổ biến (chẳng hạn như [[Special:MyLanguage/Apple iCloud Private Relay|iCloud Private Relay]]) sẽ nhận được hướng dẫn rõ ràng hơn những việc cần làm để bắt đầu lại việc sửa đổi. [https://phabricator.wikimedia.org/T357118]
* Cuối tuần này, [[mw:Special:MyLanguage/VisualEditor/Suggestion Mode|Chế độ Đề xuất]] sẽ được cung cấp dưới dạng tính năng beta trong trình soạn thảo trực quan trên tất cả các trang Wikipedia. Tính năng này chủ động đề xuất nhiều loại hành động mà người dùng có thể cân nhắc thực hiện để cải thiện các bài viết trên Wikipedia, đồng thời tìm hiểu về các hướng dẫn có liên quan. Tính năng này có thể được cấu hình cục bộ và cũng có thể được mở rộng cục bộ với bằng việc tùy chỉnh Đề xuất. Cài đặt hiện tại có thể xem được tại trang [[Special:EditChecks]] và có [[mw:Special:MyLanguage/Help:Suggestion mode#For administrators %E2%80%93 local customization|hướng dẫn cách bảo quản viên có thể tùy chỉnh]] các liên kết để chỉ tới những trang hướng dẫn cục bộ. Tính năng này được kết nối với tính năng [[mw:Special:MyLanguage/Help:Edit check|Kiểm tra sửa đổi]], một tính năng đưa ra đề xuất cải thiện trong khi người nào đó viết nội dung mới. Trong tương lai, nhóm Sửa đổi dự kiến đánh giá tác động của tính năng này đối với người dùng mới thông qua một thử nghiệm có kiểm soát. [https://phabricator.wikimedia.org/T404600]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố liên quan đến việc con trỏ bị lệch khi sử dụng tính năng tô sáng cú pháp của CodeMirror, một tính năng giúp mã wiki (wikitext) và mã code dễ đọc hơn, nay đã được giải quyết. Vấn đề này đặc biệt ảnh hưởng đến những người dùng đã định nghĩa quy tắc phông chữ trong stylesheet tùy chỉnh khi tạo chủ đề mới bằng Công cụ Thảo luận. [https://phabricator.wikimedia.org/T418793]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Cập nhật về giới hạn truy vấn API: Để giúp đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng hợp lý cơ sở hạ tầng]], giới hạn truy vấn API toàn cục sẽ được áp dụng trong tuần này cho các yêu cầu không có User-Agent hợp lệ bắt nguồn từ bên ngoài Toolforge/WMCS cùng các yêu cầu chưa được xác thực được thực hiện từ trình duyệt web. Trong tháng 4 tới sẽ thiết lập giới hạn cao hơn cho lưu lượng truy cập được xác định. Các bot chạy trên Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào hiện sẽ không bị ảnh hưởng vì điều này. Tuy vậy, mọi nhà phát triển được khuyến cáo nên tuân theo những hướng dẫn thực tiễn tốt nhất được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn truy vấn]].
* API GraphQL mới đã được phát hành. API này được phát triển như một giải pháp thay thế linh hoạt cho một số tính năng nhất định của Dịch vụ Truy vấn Wikidata (WDQS), nhằm cải thiện trải nghiệm và khả năng thích ứng của nhà phát triển, đồng thời giúp truy cập dữ liệu hiệu quả. Hãy dùng thử và [[d:Wikidata:Wikibase GraphQL#Feedback and development|gửi phản hồi]] của mình. Bạn cũng có thể [https://greatquestion.co/wikimediadeutschland/GraphQLAPI/apply đăng ký tham gia các bài kiểm tra về khả năng sẵn dùng].
* Vào tháng 2 [[m:Special:MyLanguage/Product and Technology Advisory Council/Unsupported Tools Working Group|Nhóm Làm việc cho Công cụ Không được Hỗ trợ PTAC]] đã tiếp tục cải tiến [[commons:Special:MyLanguage/Commons:Video2commons#|Video2Commons]], trong đó sửa các lỗi liên quan đến lỗi xác thực, xử lý tệp lớn, khả năng hiển thị hàng đợi tác vụ và làm rõ hơn hành vi tải lên. Hiện một số lĩnh vực vẫn đang được tiến hành thực hiện, trong đó có những thay đổi liên quan đến việc tải lên từ phía máy chủ đã lỗi thời. Hãy đọc [[m:Special:MyLanguage/Product and Technology Advisory Council/Unsupported Tools Working Group#February 2026|phần cập nhật này]] để tìm hiểu thêm.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.19|MediaWiki]]
'''Chuyên sâu'''
* Nhóm Hướng dẫn Bài viết mời các biên tập viên Wikipedia có kinh nghiệm từ một số [[mw:Special:MyLanguage/Article guidance/Pilot wikis and collaborators#Collaborators|wiki thí điểm]] được chọn cùng những người đóng góp có quan tâm từ các trang Wikipedia khác điền vào bảng câu hỏi này, có sẵn bằng [https://docs.google.com/forms/d/e/1FAIpQLSfmLeVWnxmsCbPoI_UF2jyRcn73WRGWCVPHzerXb4Cz97X_Ag/viewform tiếng Anh], [https://docs.google.com/forms/d/e/1FAIpQLSd6rzr4XXQw8r4024fE3geTPFe13M_6w7Mitj-YJi0sOlWTAw/viewform?usp=header tiếng Ả Rập], [https://docs.google.com/forms/d/e/1FAIpQLSdok3-RfB18lcugYTUMGkpwmqG_8p760Wv4dCXitOXOszjUDw/viewform?usp=header tiếng Bengali], [https://docs.google.com/forms/d/e/1FAIpQLSfjTfYp4jEo0akA4B1e-Nfg3QZPCudUjhJzHzzDi6AHyAaMGA/viewform?usp=header tiếng Nhật], [https://docs.google.com/forms/d/e/1FAIpQLScteVoI29Aue4xc72dekk-6RYtvmMgQxzMI900UOawrFrSTWg/viewform?usp=header tiếng Bồ Đào Nha], [https://docs.google.com/forms/d/e/1FAIpQLSetdxnYwL3ub2vqA7awCg5hJZPMIYcDPaiTe12rY9h0GYnVlw/viewform?usp=header tiếng Ba Tư] và [https://docs.google.com/forms/d/e/1FAIpQLScNvfJF-Ot-4pzA4qAN771_0QDJ4Li19YcUsaTgSKW8Nc7U_Q/viewform?usp=header tiếng Thổ Nhĩ Kỳ]. Phản hồi của bạn sẽ giúp nhóm tùy chỉnh hướng dẫn cho các biên tập viên ít kinh nghiệm hơn và giúp họ tìm hiểu các chính sách và thực tiễn của cộng đồng khi tạo bài viết. Tìm hiểu thêm [[mw:Special:MyLanguage/Article guidance|trên trang dự án]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/11|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W11"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:53, ngày 9 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30213008 -->
== Bản tin Kỹ thuật: Tuần 12-2026 ==
<section begin="technews-2026-W12"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/12|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]], còn được biết đến với tên [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror 6]], được sử dụng để tô sáng cú pháp mã wiki kể từ tháng 11 năm 2024. Tính năng này sẽ chính thức kết thúc giai đoạn thử nghiệm beta vào tháng 5 năm 2026 nhằm đưa những cải tiến và [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Features|tính năng]] mới cho tất cả biên tập viên sử dụng trình tô sáng cú pháp tiêu chuẩn. Nếu bạn có bất kỳ câu hỏi hoặc thắc mắc nào về việc kết thúc giai đoạn thử nghiệm beta cho tính năng này, [[mw:Special:MyLanguage/Help talk:Extension:CodeMirror|vui lòng chia sẻ với chúng tôi]]. [https://phabricator.wikimedia.org/T259059]
* Một số thay đổi đối với quyền nhóm người dùng cục bộ được tiếp viên trên Meta-Wiki thực hiện và nhật trình về những thay đổi này chỉ được ghi lại trên đó. Giờ đây, thay đổi về quyền liên wiki sẽ được ghi lại trên cả Meta-Wiki và wiki của người dùng mục tiêu để giúp dễ dàng truy cập vào toàn bộ bản ghi thay đổi quyền người dùng trên wiki cục bộ hơn. Những mục nhật trình trước đây về những thay đổi này sẽ được cập nhật trong những tuần tiếp theo. [https://phabricator.wikimedia.org/T6055]
* Trên các wiki sử dụng [[m:Special:MyLanguage/Flagged Revisions|Thay đổi Được gắn cờ (Flagged Revisions)]], số lượng thay đổi đang chờ được hiển thị trên [[{{#Special:PendingChanges}}]] trước đây tính cả những trang mà không còn ở trong trạng thái đang chờ xem xét, do chúng đã bị xóa khỏi hệ thống mà không được xem xét lại, v.d. do bị xóa, được di chuyển sang không gian tên khác, hoặc do thay đổi cấu hình wiki. Bộ đếm giờ sẽ được hiển thị chính xác. Trên một số wiki số lượng thay đổi được hiển thị sẽ nhỏ hơn nhiều so với trước đây. Bản thân danh sách các trang sẽ không có thay đổi gì. [https://phabricator.wikimedia.org/T413016]
* Ngôn ngữ soạn thảo của Wikifunctions đã được viết lại, tạo ra một phiên bản mới của ngôn ngữ này. Thay đổi này nhằm mục đích tăng cường tính ổn định của dịch vụ bằng cách giảm mức tiêu thụ bộ nhớ của trình điều phối. Việc viết lại này cũng giúp cho phép giảm đáng kể độ trễ, đơn giản hóa mã nguồn và tạo ra các lớp trừu tượng tốt hơn, nhằm mở ra cơ hội bổ sung thêm các tính năng khác trong tương lai. Đọc thêm về [[f:Special:MyLanguage/Wikifunctions:Status updates/2026-03-11|các thay đổi này]].
* Người dùng nay có thể sắp xếp kết quả tìm kiếm theo thứ tự bảng chữ cái dựa trên tiêu đề trang. Lần cập nhật này cung cấp thêm một tùy chọn giúp cho việc tìm kiếm trang trở nên dễ dàng và nhanh chóng hơn. Trước đây, kết quả có thể được sắp xếp theo Ngày sửa đổi, Ngày tạo, hoặc Mức độ liên quan. Để sử dụng tùy chọn mới này, hãy mở 'Tìm kiếm nâng cao' trên trang kết quả tìm kiếm và chọn 'Thứ tự bảng chữ cái' trong mục 'Thứ tự sắp xếp'. [https://phabricator.wikimedia.org/T403775]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho Trình tải lên tập tin (UploadWizard) trên Wikimedia Commons không thể nhập tập tin từ Flickr nay đã được giải quyết. [https://phabricator.wikimedia.org/T419263]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Một trang đặc biệt mới, [[{{#special:LintTemplateErrors}}]], đã được tạo ra để liệt kê các trang nhúng được đánh dấu là chứa lỗi lint để giúp người dùng dễ dàng phát hiện chúng hơn. Danh sách được sắp xếp theo số lượng các trang được nhúng mà có lỗi. Ví dụ: [[{{#special:LintTemplateErrors}}/night-mode-unaware-background-color]]. [https://phabricator.wikimedia.org/T170874]
* Người dùng tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]] hiện đang sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] để tô sáng cú pháp khi sửa đổi các trang nội dung JavaScript, CSS, JSON, Vue và Lua, trong một khoảng thời gian. Cùng với việc kết thúc thử nghiệm beta cho CodeMirror 6, kế hoạch là thay thế CodeEditor để trở thành trình soạn thảo tiêu chuẩn cho những kiểu nội dung này vào tháng 5 năm 2026. [[mw:Special:MyLanguage/Help talk:Extension:CodeMirror|Mọi phản hồi hoặc ý kiến đóng góp đều được hoan nghênh]]. [https://phabricator.wikimedia.org/T419332]
* Các mô đun JavaScript cho [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] JavaScript sẽ sớm được nâng cấp lên CodeMirror 6. Trước thời điểm nâng cấp này, việc tải các mô đun <code dir=ltr>ext.CodeMirror</code> hoặc <code dir=ltr>ext.CodeMirror.lib</code> từ các tiện ích và đoạn mã người dùng đã bị loại bỏ vào tháng 7 năm 2025. Việc sử dụng hook <code dir=ltr>ext.CodeMirror.switch</code> cũng đã bị loại bỏ vào tháng 3 năm 2025. Những người đóng góp nay có thể làm cho các đoạn mã hoặc tiện ích của mình tương thích với CodeMirror 6. Xem [[mw:Special:MyLanguage/Extension:CodeMirror#Gadgets and user scripts|hướng dẫn chuyển đổi]] để biết thêm thông tin. [https://phabricator.wikimedia.org/T373720]
* Nhóm Giao diện MediaWiki đang mở rộng phạm vi định nghĩa mô đun API REST để bao gồm cả [[mw:Special:MyLanguage/API:REST API/Extensions|các API mở rộng]]. Mô đun API REST là nhóm các điểm cuối có liên quan mà có thể được quản lý và đánh phiên bản độc lập. Hiện đã có các mô đun cho API [https://phabricator.wikimedia.org/T414470 GrowthExperiments] và [https://phabricator.wikimedia.org/T419053 Wikifunctions]. Khi chúng tôi chuyển đổi các API mở rộng sang cấu trúc này, tài liệu sẽ được chuyển ra khỏi phần đặc tả chính cho OpenAPI của MediaWiki cùng chế độ xem REST Sandbox, và thay vào đó sẽ có thể truy cập được thông qua tùy chọn dành riêng cho mô đun trong menu thả xuống trên [https://test.wikipedia.org/wiki/Special:RestSandbox REST Sandbox] (nghĩa là, [[{{#Special:RestSandbox}}]], có sẵn trên tất cả các dự án wiki).
* Phần mở rộng [[mw:Special:MyLanguage/Extension:Scribunto|Scribunto]] cung cấp nhiều thông tin khác nhau về wiki nơi mô đun đang được sử dụng thông qua thư viện [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual|mw.site]]. Kể từ tuần trước, thư viện này cũng cung cấp một [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#mw.site.wikiId|cách]] truy cập [[mw:Special:MyLanguage/Manual:Wiki ID|ID của wiki]] có thể được sử dụng để hỗ trợ bảo trì mô đun liên wiki. [https://phabricator.wikimedia.org/T146616]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.20|MediaWiki]]
'''Chuyên sâu'''
* [[m:Special:MyLanguage/Coolest Tool Award|Giải thưởng Công cụ Tuyệt vời nhất năm 2026]] nhằm tôn vinh những công cụ xuất sắc do cộng đồng tạo ra, nay đã mở nhận đề cử! Hãy đề cử công cụ yêu thích của bạn bằng cách sử dụng biểu mẫu [https://wikimediafoundation.limesurvey.net/435684?lang=en khảo sát đề cử] trước ngày 23 tháng 3 năm 2026. Để biết thêm thông tin về quyền riêng tư và xử lý dữ liệu, vui lòng xem [[foundation:Special:MyLanguage/Legal:Coolest_Tool_Award_2026_Survey_Privacy_Statement|tuyên bố về quyền riêng tư của khảo sát]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/12|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W12"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:35, ngày 16 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30260505 -->
== Bản tin Kỹ thuật: Tuần 13-2026 ==
<section begin="technews-2026-W13"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/13|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Người dùng các trang Wikimedia nay có thể đăng nhập mà không cần mật khẩu bằng cách sử dụng khóa truy cập (passkey). Đây là một phương thức bảo mật sử dụng vân tay, nhận diện khuôn mặt hoặc mã PIN. Với thay đổi này, tất cả người dùng chọn đăng nhập không cần mật khẩu sẽ có thể đăng nhập vào tài khoản của mình một cách dễ dàng, nhanh chóng và an toàn hơn trên mọi thiết bị. Tùy chọn đăng nhập mới bằng khóa truy cập hiện hiển thị dưới dạng gợi ý tự động điền trong trường tên người dùng. [[phab:T417120|Nút "Đăng nhập bằng khóa truy cập"]] bổ sung sẽ sớm được cung cấp cho những người dùng đã bật tùy chọn sử dụng khóa truy cập. Lần cập nhật này sẽ cải thiện bảo mật cũng như trải nghiệm người dùng. [[c:File:Passwordless_login_screencast.webm|Bản ghi lại màn hình]] này sẽ minh họa từng bước quy trình đăng nhập không cần mật khẩu.
* [[m:Special:MyLanguage/Tech/Server switch|Tất cả các wiki sẽ chuyển sang chế độ chỉ đọc trong vòng vài phút]] vào thứ 4, ngày 25 tháng 3 năm 2026 lúc [https://zonestamp.toolforge.org/1774450800 15:00 UTC]. Điều này là nhằm phục vụ cho việc thử nghiệm chuyển đổi máy chủ cơ sở dữ liệu dự phòng, [[wikitech:Deployments/Yearly calendar|diễn ra hai lần trong một năm]]. Trong quá trình chuyển đổi này, toàn bộ lưu lượng trên các trang web của Wikimedia được chuyển từ trung tâm dữ liệu chính sang trung tâm dữ liệu dự phòng nhằm kiểm tra tính khả dụng và ngăn ngừa việc gián đoạn dịch vụ ngay cả trong những trường hợp khẩn cấp.
'''Cập nhật cho biên tập viên'''
* Người dùng các trang web của Wikimedia nay có thể xuất các thông báo cách đây hơn 5 năm của mình bằng cách sử dụng [[toolforge:echo-chamber|công cụ Toolforge mới]]. Điều này sẽ đảm bảo rằng người dùng có thể giữ lại được những thông báo quan trọng và tránh bị mất chúng do việc thay đổi theo kế hoạch nhằm xóa đi các thông báo cũ hơn 5 năm, như đã thông báo trước đó. [https://phabricator.wikimedia.org/T383948]
* Các biên tập viên Wikipedia tiếng Indonesia, tiếng Thái, tiếng Thổ Nhĩ Kỳ, và tiếng Anh Đơn giản nay có thể truy cập vào Đặc biệt:Bảng điều khiển cá nhân. Đây là [[mw:Special:MyLanguage/Moderator Tools/Dashboard|phiên bản trải nghiệm sớm]] giúp các biên tập viên mới làm quen với quy trình tuần tra, giúp họ dễ dàng chuyển từ việc sửa đổi sang tham gia vào những công việc kiểm duyệt nâng cao hơn trên dự án của mình. [https://phabricator.wikimedia.org/T402647]
* Trang [[vi:Special:Block|Đặc_biệt:Cấm]] nay có hai thay đổi nhỏ về mặt giao diện. Bảo quản viên nay có thể dễ dàng thực hiện lệnh cấm vô hạn thông qua nút chọn (nút radio) chuyên dụng trong mục thời hạn. Ngoài ra, việc chọn thời hạn là vô hạn sẽ cung cấp một bộ lý do phổ biến khác để lựa chọn, nó có thể được thay đổi tại: [[MediaWiki:Ipbreason-indef-dropdown]]. [https://phabricator.wikimedia.org/T401823]
* Biên tập viên sử dụng thiết bị di động [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#Logged-out|tại một số wiki]] nay có thể nhìn thấy cải tiến về cảnh báo sửa đổi khi chưa đăng nhập, điều này là nhờ cập nhật gần đây từ nhóm Phát triển. Những thay đổi được phát hành vào tuần trước này là một phần trong những nỗ lực và thử nghiệm đang được thực hiện nhằm nâng cao [[mw:Special:MyLanguage/Contributors/Account Creation Experiments|trải nghiệm trong việc tạo tài khoản trên thiết bị di động]] và từ đó giúp tăng cường sự tham gia của họ. [https://phabricator.wikimedia.org/T408484]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:36}} {{PLURAL:36|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến người dùng web trên thiết bị di động không thể nhìn thấy thông tin cấm khi có nhiều lệnh cấm đồng thời được áp dụng đã được giải quyết. Họ giờ có thể xem được tin nhắn cho tất cả các lệnh cấm hiện đang được áp dụng cho họ khi họ truy cập Wikipedia.
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Những image (ảnh) được dựng bằng Toolforge sẽ sớm được nâng cấp lên phiên bản buildpack mới, mang đến việc hỗ trợ các phiên bản ngôn ngữ mới hơn cùng những cải tiến và sửa lỗi khác tại thượng nguồn. Nếu bạn sử dụng Dịch vụ Dựng của Toolforge, hãy xem lại [https://lists.wikimedia.org/hyperkitty/list/cloud-announce@lists.wikimedia.org/thread/EMYTA32EV2V5SQ2JIEOD2CL66YFIZEKV/ email cloud-announce] gần đây và cập nhật cấu hình bản dựng của bạn nếu cần để đảm bảo các công cụ của bạn tương thích với phiên bản mới này. [https://wikitech.wikimedia.org/w/index.php?title=Help:Toolforge/Building_container_images&oldid=2392097#Buildpack_environment_upgrade_process][https://phabricator.wikimedia.org/T380127]
* Wiki tài liệu [https://api.wikimedia.org/wiki/Main_Page Cổng API] sẽ ngừng hoạt động vào tháng 6 năm 2026. Các khóa API được tạo trên Cổng API sẽ tiếp tục hoạt động bình thường. Các điểm cuối của api.wikimedia.org sẽ dần bị loại bỏ bắt đầu từ tháng 7 năm 2026. Tài liệu trên Cổng API đang được chuyển sang [[mw:Wikimedia APIs|mediawiki.org]]. Tìm hiểu thêm trên [[wikitech:API Portal/Deprecation|trang dự án]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.21|MediaWiki]]
'''Chuyên sâu'''
* [[m:Special:MyLanguage/WMDE Technical Wishes|Nhóm Mong muốn – Kỹ thuật của WMDE]] đang xem xét cải tiến [[m:WMDE Technical Wishes/References/VisualEditor automatic reference names|tên chú thích được tạo tự động trong Trình Soạn thảo Trực quan (VisualEditor)]]. Vui lòng xem qua [[m:WMDE Technical Wishes/References/VisualEditor automatic reference names#Proposed solutions|những giải pháp được đề xuất]] và tham gia vào [[m:Talk:WMDE Technical Wishes/References/VisualEditor automatic reference names#Request for comment|thảo luận này]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/13|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W13"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:51, ngày 23 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30268305 -->
== Bản tin Kỹ thuật: Tuần 14-2026 ==
<section begin="technews-2026-W14"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/14|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Phiên bản Beta của [[abstract:|Abstract Wikipedia]] một dự án Wikimedia mới không phụ thuộc ngôn ngữ, đã được khởi động vào tuần trước. Dự án cho phép các cộng đồng xây dựng các bài viết Wikipedia bằng ngôn ngữ mẹ đẻ của họ, và các thành viên khác có thể dễ dàng truy cập các bài viết đó bằng ngôn ngữ của riêng họ. Wiki này hoạt động dựa trên chỉ dẫn từ Wikifunctions và cũng dựa trên nội dung có cấu trúc từ Wikidata. [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-03-26|Đọc thêm]].
'''Cập nhật cho biên tập viên'''
* Nhóm Phát triển đang tiến hành thử nghiệm A/B để đánh giá cho một thông điệp rõ ràng hơn, thân thiện hơn với người dùng nhằm khuyến khích việc tạo tài khoản trên wiki. Hiện tại, khi người dùng di động chưa đăng nhập bắt đầu sửa đổi, họ sẽ thấy một thông báo cảnh báo khó chịu, có thể khiến cho họ có cảm giác đột ngột và nản lòng. Điều này cũng làm cho việc sửa đổi bằng tài khoản tạm thời trở thành mặc định thay vì khuyến khích việc tạo tài khoản. Thử nghiệm đang được thực hiện trên mười trang Wikipedia, bao gồm tiếng Ả Rập, tiếng Pháp, tiếng Tây Ban Nha và tiếng Đức. [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#2. Improve logged-out warning message (T415160)|Đọc thêm]].
* Nhóm Ứng dụng Wikimedia đang mời mọi người đóng góp ý kiến về [[mw:Special:MyLanguage/Wikimedia Apps/Team/Future of Editing on the Mobile Apps|việc sửa đổi trên ứng dụng Wikipedia dành cho thiết bị di động nên hoạt động như thế nào]]. Thảo luận tập trung vào việc cải thiện cách người dùng truy cập công cụ sửa đổi khi họ nhấn vào nút "Sửa đổi". Đây là một phần trong nỗ lực rộng lớn hơn nhằm chuyển đổi những người đọc mà có hứng thú với việc sửa đổi sang một con đường thân thiện hơn với người dùng để có thể bắt đầu đóng góp.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:45}} {{PLURAL:45|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến việc lấy chú thích từ kho lưu trữ báo chí lớn [https://www.newspapers.com Newspapers.com] không còn hoạt động, do bị chặn trong các yêu cầu của [[mw:Special:MyLanguage/Citoid|Citoid]], nay đã được khắc phục. [https://phabricator.wikimedia.org/T419903]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.22|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/14|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W14"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:25, ngày 30 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30329462 -->
== Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) ==
Hello everyone,
This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>).
'''The Change:'''<br />
Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]].
We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''.
'''What You Need To Do:'''<br />
To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search.
'''Deadline:'''<br />
We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles.
Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[Thành viên:MediaWiki message delivery|MediaWiki message delivery]] ([[Thảo luận Thành viên:MediaWiki message delivery|thảo luận]]) 17:11, ngày 3 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:ZI Jony@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29941252 -->
== Bản tin Kỹ thuật: Tuần 15-2026 ==
<section begin="technews-2026-W15"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/15|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Help:Extension:CampaignEvents|Phần mở rộng CampaignEvents]] nay có thêm tính năng mới nhằm thiết lập mục tiêu nhóm, nhằm cho phép những người tổ chức thiết lập và theo dõi mục tiêu sự kiện chẳng hạn như số lượng bài viết được tạo và số lượng người tham gia đóng góp theo thời gian thực. Tương tự, những người tham gia có thể cùng nhau hướng tới các mục tiêu chung và chứng kiến tác động tập thể của họ khi sự kiện diễn ra. Tính năng này hiện đã có trên tất cả các wiki của Wikimedia. Tìm hiểu thêm trong [[mw:Special:MyLanguage/Help:Extension:CampaignEvents/Registration/Collaborative contributions#Goal setting|trang tài liệu này]].
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Mục Mong muốn cộng đồng]] Tính năng [[mw:Special:MyLanguage/Help:Watchlist labels|gán nhãn danh sách theo dõi]] mới (được công bố trong [[m:Special:MyLanguage/Tech/News/2026/07|Bản tin Kỹ thuật 2026-07]]) nay có sẵn thông qua Trình Soạn thảo Trực quan, trình soạn thảo mã nguồn, và biểu tượng 'sao theo dõi' (hoặc liên kết theo dõi, đối với các giao diện không có biểu tượng hình sao). Trước đây việc gán nhãn như vậy chỉ có thể thực hiện được thông qua [[Special:EditWatchlist|EditWatchlist]]. Ở cả ba nơi đó, đây đều sẽ là trường mới ngay sau sau trường thời điểm hết hạn theo dõi.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà trang thảo luận trên thiết bị di động dùng Parsoid không thể sử dụng được sau đề mục không có tiêu đề, nay đã được giải quyết. [https://phabricator.wikimedia.org/T419171]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Tính năng chú thích phụ]], một tính năng cho phép biên tập viên thêm thông tin chi tiết vào nguồn tham khảo hiện có mà không cần nhân bản nó, sẽ được triển khai dần dần tới [[phab:T414094|nhiều trang wiki hơn]] vào cuối năm nay. Các wiki sử dụng tiện ích [[mw:Special:MyLanguage/Reference Tooltips|Chú thích nổi]] được khuyến khích cập nhật phiên bản của mình (thường là tại [[m:MediaWiki:Gadget-ReferenceTooltips.js|MediaWiki:Gadget-ReferenceTooltips.js]] như được hiển thị tại [https://en.wikipedia.org/w/index.php?diff=1344408362 đây]) để đảm bảo khả năng tương thích. Các tiện ích khác liên quan đến nguồn tham khảo khác cũng có thể bị ảnh hưởng. [https://phabricator.wikimedia.org/T416304]
* Tất cả các phiên bản của Wikinews sẽ bị đóng và chuyển sang chế độ chỉ đọc vào ngày 4 tháng 5 năm 2026. Mọi nội dung vẫn sẽ có thể truy cập được, nhưng sẽ không thể thêm bất kỳ sửa đổi hoặc bài viết mới nào. Việc đóng này đã được Hội đồng Quản trị của Quỹ Wikimedia phê duyệt sau những cuộc thảo luận kéo dài. [[m:Wikimedia Foundation Board noticeboard#Board of Trustees Approves Closure of Wikinews|Đọc thêm]].
* [[:mw:Special:MyLanguage/API:Action API|API Tác vụ]] có một số kiểu định dạng đầu ra được yêu cầu. Một trong số chúng, <bdi lang="zxx" dir="ltr"><code><nowiki>format=php</nowiki></code></bdi>, sẽ sớm bị loại bỏ. Vui lòng đảm bảo rằng các tập lệnh hoặc bot của bạn sử dụng [[mw:Special:MyLanguage/API:Data formats#Output|kiểu định dạng JSON]]. Việc loại bỏ này sẽ chỉ ảnh hưởng đến một số lượng rất nhỏ các tập lệnh người dùng và bot. [https://phabricator.wikimedia.org/T118538]
* Trang [[Special:NamespaceInfo|Đặc biệt:NamespaceInfo]] nay có chứa phần viết tắt không gian tên. Ví dụ "WP" cho không gian tên "Project" ("Wikipedia") trên Wikipedia tiếng Đức. [https://phabricator.wikimedia.org/T381455]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.23|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/15|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W15"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:19, ngày 6 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30362761 -->
== Bản tin Kỹ thuật: Tuần 16-2026 ==
<section begin="technews-2026-W16"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/16|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Các biên tập viên có kinh nghiệm được mời tham gia [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Main_Page thử nghiệm] tính năng [[mw:Special:MyLanguage/Article guidance|Hướng dẫn bài viết]], được thiết kế để giúp các biên tập viên ít kinh nghiệm hơn tạo ra các bài viết Wikipedia có cấu trúc tốt và phù hợp với quy định. Hướng dẫn thử nghiệm [[mw:Special:MyLanguage/Article guidance/Test feature guide|có sẵn tại đây]]. Ngoài ra, sau khi xem xét [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Category:Pages_using_article_guidance bản tóm tắt này], vui lòng cung cấp phản hồi trên [[mw:Talk:Article guidance|trang thảo luận của dự án]]. Dựa trên ý kiến đóng góp của bạn, tính năng này sẽ được tinh chỉnh và chuyển giao cho các trang Wikipedia thí điểm để biên dịch và điều chỉnh cho thích hợp. Hãy xem qua [[c:File:Article Guidance workflow demo - April 2026.webm|video]] giải thích về tính năng này.
'''Cập nhật cho biên tập viên'''
* Trên hầu hết các trang wiki, tất cả thành viên tự xác nhận nay có thể sử dụng trang [[Special:ChangeContentModel|Đặc biệt:ChangeContentModel]] để [[mw:Special:MyLanguage/Help:ChangeContentModel|tạo trang mới với kiểu nội dung tùy chỉnh]], chẳng hạn như danh sách gửi thông báo rộng rãi, giúp cho định dạng trang tùy chỉnh trở nên dễ tiếp cận hơn. Kiểm tra [[Special:ListGroupRights|Đặc biệt:Quyền nhóm người dùng]] để biết trạng thái trên wiki của bạn. [https://phabricator.wikimedia.org/T248294]
* Nhóm Phát triển đã khởi động một [[mw:Special:MyLanguage/Contributors/Account_Creation_Experiments|thử nghiệm tạo tài khoản]] để đánh giá xem việc thêm nút tạo tài khoản vào phần đầu trang web trên thiết bị di động có làm tăng số lượng người đăng ký tài khoản mới và khuyến khích nhiều người dùng thiết bị di động đóng góp vào wiki hay không. Thử nghiệm hiện đang được thực hiện trên Wikipedia tiếng Hindi, tiếng Indonesia, tiếng Bengali, tiếng Thái và tiếng Do Thái, và nhắm mục tiêu vào 10% người dùng web trên di động chưa đăng nhập.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố có thể khiến Trình Soạn thảo Trực quan bị kẹt khi tải trên các thiết bị Windows đã tắt hiệu ứng hoạt ảnh, nay đã được giải quyết. [https://phabricator.wikimedia.org/T382856]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Kể từ cuối tuần này, {{int:group-abusefilter}} đã bật tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]] sẽ sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] làm trình soạn thảo tại [[Special:AbuseFilter|Đặc biệt:Bộ lọc sai phạm]]. Đây là một phần trong nỗ lực rộng lớn hơn nhằm mang lại trải nghiệm người dùng nhất quán hơn trên tất cả các trình soạn thảo. [https://phabricator.wikimedia.org/T399673][https://phabricator.wikimedia.org/T419332]
* Các công cụ và bot truy cập vào [[mw:Special:MyLanguage/Notifications/API|API Thông báo]] (<bdi lang="zxx" dir="ltr"><code><nowiki>action=query&meta=notifications</nowiki></code></bdi>) sẽ cần phải cập nhật quyền OAuth hoặc BotPassword của mình để bao gồm cả quyền truy cập vào các thông báo riêng tư. [https://phabricator.wikimedia.org/T421991]
* Do việc nâng cấp thư viện, việc liệt kê danh sách trên các trang thể loại có thể hiển thị không đúng theo thứ tự bắt đầu từ thứ Hai, ngày 20 tháng 4. Một kịch bản chuyển đổi sẽ được chạy để khắc phục điều này, và sẽ mất từ vài giờ đến vài ngày tùy thuộc vào kích thước của wiki (tối đa một tuần đối với Wikipedia tiếng Anh). [https://phabricator.wikimedia.org/T422544]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.24|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/16|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W16"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:19, ngày 13 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30380527 -->
== Bản tin Kỹ thuật: Tuần 17-2026 ==
<section begin="technews-2026-W17"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/17|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Sau hai năm phát triển, [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]], hay còn được biết đến với tên [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror 6]], sẽ được chính thức đưa ra khỏi giai đoạn beta vào thứ 3, ngày 21 tháng 4. Nó mang lại khả năng đọc mã nguồn và mã wiki tốt hơn, giảm thiểu lỗi đánh máy cùng những [[mw:Special:MyLanguage/Help:Extension:CodeMirror|lợi ích]] khác cho tất cả người dùng sử dụng trình tô sáng cú pháp tiêu chuẩn. Xin gửi lời cảm ơn chân thành đến tình nguyện viên [https://phabricator.wikimedia.org/p/Bhsd/ Bhsd] vì đã phát triển nhiều tính năng mới, bao gồm [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Code folding|gấp mã nguồn]], [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Autocompletion|tự động điền]], và [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Linting|kiểm tra lỗi]]. [https://phabricator.wikimedia.org/T259059]
* Một bản cập nhật lớn dành cho ứng dụng Wikipedia trên iOS hiện đang được triển khai, nhằm thiết kế lại giao diện để phù hợp với thiết kế trực quan "Liquid Glass" mới nhất của Apple. [https://apps.apple.com/us/app/wikipedia/id324715238 Hãy tải phiên bản mới nhất] và khám phá bản cập nhật này.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4 Reading lists|Danh sách đọc]] là một tính năng cho phép người đọc lưu các bài viết vào danh sách để đọc sau. Tính năng này hiện đang trong giai đoạn thử nghiệm beta trên Wikipedia tiếng Ả Rập, tiếng Pháp, tiếng Indonesia, tiếng Việt và tiếng Trung, và được bật mặc định cho tất cả các tài khoản mới trên tất cả các trang Wikipedia.
* Một thử nghiệm khám phá việc mở rộng [[mw:Special:MyLanguage/Readers/Reader Growth/Mobile page previews|tính năng Xem trước Trang cho trang web di động]] sẽ được triển khai trong tuần ngày 20 tháng 4 trên các trang Wikipedia tiếng Ả Rập, tiếng Anh, tiếng Pháp, tiếng Ý, tiếng Ba Lan và tiếng Việt. Tính năng Xem trước Trang là pop-up hiển thị hình thu nhỏ kèm liên kết mở toàn bộ bài viết từ liên kết xanh, từ đó cải thiện khả năng tìm kiếm nội dung. Tính năng này hiện đã có sẵn trên máy tính để bàn và trong ứng dụng. [[m:Special:MyLanguage/List of experiments in Product and Technology#Template|Đọc thêm về thử nghiệm này cùng những thử nghiệm khác]].
* Trên một số trang wiki, những biên tập viên đã đăng nhập nhưng chưa [[mw:Special:MyLanguage/Help:Email confirmation|xác nhận địa chỉ thư điện tử (email) của mình]] nay có thể nhìn thấy một biểu ngữ khuyến khích họ làm vậy. Việc xác nhận địa chỉ email cho phép người dùng khôi phục quyền truy cập vào tài khoản nếu họ bị mất quyền truy cập đó. [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security#Encouraging users to confirm their email addresses|Tìm hiểu thêm]]. [https://phabricator.wikimedia.org/T421366]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:15}} {{PLURAL:15|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà việc sửa đổi các trang wiki rất lớn trong trình soạn thảo mã wiki 2017 gây ra hiện tượng tải chậm, bị trễ khi xem trước và cuộn, cũng như các vấn đề về hiệu suất khi chọn, cắt hay dán nội dung, nay đã được giải quyết. [https://phabricator.wikimedia.org/T184857]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Là một phần của việc nâng cấp [[mw:Special:MyLanguage/Help:Extension:CodeMirror|CodeMirror]] từ tính năng beta lên làm tính năng chính thức, tất cả người dùng sẽ sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] làm trình tô sáng cú pháp khi sửa đổi các trang nội dung bằng JavaScript, CSS, JSON, Vue và Lua. [https://phabricator.wikimedia.org/T419332]
* Dịch vụ <code>mirrors.wikimedia.org</code> dành cho người dùng Debian và Ubuntu sẽ kết thúc hỗ trợ và ngừng hoạt động vào ngày 15 tháng 5. Tài nguyên dịch vụ này sẽ được thay thế bằng những tùy chọn mới và tốt hơn. Một số người dùng có thể cần phải chuyển sang máy chủ khác, quá trình này sẽ mất khoảng một phút. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/LJYRIS4WB66HIRCAO4GIDTXCMDVZRBMA/ Bạn có thể đọc thêm]. [https://phabricator.wikimedia.org/T416707]
* Bảng <bdi lang="zxx" dir="ltr"><code><nowiki>image</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>oldimage</nowiki></code></bdi> sẽ bị loại bỏ khỏi [[wikitech:Help:Wiki Replicas|wikireplicas]]. Nếu công cụ hoặc truy vấn của bạn truy cập trực tiếp vào <bdi lang="zxx" dir="ltr"><code><nowiki>image</nowiki></code></bdi> hoặc <bdi lang="zxx" dir="ltr"><code><nowiki>oldimage</nowiki></code></bdi>, vui lòng cập nhật chúng để sử dụng bảng <bdi lang="zxx" dir="ltr"><code><nowiki>file</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>filerevision</nowiki></code></bdi> trước ngày 28 tháng 5. [https://phabricator.wikimedia.org/T28741]
* Sau việc triển khai những giới hạn tần suất truy cập API toàn cục gần đây đối với lưu lượng truy cập không xác định, Quỹ Wikimedia sẽ tiếp tục nỗ lực đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng hợp lý cơ sở hạ tầng]] bằng cách áp dụng giới hạn toàn cục đối với lưu lượng truy cập API xác định kể từ tuần cuối cùng của tháng 4. Những giới hạn này được cố ý đặt ở mức cao nhất có thể để giảm thiểu tác động đến cộng đồng. Các bot chạy trong Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào hiện sẽ không bị ảnh hưởng. Dù vậy, tất cả các nhà phát triển được khuyến cáo nên tuân theo những thực tiễn tốt nhất đã được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn tần suất]] và [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits/FAQ|Câu hỏi Thường gặp]].
* [[mw:Special:MyLanguage/Attribution API|API Ghi công]] hiện có sẵn dưới dạng [[mw:Special:MyLanguage/Wikimedia APIs/Stability policy|tính năng beta]]. API này lấy thông tin nhằm ghi công các bài viết và tập tin phương tiện của Wikimedia bất kỳ chỗ nào mà chúng được sử dụng. Trang tài liệu tham khảo có sẵn thông qua trang đặc biệt Chỗ thử REST có mặt trên tất cả các trang wiki của Wikimedia (chẳng hạn như [https://en.wikipedia.org/w/index.php?api=attribution.v0-beta&title=Special%3ARestSandbox chỗ thử REST trên Wikipedia tiếng Anh]). Hãy chia sẻ phản hồi của bạn trên [[mw:Talk:Attribution API|trang thảo luận dự án]].
* Tuần này không có phiên bản MediaWiki mới nào.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/17|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W17"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:00, ngày 20 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30432763 -->
== Request for comment (global AI policy) ==
<bdi lang="en" dir="ltr" class="mw-content-ltr">
Apologies for writing in English. {{int:Please-translate}}
A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}}
[[Thành viên:MediaWiki message delivery|MediaWiki message delivery]] ([[Thảo luận Thành viên:MediaWiki message delivery|thảo luận]]) 00:58, ngày 26 tháng 4 năm 2026 (UTC)
</bdi>
<!-- Tin nhắn của Thành viên:Codename Noreste@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 -->
== Bản tin Kỹ thuật: Tuần 18-2026 ==
<section begin="technews-2026-W18"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/18|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Sẽ có một thay đổi về cách người dùng mới được tự động xác nhận nhằm cải thiện khả năng bảo vệ chống phá hoại. Hiện tại, người dùng đã mở tài khoản được vài ngày và thực hiện được một vài sửa đổi được tự động thêm vào nhóm [[{{int:grouppage-autoconfirmed/{{CONTENTLANGUAGE}}}}|{{int:group-autoconfirmed}}]]. Cấu hình này thường bị một số thành viên phá hoại lợi dụng bằng cách tạo tài khoản và chỉ bắt đầu sử dụng nó sau một khoảng thời gian. Để giảm thiểu điều này, trong tuần tới cấu hình này sẽ được cập nhật sao cho – nhằm mục đích được tự động xác nhận – tuổi của tài khoản sẽ được tính từ sửa đổi đầu tiên của họ, thay vì ngày tạo tài khoản. Giá trị số của ngưỡng tuổi vẫn sẽ được giữ nguyên. Thay đổi này sẽ chỉ được triển khai đến các wiki yêu cầu ít nhất một sửa đổi là một phần trong điều kiện để có thể được tự động xác nhận. [https://phabricator.wikimedia.org/T418484]
* Tất cả người dùng Wikipedia đã tạo tài khoản mới và những người đã kích hoạt tùy chọn "tự động bật hầu hết các tính năng beta" trong tùy chọn của mình giờ đây có thể sử dụng tính năng beta [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4 Reading lists|danh sách đọc]] để lưu bài viết để đọc sau. Điều này giúp người dùng có thể sắp xếp mọi sở thích đọc ở một nơi để có thể dễ dàng truy cập.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho hình ảnh trong hộp thông tin có khoảng đệm quá lớn trên Firefox đã được giải quyết. [https://phabricator.wikimedia.org/T423676]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Nhắc lại, trong tuần này giới hạn tần suất truy cập API toàn cục sẽ được áp dụng cho lưu lượng truy cập API đã được xác định. Điều này giúp đảm bảo việc [[mw:MediaWiki Product Insights/Responsible Reuse|sử dụng cơ sở hạ tầng một cách hợp lý]]. Các bot chạy trong Toolforge/WMCS hoặc có quyền người dùng bot trên bất kỳ wiki nào hiện tại sẽ không bị ảnh hưởng. Dù vậy, tất cả các nhà phát triển được khuyến cáo tuân theo cách sử dụng thực tiễn được cập nhật. Để biết thêm thông tin, bao gồm giới hạn tần suất truy cập thực tế, xem [[mw:Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn tần suất truy cập]] và [[mw:Wikimedia APIs/Rate limits/FAQ|Câu hỏi Thường gặp]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.26|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/18|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W18"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:06, ngày 27 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30458046 -->
== Bản tin Kỹ thuật: Tuần 19-2026 ==
<section begin="technews-2026-W19"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/19|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Nhóm [[mw:Special:MyLanguage/Article guidance|Chỉ dẫn bài viết]] mời các biên tập viên có kinh nghiệm từ [[mw:Special:MyLanguage/Article guidance/Pilot wikis and collaborators|các trang Wikipedia thí điểm]]—tiếng Ả Rập, tiếng Bengal, tiếng Nhật, tiếng Bồ Đào Nha, tiếng Ba Tư, tiếng Thổ Nhĩ Kỳ, tiếng Anh đơn giản, tiếng Tây Ban Nha và tiếng Pháp—hỗ trợ biên dịch và điều chỉnh [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Category:Pages_using_article_guidance các mẫu dàn ý này]. Những dàn ý này sẽ giúp hướng dẫn các biên tập viên tạo ra các bài viết có cấu trúc tốt, rõ ràng và tuân theo quy định khi sử dụng [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Special:NewArticle tính năng này] dự kiến ra mắt vào tháng 5 năm 2026. Hiện có [[mw:Special:MyLanguage/Article guidance#Adapting a sample outline in a Wikipedia|hướng dẫn đơn giản]] về cách dịch và điều chỉnh những dàn ý này.
'''Cập nhật cho biên tập viên'''
* [[:m:Special:MyLanguage/Product and Technology Advisory Council|Hội đồng Cố vấn Sản phẩm và Công nghệ]] đã công bố [[:m:Special:MyLanguage/Product and Technology Advisory Council/May 2026 draft PTAC recommendation for feedback|bản thảo đề xuất]] về một mô hình mà các chi nhánh có thể thực hiện theo khi đóng góp vào lĩnh vực kỹ thuật. Mời các thành viên cộng đồng để lại phản hồi về đề xuất này trước ngày 8 tháng 5 [[:m:Talk:Product and Technology Advisory Council/May 2026 draft PTAC recommendation for feedback|trên trang thảo luận]].
* Số lượng tùy chọn về kích thước hình thu nhỏ có sẵn trong MediaWiki sẽ được giảm xuống còn ba tùy chọn tiêu chuẩn—Nhỏ (180px), Trung bình (250px), và Lớn (400px), là một phần của nỗ lực không ngừng nhằm cải thiện hiệu suất và giảm tải cho các dịch vụ hình thu nhỏ. Do đó, các tùy chọn hiện có sẽ được ánh xạ về kích thước mới gần nhất (ví dụ, những lựa chọn kích thước nhỏ hơn như 120px hoặc 150px sẽ hiển thị dưới kích thước 180px, trong khi những lựa chọn lớn hơn như 300px hoặc 360px sẽ hiển thị dưới kích thước 400px). Giao diện tùy chọn sẽ sớm được cập nhật để áp dụng những thay đổi này và người dùng không muốn áp dụng hoặc để lại phản hồi có thể thực hiện điều đó. [https://phabricator.wikimedia.org/T424909]
* Từ giờ trở đi, ngay cả khi một quyền tự động hết hạn, người dùng sẽ nhận được thông báo Echo tương tự như thông báo tiêu chuẩn về thay đổi quyền. Có một điểm khác biệt giữa thông báo này và [[m:Special:MyLanguage/Global reminder bot|Global reminder bot]] ở chỗ bot sẽ nhắc người dùng một tuần ''trước khi'' quyền đó hết hạn, để họ có thể gia hạn quyền.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:32}} {{PLURAL:32|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến bộ chọn ngôn ngữ ULS trong [[m:Special:Translate|Đặc biệt:Dịch]] cuộn dọc khi không cần thiết, đã được giải quyết. Trước đây, khi người dùng mở menu thả xuống "Dịch sang tiếng Anh" và nhập một số từ nhất định, hộp thoại sẽ cuộn dọc xuống vài pixel ngay cả khi có đủ không gian để hiển thị tất cả kết quả. Menu thả xuống giờ không còn dịch chuyển một cách không cần thiết khi lọc ngôn ngữ nữa. [https://phabricator.wikimedia.org/T358864]
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]], tính năng cho phép bạn xem các danh sách theo dõi của bạn từ nhiều trang wiki trên cùng một trang, tiếp tục được cải thiện. Ví dụ, danh sách theo dõi cho các trang Wikibase chẳng hạn như [[:d:|Wikidata]] nay hỗ trợ phần tử [[mw:Special:MyLanguage/Extension:EntitySchema|EntitySchema]] để có thể theo dõi tốt hơn. Chế độ Cập nhật Trực tiếp nay làm mới trang đặc biệt sau mỗi 60 giây để tuân theo [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|giới hạn tần suất truy vấn API toàn cục]] được cập nhật để cải thiện khả năng phản hồi theo thời gian thực. Ngoài ra, một lỗi về hướng khiến liên kết hiển thị là "thay đổi 3" thay vì "3 thay đổi" trong danh sách có hướng hỗn hợp đã được giải quyết. [https://phabricator.wikimedia.org/T415450][https://phabricator.wikimedia.org/T424422][https://phabricator.wikimedia.org/T418091]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Giai đoạn thứ hai của [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|giới hạn tần suất truy vấn API toàn cục]] đã được triển khai để giảm [[diffblog:2026/03/26/quo-vadis-crawlers-progress-and-whats-next-on-safeguarding-our-infrastructure/|tác động của việc thu thập dữ liệu sử dụng AI]] và đảm bảo quyền truy cập hợp lý, bền vững vào các tài nguyên của Wikimedia, ưu tiên lưu lượng truy cập của con người và lưu lượng phù hợp với sứ mệnh. [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits#Limits|Giới hạn]] được chuyển từ mỗi giờ sang mỗi phút, tạo ra những mô hình lưu lượng truy cập mượt mà hơn và tải API dễ đoán hơn. Người dùng cộng đồng dự kiến không bị ảnh hưởng, và không cần phải thực hiện bất kỳ hành động gì. Các dấu hiệu ban đầu cho thấy một số người yêu cầu dựa trên User-Agent đang điều chỉnh hành vi vi, và khoảng 64% lưu lượng truy vấn API tự động đã được xác định. Việc giám sát vẫn tiếp tục, và Wikimedia Enterprise vẫn sẵn sàng để hỗ trợ thương mại.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.27|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/19|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W19"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:43, ngày 4 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30498077 -->
== Bản tin Kỹ thuật: Tuần 20-2026 ==
<section begin="technews-2026-W20"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/20|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Cộng đồng Kỹ thuật đã xuất bản một [[m:Special:MyLanguage/Community Wishlist/How to write a good wish|bộ hướng dẫn mới]] giải thích cách những mong muốn trên Danh sách Mong muốn Cộng đồng được phân loại và xếp ưu tiên. Tài liệu này được tạo ra nhằm mục đích giúp những người đóng góp viết những đề xuất mang tính mạnh mẽ hơn bằng cách làm rõ những yếu tố ảnh hưởng đến việc quyết định ưu tiên. Ngoài yếu tố số phiếu, hướng dẫn này còn nêu bật những yếu tố khác cần xem xét chẳng hạn như tác động tiềm tàng đến cộng đồng khi quyết định nên ưu tiên mong muốn nào.
'''Cập nhật cho biên tập viên'''
* Nhóm Phát triển Người đọc đang khởi động một thử nghiệm để thử [[mw:Special:MyLanguage/Readers/Reader_Growth/Share_Card|tính năng Chia sẻ Thẻ]] mới cho phép người đọc tạo những thẻ mang tính hấp dẫn về mặt trực quan từ các bài viết hoặc các đề mục bài viết và chia sẻ chúng theo cách trực tuyến, mỗi thẻ liên kết ngược lại về bài viết gốc để giúp mở rộng lượng người đọc và khả năng tìm kiếm bài viết. Thử nghiệm A/B dành riêng cho thiết bị di động này sẽ được cung cấp cho một phần người đọc trên Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Việt và tiếng Anh để có thể hiểu rõ hơn về thói quen đọc và chia sẻ, và dự kiến bắt đầu từ tuần ngày 18 tháng 5 và kéo dài trong bốn tuần.
* Ứng dụng Wikipedia trên Android và iOS gần đây đã phát hành [[mw:Special:MyLanguage/Wikimedia_Apps/Team/25th_Birthday_Reading_Challenge|thử thách đọc trong 25 ngày]] lên phiên bản Beta, là một phần của nỗ lực thúc đẩy người đọc tham gia bằng cách khuyến khích người dùng hoàn thành các mốc đọc. Để theo dõi chuỗi đọc của mình trong suốt quá trình thử thách, người dùng Ứng dụng có thể thêm tiện ích Em bé Globe vào màn hình chính của mình. Thử thách sẽ chính thức bắt đầu vào ngày 11 tháng 5.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:17}} {{PLURAL:17|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho tùy chọn toàn cục bật tính năng nổi bật cú pháp trong mã wiki có thể bất ngờ tự tắt ngay sau khi được bật lên, nay đã được giải quyết. [https://phabricator.wikimedia.org/T425286]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Octicons-tools.svg|12px|link=|alt=|Đề mục nâng cao]] Mô đun ResourceLoader <bdi lang="zxx" dir="ltr"><code><nowiki>mediawiki.ui.input</nowiki></code></bdi>, mô đun lỗi thời từ [[m:Special:MyLanguage/Tech/News/2023/39|tháng 9 năm 2023]], sẽ bị loại bỏ trong tuần này. Hiện có [[mw:Special:MyLanguage/Codex/Migrating_from_MediaWiki_UI|hướng dẫn về cách chuyển từ UI MediaWiki sang Codex]] cho bất kỳ công cụ nào sử dụng nó. [https://phabricator.wikimedia.org/T420125]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.2|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/20|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W20"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:20, ngày 11 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30524429 -->
== Bản tin Kỹ thuật: Tuần 21-2026 ==
<section begin="technews-2026-W21"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/21|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Nhóm Abstract Wikipedia đã xác định năm wiki thí điểm tiềm năng để đánh giá mức độ quan tâm của họ đối với việc áp dụng tóm tắt bài viết trên wiki của mình. Các wiki thí điểm là Wikipedia tiếng Malayalam, tiếng Bengali, tiếng Dagbani, tiếng Ả Rập và tiếng Indonesia. Thời gian nhận phản hồi sẽ kéo dài đến hết ngày 22 tháng 5. Nếu cộng đồng của bạn quan tâm đến việc trở thành wiki thí điểm, [[m:Talk:Abstract Wikipedia|hãy cho chúng tôi biết trên Meta]].
'''Cập nhật cho biên tập viên'''
* Một thử nghiệm nhằm hiển thị [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|Danh sách Đọc]] cho người đọc chưa đăng nhập trên trang web dành cho thiết bị di động sẽ được triển khai vào ngày 18 tháng 5 trên Wikipedia tiếng Đức, tiếng Tây Ban Nha, tiếng Ý, tiếng Bồ Đào Nha, tiếng Ba Lan, tiếng Hà Lan, tiếng Thổ Nhĩ Kỳ và tiếng Urdu Wikipedias, và sẽ kéo dài trong vòng một tháng. Nỗ lực này nhằm hỗ trợ những mục tiêu rộng hơn giúp người đọc lưu và sắp xếp các bài viết để đọc sau, đồng thời khuyến khích những thói quen có thể giúp dẫn đến việc đóng góp cho Wikipedia trong tương lai.
* Để hỗ trợ cho nút đánh dấu trong tính năng beta Danh sách Đọc, menu "Công cụ > Tác vụ" đã được cập nhật để hiển thị các biểu tượng, bao gồm cả chỉ báo ngôi sao theo dõi giúp biên tập viên xác định những bài viết được theo dõi tạm thời. Các biểu tượng nay cũng khớp với các biểu tượng được sử dụng trên thiết bị di động, cải thiện tính nhất quán trên các nền tảng. Thay đổi này hiện chỉ giới hạn ở menu tác vụ và chủ yếu ảnh hưởng đến các biên tập viên có quyền thành viên nâng cao. [https://phabricator.wikimedia.org/T426008]
* [[mw:Special:MyLanguage/VisualEditor/Suggestion Mode|Chế độ Đề xuất]] đã được phát hành dưới dạng [[w:en:A/B test|thử nghiệm A/B]] dành cho biên tập viên mới trên trang web dành cho di động tại [[phab:T421189|~15 trang Wikipedia]]. Thử nghiệm này sẽ đo lường tác động của Chế độ Đề xuất đến tỷ lệ những phiên sửa đổi trên trang web dành cho di động của người mới tạo ra những sửa đổi mang tính xây dựng (không bị lùi lại) trên bài viết. Thử nghiệm này cũng sẽ đánh giá tác động của tính năng này đến việc giữ chân người dùng, đồng thời theo dõi những thay đổi về tỷ lệ lùi sửa và cấm.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề trong ứng dụng Wikipedia dành cho Android khi hình ảnh đôi lúc không thể tải được sau khi mở thông báo danh sách đọc đề xuất, nay đã được giải quyết. [https://phabricator.wikimedia.org/T418231]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[mw:Special:MyLanguage/Wikidata Platform|Nhóm Nền tảng Wikidata]] đã công bố [[d:Special:MyLanguage/Wikidata:SPARQL query service/WDQS backend update/Backend Replacement|đề xuất thay thế backend]] và [[wikitech:Wikidata Query Service/WDQS Architecture re-design|kiến trúc kỹ thuật]] kèm theo cho việc di chuyển Dịch vụ Truy vấn Wikidata (WDQS) khỏi Blazegraph. Chúng tôi hoan nghênh mọi phản hồi về đề xuất này cho đến hết ngày 25 tháng 5 năm 2026, đặc biệt là về những thiếu sót tiềm tàng và tác động đến những trường hợp sử dụng (use case) nâng cao. Các thành viên trong cộng đồng Wikidata và người dùng WDQS cũng được khuyến khích giúp xác định những công cụ và quy trình làm việc có tác động lớn cần được chú ý trên [[d:Wikidata:SPARQL query service/WDQS backend update/High-Impact Use Cases|trang này]]. Bạn có thể chia sẻ những phản hồi của mình trên [[d:Wikidata talk:SPARQL query service/WDQS backend update|trang thảo luận về Di chuyển]] hoặc trong [[d:Special:MyLanguage/Wikidata:Blazegraph Migration Office Hours|giờ làm việc tiếp theo]]. Xem [[d:Special:MyLanguage/Wikidata:Wikidata Platform team/Newsletter|bản tin của nhóm WDP]] để biết thêm chi tiết.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.3|MediaWiki]]
'''Chuyên sâu'''
* Trên Wikipedia tiếng Anh, tiếng Pháp, tiếng Nhật và một số trang Wikipedia khác, một [[diffblog:2025/09/02/better-detecting-bots-and-replacing-our-captcha/|thử nghiệm hCaptcha]], một dịch vụ phát hiện bot từ bên thứ ba, đã được thực hiện. Thử nghiệm này cho thấy hCaptcha phát hiện và ngăn chặn hiệu quả một số hoạt động tự động không thiện ý, bằng cách tự hoạt động lẫn bằng cách cung cấp tín hiệu cho [[w:en:Wikipedia:Village pump (technical)/Archive 225#Introducing SuggestedInvestigations|kiểm định viên và tiếp viên]] để kiểm tra. Vì kết quả thử nghiệm cho kết quả tích cực, hCaptcha sẽ được triển khai trên tất cả các wiki trong một vài tuần tới đây. [[mw:Special:MyLanguage/Product Safety and Integrity/Anti-abuse signals/hCaptcha|Xem trang dự án hCaptcha]] để biết thông tin kỹ thuật về việc triển khai và bảo vệ quyền riêng tư. [[diffblog:2026/05/04/better-detecting-bots-and-replacing-our-captcha-part-2/|Tìm hiểu thêm]].
* Bản cập nhật Công nghệ Cộng đồng số mới nhất hiện đã có sẵn, trong đó có những tiến bộ trong một số sáng kiến thuộc Danh sách Mong muốn Cộng đồng, bao gồm việc mở rộng Danh sách Đọc từ ứng dụng di động lên trang web, hỗ trợ thêm ngôn ngữ mới cho "Ai đã viết nó" (Who Wrote That) và Bảng điều khiển Cá nhân, cải thiện khả năng hiển thị 3D và Biểu đồ, cũng như những công việc sắp tới về việc sắp xếp trang thảo luận, khả năng phát âm thanh và quy trình sửa đổi. Bản cập nhật cũng chia sẻ những ưu tiên hiện tại, xu hướng trạng thái danh sách mong muốn và cơ hội để cộng đồng phản hồi về các lĩnh vực trọng tâm trong tương lai cũng như Kế hoạch Hàng năm 2026–2027 của Quỹ Wikimedia. [[m:Special:MyLanguage/Community Wishlist/Updates#May 13, 2026: Latest updates from the Community Tech team|Đọc toàn bộ nội dung bản tin để biết thông tin chi tiết]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/21|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W21"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:21, ngày 18 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30539262 -->
== Bản tin Kỹ thuật: Tuần 22-2026 ==
<section begin="technews-2026-W22"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/22|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Sau [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#LOWM|thử nghiệm tạo tài khoản thành công]], tin nhắn được cải tiến dành cho những sửa đổi của thành viên chưa đăng nhập sẽ được triển khai đến tất cả các wiki của Wikimedia vào tuần đầu tiên của tháng 6. Thay đổi này sẽ chỉ ảnh hưởng đến các thành viên chưa đăng nhập trên trang web di động khi mở một phiên sửa đổi. Việc cập nhật trải nghiệm này được thiết kế để làm rõ hơn việc khuyến khích tạo tài khoản mà vẫn cho phép người dùng sửa đổi bằng tài khoản tạm thời. Kết quả từ thử nghiệm cho thấy tỷ lệ tạo tài khoản tăng lên đáng kể, trong đó tỷ lệ này đối với người dùng nhìn thấy thông báo được cập nhật này đạt mức tăng khoảng 27%. Như dự đoán, khi càng nhiều người tạo tài khoản, số tài khoản tạm thời cũng giảm đi khoảng 16%. Thử nghiệm không cho thấy bất kỳ thay đổi nào đáng kể về tỷ lệ sửa đổi mang tính xây dựng hay bất cứ số liệu đóng góp nào khác được theo dõi. [https://phabricator.wikimedia.org/T424595]
'''Cập nhật cho biên tập viên'''
* Vì lý do bảo mật, thành viên của một số nhóm người dùng [[m:Special:MyLanguage/Mandatory two-factor authentication for users with some extended rights|bắt buộc phải bật xác thực hai yếu tố]] (2FA). Những thành viên thuộc những nhóm này sẽ không thể tắt đi yếu tố 2FA cuối cùng trên tài khoản của mình, và sẽ không thể thêm người dùng không có 2FA vào những nhóm này. Người dùng vẫn sẽ có thể thêm yếu tố xác thực mới hoặc loại bỏ chúng đi, miễn là có ít nhất một yếu tố được bật liên tục. Trong vòng vài tuần tới đây, người dùng không có 2FA sẽ bị loại bỏ khỏi những nhóm này. Đặc biệt, nó sẽ được áp dụng cho các hành chính viên. Xem tác vụ được liên kết để biết lịch triển khai. [https://phabricator.wikimedia.org/T423119][https://phabricator.wikimedia.org/T423120]
* [[m:Special:MyLanguage/WMDE Technical Wishes|Nhóm Mong muốn Kỹ thuật của WMDE]] sẽ chạy một [[w:vi:Thử nghiệm A/B|thử nghiệm A/B]] trên [[:phab:T415904|10 wiki]], nhằm thử nghiệm [[m:WMDE Technical Wishes/References/Reference Previews|những khả năng cải tiến cho tính năng Xem trước Chú thích]]. Thử nghiệm sẽ kéo dài ~2 tuần vào cuối tháng 5 / đầu tháng 6 và sẽ ảnh hưởng tới 10% người đọc trên máy tính đối với các wiki tham gia.
* Sau hai thử nghiệm thành công, nhóm Phát triển Người đọc sẽ cho ra mắt tính năng beta [[mw:Special:MyLanguage/Readers/Reader Growth/Image Browsing|Duyệt Hình ảnh]] trên tất cả các trang Wikipedia trên di động vào ngày 25 tháng 5. Điều này có nghĩa là bất kỳ ai đã bật mặc định tất cả các tính năng beta sẽ bắt đầu nhìn thấy tính năng này, và những người khác có thể đánh dấu hộp kiểm để bật tính năng này lên trong tùy chọn của họ. Tính năng beta này sẽ bao gồm một băng chuyền hiển thị tất cả hình ảnh của bài viết ở đầu bài viết, The beta feature will include a carousel of all an article's images at the top of the article, cùng khả năng điều khiển cho phép biên tập viên có thể [[mw:Readers/Reader_Growth/Image_Browsing#Phase_2.1_beta_feature|loại trừ hình ảnh khỏi băng chuyền của bài viết hoặc loại trừ hoàn toàn một bài viết khỏi tính năng này]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, các tệp STL ba chiều bị hiển thị sai bởi phần mở rộng trình xem phương tiện 3D nay đã được giải quyết. [https://phabricator.wikimedia.org/T416723]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Các class CSS <bdi lang="zxx" dir="ltr"><code><nowiki>tleft</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>tright</nowiki></code></bdi> cũ đã được thay thế bằng <bdi lang="zxx" dir="ltr"><code><nowiki>floatleft</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>floatright</nowiki></code></bdi> do hai class cũ đó không hoạt động một cách nhất quán trên tất cả các nền tảng MediaWiki, đặc biệt là giao diện web di động và ứng dụng di động. Những dự án dựa vào những lớp này được khuyến khích xem xét lại những chỗ sử dụng có liên quan và lên kế hoạch chuyển đổi. Xin lưu ý rằng <bdi lang="zxx" dir="ltr"><code><nowiki>floatleft</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>floatright</nowiki></code></bdi> cũng có thể bị loại bỏ trong tương lai, dù hiện chưa có kế hoạch thực hiện điều này. [[phab:T426452|Đọc thêm]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.4|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/22|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W22"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:52, ngày 25 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30584502 -->
== <span lang="en" dir="ltr">Vote now in the 2026 U4C election</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Eligible voters are asked to participate in the 2026 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|2026 Election information page]]. The vote closes on 2 June 2026 at [https://zonestamp.toolforge.org/1780358400 00:00 UTC].
Please vote if your account is eligible. Results will be available by 14 June 2026. -- In cooperation with the U4C,<section end="announcement-content" />
</div>
[[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 17:15, ngày 27 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Keegan (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== Bản tin Kỹ thuật: Tuần 23-2026 ==
<section begin="technews-2026-W23"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/23|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đang tiến hành một cuộc thử nghiệm nhằm giới thiệu tính năng [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|danh sách đọc]], hiện vẫn đang trong quá trình phát triển, dành cho những người đọc chưa đăng nhập trên thiết bị di động để kiểm tra xem tính năng này có khuyến khích việc tạo tài khoản với tỷ lệ cao hơn so với nút sao theo dõi hay không. [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists#Experiment timeline|Thử nghiệm]] này đã được khởi động vào ngày 18 tháng 5 trên các wiki tiếng Đức, Tây Ban Nha, Ý, Bồ Đào Nha, Ba Lan, Hà Lan, Thổ Nhĩ Kỳ và Urdu, và sẽ kéo dài trong một tháng.
* Nhóm Ứng dụng Wikimedia đã phát hành [[mw:Special:MyLanguage/Wikimedia Apps/Team/Explore Feed Refresh/Phase 1|Giai đoạn 1]] của giao diện Trang chủ được thiết kế lại cho ứng dụng Android bản Beta. Giao diện Trang chủ mới bao gồm tab "Cộng đồng" được làm mới và tab "Dành cho Bạn" được cá nhân hóa với những đề xuất đọc được cập nhật hàng ngày. Việc thiết kế lại này là một phần trong nỗ lực rộng lớn hơn nhằm cải thiện khả năng tìm kiếm nội dung và tạo ra trải nghiệm học tập hấp dẫn hơn trong các ứng dụng Wikipedia.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:18}} {{PLURAL:18|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến các hình ảnh không thể tải được đối với một số đề xuất sửa đổi trên [[w:Special:Homepage|Đặc biệt:Trang nhà]], làm cho hình thu nhỏ bị kẹt ở trạng thái đang tải, nay đã được giải quyết. [https://phabricator.wikimedia.org/T424048]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.5|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/23|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W23"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:08, ngày 1 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30613639 -->
== Bản tin Kỹ thuật: Tuần 24-2026 ==
<section begin="technews-2026-W24"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/24|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Wikimedia Enterprise đã tăng giới hạn sử dụng miễn phí cho các dịch vụ API của mình. Giới hạn yêu cầu hàng tháng dành cho API Theo yêu cầu đã tăng từ 5.000 lên 50.000 yêu cầu, trong khi giới hạn đối với API Hình chụp nhanh đã tăng từ 15 lên 30 yêu cầu mỗi tháng. Ngoài ra, Nội dung Có cấu trúc của ảnh chụp nhanh hiện đã có sẵn cho các tài khoản miễn phí. Những thay đổi này sẽ mở rộng quyền truy cập vào dữ liệu Wikimedia Enterprise cho các nhà phát triển, nhà nghiên cứu và các tổ chức sử dụng nội dụng Wikimedia. [https://enterprise.wikimedia.com/blog/enhanced-free-api]
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Wikimedia_Apps/Team/Explore Feed Refresh/Phase 1|Bảng tin Khám phá được làm mới]], nay với tên gọi là Bảng tin Trang chủ, đang được triển khai tới 50% người dùng ứng dụng Wikipedia dành cho Android. Bảng tin Trang chủ giúp người đọc khám phá nội dung liên quan thông qua hai tab mới: ''Cộng đồng'' và ''Dành cho Bạn''. Tab Cộng đồng cung cấp một bảng tin cuộn được chứa những nội dung được chọn lọc cùng những cập nhật từ không gian rộng lớn hơn của cộng đồng và phong trào Wikimedia, trong khi tab ''Dành cho Bạn'' cung cấp trải nghiệm toàn màn hình, có thể vuốt được để hiển thị nội dung được điều chỉnh theo sở thích của người dùng. Việc thiết kế lại này là một phần trong nỗ lực lớn hơn nhằm cải thiện khả năng tìm kiếm và nâng cao trải nghiệm học trong ứng dụng Wikipedia.
* Trò chơi giải đố hàng ngày [[mw:Special:MyLanguage/Wikimedia Apps/Team/iOS/"Which came first?" Game|Sự kiện nào diễn ra trước nhỉ?]] nay đã có sẵn trong phiên bản beta của ứng dụng Wikipedia dành cho iOS bằng tiếng Anh, tiếng Đức, tiếng Pháp, tiếng Bồ Đào Nha, tiếng Nga, tiếng Tây Ban Nha, tiếng Ả Rập, tiếng Trung và tiếng Thổ Nhĩ Kỳ. Trò chơi này sử dụng các sự kiện lịch sử từ nội dung trong mục "Ngày này năm xưa" của Wikipedia và thử thách người đọc đoán xem sự kiện nào trong hai sự kiện đã xảy ra trước. Trò chơi này đã được phát hành trên Android trước đây. Những cộng đồng quan tâm đến việc cung cấp trò chơi này bằng ngôn ngữ của mình có thể [[mw:Special:MyLanguage/Wikimedia_Apps/Team/Games#Game availability by language|đọc qua hướng dẫn và yêu cầu]].
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Chú thích phụ]], một tính năng MediaWiki mới cho phép biên tập viên tái sử dụng nguồn tham khảo với nhiều chi tiết khác nhau, sẽ bắt đầu được triển khai đến các wiki của Wikimedia sau giải đoạn thí điểm thành công. Việc triển khai sẽ bắt đầu vào ngày 8 tháng 6 đối với hầu hết các [[wikitech:Deployments/Train#Wednesday|wiki Nhóm 1]] và Wikipedia tiếng Pháp, trong khi các phiên bản ngôn ngữ khác của Wikipedia sẽ nhận được tính năng này trong những tháng tới. Các cộng đồng được khuyến khích chuẩn bị bằng cách kiểm tra [https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-cite&language=en&action_source=search&filter=%21translated&optional=1&action=translate các thông báo chưa được dịch của phần mở rộng Cite] bằng ngôn ngữ của họ và xem xét bất kỳ việc sử dụng [[mw:Special:MyLanguage/Reference Tooltips|Chú thích nổi]] nào, chúng có thể cần phải được [[:phab:T416304#11668731|cập nhật]] để hỗ trợ chức năng mới này. Những wiki sử dụng [[mw:Special:MyLanguage/Help:Reference Previews|Xem trước Chú thích]] không cần phải thực hiện bất kỳ hành động nào. Các cộng đồng cũng có thể mong muốn tạo [[Special:TrackingCategories|thể loại theo dõi]] ''cite-tracking-category-ref-details'' dưới dạng thể loại ẩn sử dụng <code><nowiki>__HIDDENCAT__</nowiki></code> (hoặc một bản mẫu chuyên dụng), và kết nối nó với khoản mục Wikidata [[d:Q129764848]] tương ứng. [https://phabricator.wikimedia.org/T425662]
* [[mw:Special:MyLanguage/Readers/Reader Growth/Mobile page previews#Experimentation|Thử nghiệm Xem trước Trang]] trên giao diện web di động đã kết thúc. Nhóm đã quyết định không triển khai tính năng này sau khi kết quả cho thấy rằng không có tác động đáng kể nào về mặt thống kê lên tỷ lệ giữ chân người đọc, vì chỉ số thành công chính là việc cải thiện tỷ lệ giữ chân người đọc. Tính năng Xem trước Trang, vốn đã có sẵn trên máy tính để bàn và trong ứng dụng, hiển thị hình thu nhỏ, đoạn mở đầu và liên kết đến bài viết đầy đủ khi người đọc nhấn vào liên kết xanh. Thử nghiệm này đã thử trải nghiệm này trên giao diện web di động trên sáu trang Wikipedia.
* [[mw:Special:MyLanguage/Codex/Design/Icons|Thư viện biểu tượng giao diện người dùng]] sẽ được [[phab:T399175|cập nhật vào cuối tuần này hoặc đầu tuần sau]]. Hầu hết trong số ~300 biểu tượng đã được điều chỉnh một chút và ~30 biểu tượng mới đã được thêm vào. Những thay đổi này cải thiện các biểu tượng để làm cho chúng thêm nhất quán và dễ hiểu hơn, đồng thời mang lại sự cân bằng trực quan hơn khi chúng được sử dụng theo nhóm.
* Giao diện [[mw:Special:MyLanguage/Universal Language Selector|Bộ chọn Ngôn ngữ Toàn cục]] (ULS) trong MediaWiki, công cụ giúp người dùng chọn nội dung bằng các ngôn ngữ khác, đã được cập nhật. Phiên bản mới cải thiện tốc độ và khả năng truy cập, đồng thời giờ đây người dùng trên các dự án Wikimedia có thể ghim các ngôn ngữ để chuyển đổi ngôn ngữ một cách nhanh chóng hơn. Việc triển khai lên các trang web của Wikimedia sẽ diễn ra dần dần trong những tuần tới. Bạn có thể thử nghiệm tính năng này ngay bây giờ bằng cách chọn [[Special:Preferences#mw-prefsection-betafeatures|tính năng beta]] trong tùy chọn hồ sơ của mình và chia sẻ phản hồi của bạn trên [[mw:Special:MyLanguage/Universal Language Selector/New ULS|trang dự án]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến bảng điều khiển Phân tích Lượt xem Trang trên pageviews.wmcloud.org ngừng cập nhật dữ liệu đồ thị vào tháng 5 năm 2026, ảnh hưởng đến tất cả người dùng, đã được giải quyết. [https://phabricator.wikimedia.org/T427171]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Chữ ký hàm cho <bdi lang="zxx" dir="ltr"><code><nowiki>mw.util.addPortletLink()</nowiki></code></bdi> đã được đơn giản hóa. Các nhà phát triển nay có thể truyền một đối tượng cấu hình thay vì một danh sách các tham số vị trí khi tạo liên kết portlet. Chữ ký hàm trước đây vẫn được hỗ trợ để đảm bảo khả năng tương thích ngược. Ví dụ, thay vì: <bdi lang="zxx" dir="ltr"><code><nowiki>mw.util.addPortletLink('p-cactions', '#', 'Stub', 'ca-stubtag', 'Add a stub tag to this page');</nowiki></code></bdi> sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>mw.util.addPortletLink('p-cactions', { href: '#', text: 'Stub', id: 'ca-stubtag', tooltip: 'Add a stub tag to this page' });</nowiki></code></bdi>. Những người bảo trì đoạn mã được khuyến khích xem chỗ nào hiện đang sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>addPortletLink()</nowiki></code></bdi> và cập nhật chúng nếu thích hợp. Thay đổi này sẽ có mặt trên tất cả các wiki từ ngày 11 tháng 6. Xin cảm ơn tình nguyện viên cộng đồng Gerges đã đóng góp cải tiến này. [https://phabricator.wikimedia.org/T427945]
* '''Thảo luận về Danh sách Mong muốn của Cộng đồng''': Nhóm Sản phẩm & Công nghệ [[m:Special:MyLanguage/Community Wishlist/Updates#May 20, 2026: Community Tech becomes a program|đã đưa ra những thay đổi]] nhằm mục đích tăng số lượng và độ phức tạp của những mong muốn được đáp ứng, bao gồm cả việc giải thể nhóm Công nghệ Cộng đồng. Họ đang [[m:Special:MyLanguage/Community Wishlist/Updates|tham gia thảo luận]] về một [[m:Talk:Community Wishlist#Proposed direction for Wishlist|đề xuất hướng đi cho danh sách mong muốn]] từ các thành viên cộng đồng. Bao gồm những cách để cấu trúc việc bỏ phiếu hàng năm, theo dõi mong muốn một cách tốt hơn, loại bỏ các lĩnh vực trọng tâm, và [[m:Special:MyLanguage/Community Wishlist/Updates|điều chỉnh việc quản lý nhân sự]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.6|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/24|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W24"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:30, ngày 8 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30650573 -->
== Bản tin Kỹ thuật: Tuần 25-2026 ==
<section begin="technews-2026-W25"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/25|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Readers/Reader Growth|Nhóm Tăng trưởng Độc giả]] đã cho ra mắt tính năng beta [[mw:Special:MyLanguage/Readers/Reader Growth/Image Browsing|Duyệt Hình ảnh]] trên phiên bản web của thiết bị di động tại tất cả các phiên bản Wikipedia. Tính năng này hiển thị ở đầu bài viết một băng chuyền hình ảnh gồm 3 hình ảnh trở lên. Biên tập viên có thể cấu hình cho tính năng này với những thao tác sau: để ẩn một hình ảnh cụ thể khỏi một trang, hãy sử dụng <code>class=notpageimage</code> để loại trừ nó khỏi bản xem trước, hay dùng <code>class=noviewer</code> để loại trừ nó khỏi MediaViewer. Băng chuyền Hình ảnh còn có thể được tắt hoàn toàn ở một trang, với magic word <code><nowiki>__NOMEDIAVIEWERCAROUSEL__</nowiki></code>. Để gửi phản hồi hoặc báo cáo lỗi, hãy truy cập [[mw:Talk:Readers/Reader Growth/Image Browsing|trang dự án]].
* [[mw:Special:MyLanguage/Help:Tables#class="wikitable"|Wikitables]] nay đã có thể được [[mw:Special:MyLanguage/Help:Sortable tables#Forcing the initial sort direction|sắp xếp theo thứ tự giảm dần]] ngay lần nhấp chuột đầu tiên bằng cách thêm <code dir=ltr>data-sort-order="desc"</code> cho ô tiêu đề. Trước đây, theo mặc định, lần nhấp chuột đầu tiên vào tiêu đề cột sẽ sắp xếp cột theo thứ tự tăng dần. Sự bổ sung này cho Wikitable mang lại khả năng kiểm soát và tính linh hoạt cao hơn, trong khi hành vi mặc định cho những lần nhấp chuột tiếp theo vẫn được giữ nguyên. [https://phabricator.wikimedia.org/T398416]
'''Cập nhật cho biên tập viên'''
* Tính năng [[mw:Special:MyLanguage/Article guidance|Hướng dẫn bài viết]] hiện đang được thử nghiệm đối với một số biên tập viên tạo các bài viết mới trên các trang Wikipedia tiếng Anh đơn giản, tiếng Pháp và tiếng Thổ Nhĩ Kỳ. Thử nghiệm cũng sẽ sẽ sớm bắt đầu trên Wikipedia tiếng Ả Rập và tiếng Bengali. [[w:simple:Special:NewArticle|Tính năng này]] cung cấp cho các biên tập viên hướng dẫn do cộng đồng biên soạn để giúp họ tạo ra những bài viết tuân thủ tiêu chuẩn cộng đồng. Các biên tập viên có kinh nghiệm có thể tiếp tục tạo hoặc điều chỉnh dàn ý cho những loại bài viết cụ thể thường được tạo bởi những người đóng góp ít kinh nghiệm hơn. Những dàn ý này hướng dẫn các biên tập viên ít kinh nghiệm hơn trong việc tạo những bài viết chất lượng cao. Hướng dẫn nhanh về các ký hiệu được sử dụng trong dàn ý có thể được tìm thấy trên [[mw:Special:MyLanguage/Article guidance/Test feature guide#Markups in outlines|trang này]]. [[w:simple:Wikipedia:Article Guidance|Ví dụ về dàn ý]] có thể được điều chỉnh và hướng dẫn cách điều chỉnh chúng nằm trên [[mw:Special:MyLanguage/Article guidance#Adapting a sample outline in a Wikipedia|phần này]] của trang dự án.
* Wiki mong muốn thay thế nút "vô thời hạn" trong Đặc biệt:Cấm dành cho tài khoản tạm thời (ví dụ, wiki chỉ cấm tài khoản tạm thời đến khi tài khoản đó hết hạn) sẽ có thể thực hiện điều đó bằng cách tạo [[MediaWiki:ipb-indefinite-expiry-temporary-account]] với khoảng thời gian cấm mà họ muốn. [https://phabricator.wikimedia.org/T427125]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:41}} {{PLURAL:41|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Đến cuối tháng 6, việc sử dụng một chuỗi user-agent hợp lệ là bắt buộc để tải xuống tự động các dump từ trang web dumps.wikimedia.org. Những yêu cầu tự động cung cấp user-agent trống hoặc chung chung sẽ bị chặn. Điều này [[phab:T400119|sẽ mở rộng việc thực thi]] [[foundation:Special:MyLanguage/Policy:Wikimedia Foundation User-Agent Policy|quy định về user-agent]] đã có từ lâu. Quyền truy cập tới Dịch vụ Đám mây của Wikimedia sẽ không thay đổi.
* Quá trình triển khai [[mw:Wikimedia APIs/Rate limits|giới hạn truy cập API]] toàn cục đã hoàn tất, các giới hạn được áp dụng trên tất cả các API và ở tất cả các mức độ được ghi nhận cho tất cả các nhóm. Các bot chạy trong Toolforge/WMCS hoặc có quyền người dùng bot trên bất kỳ wiki nào vẫn được miễn trừ. Tất cả các bot nên tiếp tục theo những thực tiễn tốt nhất được ghi nhận để tránh bị vượt giới hạn truy cập.
* [https://api.wikimedia.org/wiki/Main_Page Wiki Cổng API] sẽ ở chế độ chỉ đọc kể từ tuần này (15-18 tháng 6). Vào tuần tới (22-25 tháng 6), tất cả các URL của wiki Cổng API sẽ chuyển hướng đến [[mw:Wikimedia APIs|API Wikimedia trên mediawiki.org]]. Tìm hiểu thêm trên [[wikitech:API Portal/Deprecation|trang dự án]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.7|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* Vào ngày 17 tháng 6 lúc 18:00 giờ UTC WMF sẽ tổ chức một cuộc gọi Discord tập trung vào việc đánh giá code. Chúng tôi đã lắng nghe thông qua [[mw:Special:MyLanguage/Developer Satisfaction Survey/2026|Khảo sát Sự hài lòng của Nhà phát triển]] rằng các tình nguyện viên đang gặp khó khăn trong việc đánh giá code và chúng tôi muốn thảo luận về những trải nghiệm này với mục tiêu tìm ra những giải pháp khả thi. Bạn có thể tham gia cuộc gọi [https://discord.gg/wikipedia?event=1514727511102062664 thông qua máy chủ Discord Cộng đồng Wikimedia].
* [[m:Special:MyLanguage/Conferencia Wikimedia de América Latina 2026|Hội nghị Wikimedia Mỹ La-tinh]] sẽ tổ chức cuộc thi hackathon khu vực quy tụ cộng đồng kỹ thuật của phong trào Wikimedia, gồm những nhà phát triển, quản trị viên hệ thống, nhà khoa học dữ liệu và các thành viên có quyền mở rộng. Những người đóng góp kỹ thuật quan tâm có thể [https://docs.google.com/forms/d/e/1FAIpQLSf4osJzTHBJjQbYJk7TMVEJjTEQv7IgtsUDfP-o-qTgeRQQxw/viewform đăng ký học bổng] tham gia cho đến nửa đêm ngày 21 tháng 6 (giờ Bolivia, UTC-4).
* Hãy đăng ký tham gia Thử thách Nhóm của Wikimania để góp mặt tại sự kiện đặc biệt này. Thử thách nhóm sẽ diễn ra trực tuyến và trực tiếp từ ngày 21 đến 22 tháng 7, trước hội nghị Wikimania. Mọi người đều có thể tham gia, bất kể kỹ năng hay việc đăng ký Wikimania trước đó như thế nào. Các nhóm sẽ cùng nhau giải quyết 10 thử thách quan trọng trong việc hỗ trợ cộng đồng Wikimedia. Để biết thêm chi tiết, hãy truy cập [[wmania:Special:MyLanguage/2026:Team challenges|trang Thử thách Nhóm]] và [https://wikimedia.eventyay.com/wm/teamchallenges/ đăng ký tại đó]. Cổng đăng ký sẽ đóng vào ngày 20 tháng 6 lúc 23:00 UTC.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/25|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W25"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:48, ngày 15 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30689604 -->
== Bản tin Kỹ thuật: Tuần 26-2026 ==
<section begin="technews-2026-W26"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/26|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Growth/Feature summary|Các tính năng Phát triển (Growth)]] [[phab:T418115|nay đã có mặt trên Wikidata]]. Bản cập nhật này cho phép truy cập vào chức năng Cố vấn ([[mw:Special:MyLanguage/Help:Growth/Mentorship|nếu được cấu hình]]), mô đun Tác động, Bảng Trợ giúp và Trang chủ dành cho Người mới được đơn giản hóa (không có Đề xuất sửa đổi). Các bảo quản viên Wikidata vẫn đang cấu hình các tính năng thông qua Cấu hình Cộng đồng.
'''Cập nhật cho biên tập viên'''
* Trang đặc biệt [[{{#special:RangeCalculator}}]] đã được tạo. Trang này cho phép người dùng tìm một dải IP mà không cần phải dựa vào các công cụ bên ngoài. Cho đến hiện tại, công cụ này chỉ có sẵn cho các kiểm định viên. [https://phabricator.wikimedia.org/T268429]
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Chú thích phụ]] là một tính năng mới của MediaWiki cho phép biên tập viên tái sử dụng các nguồn tham khảo với những chi tiết khác nhau. Tính năng này sẽ được triển khai đến hầu hết các phiên bản ngôn ngữ Wikipedia quy mô nhỏ và trung bình vào ngày 23 tháng 6. Trang [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#deployment|Câu hỏi thường gặp]] liệt kê những hành động có thể thực hiện trên wiki của bạn để hỗ trợ việc triển khai này. Hãy kiểm tra [[:phab:T414094|kế hoạch triển khai]] để biết các bước triển khai tiếp theo. [https://phabricator.wikimedia.org/T428902]
* Bắt đầu từ tuần sau, người dùng sẽ nhận được một thông báo khi họ bị cấm sửa đổi hoặc được bỏ cấm sửa đổi, hoặc khi lệnh cấm thay đổi. [https://phabricator.wikimedia.org/T100974]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:32}} {{PLURAL:32|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bắt đầu từ tuần tới, các bộ lọc sai phạm được đặt ở mức "yêu cầu xác minh CAPTCHA" sẽ bắt đầu ảnh hưởng đến cả những người dùng có quyền <code>skipcaptcha</code>, bao gồm hầu hết những người dùng có quyền tự động xác nhận. Các bot sẽ được miễn trừ. Thay đổi này sẽ chỉ ảnh hưởng đến những sửa đổi kích hoạt bộ lọc sai phạm. Quyền <code>skipcaptcha</code> vẫn sẽ tiếp tục giúp người dùng được miễn yêu cầu xác minh CAPTCHA trong quá trình sử dụng wiki thông thường. [https://phabricator.wikimedia.org/T402595]
* Tài liệu tham khảo cho [[wikitech:Machine_Learning/LiftWing/API|API Lift Wing]] đã được chuyển từ Cổng API sang [https://wikitech.wikimedia.org/w/index.php?api=lift-wing&title=Special%3ARestSandbox Chỗ thử REST] mang tính tương tác.
* Wiki Cổng API hiện đã đóng. Để xem tài liệu API, hãy xem [[mw:Special:MyLanguage/Wikimedia_APIs|API Wikimedia trên mediawiki.org]]. Tất cả các URL của wiki Cổng API (https://api.wikimedia.org/wiki/) sẽ đổi hướng tới trang mediawiki.org bắt đầu từ ngày 22 tháng 6. [https://phabricator.wikimedia.org/T427537]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.8|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* Hãy tham gia cuộc gọi trực tuyến vào ngày 25 tháng 6 lúc 2:30 chiều giờ UTC để gặp gỡ các thực tập sinh hiện tại của Wikimedia cho [[mw:Google_Summer_of_Code/2026|Google Summer of Code]] và [[mw:Outreachy/Round_32|Outreachy]]. Các thực tập sinh sẽ giới thiệu tổng quan về các dự án của họ và demo ngắn gọn công việc mà họ đã thực hiện cho đến nay. Người tham dự được khuyến khích [[mw:event:Google_Summer_of_Code/Summer_2026_June_Internship_open_session|chia sẻ ý tưởng và kết nối trong cộng đồng của họ]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/26|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W26"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 13:05, ngày 23 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Trizek (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30722494 -->
== RFC about AI-generated content in Wikimedia Commons ==
<bdi lang="en" dir="ltr">Apologies for writing in English, please help translate this message to your language. You are invited to participate in a [[c:Commons:Requests for comment/Policy update for AI content|request for comment on Wikimedia Commons about a policy update for AI content]]. This may affect files that are uploaded to Wikimedia Commons for use on this project. Thank you. [[m:User:Codename Noreste|Codename Noreste]] ([[m:User talk:Codename Noreste|thảo luận]])</bdi> 17:12, ngày 23 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Codename Noreste@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== <span lang="en" dir="ltr">Deployment of Legal and Safety Contacts Link in the Footer of Your Wiki</span> ==
<div lang="en" dir="ltr">
<section begin="Message"/>
'''Legal & Safety Contacts'''
Hello community, the Wikimedia Foundation has provided a [[wmf:Special:MyLanguage/Legal:Wikimedia Foundation Legal and Safety Contact Information|single legal and safety contact page]], to be linked in the footer of your wiki, to ensure access to accurate legal information. This is a regulatory requirement. We have already rolled out links to English, German, Italian, Spanish and other wikis and we will deploy to your wiki soon. [[m:Special:MyLanguage/Wikimedia_Foundation_Legal_and_Safety_Contacts_FAQ|Please read more on the project page]] and leave any comments in this thread or on the [[m:Special:MyLanguage/Talk:Wikimedia Foundation Legal and Safety Contacts FAQ|talk page]].
<section end="Message"/>
</div>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:31, ngày 25 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Sannita (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=30731267 -->
== Bản tin Kỹ thuật: Tuần 27-2026 ==
<section begin="technews-2026-W27"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/27|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Là một phần của [[mw:Special:MyLanguage/Contributors/Account Creation Experiments|Thử nghiệm Tạo Tài khoản]], nhóm Phát triển đã thử nghiệm việc thêm biểu tượng tài khoản người dùng vào tiêu đề trang web trên di động dành cho người dùng chưa đăng nhập, cung cấp quyền truy cập trực tiếp vào các tác vụ "Tạo tài khoản" và "Đăng nhập". Thử nghiệm đã tăng số tài khoản được tạo lên khoảng 20% mà không ảnh hưởng tiêu cực đến chất lượng sửa đổi hoặc tỷ lệ sửa đổi mang tính xây dựng. Tính năng này giờ sẽ được triển khai đến tất cả các trang wiki của Quỹ Wikimedia trên giao diện web di động trong tuần đầu tiên của tháng 7. [https://phabricator.wikimedia.org/T428220]
* Sau một [[phab:T426248|thử nghiệm thành công]], người dùng đã đăng nhập nhưng chưa [[mw:Special:MyLanguage/Help:Email_confirmation|xác nhận địa chỉ email của mình]] khi tạo tài khoản sẽ nhìn thấy một biểu ngữ mới yêu cầu họ hoàn tất quy trình đó. Điều này giúp giảm nguy cơ người dùng bị mất quyền truy cập vào tài khoản của họ, và làm cho địa chỉ email của tài khoản nói chung trở nên đáng tin cậy hơn. Đây là một phần của dự án [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]]. [https://phabricator.wikimedia.org/T428292]
* Một bản cập nhật cho tính năng [[Special:Search|Tìm kiếm]] sẽ tinh chỉnh cách <bdi lang="zxx" dir="ltr"><code><nowiki>-prefix:</nowiki></code></bdi> hoạt động khi được sử dụng để loại trừ kết quả. Trước đây, việc sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>-prefix:</nowiki></code></bdi> với phủ định có thể vô tình mở rộng kết quả tìm kiếm bằng cách thêm các không gian tên nằm trong phạm vi tìm kiếm, dẫn đến hành vi gây khó hiểu đối với những người dùng mong đợi một bộ lọc loại trừ đơn giản. Với lần cập nhật này, <bdi lang="zxx" dir="ltr"><code><nowiki>-prefix:</nowiki></code></bdi> nay sẽ loại trừ chặt những tiêu đề trang trùng khớp như mong đợi và có thể hiển thị cảnh báo nếu không gian tên có liên quan không được chọn một cách rõ ràng. Mặc dù vậy, hành vi của <bdi lang="zxx" dir="ltr"><code><nowiki>prefix:</nowiki></code></bdi> khi không có phủ định vẫn sẽ không thay đổi. [https://phabricator.wikimedia.org/T427443]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:33}} {{PLURAL:33|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến người đánh giá sử dụng thanh công cụ Quản lý Trang (Page Curation) không tự động được đăng ký theo dõi các cuộc thảo luận mà họ bắt đầu bình luận trên trang nay đã được giải quyết. Người đánh giá giờ sẽ nhận được thông báo khi có người nào đó trả lời những cuộc thảo luận này. [https://phabricator.wikimedia.org/T329346]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Kể từ ngày 29 tháng 6, các lượt tải xuống tự động từ trang dumps.wikimedia.org sẽ phải tuân theo [[Foundation:Special:MyLanguage/Policy:Wikimedia Foundation User-Agent Policy|quy định về user-agent]]. Các yêu cầu tự động mà cung cấp user-agent trống hoặc chung chung sẽ bị chặn. Việc truy cập vào các bản sao lưu (dump) thông qua Dịch vụ Đám mây Wikimedia sẽ không bị ảnh hưởng. Đây là thông báo tiếp theo sau thông báo được đưa ra trong [[m:Special:MyLanguage/Tech/News/2026/25|Bản tin Kỹ thuật số 25-2026]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.9|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/27|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W27"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 11:48, ngày 29 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30744833 -->
== <span lang="en" dir="ltr">Tech News: 2026-28</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2026-W28"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2026/28|Translations]] are available.
'''Updates for editors'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Recurrent item]] View all {{formatnum:34}} community-submitted {{PLURAL:34|task|tasks}} that were [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|resolved last week]]. For example, an issue where the search bar results on Wikidata, showed English results instead of using the correct language fallback for users of language variants, has now been fixed. Search suggestions will now follow the expected language fallback chain. [https://phabricator.wikimedia.org/T429769]
'''Updates for technical contributors'''
* In preparation for [[m:Special:MyLanguage/Event:Celebrate Women|Celebrate Women campaign]] planned for March 2027, the Wikimedia Foundation’s [[m:Special:MyLanguage/Wikimedia Foundation/Advancement/Community Growth/Content Enablement|Content Enablement team]] has launched a 22-question survey to better understand technical contributions by women+ (anyone who identifies as a woman) across Wikimedia projects. The survey takes approximately 15–20 minutes to complete and will remain open until 20 July 2026. The [[m:Special:MyLanguage/Celebrate Women/Technical contributions survey|questions]] are also available on-wiki for review in advance.
* The [[mw:Special:MyLanguage/Extension:Score|Score extension]] now supports rendering music scores as SVG images in addition to PNG, addressing a long-standing [[:phab:T49578|feature request]] and resolving historical image quality issues. Both formats are now provided to clients, with PNG in the <bdi lang="zxx" dir="ltr"><code><nowiki>src</nowiki></code></bdi> attribute and SVG in the <bdi lang="zxx" dir="ltr"><code><nowiki>srcset</nowiki></code></bdi> attribute.
* The new [[wikitech:Parsoid|Parsoid]] parser [[mw:Special:MyLanguage/Parsoid/Parser_Unification/Updates|continues to be deployed to additional wikis]], making it easier to introduce new reading and editing features. It was enabled on French Wikipedia, bringing total progress to covering 78.9% of Wikipedia page views. Rollout to English Wikipedia desktop will progress through this week.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Recurrent item]] Detailed code updates later this week: [[mw:MediaWiki 1.47/wmf.10|MediaWiki]]
'''In depth'''
* The Wikimedia Hackathon 2026 [[diffblog:2026/06/29/wikimedia-hackathon-2026-building-collaborating-and-shaping-the-future-together/|recap blog post]] is now live. It highlights the projects, sessions, and social activities from this year’s event, and shares initial plans for the 2027 Wikimedia Hackathon.
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2026/28|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2026-W28"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 13:57, ngày 6 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30773578 -->
== Bản tin Kỹ thuật: Tuần 29-2026 ==
<section begin="technews-2026-W29"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/29|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng [[mw:Special:MyLanguage/Growth/Revise_Tone|Xem lại Giọng văn]] giúp người mới xác định những đoạn văn trong bài viết Wikipedia mà có thể chứa ngôn ngữ không bách khoa và khuyến khích họ xem xét lại giọng văn đó. Tính năng này đã được [[w:en:A/B_testing|thử nghiệm A/B]] trên các Wikipedia tiếng Ả Rập, tiếng Anh, tiếng Pháp và tiếng Bồ Đào Nha, tại đó tỷ lệ hoàn thành nhiệm vụ của người mới [[mw:Special:MyLanguage/Growth/Revise_Tone#Experiment_Results|tăng 38.7%]] so với nhiệm vụ Hiệu đính mặc định, mà không làm giảm chất lượng sửa đổi. Cuộc thử nghiệm đã kết thúc vào ngày 9 tháng 7 và tính năng này nay đã có sẵn cho tất cả mọi người trên các wiki này, đồng thời có thể cấu hình được thông qua Cấu hình Cộng đồng. [[phab:T426364|Kế hoạch]] dự kiến là sẽ phát hành Xem lại Giọng văn đến nhiều trang wiki hơn.
* Cấu hình cộng đồng cho phép [[mw:Special:MyLanguage/Help:Growth/Mentorship#Automated mentor list cleanup|tự động loại bỏ cố vấn không hoạt động]] dựa trên các tiêu chí có thể cấu hình được sẽ được kích hoạt vào thứ 5, ngày 16, [[mw:Special:MyLanguage/Growth/Deployment|trên một số wiki]] để đảm bảo danh sách cố vấn được cập nhật. Cố vấn là những người đóng góp có kinh nghiệm, tự nguyện tham gia giúp đỡ người dùng mới trên wiki thông qua [[mw:Special:MyLanguage/Growth/Feature summary|Tính năng Phát triển (Growth)]]. Bảo quản viên nay có thể chuẩn bị các cài đặt thông qua [[w:Special:CommunityConfiguration/Mentorship|Đặc biệt:Cấu hình Cộng đồng/Cố vấn]]; những cài đặt này sẽ có hiệu lực kể từ thứ 5.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:38}} {{PLURAL:38|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến một số người dùng ứng dụng Wikipedia trên thiết bị Android bị đăng xuất ngay sau khi đăng nhập, khiến họ không thể duy trì trạng thái đăng nhập và sửa đổi trang, nay đã được giải quyết. [https://phabricator.wikimedia.org/T316916]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Việc sửa đổi trang thông qua đoạn mã người dùng hoặc tiện ích khiến cho nhãn danh sách theo dõi mà người dùng gán cho trang đó bị đặt lại. Vấn đề này nay đã được giải quyết. [https://phabricator.wikimedia.org/T423778]
* Để khắc phục lỗi Safari (xem [[phab:T425211]]), trên các wiki đã kích hoạt Parsoid, các liên kết wiki href nay sử dụng urls tuyệt đối thay vì url tương đối theo giao thức. Đầu ra API REST vẫn sẽ không thay đổi và sẽ tiếp tục sử dụng url tương đối theo giao thức. Các tiện ích, đoạn mã người dùng, bot và CSS có thể cần được điều chỉnh nếu chúng dựa vào sự hiện diện của url tương đối theo giao thức trong các liên kết wiki href. [https://phabricator.wikimedia.org/T431358]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.11|MediaWiki]]
'''Chuyên sâu'''
* Nhóm Nền tảng Thử nghiệm của Quỹ Wikimedia đã đăng bài viết trên blog phản ánh về năm đầu tiên thực hiện thử nghiệm có cấu trúc của họ. Bài viết nêu bật những thử nghiệm thành công như Kiểm tra Chép dán, Kiểm tra Nguồn tham khảo và Kiểm tra Giọng văn, những thử nghiệm đã cải thiện kết quả sửa đổi và được triển khai cho nhiều người dùng hơn, cũng như những thử nghiệm không dẫn đến việc thay đổi sản phẩm. [[diffblog:2026/07/07/moving-the-needle-how-we-test-new-ideas-across-wikimedia-projects|Đọc thêm]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/29|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W29"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:11, ngày 13 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30804401 -->
== Bản tin Kỹ thuật: Tuần 30-2026 ==
<section begin="technews-2026-W30"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/30|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Reader/Reader Experience|Nhóm Trải nghiệm Người đọc]] đã kết hợp phản hồi của cộng đồng xoay quanh vị trí của các nút sao theo dõi và nút danh sách theo dõi đối với [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4 Reading lists|tính năng beta Danh sách Đọc]], nhằm cho phép lưu lại các bài viết để đọc sau – một [[m:Special:MyLanguage/Community Wishlist/W102|mục danh sách mong muốn]] để đưa chức năng này lên web. Các biên tập viên được mời kích hoạt tính năng beta để thử nghiệm tính năng này và [[phab:T426453|chia sẻ suy nghĩ của mình]].
* [[mw:Special:MyLanguage/VisualEditor/Suggestion Mode|Chế độ Đề xuất]] cung cấp những đề xuất sửa đổi trong Trình Soạn thảo Trực quan để cải thiện các bài viết trên Wikipedia. [[Special:EditChecks|Mọi đề xuất]] đều [[mw:Special:MyLanguage/Help:Suggestion mode#For administrators – local customization|có thể được cộng đồng cấu hình]]. Tính năng [[mw:Special:MyLanguage/Edit check/TextMatch|Văn bản Khớp chính xác]] (TextMatch) là một cách giúp cho các tình nguyện viên có thể tạo đề xuất tùy chỉnh cục bộ. Tính năng này tìm kiếm các chuỗi văn bản trong bài viết, và nay cũng bao gồm việc hỗ trợ cho các biểu thức chính quy. Điều này mang lại cho các tình nguyện viên độ chính xác và tính linh hoạt cao hơn đối với những loại đề xuất mà họ có thể tạo ra cục bộ. Lưu ý: Đề xuất [[mw:Special:MyLanguage/Edit check/Configuration#:~:text=maximumEditcount|có thể được nhắm tới]] dựa trên số lần sửa đổi của người thực hiện sửa đổi cũng như các khía cạnh khác của trang. Bạn có thể [[mw:Special:MyLanguage/Help:Suggestion mode#Create custom local types of Suggestions|tìm ví dụ từ các cộng đồng khác]] để lấy cảm hứng, kể cả việc sử dụng Văn bản Khớp chính xác nhằm phát hiện: lỗi chính tả, lỗi ngữ pháp, có khả năng quảng cáo, lời sáo rỗng, cách sử dụng dấu gạch ngang hoặc dấu gạch nối không chính xác, từ khóa thời gian không cụ thể, tên lỗi thời, v.v. Bất kỳ [[mw:Special:MyLanguage/Talk:VisualEditor/Suggestion Mode|phản hồi]] nào đều được chúng tôi hoan nghênh.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, sự cố về công cụ SVG Translate khiến cho nó có thể sử dụng phiên bản tập tin lỗi thời, khiến các bản dịch hiện có bị ghi đè khi các bản dịch mới được tải lên, nay đã được [[phab:T430577|giải quyết]]. Nhìn chung, trong quý cuối cùng từ tháng 4 đến tháng 6 năm 2026, Quỹ Wikimedia đã giải quyết khoảng 337 tác vụ cộng đồng.
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Trên các wiki có hỗ trợ Parsoid, Parsoid nay hiển thị tối đa 1.250 hình ảnh mỗi trang. Một danh mục theo dõi mới, "media-limit-reached", sẽ sớm được cung cấp để xác định các trang đã đạt đến giới hạn này, giúp dễ dàng tìm thấy nội dung có thể bị hạn chế đầu ra phương tiện trong quá trình hiển thị. Xem [[phab:T430854]] để biết thêm thông tin và cung cấp phản hồi.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.12|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/30|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W30"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 05:46, ngày 21 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30836091 -->
== Request for comment (the future of Abstract Wikipedia) ==
<bdi lang="en" dir="ltr" class="mw-content-ltr">
Apologies if this has not yet been translated into your wiki's language. {{int:Please-translate}}
You are invited to voice your opinions in a [[:m:Requests for comment/The future of Abstract Wikipedia|request for comment about the future of Abstract Wikipedia]]. {{Int:Feedback-thanks-title}}
[[:m:User:Kowal2701|Kowal2701]] ([[:m:User talk:Kowal2701|talk]]) 12:25, ngày 24 tháng 7 năm 2026 (UTC)
</bdi>
<!-- Tin nhắn của Thành viên:DreamRimmer@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== Bản tin Kỹ thuật: Tuần 31-2026 ==
<section begin="technews-2026-W31"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/31|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Wishlist item]] Công cụ [[mw:Special:MyLanguage/ContentTranslation|Dịch Nội dung]] nay hỗ trợ chế độ tối, nhằm đáp ứng [[m:Community Wishlist/W544|yêu cầu từ Mong muốn Cộng đồng]]. Điều này giúp công cụ tương thích với các tính năng hỗ trợ khả năng tiếp cận có sẵn trong các giao diện Vector 2022 và Minerva, giúp giảm việc gây mỏi mắt cho người dùng khi dịch nội dung. [https://phabricator.wikimedia.org/T367077]
* Chế độ soạn thảo mã nguồn của Công cụ Thảo luận (DiscussionTools) và Trình soạn thảo mã nguồn 2017 nay sẽ cung cấp tính năng tự động điền cho các liên kết (<bdi lang="zxx" dir="ltr"><code><nowiki>[[</nowiki></code></bdi>), bản mẫu (<bdi lang="zxx" dir="ltr"><code><nowiki>{{</nowiki></code></bdi>), thẻ HTML và phân tích cú pháp (<bdi lang="zxx" dir="ltr"><code><nowiki><</nowiki></code></bdi>), cũng như các từ ma thuật (<bdi lang="zxx" dir="ltr"><code><nowiki>__</nowiki></code></bdi>), giúp việc chèn các liên kết, bản mẫu và mã đánh dấu wiki khác trong quá trình sửa đổi trở nên nhanh chóng và dễ dàng hơn. [https://phabricator.wikimedia.org/T432400]
* [[mw:Special:MyLanguage/Readers/Reader Growth/Mobile page previews|Nhóm Phát triển Người đọc]] đã kết thúc việc thử nghiệm với tính năng xem trước trang trên thiết bị di động và sẽ không triển khai tính năng này nữa. Tính năng Xem trước Trang là một cửa sổ bật lên ở cuối trang xuất hiện khi người đọc nhấn vào liên kết xanh, hiển thị hình thu nhỏ, đoạn mở đầu và tùy chọn mở bài viết. Thử ngiệm cho thấy tỷ lệ giữ chân người dùng không thay đổi nhưng các chỉ số khác đều mang tính tiêu cực, điều này có nghĩa là người đọc trên trang web dành cho thiết bị di động thích truy cập trực tiếp vào các bài viết được liên kết hơn là sử dụng tính năng xem trước trang.
* Nhóm Trải nghiệm Người đọc đã bước đầu ghi nhận những kết quả khả quan từ [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|tính năng Danh sách Đọc]], trong đó 93% người dùng tham gia báo cáo rằng tính năng này hữu ích. Danh sách Đọc giúp người đọc hoạt động tích cực lưu lại các bài viết để đọc sau này và hỗ trợ mục tiêu học tập của họ trên các dự án Wikimedia. Nhóm dự định sẽ tiếp tục cải tiến trước khi mở rộng tính năng này cho nhiều người dùng hơn.
* Sáng kiến [[mw:Special:MyLanguage/Wikimedia Apps/Team/Explore Feed Refresh|Làm mới Nguồn cấp dữ liệu Khám phá]] đã được thử nghiệm với những người đọc mới và không thường xuyên sử dụng ứng dụng Wikipedia. Nguồn cấp dữ liệu được làm mới giúp người đọc khám phá những nội dung mới và phù hợp với mình. Với kết quả mức độ tương tác với nguồn cấp dữ liệu tăng 10,5%, nhóm Ứng dụng Wikimedia đã quyết định mở rộng việc thiết kế lại Nguồn cấp dữ liệu Trang chủ sang iOS, áp dụng những kinh nghiệm thu được từ phiên bản dành cho Android.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến cho tên chủ đề trong tính năng Hướng dẫn Bài viết hiển thị sai cách viết hoa trên Wikipedia tiếng Pháp nay đã được giải quyết. Tên chủ đề nay sẽ tuân theo đúng quy tắc viết hoa của ngôn ngữ đó. [https://phabricator.wikimedia.org/T427201]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Sau khi thực hiện một số [[mw:Special:MyLanguage/Contributors/Account Creation Experiments|Thử nghiệm Tạo Tài khoản]] để cải thiện tỷ lệ hoàn tất việc đăng ký, một phiên bản mới của trường tên người dùng trên trang [[Special:CreateAccount|Tạo Tài khoản]] đã được triển khai. Phiên bản này bao gồm [[:c:File:Create account - July 2026 updates.png|một cửa sổ bật lên nhằm tóm tắt quy định về tên người dùng]] để cung cấp hướng dẫn rõ ràng hơn trong quá trình tạo tài khoản. Là một phần của thay đổi này, các thông báo <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-helpusername</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-help</nowiki></code></bdi> mà một số cộng đồng đã cấu hình sẽ không còn được sử dụng nữa. Nếu cộng đồng muốn tùy chỉnh hướng dẫn hiển thị trong cửa sổ bật lên mới, cộng đồng có thể sửa đổi các thông báo sau: <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-policy-popover-bullet1</nowiki></code></bdi>, <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-policy-popover-bullet2</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-policy-popover-bullet3</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T430604]
* Cuối tuần này, [[mw:Special:MyLanguage/Help:Extension:CodeMirror|trình làm nổi bật cú pháp CodeMirror]] sẽ cung cấp [[w:en:Theme (computing)|các chủ đề]]. Các chủ đề có thể được chọn từ menu thả xuống trong hộp thoại [[mw:Special:MyLanguage/Help:Extension:CodeMirror#CodeMirror preferences|tùy chọn CodeMirror]] hoàn chỉnh. Đối với mã wiki, các chủ đề có sẵn là mặc định, thân thiện với người mù màu (trước đây là tùy chọn dễ phân biệt cho người mù màu trong [[Special:Preferences#mw-prefsection-editing]]) và không làm nổi bật. Đối với các ngôn ngữ lập trình (ví dụ: CSS/JavaScript/JSON/Vue/Lua), hiện có sẵn một vài chủ đề. Các chủ đề tương tự này sau này cũng sẽ có sẵn cho mã wiki. [https://phabricator.wikimedia.org/T163533]
* Kể từ giờ trở đi, các wiki có thể giới hạn sửa đổi trong không gian tên "Thành viên" chỉ cho chính thành viên đó và một số nhóm người dùng nhất định. [[mw:Special:MyLanguage/Manual:$wgRestrictUserPageEditing|Đọc tài liệu hướng dẫn cấu hình]] để tìm hiểu thêm.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.14|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/31|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W31"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:49, ngày 27 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30856308 -->
== Bản tin Kỹ thuật: Tuần 32-2026 ==
<section begin="technews-2026-W32"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/32|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đã phát triển một [https://82db7c8d4b.catalyst.wmcloud.org/w/index.php?title=Regent%27s_Park&uselang=de bản vá demo] nhằm bọc thanh công cụ trang thành hai dòng nếu không có đủ không gian bề ngang cho tất cả các nút. Điều này nhằm mục đích giảm tình trạng quá tải trên thanh công cụ trong giao diện Vector 2022, có thể xảy ra trên một số trang ngôn ngữ Wikipedia trên một số độ rộng màn hình nhất định. [https://phabricator.wikimedia.org/T429518]
* Nhóm Trải nghiệm Người đọc dự kiến sẽ phát hành [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|Danh sách Đọc]], một [[m:Special:MyLanguage/Community Wishlist Survey 2021/Mobile and apps/Have Apps reading lists available on Destop/Mobile|mục trong Danh sách Mong muốn Cộng đồng]], hiện đang có sẵn để dùng thử dưới dạng tính năng beta, dưới dạng tính năng đầy đủ vào tháng 9. Trước thời điểm đó, chúng tôi cần các tình nguyện viên biên dịch giúp [https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-readinglists&filter=&action=translate dịch các chuỗi này] sang những ngôn ngữ khác. Tính năng này giúp hỗ trợ các mục tiêu đọc và học tập trên Wikipedia.
* Vào tuần tới, mục lục trên các trang tập tin Wikimedia Commons sẽ được cải thiện bằng cách hợp nhất mục lục trang tập tin với mục lục của trang. Điều này sẽ giúp việc hiểu cấu trúc trang tập tin, điều hướng đến những đề mục cụ thể, và chia sẻ liên kết đến các đề mục riêng biệt trở nên dễ dàng hơn. [https://phabricator.wikimedia.org/T332644]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:24}} {{PLURAL:24|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho một số hình [[w:TIFF|TIFF]] không thể tải được sau khi nhấn vào hình thu nhỏ của nó, khiến cho hình bị hỏng được hiển thị thay vì hình có kích thước đầy đủ, nay đã được giải quyết. [https://phabricator.wikimedia.org/T429326]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bộ chọn biến và hàm trong Bộ lọc Sai phạm (AbuseFilter) đã được cập nhật để hỗ trợ tìm kiếm và tự động điền. Điều này sẽ giúp những người quản lý bộ lọc tìm kiếm biến hoặc hàm mong muốn nhanh hơn. [https://phabricator.wikimedia.org/T323698]
* Các định dạng MJPEG và VP8 đã bị loại bỏ khỏi trình phát video. Thay vào đó, định dạng MP4 (MPEG-4 Phần 2) được thêm vào, nhằm cung cấp video chất lượng cao hơn cho các thiết bị iPhone đời cũ. Việc cập nhật lại tất cả các video hiện có sẽ có thể mất vài tuần. Định dạng mặc định cho các thiết bị hiện đại vẫn sẽ được giữ nguyên (VP9/WebM). [https://phabricator.wikimedia.org/T358266]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.15|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/32|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W32"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:46, ngày 3 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30872536 -->
== Bản tin Kỹ thuật: Tuần 33-2026 ==
<section begin="technews-2026-W33"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/33|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Mục Mong muốn cộng đồng]] Công cụ mới Trình tạo Biểu đồ (ChartWizard) [[c:Special:ChartWizard/Data:Example.Pie.chart|nay đã có mặt trên Wikimedia Commons]] dành cho các thành viên có mong muốn tạo các biểu đồ từ dữ liệu của riêng mình. Trình hướng dẫn này giúp [[mw:Special:MyLanguage/Extension:Chart|phần mở rộng Chart]] trở nên thân thiện hơn với người mới bắt đầu bằng cách cho phép các biên tập viên tạo biểu đồ, chẳng hạn như biểu đồ cột và biểu đồ tròn, mà không cần phải sử dụng JSON. Các thành viên vẫn có thể chuyển sang trình soạn thảo mã JSON nếu họ muốn. Mọi ý kiến đóng góp về công cụ mới này đều được hoan nghênh trên [[m:Talk:Community Wishlist/W414|trang thảo luận của mong muốn này]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:19}} {{PLURAL:19|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho tiện ích Hình ảnh của Ngày của ứng dụng Wikipedia dành cho iOS hiển thị cùng một hình ảnh mỗi ngày thay vì cập nhật hàng ngày, nay đã được giải quyết. [https://phabricator.wikimedia.org/T430692]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Hình ảnh SVG cho [[mw:Special:MyLanguage/Extension:Math|công thức toán học]] sẽ sớm được tạo trong trình duyệt thay vì trên máy chủ. MathML vẫn sẽ tiếp tục được tạo trên máy chủ và hiển thị trong trình duyệt mà không cần JavaScript. Wikibooks sẽ áp dụng thay đổi này vào ngày 12 tháng 8, Wikisource vào ngày 19 tháng 8 và Wikipedia từ ngày 20-27 tháng 8. Bạn có thể thử thay đổi này bằng cách chọn "{{int:Mw-math-mathjax}}" trong phần tùy chọn của bạn. Thay đổi này là một phần trong lộ trình [[mw:Special:MyLanguage/RESTBase/deprecation|ngừng sử dụng RESTBase]] và [[phab:T431372|ngừng sử dụng Mathoid]]. [https://phabricator.wikimedia.org/T271001]
* <span class="mw-translate-fuzzy">Các trang thể loại sẽ sớm hỗ trợ việc sắp xếp các mục theo thời gian chúng được thêm vào thể loại. Điều này sẽ giúp việc tìm kiếm các trang được xếp thể loại gần đây hoặc đã xếp từ lâu trở nên dễ dàng hơn. Tính năng này cũng sẽ cải thiện quy trình làm việc đối với các thể loại bảo trì chẳng hạn như danh sách trang chờ xóa và các tác vụ rà soát theo thời gian khác. Bạn có thể sử dụng tham số URL <bdi lang="zxx" dir="ltr"><code><nowiki>cldsort=timestamp</nowiki></code></bdi> trong chế độ xem thể loại để sắp xếp các mục này.</span> [https://phabricator.wikimedia.org/T433768]
* Các [[mw:Special:MyLanguage/Extension:Gadgets|tiện ích]] và đoạn mã người dùng trên các wiki của Wikimedia nay có thể sử dụng [[phab:T395347|các tính năng theo chuẩn ES2018]] và [[phab:T419142|các tính năng theo chuẩn ES2019]] trong đoạn mã JavaScript. Trước đây, nền tảng chỉ cho phép sử dụng tối đa đến chuẩn ES2017. MediaWiki kiểm tra mã nguồn để bảo vệ chức năng khỏi các lỗi cú pháp và đảm bảo các đoạn mã đều hợp lệ trên tất cả [[mw:Special:MyLanguage/Compatibility#Browser_support_matrix|các trình duyệt được hỗ trợ]]. [https://phabricator.wikimedia.org/T419142]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.16|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/33|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W33"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:45, ngày 10 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30901051 -->
== Bản tin Kỹ thuật: Tuần 34-2026 ==
<section begin="technews-2026-W34"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/34|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Help:Extension:CampaignEvents/Registration/Worklist|Tính năng Danh sách Công việc (Worklist)]] dành cho công cụ Đăng ký Sự kiện nay đã có mặt trên tất cả các dự án wiki của Wikimedia. Với Danh sách Công việc, ban tổ chức sự kiện có thể thêm trực tiếp các bài viết mà sẽ là trọng tâm của sự kiện vào trang sự kiện. Danh sách Công việc cũng hỗ trợ tính năng [[mw:Special:MyLanguage/Help:Extension:CampaignEvents/Registration/Worklist#How Event Pathways uses the worklist|Lộ trình Sự kiện (Event Pathways)]] giúp thông báo cho các biên tập viên khác về sự kiện sắp hoặc đang diễn ra khi họ sửa đổi một bài viết có trong Danh sách Công việc của sự kiện đó. Đây là phiên bản khả thi tối thiểu (MVP), và chúng tôi hoan nghênh mọi ý kiến đóng góp. Các ban tổ chức được khuyến khích thử tính năng này. Buổi [[m:Special:MyLanguage/Event:Worklist Setup Workshop: Get Your Event Ready|Hội thảo Thực hành Danh sách Công việc]] sẽ diễn ra vào ngày 18 tháng 6 lúc 16:00 UTC và ngày 19 tháng 6 lúc 11:00 UTC.
'''Cập nhật cho biên tập viên'''
* [[Special:ShortPages]] hiển thị các trang ngắn dựa trên kích thước của chúng, nhưng trong nhiều trường hợp danh sách này bị lấp đầy bởi các trang định hướng và đổi hướng mềm, khiến việc tìm kiếm chính các bài viết ngắn đó trở nên khó khăn hơn. Kể từ cuối tuần này, bạn sẽ có thể loại bỏ một bài viết khỏi trang đặc biệt này bằng cách thêm từ ma thuật <bdi lang="zxx" dir="ltr"><code><nowiki>__EXPECTSHORTPAGE__</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T433203]
* Một wiki mới đã được tạo ra: {{int:project-localized-name-group-wikipedia/vi}} tiếng [[d:Q3436680|Bole]] ([[w:bol:|<bdi lang="zxx" dir="ltr"><code><nowiki>w:bol:</nowiki></code></bdi>]]) [https://phabricator.wikimedia.org/T429921]
* Kể từ tuần ngày 17 tháng 8, thanh công cụ trang sẽ tự động xuống thành hai hàng khi không còn đủ không gian theo chiều ngang để hiển thị tất cả các nút. Đây là một [[phab:T429518|bản vá đã được hợp nhất hoàn toàn từ nhóm Trải nghiệm Người đọc]] nhằm giảm bớt tình trạng chật không gian trên thanh công cụ của giao diện Vector 2022, một vấn đề mà có thể xảy ra trên một số phiên bản ngôn ngữ Wikipedia ở một số độ rộng màn hình nhất định.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:16}} {{PLURAL:16|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, việc tải các tập tin có dung lượng lớn lên Wikimedia Commons đã trở nên ổn định hơn và ít gặp lỗi hơn sau một số bản sửa lỗi liên quan đến lỗi tải lên "Không thể lấy khóa". [https://phabricator.wikimedia.org/T386640]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Debian Bullseye sẽ kết thúc Hỗ trợ Dài hạn vào ngày 31 tháng 8 năm 2026. [[phab:T434103|Một số dự án Cloud VPS]] vẫn còn instance đang chạy Debian Bullseye. Bảo trì viên của những dự án này được khuyến khích chuyển sang Debian Bookworm hoặc Debian Trixie. Hiện đã có trang [[wikitech:Help:Cloud VPS instance operating system migration|hướng dẫn di chuyển]] nhằm giúp thực hiện quy trình này, đồng thời các thành viên cũng có thể muốn xem xem liệu khối lượng công việc của họ có phù hợp hơn với Toolforge hay không. Nếu bạn cần trợ giúp hoặc không thể hoàn tất quá trình chuyển đổi trước ngày 31 tháng 8, vui lòng liên hệ với quản trị viên Cloud VPS càng sớm càng tốt. [[listarchive:list/cloud-announce@lists.wikimedia.org/thread/RVIPQSYLKMSL5M46JP6NEJVGVE6I2RXQ/|Đọc thêm]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.16|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/34|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W34"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:03, ngày 17 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30922806 -->
== Bản tin Kỹ thuật: Tuần 35-2026 ==
<section begin="technews-2026-W35"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/35|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Trang [[Special:CreateAccount|Đặc biệt:Tạo tài khoản]] đã được đơn giản hóa như là một phần của nỗ lực nhằm hiện đại hóa trải nghiệm tạo tài khoản. Khung hiển thị số liệu thống kê về dự án sẽ không còn xuất hiện bên cạnh biểu mẫu trên giao diện trang web máy tính và di động. Nhiều thử nghiệm tạo tài khoản cho thấy việc sử dụng biểu mẫu đơn giản hơn giúp người dùng mới hoàn tất quy trình đăng ký dễ dàng hơn. [https://phabricator.wikimedia.org/T433783]
* Để cải thiện hiệu suất trang, các hình ảnh nay sẽ chỉ được tải khi người dùng xem chúng. Điều này có nghĩa là những hình ảnh nằm ở phần dưới của bài viết sẽ không được tải nếu người đọc không bao giờ cuộn trang xuống phần đó của bài viết, điều này có thể ảnh hưởng đến một vài số liệu liên quan đến hình ảnh. [https://phabricator.wikimedia.org/T148047]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:42}} {{PLURAL:42|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho các hình thu nhỏ trên Abstract Wikipedia có thể không hiển thị được sau khi tập tin tương ứng được di chuyển trên Wikimedia Commons, nay đã được giải quyết. Các hình thu nhỏ nay sẽ được cập nhật chính xác khi tập tin được di chuyển. [https://phabricator.wikimedia.org/T433448]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Thẻ Thông tin Thành viên là một tính năng giúp các tuần tra viên xem thông tin về các tài khoản người dùng. Trước đây, tính năng này chỉ xuất hiện ở những nơi chẳng hạn như lịch sử trang, nhật trình và thay đổi gần đây. Giờ đây, các thành viên cũng có thể [[mw:Special:MyLanguage/Help:Extension:CheckUser#User_Info_card_in_page_content|đặt thẻ này vào nội dung trang]], bằng cách sử dụng hàm phân tích cú pháp <bdi lang="zxx" dir="ltr"><code><nowiki>{{#uic:}}</nowiki></code></bdi>. Điều này đặc biệt hữu ích trong các bản mẫu như [[:en:Template:Userlinks|<bdi lang="zxx" dir="ltr"><code><nowiki>{{Userlinks}}</nowiki></code></bdi>]] (hoặc các biến thể chuyên biệt của chúng), vì nó sẽ giúp việc xem thông tin về thành viên trên nhiều trang bảng tin nhắn trở nên dễ dàng hơn. Thẻ này sẽ chỉ được hiển thị với những người dùng đã kích hoạt tính năng này trong phần [[Special:Preferences#mw-input-wpcheckuser-userinfocard-enable|tùy chọn]] của mình. [https://phabricator.wikimedia.org/T424466]
* Do những rủi ro về bảo mật và quyền riêng tư của người dùng, chúng tôi đã vô hiệu hóa quyền truy cập vào các URL dẫn đến trang <bdi lang="zxx" dir="ltr"><code><nowiki>Special:MyPage</nowiki></code></bdi> khi sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>action=raw</nowiki></code></bdi>. Nếu điều này ảnh hưởng tới bạn, hãy cân nhắc xem bạn có thể sử dụng một phương thức nào đó thay thế hay không. Các URL dẫn đến trang <bdi lang="zxx" dir="ltr"><code><nowiki>Special:MyPage</nowiki></code></bdi> vẫn có thể truy cập và sử dụng được mà không cần sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>action=raw</nowiki></code></bdi>. Các URL cụ thể cho trang thành viên (v.d. <bdi lang="zxx" dir="ltr"><code><nowiki>User:Myusername</nowiki></code></bdi>) vẫn có thể được sử dụng với <bdi lang="zxx" dir="ltr"><code><nowiki>action=raw</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T120386]
* Nhờ một bản cập nhật, phần mềm tạo hình thu nhỏ đã được cải tiến. Nó bao gồm việc nâng cấp <bdi lang="zxx" dir="ltr"><code><nowiki>librsvg</nowiki></code></bdi> lên phiên bản 2.60 và <bdi lang="zxx" dir="ltr"><code><nowiki>ImageMagick</nowiki></code></bdi> lên 7, cũng như việc khắc phục một số lỗi tạo hình thu nhỏ đã tồn tại từ lâu chẳng hạn như lỗi hiển thị. [https://phabricator.wikimedia.org/T419815#12222841]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.17|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/35|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W35"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:45, ngày 24 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30961208 -->
== Bản tin Kỹ thuật: Tuần 36-2026 ==
<section begin="technews-2026-W36"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/36|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Một hình thức mới cho Danh sách Mong muốn Cộng đồng hiện đang được lấy ý kiến đóng góp. Bạn có thể [[m:Special:MyLanguage/Community Wishlist/Community Wishlist 2027|đọc các ý tưởng đề xuất trên Meta]]. Quy trình mới này nhằm nâng cao hiệu quả sàng lọc, bỏ phiếu và ưu tiên cho các mong muốn nhằm đảm bảo tính minh bạch và sự cân bằng giữa các nhóm dự án và phiên bản ngôn ngữ. Đợt tham vấn này sẽ kéo dài trong vòng hai tuần.
'''Cập nhật cho biên tập viên'''
* Bản phát hành mới nhất của ứng dụng Wikipedia dành cho Android bao gồm các cập nhật đối với tính năng Đã lưu (Saved), giúp trải nghiệm lưu bài viết trên ứng dụng trở nên đồng bộ hơn với phiên bản iOS và Web. Bản cập nhật này thiết kế lại tab Đã lưu với giao diện “Tất cả bài viết”, xóa bỏ danh sách đọc mặc định “Đã lưu”, đổi tên các danh sách đọc thành “Bộ sưu tập” (Collections) và hiện đại hóa trải nghiệm lưu bài viết. [https://phabricator.wikimedia.org/T420788]
* Tính năng [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|Danh sách Đọc]] đã được kích hoạt cho tất cả người dùng đã đăng nhập trên Wikipedia tiếng Bengali, tiếng Trung, tiếng Séc và tiếng Việt vào ngày 25 tháng 8, sau vài tháng hoạt động dưới dạng tính năng thử nghiệm (beta). Danh sách Đọc sẽ được triển khai đến tất cả người dùng đã đăng nhập trên Wikipedia tiếng Ả Rập, tiếng Pháp và tiếng Indonesia vào ngày 1 tháng 9, sau đó là Wikipedia tiếng Anh vào ngày 14 tháng 9, và trên tất cả các wiki Wikipedia còn lại vào ngày 28 tháng 9.
* Vào cuối tháng này, một số độc giả chưa đăng nhập trên Wikipedia tiếng Bengali, tiếng Séc, tiếng Ba Tư, tiếng Anh và tiếng Ba Lan sử dụng giao diện Minerva trên thiết bị di động sẽ nhìn thấy một [[mw:Special:MyLanguage/Readers/Reader_Growth/Minimal_Minerva|thanh điều hướng được cập nhật]] trong [[:w:vi:Thử nghiệm A/B|thử nghiệm A/B]]. Thử nghiệm này sẽ so sánh thanh điều hướng hiện tại với phiên bản mới được thiết kế nhằm giúp người dùng tìm kiếm thông tin một cách nhanh chóng và dễ dàng hơn. Mục tiêu là xác định xem những thay đổi này có khuyến khích độc giả quay lại thường xuyên hơn hay không. Thử nghiệm này sẽ không làm thay đổi trải nghiệm của người dùng và/hoặc biên tập viên đã đăng nhập.
* Các biên tập viên chuyên bảo trì các trang đổi hướng, bản mẫu và thể loại được sử dụng trên các trang đổi hướng nay có thêm các phương thức cải tiến để tìm kiếm và quản lý trang đổi hướng. Trước đây, các trang đổi hướng không thể tìm kiếm được. Hai từ khóa tìm kiếm mới, <bdi lang="zxx" dir="ltr"><code><nowiki>onlyredirects:</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>withredirects:</nowiki></code></bdi>, giờ đây cho phép tìm kiếm trực tiếp các trang đổi hướng và có thể kết hợp với các từ khóa hiện có như <bdi lang="zxx" dir="ltr"><code><nowiki>incategory:</nowiki></code></bdi>, <bdi lang="zxx" dir="ltr"><code><nowiki>intitle:</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>insource:</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T204089]
* Các công cụ tìm kiếm ISBN để tạo các nguồn trích dẫn gần đây đã không hoạt động do các vấn đề liên quan đến dịch vụ bên ngoài. Các nhà phát triển đang nỗ lực để tìm giải pháp khắc phục. [https://phabricator.wikimedia.org/T435179]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho việc tìm kiếm trang theo thể loại sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>deepcat</nowiki></code></bdi> có thể không trả về kết quả hoặc trả về kết quả không liên quan nay đã được giải quyết. [https://phabricator.wikimedia.org/T414859]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Tên miền của URL cho hình thu nhỏ đang được thay đổi từ $1 sang thumb.wikimedia.org. Các URL cũ sẽ tiếp tục hoạt động trong tương lai gần, nhưng MediaWiki sẽ chuyển sang sử dụng tên miền mới. Các URL trỏ đến các loại tập tin đa phương tiện khác như tập tin gốc, video và tập tin chuyển mã vẫn sẽ được phục vụ từ upload.wikimedia.org. [https://phabricator.wikimedia.org/T427465]
* [https://www.mediawiki.org/w/index.php?api=wmf-math%2Fv1&title=Special%3ARestSandbox API Toán học (Math API)] của Wikimedia hiện đã lỗi thời và không còn được hỗ trợ. Các điểm cuối (endpoints) này sẽ chính thức ngừng hoạt động hoàn toàn vào cuối tháng 9 năm 2026. Các nhà phát triển gọi các điểm cuối này nên chuyển sang các giải pháp hiển thị toán học thay thế, chẳng hạn như [https://developer.mozilla.org/en-US/docs/Web/MathML MathML] tích hợp sẵn hoặc [https://www.mathjax.org/ MathJax]. Các hệ thống MediaWiki được cài đặt bởi bên thứ ba sử dụng phần mở rộng Math để hiển thị công thức bắt buộc phải nâng cấp lên phiên bản v1.43 trở lên để tránh gián đoạn dịch vụ.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.18|MediaWiki]]
'''Chuyên sâu'''
* Đọc thêm về [[mw:Special:MyLanguage/Edit_check/TextMatch|TextMatch]] trong một bài viết trên Diff có tiêu đề: [[diffblog:2026/08/28/custom-edit-suggestions-for-every-wiki-how-communities-are-shaping-suggestion-mode-with-textmatch/|Đề xuất sửa đổi tùy chỉnh cho mọi wiki: Cộng đồng đang định hình Chế độ Gợi ý với TextMatch như thế nào]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/36|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W36"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:53, ngày 31 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30990659 -->
== Bản tin Kỹ thuật: Tuần 37-2026 ==
<section begin="technews-2026-W37"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/37|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng [[mw:Special:MyLanguage/Help:Growth/Tools/Add_a_link|Thêm Liên kết]] đã được nâng cấp cho người dùng trên Wikipedia tiếng Anh với khả năng phát hiện tốt hơn các liên kết có sự khác biệt về cách viết hoa. Cải tiến này sẽ giúp giảm bớt những gợi ý mơ hồ gây ra do sự khác biệt về cách viết viết hoa trong tiêu đề bài viết, bao gồm cả những bài viết về các sản phẩm văn hóa. Hiện kế hoạch cải tiến giai đoạn 2 đã được lên lịch, kế hoạch cũng sẽ nhằm mục đích chuẩn bị phát hành tính năng này ở các ngôn ngữ khác. [https://phabricator.wikimedia.org/T435526#12240876] [https://phabricator.wikimedia.org/T434259]
* Tính năng [[mw:Special:MyLanguage/Article_guidance|Chỉ dẫn bài viết]] sẽ được bật theo mặc định cho các biên tập viên mới trên Wikipedia tiếng Anh Đơn giản và Wikipedia tiếng Thổ Nhĩ Kỳ kể từ ngày 10 tháng 9 năm 2026 sau khi đã trải qua [[mw:Special:MyLanguage/Article_guidance/Updates#Summary_of_experiment_result|một cuộc thử nghiệm]]. Các biên tập viên mới có từ 0 đến 99 sửa đổi sẽ tự động nhìn thấy tính năng này khi họ nhấn vào liên kết đỏ hoặc sử dụng tùy chọn "[[tr:Vikipedi:Madde_sihirbazı|Madde oluşturto]]" (tạo bài viết) trên Wikipedia tiếng Thổ Nhĩ Kỳ để tạo bài viết mới. Thay đổi này nhằm mục đích giúp các biên tập viên mới tạo các bài viết có chất lượng cao hơn và đáp ứng các tiêu chuẩn của từng dự án Wikipedia. [[phab:maniphest/query/z3tcTjmLMxk5/#R|Các cải tiến bổ sung]] sẽ tiếp tục được thực hiện dựa trên kết quả thử nghiệm và phản hồi từ cộng đồng.
* Công cụ [https://pageviews.wmcloud.org Phân tích Lượt xem Trang] nhằm cho phép người dùng so sánh lượt xem giữa nhiều trang, năm nay đã tròn 10 tuổi và được bổ sung thêm một số tính năng mới. Chúng bao gồm [[toolforge:wikinav|WikiNav]] nhằm cung cấp thông tin chuyên sâu vào cách độc giả Wikipedia khám phá nội dung, thống kê sửa đổi trong mục [https://pageviews.wmcloud.org/siteviews?range=latest-30&sites=en.wikipedia.org Siteviews], khả năng [https://pageviews.wmcloud.org/massviews?source=wikiproject&project=en.wikipedia.org tra cứu bài viết thuộc Dự án Wiki], cũng như hỗ trợ chế độ tối. [https://phabricator.wikimedia.org/T378549]
* Một thanh điều hướng [[mw:Special:MyLanguage/Readers/Reader_Growth/Minimal_Minerva|Minerva được đơn giản hóa về mặt trực quan]] đang được thử nghiệm dành cho các độc giả chưa đăng nhập sử dụng giao diện web di động trên các dự án Wikipedia tiếng Bengal, tiếng Séc, tiếng Anh, tiếng Ba Tư và tiếng Ba Lan. Thử nghiệm này nhằm xác định xem việc đơn giản hóa thanh điều hướng có cải thiện việc giữ chân độc giả hay không. Thử nghiệm sẽ diễn ra từ ngày 31 tháng 8 đến ngày 28 tháng 9, và người dùng không cần phải thực hiện bất kỳ thao tác nào.
* [[m:Special:MyLanguage/WMDE Technical Wishes|Nhóm Mong muốn Kỹ thuật của WMDE]] đang thực hiện việc cải tiến [[en:Wikipedia:VisualEditor/Named references|tên nguồn tham khảo được tạo tự động trong Trình Soạn thảo Trực quan]]. Các biên tập viên sẽ chỉ nhận thấy một thay đổi nhỏ kể từ tuần này. Khi thêm tên nguồn tham khảo tự động việc đánh số sẽ bắt đầu tại <bdi lang="zxx" dir="ltr"><code><nowiki>:1</nowiki></code></bdi> thay vì <bdi lang="zxx" dir="ltr"><code><nowiki>:0</nowiki></code></bdi>. Đọc thêm trên [[m:WMDE Technical Wishes/References/VisualEditor automatic reference names|trang dự án]]. [https://gerrit.wikimedia.org/r/c/VisualEditor/VisualEditor/+/1332704]
* Tất cả các wiki sẽ [[m:Special:MyLanguage/Tech/Server switch|chuyển sang chế độ chỉ đọc trong vài phút]] vào ngày 23 tháng 9. Kế hoạch dự kiến diễn ra lúc 14:00 UTC. Thông tin thêm về kế hoạch này sẽ được xuất bản trong Bản tin Kỹ thuật và cũng sẽ được đăng lên trên từng wiki trong các tuần tiếp theo. [https://phabricator.wikimedia.org/T433363]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:25}} {{PLURAL:25|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho [[mw:Special:MyLanguage/Parsoid|Parsoid]] có thể xử lý sai các thẻ nowiki được lồng nhau, khiến nội dung bị mất và hiển thị nội dung không mong muốn nay đã được giải quyết. [https://phabricator.wikimedia.org/T435116]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bảo quản viên giao diện có thể cấu hình các tiện ích từ [[MediaWiki:Gadgets-definition]]. Định dạng của định nghĩa tiện ích đã được cập nhật và không còn yêu cầu tùy chọn <bdi lang="zxx" dir="ltr"><code><nowiki>ResourceLoader</nowiki></code></bdi> nữa, vì các tiện ích luôn được tải thông qua <bdi lang="zxx" dir="ltr"><code><nowiki>ResourceLoader</nowiki></code></bdi>. Điều này giúp đơn giản hóa cấu hình tiện ích bằng cách loại bỏ một tùy chọn không còn cần thiết nữa, giúp việc định nghĩa tiện ích trở nên dễ dàng hơn cho các bảo quản viên. [https://phabricator.wikimedia.org/T298199]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.19|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/37|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W37"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:44, ngày 7 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31008437 -->
== Bản tin Kỹ thuật: Tuần 38-2026 ==
<section begin="technews-2026-W38"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/38|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Nhóm Future Audiences đã mở một [[en:Special:MyLanguage/Wikipedia:Village pump (proposals)#New proposed experiment to let readers know about “Google preferred sources”|cuộc thảo luận trên Wikipedia tiếng Anh]] về một đề xuất thử nghiệm mới nhằm hiển thị thông báo tạm thời về tính năng mới [https://blog.google/products-and-platforms/products/search/original-high-quality-content-search/ Nguồn Ưu tiên của Google] dành cho độc giả Wikipedia truy cập từ Google. Thử nghiệm này nhằm kiểm tra xem liệu thông báo này có giúp thu hút khách truy cập quay lại Wikipedia thường xuyên hơn hay không. Tính năng Nguồn Ưu tiên cho phép người dùng chọn các trang web mà họ tin tưởng nhằm giúp Google có thể hiển thị nội dung từ các nguồn này một cách nổi bật hơn trong trải nghiệm trên Tìm kiếm và AI. Chúng tôi mong muốn triển khai thử nghiệm này trên các ngôn ngữ khác mà Google hỗ trợ và rất hoan nghênh sự hỗ trợ trong việc khởi xướng thảo luận trên các dự án wiki khác. Nếu bạn quan tâm, vui lòng liên hệ nhóm Future Audiences trên [[m:Special:MyLanguage/Future Audiences/Preferred sources|trang thảo luận]].
'''Cập nhật cho biên tập viên'''
* Nền tảng trò chuyện Discord ra mắt cơ chế (framework) tự thiết lập mới nhằm cho phép các trang web có thể sử dụng để tùy chỉnh cách hiển thị những liên kết đó khi được chia sẻ trên Discord. Nhóm Future Audiences dự định sẽ bắt đầu sử dụng cơ chế này để cải thiện cách hiển thị các liên kết Wikipedia khi được chia sẻ trên Discord, nhằm ghi công sửa đổi của các tình nguyện viên một cách tốt hơn. Hình thức và cách thức hoạt động của liên kết sẽ không thay đổi trong giai đoạn đầu của dự án này vì chúng tôi muốn thu thập một số dữ liệu cơ sở trước để đánh giá tác động của những thay đổi này trong tương lai. Dù vậy, nếu các thành viên cộng đồng đang hoạt động trên Discord có phát hiện ra bất kỳ vấn đề nào, họ có thể liên hệ qua [[phab:tag/future-audiences/|Phabricator]] hoặc [[m:Special:MyLanguage/Future Audiences|Metawiki]].
* Nhóm Phát triển Độc giả sẽ tiến hành một thử nghiệm xem liệu [[mw:Special:MyLanguage/Readers/Reader_Growth/Compact Lead|việc rút gọn phần mở đầu của bài viết]] kèm theo nút "đọc thêm" có giúp cải thiện việc giữ chân người đọc hay không. Thử nghiệm này sẽ bắt đầu vào ngày 17 tháng 9 trên các phiên bản Wikipedia tiếng Ả Rập, tiếng Tây Ban Nha, tiếng Pháp, tiếng Indonesia, tiếng Ý, tiếng Nhật, tiếng Bồ Đào Nha, tiếng Việt và tiếng Trung và sẽ kéo dài trong bốn tuần.
* Tất cả các wiki sẽ [[m:Special:MyLanguage/Tech/Server switch|chuyển sang chế độ chỉ đọc trong vòng vài phút]] vào ngày 23 tháng 9. Kế hoạch được lên lịch lúc 14:00 UTC. Thông tin chi tiết sẽ được đăng tải lên Bản tin Kỹ thuật và cũng sẽ được đăng lên từng wiki riêng lẻ trong tuần tới. [https://phabricator.wikimedia.org/T433363]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến [https://wikistats.wmcloud.org/ Wikistats] dành cho Wikipedia trả về lỗi HTTP 500 và không thể truy cập được, nay đã được giải quyết. [https://phabricator.wikimedia.org/T435959]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Các nhà phát triển đang bảo trì công cụ truy vấn các bảng liên kết của Wikimedia Commons cần cập nhật mã nguồn của mình để kết nối với cụm cơ sở dữ liệu (database cluster) x4 mới. Các bảng liên kết đã được chuyển từ cụm s4 sang x4, và sẽ không còn nhận được cập nhật trên cụm s4 nữa. Các bảng trang và đổi hướng vẫn sẽ tiếp tục khả dụng trên cả hai cụm này. Một bản sao dữ liệu wiki (wiki replica) cho cụm x4 sẽ được thiết lập sau này. Thay đổi này được thực hiện do cụm s4 đã trở nên quá lớn gây ảnh hưởng đến hiệu quả vận hành của bảng liên kết. Bạn có thể [[wikitech:Special:MyLanguage/News/2026 Commons links tables database split|đọc thêm]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.20|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/38|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W38"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:31, ngày 14 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31039826 -->
== Chuyển đổi máy chủ - Wiki của bạn sẽ sớm chuyển sang chế độ chỉ đọc trong một khoảng thời gian ngắn ==
<section begin="server-switch"/><div class="plainlinks">
[[:m:Special:MyLanguage/Tech/Server switch|Đọc thông báo này bằng ngôn ngữ khác]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}]
[[foundation:|Quỹ Wikimedia]] sẽ chuyển đổi lưu lượng qua lại giữa các trung tâm dữ liệu. Điều này sẽ giúp đảm bảo rằng Wikipedia và các wiki khác của Wikimedia vẫn có thể duy trì trực tuyến ngay cả sau tình huống thiên tai.
Mọi lưu lượng sẽ chuyển đổi vào ngày '''{{#time:j xg|2026-09-23|vi}}'''. Việc chuyển đổi này sẽ bắt đầu vào lúc '''[https://zonestamp.toolforge.org/{{#time:U|2026-09-23T14:00|en}} {{#time:H:i e|2026-09-23T14:00}}]'''.
Dù vậy, vì một số hạn chế của phần mềm [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], mọi sửa đổi đều phải bị ngưng lại khi việc chuyển đổi được thực hiện. Chúng tôi chân thành xin lỗi vì sự gián đoạn này, và chúng tôi đang tìm cách giảm thiểu những tình huống như vậy trong tương lai.
Một biểu ngữ sẽ được hiển thị trên tất cả các wiki 30 phút trước khi quá trình này diễn ra. Biểu ngữ sẽ tiếp tục được hiển thị cho tới khi kết thúc quá trình này.
Bạn có thể đóng góp bằng cách [https://meta.wikimedia.org/w/index.php?title=Special%3ATranslate&group=Centralnotice-tgroup-read_only_banner&task=view&language=&filter=&action=translate biên dịch và hiệu đính] dòng biểu ngữ này.
'''Bạn sẽ có thể đọc, nhưng không thể sửa đổi, tất cả wiki trong một khoảng thời gian ngắn.'''
* Bạn sẽ không thể sửa đổi trong vòng tối đa một giờ vào {{#time:l j xg Y|2026-09-23|vi}}.
* Nếu bạn cố gắng sửa đổi hay lưu trang trong khoảng thời gian này, bạn sẽ nhìn thấy một thông báo lỗi. Chúng tôi hy vọng sẽ không có sửa đổi nào bị mất trong khoảng thời gian đó, nhưng chúng tôi không thể đảm bảo được điều đó. Nếu bạn nhìn thấy thông báo lỗi, vui lòng chờ đợi cho đến khi mọi thứ trở lại bình thường. Sau đó bạn sẽ có thể lưu lại sửa đổi của mình. Tuy nhiên, chúng tôi khuyên bạn trước hết nên tạo một bản sao những thay đổi của bạn, nhằm mục đích đề phòng.
''Những ảnh hưởng khác'':
* Tác vụ xử lý nền sẽ bị chậm hơn và một số có thể bị ngừng hẳn. Các liên kết đỏ có thể sẽ không được cập nhật nhanh chóng như thường lệ. Nếu bạn tạo một bài viết đã được liên kết ở một nơi khác, liên kết đó vẫn sẽ có màu đỏ lâu hơn bình thường. Một số đoạn mã tốn nhiều thời gian chạy sẽ phải dừng lại.
* Chúng tôi hy vọng việc triển khai mã nguồn vẫn sẽ diễn ra như bất kỳ tuần nào khác. Tuy vậy, một vài trường hợp đóng băng mã nguồn có thể xảy ra nếu quá trình yêu cầu chúng sau đó.
* [[mw:Special:MyLanguage/GitLab|GitLab]] sẽ không khả dụng trong khoảng 90 phút.
Dự án này có thể bị hoãn lại nếu cần thiết. Bạn có thể [[wikitech:Switch_Datacenter|đọc lịch trình tại wikitech.wikimedia.org]]. Bất kỳ thay đổi nào đều sẽ được thông báo trong lịch trình này.
'''Xin hãy chia sẻ thông tin này với cộng đồng của bạn.'''</div><section end="server-switch"/>
[[m:user:Trizek (WMF)|Trizek (WMF)]] 12:58, ngày 15 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Trizek (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=30513874 -->
== Your feedback wanted: Remove ''(Language link added:) and similar'' edits from Special:RecentChanges ==
''(Apologies for posting in English. You can help by translating it)''
Hello, I’m Danny from [[:en:w:Wikimedia_Deutschland|Wikimedia Deutschland’s]] [[m:Wikidata_For_Wikimedia_Projects|Wikidata For Wikimedia Projects]] team.<br/>
We have been investigating and examining how Wikidata’s use in the [[Special:RecentChanges]] and [[Special:Watchlist]] pages can be made to be more useful, or less ‘noisy’ (fewer edits that have little value to the reader).
We are currently exploring to make a change in the volume and the type of Wikidata edits that appear in these pages, and '''we need your feedback''' to help us ensure this is a positive change for the Wikis and won’t disrupt your workflows.<br/>
Language links are also known as sitelinks or interlanguage links and describe when a Wikidata item is connected to a Wiki, adding it to the language dropdown tool for other connected Wikis.
[[File:Types of Lang Link changes.png|x350px|frame|A variety of "Language Link" edits as seen in the Recent Changes feed]]
The request for feedback is whether you support the removal of these language link edits from the Recent Changes and Watchlist feed, or would you oppose such a change and if so, why?
Please share you thoughts on the dedicated '''[[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|metawiki Talk page]]'''.
Further information about this change: [[m:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|m:Wikidata_For_Wikimedia_Projects/Hide_Language_Link_edits]]
Thank you for any participation or feedback you give, -- [[m:User:Danny_Benjafield_(WMDE)|User:Danny Benjafield (WMDE)]] 12:48, ngày 25 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Danny Benjafield (WMDE)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_test_list&oldid=31081007 -->
== Bản tin Kỹ thuật: Tuần 39-2026 ==
<section begin="technews-2026-W39"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/39|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[m:Special:MyLanguage/Tech/Server switch|Tất cả các wiki sẽ chuyển sang chế độ chỉ đọc]] trong vòng vài phút vào thứ 4, ngày 23 tháng 9 năm 2026 lúc [https://zonestamp.toolforge.org/1790172000 14:00 UTC]. Điều này là nhằm phục vụ cho việc thử nghiệm chuyển đổi máy chủ cơ sở dữ liệu dự phòng, [[wikitech:Special:MyLanguage/Deployments/Yearly calendar|diễn ra hai lần trong một năm]]. Trong quá trình chuyển đổi này, toàn bộ lưu lượng trên các trang web của Wikimedia được chuyển từ trung tâm dữ liệu chính sang trung tâm dữ liệu dự phòng nhằm kiểm tra tính khả dụng và ngăn ngừa việc gián đoạn dịch vụ ngay cả trong những trường hợp khẩn cấp. [https://phabricator.wikimedia.org/T433363]
'''Cập nhật cho biên tập viên'''
* Nhóm Tăng trưởng đã thử nghiệm một thông báo sau khi sửa đổi mới được thiết kế nhằm [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#4. Encourage Temporary Accounts to Register|khuyến khích những người đang có Tài khoản Tạm thời đăng ký tài khoản vĩnh viễn]]. Thông báo mới này thay thế cho nhiều hộp thoại kèm thông báo chào mừng xuất hiện cùng lúc bằng một thông báo duy nhất nhằm nêu bật những lợi ích của việc tạo một tài khoản. Thử nghiệm này đã giúp tăng tỷ lệ tạo tài khoản vĩnh viễn từ 1.94% lên 3.66%, tương đương với mức tăng khoảng 87%. Thay đổi này giờ đây sẽ được triển khai đến tất cả các dự án wiki. [https://phabricator.wikimedia.org/T433551]
* Đối với các biên tập viên Wikipedia sử dụng [[Special:Preferences#mw-prefsection-betafeatures|Tính năng Beta "Chế độ gợi ý"]], hiện có một [[Special:Preferences#mw-input-wpvisualeditor-editcheck-experimental|tùy chọn mới trong phần tùy chọn của người dùng]] nhằm hiển thị các gợi ý và kiểm tra sửa đổi mang tính "thử nghiệm". Những loại này được liệt kê tại [[Special:EditChecks#experimental-checks|Đặc biệt:EditChecks]], và nhằm mục đích để lập trình viên thử nghiệm sớm cũng như để thu thập phản hồi từ những người dùng có kinh nghiệm. Các bảo quản viên có thể thay đổi [[mw:Special:MyLanguage/Edit check/Configuration|chi tiết cấu hình]] cho từng gợi ý như thường lệ. Bảo quản viên cũng có thể [[mw:Special:MyLanguage/Help:Suggestion mode#Experimental Suggestions|sử dụng tính năng này]] để giúp thử nghiệm những ý tưởng của cộng đồng về những quy tắc kiểm tra và gợi ý do cộng đồng tạo. Những loại tính năng thử nghiệm này sẽ có giao diện trực quan khác biệt hơn vào cuối tuần này. [[mw:Talk:VisualEditor/Suggestion Mode|Mọi phản hồi đều được hoan nghênh]].
* [[m:CEE Technical Village Pump|Phòng Thảo luận Kỹ thuật CEE]] (CEE Technical Village Pump) đã được mở để đóng vai trò như một không gian thảo luận và hợp tác kỹ thuật của các cộng đồng Wikimedia tại khu vực Trung và Đông Âu.
* Một công cụ mới, [[mw:Special:MyLanguage/Language Onboarding and Development/Starter kit|Bộ Công cụ Khởi đầu]] (Starter Kit), nay đã có sẵn dành cho các cộng đồng Wikipedia ngôn ngữ mới và quy mô nhỏ. Công cụ này tập hợp những nhiệm vụ có hướng dẫn, công cụ và tài nguyên nhằm giúp cộng đồng có thể bắt đầu, theo dõi tiến độ, cũng như hợp tác cùng với cộng đồng Wikimedia rộng lớn hơn. Bộ Công cụ Khởi đầu được vận hành trên nền tảng Wikimedia Toolforge và được thiết kế dành cho các dự án Wikipedia có ít hơn 50.000 bài viết. Tìm hiểu thêm cách Bộ Công cụ Khởi đầu hoạt động và cách cộng đồng đang sử dụng công cụ này trong [[diffblog:2026/09/18/introducing-starter-kit-for-new-and-small-language-wikipedias/|bài viết này trên blog Diff]].
* Nhóm Phát triển Người đọc sẽ mở một đợt tái thử nghiệm của [[mw:Special:MyLanguage/Readers/Reader Growth/Image Browsing|thử nghiệm băng chuyền hình ảnh]]. Đợt tái thử nghiệm này sẽ sử dụng ba phiên bản thiết kế mới, được cập nhật dựa trên phản hồi của cộng đồng. Nhóm sẽ đánh giá kết quả và cùng cộng đồng quyết định xem có tiếp tục triển khai tính năng này hay không. Thử nghiệm này sẽ bắt đầu vào tuần ngày 28 tháng 9 và sẽ được thực hiện trên Wikipedia tiếng Ả Rập, tiếng Bengal, tiếng Trung, tiếng Séc, tiếng Anh, tiếng Ba Tư, tiếng Pháp, tiếng Đức, tiếng Indonesia, tiếng Nhật, tiếng Ba Lan, tiếng Bồ Đào Nha, tiếng Tây Ban Nha, tiếng Thụy Điển và tiếng Việt.
* Sau khi triển khai thành công trên Wikipedia tiếng Ả Rập, tiếng Bengal, tiếng Trung, tiếng Séc, tiếng Anh, tiếng Pháp, tiếng Indonesia và tiếng Việt, [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|tính năng Danh sách Đọc]] do nhóm Trải nghiệm Người đọc phát triển sẽ có mặt cho tất cả người dùng đã đăng nhập trên tất cả các dự án Wikipedia kể từ ngày 28 tháng 9.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho đoạn mã trạng thái cố vấn liên tục cập nhật trạng thái của cố vấn ngay cả khi không có gì thay đổi, tạo ra những mục không cần thiết trên Thay đổi Gần đây, nay đã được giải quyết. [https://phabricator.wikimedia.org/T436659]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* API truy vấn danh sách <bdi lang="zxx" dir="ltr"><code><nowiki>abusefilters</nowiki></code></bdi>, vốn được sử dụng để lấy thông tin chi tiết về các bộ lọc sai phạm đang hoạt động hoặc đã tắt được thiết lập trên wiki, đã được cập nhật để hỗ trợ tham số cấu hình <bdi lang="zxx" dir="ltr"><code><nowiki>formatversion=2</nowiki></code></bdi>, điều này dẫn đến những thay đổi gây ra lỗi (breaking changes) đến phản hồi của API. Tất cả người dùng đang bảo trì các đoạn mã người dùng hoặc đoạn mã khác cần kiểm tra xem họ có đang sử dụng API truy vấn danh sách <bdi lang="zxx" dir="ltr"><code><nowiki>abusefilters</nowiki></code></bdi> hay không, đồng thời điều chỉnh để giải quyết những thay đổi gây ra lỗi này. [https://phabricator.wikimedia.org/T435828]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.21|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/39|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W39"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 11:56, ngày 27 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31085309 -->
== Bản tin Kỹ thuật: Tuần 40-2026 ==
<section begin="technews-2026-W40"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/40|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Người dùng sử dụng giao diện mặc định trên trang web dành cho máy tính và thiết bị di động (lần lượt là Vector 2022 và Minerva) nay sẽ được thông báo nếu gợi ý tìm kiếm được hiển thị khi họ nhập vào hộp Tìm kiếm đến từ các trang đổi hướng. Trước đây, người dùng có thể bị bối rối khi gợi ý kết quả tìm kiếm hàng đầu không khớp chính xác với những gì họ nhập vào. Thông báo trang đổi hướng mới này giúp làm rõ rằng những gợi ý này không phải ngẫu nhiên mà có liên quan đến nội dung tìm kiếm. Các trang được gợi ý có thể là các trang đổi hướng đến những bài viết đích phù hợp nhất với nội dung được tìm kiếm. [https://phabricator.wikimedia.org/T303013]
* Người dùng Wikipedia chưa đăng nhập trên giao diện web di dộng sẽ bắt đầu nhìn thấy nút đánh dấu (bookmark) để lưu các bài viết vào [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|danh sách đọc]] của họ thay vì nút Sao theo dõi (Watchstar) hiện tại. Khi được nhấn vào, nút đánh dấu sẽ yêu cầu người dùng đăng nhập hoặc tạo tài khoản để lưu bài viết và đọc lại sau. Một thử nghiệm trước đó cho thấy biểu tượng đánh dấu có khả năng khuyến khích người dùng chưa đăng nhập tạo tài khoản cao gấp bốn lần so với nút Sao theo dõi. Thay đổi này là một phần trong nỗ lực nhằm khuyến khích nhiều độc giả trở thành chủ tài khoản hơn và sử dụng các tính năng giúp họ lưu lại và quay lại để đọc nội dung. [https://phabricator.wikimedia.org/T438769]
* Một thử nghiệm sẽ bắt đầu vào ngày 29 tháng 9 trên các phiên bản Wikipedia tiếng Tây Ban Nha, tiếng Ả Rập, tiếng Anh và tiếng Pháp nhằm đơn giản hóa trải nghiệm mà người dùng gặp ngay sau khi tạo tài khoản. Thử nghiệm này sẽ khám phá xem việc loại bỏ trở ngại từ Khảo sát Chào mừng người mới hiện tại có giúp người dùng mới dễ dàng hiểu được rằng cần phải làm những gì tiếp theo hơn hay không. Cuộc thử nghiệm này sẽ kéo dài đến hết tháng 10. [https://phabricator.wikimedia.org/T430058]
* [[m:Special:MyLanguage/Product and Technology Advisory Council|Hội đồng Cố vấn về Sản phẩm và Công nghệ]] đã kêu gọi cộng đồng đề xuất các chủ đề mà hội đồng nên xem xét và thảo luận với Quỹ Wikimedia. Các biên tập viên và tình nguyện viên kỹ thuật được mời đóng góp chủ đề tại [[m:Talk:Product and Technology Advisory Council|trang thảo luận của hội đồng]].
* Cuối tuần này, các cộng đồng sẽ có thể cấu hình tính năng [[mw:Special:MyLanguage/Help:Edit check|Kiểm tra và Gợi ý Sửa đổi]] để chúng được [[mw:Special:MyLanguage/Edit check/Configuration#extraNamespaces|hiển thị trong các không gian tên bổ sung]], chẳng hạn như không gian tên <bdi lang="zxx" dir="ltr"><code><nowiki>Draft:</nowiki></code></bdi>. [[mw:Talk:VisualEditor/Suggestion Mode|Mọi ý kiến đóng góp đều được hoan nghênh]].
* Một lỗi trong [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] đang khiến cho trang không thể tải được đối với người dùng có những thay đổi chưa được xem trên Wikimedia Commons. Các lập trình viên đang tiến hành khắc phục lỗi này. Trong thời gian đó, những người dùng bị ảnh hưởng có thể làm theo các giải pháp thay thế được nêu trong mục trợ giúp [[mw:Special:MyLanguage/Extension:GlobalWatchlist#GlobalWatchlist temporarily broken for users with Wikimedia Commons|có liên quan]].
* Các từ ma thuật mới <bdi lang="zxx" dir="ltr"><code><nowiki>{{CATEGORYSORT:TIMESTAMP}}</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>{{CATEGORYSORT:RTIMESTAMP}}</nowiki></code></bdi> hiện đã có sẵn để sử dụng. Chúng có khả năng thay đổi cách sắp xếp mặc định của các thể loại dựa trên dấu thời gian xếp thể loại. [https://phabricator.wikimedia.org/T433768]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:20}} {{PLURAL:20|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, sự cố không thể truy cập được [https://wikistats.wmcloud.org/ Wikistats] cho các trang Wikipedia nay đã được giải quyết. [https://phabricator.wikimedia.org/T435959]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Việc chuyển đổi trung tâm dữ liệu, vốn dự kiến được diễn ra vào ngày 23 tháng 9, đã bị hoãn lại. [[diffblog:2025/03/12/hear-that-the-wikis-go-silent-twice-a-year/|Cuộc diễn tập Equinox]] đã bộc lộ các vấn đề về năng lực hệ thống, khiến việc chuyển đổi toàn bộ dịch vụ sang trung tâm dữ liệu khác không thể thực hiện được. Quy trình này đã được tạm dừng để ưu tiên điều tra vấn đề nêu trên, nhằm đảm bảo rằng chúng tôi vẫn có thể phục vụ người dùng một cách ổn định và tin cậy. Một cuộc diễn tập mới sẽ được lên kế hoạch sau. Trong thời gian này, mọi lưu lượng truy cập và hoạt động sửa đổi vẫn sẽ diễn ra như bình thường.
* Vào ngày 23 tháng 9, một sự cố mất điện đã ảnh hưởng đến tất cả các dự án wiki trong một khoảng thời gian ngắn, gây ra vấn đề gián đoạn cho cả chế độ đọc và sửa đổi. Sự cố này cũng ảnh hưởng đến Gerrit. Điều này không liên quan gì đến việc hoãn chuyển đổi trung tâm dữ liệu. [https://www.wikimediastatus.net/incidents/9fm19t8qykk8]
* [[mw:Special:MyLanguage/Help:Extension:Produnto|Produnto]] đã được triển khai trên mediawiki.org và [[phab:T421436|một số wiki sử dụng ngôn ngữ Ấn Độ]]. Chúng tôi mong nhận được phản hồi của bạn về sản phẩm thử nghiệm này. Produnto cho phép người dùng sử dụng các mô đun Lua được lưu trữ trên [[gitlab:repos/lua|GitLab của Wikimedia]]. Nó giúp đơn giản hóa việc chia sẻ mã nguồn Lua giữa các wiki. Thay vì phải sao chép từng mô đun Lua riêng lẻ từ wiki này sang wiki khác, người dùng có thể dễ dàng chia sẻ các gói mã nguồn trên tất cả các wiki.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.22|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* [[m:Event:Cross-wiki Code Collaboration Workshop|Hội thảo cộng tác mã nguồn giữa các wiki]] sẽ được tổ chức trực tuyến vào ngày 2 tháng 10 lúc 12:30 UTC, quy tụ những cộng tác viên kỹ thuật Nam Á nhằm tìm hiểu về Produnto và bắt đầu thử nghiệm nó trên các phiên bản Wikipedia tiếng Hindi, tiếng Punjabi, tiếng Odia, tiếng Telugu và tiếng Malayalam. Produnto là một trình quản lý gói để triển khai các mô đun Lua được lưu trữ trên GitLab đến các wiki của Wikimedia và gần đây đã được triển khai trên một số wiki thí điểm.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/40|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W40"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 10:49, ngày 28 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31092225 -->
== Wikidata Sitelink changes in Recent Changes and Watchlist ==
''(Apologies for cross-posting in English, translating it will help spread the message)''
Editors on group 1 wikis, including Wikiquote, Wikibooks, Wikiversity, Wikivoyage, and Wikisource, will no longer see notifications on [[Special:RecentChanges|Recent Changes]] and [[Special:Watchlist|Watchlist]] when a link to ''another'' language version of a page is added, removed, or changed in its Wikidata item. This change will begin on '''October 5 at 07:00 UTC''' as a two-week trial to reduce high-volume, low-value notifications and make higher-value changes easier to identify. Editors who rely on these notifications should be aware of the change and can share feedback or concerns on the [[m:Wikidata For Wikimedia Projects/Clearer Wikidata Edit Summaries/Hide Language Link edits|project]] or [[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|talk page]].<br/>Please reach out if you have any questions, thank you! -- [[User:Danny_Benjafield_(WMDE)|Danny Benjafield (WMDE)]] ([[User_talk:Danny_Benjafield_(WMDE)|talk]]) sent via [[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]]) 12:43, ngày 1 tháng 10 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=31106967 -->
== Bản tin Kỹ thuật: Tuần 41-2026 ==
<section begin="technews-2026-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/2026/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'''
* Quy trình cho [[m:Special:MyLanguage/Community Wishlist/Community Wishlist 2027#Updated Community Wishlist Process 2027/2028|Danh sách mong muốn của cộng đồng]] năm nay [[m:Special:MyLanguage/Community Wishlist/Community Wishlist 2027#Updated Community Wishlist Process 2027/2028|đã được công bố]], có tính đến phản hồi từ cộng đồng. Quy trình gửi mong muốn sẽ [[m:Special:MyLanguage/Community Wishlist/FAQ#What is the deadline for submitting wishes?|kết thúc vào ngày 8 tháng 11]]. Năm nay, [[m:Special:MyLanguage/Community Wishlist/Community Wishlist 2027/Working group|một nhóm công tác (mở cho tình nguyện viên tham gia)]] gồm các thành viên cộng đồng am hiểu về khía cạnh kỹ thuật của các wiki cùng với nhân viên của Wikimedia Foundation sẽ phụ trách [[m:Special:MyLanguage/Community Wishlist/FAQ#What is triage?|quá trình phân loại]]. Dự kiến quá trình phân loại sẽ hoàn tất vào cuối tháng 11. Việc bỏ phiếu cho các mong muốn sẽ bắt đầu vào tháng 1.
'''Cập nhật cho biên tập viên'''
* Các biên tập viên sử dụng [[mw:Special:MyLanguage/VisualEditor|trình soạn thảo trực quan]] nay sẽ nhìn thấy cảnh báo khi họ dán đoạn văn bản có khả năng đã được sao chép từ nội dung ban đầu được tạo bởi một trong năm chatbot AI tạo sinh bên ngoài vào Wikipedia. Tính năng này được gọi là [[mw:Special:MyLanguage/Edit check/LLM Paste Check|Kiểm tra Dán nội dung từ LLM]]. Đây là một dạng [[mw:Special:MyLanguage/Edit check|Kiểm tra Sửa đổi]] mà cộng đồng có thể tùy chỉnh được. Hệ thống kiểm tra này tìm kiếm các mã đánh dấu (marker) trong đoạn mã HTML được sao chép và không sử dụng phương pháp phát hiện hình mờ (watermark) trong nội dung. Các sửa đổi cũng sẽ [[mw:Special:MyLanguage/Edit check/LLM Paste Check#Edit tags|được gắn thẻ]] để các tuần tra viên có thể xem xét kỹ lưỡng hơn. Tính năng này giúp người mới đóng góp nội dung tuân thủ các chính sách của Wikipedia, đồng thời giúp các biên tập viên có kinh nghiệm dễ dàng nhận diện những sửa đổi có vấn đề. Các cộng đồng có quy định riêng về việc sử dụng LLM có thể [[mw:Special:MyLanguage/Edit check/LLM Paste Check#Configuration|điều chỉnh câu từ và quy định được liên kết]]. Nhóm phát triển [[listarchive:list/translators-l@lists.wikimedia.org/message/EVHKWJ4IERZELMPIWNH3XUVUSQV5KOO4/|chân thành xin lỗi]] vì đã triển khai tính năng này mà không dành thời gian chờ cho việc dịch thuật.
* Các biên tập viên nay có thể dễ dàng [[mw:Special:MyLanguage/Wikimedia Apps/Team/Future of Editing on the Mobile Apps|truy cập trình soạn thảo trực quan bản web trực tiếp từ ứng dụng dành cho iOS và Android]]. Khi mở trình soạn thảo, người dùng sẽ được lựa chọn giữa chế độ soạn thảo trực quan và chế độ soạn thảo mã nguồn. Nếu họ chọn chế độ soạn thảo trực quan, họ sẽ được đưa tới cửa sổ giao diện web di động trong trình duyệt trên điện thoại của họ. Sau khi hoàn thành sửa đổi của mình, một biểu ngữ sẽ xuất hiện để cung cấp cho họ lựa chọn trở về ứng dụng. Điều này cho phép độc giả đóng góp nội dung một cách nhanh chóng trong khi đang đọc một cách thoải mái.
* Người dùng ứng dụng Wikipedia dành cho Android và iOS nay sẽ nhìn thấy thông báo một lần mời tạo tài khoản sau khi họ đã sử dụng ứng dụng được hai tuần liên tiếp. Thông báo này giải thích những lợi ích của việc sở hữu một tài khoản. Điều này nhằm mục đích giúp nhiều đọc giả thông thường trở thành những người dùng đã đăng nhập quay lại ứng dụng thường xuyên hơn. [https://phabricator.wikimedia.org/T434847]
* Các biên tập viên trên [[wmnoc:conf/dblists/group1.dblist|các wiki thuộc group1]], bao gồm Wikiquote, Wikibooks, Wikiversity, Wikivoyage, và Wikisource, sẽ không còn nhìn thấy thông báo trên [[mw:Special:MyLanguage/Help:Recent changes|Thay đổi Gần đây]] và [[mw:Special:MyLanguage/Help: Watching pages|Danh sách Theo dõi]] khi một liên kết đến phiên bản ngôn ngữ khác của một trang được thêm, xóa hoặc thay đổi trong khoản mục Wikidata của nó. Thay đổi này sẽ bắt đầu vào ngày 5 tháng 10 lúc 07:00 UTC dưới dạng thử nghiệm kéo dài hai tuần nhằm giảm bớt các thông báo xuất hiện với số lượng lớn nhưng ít giá trị và giúp những thay đổi quan trọng có thể được nhận diện một cách dễ dàng hơn. Các biên tập viên thường dựa vào những thông báo này có thể đọc thêm trên [[m:Wikidata For Wikimedia Projects/Clearer Wikidata Edit Summaries/Hide Language Link edits|trang dự án]] và chia sẻ ý kiến hoặc thắc mắc trên [[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|trang thảo luận]]. [https://phabricator.wikimedia.org/T439415]
* [[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 vấn đề khiến cho các cố vấn tự rút khỏi chương trình cố vấn vẫn có thể có những người được cố vấn gán vào họ và tiếp nhận các câu hỏi, nay đã được giải quyết. Những người được cố vấn sẽ được gán lại khi một cố vấn rời khỏi chương trình. [https://phabricator.wikimedia.org/T418194]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Wikimedia Brasil đã xuất bản [[m:Special:MyLanguage/Wikimedia Brasil/Arcabouço de Boas Práticas de Desenvolvimento|Khung Thực tiễn Tốt nhất về Phát triển]] (ABPD). Đây là tài liệu hướng dẫn dành cho nhân viên, nhà thầu và tình nguyện viên tham gia xây dựng các công cụ và dự án kỹ thuật. Tài liệu này bao gồm các nội dung về vòng đời dự án, bảo mật, khả năng tiếp cận, bảo vệ dữ liệu cá nhân và sử dụng AI có trách nhiệm, đồng thời giải thích cách những hướng dẫn chung của phong trào được điều chỉnh sao cho phù hợp với bối cảnh cục bộ. Họ khuyến khích các tổ chức thành viên khác sử dụng lại và tùy chỉnh tài liệu này. Đọc thêm tại [[wmfblog:2026/09/26/wikimedia-brasils-development-best-practices-framework-technical-sustainability-as-an-organizational-responsibility|bài đăng trên Diff]].
* Một URL cơ sở chuẩn (canonical base) mới dành cho các API của Wikimedia sẽ sớm được giới thiệu. Đường dẫn chuẩn mới này theo mẫu dạng <bdi lang="zxx" dir="ltr"><code><nowiki>{projectName}/api/</nowiki></code></bdi> và sẽ đóng vai trò là đường dẫn thay thế cho các API REST hiện tại (ví dụ: <bdi lang="zxx" dir="ltr"><code><nowiki>{projectName}/w/rest.php/</nowiki></code></bdi>). Cả hai phiên bản đều có thể gọi được đối với tất cả các API hiện có, nhưng cấu trúc mới sẽ là lựa chọn ưu tiên cho các mô đun API được tạo mới. Thay đổi này sẽ không gây gián đoạn cho hầu hết người dùng. Những đường dẫn hiện tại vẫn sẽ có sẵn cho mọi yêu cầu đến điểm cuối (endpoint) hiện có. Tuy nhiên, một số điểm cuối có thể trả về các URL tuân theo mẫu mới trong phần nội dung phản hồi (response body). Các thay đổi sẽ có sẵn trên wiki thử nghiệm trước, và việc triển khai dự kiến sẽ được thực hiện trên toàn bộ các dự án wiki vào cuối tháng 10. [https://phabricator.wikimedia.org/T433535]
* [[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.23|MediaWiki]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/41|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W41"/>
18:52, ngày 5 tháng 10 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=31098825 -->
== Bản tin Kỹ thuật: Tuần 42-2026 ==
<section begin="technews-2026-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/2026/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'''
* Kể từ ngày 13 tháng 10, các wiki có thể thay đổi quy tắc (pattern) mặc định cho [[: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]] (hiện tại là <syntaxhighlight lang="wikitext" inline><ref name=":1" /></syntaxhighlight>). Họ sẽ có thể sử dụng tên nguồn tham khảo dễ hiểu và dựa trên nội dung mà sẽ giúp ích nhiều hơn cho các cộng tác viên sử dụng trình soạn thảo mã nguồn (v.d. <syntaxhighlight lang="wikitext" inline><ref name="Miller2026-1" /></syntaxhighlight>). Các quy tắc đặt tên nguồn tham khảo cho Trình Soạn thảo trực quan có thể được thiết lập thông qua các thông điệp hệ thống MediaWiki, JSON, bản mẫu và mô đun ([[:mw:Special:MyLanguage/Help:Cite/VisualEditor reference names|thông tin thêm]]). Bảo quản viên có thể kích hoạt những thay đổi này thông qua [[Special:CommunityConfiguration/Cite-VisualEditor-Autonames|cấu hình cộng đồng]]. Đây là một [[:m:Special:MyLanguage/Community_Wishlist/W17|mong muốn của cộng đồng]] được triển khai bởi [[:m:Special:MyLanguage/WMDE Technical Wishes|WMDE Technical Wishes]]. [https://phabricator.wikimedia.org/T436255]
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Chú thích phụ]] là một tính năng MediaWiki mới cho phép các biên tập viên tái sử dụng nguồn tham khảo với thông tin khác nhau. Công cụ sẽ được triển khai tới Wikipedia tiếng Anh vào ngày 14 tháng 10 và đến các dự án wiki còn lại của Quỹ Wikimedia vào cuối tháng 10 (khoảng ngày 21 tháng 10). Trang [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#deployment|FAQ]] liệt kê các 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. Đây là một [[:m:WMDE Technical Wishes/Sub-referencing/History|mong muốn lâu nay của cộng đồng]] được triển khai bởi [[:m:Special:MyLanguage/WMDE Technical Wishes|WMDE Technical Wishes]]. [https://phabricator.wikimedia.org/T440243][https://phabricator.wikimedia.org/T440304]
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Moderator Tools|Công cụ Kiểm tra]] sẽ loại bỏ chế độ xem dạng danh sách của Danh sách Theo dõi và chuyển mặc định tất cả người dùng sang chế độ xem dạng nhật ký thay đổi. Trước đây, có hai cách mà Danh sách Theo dõi được hiển thị cho người dùng phiên bản web trên di động: chế độ xem dạng danh sách, nơi mà các biên tập viên có thể xem các bài viết đã theo dõi dưới dạng danh sách, và chế độ xem dạng nhật ký thay đổi, nơi mà các biên tập viên có thể xem các thay đổi được thực hiện với các bài viết đã theo dõi dưới dạng nhật ký, được kiểm soát bởi tùy chọn Điều khiển Di động Nâng cao của người dùng. Điều này đã gây ra vấn đề cho việc bảo trì mã nguồn: hai kiểu hiển thị nghĩa là cần phải quản lý hai bộ mã nguồn khác nhau. Bằng việc chuyển mặc định sang chế độ xem nhật ký theo dõi, chúng tôi sẽ đơn giản hóa được mã nguồn và giảm thiểu nguy cơ bỏ sót lỗi.
* Ứng dụng Wikipedia dành cho Android đang thử nghiệm một cách để nghe phần giới thiệu của bài viết trong mục tin “Dành cho bạn”. Một mô hình chuyển đổi văn bản thành giọng nói (text-to-speech) sẽ đọc nội dung hiện có của bài viết mà không cần viết lại hay bổ sung thêm bất kỳ nội dung nào. Chương trình thử nghiệm 30 ngày này sẽ bắt đầu trong ứng dụng Wikipedia Beta vào tuần thứ ba của tháng 9, sau đó mở rộng sang ứng dụng Wikipedia dành cho Android bản chính thức trong tháng 10 dành cho một nhóm nhỏ người dùng đủ điều kiện. Một bộ phận nhỏ người dùng ứng dụng (những người có mục tin tiếng Anh và có quan tâm đến ít nhất một chủ đề) sẽ có quyền truy cập trải nghiệm tính năng này. Thử nghiệm này là một phần trong nỗ lực rộng lớn hơn nhằm mang lại cho độc giả nhiều lựa chọn tiếp nhận nội dung và qua đó tăng cường mức độ tương tác và khả năng giữ chân người dùng. [[mw:Special:MyLanguage/Readers/Listening to Wikipedia/Phase 1|Tìm hiểu thêm]] và [[mw:Talk:Readers/Listening to Wikipedia|chia sẻ ý kiến phản hồi]].
* Tính năng [[mw:Special:MyLanguage/Help:Extension:CodeMirror|nổi bật cú pháp bằng CodeMirror]] đã được [[phab:T288161|kích hoạt]] theo mặc định cho tất cả người dùng chưa đăng nhập và mới đăng ký trên Wikipedia tiếng Anh vào ngày 14 tháng 9. Do không ghi nhận tác động tiêu cực nào, thay đổi tương tự này đang được đề xuất áp dụng toàn cục cho tất cả các dự án wiki trong vài tuần tới. Nếu bạn có thắc mắc hay ý kiến phản hồi nào, hoặc nếu wiki của bạn muốn từ chối áp dụng thay đổi này, [[mw:Special:MyLanguage/Help talk:Extension:CodeMirror#Enabling CodeMirror by default on all WMF wikis for newbies|vui lòng xem trang trợ giúp]]. [https://phabricator.wikimedia.org/T440077]
* Tính năng [[d:Wikidata:Usability_and_usefulness/Item_editing_experience/Mobile_editing_of_statements|sửa đổi lời phát biểu trên giao diện di dộng của Wikidata]] cho mọi kiểu dữ liệu sẽ chính thức ra mắt vào ngày 13 tháng 10, khi đó nó sẽ được loại bỏ khỏi danh sách [[d:Special:Preferences#mw-prefsection-betafeatures|tính năng thử nghiệm beta]] của Wikidata và có sẵn cho tất cả các biên tập viên. Người dùng có thể [[d:Wikidata_talk:Usability_and_usefulness/Item_editing_experience/Mobile_editing_of_statements|báo cáo lỗi và chia sẻ ý kiến phản hồi]].
* Tuần trước, những thay đổi về liên kết ngôn ngữ đã bị loại bỏ khỏi nguồn cấp dữ liệu của [[Special:RecentChanges|Thay đổi Gần đây]] và [[Special:Watchlist|Danh sách Theo dõi]] trên Wikivoyage, Wikisource, Wikiversity, Wikiquote và Wiktionary. Do không ghi nhận tác động tiêu cực nào, [[m:Wikidata_For_Wikimedia_Projects|Wikidata cho các Dự án Wikimedia]] có kế hoạch triển khai thay đổi này trên toàn cục cho tất cả các phiên bản Wikipedia. Việc triển khai dự kiến diễn ra vào ngày 13 tháng 10 lúc 07:00 UTC, sau thời điểm này các biên tập viên sẽ không còn nhìn thấy những thay đổi khi một liên kết đến phiên bản ngôn ngữ ''khác'' của trang được thêm, xóa hoặc thay đổi trong khoản mục Wikidata tương ứng. Những biên tập viên thường theo dõi các thông báo này có thể tìm hiểu thêm tại [[m:Wikidata For Wikimedia Projects/Clearer Wikidata Edit Summaries/Hide Language Link edits|trang dự án]] cũng như chia sẻ ý kiến hoặc yêu cầu không áp dụng thay đổi cho wiki của mình tại [[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|trang thảo luận]]. [https://phabricator.wikimedia.org/T440698]
* [[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 việc vô tình chạm vào biểu đồ trong khi cuộn trên công cụ Lượt xem trang (Pageviews) trên thiết bị di động có thể vô tình phóng to biểu đồ nay đã được khắc phục. Tính năng thu phóng bằng cách nhấn và kéo nay đã bị vô hiệu hóa trên các thiết bị có màn hình cảm ứng. [https://phabricator.wikimedia.org/T440075]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Sẽ có ba thay đổi lớn đối với các tập tin dữ liệu xuất (dump): các tập tin dữ liệu xuất nội dung kiểu cũ [https://lists.wikimedia.org/hyperkitty/list/xmldatadumps-l@lists.wikimedia.org/thread/E6D5EU4PMSTSOI2J7A46HJ3YW2W554CS/ đã ngừng hỗ trợ vào tháng 1 năm 2026] sẽ bị loại bỏ, giải pháp thay thế [https://wikitech.wikimedia.org/wiki/MediaWiki_Content_File_Exports Xuất Tập tin Nội dung MediaWiki] (MediaWiki Content File Exports) sẽ được hoãn triển khai để thiết lập một “khoảng đệm an toàn”, và chúng nay cũng có sẵn dưới dạng tập tin nén 7zip. Người dùng sẽ cần phải thay đổi URL dùng để tải xuống các tập tin dữ liệu xuất này. Để biết thêm thông tin, lộ trình thực hiện và hướng dẫn chuyển đổi, vui lòng xem trang [https://wikitech.wikimedia.org/wiki/Legacy_content_dumps_sunset Ngừng hỗ trợ tập tin dữ liệu xuất nội dung kiểu cũ].
* [[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.24|MediaWiki]]
'''Chuyên sâu'''
* Quỹ Wikimedia đã phát hiện các hoạt động trái phép từ các tác nhân của OpenAI trên các dự án Wikimedia, bao gồm việc sửa đổi các trang wiki, nỗ lực khai thác một công cụ ghi chú công khai, cũng như lưu lượng truy cập tự động với cường độ cao. [[diffblog:2026/10/05/openai-rogue-agent-activities-found-on-wikimedia-projects/|Đọc bài blog trên Diff]] để biết thêm thông tin chi tiết về hoạt động này cũng như phản hồi của Quỹ.
'''Các cuộc họp và sự kiện'''
* Hãy ghi lại lịch trình cho sự kiện Wikimedia Hackathon tiếp theo! Chúng tôi sẽ gặp gỡ nhau tại thành phố Tirana xinh đẹp của Albania để tham dự [https://www.mediawiki.org/wiki/Wikimedia%20Hackathon%202027 Wikimedia Hackathon 2027] diễn ra từ ngày 9–11 tháng 4 năm 2027. Hồ sơ đăng ký nhận học bổng và tài trợ cho nhân viên hiện đang được [https://pretix.eu/wikimedia/Hackathon-2027/ tiếp nhận qua nền tảng Pretix] và sẽ đóng vào ngày 30 tháng 10 năm 2026. Cổng đăng ký tham dự dành cho công chúng sẽ được mở vào tháng 1 năm 2027.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/42|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W42"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 07:40, ngày 13 tháng 10 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=31142468 -->
qkt68f4j9zax7mbgsca178gt1d9j78e
2570131
2570109
2026-10-13T08:39:01Z
Hiyuune
50834
dọn bớt
2570131
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ữ}}
== Bản tin Kỹ thuật: Tuần 03-2026 ==
<section begin="technews-2026-W03"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/03|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Quỹ Wikimedia đã chia sẻ một số câu hỏi định hướng cho Kế hoạch Thường niên giai đoạn tháng 7 năm 2026–tháng 6 năm 2027 trên [[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2026-2027/Product & Technology OKRs|Meta]] và ''[[diffblog:2025/12/10/shaping-wikimedia-foundations-2026-2027-annual-goals-key-questions-for-the-wikimedia-movement/|Diff]]''. Những câu hỏi này tập trung vào những xu hướng toàn cầu, những thử nghiệm nhanh và hiệu quả hơn, hỗ trợ tốt hơn cho người mới, tăng cường năng lực cho biên tập viên và người dùng có quyền nâng cao, cải thiện sự cộng tác giữa các dự án, cũng như phát triển và duy trì lượng người đọc. Mọi phản hồi và ý kiến đóng góp đều được hoan nghênh trên [[m:Talk:Wikimedia Foundation Annual Plan/2026-2027|trang thảo luận]].
'''Cập nhật cho biên tập viên'''
* Là một phần của công việc hiện do nhóm Công nghệ Cộng đồng thực hênj xoay quanh dự án [[m:Special:MyLanguage/Community Wishlist/W372|Nhiều danh sách theo dõi]] (Multiple watchlists), việc hiển thị của tính năng [[Special:EditWatchlist|Sửa đổi Danh sách theo dõi]] (EditWatchlist) sẽ được cập nhật làm bước đầu tiên hướng tới việc có được nhiều danh sách theo dõi. Ngoài ra, việc phân trang của trang [[Special:Search|Tìm kiếm]] cũng sẽ được cập nhật như là một phần của công việc liên quan đến mong muốn [[m:Special:MyLanguage/Community Wishlist/W186|Cải tiến phân trang / điều hướng trang]]. [https://phabricator.wikimedia.org/T411596]
* [[m:Special:GlobalWatchlist|Danh sách theo dõi toàn cục]] là [[mw:Special:MyLanguage/Extension:GlobalWatchlist|phần mở rộng]] của MediaWiki cho phép bạn xem danh sách theo dõi của bạn từ các wiki khác nhau trên cùng một trang. Danh sách này gần đây đã được cập nhật để trông giống như [[Special:Watchlist|Danh sách theo dõi]] thông thường hơn, chẳng hạn như tiền xử lý các tài khoản tạm thời để che giấu địa chỉ IP (trong đó có việc chuyển hướng liên kết người dùng đến các trang đóng góp), in đậm tiêu đề trang, và mở các liên kết trong phần tóm lược sửa đổi và thẻ trong tab trình duyệt mới. [https://phabricator.wikimedia.org/T398361][https://phabricator.wikimedia.org/T298919][https://phabricator.wikimedia.org/T273526][https://phabricator.wikimedia.org/T286309]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, vấn đề mà việc cấm tài khoản toàn cục không có tùy chọn cấm gửi thư điện tử, nay đã được giải quyết, và sẽ có thể sử dụng kể từ tuần ngày 13 tháng 1. [https://phabricator.wikimedia.org/T401293]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[mw:Special:MyLanguage/VisualEditor/Citation tool|Công cụ chú thích của Soạn thảo Trực quan]] và [[mw:Special:MyLanguage/Help:Reference Previews|Xem trước Chú thích]] nay hỗ trợ kiểu chú thích dạng "bản đồ". [https://phabricator.wikimedia.org/T411083]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.10|MediaWiki]]/[[mw:MediaWiki 1.46/wmf.11|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/03|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W03"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:33, ngày 12 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29907192 -->
== Thank You for Last Year – Join Wiki Loves Ramadan 2026 ==
Dear Wikimedia communities,
We hope you are doing well, and we wish you a happy New Year.
''Last year, we captured light. This year, we’ll capture legacy.''
In 2025, communities around the world shared the glow of Ramadan nights and the warmth of collective iftars. In 2026, ''Wiki Loves Ramadan'' is expanding, bringing more stories, more cultures, and deeper global connections across Wikimedia projects.
We invite you to explore the ''Wiki Loves Ramadan 2026'' [[m:Special:MyLanguage/Wiki Loves Ramadan 2026|Meta page]] to learn how you can participate and [[m:Special:MyLanguage/Wiki Loves Ramadan 2026/Participating communities|sign up]] your community.
📷 ''Photo campaign on '' [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan 2026|Wikimedia Commons]]
If you have questions about the project, please refer to the FAQs:
* [[m:Special:MyLanguage/Wiki Loves Ramadan/FAQ/|Meta-Wiki]]
* [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan/FAQ|Wikimedia Commons]]
''Early registration for updates is now open via the '''[[m:Special:RegisterForEvent/2710|Event page]]'''''
''Stay connected and receive updates:''
* [https://t.me/WikiLovesRamadan Telegram channel]
* [https://lists.wikimedia.org/postorius/lists/wikilovesramadan.lists.wikimedia.org/ Mailing list]
We look forward to collaborating with you and your community.
'''The Wiki Loves Ramadan 2026 Organizing Team''' 19:45, ngày 16 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:ZI Jony@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29879549 -->
== Bản tin Kỹ thuật: Tuần 04-2026 ==
<section begin="technews-2026-W04"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/04|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Khay được hiển thị trên [[Special:Diff|Đặc biệt:Khác]] trong chế độ xem di động đã được thiết kế lại. Giờ đây nó mặc định được thu gọn, đồng thời tích hợp một liên kết để lùi lại sửa đổi đang được hiển thị trên màn hình, giúp các biên tập viên và người duyệt bài trên điện thoại di động dễ dàng thực hiện tác vụ mà vẫn giữ giao diện thật gọn gàng. [https://phabricator.wikimedia.org/T402297]
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi từ nhiều wiki khác nhau trên cùng một trang. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] này tiếp tục được cải thiện — nay nó có thể tự động xác định hướng văn bản (nhằm đảm bảo việc hiển thị chính xác các trang web mà có tên miền bất thường) và hiển thị chi tiết phần miêu tả cho các tác vụ được lưu trong nhật trình. Cuối tuần này, một liên kết thường trực mới cho các tác vụ tạo trang cùng các lớp CSS cho từng mục nhập sẽ được thêm vào. [https://phabricator.wikimedia.org/T412505][https://phabricator.wikimedia.org/T287929][https://phabricator.wikimedia.org/T262768][https://phabricator.wikimedia.org/T414135]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:32}} {{PLURAL:32|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà được ghi nhận trước đây trong giao diện Vector 2022 mà các liên kết anchor đích bị che khuất bởi tiêu đề cố định nay đã được giải quyết. [https://phabricator.wikimedia.org/T406114]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Như đã đề cập trong [[m:Special:MyLanguage/Tech/News/2025/44|thông báo ngừng hỗ trợ vào tháng 10 năm 2025]], nhóm Giao diện MediaWiki sẽ bắt đầu loại bỏ toàn bộ điểm cuối chuyển đổi có dấu gạch chéo ở cuối khỏi API REST của MediaWiki vào tuần từ ngày 26 tháng 1. Những thay đổi này dự kiến sẽ được triển khai tới tất cả các wiki chậm nhất vào ngày 30 tháng 1. Tất cả người dùng API đang gọi những điểm cuối này được khuyên chuyển đổi sang những phiên bản không có dấu gạch chéo ở cuối. Cả hai loại biến thể điểm cuối này đều có thể được tìm thấy, so sánh và kiểm tra sử dụng [https://test.wikipedia.org/wiki/Special:RestSandbox Chỗ thử REST]. Nếu bạn có thắc mắc hay gặp bất kỳ sự cố nào, hãy gửi yêu cầu bằng cách tạo một tác vụ trong Phabricator gửi tới [https://phabricator.wikimedia.org/project/view/6931/ bảng tin #MW-Interfaces-Team].
* Tài liệu tham khảo trực quan cho [[mw:Special:MyLanguage/Wikimedia REST API|API REST của Wikimedia]] đã được chuyển. Những yêu cầu đến các tài liệu API trước đây được lưu trữ thông qua [[mw:Special:MyLanguage/RESTBase|RESTBase]] (v.d.: <code dir=ltr>https://en.wikipedia.org/api/rest_v1/</code>) nay được chuyển hướng tới [[w:en:Special:RestSandbox|Chỗ thử REST]].
* [[mw:Special:MyLanguage/Wikidata Platform|Nhóm Nền tảng Wikidata của WMF]] (WDP) đã phát hành [[d:Special:MyLanguage/Wikidata:Wikidata Platform team/Newsletter|bản tin tháng 1 năm 2026]]. Bản tin bao gồm những cập nhật về việc ngừng hoạt động điểm cuối biểu đồ đầy đủ (full-graph) cũ, thay đổi về chính sách User-Agent, thời gian làm việc hàng tháng của kế hoạch chuyển đổi sang Blazegraph, cùng những nỗ lực nhằm giảm thiểu những lỗi hồi quy gây ra bởi việc ngừng điểm cuối cũ. Xin nhắc lại rằng bạn có thể [[m:Special:MyLanguage/Global message delivery/Targets/WDP team updates|đăng ký nhận bản tin WDP đó]]!
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.12|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* [[mw:Wikimedia Hackathon Northwestern Europe 2026|Cuộc thi Hackathon Wikimedia khu vực Tây Bắc Châu Âu năm 2026]] sẽ diễn ra vào ngày 13-14 tháng 3 năm 2026 tại Arnhem, Hà Lan. Cổng đăng ký đã được mở vào giữa tháng 12 và sẽ sớm đóng lại hoặc đóng ngay khi đã đủ số lượng người tham gia. Đây là cuộc thi hackathon kéo dài hai ngày, tập trung vào mảng kỹ thuật và quy tụ các thành viên Wikimedia từ khắp khu vực. Hy vọng sẽ gặp lại bạn tại đó!
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/04|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W04"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:29, ngày 19 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29943403 -->
== Rà soát thường niên Bộ Quy tắc Ứng xử Chung và Hướng dẫn Thực thi ==
<section begin="announcement-content" />
Tôi viết thư này để thông báo với bạn rằng thời gian xem xét hàng năm đối với Bộ Quy tắc Ứng xử và Hướng dẫn Thực thi hiện đã bắt đầu. Bạn có thể đưa ra các đề xuất thay đổi đến hết ngày 9 tháng 2 năm 2026. Đây là bước đầu tiên trong nhiều bước cần thực hiện cho quá trình xem xét hàng năm. [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Đọc thêm thông tin và tìm cuộc thảo luận để tham gia trên trang UCoC trên Meta]].
[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Ủy ban Điều phối Bộ Quy tắc Ứng xử Toàn cầu]] (U4C) là một nhóm toàn cầu chuyên trách việc thực hiện Bộ Quy tắc Ứng xử Toàn cầu một cách công bằng và nhất quán. Đánh giá thường niên này được lên kế hoạch và thực hiện bởi U4C. Để biết thêm thông tin và trách nhiệm của U4C, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|bạn có thể xem Hiến chương U4C]].
Vui lòng chia sẻ thông tin này với các thành viên khác trong cộng đồng của bạn ở bất cứ nơi nào phù hợp.
-- Hợp tác với U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]])<section end="announcement-content" />
21:02, ngày 19 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Keegan (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 -->
== Bản tin Kỹ thuật: Tuần 05-2026 ==
<section begin="technews-2026-W05"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/05|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Quỹ Wikimedia mời mọi người đóng góp ý kiến cho [[m:Special:MyLanguage/Product and Technology Advisory Council/Year1 Reflections and Proposed Way Forward 2026 Update|đề xuất kế hoạch tương lai]] của [[:m:Special:MyLanguage/Product and Technology Advisory Council|Hội đồng Cố vấn Sản phẩm và Công nghệ]] chậm nhất ngày 28 tháng 2.
* Tất cả người dùng đã đăng ký tài khoản nay có thể sử dụng passkey (mã xác thực) cho việc [[m:Special:MyLanguage/Help:Two-factor authentication|xác thực hai yếu tố]] (2FA). Passkey là một cách đơn giản để đăng nhập mà không cần phải sử dụng thiết bị thứ hai. Chúng sẽ xác thực danh tính của người dùng sử dụng vân tay, nhận diện khuôn mặt, hoặc dùng mã PIN. Để thiết lập một passkey, đầu tiên hãy thiết lập phương thức xác thực 2FA thông thường. Hiện tại, để đăng nhập bằng passkey, người dùng cũng phải sử dụng cả mật khẩu. Vào cuối quý này, tính năng đăng nhập không cần mật khẩu sẽ cho phép người dùng đăng nhập chỉ bằng một cú nhấn chuột và passkey. Người dùng có quyền nâng cao cũng sẽ bắt buộc phải kích hoạt xác thực 2FA. Đây là một phần của dự án [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]].
* Những người đóng góp chưa đăng ký tài khoản trên các IP hoặc dải IP bị cấm nay có thể tương tác trên wiki để chống lại quyết định cấm trên trang thảo luận thành viên, trừ khi tùy chọn "ngăn người dùng này sửa đổi trang thảo luận của họ" được bật. Điều này giúp giải quyết vấn đề rằng người dùng chưa đăng nhập không thể sử dụng quy trình bỏ cấm mặc định thông qua trang thảo luận thành viên. [https://phabricator.wikimedia.org/T398673]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:20}} {{PLURAL:20|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, phần miêu tả phương thức Xác thực hai yếu tố (2FA) trên trang quản lý đã được cập nhật. Giờ đây nó trở nên rõ ràng và dễ hiểu hơn, giúp người dùng dễ dàng sử dụng hơn. [https://phabricator.wikimedia.org/T332385]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Một biến Bộ lọc Sai phạm mới, <code>account_type</code>, đã được thêm vào để cung cấp một cách đáng tin cậy trong việc xác định loại tài khoản được tạo trong các tác vụ <code>createaccount</code> và <code>autocreateaccount</code>. Là một phần của thay đổi này, biến <code>accountname</code> đã được đổi tên thành <code>account_name</code>, và <code>accountname</code> nay đã lỗi thời. Những người quản lý bộ lọc sai phạm nên cập nhật bất kỳ bộ lọc nào đang sử dụng biến kiểm tra loại tài khoản mã hóa cứng hoặc đã lỗi thời nào nếu có. [https://phabricator.wikimedia.org/T414049]
* Các hình thu nhỏ được yêu cầu với kích thước không chuẩn và sử dụng các phương thức không chuẩn như yêu cầu trực tiếp đến <code dir=ltr><nowiki>upload.wikimedia.org/…</nowiki></code> sẽ ngừng hoạt động trong thời gian tới. Thay đổi này nhằm ngăn chặn việc các trình thu thập dữ liệu web và bot từ bên ngoài lạm dụng. Một số người dùng có đoạn mã CSS/JS tùy chỉnh, các bảo quản viên giao diện có thể sửa tiện ích và giao diện cục bộ, cùng người viết công cụ sẽ cần cập nhật đoạn mã của mình để sử dụng kích thước hình thu nhỏ tiêu chuẩn. [[phab:T414805|Thông tin chi tiết, các liên kết tìm kiếm, cùng ví dụ về cách giải quyết chúng có sẵn trong tác vụ này]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.13|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/05|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W05"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:17, ngày 26 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29969530 -->
== Bản tin Kỹ thuật: Tuần 06-2026 ==
<section begin="technews-2026-W06"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/06|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng "{{int:pageinfo-toolboxlink}}", một tính năng cung cấp thông tin xác thực về một trang ([{{fullurl:{{FULLPAGENAME}}|action=info}} ví dụ]), nay có thêm cả phần mục lục được tạo tự động. Nếu có trang [[MediaWiki:Pageinfo-header]] được người dùng tạo cục bộ, giờ nó có thể được xóa đi. [https://phabricator.wikimedia.org/T363726]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, Trình Soạn thảo Trực quan trước đây đã thêm chức năng in đậm hoặc nghiêng vào phần miêu tả liên kết, làm cho mã wiki trở nên phức tạp. Vấn đề này hiện đã được giải quyết. [https://phabricator.wikimedia.org/T409669]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Không có bản dump XML nào được tạo ra vào ngày 20 tháng 1. Ngoài ra, kể từ giờ, các bản dump sẽ chỉ được tạo một lần mỗi tháng. [https://phabricator.wikimedia.org/T414389]
* Nhóm Giao diện MediaWiki đã ngừng hỗ trợ tất cả điểm cuối chuyển đổi có dấu gạch chéo ở cuối khỏi [https://www.mediawiki.org/wiki/Special:MyLanguage/API:REST%20API API REST của MediaWiki]. Tất cả người dùng API hiện đang gọi những điểm cuối đó được khuyến khích chuyển sang các bản không có dấu gạch chéo ở cuối. Nếu bạn có thắc mắc hoặc gặp bất kỳ sự cố nào, vui lòng gửi tác vụ phabricator tới [https://phabricator.wikimedia.org/project/view/6931/ bảng tin của #MW-Interfaces-Team].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.14|MediaWiki]]
'''Nổi bật trong tuần'''
* Xin nhắc tới người dùng rằng Quỹ Wikimedia đã chia sẻ một số câu hỏi định hướng cho Kế hoạch Hàng năm giai đoạn tháng 7 năm 2026–tháng 6 năm 2027 trên [[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2026-2027/Product & Technology OKRs|Meta]] và ''[[diffblog:2025/12/10/shaping-wikimedia-foundations-2026-2027-annual-goals-key-questions-for-the-wikimedia-movement/|Diff]]''. Những câu hỏi này tập trung vào những xu hướng toàn cầu, thử nghiệm nhanh hơn và hiệu quả hơn, hỗ trợ tốt hơn cho người mới, nâng cao năng lực cho biên tập viên và người dùng có quyền nâng cao, cải thiện việc cộng tác giữa các dự án, cũng như phát triển và giữ chân độc giả. Mọi phản hồi và ý kiến đóng góp đều được hoan nghênh trên [[m:Talk:Wikimedia Foundation Annual Plan/2026-2027|trang thảo luận]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/06|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W06"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:43, ngày 2 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30000986 -->
== Bản tin Kỹ thuật: Tuần 07-2026 ==
<section begin="technews-2026-W07"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/07|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Mục Mong muốn cộng đồng]] <span lang="en" dir="ltr" class="mw-content-ltr">Logged-in contributors who manage large or complex watchlists can now organise and filter watched pages in ways that improve their workflows with the new [[mw:Special:MyLanguage/Help:Watchlist labels|Watchlist labels]] feature. By adding custom labels (for example: pages you created, pages being monitored for vandalism, or discussion pages) users can more quickly identify what needs attention, reduce cognitive load, and respond more efficiently. This improves watchlist usability, especially for highly active editors.</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">A new feature available on [[Special:Contributions|Special:Contributions]] shows [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|temporary accounts]] that are likely operated by the same person, and so makes patrolling less time-consuming. Upon checking contributions of a temporary account, users with access to temporary account IP addresses can now see a view of contributions from the related temporary accounts. The feature looks up all the IPs associated with a given temporary account within the data retention period and shows all the contributions of all temporary accounts that have used these IPs. [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts#February 2026: Improvements to the patroller tooling|Learn more]].</span> [https://phabricator.wikimedia.org/T415674]
* <span lang="en" dir="ltr" class="mw-content-ltr">When editors preview a wikitext edit, the reminder box that they are only seeing a preview (which is shown at the top), now has a grey/neutral background instead of a yellow/warning background. This makes it easier to distinguish preview notes from actual warnings (for example, edit conflicts or problematic redirect targets), which will now be shown in separate warning or error boxes.</span> [https://phabricator.wikimedia.org/T414742]
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[m:Special:GlobalWatchlist|Global Watchlist]] lets you view your watchlists from multiple wikis on one page. The [[mw:Special:MyLanguage/Extension:GlobalWatchlist|extension]] continues to improve — it now properly supports more than one Wikibase site, for example both [[d:|Wikidata]] and [[testwikidata:|testwikidata]]. In addition, issues regarding text direction have been fixed for users who prefer Wikidata or other Wikibase sites in right-to-left (RTL) languages.</span> [https://phabricator.wikimedia.org/T415440][https://phabricator.wikimedia.org/T415458]
* <span lang="en" dir="ltr" class="mw-content-ltr">The automatic "magic links" for ISBN, RFC, and PMID numbers have been [[mw:Special:MyLanguage/Help:Magic links|deprecated in wikitext since 2021]] due to inflexibility and difficulties with localization. Several wikis have successfully replaced RFC and PMID magic links with equivalent external links, but a template was often required to replace the functionality of the ISBN magic link. There is now a new [[mw:Special:MyLanguage/Help:Magic words#isbn|built-in parser function]] <code dir=ltr><nowiki>{{#isbn}}</nowiki></code> available to replace the basic functionality of the ISBN magic link. This makes it easier for wikis who wish to migrate off of the deprecated magic link functionality to do so.</span> [https://phabricator.wikimedia.org/T145604]
* <span lang="en" dir="ltr" class="mw-content-ltr">Two new wikis have been created:</span>
** <span lang="en" dir="ltr" class="mw-content-ltr">a {{int:project-localized-name-group-wikipedia}} in [[d:Q35401|Jju]]</span> ([[w:kaj:|<code>w:kaj:</code>]]) [https://phabricator.wikimedia.org/T413283]
** <span lang="en" dir="ltr" class="mw-content-ltr">a {{int:project-localized-name-group-wikipedia}} in [[d:Q1186896|Nawat]]</span> ([[w:ppl:|<code>w:ppl:</code>]]) [https://phabricator.wikimedia.org/T413273]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* <span lang="en" dir="ltr" class="mw-content-ltr">A new global user group has been created: [[{{int:grouppage-local-bot}}|{{int:group-local-bot}}]]. It will be used internally by the software to allow community bots to bypass rate limits that are applied to abusive [[w:en:Web scraping|web scrapers]]. Accounts that are approved as bots on at least one Wikimedia wiki will be automatically added to this group. It will not change what user permissions the bot has.</span> [https://phabricator.wikimedia.org/T415588]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.15|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[mw:Special:MyLanguage/MediaWiki Users and Developers Conference Spring 2026|MediaWiki Users and Developers Conference, Spring 2026]] will be held March 25–27 in Salt Lake City, USA. This event is organized by and for the third-party MediaWiki community. You can propose sessions and register to attend.</span> [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/AZBWVI46SDEB65PGR5J6E4TYOQQEZXM7/]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/07|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W07"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 23:30, ngày 9 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30026671 -->
== Bản tin Kỹ thuật: Tuần 08-2026 ==
<section begin="technews-2026-W08"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/08|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Wikimedia Site Reliability Engineering|Nhóm SRE]] sẽ tiến hành dọn dẹp phiên bản [[m:Special:MyLanguage/Etherpad|Etherpad]] của Wikimedia, một trình sửa đổi trên web dành cho việc sửa đổi tài liệu cộng tác theo thời gian thực. Tất cả pad sẽ bị xóa vĩnh viễn sau ngày 30 tháng 4 năm 2026 – trường hợp nếu còn dự án vẫn đang được tiến hành di chuyển vào thời điểm đó thì nhóm có thể xem xét lại thời gian đó tùy từng trường hợp. Vui lòng tạo bản sao lưu cục bộ cho bất kỳ nội dung nào mà bạn muốn giữ lại, vì dữ liệu đã bị xóa không thể khôi phục được nữa. Việc dọn dẹp này sẽ giúp giảm bớt kích thước cơ sở dữ liệu và giảm thiểu lãng phí (dấu ấn) cơ sở hạ tầng. Etherpad sẽ tiếp tục hỗ trợ cộng tác theo thời gian thực, nhưng không kỳ vọng vào khả năng lưu trữ lâu dài. Những đợt dọn dẹp khác có thể xảy ra trong tương lai mà không cần báo trước. [https://phabricator.wikimedia.org/T415237]
'''Cập nhật cho biên tập viên'''
* Nhóm Tìm kiếm Thông tin sẽ triển khai [[mw:Special:MyLanguage/Readers/Information Retrieval/Phase 1|thử nghiệm trên ứng dụng di động dùng Android]] nhằm kiểm tra khả năng tìm kiếm kết hợp, có thể xử lý cả các truy vấn tìm theo ngữ nghĩa và theo từ khóa. Việc cải thiện tìm kiếm trên nền tảng này sẽ giúp người đọc dễ dàng tìm thấy những gì mà họ đang tìm kiếm hơn ngay trên Wikipedia. Thử nghiệm này sẽ bắt đầu được triển khai trước tiên là trên Wikipedia tiếng Hy Lạp vào cuối tháng 2, sau đó là các wiki tiếng Anh, tiếng Pháp và tiếng Bồ Đào Nha vào tháng 3. [https://diff.wikimedia.org/2026/01/08/semantic-search-making-it-easier-to-find-the-information-readers-want/ Đọc thêm] trên blog Diff. [https://www.mediawiki.org/wiki/Readers/Information_Retrieval]
* Nhóm Phát triển Độc giả sẽ tiến hành [[mw:Special:MyLanguage/Readers/Reader Growth/WE3.10.2 Mobile Table of Contents|một thử nghiệm]] cho người dùng web trên thiết bị di động nhằm thêm mục lục và tự động mở rộng tất cả các đề mục trong bài viết, nhằm tìm hiểu thêm về những vấn đề về điều hướng mà họ gặp phải. Thử nghiệm này sẽ có mặt trên các Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Anh, tiếng Pháp, tiếng Indonesia và tiếng Việt.
* Trước đây, các thông báo đầu trang ([[{{ns:8}}:Sitenotice]] và [[{{ns:8}}:Anonnotice]]) chỉ được hiển thị trên trang web dành cho máy tính để bàn. Giờ đây, chúng sẽ được hiển thị trên mọi nền tảng. Người dùng trên trang web di động nay sẽ thấy được những thông báo này và được thông báo. Các bảo quản viên trang web nên sẵn sàng kiểm tra và sửa các thông báo đầu trang trên các thiết bị di động để tránh xung đột với bài viết. Để từ chối, bảo quản viên giao diện có thể thêm <code dir="ltr">#siteNotice { display: none; }</code> vào [[{{ns:8}}:Minerva.css]]. [https://phabricator.wikimedia.org/T138572][https://phabricator.wikimedia.org/T416644]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:19}} {{PLURAL:19|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề trên [[Special:RecentChanges|Đặc biệt:Thay đổi gần đây]] đã được giải quyết. Trước đây, nhấn vào nút ẩn trên các bộ lọc đang được áp dụng khiến cho nút "xem những thay đổi mới từ…" biến mất, dù nó đáng lẽ phải được hiển thị. Nút này giờ đây sẽ hoạt động như mong đợi. [https://phabricator.wikimedia.org/T406339]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Hiện đã có tài liệu mới giúp biên tập viên gỡ lỗi các tính năng tìm kiếm trên trang. Nó hỗ trợ việc khắc phục sự cố khi các trang xuất hiện trong kết quả tìm kiếm, khi thứ hạng có vẻ không như mong đợi và khi bạn cần kiểm tra nội dung nào đang được lập chỉ mục, giúp việc tìm hiểu và phân tích hành vi tìm kiếm trở nên dễ dàng hơn. [[mw:Help:CirrusSearch/Debug|Tìm hiểu thêm]]. [https://phabricator.wikimedia.org/T411169]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.16|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/08|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W08"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:17, ngày 16 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30086330 -->
== Bản tin Kỹ thuật: Tuần 09-2026 ==
<section begin="technews-2026-W09"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/09|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Tính năng [[mw:Special:MyLanguage/Edit check/Reference Check|Kiểm tra Nguồn Tham khảo]] đã được triển khai tới Wikipedia tiếng Anh, điều này có nghĩa là việc triển khai tính năng trên tất cả các trang Wikipedia đã hoàn thành. Tính năng này nhắc những người mới thêm nguồn tham khảo trước khi đăng nội dung mới, giúp giảm thiểu việc lùi sửa liên quan đến các vấn đề nguồn tham khảo phổ biến và cải thiện khả năng kiểm chứng được. Trong quá trình thử nghiệm A/B, tính năng này mang lại hiệu quả rất đáng kể: những người mới có hiển thị Kiểm tra Nguồn Tham khảo có khả năng thêm nguồn tham khảo cao hơn khoảng 2,2 lần trên trang web dành cho máy tính và cao hơn khoảng 17,5 lần trên trang web dành cho di động. [https://analytics.wikimedia.org/published/reports/editing/reference_check_ab_test_report_final_2025.html]
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Extension:InterwikiSorting|Phần mở rộng InterwikiSorting]], một phần mở rộng cho phép [[m:Special:MyLanguage/Interwiki sorting order|sắp xếp các liên kết liên wiki]], đã bị gỡ bỏ khỏi Wikipedia. Do đó, những biên tập viên đã bật tính năng sắp xếp liên kết liên wiki ở chế độ không rút gọn (định dạng danh sách đầy đủ) sẽ thấy được rằng các liên kết được sắp xếp lại. Các liên kết từ nay trở đi sẽ được liệt kê theo thứ tự bảng chữ cái dựa trên mã ngôn ngữ. [https://phabricator.wikimedia.org/T253764]
* Cuối tuần này, người dùng sửa đổi một đề mục của trang bằng cách sử dụng trình soạn thảo trực quan trên thiết bị di động, sẽ nhìn thấy một nút mới có tên "Sửa đổi toàn bộ trang". Khi chạm vào nút đó, bạn sẽ có thể sửa đổi toàn bộ bài viết. Điều này sẽ giúp ích khi thay đổi bạn muốn thực hiện nằm ngoài đề mục mà bạn mở ban đầu. [https://phabricator.wikimedia.org/T387175][https://phabricator.wikimedia.org/T409112]
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đang mời các biên tập viên đánh giá xem chế độ tối có nên tiếp tục được coi là ở giai đoạn "thử nghiệm" (beta) trên wiki của họ hay không, dựa trên kinh nghiệm của họ về mức độ hoạt động tốt hay không của chế độ này trên máy tính và thiết bị di động. Nếu tính năng này được đánh giá là hoàn thiện rồi, thì các biên tập viên có thể cập nhật các thông báo giao diện trong <code dir=ltr>MediaWiki:skin-theme-description</code> và <code dir=ltr>MediaWiki:Vector-night-mode-beta-tag</code> để cho biết rằng chế độ tối đã sẵn sàng và không còn được coi là trong giai đoạn thử nghiệm nữa.
* [[mw:Wikimedia_Apps/Team/iOS/Activity_Tab|Tab Hoạt động]] được cải tiến mà hiển thị thông tin chuyên sâu về người dùng nay có sẵn cho tất cả người dùng ứng dụng Wikipedia trên (phiên bản 7.9.0 trở lên). Sau quá trình thử nghiệm A/B trước đây cho thấy tỷ lệ tạo tài khoản trong số những người dùng có quyền truy cập vào tính năng này cao hơn, tính năng này đã được triển khai cho 100% người dùng kèm vài cập nhật. Tab Hoạt động nay hiển thị các bài viết bạn đã sửa đổi trên dòng thời gian, cung cấp thông tin chi tiết về tác động của việc sửa đổi chẳng hạn như số lượng đóng góp và xu hướng xem bài viết, cùng những tùy chọn tùy chỉnh để cải thiện trải nghiệm dành cho người dùng trong ứng dụng.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho [[mw:Special:MyLanguage/Extension:DiscussionTools|Công cụ Thảo luận (DiscussionTools)]] không thể hoạt động trên thiết bị di động, từ đó khôi phục đầy đủ tất cả chức năng. [https://phabricator.wikimedia.org/T415303]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi từ nhiều wiki trên cùng một trang. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] giúp thực hiện được điều này tiếp tục được cải tiến. Cải tiến mới nhất là việc bổ sung [[mw:Extension:GlobalWatchlist#hook|hook mới]], <code dir=ltr>ext.globalwatchlist.rebuild</code>, được kích hoạt sau mỗi lần xây dựng lại danh sách theo dõi. Điều này cho phép bạn chạy các tiện ích và đoạn mã người dùng cho trang Đặc biệt. [https://phabricator.wikimedia.org/T275159]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.17|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/09|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W09"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:03, ngày 23 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30119102 -->
== Bản tin Kỹ thuật: Tuần 10-2026 ==
<section begin="technews-2026-W10"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/10|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments|Chế độ Sinh nhật]] Wikipedia 25 nay đã có mặt trên các trang Wikipedia tiếng Betawi, tiếng Breton, tiếng Trung, tiếng Séc, tiếng Hà Lan, tiếng Anh, tiếng Pháp, tiếng Gorontalo, tiếng Indonesia, tiếng Ý, tiếng Luxembourg, tiếng Madura, tiếng Sicilia, tiếng Tây Ban Nha, tiếng Thái và tiếng Việt! Tính năng chiến dịch hữu hạn này kỷ niệm 25 năm thành lập Wikipedia cùng linh vật cho ngày sinh nhật, Quả cầu Nhỏ (Baby Globe). Khi được bật, Quả cầu Nhỏ được hiển thị trên [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments/article configuration|~2,500 bài viết]], chờ người đọc khám phá. Cộng đồng có thể chọn bật chế độ Sinh nhật bằng cách đạt đồng thuận từ cộng đồng của mình và yêu cầu một bảo quản viên bật tính năng đó cũng như tùy chỉnh nó thông qua [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments#Community Configuration Demo|cấu hình cộng đồng]] trên wiki cục bộ.
'''Cập nhật cho biên tập viên'''
* [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Tham chiếu phụ (sub-referencing)]], một tính năng mới để tái sử dụng nguồn tham khảo với những chi tiết khác đã được triển khai tới Wikipedia tiếng Thụy Điển, Wikipedia tiếng Ba Lan và [[:phab:T418209|một vài trang wiki khác]]. Bạn có thể [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#test|thử tính năng này]] trên những dự án đó hoặc trên testwiki và [https://en.wikipedia.beta.wmcloud.org/wiki/Sub-referencing betawiki]. Kinh nghiệm từ wiki thí điểm đầu tiên Wikipedia tiếng Đức đã được [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing/Learnings|công bố trong báo cáo]]. Hãy liên hệ với nhóm Wikimedia Deutschland nếu bạn [[:m:Talk:WMDE Technical Wishes/Sub-referencing#Pilot wikis|quan tâm đến việc trở thành một wiki thí điểm]].
* [[mw:Special:MyLanguage/Help:Edit check#Paste check|Kiểm tra Chép dán]] (Paste Check) sẽ có mặt trên mọi trang Wikipedia trong tuần này. Tính năng này nhắc những người mới dán các đoạn văn bản mà họ không chắc viết vào Trình Soạn thảo Trực quan cân nhắc xem làm như thế có nguy cơ vi phạm bản quyền hay không. Kiểm tra Chép dán [[mw:Special:MyLanguage/Edit check/Tags|gắn thẻ]] tất cả sửa đổi mà nó hiển thị để có thể xem xét tiếp. Các bảo quản viên cục bộ có thể thiết lập cấu hình cho các khía cạnh khác nhau của tính năng này thông qua [[{{#special:EditChecks}}]]. [[mw:Special:MyLanguage/Edit check/Paste Check#A/B Experiment|Nghiên cứu]] trên 22 wiki cho thấy Kiểm tra Chép dán giúp giảm 18% số lượng sửa đổi bị lùi lại wikis found that so với nhóm đối chứng. Các biên dịch viên có thể [https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-visualeditor-ve-mw-editcheck&filter=&optional=1&action=translate giúp biên dịch] tính năng này cùng những tính năng có liên quan.
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] sẽ chuẩn hóa menu người dùng ở góc trên bên phải cho tất cả người dùng di động nhằm giúp nó gần giống trải nghiệm trên máy tính hơn. Hiện tại menu người dùng này chỉ hiển thị cho những người đã bật Chế độ Điều khiển Di động Nâng cao (AMC). Thay đổi duy nhất là một vài nút trước đây ở menu bên trái sẽ chuyển sang góc trên bên phải cho người dùng không bật chế độ AMC. Thay đổi này dự kiến được triển khai vào ngày 9 tháng 3 và nhằm mục đích cải thiện giao diện người dùng. [https://phabricator.wikimedia.org/T413912]
* Bắt đầu từ tuần ngày 2 tháng 3, các email được gửi khi thêm, xóa hoặc sửa địa chỉ email của tài khoản sẽ chuyển sang định dạng email HTML đẹp mắt và rõ ràng hơn nhiều so với định dạng email văn bản thuần túy trước đây. [https://phabricator.wikimedia.org/T410807]
* Thông báo hiện chỉ giới hạn lưu 2.000 mục lịch sử cho mỗi người dùng, điều này kéo dài trở về năm 2013 khi tính năng này mới được phát hành. Giờ nó sẽ thay đổi thành việc lưu các Thông báo trong 5 năm trở lại đây, nhưng mở rộng lên tối đa 10.000 mục. Điều này sẽ giúp bảo vệ cơ sở hạ tầng và giúp ngăn việc những thông báo xuất hiện gần đây hơn biến mất quá sớm. [https://phabricator.wikimedia.org/T383948]
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi của bạn từ nhiều wiki khác nhau trên cùng một trang tiếp tục được cải tiến. Lần cập nhật gần đây nhất cải thiện trải nghiệm sử dụng nhãn. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] nay cho phép kích hoạt [[mw:Special:MyLanguage/Manual:Language#Fallback languages|hệ thống ngôn ngữ dự phòng]] cho các khoản mục Wikidata không có nhãn bằng ngôn ngữ được xem, đồng thời hiển thị những nhãn đó trong ngôn ngữ Wikidata yêu thích của người dùng nếu không cung cấp tham số URL <code dir=ltr>uselang=</code>. [https://phabricator.wikimedia.org/T373686][https://phabricator.wikimedia.org/T416111]
* Nhóm Wikipedia dành cho Android đã bắt đầu cuộc thử nghiệm beta cho tính năng [[mw:Special:MyLanguage/Readers/Information Retrieval/Phase 1|tìm kiếm kết hợp]] (hybrid search) trên Wikipedia tiếng Hy Lạp. Khả năng tìm kiếm kết hợp có thể xử lý cả truy vấn ngữ nghĩa và từ khóa giúp người đọc dễ dàng tìm kiếm những gì họ muốn tìm kiếm ngay trên Wikipedia hơn.
* Vì lý do bảo mật, thành viên của một vài nhóm người dùng nhất định [[m:Special:MyLanguage/Mandatory two-factor authentication for users with some extended rights|bắt buộc phải bật tính năng xác thực hai yếu tố]] (2FA). Hiện tại, 2FA bắt buộc phải được bật để sử dụng nhóm người dùng, nhưng không cần phải là để trở thành thành viên nhóm đó. Do mô hình này vẫn còn một vài lỗ hổng, tình hình này sẽ [[phab:T418580|dần dần thay đổi vào tháng 3]]. Các thành viên thuộc những nhóm người dùng đó sẽ không thể tắt phương thức 2FA cuối cùng có trên tài khoản của họ, và sẽ không thể thêm người dùng không dùng 2FA vào những nhóm này. Người dùng vẫn sẽ có thể thêm phương thức xác thực mới hoặc loại bỏ chúng, miễn là còn ít nhất một phương thức được bật. Trong khoảng nửa sau của tháng 3, những người dùng mà không có 2FA sẽ bị loại bỏ khỏi những nhóm này. Điều này áp dụng cho: Bảo quản viên Thông báo Trung ương, kiểm định viên, bảo quản viên giao diện, giám sát viên, nhân viên Wikidata, nhân viên Wikifunctions, bộ phận CNTT của Văn phòng WMF và bộ phận Tin cậy & An toàn của and WMF. Sẽ không có gì thay đổi với những người dùng khác. Xem tác vụ được liên kết để biết khung thời gian triển khai. [https://phabricator.wikimedia.org/T418580]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề ngăn người dùng tạo một phiên bản trong [https://www.wikibase.cloud/ Wikibase.cloud] hiện đã được giải quyết. [https://phabricator.wikimedia.org/T416807]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Để giúp đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng cơ sở hạ tầng một cách hợp lý]], trong tháng tới Quỹ Wikimedia sẽ triển khai giới hạn truy cập API toàn cục trên tất cả các API của chúng tôi. Vào đầu tháng 3, các giới hạn nghiêm ngặt hơn sẽ được áp dụng cho các yêu cầu không xác định từ bên ngoài Toolforge/WMCS và các yêu cầu API được thực hiện từ các trình duyệt web. Vào tháng 4, những giới hạn cao hơn sẽ được áp dụng cho lưu lượng truy cập được xác định. Những giới hạn này được cố ý đặt ở mức cao nhất có thể nhằm giảm thiểu tác động đến cộng đồng. Các bot chạy trong Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào sẽ không bị ảnh hưởng vào lúc này. Tuy vậy, mọi nhà phát triển được khuyến cáo làm theo những lời khuyên thực tiễn được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn truy cập]].
* Điểm cuối Truy vấn Dữ liệu được Liên kết (LDF) của Dịch vụ Truy vấn Wikidata sẽ ngừng hoạt động vào tháng 2. Điểm cuối này phục vụ lưu lượng truy cập hạn chế, lưu lượng này đã được chuyển đổi thành công sang các phương thức truy cập dữ liệu khác phù hợp hơn để hỗ trợ các trường hợp sử dụng (use case) hiện có. Phần cứng được sử dụng để hỗ trợ điểm cuối LDF sẽ được phân bổ lại để hỗ trợ những nỗ lực chuyển đổi hệ thống backend đang diễn ra. [https://phabricator.wikimedia.org/T415696]
* Trình phân tích cú pháp Parsoid mới [[mw:Special:MyLanguage/Parsoid/Parser Unification/Updates|tiếp tục được triển khai đến nhiều wiki hơn]], nhằm cải thiện tính bền vững của nền tảng và giúp việc giới thiệu các tính năng đọc và sửa đổi mới trở nên dễ dàng hơn. Parsoid nay là trình phân tích cú pháp mặc định trên 488 trang wiki của WMF (268 trang Wikipedia), hiện chiếm hơn 10% tổng số lượt xem trang Wikipedia.
* Quy trình và tiêu chí để [[Special:MyLanguage/Wikimedia Enterprise#Access|yêu cầu quyền truy cập đặc biệt]] vào nguồn cấp dữ liệu khối lượng lớn của API ''Wikimedia Enterprise'' (miễn phí cho các trường hợp sử dụng phù hợp với nhiệm vụ), [[m:Talk:Wikimedia Enterprise#Exceptional access criteria|hiện đã được công bố]]. Điều này nhằm cung cấp tài liệu đầy đủ và rõ ràng hơn cho người dùng.
* [https://techblog.wikimedia.org/ Blog Kỹ thuật], một blog dành riêng cho cộng đồng kỹ thuật Wikimedia [https://techblog.wikimedia.org/2026/02/24/a-tech-blog-diff/ sẽ được chuyển] sang [[diffblog:|Diff]], blog tin tức và sự kiện cộng đồng. Việc chuyển đổi dự kiến sẽ được hoàn thành vào tháng 4 năm 2026, sau thời điểm này các bài viết mới sẽ được chấp nhận xuất bản. Người đọc sẽ có thể truy cập các bài đăng – cả bài cũ và mới – trên trang đích này tại https://diff.wikimedia.org/techblog.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.18|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/10|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W10"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:51, ngày 2 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30137798 -->
== Bản tin Kỹ thuật: Tuần 11-2026 ==
<section begin="technews-2026-W11"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/11|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[m:Special:MyLanguage/Tech/Server switch|Tất cả các wiki sẽ chuyển sang chế độ chỉ đọc trong vòng vài phút]] vào thứ 4, ngày 25 tháng 3 năm 2026 lúc [https://zonestamp.toolforge.org/1774450800 15:00 UTC]. Điều này là nhằm phục vụ cho việc thử nghiệm chuyển đổi máy chủ cơ sở dữ liệu dự phòng, [[wikitech:Deployments/Yearly calendar|diễn ra hai lần trong một năm]]. Trong quá trình chuyển đổi này, toàn bộ lưu lượng trên các trang web của Wikimedia được chuyển từ trung tâm dữ liệu chính sang trung tâm dữ liệu dự phòng nhằm kiểm tra tính khả dụng và ngăn ngừa việc gián đoạn dịch vụ ngay cả trong những trường hợp khẩn cấp.
* Tuần trước, tất cả các wiki đều bị giới hạn ở chế độ chỉ đọc trong vòng 2 giờ đồng hồ, cùng với đó các đoạn mã người dùng và tiện ích cũng không khả dụng trong thời gian được kéo dài. Điều này là do một sự cố bảo mật mà đã được khắc phục sau đó. Chúng tôi đang tiếp tục cố gắng để ngăn điều này tái diễn. Để cập nhật thông tin vui lòng xem [[m:Steward's noticeboard#Statement on Meta about today's user script security incident|bài đăng trên bảng tin của Nhân viên]] ([[m:Special:MyLanguage/Wikimedia Foundation/Product and Technology/Product Safety and Integrity/March 2026 User Script Incident|bản dịch]]).
'''Cập nhật cho biên tập viên'''
* Người dùng đang gặp phải nhiều lệnh cấm trên thiết bị di động nay sẽ thấy lý do cấm cho từng lần cấm riêng thay vì một thông báo chung chung. Điều này giúp họ hiểu tại sao mình bị cấm và cần thực hiện những bước nào để giải quyết vấn đề. Ví dụ, người dùng bị ảnh hưởng do sử dụng VPN phổ biến (chẳng hạn như [[Special:MyLanguage/Apple iCloud Private Relay|iCloud Private Relay]]) sẽ nhận được hướng dẫn rõ ràng hơn những việc cần làm để bắt đầu lại việc sửa đổi. [https://phabricator.wikimedia.org/T357118]
* Cuối tuần này, [[mw:Special:MyLanguage/VisualEditor/Suggestion Mode|Chế độ Đề xuất]] sẽ được cung cấp dưới dạng tính năng beta trong trình soạn thảo trực quan trên tất cả các trang Wikipedia. Tính năng này chủ động đề xuất nhiều loại hành động mà người dùng có thể cân nhắc thực hiện để cải thiện các bài viết trên Wikipedia, đồng thời tìm hiểu về các hướng dẫn có liên quan. Tính năng này có thể được cấu hình cục bộ và cũng có thể được mở rộng cục bộ với bằng việc tùy chỉnh Đề xuất. Cài đặt hiện tại có thể xem được tại trang [[Special:EditChecks]] và có [[mw:Special:MyLanguage/Help:Suggestion mode#For administrators %E2%80%93 local customization|hướng dẫn cách bảo quản viên có thể tùy chỉnh]] các liên kết để chỉ tới những trang hướng dẫn cục bộ. Tính năng này được kết nối với tính năng [[mw:Special:MyLanguage/Help:Edit check|Kiểm tra sửa đổi]], một tính năng đưa ra đề xuất cải thiện trong khi người nào đó viết nội dung mới. Trong tương lai, nhóm Sửa đổi dự kiến đánh giá tác động của tính năng này đối với người dùng mới thông qua một thử nghiệm có kiểm soát. [https://phabricator.wikimedia.org/T404600]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố liên quan đến việc con trỏ bị lệch khi sử dụng tính năng tô sáng cú pháp của CodeMirror, một tính năng giúp mã wiki (wikitext) và mã code dễ đọc hơn, nay đã được giải quyết. Vấn đề này đặc biệt ảnh hưởng đến những người dùng đã định nghĩa quy tắc phông chữ trong stylesheet tùy chỉnh khi tạo chủ đề mới bằng Công cụ Thảo luận. [https://phabricator.wikimedia.org/T418793]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Cập nhật về giới hạn truy vấn API: Để giúp đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng hợp lý cơ sở hạ tầng]], giới hạn truy vấn API toàn cục sẽ được áp dụng trong tuần này cho các yêu cầu không có User-Agent hợp lệ bắt nguồn từ bên ngoài Toolforge/WMCS cùng các yêu cầu chưa được xác thực được thực hiện từ trình duyệt web. Trong tháng 4 tới sẽ thiết lập giới hạn cao hơn cho lưu lượng truy cập được xác định. Các bot chạy trên Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào hiện sẽ không bị ảnh hưởng vì điều này. Tuy vậy, mọi nhà phát triển được khuyến cáo nên tuân theo những hướng dẫn thực tiễn tốt nhất được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn truy vấn]].
* API GraphQL mới đã được phát hành. API này được phát triển như một giải pháp thay thế linh hoạt cho một số tính năng nhất định của Dịch vụ Truy vấn Wikidata (WDQS), nhằm cải thiện trải nghiệm và khả năng thích ứng của nhà phát triển, đồng thời giúp truy cập dữ liệu hiệu quả. Hãy dùng thử và [[d:Wikidata:Wikibase GraphQL#Feedback and development|gửi phản hồi]] của mình. Bạn cũng có thể [https://greatquestion.co/wikimediadeutschland/GraphQLAPI/apply đăng ký tham gia các bài kiểm tra về khả năng sẵn dùng].
* Vào tháng 2 [[m:Special:MyLanguage/Product and Technology Advisory Council/Unsupported Tools Working Group|Nhóm Làm việc cho Công cụ Không được Hỗ trợ PTAC]] đã tiếp tục cải tiến [[commons:Special:MyLanguage/Commons:Video2commons#|Video2Commons]], trong đó sửa các lỗi liên quan đến lỗi xác thực, xử lý tệp lớn, khả năng hiển thị hàng đợi tác vụ và làm rõ hơn hành vi tải lên. Hiện một số lĩnh vực vẫn đang được tiến hành thực hiện, trong đó có những thay đổi liên quan đến việc tải lên từ phía máy chủ đã lỗi thời. Hãy đọc [[m:Special:MyLanguage/Product and Technology Advisory Council/Unsupported Tools Working Group#February 2026|phần cập nhật này]] để tìm hiểu thêm.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.19|MediaWiki]]
'''Chuyên sâu'''
* Nhóm Hướng dẫn Bài viết mời các biên tập viên Wikipedia có kinh nghiệm từ một số [[mw:Special:MyLanguage/Article guidance/Pilot wikis and collaborators#Collaborators|wiki thí điểm]] được chọn cùng những người đóng góp có quan tâm từ các trang Wikipedia khác điền vào bảng câu hỏi này, có sẵn bằng [https://docs.google.com/forms/d/e/1FAIpQLSfmLeVWnxmsCbPoI_UF2jyRcn73WRGWCVPHzerXb4Cz97X_Ag/viewform tiếng Anh], [https://docs.google.com/forms/d/e/1FAIpQLSd6rzr4XXQw8r4024fE3geTPFe13M_6w7Mitj-YJi0sOlWTAw/viewform?usp=header tiếng Ả Rập], [https://docs.google.com/forms/d/e/1FAIpQLSdok3-RfB18lcugYTUMGkpwmqG_8p760Wv4dCXitOXOszjUDw/viewform?usp=header tiếng Bengali], [https://docs.google.com/forms/d/e/1FAIpQLSfjTfYp4jEo0akA4B1e-Nfg3QZPCudUjhJzHzzDi6AHyAaMGA/viewform?usp=header tiếng Nhật], [https://docs.google.com/forms/d/e/1FAIpQLScteVoI29Aue4xc72dekk-6RYtvmMgQxzMI900UOawrFrSTWg/viewform?usp=header tiếng Bồ Đào Nha], [https://docs.google.com/forms/d/e/1FAIpQLSetdxnYwL3ub2vqA7awCg5hJZPMIYcDPaiTe12rY9h0GYnVlw/viewform?usp=header tiếng Ba Tư] và [https://docs.google.com/forms/d/e/1FAIpQLScNvfJF-Ot-4pzA4qAN771_0QDJ4Li19YcUsaTgSKW8Nc7U_Q/viewform?usp=header tiếng Thổ Nhĩ Kỳ]. Phản hồi của bạn sẽ giúp nhóm tùy chỉnh hướng dẫn cho các biên tập viên ít kinh nghiệm hơn và giúp họ tìm hiểu các chính sách và thực tiễn của cộng đồng khi tạo bài viết. Tìm hiểu thêm [[mw:Special:MyLanguage/Article guidance|trên trang dự án]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/11|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W11"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:53, ngày 9 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30213008 -->
== Bản tin Kỹ thuật: Tuần 12-2026 ==
<section begin="technews-2026-W12"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/12|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]], còn được biết đến với tên [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror 6]], được sử dụng để tô sáng cú pháp mã wiki kể từ tháng 11 năm 2024. Tính năng này sẽ chính thức kết thúc giai đoạn thử nghiệm beta vào tháng 5 năm 2026 nhằm đưa những cải tiến và [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Features|tính năng]] mới cho tất cả biên tập viên sử dụng trình tô sáng cú pháp tiêu chuẩn. Nếu bạn có bất kỳ câu hỏi hoặc thắc mắc nào về việc kết thúc giai đoạn thử nghiệm beta cho tính năng này, [[mw:Special:MyLanguage/Help talk:Extension:CodeMirror|vui lòng chia sẻ với chúng tôi]]. [https://phabricator.wikimedia.org/T259059]
* Một số thay đổi đối với quyền nhóm người dùng cục bộ được tiếp viên trên Meta-Wiki thực hiện và nhật trình về những thay đổi này chỉ được ghi lại trên đó. Giờ đây, thay đổi về quyền liên wiki sẽ được ghi lại trên cả Meta-Wiki và wiki của người dùng mục tiêu để giúp dễ dàng truy cập vào toàn bộ bản ghi thay đổi quyền người dùng trên wiki cục bộ hơn. Những mục nhật trình trước đây về những thay đổi này sẽ được cập nhật trong những tuần tiếp theo. [https://phabricator.wikimedia.org/T6055]
* Trên các wiki sử dụng [[m:Special:MyLanguage/Flagged Revisions|Thay đổi Được gắn cờ (Flagged Revisions)]], số lượng thay đổi đang chờ được hiển thị trên [[{{#Special:PendingChanges}}]] trước đây tính cả những trang mà không còn ở trong trạng thái đang chờ xem xét, do chúng đã bị xóa khỏi hệ thống mà không được xem xét lại, v.d. do bị xóa, được di chuyển sang không gian tên khác, hoặc do thay đổi cấu hình wiki. Bộ đếm giờ sẽ được hiển thị chính xác. Trên một số wiki số lượng thay đổi được hiển thị sẽ nhỏ hơn nhiều so với trước đây. Bản thân danh sách các trang sẽ không có thay đổi gì. [https://phabricator.wikimedia.org/T413016]
* Ngôn ngữ soạn thảo của Wikifunctions đã được viết lại, tạo ra một phiên bản mới của ngôn ngữ này. Thay đổi này nhằm mục đích tăng cường tính ổn định của dịch vụ bằng cách giảm mức tiêu thụ bộ nhớ của trình điều phối. Việc viết lại này cũng giúp cho phép giảm đáng kể độ trễ, đơn giản hóa mã nguồn và tạo ra các lớp trừu tượng tốt hơn, nhằm mở ra cơ hội bổ sung thêm các tính năng khác trong tương lai. Đọc thêm về [[f:Special:MyLanguage/Wikifunctions:Status updates/2026-03-11|các thay đổi này]].
* Người dùng nay có thể sắp xếp kết quả tìm kiếm theo thứ tự bảng chữ cái dựa trên tiêu đề trang. Lần cập nhật này cung cấp thêm một tùy chọn giúp cho việc tìm kiếm trang trở nên dễ dàng và nhanh chóng hơn. Trước đây, kết quả có thể được sắp xếp theo Ngày sửa đổi, Ngày tạo, hoặc Mức độ liên quan. Để sử dụng tùy chọn mới này, hãy mở 'Tìm kiếm nâng cao' trên trang kết quả tìm kiếm và chọn 'Thứ tự bảng chữ cái' trong mục 'Thứ tự sắp xếp'. [https://phabricator.wikimedia.org/T403775]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho Trình tải lên tập tin (UploadWizard) trên Wikimedia Commons không thể nhập tập tin từ Flickr nay đã được giải quyết. [https://phabricator.wikimedia.org/T419263]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Một trang đặc biệt mới, [[{{#special:LintTemplateErrors}}]], đã được tạo ra để liệt kê các trang nhúng được đánh dấu là chứa lỗi lint để giúp người dùng dễ dàng phát hiện chúng hơn. Danh sách được sắp xếp theo số lượng các trang được nhúng mà có lỗi. Ví dụ: [[{{#special:LintTemplateErrors}}/night-mode-unaware-background-color]]. [https://phabricator.wikimedia.org/T170874]
* Người dùng tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]] hiện đang sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] để tô sáng cú pháp khi sửa đổi các trang nội dung JavaScript, CSS, JSON, Vue và Lua, trong một khoảng thời gian. Cùng với việc kết thúc thử nghiệm beta cho CodeMirror 6, kế hoạch là thay thế CodeEditor để trở thành trình soạn thảo tiêu chuẩn cho những kiểu nội dung này vào tháng 5 năm 2026. [[mw:Special:MyLanguage/Help talk:Extension:CodeMirror|Mọi phản hồi hoặc ý kiến đóng góp đều được hoan nghênh]]. [https://phabricator.wikimedia.org/T419332]
* Các mô đun JavaScript cho [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] JavaScript sẽ sớm được nâng cấp lên CodeMirror 6. Trước thời điểm nâng cấp này, việc tải các mô đun <code dir=ltr>ext.CodeMirror</code> hoặc <code dir=ltr>ext.CodeMirror.lib</code> từ các tiện ích và đoạn mã người dùng đã bị loại bỏ vào tháng 7 năm 2025. Việc sử dụng hook <code dir=ltr>ext.CodeMirror.switch</code> cũng đã bị loại bỏ vào tháng 3 năm 2025. Những người đóng góp nay có thể làm cho các đoạn mã hoặc tiện ích của mình tương thích với CodeMirror 6. Xem [[mw:Special:MyLanguage/Extension:CodeMirror#Gadgets and user scripts|hướng dẫn chuyển đổi]] để biết thêm thông tin. [https://phabricator.wikimedia.org/T373720]
* Nhóm Giao diện MediaWiki đang mở rộng phạm vi định nghĩa mô đun API REST để bao gồm cả [[mw:Special:MyLanguage/API:REST API/Extensions|các API mở rộng]]. Mô đun API REST là nhóm các điểm cuối có liên quan mà có thể được quản lý và đánh phiên bản độc lập. Hiện đã có các mô đun cho API [https://phabricator.wikimedia.org/T414470 GrowthExperiments] và [https://phabricator.wikimedia.org/T419053 Wikifunctions]. Khi chúng tôi chuyển đổi các API mở rộng sang cấu trúc này, tài liệu sẽ được chuyển ra khỏi phần đặc tả chính cho OpenAPI của MediaWiki cùng chế độ xem REST Sandbox, và thay vào đó sẽ có thể truy cập được thông qua tùy chọn dành riêng cho mô đun trong menu thả xuống trên [https://test.wikipedia.org/wiki/Special:RestSandbox REST Sandbox] (nghĩa là, [[{{#Special:RestSandbox}}]], có sẵn trên tất cả các dự án wiki).
* Phần mở rộng [[mw:Special:MyLanguage/Extension:Scribunto|Scribunto]] cung cấp nhiều thông tin khác nhau về wiki nơi mô đun đang được sử dụng thông qua thư viện [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual|mw.site]]. Kể từ tuần trước, thư viện này cũng cung cấp một [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#mw.site.wikiId|cách]] truy cập [[mw:Special:MyLanguage/Manual:Wiki ID|ID của wiki]] có thể được sử dụng để hỗ trợ bảo trì mô đun liên wiki. [https://phabricator.wikimedia.org/T146616]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.20|MediaWiki]]
'''Chuyên sâu'''
* [[m:Special:MyLanguage/Coolest Tool Award|Giải thưởng Công cụ Tuyệt vời nhất năm 2026]] nhằm tôn vinh những công cụ xuất sắc do cộng đồng tạo ra, nay đã mở nhận đề cử! Hãy đề cử công cụ yêu thích của bạn bằng cách sử dụng biểu mẫu [https://wikimediafoundation.limesurvey.net/435684?lang=en khảo sát đề cử] trước ngày 23 tháng 3 năm 2026. Để biết thêm thông tin về quyền riêng tư và xử lý dữ liệu, vui lòng xem [[foundation:Special:MyLanguage/Legal:Coolest_Tool_Award_2026_Survey_Privacy_Statement|tuyên bố về quyền riêng tư của khảo sát]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/12|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W12"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:35, ngày 16 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30260505 -->
== Bản tin Kỹ thuật: Tuần 13-2026 ==
<section begin="technews-2026-W13"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/13|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Người dùng các trang Wikimedia nay có thể đăng nhập mà không cần mật khẩu bằng cách sử dụng khóa truy cập (passkey). Đây là một phương thức bảo mật sử dụng vân tay, nhận diện khuôn mặt hoặc mã PIN. Với thay đổi này, tất cả người dùng chọn đăng nhập không cần mật khẩu sẽ có thể đăng nhập vào tài khoản của mình một cách dễ dàng, nhanh chóng và an toàn hơn trên mọi thiết bị. Tùy chọn đăng nhập mới bằng khóa truy cập hiện hiển thị dưới dạng gợi ý tự động điền trong trường tên người dùng. [[phab:T417120|Nút "Đăng nhập bằng khóa truy cập"]] bổ sung sẽ sớm được cung cấp cho những người dùng đã bật tùy chọn sử dụng khóa truy cập. Lần cập nhật này sẽ cải thiện bảo mật cũng như trải nghiệm người dùng. [[c:File:Passwordless_login_screencast.webm|Bản ghi lại màn hình]] này sẽ minh họa từng bước quy trình đăng nhập không cần mật khẩu.
* [[m:Special:MyLanguage/Tech/Server switch|Tất cả các wiki sẽ chuyển sang chế độ chỉ đọc trong vòng vài phút]] vào thứ 4, ngày 25 tháng 3 năm 2026 lúc [https://zonestamp.toolforge.org/1774450800 15:00 UTC]. Điều này là nhằm phục vụ cho việc thử nghiệm chuyển đổi máy chủ cơ sở dữ liệu dự phòng, [[wikitech:Deployments/Yearly calendar|diễn ra hai lần trong một năm]]. Trong quá trình chuyển đổi này, toàn bộ lưu lượng trên các trang web của Wikimedia được chuyển từ trung tâm dữ liệu chính sang trung tâm dữ liệu dự phòng nhằm kiểm tra tính khả dụng và ngăn ngừa việc gián đoạn dịch vụ ngay cả trong những trường hợp khẩn cấp.
'''Cập nhật cho biên tập viên'''
* Người dùng các trang web của Wikimedia nay có thể xuất các thông báo cách đây hơn 5 năm của mình bằng cách sử dụng [[toolforge:echo-chamber|công cụ Toolforge mới]]. Điều này sẽ đảm bảo rằng người dùng có thể giữ lại được những thông báo quan trọng và tránh bị mất chúng do việc thay đổi theo kế hoạch nhằm xóa đi các thông báo cũ hơn 5 năm, như đã thông báo trước đó. [https://phabricator.wikimedia.org/T383948]
* Các biên tập viên Wikipedia tiếng Indonesia, tiếng Thái, tiếng Thổ Nhĩ Kỳ, và tiếng Anh Đơn giản nay có thể truy cập vào Đặc biệt:Bảng điều khiển cá nhân. Đây là [[mw:Special:MyLanguage/Moderator Tools/Dashboard|phiên bản trải nghiệm sớm]] giúp các biên tập viên mới làm quen với quy trình tuần tra, giúp họ dễ dàng chuyển từ việc sửa đổi sang tham gia vào những công việc kiểm duyệt nâng cao hơn trên dự án của mình. [https://phabricator.wikimedia.org/T402647]
* Trang [[vi:Special:Block|Đặc_biệt:Cấm]] nay có hai thay đổi nhỏ về mặt giao diện. Bảo quản viên nay có thể dễ dàng thực hiện lệnh cấm vô hạn thông qua nút chọn (nút radio) chuyên dụng trong mục thời hạn. Ngoài ra, việc chọn thời hạn là vô hạn sẽ cung cấp một bộ lý do phổ biến khác để lựa chọn, nó có thể được thay đổi tại: [[MediaWiki:Ipbreason-indef-dropdown]]. [https://phabricator.wikimedia.org/T401823]
* Biên tập viên sử dụng thiết bị di động [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#Logged-out|tại một số wiki]] nay có thể nhìn thấy cải tiến về cảnh báo sửa đổi khi chưa đăng nhập, điều này là nhờ cập nhật gần đây từ nhóm Phát triển. Những thay đổi được phát hành vào tuần trước này là một phần trong những nỗ lực và thử nghiệm đang được thực hiện nhằm nâng cao [[mw:Special:MyLanguage/Contributors/Account Creation Experiments|trải nghiệm trong việc tạo tài khoản trên thiết bị di động]] và từ đó giúp tăng cường sự tham gia của họ. [https://phabricator.wikimedia.org/T408484]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:36}} {{PLURAL:36|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến người dùng web trên thiết bị di động không thể nhìn thấy thông tin cấm khi có nhiều lệnh cấm đồng thời được áp dụng đã được giải quyết. Họ giờ có thể xem được tin nhắn cho tất cả các lệnh cấm hiện đang được áp dụng cho họ khi họ truy cập Wikipedia.
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Những image (ảnh) được dựng bằng Toolforge sẽ sớm được nâng cấp lên phiên bản buildpack mới, mang đến việc hỗ trợ các phiên bản ngôn ngữ mới hơn cùng những cải tiến và sửa lỗi khác tại thượng nguồn. Nếu bạn sử dụng Dịch vụ Dựng của Toolforge, hãy xem lại [https://lists.wikimedia.org/hyperkitty/list/cloud-announce@lists.wikimedia.org/thread/EMYTA32EV2V5SQ2JIEOD2CL66YFIZEKV/ email cloud-announce] gần đây và cập nhật cấu hình bản dựng của bạn nếu cần để đảm bảo các công cụ của bạn tương thích với phiên bản mới này. [https://wikitech.wikimedia.org/w/index.php?title=Help:Toolforge/Building_container_images&oldid=2392097#Buildpack_environment_upgrade_process][https://phabricator.wikimedia.org/T380127]
* Wiki tài liệu [https://api.wikimedia.org/wiki/Main_Page Cổng API] sẽ ngừng hoạt động vào tháng 6 năm 2026. Các khóa API được tạo trên Cổng API sẽ tiếp tục hoạt động bình thường. Các điểm cuối của api.wikimedia.org sẽ dần bị loại bỏ bắt đầu từ tháng 7 năm 2026. Tài liệu trên Cổng API đang được chuyển sang [[mw:Wikimedia APIs|mediawiki.org]]. Tìm hiểu thêm trên [[wikitech:API Portal/Deprecation|trang dự án]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.21|MediaWiki]]
'''Chuyên sâu'''
* [[m:Special:MyLanguage/WMDE Technical Wishes|Nhóm Mong muốn – Kỹ thuật của WMDE]] đang xem xét cải tiến [[m:WMDE Technical Wishes/References/VisualEditor automatic reference names|tên chú thích được tạo tự động trong Trình Soạn thảo Trực quan (VisualEditor)]]. Vui lòng xem qua [[m:WMDE Technical Wishes/References/VisualEditor automatic reference names#Proposed solutions|những giải pháp được đề xuất]] và tham gia vào [[m:Talk:WMDE Technical Wishes/References/VisualEditor automatic reference names#Request for comment|thảo luận này]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/13|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W13"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:51, ngày 23 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30268305 -->
== Bản tin Kỹ thuật: Tuần 14-2026 ==
<section begin="technews-2026-W14"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/14|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Phiên bản Beta của [[abstract:|Abstract Wikipedia]] một dự án Wikimedia mới không phụ thuộc ngôn ngữ, đã được khởi động vào tuần trước. Dự án cho phép các cộng đồng xây dựng các bài viết Wikipedia bằng ngôn ngữ mẹ đẻ của họ, và các thành viên khác có thể dễ dàng truy cập các bài viết đó bằng ngôn ngữ của riêng họ. Wiki này hoạt động dựa trên chỉ dẫn từ Wikifunctions và cũng dựa trên nội dung có cấu trúc từ Wikidata. [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-03-26|Đọc thêm]].
'''Cập nhật cho biên tập viên'''
* Nhóm Phát triển đang tiến hành thử nghiệm A/B để đánh giá cho một thông điệp rõ ràng hơn, thân thiện hơn với người dùng nhằm khuyến khích việc tạo tài khoản trên wiki. Hiện tại, khi người dùng di động chưa đăng nhập bắt đầu sửa đổi, họ sẽ thấy một thông báo cảnh báo khó chịu, có thể khiến cho họ có cảm giác đột ngột và nản lòng. Điều này cũng làm cho việc sửa đổi bằng tài khoản tạm thời trở thành mặc định thay vì khuyến khích việc tạo tài khoản. Thử nghiệm đang được thực hiện trên mười trang Wikipedia, bao gồm tiếng Ả Rập, tiếng Pháp, tiếng Tây Ban Nha và tiếng Đức. [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#2. Improve logged-out warning message (T415160)|Đọc thêm]].
* Nhóm Ứng dụng Wikimedia đang mời mọi người đóng góp ý kiến về [[mw:Special:MyLanguage/Wikimedia Apps/Team/Future of Editing on the Mobile Apps|việc sửa đổi trên ứng dụng Wikipedia dành cho thiết bị di động nên hoạt động như thế nào]]. Thảo luận tập trung vào việc cải thiện cách người dùng truy cập công cụ sửa đổi khi họ nhấn vào nút "Sửa đổi". Đây là một phần trong nỗ lực rộng lớn hơn nhằm chuyển đổi những người đọc mà có hứng thú với việc sửa đổi sang một con đường thân thiện hơn với người dùng để có thể bắt đầu đóng góp.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:45}} {{PLURAL:45|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến việc lấy chú thích từ kho lưu trữ báo chí lớn [https://www.newspapers.com Newspapers.com] không còn hoạt động, do bị chặn trong các yêu cầu của [[mw:Special:MyLanguage/Citoid|Citoid]], nay đã được khắc phục. [https://phabricator.wikimedia.org/T419903]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.22|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/14|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W14"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:25, ngày 30 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30329462 -->
== Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) ==
Hello everyone,
This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>).
'''The Change:'''<br />
Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]].
We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''.
'''What You Need To Do:'''<br />
To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search.
'''Deadline:'''<br />
We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles.
Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[Thành viên:MediaWiki message delivery|MediaWiki message delivery]] ([[Thảo luận Thành viên:MediaWiki message delivery|thảo luận]]) 17:11, ngày 3 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:ZI Jony@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29941252 -->
== Bản tin Kỹ thuật: Tuần 15-2026 ==
<section begin="technews-2026-W15"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/15|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Help:Extension:CampaignEvents|Phần mở rộng CampaignEvents]] nay có thêm tính năng mới nhằm thiết lập mục tiêu nhóm, nhằm cho phép những người tổ chức thiết lập và theo dõi mục tiêu sự kiện chẳng hạn như số lượng bài viết được tạo và số lượng người tham gia đóng góp theo thời gian thực. Tương tự, những người tham gia có thể cùng nhau hướng tới các mục tiêu chung và chứng kiến tác động tập thể của họ khi sự kiện diễn ra. Tính năng này hiện đã có trên tất cả các wiki của Wikimedia. Tìm hiểu thêm trong [[mw:Special:MyLanguage/Help:Extension:CampaignEvents/Registration/Collaborative contributions#Goal setting|trang tài liệu này]].
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Mục Mong muốn cộng đồng]] Tính năng [[mw:Special:MyLanguage/Help:Watchlist labels|gán nhãn danh sách theo dõi]] mới (được công bố trong [[m:Special:MyLanguage/Tech/News/2026/07|Bản tin Kỹ thuật 2026-07]]) nay có sẵn thông qua Trình Soạn thảo Trực quan, trình soạn thảo mã nguồn, và biểu tượng 'sao theo dõi' (hoặc liên kết theo dõi, đối với các giao diện không có biểu tượng hình sao). Trước đây việc gán nhãn như vậy chỉ có thể thực hiện được thông qua [[Special:EditWatchlist|EditWatchlist]]. Ở cả ba nơi đó, đây đều sẽ là trường mới ngay sau sau trường thời điểm hết hạn theo dõi.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà trang thảo luận trên thiết bị di động dùng Parsoid không thể sử dụng được sau đề mục không có tiêu đề, nay đã được giải quyết. [https://phabricator.wikimedia.org/T419171]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Tính năng chú thích phụ]], một tính năng cho phép biên tập viên thêm thông tin chi tiết vào nguồn tham khảo hiện có mà không cần nhân bản nó, sẽ được triển khai dần dần tới [[phab:T414094|nhiều trang wiki hơn]] vào cuối năm nay. Các wiki sử dụng tiện ích [[mw:Special:MyLanguage/Reference Tooltips|Chú thích nổi]] được khuyến khích cập nhật phiên bản của mình (thường là tại [[m:MediaWiki:Gadget-ReferenceTooltips.js|MediaWiki:Gadget-ReferenceTooltips.js]] như được hiển thị tại [https://en.wikipedia.org/w/index.php?diff=1344408362 đây]) để đảm bảo khả năng tương thích. Các tiện ích khác liên quan đến nguồn tham khảo khác cũng có thể bị ảnh hưởng. [https://phabricator.wikimedia.org/T416304]
* Tất cả các phiên bản của Wikinews sẽ bị đóng và chuyển sang chế độ chỉ đọc vào ngày 4 tháng 5 năm 2026. Mọi nội dung vẫn sẽ có thể truy cập được, nhưng sẽ không thể thêm bất kỳ sửa đổi hoặc bài viết mới nào. Việc đóng này đã được Hội đồng Quản trị của Quỹ Wikimedia phê duyệt sau những cuộc thảo luận kéo dài. [[m:Wikimedia Foundation Board noticeboard#Board of Trustees Approves Closure of Wikinews|Đọc thêm]].
* [[:mw:Special:MyLanguage/API:Action API|API Tác vụ]] có một số kiểu định dạng đầu ra được yêu cầu. Một trong số chúng, <bdi lang="zxx" dir="ltr"><code><nowiki>format=php</nowiki></code></bdi>, sẽ sớm bị loại bỏ. Vui lòng đảm bảo rằng các tập lệnh hoặc bot của bạn sử dụng [[mw:Special:MyLanguage/API:Data formats#Output|kiểu định dạng JSON]]. Việc loại bỏ này sẽ chỉ ảnh hưởng đến một số lượng rất nhỏ các tập lệnh người dùng và bot. [https://phabricator.wikimedia.org/T118538]
* Trang [[Special:NamespaceInfo|Đặc biệt:NamespaceInfo]] nay có chứa phần viết tắt không gian tên. Ví dụ "WP" cho không gian tên "Project" ("Wikipedia") trên Wikipedia tiếng Đức. [https://phabricator.wikimedia.org/T381455]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.23|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/15|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W15"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:19, ngày 6 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30362761 -->
== Bản tin Kỹ thuật: Tuần 16-2026 ==
<section begin="technews-2026-W16"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/16|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Các biên tập viên có kinh nghiệm được mời tham gia [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Main_Page thử nghiệm] tính năng [[mw:Special:MyLanguage/Article guidance|Hướng dẫn bài viết]], được thiết kế để giúp các biên tập viên ít kinh nghiệm hơn tạo ra các bài viết Wikipedia có cấu trúc tốt và phù hợp với quy định. Hướng dẫn thử nghiệm [[mw:Special:MyLanguage/Article guidance/Test feature guide|có sẵn tại đây]]. Ngoài ra, sau khi xem xét [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Category:Pages_using_article_guidance bản tóm tắt này], vui lòng cung cấp phản hồi trên [[mw:Talk:Article guidance|trang thảo luận của dự án]]. Dựa trên ý kiến đóng góp của bạn, tính năng này sẽ được tinh chỉnh và chuyển giao cho các trang Wikipedia thí điểm để biên dịch và điều chỉnh cho thích hợp. Hãy xem qua [[c:File:Article Guidance workflow demo - April 2026.webm|video]] giải thích về tính năng này.
'''Cập nhật cho biên tập viên'''
* Trên hầu hết các trang wiki, tất cả thành viên tự xác nhận nay có thể sử dụng trang [[Special:ChangeContentModel|Đặc biệt:ChangeContentModel]] để [[mw:Special:MyLanguage/Help:ChangeContentModel|tạo trang mới với kiểu nội dung tùy chỉnh]], chẳng hạn như danh sách gửi thông báo rộng rãi, giúp cho định dạng trang tùy chỉnh trở nên dễ tiếp cận hơn. Kiểm tra [[Special:ListGroupRights|Đặc biệt:Quyền nhóm người dùng]] để biết trạng thái trên wiki của bạn. [https://phabricator.wikimedia.org/T248294]
* Nhóm Phát triển đã khởi động một [[mw:Special:MyLanguage/Contributors/Account_Creation_Experiments|thử nghiệm tạo tài khoản]] để đánh giá xem việc thêm nút tạo tài khoản vào phần đầu trang web trên thiết bị di động có làm tăng số lượng người đăng ký tài khoản mới và khuyến khích nhiều người dùng thiết bị di động đóng góp vào wiki hay không. Thử nghiệm hiện đang được thực hiện trên Wikipedia tiếng Hindi, tiếng Indonesia, tiếng Bengali, tiếng Thái và tiếng Do Thái, và nhắm mục tiêu vào 10% người dùng web trên di động chưa đăng nhập.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố có thể khiến Trình Soạn thảo Trực quan bị kẹt khi tải trên các thiết bị Windows đã tắt hiệu ứng hoạt ảnh, nay đã được giải quyết. [https://phabricator.wikimedia.org/T382856]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Kể từ cuối tuần này, {{int:group-abusefilter}} đã bật tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]] sẽ sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] làm trình soạn thảo tại [[Special:AbuseFilter|Đặc biệt:Bộ lọc sai phạm]]. Đây là một phần trong nỗ lực rộng lớn hơn nhằm mang lại trải nghiệm người dùng nhất quán hơn trên tất cả các trình soạn thảo. [https://phabricator.wikimedia.org/T399673][https://phabricator.wikimedia.org/T419332]
* Các công cụ và bot truy cập vào [[mw:Special:MyLanguage/Notifications/API|API Thông báo]] (<bdi lang="zxx" dir="ltr"><code><nowiki>action=query&meta=notifications</nowiki></code></bdi>) sẽ cần phải cập nhật quyền OAuth hoặc BotPassword của mình để bao gồm cả quyền truy cập vào các thông báo riêng tư. [https://phabricator.wikimedia.org/T421991]
* Do việc nâng cấp thư viện, việc liệt kê danh sách trên các trang thể loại có thể hiển thị không đúng theo thứ tự bắt đầu từ thứ Hai, ngày 20 tháng 4. Một kịch bản chuyển đổi sẽ được chạy để khắc phục điều này, và sẽ mất từ vài giờ đến vài ngày tùy thuộc vào kích thước của wiki (tối đa một tuần đối với Wikipedia tiếng Anh). [https://phabricator.wikimedia.org/T422544]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.24|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/16|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W16"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:19, ngày 13 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30380527 -->
== Bản tin Kỹ thuật: Tuần 17-2026 ==
<section begin="technews-2026-W17"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/17|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Sau hai năm phát triển, [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]], hay còn được biết đến với tên [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror 6]], sẽ được chính thức đưa ra khỏi giai đoạn beta vào thứ 3, ngày 21 tháng 4. Nó mang lại khả năng đọc mã nguồn và mã wiki tốt hơn, giảm thiểu lỗi đánh máy cùng những [[mw:Special:MyLanguage/Help:Extension:CodeMirror|lợi ích]] khác cho tất cả người dùng sử dụng trình tô sáng cú pháp tiêu chuẩn. Xin gửi lời cảm ơn chân thành đến tình nguyện viên [https://phabricator.wikimedia.org/p/Bhsd/ Bhsd] vì đã phát triển nhiều tính năng mới, bao gồm [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Code folding|gấp mã nguồn]], [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Autocompletion|tự động điền]], và [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Linting|kiểm tra lỗi]]. [https://phabricator.wikimedia.org/T259059]
* Một bản cập nhật lớn dành cho ứng dụng Wikipedia trên iOS hiện đang được triển khai, nhằm thiết kế lại giao diện để phù hợp với thiết kế trực quan "Liquid Glass" mới nhất của Apple. [https://apps.apple.com/us/app/wikipedia/id324715238 Hãy tải phiên bản mới nhất] và khám phá bản cập nhật này.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4 Reading lists|Danh sách đọc]] là một tính năng cho phép người đọc lưu các bài viết vào danh sách để đọc sau. Tính năng này hiện đang trong giai đoạn thử nghiệm beta trên Wikipedia tiếng Ả Rập, tiếng Pháp, tiếng Indonesia, tiếng Việt và tiếng Trung, và được bật mặc định cho tất cả các tài khoản mới trên tất cả các trang Wikipedia.
* Một thử nghiệm khám phá việc mở rộng [[mw:Special:MyLanguage/Readers/Reader Growth/Mobile page previews|tính năng Xem trước Trang cho trang web di động]] sẽ được triển khai trong tuần ngày 20 tháng 4 trên các trang Wikipedia tiếng Ả Rập, tiếng Anh, tiếng Pháp, tiếng Ý, tiếng Ba Lan và tiếng Việt. Tính năng Xem trước Trang là pop-up hiển thị hình thu nhỏ kèm liên kết mở toàn bộ bài viết từ liên kết xanh, từ đó cải thiện khả năng tìm kiếm nội dung. Tính năng này hiện đã có sẵn trên máy tính để bàn và trong ứng dụng. [[m:Special:MyLanguage/List of experiments in Product and Technology#Template|Đọc thêm về thử nghiệm này cùng những thử nghiệm khác]].
* Trên một số trang wiki, những biên tập viên đã đăng nhập nhưng chưa [[mw:Special:MyLanguage/Help:Email confirmation|xác nhận địa chỉ thư điện tử (email) của mình]] nay có thể nhìn thấy một biểu ngữ khuyến khích họ làm vậy. Việc xác nhận địa chỉ email cho phép người dùng khôi phục quyền truy cập vào tài khoản nếu họ bị mất quyền truy cập đó. [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security#Encouraging users to confirm their email addresses|Tìm hiểu thêm]]. [https://phabricator.wikimedia.org/T421366]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:15}} {{PLURAL:15|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà việc sửa đổi các trang wiki rất lớn trong trình soạn thảo mã wiki 2017 gây ra hiện tượng tải chậm, bị trễ khi xem trước và cuộn, cũng như các vấn đề về hiệu suất khi chọn, cắt hay dán nội dung, nay đã được giải quyết. [https://phabricator.wikimedia.org/T184857]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Là một phần của việc nâng cấp [[mw:Special:MyLanguage/Help:Extension:CodeMirror|CodeMirror]] từ tính năng beta lên làm tính năng chính thức, tất cả người dùng sẽ sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] làm trình tô sáng cú pháp khi sửa đổi các trang nội dung bằng JavaScript, CSS, JSON, Vue và Lua. [https://phabricator.wikimedia.org/T419332]
* Dịch vụ <code>mirrors.wikimedia.org</code> dành cho người dùng Debian và Ubuntu sẽ kết thúc hỗ trợ và ngừng hoạt động vào ngày 15 tháng 5. Tài nguyên dịch vụ này sẽ được thay thế bằng những tùy chọn mới và tốt hơn. Một số người dùng có thể cần phải chuyển sang máy chủ khác, quá trình này sẽ mất khoảng một phút. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/LJYRIS4WB66HIRCAO4GIDTXCMDVZRBMA/ Bạn có thể đọc thêm]. [https://phabricator.wikimedia.org/T416707]
* Bảng <bdi lang="zxx" dir="ltr"><code><nowiki>image</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>oldimage</nowiki></code></bdi> sẽ bị loại bỏ khỏi [[wikitech:Help:Wiki Replicas|wikireplicas]]. Nếu công cụ hoặc truy vấn của bạn truy cập trực tiếp vào <bdi lang="zxx" dir="ltr"><code><nowiki>image</nowiki></code></bdi> hoặc <bdi lang="zxx" dir="ltr"><code><nowiki>oldimage</nowiki></code></bdi>, vui lòng cập nhật chúng để sử dụng bảng <bdi lang="zxx" dir="ltr"><code><nowiki>file</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>filerevision</nowiki></code></bdi> trước ngày 28 tháng 5. [https://phabricator.wikimedia.org/T28741]
* Sau việc triển khai những giới hạn tần suất truy cập API toàn cục gần đây đối với lưu lượng truy cập không xác định, Quỹ Wikimedia sẽ tiếp tục nỗ lực đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng hợp lý cơ sở hạ tầng]] bằng cách áp dụng giới hạn toàn cục đối với lưu lượng truy cập API xác định kể từ tuần cuối cùng của tháng 4. Những giới hạn này được cố ý đặt ở mức cao nhất có thể để giảm thiểu tác động đến cộng đồng. Các bot chạy trong Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào hiện sẽ không bị ảnh hưởng. Dù vậy, tất cả các nhà phát triển được khuyến cáo nên tuân theo những thực tiễn tốt nhất đã được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn tần suất]] và [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits/FAQ|Câu hỏi Thường gặp]].
* [[mw:Special:MyLanguage/Attribution API|API Ghi công]] hiện có sẵn dưới dạng [[mw:Special:MyLanguage/Wikimedia APIs/Stability policy|tính năng beta]]. API này lấy thông tin nhằm ghi công các bài viết và tập tin phương tiện của Wikimedia bất kỳ chỗ nào mà chúng được sử dụng. Trang tài liệu tham khảo có sẵn thông qua trang đặc biệt Chỗ thử REST có mặt trên tất cả các trang wiki của Wikimedia (chẳng hạn như [https://en.wikipedia.org/w/index.php?api=attribution.v0-beta&title=Special%3ARestSandbox chỗ thử REST trên Wikipedia tiếng Anh]). Hãy chia sẻ phản hồi của bạn trên [[mw:Talk:Attribution API|trang thảo luận dự án]].
* Tuần này không có phiên bản MediaWiki mới nào.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/17|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W17"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:00, ngày 20 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30432763 -->
== Request for comment (global AI policy) ==
<bdi lang="en" dir="ltr" class="mw-content-ltr">
Apologies for writing in English. {{int:Please-translate}}
A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}}
[[Thành viên:MediaWiki message delivery|MediaWiki message delivery]] ([[Thảo luận Thành viên:MediaWiki message delivery|thảo luận]]) 00:58, ngày 26 tháng 4 năm 2026 (UTC)
</bdi>
<!-- Tin nhắn của Thành viên:Codename Noreste@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 -->
== Bản tin Kỹ thuật: Tuần 18-2026 ==
<section begin="technews-2026-W18"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/18|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Sẽ có một thay đổi về cách người dùng mới được tự động xác nhận nhằm cải thiện khả năng bảo vệ chống phá hoại. Hiện tại, người dùng đã mở tài khoản được vài ngày và thực hiện được một vài sửa đổi được tự động thêm vào nhóm [[{{int:grouppage-autoconfirmed/{{CONTENTLANGUAGE}}}}|{{int:group-autoconfirmed}}]]. Cấu hình này thường bị một số thành viên phá hoại lợi dụng bằng cách tạo tài khoản và chỉ bắt đầu sử dụng nó sau một khoảng thời gian. Để giảm thiểu điều này, trong tuần tới cấu hình này sẽ được cập nhật sao cho – nhằm mục đích được tự động xác nhận – tuổi của tài khoản sẽ được tính từ sửa đổi đầu tiên của họ, thay vì ngày tạo tài khoản. Giá trị số của ngưỡng tuổi vẫn sẽ được giữ nguyên. Thay đổi này sẽ chỉ được triển khai đến các wiki yêu cầu ít nhất một sửa đổi là một phần trong điều kiện để có thể được tự động xác nhận. [https://phabricator.wikimedia.org/T418484]
* Tất cả người dùng Wikipedia đã tạo tài khoản mới và những người đã kích hoạt tùy chọn "tự động bật hầu hết các tính năng beta" trong tùy chọn của mình giờ đây có thể sử dụng tính năng beta [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4 Reading lists|danh sách đọc]] để lưu bài viết để đọc sau. Điều này giúp người dùng có thể sắp xếp mọi sở thích đọc ở một nơi để có thể dễ dàng truy cập.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho hình ảnh trong hộp thông tin có khoảng đệm quá lớn trên Firefox đã được giải quyết. [https://phabricator.wikimedia.org/T423676]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Nhắc lại, trong tuần này giới hạn tần suất truy cập API toàn cục sẽ được áp dụng cho lưu lượng truy cập API đã được xác định. Điều này giúp đảm bảo việc [[mw:MediaWiki Product Insights/Responsible Reuse|sử dụng cơ sở hạ tầng một cách hợp lý]]. Các bot chạy trong Toolforge/WMCS hoặc có quyền người dùng bot trên bất kỳ wiki nào hiện tại sẽ không bị ảnh hưởng. Dù vậy, tất cả các nhà phát triển được khuyến cáo tuân theo cách sử dụng thực tiễn được cập nhật. Để biết thêm thông tin, bao gồm giới hạn tần suất truy cập thực tế, xem [[mw:Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn tần suất truy cập]] và [[mw:Wikimedia APIs/Rate limits/FAQ|Câu hỏi Thường gặp]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.26|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/18|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W18"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:06, ngày 27 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30458046 -->
== Bản tin Kỹ thuật: Tuần 19-2026 ==
<section begin="technews-2026-W19"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/19|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Nhóm [[mw:Special:MyLanguage/Article guidance|Chỉ dẫn bài viết]] mời các biên tập viên có kinh nghiệm từ [[mw:Special:MyLanguage/Article guidance/Pilot wikis and collaborators|các trang Wikipedia thí điểm]]—tiếng Ả Rập, tiếng Bengal, tiếng Nhật, tiếng Bồ Đào Nha, tiếng Ba Tư, tiếng Thổ Nhĩ Kỳ, tiếng Anh đơn giản, tiếng Tây Ban Nha và tiếng Pháp—hỗ trợ biên dịch và điều chỉnh [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Category:Pages_using_article_guidance các mẫu dàn ý này]. Những dàn ý này sẽ giúp hướng dẫn các biên tập viên tạo ra các bài viết có cấu trúc tốt, rõ ràng và tuân theo quy định khi sử dụng [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Special:NewArticle tính năng này] dự kiến ra mắt vào tháng 5 năm 2026. Hiện có [[mw:Special:MyLanguage/Article guidance#Adapting a sample outline in a Wikipedia|hướng dẫn đơn giản]] về cách dịch và điều chỉnh những dàn ý này.
'''Cập nhật cho biên tập viên'''
* [[:m:Special:MyLanguage/Product and Technology Advisory Council|Hội đồng Cố vấn Sản phẩm và Công nghệ]] đã công bố [[:m:Special:MyLanguage/Product and Technology Advisory Council/May 2026 draft PTAC recommendation for feedback|bản thảo đề xuất]] về một mô hình mà các chi nhánh có thể thực hiện theo khi đóng góp vào lĩnh vực kỹ thuật. Mời các thành viên cộng đồng để lại phản hồi về đề xuất này trước ngày 8 tháng 5 [[:m:Talk:Product and Technology Advisory Council/May 2026 draft PTAC recommendation for feedback|trên trang thảo luận]].
* Số lượng tùy chọn về kích thước hình thu nhỏ có sẵn trong MediaWiki sẽ được giảm xuống còn ba tùy chọn tiêu chuẩn—Nhỏ (180px), Trung bình (250px), và Lớn (400px), là một phần của nỗ lực không ngừng nhằm cải thiện hiệu suất và giảm tải cho các dịch vụ hình thu nhỏ. Do đó, các tùy chọn hiện có sẽ được ánh xạ về kích thước mới gần nhất (ví dụ, những lựa chọn kích thước nhỏ hơn như 120px hoặc 150px sẽ hiển thị dưới kích thước 180px, trong khi những lựa chọn lớn hơn như 300px hoặc 360px sẽ hiển thị dưới kích thước 400px). Giao diện tùy chọn sẽ sớm được cập nhật để áp dụng những thay đổi này và người dùng không muốn áp dụng hoặc để lại phản hồi có thể thực hiện điều đó. [https://phabricator.wikimedia.org/T424909]
* Từ giờ trở đi, ngay cả khi một quyền tự động hết hạn, người dùng sẽ nhận được thông báo Echo tương tự như thông báo tiêu chuẩn về thay đổi quyền. Có một điểm khác biệt giữa thông báo này và [[m:Special:MyLanguage/Global reminder bot|Global reminder bot]] ở chỗ bot sẽ nhắc người dùng một tuần ''trước khi'' quyền đó hết hạn, để họ có thể gia hạn quyền.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:32}} {{PLURAL:32|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến bộ chọn ngôn ngữ ULS trong [[m:Special:Translate|Đặc biệt:Dịch]] cuộn dọc khi không cần thiết, đã được giải quyết. Trước đây, khi người dùng mở menu thả xuống "Dịch sang tiếng Anh" và nhập một số từ nhất định, hộp thoại sẽ cuộn dọc xuống vài pixel ngay cả khi có đủ không gian để hiển thị tất cả kết quả. Menu thả xuống giờ không còn dịch chuyển một cách không cần thiết khi lọc ngôn ngữ nữa. [https://phabricator.wikimedia.org/T358864]
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]], tính năng cho phép bạn xem các danh sách theo dõi của bạn từ nhiều trang wiki trên cùng một trang, tiếp tục được cải thiện. Ví dụ, danh sách theo dõi cho các trang Wikibase chẳng hạn như [[:d:|Wikidata]] nay hỗ trợ phần tử [[mw:Special:MyLanguage/Extension:EntitySchema|EntitySchema]] để có thể theo dõi tốt hơn. Chế độ Cập nhật Trực tiếp nay làm mới trang đặc biệt sau mỗi 60 giây để tuân theo [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|giới hạn tần suất truy vấn API toàn cục]] được cập nhật để cải thiện khả năng phản hồi theo thời gian thực. Ngoài ra, một lỗi về hướng khiến liên kết hiển thị là "thay đổi 3" thay vì "3 thay đổi" trong danh sách có hướng hỗn hợp đã được giải quyết. [https://phabricator.wikimedia.org/T415450][https://phabricator.wikimedia.org/T424422][https://phabricator.wikimedia.org/T418091]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Giai đoạn thứ hai của [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|giới hạn tần suất truy vấn API toàn cục]] đã được triển khai để giảm [[diffblog:2026/03/26/quo-vadis-crawlers-progress-and-whats-next-on-safeguarding-our-infrastructure/|tác động của việc thu thập dữ liệu sử dụng AI]] và đảm bảo quyền truy cập hợp lý, bền vững vào các tài nguyên của Wikimedia, ưu tiên lưu lượng truy cập của con người và lưu lượng phù hợp với sứ mệnh. [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits#Limits|Giới hạn]] được chuyển từ mỗi giờ sang mỗi phút, tạo ra những mô hình lưu lượng truy cập mượt mà hơn và tải API dễ đoán hơn. Người dùng cộng đồng dự kiến không bị ảnh hưởng, và không cần phải thực hiện bất kỳ hành động gì. Các dấu hiệu ban đầu cho thấy một số người yêu cầu dựa trên User-Agent đang điều chỉnh hành vi vi, và khoảng 64% lưu lượng truy vấn API tự động đã được xác định. Việc giám sát vẫn tiếp tục, và Wikimedia Enterprise vẫn sẵn sàng để hỗ trợ thương mại.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.27|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/19|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W19"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:43, ngày 4 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30498077 -->
== Bản tin Kỹ thuật: Tuần 20-2026 ==
<section begin="technews-2026-W20"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/20|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Cộng đồng Kỹ thuật đã xuất bản một [[m:Special:MyLanguage/Community Wishlist/How to write a good wish|bộ hướng dẫn mới]] giải thích cách những mong muốn trên Danh sách Mong muốn Cộng đồng được phân loại và xếp ưu tiên. Tài liệu này được tạo ra nhằm mục đích giúp những người đóng góp viết những đề xuất mang tính mạnh mẽ hơn bằng cách làm rõ những yếu tố ảnh hưởng đến việc quyết định ưu tiên. Ngoài yếu tố số phiếu, hướng dẫn này còn nêu bật những yếu tố khác cần xem xét chẳng hạn như tác động tiềm tàng đến cộng đồng khi quyết định nên ưu tiên mong muốn nào.
'''Cập nhật cho biên tập viên'''
* Nhóm Phát triển Người đọc đang khởi động một thử nghiệm để thử [[mw:Special:MyLanguage/Readers/Reader_Growth/Share_Card|tính năng Chia sẻ Thẻ]] mới cho phép người đọc tạo những thẻ mang tính hấp dẫn về mặt trực quan từ các bài viết hoặc các đề mục bài viết và chia sẻ chúng theo cách trực tuyến, mỗi thẻ liên kết ngược lại về bài viết gốc để giúp mở rộng lượng người đọc và khả năng tìm kiếm bài viết. Thử nghiệm A/B dành riêng cho thiết bị di động này sẽ được cung cấp cho một phần người đọc trên Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Việt và tiếng Anh để có thể hiểu rõ hơn về thói quen đọc và chia sẻ, và dự kiến bắt đầu từ tuần ngày 18 tháng 5 và kéo dài trong bốn tuần.
* Ứng dụng Wikipedia trên Android và iOS gần đây đã phát hành [[mw:Special:MyLanguage/Wikimedia_Apps/Team/25th_Birthday_Reading_Challenge|thử thách đọc trong 25 ngày]] lên phiên bản Beta, là một phần của nỗ lực thúc đẩy người đọc tham gia bằng cách khuyến khích người dùng hoàn thành các mốc đọc. Để theo dõi chuỗi đọc của mình trong suốt quá trình thử thách, người dùng Ứng dụng có thể thêm tiện ích Em bé Globe vào màn hình chính của mình. Thử thách sẽ chính thức bắt đầu vào ngày 11 tháng 5.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:17}} {{PLURAL:17|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho tùy chọn toàn cục bật tính năng nổi bật cú pháp trong mã wiki có thể bất ngờ tự tắt ngay sau khi được bật lên, nay đã được giải quyết. [https://phabricator.wikimedia.org/T425286]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Octicons-tools.svg|12px|link=|alt=|Đề mục nâng cao]] Mô đun ResourceLoader <bdi lang="zxx" dir="ltr"><code><nowiki>mediawiki.ui.input</nowiki></code></bdi>, mô đun lỗi thời từ [[m:Special:MyLanguage/Tech/News/2023/39|tháng 9 năm 2023]], sẽ bị loại bỏ trong tuần này. Hiện có [[mw:Special:MyLanguage/Codex/Migrating_from_MediaWiki_UI|hướng dẫn về cách chuyển từ UI MediaWiki sang Codex]] cho bất kỳ công cụ nào sử dụng nó. [https://phabricator.wikimedia.org/T420125]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.2|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/20|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W20"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:20, ngày 11 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30524429 -->
== Bản tin Kỹ thuật: Tuần 21-2026 ==
<section begin="technews-2026-W21"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/21|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Nhóm Abstract Wikipedia đã xác định năm wiki thí điểm tiềm năng để đánh giá mức độ quan tâm của họ đối với việc áp dụng tóm tắt bài viết trên wiki của mình. Các wiki thí điểm là Wikipedia tiếng Malayalam, tiếng Bengali, tiếng Dagbani, tiếng Ả Rập và tiếng Indonesia. Thời gian nhận phản hồi sẽ kéo dài đến hết ngày 22 tháng 5. Nếu cộng đồng của bạn quan tâm đến việc trở thành wiki thí điểm, [[m:Talk:Abstract Wikipedia|hãy cho chúng tôi biết trên Meta]].
'''Cập nhật cho biên tập viên'''
* Một thử nghiệm nhằm hiển thị [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|Danh sách Đọc]] cho người đọc chưa đăng nhập trên trang web dành cho thiết bị di động sẽ được triển khai vào ngày 18 tháng 5 trên Wikipedia tiếng Đức, tiếng Tây Ban Nha, tiếng Ý, tiếng Bồ Đào Nha, tiếng Ba Lan, tiếng Hà Lan, tiếng Thổ Nhĩ Kỳ và tiếng Urdu Wikipedias, và sẽ kéo dài trong vòng một tháng. Nỗ lực này nhằm hỗ trợ những mục tiêu rộng hơn giúp người đọc lưu và sắp xếp các bài viết để đọc sau, đồng thời khuyến khích những thói quen có thể giúp dẫn đến việc đóng góp cho Wikipedia trong tương lai.
* Để hỗ trợ cho nút đánh dấu trong tính năng beta Danh sách Đọc, menu "Công cụ > Tác vụ" đã được cập nhật để hiển thị các biểu tượng, bao gồm cả chỉ báo ngôi sao theo dõi giúp biên tập viên xác định những bài viết được theo dõi tạm thời. Các biểu tượng nay cũng khớp với các biểu tượng được sử dụng trên thiết bị di động, cải thiện tính nhất quán trên các nền tảng. Thay đổi này hiện chỉ giới hạn ở menu tác vụ và chủ yếu ảnh hưởng đến các biên tập viên có quyền thành viên nâng cao. [https://phabricator.wikimedia.org/T426008]
* [[mw:Special:MyLanguage/VisualEditor/Suggestion Mode|Chế độ Đề xuất]] đã được phát hành dưới dạng [[w:en:A/B test|thử nghiệm A/B]] dành cho biên tập viên mới trên trang web dành cho di động tại [[phab:T421189|~15 trang Wikipedia]]. Thử nghiệm này sẽ đo lường tác động của Chế độ Đề xuất đến tỷ lệ những phiên sửa đổi trên trang web dành cho di động của người mới tạo ra những sửa đổi mang tính xây dựng (không bị lùi lại) trên bài viết. Thử nghiệm này cũng sẽ đánh giá tác động của tính năng này đến việc giữ chân người dùng, đồng thời theo dõi những thay đổi về tỷ lệ lùi sửa và cấm.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề trong ứng dụng Wikipedia dành cho Android khi hình ảnh đôi lúc không thể tải được sau khi mở thông báo danh sách đọc đề xuất, nay đã được giải quyết. [https://phabricator.wikimedia.org/T418231]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[mw:Special:MyLanguage/Wikidata Platform|Nhóm Nền tảng Wikidata]] đã công bố [[d:Special:MyLanguage/Wikidata:SPARQL query service/WDQS backend update/Backend Replacement|đề xuất thay thế backend]] và [[wikitech:Wikidata Query Service/WDQS Architecture re-design|kiến trúc kỹ thuật]] kèm theo cho việc di chuyển Dịch vụ Truy vấn Wikidata (WDQS) khỏi Blazegraph. Chúng tôi hoan nghênh mọi phản hồi về đề xuất này cho đến hết ngày 25 tháng 5 năm 2026, đặc biệt là về những thiếu sót tiềm tàng và tác động đến những trường hợp sử dụng (use case) nâng cao. Các thành viên trong cộng đồng Wikidata và người dùng WDQS cũng được khuyến khích giúp xác định những công cụ và quy trình làm việc có tác động lớn cần được chú ý trên [[d:Wikidata:SPARQL query service/WDQS backend update/High-Impact Use Cases|trang này]]. Bạn có thể chia sẻ những phản hồi của mình trên [[d:Wikidata talk:SPARQL query service/WDQS backend update|trang thảo luận về Di chuyển]] hoặc trong [[d:Special:MyLanguage/Wikidata:Blazegraph Migration Office Hours|giờ làm việc tiếp theo]]. Xem [[d:Special:MyLanguage/Wikidata:Wikidata Platform team/Newsletter|bản tin của nhóm WDP]] để biết thêm chi tiết.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.3|MediaWiki]]
'''Chuyên sâu'''
* Trên Wikipedia tiếng Anh, tiếng Pháp, tiếng Nhật và một số trang Wikipedia khác, một [[diffblog:2025/09/02/better-detecting-bots-and-replacing-our-captcha/|thử nghiệm hCaptcha]], một dịch vụ phát hiện bot từ bên thứ ba, đã được thực hiện. Thử nghiệm này cho thấy hCaptcha phát hiện và ngăn chặn hiệu quả một số hoạt động tự động không thiện ý, bằng cách tự hoạt động lẫn bằng cách cung cấp tín hiệu cho [[w:en:Wikipedia:Village pump (technical)/Archive 225#Introducing SuggestedInvestigations|kiểm định viên và tiếp viên]] để kiểm tra. Vì kết quả thử nghiệm cho kết quả tích cực, hCaptcha sẽ được triển khai trên tất cả các wiki trong một vài tuần tới đây. [[mw:Special:MyLanguage/Product Safety and Integrity/Anti-abuse signals/hCaptcha|Xem trang dự án hCaptcha]] để biết thông tin kỹ thuật về việc triển khai và bảo vệ quyền riêng tư. [[diffblog:2026/05/04/better-detecting-bots-and-replacing-our-captcha-part-2/|Tìm hiểu thêm]].
* Bản cập nhật Công nghệ Cộng đồng số mới nhất hiện đã có sẵn, trong đó có những tiến bộ trong một số sáng kiến thuộc Danh sách Mong muốn Cộng đồng, bao gồm việc mở rộng Danh sách Đọc từ ứng dụng di động lên trang web, hỗ trợ thêm ngôn ngữ mới cho "Ai đã viết nó" (Who Wrote That) và Bảng điều khiển Cá nhân, cải thiện khả năng hiển thị 3D và Biểu đồ, cũng như những công việc sắp tới về việc sắp xếp trang thảo luận, khả năng phát âm thanh và quy trình sửa đổi. Bản cập nhật cũng chia sẻ những ưu tiên hiện tại, xu hướng trạng thái danh sách mong muốn và cơ hội để cộng đồng phản hồi về các lĩnh vực trọng tâm trong tương lai cũng như Kế hoạch Hàng năm 2026–2027 của Quỹ Wikimedia. [[m:Special:MyLanguage/Community Wishlist/Updates#May 13, 2026: Latest updates from the Community Tech team|Đọc toàn bộ nội dung bản tin để biết thông tin chi tiết]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/21|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W21"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:21, ngày 18 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30539262 -->
== Bản tin Kỹ thuật: Tuần 22-2026 ==
<section begin="technews-2026-W22"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/22|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Sau [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#LOWM|thử nghiệm tạo tài khoản thành công]], tin nhắn được cải tiến dành cho những sửa đổi của thành viên chưa đăng nhập sẽ được triển khai đến tất cả các wiki của Wikimedia vào tuần đầu tiên của tháng 6. Thay đổi này sẽ chỉ ảnh hưởng đến các thành viên chưa đăng nhập trên trang web di động khi mở một phiên sửa đổi. Việc cập nhật trải nghiệm này được thiết kế để làm rõ hơn việc khuyến khích tạo tài khoản mà vẫn cho phép người dùng sửa đổi bằng tài khoản tạm thời. Kết quả từ thử nghiệm cho thấy tỷ lệ tạo tài khoản tăng lên đáng kể, trong đó tỷ lệ này đối với người dùng nhìn thấy thông báo được cập nhật này đạt mức tăng khoảng 27%. Như dự đoán, khi càng nhiều người tạo tài khoản, số tài khoản tạm thời cũng giảm đi khoảng 16%. Thử nghiệm không cho thấy bất kỳ thay đổi nào đáng kể về tỷ lệ sửa đổi mang tính xây dựng hay bất cứ số liệu đóng góp nào khác được theo dõi. [https://phabricator.wikimedia.org/T424595]
'''Cập nhật cho biên tập viên'''
* Vì lý do bảo mật, thành viên của một số nhóm người dùng [[m:Special:MyLanguage/Mandatory two-factor authentication for users with some extended rights|bắt buộc phải bật xác thực hai yếu tố]] (2FA). Những thành viên thuộc những nhóm này sẽ không thể tắt đi yếu tố 2FA cuối cùng trên tài khoản của mình, và sẽ không thể thêm người dùng không có 2FA vào những nhóm này. Người dùng vẫn sẽ có thể thêm yếu tố xác thực mới hoặc loại bỏ chúng đi, miễn là có ít nhất một yếu tố được bật liên tục. Trong vòng vài tuần tới đây, người dùng không có 2FA sẽ bị loại bỏ khỏi những nhóm này. Đặc biệt, nó sẽ được áp dụng cho các hành chính viên. Xem tác vụ được liên kết để biết lịch triển khai. [https://phabricator.wikimedia.org/T423119][https://phabricator.wikimedia.org/T423120]
* [[m:Special:MyLanguage/WMDE Technical Wishes|Nhóm Mong muốn Kỹ thuật của WMDE]] sẽ chạy một [[w:vi:Thử nghiệm A/B|thử nghiệm A/B]] trên [[:phab:T415904|10 wiki]], nhằm thử nghiệm [[m:WMDE Technical Wishes/References/Reference Previews|những khả năng cải tiến cho tính năng Xem trước Chú thích]]. Thử nghiệm sẽ kéo dài ~2 tuần vào cuối tháng 5 / đầu tháng 6 và sẽ ảnh hưởng tới 10% người đọc trên máy tính đối với các wiki tham gia.
* Sau hai thử nghiệm thành công, nhóm Phát triển Người đọc sẽ cho ra mắt tính năng beta [[mw:Special:MyLanguage/Readers/Reader Growth/Image Browsing|Duyệt Hình ảnh]] trên tất cả các trang Wikipedia trên di động vào ngày 25 tháng 5. Điều này có nghĩa là bất kỳ ai đã bật mặc định tất cả các tính năng beta sẽ bắt đầu nhìn thấy tính năng này, và những người khác có thể đánh dấu hộp kiểm để bật tính năng này lên trong tùy chọn của họ. Tính năng beta này sẽ bao gồm một băng chuyền hiển thị tất cả hình ảnh của bài viết ở đầu bài viết, The beta feature will include a carousel of all an article's images at the top of the article, cùng khả năng điều khiển cho phép biên tập viên có thể [[mw:Readers/Reader_Growth/Image_Browsing#Phase_2.1_beta_feature|loại trừ hình ảnh khỏi băng chuyền của bài viết hoặc loại trừ hoàn toàn một bài viết khỏi tính năng này]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, các tệp STL ba chiều bị hiển thị sai bởi phần mở rộng trình xem phương tiện 3D nay đã được giải quyết. [https://phabricator.wikimedia.org/T416723]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Các class CSS <bdi lang="zxx" dir="ltr"><code><nowiki>tleft</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>tright</nowiki></code></bdi> cũ đã được thay thế bằng <bdi lang="zxx" dir="ltr"><code><nowiki>floatleft</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>floatright</nowiki></code></bdi> do hai class cũ đó không hoạt động một cách nhất quán trên tất cả các nền tảng MediaWiki, đặc biệt là giao diện web di động và ứng dụng di động. Những dự án dựa vào những lớp này được khuyến khích xem xét lại những chỗ sử dụng có liên quan và lên kế hoạch chuyển đổi. Xin lưu ý rằng <bdi lang="zxx" dir="ltr"><code><nowiki>floatleft</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>floatright</nowiki></code></bdi> cũng có thể bị loại bỏ trong tương lai, dù hiện chưa có kế hoạch thực hiện điều này. [[phab:T426452|Đọc thêm]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.4|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/22|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W22"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:52, ngày 25 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30584502 -->
== <span lang="en" dir="ltr">Vote now in the 2026 U4C election</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Eligible voters are asked to participate in the 2026 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|2026 Election information page]]. The vote closes on 2 June 2026 at [https://zonestamp.toolforge.org/1780358400 00:00 UTC].
Please vote if your account is eligible. Results will be available by 14 June 2026. -- In cooperation with the U4C,<section end="announcement-content" />
</div>
[[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 17:15, ngày 27 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Keegan (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== Bản tin Kỹ thuật: Tuần 23-2026 ==
<section begin="technews-2026-W23"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/23|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đang tiến hành một cuộc thử nghiệm nhằm giới thiệu tính năng [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|danh sách đọc]], hiện vẫn đang trong quá trình phát triển, dành cho những người đọc chưa đăng nhập trên thiết bị di động để kiểm tra xem tính năng này có khuyến khích việc tạo tài khoản với tỷ lệ cao hơn so với nút sao theo dõi hay không. [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists#Experiment timeline|Thử nghiệm]] này đã được khởi động vào ngày 18 tháng 5 trên các wiki tiếng Đức, Tây Ban Nha, Ý, Bồ Đào Nha, Ba Lan, Hà Lan, Thổ Nhĩ Kỳ và Urdu, và sẽ kéo dài trong một tháng.
* Nhóm Ứng dụng Wikimedia đã phát hành [[mw:Special:MyLanguage/Wikimedia Apps/Team/Explore Feed Refresh/Phase 1|Giai đoạn 1]] của giao diện Trang chủ được thiết kế lại cho ứng dụng Android bản Beta. Giao diện Trang chủ mới bao gồm tab "Cộng đồng" được làm mới và tab "Dành cho Bạn" được cá nhân hóa với những đề xuất đọc được cập nhật hàng ngày. Việc thiết kế lại này là một phần trong nỗ lực rộng lớn hơn nhằm cải thiện khả năng tìm kiếm nội dung và tạo ra trải nghiệm học tập hấp dẫn hơn trong các ứng dụng Wikipedia.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:18}} {{PLURAL:18|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến các hình ảnh không thể tải được đối với một số đề xuất sửa đổi trên [[w:Special:Homepage|Đặc biệt:Trang nhà]], làm cho hình thu nhỏ bị kẹt ở trạng thái đang tải, nay đã được giải quyết. [https://phabricator.wikimedia.org/T424048]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.5|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/23|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W23"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:08, ngày 1 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30613639 -->
== Bản tin Kỹ thuật: Tuần 24-2026 ==
<section begin="technews-2026-W24"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/24|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Wikimedia Enterprise đã tăng giới hạn sử dụng miễn phí cho các dịch vụ API của mình. Giới hạn yêu cầu hàng tháng dành cho API Theo yêu cầu đã tăng từ 5.000 lên 50.000 yêu cầu, trong khi giới hạn đối với API Hình chụp nhanh đã tăng từ 15 lên 30 yêu cầu mỗi tháng. Ngoài ra, Nội dung Có cấu trúc của ảnh chụp nhanh hiện đã có sẵn cho các tài khoản miễn phí. Những thay đổi này sẽ mở rộng quyền truy cập vào dữ liệu Wikimedia Enterprise cho các nhà phát triển, nhà nghiên cứu và các tổ chức sử dụng nội dụng Wikimedia. [https://enterprise.wikimedia.com/blog/enhanced-free-api]
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Wikimedia_Apps/Team/Explore Feed Refresh/Phase 1|Bảng tin Khám phá được làm mới]], nay với tên gọi là Bảng tin Trang chủ, đang được triển khai tới 50% người dùng ứng dụng Wikipedia dành cho Android. Bảng tin Trang chủ giúp người đọc khám phá nội dung liên quan thông qua hai tab mới: ''Cộng đồng'' và ''Dành cho Bạn''. Tab Cộng đồng cung cấp một bảng tin cuộn được chứa những nội dung được chọn lọc cùng những cập nhật từ không gian rộng lớn hơn của cộng đồng và phong trào Wikimedia, trong khi tab ''Dành cho Bạn'' cung cấp trải nghiệm toàn màn hình, có thể vuốt được để hiển thị nội dung được điều chỉnh theo sở thích của người dùng. Việc thiết kế lại này là một phần trong nỗ lực lớn hơn nhằm cải thiện khả năng tìm kiếm và nâng cao trải nghiệm học trong ứng dụng Wikipedia.
* Trò chơi giải đố hàng ngày [[mw:Special:MyLanguage/Wikimedia Apps/Team/iOS/"Which came first?" Game|Sự kiện nào diễn ra trước nhỉ?]] nay đã có sẵn trong phiên bản beta của ứng dụng Wikipedia dành cho iOS bằng tiếng Anh, tiếng Đức, tiếng Pháp, tiếng Bồ Đào Nha, tiếng Nga, tiếng Tây Ban Nha, tiếng Ả Rập, tiếng Trung và tiếng Thổ Nhĩ Kỳ. Trò chơi này sử dụng các sự kiện lịch sử từ nội dung trong mục "Ngày này năm xưa" của Wikipedia và thử thách người đọc đoán xem sự kiện nào trong hai sự kiện đã xảy ra trước. Trò chơi này đã được phát hành trên Android trước đây. Những cộng đồng quan tâm đến việc cung cấp trò chơi này bằng ngôn ngữ của mình có thể [[mw:Special:MyLanguage/Wikimedia_Apps/Team/Games#Game availability by language|đọc qua hướng dẫn và yêu cầu]].
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Chú thích phụ]], một tính năng MediaWiki mới cho phép biên tập viên tái sử dụng nguồn tham khảo với nhiều chi tiết khác nhau, sẽ bắt đầu được triển khai đến các wiki của Wikimedia sau giải đoạn thí điểm thành công. Việc triển khai sẽ bắt đầu vào ngày 8 tháng 6 đối với hầu hết các [[wikitech:Deployments/Train#Wednesday|wiki Nhóm 1]] và Wikipedia tiếng Pháp, trong khi các phiên bản ngôn ngữ khác của Wikipedia sẽ nhận được tính năng này trong những tháng tới. Các cộng đồng được khuyến khích chuẩn bị bằng cách kiểm tra [https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-cite&language=en&action_source=search&filter=%21translated&optional=1&action=translate các thông báo chưa được dịch của phần mở rộng Cite] bằng ngôn ngữ của họ và xem xét bất kỳ việc sử dụng [[mw:Special:MyLanguage/Reference Tooltips|Chú thích nổi]] nào, chúng có thể cần phải được [[:phab:T416304#11668731|cập nhật]] để hỗ trợ chức năng mới này. Những wiki sử dụng [[mw:Special:MyLanguage/Help:Reference Previews|Xem trước Chú thích]] không cần phải thực hiện bất kỳ hành động nào. Các cộng đồng cũng có thể mong muốn tạo [[Special:TrackingCategories|thể loại theo dõi]] ''cite-tracking-category-ref-details'' dưới dạng thể loại ẩn sử dụng <code><nowiki>__HIDDENCAT__</nowiki></code> (hoặc một bản mẫu chuyên dụng), và kết nối nó với khoản mục Wikidata [[d:Q129764848]] tương ứng. [https://phabricator.wikimedia.org/T425662]
* [[mw:Special:MyLanguage/Readers/Reader Growth/Mobile page previews#Experimentation|Thử nghiệm Xem trước Trang]] trên giao diện web di động đã kết thúc. Nhóm đã quyết định không triển khai tính năng này sau khi kết quả cho thấy rằng không có tác động đáng kể nào về mặt thống kê lên tỷ lệ giữ chân người đọc, vì chỉ số thành công chính là việc cải thiện tỷ lệ giữ chân người đọc. Tính năng Xem trước Trang, vốn đã có sẵn trên máy tính để bàn và trong ứng dụng, hiển thị hình thu nhỏ, đoạn mở đầu và liên kết đến bài viết đầy đủ khi người đọc nhấn vào liên kết xanh. Thử nghiệm này đã thử trải nghiệm này trên giao diện web di động trên sáu trang Wikipedia.
* [[mw:Special:MyLanguage/Codex/Design/Icons|Thư viện biểu tượng giao diện người dùng]] sẽ được [[phab:T399175|cập nhật vào cuối tuần này hoặc đầu tuần sau]]. Hầu hết trong số ~300 biểu tượng đã được điều chỉnh một chút và ~30 biểu tượng mới đã được thêm vào. Những thay đổi này cải thiện các biểu tượng để làm cho chúng thêm nhất quán và dễ hiểu hơn, đồng thời mang lại sự cân bằng trực quan hơn khi chúng được sử dụng theo nhóm.
* Giao diện [[mw:Special:MyLanguage/Universal Language Selector|Bộ chọn Ngôn ngữ Toàn cục]] (ULS) trong MediaWiki, công cụ giúp người dùng chọn nội dung bằng các ngôn ngữ khác, đã được cập nhật. Phiên bản mới cải thiện tốc độ và khả năng truy cập, đồng thời giờ đây người dùng trên các dự án Wikimedia có thể ghim các ngôn ngữ để chuyển đổi ngôn ngữ một cách nhanh chóng hơn. Việc triển khai lên các trang web của Wikimedia sẽ diễn ra dần dần trong những tuần tới. Bạn có thể thử nghiệm tính năng này ngay bây giờ bằng cách chọn [[Special:Preferences#mw-prefsection-betafeatures|tính năng beta]] trong tùy chọn hồ sơ của mình và chia sẻ phản hồi của bạn trên [[mw:Special:MyLanguage/Universal Language Selector/New ULS|trang dự án]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến bảng điều khiển Phân tích Lượt xem Trang trên pageviews.wmcloud.org ngừng cập nhật dữ liệu đồ thị vào tháng 5 năm 2026, ảnh hưởng đến tất cả người dùng, đã được giải quyết. [https://phabricator.wikimedia.org/T427171]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Chữ ký hàm cho <bdi lang="zxx" dir="ltr"><code><nowiki>mw.util.addPortletLink()</nowiki></code></bdi> đã được đơn giản hóa. Các nhà phát triển nay có thể truyền một đối tượng cấu hình thay vì một danh sách các tham số vị trí khi tạo liên kết portlet. Chữ ký hàm trước đây vẫn được hỗ trợ để đảm bảo khả năng tương thích ngược. Ví dụ, thay vì: <bdi lang="zxx" dir="ltr"><code><nowiki>mw.util.addPortletLink('p-cactions', '#', 'Stub', 'ca-stubtag', 'Add a stub tag to this page');</nowiki></code></bdi> sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>mw.util.addPortletLink('p-cactions', { href: '#', text: 'Stub', id: 'ca-stubtag', tooltip: 'Add a stub tag to this page' });</nowiki></code></bdi>. Những người bảo trì đoạn mã được khuyến khích xem chỗ nào hiện đang sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>addPortletLink()</nowiki></code></bdi> và cập nhật chúng nếu thích hợp. Thay đổi này sẽ có mặt trên tất cả các wiki từ ngày 11 tháng 6. Xin cảm ơn tình nguyện viên cộng đồng Gerges đã đóng góp cải tiến này. [https://phabricator.wikimedia.org/T427945]
* '''Thảo luận về Danh sách Mong muốn của Cộng đồng''': Nhóm Sản phẩm & Công nghệ [[m:Special:MyLanguage/Community Wishlist/Updates#May 20, 2026: Community Tech becomes a program|đã đưa ra những thay đổi]] nhằm mục đích tăng số lượng và độ phức tạp của những mong muốn được đáp ứng, bao gồm cả việc giải thể nhóm Công nghệ Cộng đồng. Họ đang [[m:Special:MyLanguage/Community Wishlist/Updates|tham gia thảo luận]] về một [[m:Talk:Community Wishlist#Proposed direction for Wishlist|đề xuất hướng đi cho danh sách mong muốn]] từ các thành viên cộng đồng. Bao gồm những cách để cấu trúc việc bỏ phiếu hàng năm, theo dõi mong muốn một cách tốt hơn, loại bỏ các lĩnh vực trọng tâm, và [[m:Special:MyLanguage/Community Wishlist/Updates|điều chỉnh việc quản lý nhân sự]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.6|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/24|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W24"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:30, ngày 8 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30650573 -->
== Bản tin Kỹ thuật: Tuần 25-2026 ==
<section begin="technews-2026-W25"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/25|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Readers/Reader Growth|Nhóm Tăng trưởng Độc giả]] đã cho ra mắt tính năng beta [[mw:Special:MyLanguage/Readers/Reader Growth/Image Browsing|Duyệt Hình ảnh]] trên phiên bản web của thiết bị di động tại tất cả các phiên bản Wikipedia. Tính năng này hiển thị ở đầu bài viết một băng chuyền hình ảnh gồm 3 hình ảnh trở lên. Biên tập viên có thể cấu hình cho tính năng này với những thao tác sau: để ẩn một hình ảnh cụ thể khỏi một trang, hãy sử dụng <code>class=notpageimage</code> để loại trừ nó khỏi bản xem trước, hay dùng <code>class=noviewer</code> để loại trừ nó khỏi MediaViewer. Băng chuyền Hình ảnh còn có thể được tắt hoàn toàn ở một trang, với magic word <code><nowiki>__NOMEDIAVIEWERCAROUSEL__</nowiki></code>. Để gửi phản hồi hoặc báo cáo lỗi, hãy truy cập [[mw:Talk:Readers/Reader Growth/Image Browsing|trang dự án]].
* [[mw:Special:MyLanguage/Help:Tables#class="wikitable"|Wikitables]] nay đã có thể được [[mw:Special:MyLanguage/Help:Sortable tables#Forcing the initial sort direction|sắp xếp theo thứ tự giảm dần]] ngay lần nhấp chuột đầu tiên bằng cách thêm <code dir=ltr>data-sort-order="desc"</code> cho ô tiêu đề. Trước đây, theo mặc định, lần nhấp chuột đầu tiên vào tiêu đề cột sẽ sắp xếp cột theo thứ tự tăng dần. Sự bổ sung này cho Wikitable mang lại khả năng kiểm soát và tính linh hoạt cao hơn, trong khi hành vi mặc định cho những lần nhấp chuột tiếp theo vẫn được giữ nguyên. [https://phabricator.wikimedia.org/T398416]
'''Cập nhật cho biên tập viên'''
* Tính năng [[mw:Special:MyLanguage/Article guidance|Hướng dẫn bài viết]] hiện đang được thử nghiệm đối với một số biên tập viên tạo các bài viết mới trên các trang Wikipedia tiếng Anh đơn giản, tiếng Pháp và tiếng Thổ Nhĩ Kỳ. Thử nghiệm cũng sẽ sẽ sớm bắt đầu trên Wikipedia tiếng Ả Rập và tiếng Bengali. [[w:simple:Special:NewArticle|Tính năng này]] cung cấp cho các biên tập viên hướng dẫn do cộng đồng biên soạn để giúp họ tạo ra những bài viết tuân thủ tiêu chuẩn cộng đồng. Các biên tập viên có kinh nghiệm có thể tiếp tục tạo hoặc điều chỉnh dàn ý cho những loại bài viết cụ thể thường được tạo bởi những người đóng góp ít kinh nghiệm hơn. Những dàn ý này hướng dẫn các biên tập viên ít kinh nghiệm hơn trong việc tạo những bài viết chất lượng cao. Hướng dẫn nhanh về các ký hiệu được sử dụng trong dàn ý có thể được tìm thấy trên [[mw:Special:MyLanguage/Article guidance/Test feature guide#Markups in outlines|trang này]]. [[w:simple:Wikipedia:Article Guidance|Ví dụ về dàn ý]] có thể được điều chỉnh và hướng dẫn cách điều chỉnh chúng nằm trên [[mw:Special:MyLanguage/Article guidance#Adapting a sample outline in a Wikipedia|phần này]] của trang dự án.
* Wiki mong muốn thay thế nút "vô thời hạn" trong Đặc biệt:Cấm dành cho tài khoản tạm thời (ví dụ, wiki chỉ cấm tài khoản tạm thời đến khi tài khoản đó hết hạn) sẽ có thể thực hiện điều đó bằng cách tạo [[MediaWiki:ipb-indefinite-expiry-temporary-account]] với khoảng thời gian cấm mà họ muốn. [https://phabricator.wikimedia.org/T427125]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:41}} {{PLURAL:41|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Đến cuối tháng 6, việc sử dụng một chuỗi user-agent hợp lệ là bắt buộc để tải xuống tự động các dump từ trang web dumps.wikimedia.org. Những yêu cầu tự động cung cấp user-agent trống hoặc chung chung sẽ bị chặn. Điều này [[phab:T400119|sẽ mở rộng việc thực thi]] [[foundation:Special:MyLanguage/Policy:Wikimedia Foundation User-Agent Policy|quy định về user-agent]] đã có từ lâu. Quyền truy cập tới Dịch vụ Đám mây của Wikimedia sẽ không thay đổi.
* Quá trình triển khai [[mw:Wikimedia APIs/Rate limits|giới hạn truy cập API]] toàn cục đã hoàn tất, các giới hạn được áp dụng trên tất cả các API và ở tất cả các mức độ được ghi nhận cho tất cả các nhóm. Các bot chạy trong Toolforge/WMCS hoặc có quyền người dùng bot trên bất kỳ wiki nào vẫn được miễn trừ. Tất cả các bot nên tiếp tục theo những thực tiễn tốt nhất được ghi nhận để tránh bị vượt giới hạn truy cập.
* [https://api.wikimedia.org/wiki/Main_Page Wiki Cổng API] sẽ ở chế độ chỉ đọc kể từ tuần này (15-18 tháng 6). Vào tuần tới (22-25 tháng 6), tất cả các URL của wiki Cổng API sẽ chuyển hướng đến [[mw:Wikimedia APIs|API Wikimedia trên mediawiki.org]]. Tìm hiểu thêm trên [[wikitech:API Portal/Deprecation|trang dự án]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.7|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* Vào ngày 17 tháng 6 lúc 18:00 giờ UTC WMF sẽ tổ chức một cuộc gọi Discord tập trung vào việc đánh giá code. Chúng tôi đã lắng nghe thông qua [[mw:Special:MyLanguage/Developer Satisfaction Survey/2026|Khảo sát Sự hài lòng của Nhà phát triển]] rằng các tình nguyện viên đang gặp khó khăn trong việc đánh giá code và chúng tôi muốn thảo luận về những trải nghiệm này với mục tiêu tìm ra những giải pháp khả thi. Bạn có thể tham gia cuộc gọi [https://discord.gg/wikipedia?event=1514727511102062664 thông qua máy chủ Discord Cộng đồng Wikimedia].
* [[m:Special:MyLanguage/Conferencia Wikimedia de América Latina 2026|Hội nghị Wikimedia Mỹ La-tinh]] sẽ tổ chức cuộc thi hackathon khu vực quy tụ cộng đồng kỹ thuật của phong trào Wikimedia, gồm những nhà phát triển, quản trị viên hệ thống, nhà khoa học dữ liệu và các thành viên có quyền mở rộng. Những người đóng góp kỹ thuật quan tâm có thể [https://docs.google.com/forms/d/e/1FAIpQLSf4osJzTHBJjQbYJk7TMVEJjTEQv7IgtsUDfP-o-qTgeRQQxw/viewform đăng ký học bổng] tham gia cho đến nửa đêm ngày 21 tháng 6 (giờ Bolivia, UTC-4).
* Hãy đăng ký tham gia Thử thách Nhóm của Wikimania để góp mặt tại sự kiện đặc biệt này. Thử thách nhóm sẽ diễn ra trực tuyến và trực tiếp từ ngày 21 đến 22 tháng 7, trước hội nghị Wikimania. Mọi người đều có thể tham gia, bất kể kỹ năng hay việc đăng ký Wikimania trước đó như thế nào. Các nhóm sẽ cùng nhau giải quyết 10 thử thách quan trọng trong việc hỗ trợ cộng đồng Wikimedia. Để biết thêm chi tiết, hãy truy cập [[wmania:Special:MyLanguage/2026:Team challenges|trang Thử thách Nhóm]] và [https://wikimedia.eventyay.com/wm/teamchallenges/ đăng ký tại đó]. Cổng đăng ký sẽ đóng vào ngày 20 tháng 6 lúc 23:00 UTC.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/25|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W25"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:48, ngày 15 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30689604 -->
== Bản tin Kỹ thuật: Tuần 26-2026 ==
<section begin="technews-2026-W26"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/26|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Growth/Feature summary|Các tính năng Phát triển (Growth)]] [[phab:T418115|nay đã có mặt trên Wikidata]]. Bản cập nhật này cho phép truy cập vào chức năng Cố vấn ([[mw:Special:MyLanguage/Help:Growth/Mentorship|nếu được cấu hình]]), mô đun Tác động, Bảng Trợ giúp và Trang chủ dành cho Người mới được đơn giản hóa (không có Đề xuất sửa đổi). Các bảo quản viên Wikidata vẫn đang cấu hình các tính năng thông qua Cấu hình Cộng đồng.
'''Cập nhật cho biên tập viên'''
* Trang đặc biệt [[{{#special:RangeCalculator}}]] đã được tạo. Trang này cho phép người dùng tìm một dải IP mà không cần phải dựa vào các công cụ bên ngoài. Cho đến hiện tại, công cụ này chỉ có sẵn cho các kiểm định viên. [https://phabricator.wikimedia.org/T268429]
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Chú thích phụ]] là một tính năng mới của MediaWiki cho phép biên tập viên tái sử dụng các nguồn tham khảo với những chi tiết khác nhau. Tính năng này sẽ được triển khai đến hầu hết các phiên bản ngôn ngữ Wikipedia quy mô nhỏ và trung bình vào ngày 23 tháng 6. Trang [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#deployment|Câu hỏi thường gặp]] liệt kê những hành động có thể thực hiện trên wiki của bạn để hỗ trợ việc triển khai này. Hãy kiểm tra [[:phab:T414094|kế hoạch triển khai]] để biết các bước triển khai tiếp theo. [https://phabricator.wikimedia.org/T428902]
* Bắt đầu từ tuần sau, người dùng sẽ nhận được một thông báo khi họ bị cấm sửa đổi hoặc được bỏ cấm sửa đổi, hoặc khi lệnh cấm thay đổi. [https://phabricator.wikimedia.org/T100974]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:32}} {{PLURAL:32|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bắt đầu từ tuần tới, các bộ lọc sai phạm được đặt ở mức "yêu cầu xác minh CAPTCHA" sẽ bắt đầu ảnh hưởng đến cả những người dùng có quyền <code>skipcaptcha</code>, bao gồm hầu hết những người dùng có quyền tự động xác nhận. Các bot sẽ được miễn trừ. Thay đổi này sẽ chỉ ảnh hưởng đến những sửa đổi kích hoạt bộ lọc sai phạm. Quyền <code>skipcaptcha</code> vẫn sẽ tiếp tục giúp người dùng được miễn yêu cầu xác minh CAPTCHA trong quá trình sử dụng wiki thông thường. [https://phabricator.wikimedia.org/T402595]
* Tài liệu tham khảo cho [[wikitech:Machine_Learning/LiftWing/API|API Lift Wing]] đã được chuyển từ Cổng API sang [https://wikitech.wikimedia.org/w/index.php?api=lift-wing&title=Special%3ARestSandbox Chỗ thử REST] mang tính tương tác.
* Wiki Cổng API hiện đã đóng. Để xem tài liệu API, hãy xem [[mw:Special:MyLanguage/Wikimedia_APIs|API Wikimedia trên mediawiki.org]]. Tất cả các URL của wiki Cổng API (https://api.wikimedia.org/wiki/) sẽ đổi hướng tới trang mediawiki.org bắt đầu từ ngày 22 tháng 6. [https://phabricator.wikimedia.org/T427537]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.8|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* Hãy tham gia cuộc gọi trực tuyến vào ngày 25 tháng 6 lúc 2:30 chiều giờ UTC để gặp gỡ các thực tập sinh hiện tại của Wikimedia cho [[mw:Google_Summer_of_Code/2026|Google Summer of Code]] và [[mw:Outreachy/Round_32|Outreachy]]. Các thực tập sinh sẽ giới thiệu tổng quan về các dự án của họ và demo ngắn gọn công việc mà họ đã thực hiện cho đến nay. Người tham dự được khuyến khích [[mw:event:Google_Summer_of_Code/Summer_2026_June_Internship_open_session|chia sẻ ý tưởng và kết nối trong cộng đồng của họ]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/26|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W26"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 13:05, ngày 23 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Trizek (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30722494 -->
== RFC about AI-generated content in Wikimedia Commons ==
<bdi lang="en" dir="ltr">Apologies for writing in English, please help translate this message to your language. You are invited to participate in a [[c:Commons:Requests for comment/Policy update for AI content|request for comment on Wikimedia Commons about a policy update for AI content]]. This may affect files that are uploaded to Wikimedia Commons for use on this project. Thank you. [[m:User:Codename Noreste|Codename Noreste]] ([[m:User talk:Codename Noreste|thảo luận]])</bdi> 17:12, ngày 23 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Codename Noreste@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== <span lang="en" dir="ltr">Deployment of Legal and Safety Contacts Link in the Footer of Your Wiki</span> ==
<div lang="en" dir="ltr">
<section begin="Message"/>
'''Legal & Safety Contacts'''
Hello community, the Wikimedia Foundation has provided a [[wmf:Special:MyLanguage/Legal:Wikimedia Foundation Legal and Safety Contact Information|single legal and safety contact page]], to be linked in the footer of your wiki, to ensure access to accurate legal information. This is a regulatory requirement. We have already rolled out links to English, German, Italian, Spanish and other wikis and we will deploy to your wiki soon. [[m:Special:MyLanguage/Wikimedia_Foundation_Legal_and_Safety_Contacts_FAQ|Please read more on the project page]] and leave any comments in this thread or on the [[m:Special:MyLanguage/Talk:Wikimedia Foundation Legal and Safety Contacts FAQ|talk page]].
<section end="Message"/>
</div>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:31, ngày 25 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Sannita (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=30731267 -->
== Bản tin Kỹ thuật: Tuần 27-2026 ==
<section begin="technews-2026-W27"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/27|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Là một phần của [[mw:Special:MyLanguage/Contributors/Account Creation Experiments|Thử nghiệm Tạo Tài khoản]], nhóm Phát triển đã thử nghiệm việc thêm biểu tượng tài khoản người dùng vào tiêu đề trang web trên di động dành cho người dùng chưa đăng nhập, cung cấp quyền truy cập trực tiếp vào các tác vụ "Tạo tài khoản" và "Đăng nhập". Thử nghiệm đã tăng số tài khoản được tạo lên khoảng 20% mà không ảnh hưởng tiêu cực đến chất lượng sửa đổi hoặc tỷ lệ sửa đổi mang tính xây dựng. Tính năng này giờ sẽ được triển khai đến tất cả các trang wiki của Quỹ Wikimedia trên giao diện web di động trong tuần đầu tiên của tháng 7. [https://phabricator.wikimedia.org/T428220]
* Sau một [[phab:T426248|thử nghiệm thành công]], người dùng đã đăng nhập nhưng chưa [[mw:Special:MyLanguage/Help:Email_confirmation|xác nhận địa chỉ email của mình]] khi tạo tài khoản sẽ nhìn thấy một biểu ngữ mới yêu cầu họ hoàn tất quy trình đó. Điều này giúp giảm nguy cơ người dùng bị mất quyền truy cập vào tài khoản của họ, và làm cho địa chỉ email của tài khoản nói chung trở nên đáng tin cậy hơn. Đây là một phần của dự án [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]]. [https://phabricator.wikimedia.org/T428292]
* Một bản cập nhật cho tính năng [[Special:Search|Tìm kiếm]] sẽ tinh chỉnh cách <bdi lang="zxx" dir="ltr"><code><nowiki>-prefix:</nowiki></code></bdi> hoạt động khi được sử dụng để loại trừ kết quả. Trước đây, việc sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>-prefix:</nowiki></code></bdi> với phủ định có thể vô tình mở rộng kết quả tìm kiếm bằng cách thêm các không gian tên nằm trong phạm vi tìm kiếm, dẫn đến hành vi gây khó hiểu đối với những người dùng mong đợi một bộ lọc loại trừ đơn giản. Với lần cập nhật này, <bdi lang="zxx" dir="ltr"><code><nowiki>-prefix:</nowiki></code></bdi> nay sẽ loại trừ chặt những tiêu đề trang trùng khớp như mong đợi và có thể hiển thị cảnh báo nếu không gian tên có liên quan không được chọn một cách rõ ràng. Mặc dù vậy, hành vi của <bdi lang="zxx" dir="ltr"><code><nowiki>prefix:</nowiki></code></bdi> khi không có phủ định vẫn sẽ không thay đổi. [https://phabricator.wikimedia.org/T427443]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:33}} {{PLURAL:33|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến người đánh giá sử dụng thanh công cụ Quản lý Trang (Page Curation) không tự động được đăng ký theo dõi các cuộc thảo luận mà họ bắt đầu bình luận trên trang nay đã được giải quyết. Người đánh giá giờ sẽ nhận được thông báo khi có người nào đó trả lời những cuộc thảo luận này. [https://phabricator.wikimedia.org/T329346]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Kể từ ngày 29 tháng 6, các lượt tải xuống tự động từ trang dumps.wikimedia.org sẽ phải tuân theo [[Foundation:Special:MyLanguage/Policy:Wikimedia Foundation User-Agent Policy|quy định về user-agent]]. Các yêu cầu tự động mà cung cấp user-agent trống hoặc chung chung sẽ bị chặn. Việc truy cập vào các bản sao lưu (dump) thông qua Dịch vụ Đám mây Wikimedia sẽ không bị ảnh hưởng. Đây là thông báo tiếp theo sau thông báo được đưa ra trong [[m:Special:MyLanguage/Tech/News/2026/25|Bản tin Kỹ thuật số 25-2026]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.9|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/27|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W27"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 11:48, ngày 29 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30744833 -->
== <span lang="en" dir="ltr">Tech News: 2026-28</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2026-W28"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2026/28|Translations]] are available.
'''Updates for editors'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Recurrent item]] View all {{formatnum:34}} community-submitted {{PLURAL:34|task|tasks}} that were [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|resolved last week]]. For example, an issue where the search bar results on Wikidata, showed English results instead of using the correct language fallback for users of language variants, has now been fixed. Search suggestions will now follow the expected language fallback chain. [https://phabricator.wikimedia.org/T429769]
'''Updates for technical contributors'''
* In preparation for [[m:Special:MyLanguage/Event:Celebrate Women|Celebrate Women campaign]] planned for March 2027, the Wikimedia Foundation’s [[m:Special:MyLanguage/Wikimedia Foundation/Advancement/Community Growth/Content Enablement|Content Enablement team]] has launched a 22-question survey to better understand technical contributions by women+ (anyone who identifies as a woman) across Wikimedia projects. The survey takes approximately 15–20 minutes to complete and will remain open until 20 July 2026. The [[m:Special:MyLanguage/Celebrate Women/Technical contributions survey|questions]] are also available on-wiki for review in advance.
* The [[mw:Special:MyLanguage/Extension:Score|Score extension]] now supports rendering music scores as SVG images in addition to PNG, addressing a long-standing [[:phab:T49578|feature request]] and resolving historical image quality issues. Both formats are now provided to clients, with PNG in the <bdi lang="zxx" dir="ltr"><code><nowiki>src</nowiki></code></bdi> attribute and SVG in the <bdi lang="zxx" dir="ltr"><code><nowiki>srcset</nowiki></code></bdi> attribute.
* The new [[wikitech:Parsoid|Parsoid]] parser [[mw:Special:MyLanguage/Parsoid/Parser_Unification/Updates|continues to be deployed to additional wikis]], making it easier to introduce new reading and editing features. It was enabled on French Wikipedia, bringing total progress to covering 78.9% of Wikipedia page views. Rollout to English Wikipedia desktop will progress through this week.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Recurrent item]] Detailed code updates later this week: [[mw:MediaWiki 1.47/wmf.10|MediaWiki]]
'''In depth'''
* The Wikimedia Hackathon 2026 [[diffblog:2026/06/29/wikimedia-hackathon-2026-building-collaborating-and-shaping-the-future-together/|recap blog post]] is now live. It highlights the projects, sessions, and social activities from this year’s event, and shares initial plans for the 2027 Wikimedia Hackathon.
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2026/28|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2026-W28"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 13:57, ngày 6 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30773578 -->
== Bản tin Kỹ thuật: Tuần 29-2026 ==
<section begin="technews-2026-W29"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/29|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng [[mw:Special:MyLanguage/Growth/Revise_Tone|Xem lại Giọng văn]] giúp người mới xác định những đoạn văn trong bài viết Wikipedia mà có thể chứa ngôn ngữ không bách khoa và khuyến khích họ xem xét lại giọng văn đó. Tính năng này đã được [[w:en:A/B_testing|thử nghiệm A/B]] trên các Wikipedia tiếng Ả Rập, tiếng Anh, tiếng Pháp và tiếng Bồ Đào Nha, tại đó tỷ lệ hoàn thành nhiệm vụ của người mới [[mw:Special:MyLanguage/Growth/Revise_Tone#Experiment_Results|tăng 38.7%]] so với nhiệm vụ Hiệu đính mặc định, mà không làm giảm chất lượng sửa đổi. Cuộc thử nghiệm đã kết thúc vào ngày 9 tháng 7 và tính năng này nay đã có sẵn cho tất cả mọi người trên các wiki này, đồng thời có thể cấu hình được thông qua Cấu hình Cộng đồng. [[phab:T426364|Kế hoạch]] dự kiến là sẽ phát hành Xem lại Giọng văn đến nhiều trang wiki hơn.
* Cấu hình cộng đồng cho phép [[mw:Special:MyLanguage/Help:Growth/Mentorship#Automated mentor list cleanup|tự động loại bỏ cố vấn không hoạt động]] dựa trên các tiêu chí có thể cấu hình được sẽ được kích hoạt vào thứ 5, ngày 16, [[mw:Special:MyLanguage/Growth/Deployment|trên một số wiki]] để đảm bảo danh sách cố vấn được cập nhật. Cố vấn là những người đóng góp có kinh nghiệm, tự nguyện tham gia giúp đỡ người dùng mới trên wiki thông qua [[mw:Special:MyLanguage/Growth/Feature summary|Tính năng Phát triển (Growth)]]. Bảo quản viên nay có thể chuẩn bị các cài đặt thông qua [[w:Special:CommunityConfiguration/Mentorship|Đặc biệt:Cấu hình Cộng đồng/Cố vấn]]; những cài đặt này sẽ có hiệu lực kể từ thứ 5.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:38}} {{PLURAL:38|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến một số người dùng ứng dụng Wikipedia trên thiết bị Android bị đăng xuất ngay sau khi đăng nhập, khiến họ không thể duy trì trạng thái đăng nhập và sửa đổi trang, nay đã được giải quyết. [https://phabricator.wikimedia.org/T316916]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Việc sửa đổi trang thông qua đoạn mã người dùng hoặc tiện ích khiến cho nhãn danh sách theo dõi mà người dùng gán cho trang đó bị đặt lại. Vấn đề này nay đã được giải quyết. [https://phabricator.wikimedia.org/T423778]
* Để khắc phục lỗi Safari (xem [[phab:T425211]]), trên các wiki đã kích hoạt Parsoid, các liên kết wiki href nay sử dụng urls tuyệt đối thay vì url tương đối theo giao thức. Đầu ra API REST vẫn sẽ không thay đổi và sẽ tiếp tục sử dụng url tương đối theo giao thức. Các tiện ích, đoạn mã người dùng, bot và CSS có thể cần được điều chỉnh nếu chúng dựa vào sự hiện diện của url tương đối theo giao thức trong các liên kết wiki href. [https://phabricator.wikimedia.org/T431358]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.11|MediaWiki]]
'''Chuyên sâu'''
* Nhóm Nền tảng Thử nghiệm của Quỹ Wikimedia đã đăng bài viết trên blog phản ánh về năm đầu tiên thực hiện thử nghiệm có cấu trúc của họ. Bài viết nêu bật những thử nghiệm thành công như Kiểm tra Chép dán, Kiểm tra Nguồn tham khảo và Kiểm tra Giọng văn, những thử nghiệm đã cải thiện kết quả sửa đổi và được triển khai cho nhiều người dùng hơn, cũng như những thử nghiệm không dẫn đến việc thay đổi sản phẩm. [[diffblog:2026/07/07/moving-the-needle-how-we-test-new-ideas-across-wikimedia-projects|Đọc thêm]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/29|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W29"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:11, ngày 13 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30804401 -->
== Bản tin Kỹ thuật: Tuần 30-2026 ==
<section begin="technews-2026-W30"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/30|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Reader/Reader Experience|Nhóm Trải nghiệm Người đọc]] đã kết hợp phản hồi của cộng đồng xoay quanh vị trí của các nút sao theo dõi và nút danh sách theo dõi đối với [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4 Reading lists|tính năng beta Danh sách Đọc]], nhằm cho phép lưu lại các bài viết để đọc sau – một [[m:Special:MyLanguage/Community Wishlist/W102|mục danh sách mong muốn]] để đưa chức năng này lên web. Các biên tập viên được mời kích hoạt tính năng beta để thử nghiệm tính năng này và [[phab:T426453|chia sẻ suy nghĩ của mình]].
* [[mw:Special:MyLanguage/VisualEditor/Suggestion Mode|Chế độ Đề xuất]] cung cấp những đề xuất sửa đổi trong Trình Soạn thảo Trực quan để cải thiện các bài viết trên Wikipedia. [[Special:EditChecks|Mọi đề xuất]] đều [[mw:Special:MyLanguage/Help:Suggestion mode#For administrators – local customization|có thể được cộng đồng cấu hình]]. Tính năng [[mw:Special:MyLanguage/Edit check/TextMatch|Văn bản Khớp chính xác]] (TextMatch) là một cách giúp cho các tình nguyện viên có thể tạo đề xuất tùy chỉnh cục bộ. Tính năng này tìm kiếm các chuỗi văn bản trong bài viết, và nay cũng bao gồm việc hỗ trợ cho các biểu thức chính quy. Điều này mang lại cho các tình nguyện viên độ chính xác và tính linh hoạt cao hơn đối với những loại đề xuất mà họ có thể tạo ra cục bộ. Lưu ý: Đề xuất [[mw:Special:MyLanguage/Edit check/Configuration#:~:text=maximumEditcount|có thể được nhắm tới]] dựa trên số lần sửa đổi của người thực hiện sửa đổi cũng như các khía cạnh khác của trang. Bạn có thể [[mw:Special:MyLanguage/Help:Suggestion mode#Create custom local types of Suggestions|tìm ví dụ từ các cộng đồng khác]] để lấy cảm hứng, kể cả việc sử dụng Văn bản Khớp chính xác nhằm phát hiện: lỗi chính tả, lỗi ngữ pháp, có khả năng quảng cáo, lời sáo rỗng, cách sử dụng dấu gạch ngang hoặc dấu gạch nối không chính xác, từ khóa thời gian không cụ thể, tên lỗi thời, v.v. Bất kỳ [[mw:Special:MyLanguage/Talk:VisualEditor/Suggestion Mode|phản hồi]] nào đều được chúng tôi hoan nghênh.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, sự cố về công cụ SVG Translate khiến cho nó có thể sử dụng phiên bản tập tin lỗi thời, khiến các bản dịch hiện có bị ghi đè khi các bản dịch mới được tải lên, nay đã được [[phab:T430577|giải quyết]]. Nhìn chung, trong quý cuối cùng từ tháng 4 đến tháng 6 năm 2026, Quỹ Wikimedia đã giải quyết khoảng 337 tác vụ cộng đồng.
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Trên các wiki có hỗ trợ Parsoid, Parsoid nay hiển thị tối đa 1.250 hình ảnh mỗi trang. Một danh mục theo dõi mới, "media-limit-reached", sẽ sớm được cung cấp để xác định các trang đã đạt đến giới hạn này, giúp dễ dàng tìm thấy nội dung có thể bị hạn chế đầu ra phương tiện trong quá trình hiển thị. Xem [[phab:T430854]] để biết thêm thông tin và cung cấp phản hồi.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.12|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/30|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W30"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 05:46, ngày 21 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30836091 -->
== Request for comment (the future of Abstract Wikipedia) ==
<bdi lang="en" dir="ltr" class="mw-content-ltr">
Apologies if this has not yet been translated into your wiki's language. {{int:Please-translate}}
You are invited to voice your opinions in a [[:m:Requests for comment/The future of Abstract Wikipedia|request for comment about the future of Abstract Wikipedia]]. {{Int:Feedback-thanks-title}}
[[:m:User:Kowal2701|Kowal2701]] ([[:m:User talk:Kowal2701|talk]]) 12:25, ngày 24 tháng 7 năm 2026 (UTC)
</bdi>
<!-- Tin nhắn của Thành viên:DreamRimmer@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== Bản tin Kỹ thuật: Tuần 31-2026 ==
<section begin="technews-2026-W31"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/31|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Wishlist item]] Công cụ [[mw:Special:MyLanguage/ContentTranslation|Dịch Nội dung]] nay hỗ trợ chế độ tối, nhằm đáp ứng [[m:Community Wishlist/W544|yêu cầu từ Mong muốn Cộng đồng]]. Điều này giúp công cụ tương thích với các tính năng hỗ trợ khả năng tiếp cận có sẵn trong các giao diện Vector 2022 và Minerva, giúp giảm việc gây mỏi mắt cho người dùng khi dịch nội dung. [https://phabricator.wikimedia.org/T367077]
* Chế độ soạn thảo mã nguồn của Công cụ Thảo luận (DiscussionTools) và Trình soạn thảo mã nguồn 2017 nay sẽ cung cấp tính năng tự động điền cho các liên kết (<bdi lang="zxx" dir="ltr"><code><nowiki>[[</nowiki></code></bdi>), bản mẫu (<bdi lang="zxx" dir="ltr"><code><nowiki>{{</nowiki></code></bdi>), thẻ HTML và phân tích cú pháp (<bdi lang="zxx" dir="ltr"><code><nowiki><</nowiki></code></bdi>), cũng như các từ ma thuật (<bdi lang="zxx" dir="ltr"><code><nowiki>__</nowiki></code></bdi>), giúp việc chèn các liên kết, bản mẫu và mã đánh dấu wiki khác trong quá trình sửa đổi trở nên nhanh chóng và dễ dàng hơn. [https://phabricator.wikimedia.org/T432400]
* [[mw:Special:MyLanguage/Readers/Reader Growth/Mobile page previews|Nhóm Phát triển Người đọc]] đã kết thúc việc thử nghiệm với tính năng xem trước trang trên thiết bị di động và sẽ không triển khai tính năng này nữa. Tính năng Xem trước Trang là một cửa sổ bật lên ở cuối trang xuất hiện khi người đọc nhấn vào liên kết xanh, hiển thị hình thu nhỏ, đoạn mở đầu và tùy chọn mở bài viết. Thử ngiệm cho thấy tỷ lệ giữ chân người dùng không thay đổi nhưng các chỉ số khác đều mang tính tiêu cực, điều này có nghĩa là người đọc trên trang web dành cho thiết bị di động thích truy cập trực tiếp vào các bài viết được liên kết hơn là sử dụng tính năng xem trước trang.
* Nhóm Trải nghiệm Người đọc đã bước đầu ghi nhận những kết quả khả quan từ [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|tính năng Danh sách Đọc]], trong đó 93% người dùng tham gia báo cáo rằng tính năng này hữu ích. Danh sách Đọc giúp người đọc hoạt động tích cực lưu lại các bài viết để đọc sau này và hỗ trợ mục tiêu học tập của họ trên các dự án Wikimedia. Nhóm dự định sẽ tiếp tục cải tiến trước khi mở rộng tính năng này cho nhiều người dùng hơn.
* Sáng kiến [[mw:Special:MyLanguage/Wikimedia Apps/Team/Explore Feed Refresh|Làm mới Nguồn cấp dữ liệu Khám phá]] đã được thử nghiệm với những người đọc mới và không thường xuyên sử dụng ứng dụng Wikipedia. Nguồn cấp dữ liệu được làm mới giúp người đọc khám phá những nội dung mới và phù hợp với mình. Với kết quả mức độ tương tác với nguồn cấp dữ liệu tăng 10,5%, nhóm Ứng dụng Wikimedia đã quyết định mở rộng việc thiết kế lại Nguồn cấp dữ liệu Trang chủ sang iOS, áp dụng những kinh nghiệm thu được từ phiên bản dành cho Android.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến cho tên chủ đề trong tính năng Hướng dẫn Bài viết hiển thị sai cách viết hoa trên Wikipedia tiếng Pháp nay đã được giải quyết. Tên chủ đề nay sẽ tuân theo đúng quy tắc viết hoa của ngôn ngữ đó. [https://phabricator.wikimedia.org/T427201]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Sau khi thực hiện một số [[mw:Special:MyLanguage/Contributors/Account Creation Experiments|Thử nghiệm Tạo Tài khoản]] để cải thiện tỷ lệ hoàn tất việc đăng ký, một phiên bản mới của trường tên người dùng trên trang [[Special:CreateAccount|Tạo Tài khoản]] đã được triển khai. Phiên bản này bao gồm [[:c:File:Create account - July 2026 updates.png|một cửa sổ bật lên nhằm tóm tắt quy định về tên người dùng]] để cung cấp hướng dẫn rõ ràng hơn trong quá trình tạo tài khoản. Là một phần của thay đổi này, các thông báo <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-helpusername</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-help</nowiki></code></bdi> mà một số cộng đồng đã cấu hình sẽ không còn được sử dụng nữa. Nếu cộng đồng muốn tùy chỉnh hướng dẫn hiển thị trong cửa sổ bật lên mới, cộng đồng có thể sửa đổi các thông báo sau: <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-policy-popover-bullet1</nowiki></code></bdi>, <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-policy-popover-bullet2</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-policy-popover-bullet3</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T430604]
* Cuối tuần này, [[mw:Special:MyLanguage/Help:Extension:CodeMirror|trình làm nổi bật cú pháp CodeMirror]] sẽ cung cấp [[w:en:Theme (computing)|các chủ đề]]. Các chủ đề có thể được chọn từ menu thả xuống trong hộp thoại [[mw:Special:MyLanguage/Help:Extension:CodeMirror#CodeMirror preferences|tùy chọn CodeMirror]] hoàn chỉnh. Đối với mã wiki, các chủ đề có sẵn là mặc định, thân thiện với người mù màu (trước đây là tùy chọn dễ phân biệt cho người mù màu trong [[Special:Preferences#mw-prefsection-editing]]) và không làm nổi bật. Đối với các ngôn ngữ lập trình (ví dụ: CSS/JavaScript/JSON/Vue/Lua), hiện có sẵn một vài chủ đề. Các chủ đề tương tự này sau này cũng sẽ có sẵn cho mã wiki. [https://phabricator.wikimedia.org/T163533]
* Kể từ giờ trở đi, các wiki có thể giới hạn sửa đổi trong không gian tên "Thành viên" chỉ cho chính thành viên đó và một số nhóm người dùng nhất định. [[mw:Special:MyLanguage/Manual:$wgRestrictUserPageEditing|Đọc tài liệu hướng dẫn cấu hình]] để tìm hiểu thêm.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.14|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/31|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W31"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:49, ngày 27 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30856308 -->
== Bản tin Kỹ thuật: Tuần 32-2026 ==
<section begin="technews-2026-W32"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/32|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đã phát triển một [https://82db7c8d4b.catalyst.wmcloud.org/w/index.php?title=Regent%27s_Park&uselang=de bản vá demo] nhằm bọc thanh công cụ trang thành hai dòng nếu không có đủ không gian bề ngang cho tất cả các nút. Điều này nhằm mục đích giảm tình trạng quá tải trên thanh công cụ trong giao diện Vector 2022, có thể xảy ra trên một số trang ngôn ngữ Wikipedia trên một số độ rộng màn hình nhất định. [https://phabricator.wikimedia.org/T429518]
* Nhóm Trải nghiệm Người đọc dự kiến sẽ phát hành [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|Danh sách Đọc]], một [[m:Special:MyLanguage/Community Wishlist Survey 2021/Mobile and apps/Have Apps reading lists available on Destop/Mobile|mục trong Danh sách Mong muốn Cộng đồng]], hiện đang có sẵn để dùng thử dưới dạng tính năng beta, dưới dạng tính năng đầy đủ vào tháng 9. Trước thời điểm đó, chúng tôi cần các tình nguyện viên biên dịch giúp [https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-readinglists&filter=&action=translate dịch các chuỗi này] sang những ngôn ngữ khác. Tính năng này giúp hỗ trợ các mục tiêu đọc và học tập trên Wikipedia.
* Vào tuần tới, mục lục trên các trang tập tin Wikimedia Commons sẽ được cải thiện bằng cách hợp nhất mục lục trang tập tin với mục lục của trang. Điều này sẽ giúp việc hiểu cấu trúc trang tập tin, điều hướng đến những đề mục cụ thể, và chia sẻ liên kết đến các đề mục riêng biệt trở nên dễ dàng hơn. [https://phabricator.wikimedia.org/T332644]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:24}} {{PLURAL:24|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho một số hình [[w:TIFF|TIFF]] không thể tải được sau khi nhấn vào hình thu nhỏ của nó, khiến cho hình bị hỏng được hiển thị thay vì hình có kích thước đầy đủ, nay đã được giải quyết. [https://phabricator.wikimedia.org/T429326]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bộ chọn biến và hàm trong Bộ lọc Sai phạm (AbuseFilter) đã được cập nhật để hỗ trợ tìm kiếm và tự động điền. Điều này sẽ giúp những người quản lý bộ lọc tìm kiếm biến hoặc hàm mong muốn nhanh hơn. [https://phabricator.wikimedia.org/T323698]
* Các định dạng MJPEG và VP8 đã bị loại bỏ khỏi trình phát video. Thay vào đó, định dạng MP4 (MPEG-4 Phần 2) được thêm vào, nhằm cung cấp video chất lượng cao hơn cho các thiết bị iPhone đời cũ. Việc cập nhật lại tất cả các video hiện có sẽ có thể mất vài tuần. Định dạng mặc định cho các thiết bị hiện đại vẫn sẽ được giữ nguyên (VP9/WebM). [https://phabricator.wikimedia.org/T358266]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.15|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/32|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W32"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:46, ngày 3 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30872536 -->
== Bản tin Kỹ thuật: Tuần 33-2026 ==
<section begin="technews-2026-W33"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/33|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Mục Mong muốn cộng đồng]] Công cụ mới Trình tạo Biểu đồ (ChartWizard) [[c:Special:ChartWizard/Data:Example.Pie.chart|nay đã có mặt trên Wikimedia Commons]] dành cho các thành viên có mong muốn tạo các biểu đồ từ dữ liệu của riêng mình. Trình hướng dẫn này giúp [[mw:Special:MyLanguage/Extension:Chart|phần mở rộng Chart]] trở nên thân thiện hơn với người mới bắt đầu bằng cách cho phép các biên tập viên tạo biểu đồ, chẳng hạn như biểu đồ cột và biểu đồ tròn, mà không cần phải sử dụng JSON. Các thành viên vẫn có thể chuyển sang trình soạn thảo mã JSON nếu họ muốn. Mọi ý kiến đóng góp về công cụ mới này đều được hoan nghênh trên [[m:Talk:Community Wishlist/W414|trang thảo luận của mong muốn này]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:19}} {{PLURAL:19|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho tiện ích Hình ảnh của Ngày của ứng dụng Wikipedia dành cho iOS hiển thị cùng một hình ảnh mỗi ngày thay vì cập nhật hàng ngày, nay đã được giải quyết. [https://phabricator.wikimedia.org/T430692]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Hình ảnh SVG cho [[mw:Special:MyLanguage/Extension:Math|công thức toán học]] sẽ sớm được tạo trong trình duyệt thay vì trên máy chủ. MathML vẫn sẽ tiếp tục được tạo trên máy chủ và hiển thị trong trình duyệt mà không cần JavaScript. Wikibooks sẽ áp dụng thay đổi này vào ngày 12 tháng 8, Wikisource vào ngày 19 tháng 8 và Wikipedia từ ngày 20-27 tháng 8. Bạn có thể thử thay đổi này bằng cách chọn "{{int:Mw-math-mathjax}}" trong phần tùy chọn của bạn. Thay đổi này là một phần trong lộ trình [[mw:Special:MyLanguage/RESTBase/deprecation|ngừng sử dụng RESTBase]] và [[phab:T431372|ngừng sử dụng Mathoid]]. [https://phabricator.wikimedia.org/T271001]
* <span class="mw-translate-fuzzy">Các trang thể loại sẽ sớm hỗ trợ việc sắp xếp các mục theo thời gian chúng được thêm vào thể loại. Điều này sẽ giúp việc tìm kiếm các trang được xếp thể loại gần đây hoặc đã xếp từ lâu trở nên dễ dàng hơn. Tính năng này cũng sẽ cải thiện quy trình làm việc đối với các thể loại bảo trì chẳng hạn như danh sách trang chờ xóa và các tác vụ rà soát theo thời gian khác. Bạn có thể sử dụng tham số URL <bdi lang="zxx" dir="ltr"><code><nowiki>cldsort=timestamp</nowiki></code></bdi> trong chế độ xem thể loại để sắp xếp các mục này.</span> [https://phabricator.wikimedia.org/T433768]
* Các [[mw:Special:MyLanguage/Extension:Gadgets|tiện ích]] và đoạn mã người dùng trên các wiki của Wikimedia nay có thể sử dụng [[phab:T395347|các tính năng theo chuẩn ES2018]] và [[phab:T419142|các tính năng theo chuẩn ES2019]] trong đoạn mã JavaScript. Trước đây, nền tảng chỉ cho phép sử dụng tối đa đến chuẩn ES2017. MediaWiki kiểm tra mã nguồn để bảo vệ chức năng khỏi các lỗi cú pháp và đảm bảo các đoạn mã đều hợp lệ trên tất cả [[mw:Special:MyLanguage/Compatibility#Browser_support_matrix|các trình duyệt được hỗ trợ]]. [https://phabricator.wikimedia.org/T419142]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.16|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/33|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W33"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:45, ngày 10 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30901051 -->
== Bản tin Kỹ thuật: Tuần 34-2026 ==
<section begin="technews-2026-W34"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/34|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Help:Extension:CampaignEvents/Registration/Worklist|Tính năng Danh sách Công việc (Worklist)]] dành cho công cụ Đăng ký Sự kiện nay đã có mặt trên tất cả các dự án wiki của Wikimedia. Với Danh sách Công việc, ban tổ chức sự kiện có thể thêm trực tiếp các bài viết mà sẽ là trọng tâm của sự kiện vào trang sự kiện. Danh sách Công việc cũng hỗ trợ tính năng [[mw:Special:MyLanguage/Help:Extension:CampaignEvents/Registration/Worklist#How Event Pathways uses the worklist|Lộ trình Sự kiện (Event Pathways)]] giúp thông báo cho các biên tập viên khác về sự kiện sắp hoặc đang diễn ra khi họ sửa đổi một bài viết có trong Danh sách Công việc của sự kiện đó. Đây là phiên bản khả thi tối thiểu (MVP), và chúng tôi hoan nghênh mọi ý kiến đóng góp. Các ban tổ chức được khuyến khích thử tính năng này. Buổi [[m:Special:MyLanguage/Event:Worklist Setup Workshop: Get Your Event Ready|Hội thảo Thực hành Danh sách Công việc]] sẽ diễn ra vào ngày 18 tháng 6 lúc 16:00 UTC và ngày 19 tháng 6 lúc 11:00 UTC.
'''Cập nhật cho biên tập viên'''
* [[Special:ShortPages]] hiển thị các trang ngắn dựa trên kích thước của chúng, nhưng trong nhiều trường hợp danh sách này bị lấp đầy bởi các trang định hướng và đổi hướng mềm, khiến việc tìm kiếm chính các bài viết ngắn đó trở nên khó khăn hơn. Kể từ cuối tuần này, bạn sẽ có thể loại bỏ một bài viết khỏi trang đặc biệt này bằng cách thêm từ ma thuật <bdi lang="zxx" dir="ltr"><code><nowiki>__EXPECTSHORTPAGE__</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T433203]
* Một wiki mới đã được tạo ra: {{int:project-localized-name-group-wikipedia/vi}} tiếng [[d:Q3436680|Bole]] ([[w:bol:|<bdi lang="zxx" dir="ltr"><code><nowiki>w:bol:</nowiki></code></bdi>]]) [https://phabricator.wikimedia.org/T429921]
* Kể từ tuần ngày 17 tháng 8, thanh công cụ trang sẽ tự động xuống thành hai hàng khi không còn đủ không gian theo chiều ngang để hiển thị tất cả các nút. Đây là một [[phab:T429518|bản vá đã được hợp nhất hoàn toàn từ nhóm Trải nghiệm Người đọc]] nhằm giảm bớt tình trạng chật không gian trên thanh công cụ của giao diện Vector 2022, một vấn đề mà có thể xảy ra trên một số phiên bản ngôn ngữ Wikipedia ở một số độ rộng màn hình nhất định.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:16}} {{PLURAL:16|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, việc tải các tập tin có dung lượng lớn lên Wikimedia Commons đã trở nên ổn định hơn và ít gặp lỗi hơn sau một số bản sửa lỗi liên quan đến lỗi tải lên "Không thể lấy khóa". [https://phabricator.wikimedia.org/T386640]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Debian Bullseye sẽ kết thúc Hỗ trợ Dài hạn vào ngày 31 tháng 8 năm 2026. [[phab:T434103|Một số dự án Cloud VPS]] vẫn còn instance đang chạy Debian Bullseye. Bảo trì viên của những dự án này được khuyến khích chuyển sang Debian Bookworm hoặc Debian Trixie. Hiện đã có trang [[wikitech:Help:Cloud VPS instance operating system migration|hướng dẫn di chuyển]] nhằm giúp thực hiện quy trình này, đồng thời các thành viên cũng có thể muốn xem xem liệu khối lượng công việc của họ có phù hợp hơn với Toolforge hay không. Nếu bạn cần trợ giúp hoặc không thể hoàn tất quá trình chuyển đổi trước ngày 31 tháng 8, vui lòng liên hệ với quản trị viên Cloud VPS càng sớm càng tốt. [[listarchive:list/cloud-announce@lists.wikimedia.org/thread/RVIPQSYLKMSL5M46JP6NEJVGVE6I2RXQ/|Đọc thêm]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.16|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/34|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W34"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:03, ngày 17 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30922806 -->
== Bản tin Kỹ thuật: Tuần 35-2026 ==
<section begin="technews-2026-W35"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/35|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Trang [[Special:CreateAccount|Đặc biệt:Tạo tài khoản]] đã được đơn giản hóa như là một phần của nỗ lực nhằm hiện đại hóa trải nghiệm tạo tài khoản. Khung hiển thị số liệu thống kê về dự án sẽ không còn xuất hiện bên cạnh biểu mẫu trên giao diện trang web máy tính và di động. Nhiều thử nghiệm tạo tài khoản cho thấy việc sử dụng biểu mẫu đơn giản hơn giúp người dùng mới hoàn tất quy trình đăng ký dễ dàng hơn. [https://phabricator.wikimedia.org/T433783]
* Để cải thiện hiệu suất trang, các hình ảnh nay sẽ chỉ được tải khi người dùng xem chúng. Điều này có nghĩa là những hình ảnh nằm ở phần dưới của bài viết sẽ không được tải nếu người đọc không bao giờ cuộn trang xuống phần đó của bài viết, điều này có thể ảnh hưởng đến một vài số liệu liên quan đến hình ảnh. [https://phabricator.wikimedia.org/T148047]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:42}} {{PLURAL:42|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho các hình thu nhỏ trên Abstract Wikipedia có thể không hiển thị được sau khi tập tin tương ứng được di chuyển trên Wikimedia Commons, nay đã được giải quyết. Các hình thu nhỏ nay sẽ được cập nhật chính xác khi tập tin được di chuyển. [https://phabricator.wikimedia.org/T433448]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Thẻ Thông tin Thành viên là một tính năng giúp các tuần tra viên xem thông tin về các tài khoản người dùng. Trước đây, tính năng này chỉ xuất hiện ở những nơi chẳng hạn như lịch sử trang, nhật trình và thay đổi gần đây. Giờ đây, các thành viên cũng có thể [[mw:Special:MyLanguage/Help:Extension:CheckUser#User_Info_card_in_page_content|đặt thẻ này vào nội dung trang]], bằng cách sử dụng hàm phân tích cú pháp <bdi lang="zxx" dir="ltr"><code><nowiki>{{#uic:}}</nowiki></code></bdi>. Điều này đặc biệt hữu ích trong các bản mẫu như [[:en:Template:Userlinks|<bdi lang="zxx" dir="ltr"><code><nowiki>{{Userlinks}}</nowiki></code></bdi>]] (hoặc các biến thể chuyên biệt của chúng), vì nó sẽ giúp việc xem thông tin về thành viên trên nhiều trang bảng tin nhắn trở nên dễ dàng hơn. Thẻ này sẽ chỉ được hiển thị với những người dùng đã kích hoạt tính năng này trong phần [[Special:Preferences#mw-input-wpcheckuser-userinfocard-enable|tùy chọn]] của mình. [https://phabricator.wikimedia.org/T424466]
* Do những rủi ro về bảo mật và quyền riêng tư của người dùng, chúng tôi đã vô hiệu hóa quyền truy cập vào các URL dẫn đến trang <bdi lang="zxx" dir="ltr"><code><nowiki>Special:MyPage</nowiki></code></bdi> khi sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>action=raw</nowiki></code></bdi>. Nếu điều này ảnh hưởng tới bạn, hãy cân nhắc xem bạn có thể sử dụng một phương thức nào đó thay thế hay không. Các URL dẫn đến trang <bdi lang="zxx" dir="ltr"><code><nowiki>Special:MyPage</nowiki></code></bdi> vẫn có thể truy cập và sử dụng được mà không cần sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>action=raw</nowiki></code></bdi>. Các URL cụ thể cho trang thành viên (v.d. <bdi lang="zxx" dir="ltr"><code><nowiki>User:Myusername</nowiki></code></bdi>) vẫn có thể được sử dụng với <bdi lang="zxx" dir="ltr"><code><nowiki>action=raw</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T120386]
* Nhờ một bản cập nhật, phần mềm tạo hình thu nhỏ đã được cải tiến. Nó bao gồm việc nâng cấp <bdi lang="zxx" dir="ltr"><code><nowiki>librsvg</nowiki></code></bdi> lên phiên bản 2.60 và <bdi lang="zxx" dir="ltr"><code><nowiki>ImageMagick</nowiki></code></bdi> lên 7, cũng như việc khắc phục một số lỗi tạo hình thu nhỏ đã tồn tại từ lâu chẳng hạn như lỗi hiển thị. [https://phabricator.wikimedia.org/T419815#12222841]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.17|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/35|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W35"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:45, ngày 24 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30961208 -->
== Bản tin Kỹ thuật: Tuần 36-2026 ==
<section begin="technews-2026-W36"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/36|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Một hình thức mới cho Danh sách Mong muốn Cộng đồng hiện đang được lấy ý kiến đóng góp. Bạn có thể [[m:Special:MyLanguage/Community Wishlist/Community Wishlist 2027|đọc các ý tưởng đề xuất trên Meta]]. Quy trình mới này nhằm nâng cao hiệu quả sàng lọc, bỏ phiếu và ưu tiên cho các mong muốn nhằm đảm bảo tính minh bạch và sự cân bằng giữa các nhóm dự án và phiên bản ngôn ngữ. Đợt tham vấn này sẽ kéo dài trong vòng hai tuần.
'''Cập nhật cho biên tập viên'''
* Bản phát hành mới nhất của ứng dụng Wikipedia dành cho Android bao gồm các cập nhật đối với tính năng Đã lưu (Saved), giúp trải nghiệm lưu bài viết trên ứng dụng trở nên đồng bộ hơn với phiên bản iOS và Web. Bản cập nhật này thiết kế lại tab Đã lưu với giao diện “Tất cả bài viết”, xóa bỏ danh sách đọc mặc định “Đã lưu”, đổi tên các danh sách đọc thành “Bộ sưu tập” (Collections) và hiện đại hóa trải nghiệm lưu bài viết. [https://phabricator.wikimedia.org/T420788]
* Tính năng [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|Danh sách Đọc]] đã được kích hoạt cho tất cả người dùng đã đăng nhập trên Wikipedia tiếng Bengali, tiếng Trung, tiếng Séc và tiếng Việt vào ngày 25 tháng 8, sau vài tháng hoạt động dưới dạng tính năng thử nghiệm (beta). Danh sách Đọc sẽ được triển khai đến tất cả người dùng đã đăng nhập trên Wikipedia tiếng Ả Rập, tiếng Pháp và tiếng Indonesia vào ngày 1 tháng 9, sau đó là Wikipedia tiếng Anh vào ngày 14 tháng 9, và trên tất cả các wiki Wikipedia còn lại vào ngày 28 tháng 9.
* Vào cuối tháng này, một số độc giả chưa đăng nhập trên Wikipedia tiếng Bengali, tiếng Séc, tiếng Ba Tư, tiếng Anh và tiếng Ba Lan sử dụng giao diện Minerva trên thiết bị di động sẽ nhìn thấy một [[mw:Special:MyLanguage/Readers/Reader_Growth/Minimal_Minerva|thanh điều hướng được cập nhật]] trong [[:w:vi:Thử nghiệm A/B|thử nghiệm A/B]]. Thử nghiệm này sẽ so sánh thanh điều hướng hiện tại với phiên bản mới được thiết kế nhằm giúp người dùng tìm kiếm thông tin một cách nhanh chóng và dễ dàng hơn. Mục tiêu là xác định xem những thay đổi này có khuyến khích độc giả quay lại thường xuyên hơn hay không. Thử nghiệm này sẽ không làm thay đổi trải nghiệm của người dùng và/hoặc biên tập viên đã đăng nhập.
* Các biên tập viên chuyên bảo trì các trang đổi hướng, bản mẫu và thể loại được sử dụng trên các trang đổi hướng nay có thêm các phương thức cải tiến để tìm kiếm và quản lý trang đổi hướng. Trước đây, các trang đổi hướng không thể tìm kiếm được. Hai từ khóa tìm kiếm mới, <bdi lang="zxx" dir="ltr"><code><nowiki>onlyredirects:</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>withredirects:</nowiki></code></bdi>, giờ đây cho phép tìm kiếm trực tiếp các trang đổi hướng và có thể kết hợp với các từ khóa hiện có như <bdi lang="zxx" dir="ltr"><code><nowiki>incategory:</nowiki></code></bdi>, <bdi lang="zxx" dir="ltr"><code><nowiki>intitle:</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>insource:</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T204089]
* Các công cụ tìm kiếm ISBN để tạo các nguồn trích dẫn gần đây đã không hoạt động do các vấn đề liên quan đến dịch vụ bên ngoài. Các nhà phát triển đang nỗ lực để tìm giải pháp khắc phục. [https://phabricator.wikimedia.org/T435179]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho việc tìm kiếm trang theo thể loại sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>deepcat</nowiki></code></bdi> có thể không trả về kết quả hoặc trả về kết quả không liên quan nay đã được giải quyết. [https://phabricator.wikimedia.org/T414859]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Tên miền của URL cho hình thu nhỏ đang được thay đổi từ $1 sang thumb.wikimedia.org. Các URL cũ sẽ tiếp tục hoạt động trong tương lai gần, nhưng MediaWiki sẽ chuyển sang sử dụng tên miền mới. Các URL trỏ đến các loại tập tin đa phương tiện khác như tập tin gốc, video và tập tin chuyển mã vẫn sẽ được phục vụ từ upload.wikimedia.org. [https://phabricator.wikimedia.org/T427465]
* [https://www.mediawiki.org/w/index.php?api=wmf-math%2Fv1&title=Special%3ARestSandbox API Toán học (Math API)] của Wikimedia hiện đã lỗi thời và không còn được hỗ trợ. Các điểm cuối (endpoints) này sẽ chính thức ngừng hoạt động hoàn toàn vào cuối tháng 9 năm 2026. Các nhà phát triển gọi các điểm cuối này nên chuyển sang các giải pháp hiển thị toán học thay thế, chẳng hạn như [https://developer.mozilla.org/en-US/docs/Web/MathML MathML] tích hợp sẵn hoặc [https://www.mathjax.org/ MathJax]. Các hệ thống MediaWiki được cài đặt bởi bên thứ ba sử dụng phần mở rộng Math để hiển thị công thức bắt buộc phải nâng cấp lên phiên bản v1.43 trở lên để tránh gián đoạn dịch vụ.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.18|MediaWiki]]
'''Chuyên sâu'''
* Đọc thêm về [[mw:Special:MyLanguage/Edit_check/TextMatch|TextMatch]] trong một bài viết trên Diff có tiêu đề: [[diffblog:2026/08/28/custom-edit-suggestions-for-every-wiki-how-communities-are-shaping-suggestion-mode-with-textmatch/|Đề xuất sửa đổi tùy chỉnh cho mọi wiki: Cộng đồng đang định hình Chế độ Gợi ý với TextMatch như thế nào]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/36|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W36"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:53, ngày 31 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30990659 -->
== Bản tin Kỹ thuật: Tuần 37-2026 ==
<section begin="technews-2026-W37"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/37|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng [[mw:Special:MyLanguage/Help:Growth/Tools/Add_a_link|Thêm Liên kết]] đã được nâng cấp cho người dùng trên Wikipedia tiếng Anh với khả năng phát hiện tốt hơn các liên kết có sự khác biệt về cách viết hoa. Cải tiến này sẽ giúp giảm bớt những gợi ý mơ hồ gây ra do sự khác biệt về cách viết viết hoa trong tiêu đề bài viết, bao gồm cả những bài viết về các sản phẩm văn hóa. Hiện kế hoạch cải tiến giai đoạn 2 đã được lên lịch, kế hoạch cũng sẽ nhằm mục đích chuẩn bị phát hành tính năng này ở các ngôn ngữ khác. [https://phabricator.wikimedia.org/T435526#12240876] [https://phabricator.wikimedia.org/T434259]
* Tính năng [[mw:Special:MyLanguage/Article_guidance|Chỉ dẫn bài viết]] sẽ được bật theo mặc định cho các biên tập viên mới trên Wikipedia tiếng Anh Đơn giản và Wikipedia tiếng Thổ Nhĩ Kỳ kể từ ngày 10 tháng 9 năm 2026 sau khi đã trải qua [[mw:Special:MyLanguage/Article_guidance/Updates#Summary_of_experiment_result|một cuộc thử nghiệm]]. Các biên tập viên mới có từ 0 đến 99 sửa đổi sẽ tự động nhìn thấy tính năng này khi họ nhấn vào liên kết đỏ hoặc sử dụng tùy chọn "[[tr:Vikipedi:Madde_sihirbazı|Madde oluşturto]]" (tạo bài viết) trên Wikipedia tiếng Thổ Nhĩ Kỳ để tạo bài viết mới. Thay đổi này nhằm mục đích giúp các biên tập viên mới tạo các bài viết có chất lượng cao hơn và đáp ứng các tiêu chuẩn của từng dự án Wikipedia. [[phab:maniphest/query/z3tcTjmLMxk5/#R|Các cải tiến bổ sung]] sẽ tiếp tục được thực hiện dựa trên kết quả thử nghiệm và phản hồi từ cộng đồng.
* Công cụ [https://pageviews.wmcloud.org Phân tích Lượt xem Trang] nhằm cho phép người dùng so sánh lượt xem giữa nhiều trang, năm nay đã tròn 10 tuổi và được bổ sung thêm một số tính năng mới. Chúng bao gồm [[toolforge:wikinav|WikiNav]] nhằm cung cấp thông tin chuyên sâu vào cách độc giả Wikipedia khám phá nội dung, thống kê sửa đổi trong mục [https://pageviews.wmcloud.org/siteviews?range=latest-30&sites=en.wikipedia.org Siteviews], khả năng [https://pageviews.wmcloud.org/massviews?source=wikiproject&project=en.wikipedia.org tra cứu bài viết thuộc Dự án Wiki], cũng như hỗ trợ chế độ tối. [https://phabricator.wikimedia.org/T378549]
* Một thanh điều hướng [[mw:Special:MyLanguage/Readers/Reader_Growth/Minimal_Minerva|Minerva được đơn giản hóa về mặt trực quan]] đang được thử nghiệm dành cho các độc giả chưa đăng nhập sử dụng giao diện web di động trên các dự án Wikipedia tiếng Bengal, tiếng Séc, tiếng Anh, tiếng Ba Tư và tiếng Ba Lan. Thử nghiệm này nhằm xác định xem việc đơn giản hóa thanh điều hướng có cải thiện việc giữ chân độc giả hay không. Thử nghiệm sẽ diễn ra từ ngày 31 tháng 8 đến ngày 28 tháng 9, và người dùng không cần phải thực hiện bất kỳ thao tác nào.
* [[m:Special:MyLanguage/WMDE Technical Wishes|Nhóm Mong muốn Kỹ thuật của WMDE]] đang thực hiện việc cải tiến [[en:Wikipedia:VisualEditor/Named references|tên nguồn tham khảo được tạo tự động trong Trình Soạn thảo Trực quan]]. Các biên tập viên sẽ chỉ nhận thấy một thay đổi nhỏ kể từ tuần này. Khi thêm tên nguồn tham khảo tự động việc đánh số sẽ bắt đầu tại <bdi lang="zxx" dir="ltr"><code><nowiki>:1</nowiki></code></bdi> thay vì <bdi lang="zxx" dir="ltr"><code><nowiki>:0</nowiki></code></bdi>. Đọc thêm trên [[m:WMDE Technical Wishes/References/VisualEditor automatic reference names|trang dự án]]. [https://gerrit.wikimedia.org/r/c/VisualEditor/VisualEditor/+/1332704]
* Tất cả các wiki sẽ [[m:Special:MyLanguage/Tech/Server switch|chuyển sang chế độ chỉ đọc trong vài phút]] vào ngày 23 tháng 9. Kế hoạch dự kiến diễn ra lúc 14:00 UTC. Thông tin thêm về kế hoạch này sẽ được xuất bản trong Bản tin Kỹ thuật và cũng sẽ được đăng lên trên từng wiki trong các tuần tiếp theo. [https://phabricator.wikimedia.org/T433363]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:25}} {{PLURAL:25|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho [[mw:Special:MyLanguage/Parsoid|Parsoid]] có thể xử lý sai các thẻ nowiki được lồng nhau, khiến nội dung bị mất và hiển thị nội dung không mong muốn nay đã được giải quyết. [https://phabricator.wikimedia.org/T435116]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bảo quản viên giao diện có thể cấu hình các tiện ích từ [[MediaWiki:Gadgets-definition]]. Định dạng của định nghĩa tiện ích đã được cập nhật và không còn yêu cầu tùy chọn <bdi lang="zxx" dir="ltr"><code><nowiki>ResourceLoader</nowiki></code></bdi> nữa, vì các tiện ích luôn được tải thông qua <bdi lang="zxx" dir="ltr"><code><nowiki>ResourceLoader</nowiki></code></bdi>. Điều này giúp đơn giản hóa cấu hình tiện ích bằng cách loại bỏ một tùy chọn không còn cần thiết nữa, giúp việc định nghĩa tiện ích trở nên dễ dàng hơn cho các bảo quản viên. [https://phabricator.wikimedia.org/T298199]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.19|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/37|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W37"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:44, ngày 7 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31008437 -->
== Bản tin Kỹ thuật: Tuần 38-2026 ==
<section begin="technews-2026-W38"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/38|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Nhóm Future Audiences đã mở một [[en:Special:MyLanguage/Wikipedia:Village pump (proposals)#New proposed experiment to let readers know about “Google preferred sources”|cuộc thảo luận trên Wikipedia tiếng Anh]] về một đề xuất thử nghiệm mới nhằm hiển thị thông báo tạm thời về tính năng mới [https://blog.google/products-and-platforms/products/search/original-high-quality-content-search/ Nguồn Ưu tiên của Google] dành cho độc giả Wikipedia truy cập từ Google. Thử nghiệm này nhằm kiểm tra xem liệu thông báo này có giúp thu hút khách truy cập quay lại Wikipedia thường xuyên hơn hay không. Tính năng Nguồn Ưu tiên cho phép người dùng chọn các trang web mà họ tin tưởng nhằm giúp Google có thể hiển thị nội dung từ các nguồn này một cách nổi bật hơn trong trải nghiệm trên Tìm kiếm và AI. Chúng tôi mong muốn triển khai thử nghiệm này trên các ngôn ngữ khác mà Google hỗ trợ và rất hoan nghênh sự hỗ trợ trong việc khởi xướng thảo luận trên các dự án wiki khác. Nếu bạn quan tâm, vui lòng liên hệ nhóm Future Audiences trên [[m:Special:MyLanguage/Future Audiences/Preferred sources|trang thảo luận]].
'''Cập nhật cho biên tập viên'''
* Nền tảng trò chuyện Discord ra mắt cơ chế (framework) tự thiết lập mới nhằm cho phép các trang web có thể sử dụng để tùy chỉnh cách hiển thị những liên kết đó khi được chia sẻ trên Discord. Nhóm Future Audiences dự định sẽ bắt đầu sử dụng cơ chế này để cải thiện cách hiển thị các liên kết Wikipedia khi được chia sẻ trên Discord, nhằm ghi công sửa đổi của các tình nguyện viên một cách tốt hơn. Hình thức và cách thức hoạt động của liên kết sẽ không thay đổi trong giai đoạn đầu của dự án này vì chúng tôi muốn thu thập một số dữ liệu cơ sở trước để đánh giá tác động của những thay đổi này trong tương lai. Dù vậy, nếu các thành viên cộng đồng đang hoạt động trên Discord có phát hiện ra bất kỳ vấn đề nào, họ có thể liên hệ qua [[phab:tag/future-audiences/|Phabricator]] hoặc [[m:Special:MyLanguage/Future Audiences|Metawiki]].
* Nhóm Phát triển Độc giả sẽ tiến hành một thử nghiệm xem liệu [[mw:Special:MyLanguage/Readers/Reader_Growth/Compact Lead|việc rút gọn phần mở đầu của bài viết]] kèm theo nút "đọc thêm" có giúp cải thiện việc giữ chân người đọc hay không. Thử nghiệm này sẽ bắt đầu vào ngày 17 tháng 9 trên các phiên bản Wikipedia tiếng Ả Rập, tiếng Tây Ban Nha, tiếng Pháp, tiếng Indonesia, tiếng Ý, tiếng Nhật, tiếng Bồ Đào Nha, tiếng Việt và tiếng Trung và sẽ kéo dài trong bốn tuần.
* Tất cả các wiki sẽ [[m:Special:MyLanguage/Tech/Server switch|chuyển sang chế độ chỉ đọc trong vòng vài phút]] vào ngày 23 tháng 9. Kế hoạch được lên lịch lúc 14:00 UTC. Thông tin chi tiết sẽ được đăng tải lên Bản tin Kỹ thuật và cũng sẽ được đăng lên từng wiki riêng lẻ trong tuần tới. [https://phabricator.wikimedia.org/T433363]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến [https://wikistats.wmcloud.org/ Wikistats] dành cho Wikipedia trả về lỗi HTTP 500 và không thể truy cập được, nay đã được giải quyết. [https://phabricator.wikimedia.org/T435959]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Các nhà phát triển đang bảo trì công cụ truy vấn các bảng liên kết của Wikimedia Commons cần cập nhật mã nguồn của mình để kết nối với cụm cơ sở dữ liệu (database cluster) x4 mới. Các bảng liên kết đã được chuyển từ cụm s4 sang x4, và sẽ không còn nhận được cập nhật trên cụm s4 nữa. Các bảng trang và đổi hướng vẫn sẽ tiếp tục khả dụng trên cả hai cụm này. Một bản sao dữ liệu wiki (wiki replica) cho cụm x4 sẽ được thiết lập sau này. Thay đổi này được thực hiện do cụm s4 đã trở nên quá lớn gây ảnh hưởng đến hiệu quả vận hành của bảng liên kết. Bạn có thể [[wikitech:Special:MyLanguage/News/2026 Commons links tables database split|đọc thêm]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.20|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/38|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W38"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:31, ngày 14 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31039826 -->
== Chuyển đổi máy chủ - Wiki của bạn sẽ sớm chuyển sang chế độ chỉ đọc trong một khoảng thời gian ngắn ==
<section begin="server-switch"/><div class="plainlinks">
[[:m:Special:MyLanguage/Tech/Server switch|Đọc thông báo này bằng ngôn ngữ khác]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}]
[[foundation:|Quỹ Wikimedia]] sẽ chuyển đổi lưu lượng qua lại giữa các trung tâm dữ liệu. Điều này sẽ giúp đảm bảo rằng Wikipedia và các wiki khác của Wikimedia vẫn có thể duy trì trực tuyến ngay cả sau tình huống thiên tai.
Mọi lưu lượng sẽ chuyển đổi vào ngày '''{{#time:j xg|2026-09-23|vi}}'''. Việc chuyển đổi này sẽ bắt đầu vào lúc '''[https://zonestamp.toolforge.org/{{#time:U|2026-09-23T14:00|en}} {{#time:H:i e|2026-09-23T14:00}}]'''.
Dù vậy, vì một số hạn chế của phần mềm [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], mọi sửa đổi đều phải bị ngưng lại khi việc chuyển đổi được thực hiện. Chúng tôi chân thành xin lỗi vì sự gián đoạn này, và chúng tôi đang tìm cách giảm thiểu những tình huống như vậy trong tương lai.
Một biểu ngữ sẽ được hiển thị trên tất cả các wiki 30 phút trước khi quá trình này diễn ra. Biểu ngữ sẽ tiếp tục được hiển thị cho tới khi kết thúc quá trình này.
Bạn có thể đóng góp bằng cách [https://meta.wikimedia.org/w/index.php?title=Special%3ATranslate&group=Centralnotice-tgroup-read_only_banner&task=view&language=&filter=&action=translate biên dịch và hiệu đính] dòng biểu ngữ này.
'''Bạn sẽ có thể đọc, nhưng không thể sửa đổi, tất cả wiki trong một khoảng thời gian ngắn.'''
* Bạn sẽ không thể sửa đổi trong vòng tối đa một giờ vào {{#time:l j xg Y|2026-09-23|vi}}.
* Nếu bạn cố gắng sửa đổi hay lưu trang trong khoảng thời gian này, bạn sẽ nhìn thấy một thông báo lỗi. Chúng tôi hy vọng sẽ không có sửa đổi nào bị mất trong khoảng thời gian đó, nhưng chúng tôi không thể đảm bảo được điều đó. Nếu bạn nhìn thấy thông báo lỗi, vui lòng chờ đợi cho đến khi mọi thứ trở lại bình thường. Sau đó bạn sẽ có thể lưu lại sửa đổi của mình. Tuy nhiên, chúng tôi khuyên bạn trước hết nên tạo một bản sao những thay đổi của bạn, nhằm mục đích đề phòng.
''Những ảnh hưởng khác'':
* Tác vụ xử lý nền sẽ bị chậm hơn và một số có thể bị ngừng hẳn. Các liên kết đỏ có thể sẽ không được cập nhật nhanh chóng như thường lệ. Nếu bạn tạo một bài viết đã được liên kết ở một nơi khác, liên kết đó vẫn sẽ có màu đỏ lâu hơn bình thường. Một số đoạn mã tốn nhiều thời gian chạy sẽ phải dừng lại.
* Chúng tôi hy vọng việc triển khai mã nguồn vẫn sẽ diễn ra như bất kỳ tuần nào khác. Tuy vậy, một vài trường hợp đóng băng mã nguồn có thể xảy ra nếu quá trình yêu cầu chúng sau đó.
* [[mw:Special:MyLanguage/GitLab|GitLab]] sẽ không khả dụng trong khoảng 90 phút.
Dự án này có thể bị hoãn lại nếu cần thiết. Bạn có thể [[wikitech:Switch_Datacenter|đọc lịch trình tại wikitech.wikimedia.org]]. Bất kỳ thay đổi nào đều sẽ được thông báo trong lịch trình này.
'''Xin hãy chia sẻ thông tin này với cộng đồng của bạn.'''</div><section end="server-switch"/>
[[m:user:Trizek (WMF)|Trizek (WMF)]] 12:58, ngày 15 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Trizek (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=30513874 -->
== Your feedback wanted: Remove ''(Language link added:) and similar'' edits from Special:RecentChanges ==
''(Apologies for posting in English. You can help by translating it)''
Hello, I’m Danny from [[:en:w:Wikimedia_Deutschland|Wikimedia Deutschland’s]] [[m:Wikidata_For_Wikimedia_Projects|Wikidata For Wikimedia Projects]] team.<br/>
We have been investigating and examining how Wikidata’s use in the [[Special:RecentChanges]] and [[Special:Watchlist]] pages can be made to be more useful, or less ‘noisy’ (fewer edits that have little value to the reader).
We are currently exploring to make a change in the volume and the type of Wikidata edits that appear in these pages, and '''we need your feedback''' to help us ensure this is a positive change for the Wikis and won’t disrupt your workflows.<br/>
Language links are also known as sitelinks or interlanguage links and describe when a Wikidata item is connected to a Wiki, adding it to the language dropdown tool for other connected Wikis.
[[File:Types of Lang Link changes.png|x350px|frame|A variety of "Language Link" edits as seen in the Recent Changes feed]]
The request for feedback is whether you support the removal of these language link edits from the Recent Changes and Watchlist feed, or would you oppose such a change and if so, why?
Please share you thoughts on the dedicated '''[[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|metawiki Talk page]]'''.
Further information about this change: [[m:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|m:Wikidata_For_Wikimedia_Projects/Hide_Language_Link_edits]]
Thank you for any participation or feedback you give, -- [[m:User:Danny_Benjafield_(WMDE)|User:Danny Benjafield (WMDE)]] 12:48, ngày 25 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Danny Benjafield (WMDE)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_test_list&oldid=31081007 -->
== Bản tin Kỹ thuật: Tuần 39-2026 ==
<section begin="technews-2026-W39"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/39|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[m:Special:MyLanguage/Tech/Server switch|Tất cả các wiki sẽ chuyển sang chế độ chỉ đọc]] trong vòng vài phút vào thứ 4, ngày 23 tháng 9 năm 2026 lúc [https://zonestamp.toolforge.org/1790172000 14:00 UTC]. Điều này là nhằm phục vụ cho việc thử nghiệm chuyển đổi máy chủ cơ sở dữ liệu dự phòng, [[wikitech:Special:MyLanguage/Deployments/Yearly calendar|diễn ra hai lần trong một năm]]. Trong quá trình chuyển đổi này, toàn bộ lưu lượng trên các trang web của Wikimedia được chuyển từ trung tâm dữ liệu chính sang trung tâm dữ liệu dự phòng nhằm kiểm tra tính khả dụng và ngăn ngừa việc gián đoạn dịch vụ ngay cả trong những trường hợp khẩn cấp. [https://phabricator.wikimedia.org/T433363]
'''Cập nhật cho biên tập viên'''
* Nhóm Tăng trưởng đã thử nghiệm một thông báo sau khi sửa đổi mới được thiết kế nhằm [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#4. Encourage Temporary Accounts to Register|khuyến khích những người đang có Tài khoản Tạm thời đăng ký tài khoản vĩnh viễn]]. Thông báo mới này thay thế cho nhiều hộp thoại kèm thông báo chào mừng xuất hiện cùng lúc bằng một thông báo duy nhất nhằm nêu bật những lợi ích của việc tạo một tài khoản. Thử nghiệm này đã giúp tăng tỷ lệ tạo tài khoản vĩnh viễn từ 1.94% lên 3.66%, tương đương với mức tăng khoảng 87%. Thay đổi này giờ đây sẽ được triển khai đến tất cả các dự án wiki. [https://phabricator.wikimedia.org/T433551]
* Đối với các biên tập viên Wikipedia sử dụng [[Special:Preferences#mw-prefsection-betafeatures|Tính năng Beta "Chế độ gợi ý"]], hiện có một [[Special:Preferences#mw-input-wpvisualeditor-editcheck-experimental|tùy chọn mới trong phần tùy chọn của người dùng]] nhằm hiển thị các gợi ý và kiểm tra sửa đổi mang tính "thử nghiệm". Những loại này được liệt kê tại [[Special:EditChecks#experimental-checks|Đặc biệt:EditChecks]], và nhằm mục đích để lập trình viên thử nghiệm sớm cũng như để thu thập phản hồi từ những người dùng có kinh nghiệm. Các bảo quản viên có thể thay đổi [[mw:Special:MyLanguage/Edit check/Configuration|chi tiết cấu hình]] cho từng gợi ý như thường lệ. Bảo quản viên cũng có thể [[mw:Special:MyLanguage/Help:Suggestion mode#Experimental Suggestions|sử dụng tính năng này]] để giúp thử nghiệm những ý tưởng của cộng đồng về những quy tắc kiểm tra và gợi ý do cộng đồng tạo. Những loại tính năng thử nghiệm này sẽ có giao diện trực quan khác biệt hơn vào cuối tuần này. [[mw:Talk:VisualEditor/Suggestion Mode|Mọi phản hồi đều được hoan nghênh]].
* [[m:CEE Technical Village Pump|Phòng Thảo luận Kỹ thuật CEE]] (CEE Technical Village Pump) đã được mở để đóng vai trò như một không gian thảo luận và hợp tác kỹ thuật của các cộng đồng Wikimedia tại khu vực Trung và Đông Âu.
* Một công cụ mới, [[mw:Special:MyLanguage/Language Onboarding and Development/Starter kit|Bộ Công cụ Khởi đầu]] (Starter Kit), nay đã có sẵn dành cho các cộng đồng Wikipedia ngôn ngữ mới và quy mô nhỏ. Công cụ này tập hợp những nhiệm vụ có hướng dẫn, công cụ và tài nguyên nhằm giúp cộng đồng có thể bắt đầu, theo dõi tiến độ, cũng như hợp tác cùng với cộng đồng Wikimedia rộng lớn hơn. Bộ Công cụ Khởi đầu được vận hành trên nền tảng Wikimedia Toolforge và được thiết kế dành cho các dự án Wikipedia có ít hơn 50.000 bài viết. Tìm hiểu thêm cách Bộ Công cụ Khởi đầu hoạt động và cách cộng đồng đang sử dụng công cụ này trong [[diffblog:2026/09/18/introducing-starter-kit-for-new-and-small-language-wikipedias/|bài viết này trên blog Diff]].
* Nhóm Phát triển Người đọc sẽ mở một đợt tái thử nghiệm của [[mw:Special:MyLanguage/Readers/Reader Growth/Image Browsing|thử nghiệm băng chuyền hình ảnh]]. Đợt tái thử nghiệm này sẽ sử dụng ba phiên bản thiết kế mới, được cập nhật dựa trên phản hồi của cộng đồng. Nhóm sẽ đánh giá kết quả và cùng cộng đồng quyết định xem có tiếp tục triển khai tính năng này hay không. Thử nghiệm này sẽ bắt đầu vào tuần ngày 28 tháng 9 và sẽ được thực hiện trên Wikipedia tiếng Ả Rập, tiếng Bengal, tiếng Trung, tiếng Séc, tiếng Anh, tiếng Ba Tư, tiếng Pháp, tiếng Đức, tiếng Indonesia, tiếng Nhật, tiếng Ba Lan, tiếng Bồ Đào Nha, tiếng Tây Ban Nha, tiếng Thụy Điển và tiếng Việt.
* Sau khi triển khai thành công trên Wikipedia tiếng Ả Rập, tiếng Bengal, tiếng Trung, tiếng Séc, tiếng Anh, tiếng Pháp, tiếng Indonesia và tiếng Việt, [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|tính năng Danh sách Đọc]] do nhóm Trải nghiệm Người đọc phát triển sẽ có mặt cho tất cả người dùng đã đăng nhập trên tất cả các dự án Wikipedia kể từ ngày 28 tháng 9.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho đoạn mã trạng thái cố vấn liên tục cập nhật trạng thái của cố vấn ngay cả khi không có gì thay đổi, tạo ra những mục không cần thiết trên Thay đổi Gần đây, nay đã được giải quyết. [https://phabricator.wikimedia.org/T436659]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* API truy vấn danh sách <bdi lang="zxx" dir="ltr"><code><nowiki>abusefilters</nowiki></code></bdi>, vốn được sử dụng để lấy thông tin chi tiết về các bộ lọc sai phạm đang hoạt động hoặc đã tắt được thiết lập trên wiki, đã được cập nhật để hỗ trợ tham số cấu hình <bdi lang="zxx" dir="ltr"><code><nowiki>formatversion=2</nowiki></code></bdi>, điều này dẫn đến những thay đổi gây ra lỗi (breaking changes) đến phản hồi của API. Tất cả người dùng đang bảo trì các đoạn mã người dùng hoặc đoạn mã khác cần kiểm tra xem họ có đang sử dụng API truy vấn danh sách <bdi lang="zxx" dir="ltr"><code><nowiki>abusefilters</nowiki></code></bdi> hay không, đồng thời điều chỉnh để giải quyết những thay đổi gây ra lỗi này. [https://phabricator.wikimedia.org/T435828]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.21|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/39|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W39"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 11:56, ngày 27 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31085309 -->
== Bản tin Kỹ thuật: Tuần 40-2026 ==
<section begin="technews-2026-W40"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/40|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Người dùng sử dụng giao diện mặc định trên trang web dành cho máy tính và thiết bị di động (lần lượt là Vector 2022 và Minerva) nay sẽ được thông báo nếu gợi ý tìm kiếm được hiển thị khi họ nhập vào hộp Tìm kiếm đến từ các trang đổi hướng. Trước đây, người dùng có thể bị bối rối khi gợi ý kết quả tìm kiếm hàng đầu không khớp chính xác với những gì họ nhập vào. Thông báo trang đổi hướng mới này giúp làm rõ rằng những gợi ý này không phải ngẫu nhiên mà có liên quan đến nội dung tìm kiếm. Các trang được gợi ý có thể là các trang đổi hướng đến những bài viết đích phù hợp nhất với nội dung được tìm kiếm. [https://phabricator.wikimedia.org/T303013]
* Người dùng Wikipedia chưa đăng nhập trên giao diện web di dộng sẽ bắt đầu nhìn thấy nút đánh dấu (bookmark) để lưu các bài viết vào [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|danh sách đọc]] của họ thay vì nút Sao theo dõi (Watchstar) hiện tại. Khi được nhấn vào, nút đánh dấu sẽ yêu cầu người dùng đăng nhập hoặc tạo tài khoản để lưu bài viết và đọc lại sau. Một thử nghiệm trước đó cho thấy biểu tượng đánh dấu có khả năng khuyến khích người dùng chưa đăng nhập tạo tài khoản cao gấp bốn lần so với nút Sao theo dõi. Thay đổi này là một phần trong nỗ lực nhằm khuyến khích nhiều độc giả trở thành chủ tài khoản hơn và sử dụng các tính năng giúp họ lưu lại và quay lại để đọc nội dung. [https://phabricator.wikimedia.org/T438769]
* Một thử nghiệm sẽ bắt đầu vào ngày 29 tháng 9 trên các phiên bản Wikipedia tiếng Tây Ban Nha, tiếng Ả Rập, tiếng Anh và tiếng Pháp nhằm đơn giản hóa trải nghiệm mà người dùng gặp ngay sau khi tạo tài khoản. Thử nghiệm này sẽ khám phá xem việc loại bỏ trở ngại từ Khảo sát Chào mừng người mới hiện tại có giúp người dùng mới dễ dàng hiểu được rằng cần phải làm những gì tiếp theo hơn hay không. Cuộc thử nghiệm này sẽ kéo dài đến hết tháng 10. [https://phabricator.wikimedia.org/T430058]
* [[m:Special:MyLanguage/Product and Technology Advisory Council|Hội đồng Cố vấn về Sản phẩm và Công nghệ]] đã kêu gọi cộng đồng đề xuất các chủ đề mà hội đồng nên xem xét và thảo luận với Quỹ Wikimedia. Các biên tập viên và tình nguyện viên kỹ thuật được mời đóng góp chủ đề tại [[m:Talk:Product and Technology Advisory Council|trang thảo luận của hội đồng]].
* Cuối tuần này, các cộng đồng sẽ có thể cấu hình tính năng [[mw:Special:MyLanguage/Help:Edit check|Kiểm tra và Gợi ý Sửa đổi]] để chúng được [[mw:Special:MyLanguage/Edit check/Configuration#extraNamespaces|hiển thị trong các không gian tên bổ sung]], chẳng hạn như không gian tên <bdi lang="zxx" dir="ltr"><code><nowiki>Draft:</nowiki></code></bdi>. [[mw:Talk:VisualEditor/Suggestion Mode|Mọi ý kiến đóng góp đều được hoan nghênh]].
* Một lỗi trong [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] đang khiến cho trang không thể tải được đối với người dùng có những thay đổi chưa được xem trên Wikimedia Commons. Các lập trình viên đang tiến hành khắc phục lỗi này. Trong thời gian đó, những người dùng bị ảnh hưởng có thể làm theo các giải pháp thay thế được nêu trong mục trợ giúp [[mw:Special:MyLanguage/Extension:GlobalWatchlist#GlobalWatchlist temporarily broken for users with Wikimedia Commons|có liên quan]].
* Các từ ma thuật mới <bdi lang="zxx" dir="ltr"><code><nowiki>{{CATEGORYSORT:TIMESTAMP}}</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>{{CATEGORYSORT:RTIMESTAMP}}</nowiki></code></bdi> hiện đã có sẵn để sử dụng. Chúng có khả năng thay đổi cách sắp xếp mặc định của các thể loại dựa trên dấu thời gian xếp thể loại. [https://phabricator.wikimedia.org/T433768]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:20}} {{PLURAL:20|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, sự cố không thể truy cập được [https://wikistats.wmcloud.org/ Wikistats] cho các trang Wikipedia nay đã được giải quyết. [https://phabricator.wikimedia.org/T435959]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Việc chuyển đổi trung tâm dữ liệu, vốn dự kiến được diễn ra vào ngày 23 tháng 9, đã bị hoãn lại. [[diffblog:2025/03/12/hear-that-the-wikis-go-silent-twice-a-year/|Cuộc diễn tập Equinox]] đã bộc lộ các vấn đề về năng lực hệ thống, khiến việc chuyển đổi toàn bộ dịch vụ sang trung tâm dữ liệu khác không thể thực hiện được. Quy trình này đã được tạm dừng để ưu tiên điều tra vấn đề nêu trên, nhằm đảm bảo rằng chúng tôi vẫn có thể phục vụ người dùng một cách ổn định và tin cậy. Một cuộc diễn tập mới sẽ được lên kế hoạch sau. Trong thời gian này, mọi lưu lượng truy cập và hoạt động sửa đổi vẫn sẽ diễn ra như bình thường.
* Vào ngày 23 tháng 9, một sự cố mất điện đã ảnh hưởng đến tất cả các dự án wiki trong một khoảng thời gian ngắn, gây ra vấn đề gián đoạn cho cả chế độ đọc và sửa đổi. Sự cố này cũng ảnh hưởng đến Gerrit. Điều này không liên quan gì đến việc hoãn chuyển đổi trung tâm dữ liệu. [https://www.wikimediastatus.net/incidents/9fm19t8qykk8]
* [[mw:Special:MyLanguage/Help:Extension:Produnto|Produnto]] đã được triển khai trên mediawiki.org và [[phab:T421436|một số wiki sử dụng ngôn ngữ Ấn Độ]]. Chúng tôi mong nhận được phản hồi của bạn về sản phẩm thử nghiệm này. Produnto cho phép người dùng sử dụng các mô đun Lua được lưu trữ trên [[gitlab:repos/lua|GitLab của Wikimedia]]. Nó giúp đơn giản hóa việc chia sẻ mã nguồn Lua giữa các wiki. Thay vì phải sao chép từng mô đun Lua riêng lẻ từ wiki này sang wiki khác, người dùng có thể dễ dàng chia sẻ các gói mã nguồn trên tất cả các wiki.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.22|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* [[m:Event:Cross-wiki Code Collaboration Workshop|Hội thảo cộng tác mã nguồn giữa các wiki]] sẽ được tổ chức trực tuyến vào ngày 2 tháng 10 lúc 12:30 UTC, quy tụ những cộng tác viên kỹ thuật Nam Á nhằm tìm hiểu về Produnto và bắt đầu thử nghiệm nó trên các phiên bản Wikipedia tiếng Hindi, tiếng Punjabi, tiếng Odia, tiếng Telugu và tiếng Malayalam. Produnto là một trình quản lý gói để triển khai các mô đun Lua được lưu trữ trên GitLab đến các wiki của Wikimedia và gần đây đã được triển khai trên một số wiki thí điểm.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/40|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W40"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 10:49, ngày 28 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31092225 -->
== Wikidata Sitelink changes in Recent Changes and Watchlist ==
''(Apologies for cross-posting in English, translating it will help spread the message)''
Editors on group 1 wikis, including Wikiquote, Wikibooks, Wikiversity, Wikivoyage, and Wikisource, will no longer see notifications on [[Special:RecentChanges|Recent Changes]] and [[Special:Watchlist|Watchlist]] when a link to ''another'' language version of a page is added, removed, or changed in its Wikidata item. This change will begin on '''October 5 at 07:00 UTC''' as a two-week trial to reduce high-volume, low-value notifications and make higher-value changes easier to identify. Editors who rely on these notifications should be aware of the change and can share feedback or concerns on the [[m:Wikidata For Wikimedia Projects/Clearer Wikidata Edit Summaries/Hide Language Link edits|project]] or [[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|talk page]].<br/>Please reach out if you have any questions, thank you! -- [[User:Danny_Benjafield_(WMDE)|Danny Benjafield (WMDE)]] ([[User_talk:Danny_Benjafield_(WMDE)|talk]]) sent via [[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]]) 12:43, ngày 1 tháng 10 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=31106967 -->
== Bản tin Kỹ thuật: Tuần 41-2026 ==
<section begin="technews-2026-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/2026/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'''
* Quy trình cho [[m:Special:MyLanguage/Community Wishlist/Community Wishlist 2027#Updated Community Wishlist Process 2027/2028|Danh sách mong muốn của cộng đồng]] năm nay [[m:Special:MyLanguage/Community Wishlist/Community Wishlist 2027#Updated Community Wishlist Process 2027/2028|đã được công bố]], có tính đến phản hồi từ cộng đồng. Quy trình gửi mong muốn sẽ [[m:Special:MyLanguage/Community Wishlist/FAQ#What is the deadline for submitting wishes?|kết thúc vào ngày 8 tháng 11]]. Năm nay, [[m:Special:MyLanguage/Community Wishlist/Community Wishlist 2027/Working group|một nhóm công tác (mở cho tình nguyện viên tham gia)]] gồm các thành viên cộng đồng am hiểu về khía cạnh kỹ thuật của các wiki cùng với nhân viên của Wikimedia Foundation sẽ phụ trách [[m:Special:MyLanguage/Community Wishlist/FAQ#What is triage?|quá trình phân loại]]. Dự kiến quá trình phân loại sẽ hoàn tất vào cuối tháng 11. Việc bỏ phiếu cho các mong muốn sẽ bắt đầu vào tháng 1.
'''Cập nhật cho biên tập viên'''
* Các biên tập viên sử dụng [[mw:Special:MyLanguage/VisualEditor|trình soạn thảo trực quan]] nay sẽ nhìn thấy cảnh báo khi họ dán đoạn văn bản có khả năng đã được sao chép từ nội dung ban đầu được tạo bởi một trong năm chatbot AI tạo sinh bên ngoài vào Wikipedia. Tính năng này được gọi là [[mw:Special:MyLanguage/Edit check/LLM Paste Check|Kiểm tra Dán nội dung từ LLM]]. Đây là một dạng [[mw:Special:MyLanguage/Edit check|Kiểm tra Sửa đổi]] mà cộng đồng có thể tùy chỉnh được. Hệ thống kiểm tra này tìm kiếm các mã đánh dấu (marker) trong đoạn mã HTML được sao chép và không sử dụng phương pháp phát hiện hình mờ (watermark) trong nội dung. Các sửa đổi cũng sẽ [[mw:Special:MyLanguage/Edit check/LLM Paste Check#Edit tags|được gắn thẻ]] để các tuần tra viên có thể xem xét kỹ lưỡng hơn. Tính năng này giúp người mới đóng góp nội dung tuân thủ các chính sách của Wikipedia, đồng thời giúp các biên tập viên có kinh nghiệm dễ dàng nhận diện những sửa đổi có vấn đề. Các cộng đồng có quy định riêng về việc sử dụng LLM có thể [[mw:Special:MyLanguage/Edit check/LLM Paste Check#Configuration|điều chỉnh câu từ và quy định được liên kết]]. Nhóm phát triển [[listarchive:list/translators-l@lists.wikimedia.org/message/EVHKWJ4IERZELMPIWNH3XUVUSQV5KOO4/|chân thành xin lỗi]] vì đã triển khai tính năng này mà không dành thời gian chờ cho việc dịch thuật.
* Các biên tập viên nay có thể dễ dàng [[mw:Special:MyLanguage/Wikimedia Apps/Team/Future of Editing on the Mobile Apps|truy cập trình soạn thảo trực quan bản web trực tiếp từ ứng dụng dành cho iOS và Android]]. Khi mở trình soạn thảo, người dùng sẽ được lựa chọn giữa chế độ soạn thảo trực quan và chế độ soạn thảo mã nguồn. Nếu họ chọn chế độ soạn thảo trực quan, họ sẽ được đưa tới cửa sổ giao diện web di động trong trình duyệt trên điện thoại của họ. Sau khi hoàn thành sửa đổi của mình, một biểu ngữ sẽ xuất hiện để cung cấp cho họ lựa chọn trở về ứng dụng. Điều này cho phép độc giả đóng góp nội dung một cách nhanh chóng trong khi đang đọc một cách thoải mái.
* Người dùng ứng dụng Wikipedia dành cho Android và iOS nay sẽ nhìn thấy thông báo một lần mời tạo tài khoản sau khi họ đã sử dụng ứng dụng được hai tuần liên tiếp. Thông báo này giải thích những lợi ích của việc sở hữu một tài khoản. Điều này nhằm mục đích giúp nhiều đọc giả thông thường trở thành những người dùng đã đăng nhập quay lại ứng dụng thường xuyên hơn. [https://phabricator.wikimedia.org/T434847]
* Các biên tập viên trên [[wmnoc:conf/dblists/group1.dblist|các wiki thuộc group1]], bao gồm Wikiquote, Wikibooks, Wikiversity, Wikivoyage, và Wikisource, sẽ không còn nhìn thấy thông báo trên [[mw:Special:MyLanguage/Help:Recent changes|Thay đổi Gần đây]] và [[mw:Special:MyLanguage/Help: Watching pages|Danh sách Theo dõi]] khi một liên kết đến phiên bản ngôn ngữ khác của một trang được thêm, xóa hoặc thay đổi trong khoản mục Wikidata của nó. Thay đổi này sẽ bắt đầu vào ngày 5 tháng 10 lúc 07:00 UTC dưới dạng thử nghiệm kéo dài hai tuần nhằm giảm bớt các thông báo xuất hiện với số lượng lớn nhưng ít giá trị và giúp những thay đổi quan trọng có thể được nhận diện một cách dễ dàng hơn. Các biên tập viên thường dựa vào những thông báo này có thể đọc thêm trên [[m:Wikidata For Wikimedia Projects/Clearer Wikidata Edit Summaries/Hide Language Link edits|trang dự án]] và chia sẻ ý kiến hoặc thắc mắc trên [[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|trang thảo luận]]. [https://phabricator.wikimedia.org/T439415]
* [[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 vấn đề khiến cho các cố vấn tự rút khỏi chương trình cố vấn vẫn có thể có những người được cố vấn gán vào họ và tiếp nhận các câu hỏi, nay đã được giải quyết. Những người được cố vấn sẽ được gán lại khi một cố vấn rời khỏi chương trình. [https://phabricator.wikimedia.org/T418194]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Wikimedia Brasil đã xuất bản [[m:Special:MyLanguage/Wikimedia Brasil/Arcabouço de Boas Práticas de Desenvolvimento|Khung Thực tiễn Tốt nhất về Phát triển]] (ABPD). Đây là tài liệu hướng dẫn dành cho nhân viên, nhà thầu và tình nguyện viên tham gia xây dựng các công cụ và dự án kỹ thuật. Tài liệu này bao gồm các nội dung về vòng đời dự án, bảo mật, khả năng tiếp cận, bảo vệ dữ liệu cá nhân và sử dụng AI có trách nhiệm, đồng thời giải thích cách những hướng dẫn chung của phong trào được điều chỉnh sao cho phù hợp với bối cảnh cục bộ. Họ khuyến khích các tổ chức thành viên khác sử dụng lại và tùy chỉnh tài liệu này. Đọc thêm tại [[wmfblog:2026/09/26/wikimedia-brasils-development-best-practices-framework-technical-sustainability-as-an-organizational-responsibility|bài đăng trên Diff]].
* Một URL cơ sở chuẩn (canonical base) mới dành cho các API của Wikimedia sẽ sớm được giới thiệu. Đường dẫn chuẩn mới này theo mẫu dạng <bdi lang="zxx" dir="ltr"><code><nowiki>{projectName}/api/</nowiki></code></bdi> và sẽ đóng vai trò là đường dẫn thay thế cho các API REST hiện tại (ví dụ: <bdi lang="zxx" dir="ltr"><code><nowiki>{projectName}/w/rest.php/</nowiki></code></bdi>). Cả hai phiên bản đều có thể gọi được đối với tất cả các API hiện có, nhưng cấu trúc mới sẽ là lựa chọn ưu tiên cho các mô đun API được tạo mới. Thay đổi này sẽ không gây gián đoạn cho hầu hết người dùng. Những đường dẫn hiện tại vẫn sẽ có sẵn cho mọi yêu cầu đến điểm cuối (endpoint) hiện có. Tuy nhiên, một số điểm cuối có thể trả về các URL tuân theo mẫu mới trong phần nội dung phản hồi (response body). Các thay đổi sẽ có sẵn trên wiki thử nghiệm trước, và việc triển khai dự kiến sẽ được thực hiện trên toàn bộ các dự án wiki vào cuối tháng 10. [https://phabricator.wikimedia.org/T433535]
* [[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.23|MediaWiki]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/41|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W41"/>
18:52, ngày 5 tháng 10 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=31098825 -->
== Bản tin Kỹ thuật: Tuần 42-2026 ==
<section begin="technews-2026-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/2026/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'''
* Kể từ ngày 13 tháng 10, các wiki có thể thay đổi quy tắc (pattern) mặc định cho [[: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]] (hiện tại là <syntaxhighlight lang="wikitext" inline><ref name=":1" /></syntaxhighlight>). Họ sẽ có thể sử dụng tên nguồn tham khảo dễ hiểu và dựa trên nội dung mà sẽ giúp ích nhiều hơn cho các cộng tác viên sử dụng trình soạn thảo mã nguồn (v.d. <syntaxhighlight lang="wikitext" inline><ref name="Miller2026-1" /></syntaxhighlight>). Các quy tắc đặt tên nguồn tham khảo cho Trình Soạn thảo trực quan có thể được thiết lập thông qua các thông điệp hệ thống MediaWiki, JSON, bản mẫu và mô đun ([[:mw:Special:MyLanguage/Help:Cite/VisualEditor reference names|thông tin thêm]]). Bảo quản viên có thể kích hoạt những thay đổi này thông qua [[Special:CommunityConfiguration/Cite-VisualEditor-Autonames|cấu hình cộng đồng]]. Đây là một [[:m:Special:MyLanguage/Community_Wishlist/W17|mong muốn của cộng đồng]] được triển khai bởi [[:m:Special:MyLanguage/WMDE Technical Wishes|WMDE Technical Wishes]]. [https://phabricator.wikimedia.org/T436255]
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Chú thích phụ]] là một tính năng MediaWiki mới cho phép các biên tập viên tái sử dụng nguồn tham khảo với thông tin khác nhau. Công cụ sẽ được triển khai tới Wikipedia tiếng Anh vào ngày 14 tháng 10 và đến các dự án wiki còn lại của Quỹ Wikimedia vào cuối tháng 10 (khoảng ngày 21 tháng 10). Trang [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#deployment|FAQ]] liệt kê các 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. Đây là một [[:m:WMDE Technical Wishes/Sub-referencing/History|mong muốn lâu nay của cộng đồng]] được triển khai bởi [[:m:Special:MyLanguage/WMDE Technical Wishes|WMDE Technical Wishes]]. [https://phabricator.wikimedia.org/T440243][https://phabricator.wikimedia.org/T440304]
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Moderator Tools|Công cụ Kiểm tra]] sẽ loại bỏ chế độ xem dạng danh sách của Danh sách Theo dõi và chuyển mặc định tất cả người dùng sang chế độ xem dạng nhật ký thay đổi. Trước đây, có hai cách mà Danh sách Theo dõi được hiển thị cho người dùng phiên bản web trên di động: chế độ xem dạng danh sách, nơi mà các biên tập viên có thể xem các bài viết đã theo dõi dưới dạng danh sách, và chế độ xem dạng nhật ký thay đổi, nơi mà các biên tập viên có thể xem các thay đổi được thực hiện với các bài viết đã theo dõi dưới dạng nhật ký, được kiểm soát bởi tùy chọn Điều khiển Di động Nâng cao của người dùng. Điều này đã gây ra vấn đề cho việc bảo trì mã nguồn: hai kiểu hiển thị nghĩa là cần phải quản lý hai bộ mã nguồn khác nhau. Bằng việc chuyển mặc định sang chế độ xem nhật ký theo dõi, chúng tôi sẽ đơn giản hóa được mã nguồn và giảm thiểu nguy cơ bỏ sót lỗi.
* Ứng dụng Wikipedia dành cho Android đang thử nghiệm một cách để nghe phần giới thiệu của bài viết trong mục tin “Dành cho bạn”. Một mô hình chuyển đổi văn bản thành giọng nói (text-to-speech) sẽ đọc nội dung hiện có của bài viết mà không cần viết lại hay bổ sung thêm bất kỳ nội dung nào. Chương trình thử nghiệm 30 ngày này sẽ bắt đầu trong ứng dụng Wikipedia Beta vào tuần thứ ba của tháng 9, sau đó mở rộng sang ứng dụng Wikipedia dành cho Android bản chính thức trong tháng 10 dành cho một nhóm nhỏ người dùng đủ điều kiện. Một bộ phận nhỏ người dùng ứng dụng (những người có mục tin tiếng Anh và có quan tâm đến ít nhất một chủ đề) sẽ có quyền truy cập trải nghiệm tính năng này. Thử nghiệm này là một phần trong nỗ lực rộng lớn hơn nhằm mang lại cho độc giả nhiều lựa chọn tiếp nhận nội dung và qua đó tăng cường mức độ tương tác và khả năng giữ chân người dùng. [[mw:Special:MyLanguage/Readers/Listening to Wikipedia/Phase 1|Tìm hiểu thêm]] và [[mw:Talk:Readers/Listening to Wikipedia|chia sẻ ý kiến phản hồi]].
* Tính năng [[mw:Special:MyLanguage/Help:Extension:CodeMirror|nổi bật cú pháp bằng CodeMirror]] đã được [[phab:T288161|kích hoạt]] theo mặc định cho tất cả người dùng chưa đăng nhập và mới đăng ký trên Wikipedia tiếng Anh vào ngày 14 tháng 9. Do không ghi nhận tác động tiêu cực nào, thay đổi tương tự này đang được đề xuất áp dụng toàn cục cho tất cả các dự án wiki trong vài tuần tới. Nếu bạn có thắc mắc hay ý kiến phản hồi nào, hoặc nếu wiki của bạn muốn từ chối áp dụng thay đổi này, [[mw:Special:MyLanguage/Help talk:Extension:CodeMirror#Enabling CodeMirror by default on all WMF wikis for newbies|vui lòng xem trang trợ giúp]]. [https://phabricator.wikimedia.org/T440077]
* Tính năng [[d:Wikidata:Usability_and_usefulness/Item_editing_experience/Mobile_editing_of_statements|sửa đổi lời phát biểu trên giao diện di dộng của Wikidata]] cho mọi kiểu dữ liệu sẽ chính thức ra mắt vào ngày 13 tháng 10, khi đó nó sẽ được loại bỏ khỏi danh sách [[d:Special:Preferences#mw-prefsection-betafeatures|tính năng thử nghiệm beta]] của Wikidata và có sẵn cho tất cả các biên tập viên. Người dùng có thể [[d:Wikidata_talk:Usability_and_usefulness/Item_editing_experience/Mobile_editing_of_statements|báo cáo lỗi và chia sẻ ý kiến phản hồi]].
* Tuần trước, những thay đổi về liên kết ngôn ngữ đã bị loại bỏ khỏi nguồn cấp dữ liệu của [[Special:RecentChanges|Thay đổi Gần đây]] và [[Special:Watchlist|Danh sách Theo dõi]] trên Wikivoyage, Wikisource, Wikiversity, Wikiquote và Wiktionary. Do không ghi nhận tác động tiêu cực nào, [[m:Wikidata_For_Wikimedia_Projects|Wikidata cho các Dự án Wikimedia]] có kế hoạch triển khai thay đổi này trên toàn cục cho tất cả các phiên bản Wikipedia. Việc triển khai dự kiến diễn ra vào ngày 13 tháng 10 lúc 07:00 UTC, sau thời điểm này các biên tập viên sẽ không còn nhìn thấy những thay đổi khi một liên kết đến phiên bản ngôn ngữ ''khác'' của trang được thêm, xóa hoặc thay đổi trong khoản mục Wikidata tương ứng. Những biên tập viên thường theo dõi các thông báo này có thể tìm hiểu thêm tại [[m:Wikidata For Wikimedia Projects/Clearer Wikidata Edit Summaries/Hide Language Link edits|trang dự án]] cũng như chia sẻ ý kiến hoặc yêu cầu không áp dụng thay đổi cho wiki của mình tại [[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|trang thảo luận]]. [https://phabricator.wikimedia.org/T440698]
* [[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 việc vô tình chạm vào biểu đồ trong khi cuộn trên công cụ Lượt xem trang (Pageviews) trên thiết bị di động có thể vô tình phóng to biểu đồ nay đã được khắc phục. Tính năng thu phóng bằng cách nhấn và kéo nay đã bị vô hiệu hóa trên các thiết bị có màn hình cảm ứng. [https://phabricator.wikimedia.org/T440075]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Sẽ có ba thay đổi lớn đối với các tập tin dữ liệu xuất (dump): các tập tin dữ liệu xuất nội dung kiểu cũ [https://lists.wikimedia.org/hyperkitty/list/xmldatadumps-l@lists.wikimedia.org/thread/E6D5EU4PMSTSOI2J7A46HJ3YW2W554CS/ đã ngừng hỗ trợ vào tháng 1 năm 2026] sẽ bị loại bỏ, giải pháp thay thế [https://wikitech.wikimedia.org/wiki/MediaWiki_Content_File_Exports Xuất Tập tin Nội dung MediaWiki] (MediaWiki Content File Exports) sẽ được hoãn triển khai để thiết lập một “khoảng đệm an toàn”, và chúng nay cũng có sẵn dưới dạng tập tin nén 7zip. Người dùng sẽ cần phải thay đổi URL dùng để tải xuống các tập tin dữ liệu xuất này. Để biết thêm thông tin, lộ trình thực hiện và hướng dẫn chuyển đổi, vui lòng xem trang [https://wikitech.wikimedia.org/wiki/Legacy_content_dumps_sunset Ngừng hỗ trợ tập tin dữ liệu xuất nội dung kiểu cũ].
* [[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.24|MediaWiki]]
'''Chuyên sâu'''
* Quỹ Wikimedia đã phát hiện các hoạt động trái phép từ các tác nhân của OpenAI trên các dự án Wikimedia, bao gồm việc sửa đổi các trang wiki, nỗ lực khai thác một công cụ ghi chú công khai, cũng như lưu lượng truy cập tự động với cường độ cao. [[diffblog:2026/10/05/openai-rogue-agent-activities-found-on-wikimedia-projects/|Đọc bài blog trên Diff]] để biết thêm thông tin chi tiết về hoạt động này cũng như phản hồi của Quỹ.
'''Các cuộc họp và sự kiện'''
* Hãy ghi lại lịch trình cho sự kiện Wikimedia Hackathon tiếp theo! Chúng tôi sẽ gặp gỡ nhau tại thành phố Tirana xinh đẹp của Albania để tham dự [https://www.mediawiki.org/wiki/Wikimedia%20Hackathon%202027 Wikimedia Hackathon 2027] diễn ra từ ngày 9–11 tháng 4 năm 2027. Hồ sơ đăng ký nhận học bổng và tài trợ cho nhân viên hiện đang được [https://pretix.eu/wikimedia/Hackathon-2027/ tiếp nhận qua nền tảng Pretix] và sẽ đóng vào ngày 30 tháng 10 năm 2026. Cổng đăng ký tham dự dành cho công chúng sẽ được mở vào tháng 1 năm 2027.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/42|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W42"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 07:40, ngày 13 tháng 10 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=31142468 -->
eeawkghfg473qza9zk4h7knm5ield6b
2570133
2570131
2026-10-13T08:42:23Z
Hiyuune
50834
2570133
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ữ}}
== Bản tin Kỹ thuật: Tuần 24-2026 ==
<section begin="technews-2026-W24"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/24|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Wikimedia Enterprise đã tăng giới hạn sử dụng miễn phí cho các dịch vụ API của mình. Giới hạn yêu cầu hàng tháng dành cho API Theo yêu cầu đã tăng từ 5.000 lên 50.000 yêu cầu, trong khi giới hạn đối với API Hình chụp nhanh đã tăng từ 15 lên 30 yêu cầu mỗi tháng. Ngoài ra, Nội dung Có cấu trúc của ảnh chụp nhanh hiện đã có sẵn cho các tài khoản miễn phí. Những thay đổi này sẽ mở rộng quyền truy cập vào dữ liệu Wikimedia Enterprise cho các nhà phát triển, nhà nghiên cứu và các tổ chức sử dụng nội dụng Wikimedia. [https://enterprise.wikimedia.com/blog/enhanced-free-api]
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Wikimedia_Apps/Team/Explore Feed Refresh/Phase 1|Bảng tin Khám phá được làm mới]], nay với tên gọi là Bảng tin Trang chủ, đang được triển khai tới 50% người dùng ứng dụng Wikipedia dành cho Android. Bảng tin Trang chủ giúp người đọc khám phá nội dung liên quan thông qua hai tab mới: ''Cộng đồng'' và ''Dành cho Bạn''. Tab Cộng đồng cung cấp một bảng tin cuộn được chứa những nội dung được chọn lọc cùng những cập nhật từ không gian rộng lớn hơn của cộng đồng và phong trào Wikimedia, trong khi tab ''Dành cho Bạn'' cung cấp trải nghiệm toàn màn hình, có thể vuốt được để hiển thị nội dung được điều chỉnh theo sở thích của người dùng. Việc thiết kế lại này là một phần trong nỗ lực lớn hơn nhằm cải thiện khả năng tìm kiếm và nâng cao trải nghiệm học trong ứng dụng Wikipedia.
* Trò chơi giải đố hàng ngày [[mw:Special:MyLanguage/Wikimedia Apps/Team/iOS/"Which came first?" Game|Sự kiện nào diễn ra trước nhỉ?]] nay đã có sẵn trong phiên bản beta của ứng dụng Wikipedia dành cho iOS bằng tiếng Anh, tiếng Đức, tiếng Pháp, tiếng Bồ Đào Nha, tiếng Nga, tiếng Tây Ban Nha, tiếng Ả Rập, tiếng Trung và tiếng Thổ Nhĩ Kỳ. Trò chơi này sử dụng các sự kiện lịch sử từ nội dung trong mục "Ngày này năm xưa" của Wikipedia và thử thách người đọc đoán xem sự kiện nào trong hai sự kiện đã xảy ra trước. Trò chơi này đã được phát hành trên Android trước đây. Những cộng đồng quan tâm đến việc cung cấp trò chơi này bằng ngôn ngữ của mình có thể [[mw:Special:MyLanguage/Wikimedia_Apps/Team/Games#Game availability by language|đọc qua hướng dẫn và yêu cầu]].
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Chú thích phụ]], một tính năng MediaWiki mới cho phép biên tập viên tái sử dụng nguồn tham khảo với nhiều chi tiết khác nhau, sẽ bắt đầu được triển khai đến các wiki của Wikimedia sau giải đoạn thí điểm thành công. Việc triển khai sẽ bắt đầu vào ngày 8 tháng 6 đối với hầu hết các [[wikitech:Deployments/Train#Wednesday|wiki Nhóm 1]] và Wikipedia tiếng Pháp, trong khi các phiên bản ngôn ngữ khác của Wikipedia sẽ nhận được tính năng này trong những tháng tới. Các cộng đồng được khuyến khích chuẩn bị bằng cách kiểm tra [https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-cite&language=en&action_source=search&filter=%21translated&optional=1&action=translate các thông báo chưa được dịch của phần mở rộng Cite] bằng ngôn ngữ của họ và xem xét bất kỳ việc sử dụng [[mw:Special:MyLanguage/Reference Tooltips|Chú thích nổi]] nào, chúng có thể cần phải được [[:phab:T416304#11668731|cập nhật]] để hỗ trợ chức năng mới này. Những wiki sử dụng [[mw:Special:MyLanguage/Help:Reference Previews|Xem trước Chú thích]] không cần phải thực hiện bất kỳ hành động nào. Các cộng đồng cũng có thể mong muốn tạo [[Special:TrackingCategories|thể loại theo dõi]] ''cite-tracking-category-ref-details'' dưới dạng thể loại ẩn sử dụng <code><nowiki>__HIDDENCAT__</nowiki></code> (hoặc một bản mẫu chuyên dụng), và kết nối nó với khoản mục Wikidata [[d:Q129764848]] tương ứng. [https://phabricator.wikimedia.org/T425662]
* [[mw:Special:MyLanguage/Readers/Reader Growth/Mobile page previews#Experimentation|Thử nghiệm Xem trước Trang]] trên giao diện web di động đã kết thúc. Nhóm đã quyết định không triển khai tính năng này sau khi kết quả cho thấy rằng không có tác động đáng kể nào về mặt thống kê lên tỷ lệ giữ chân người đọc, vì chỉ số thành công chính là việc cải thiện tỷ lệ giữ chân người đọc. Tính năng Xem trước Trang, vốn đã có sẵn trên máy tính để bàn và trong ứng dụng, hiển thị hình thu nhỏ, đoạn mở đầu và liên kết đến bài viết đầy đủ khi người đọc nhấn vào liên kết xanh. Thử nghiệm này đã thử trải nghiệm này trên giao diện web di động trên sáu trang Wikipedia.
* [[mw:Special:MyLanguage/Codex/Design/Icons|Thư viện biểu tượng giao diện người dùng]] sẽ được [[phab:T399175|cập nhật vào cuối tuần này hoặc đầu tuần sau]]. Hầu hết trong số ~300 biểu tượng đã được điều chỉnh một chút và ~30 biểu tượng mới đã được thêm vào. Những thay đổi này cải thiện các biểu tượng để làm cho chúng thêm nhất quán và dễ hiểu hơn, đồng thời mang lại sự cân bằng trực quan hơn khi chúng được sử dụng theo nhóm.
* Giao diện [[mw:Special:MyLanguage/Universal Language Selector|Bộ chọn Ngôn ngữ Toàn cục]] (ULS) trong MediaWiki, công cụ giúp người dùng chọn nội dung bằng các ngôn ngữ khác, đã được cập nhật. Phiên bản mới cải thiện tốc độ và khả năng truy cập, đồng thời giờ đây người dùng trên các dự án Wikimedia có thể ghim các ngôn ngữ để chuyển đổi ngôn ngữ một cách nhanh chóng hơn. Việc triển khai lên các trang web của Wikimedia sẽ diễn ra dần dần trong những tuần tới. Bạn có thể thử nghiệm tính năng này ngay bây giờ bằng cách chọn [[Special:Preferences#mw-prefsection-betafeatures|tính năng beta]] trong tùy chọn hồ sơ của mình và chia sẻ phản hồi của bạn trên [[mw:Special:MyLanguage/Universal Language Selector/New ULS|trang dự án]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến bảng điều khiển Phân tích Lượt xem Trang trên pageviews.wmcloud.org ngừng cập nhật dữ liệu đồ thị vào tháng 5 năm 2026, ảnh hưởng đến tất cả người dùng, đã được giải quyết. [https://phabricator.wikimedia.org/T427171]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Chữ ký hàm cho <bdi lang="zxx" dir="ltr"><code><nowiki>mw.util.addPortletLink()</nowiki></code></bdi> đã được đơn giản hóa. Các nhà phát triển nay có thể truyền một đối tượng cấu hình thay vì một danh sách các tham số vị trí khi tạo liên kết portlet. Chữ ký hàm trước đây vẫn được hỗ trợ để đảm bảo khả năng tương thích ngược. Ví dụ, thay vì: <bdi lang="zxx" dir="ltr"><code><nowiki>mw.util.addPortletLink('p-cactions', '#', 'Stub', 'ca-stubtag', 'Add a stub tag to this page');</nowiki></code></bdi> sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>mw.util.addPortletLink('p-cactions', { href: '#', text: 'Stub', id: 'ca-stubtag', tooltip: 'Add a stub tag to this page' });</nowiki></code></bdi>. Những người bảo trì đoạn mã được khuyến khích xem chỗ nào hiện đang sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>addPortletLink()</nowiki></code></bdi> và cập nhật chúng nếu thích hợp. Thay đổi này sẽ có mặt trên tất cả các wiki từ ngày 11 tháng 6. Xin cảm ơn tình nguyện viên cộng đồng Gerges đã đóng góp cải tiến này. [https://phabricator.wikimedia.org/T427945]
* '''Thảo luận về Danh sách Mong muốn của Cộng đồng''': Nhóm Sản phẩm & Công nghệ [[m:Special:MyLanguage/Community Wishlist/Updates#May 20, 2026: Community Tech becomes a program|đã đưa ra những thay đổi]] nhằm mục đích tăng số lượng và độ phức tạp của những mong muốn được đáp ứng, bao gồm cả việc giải thể nhóm Công nghệ Cộng đồng. Họ đang [[m:Special:MyLanguage/Community Wishlist/Updates|tham gia thảo luận]] về một [[m:Talk:Community Wishlist#Proposed direction for Wishlist|đề xuất hướng đi cho danh sách mong muốn]] từ các thành viên cộng đồng. Bao gồm những cách để cấu trúc việc bỏ phiếu hàng năm, theo dõi mong muốn một cách tốt hơn, loại bỏ các lĩnh vực trọng tâm, và [[m:Special:MyLanguage/Community Wishlist/Updates|điều chỉnh việc quản lý nhân sự]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.6|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/24|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W24"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:30, ngày 8 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30650573 -->
== Bản tin Kỹ thuật: Tuần 25-2026 ==
<section begin="technews-2026-W25"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/25|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Readers/Reader Growth|Nhóm Tăng trưởng Độc giả]] đã cho ra mắt tính năng beta [[mw:Special:MyLanguage/Readers/Reader Growth/Image Browsing|Duyệt Hình ảnh]] trên phiên bản web của thiết bị di động tại tất cả các phiên bản Wikipedia. Tính năng này hiển thị ở đầu bài viết một băng chuyền hình ảnh gồm 3 hình ảnh trở lên. Biên tập viên có thể cấu hình cho tính năng này với những thao tác sau: để ẩn một hình ảnh cụ thể khỏi một trang, hãy sử dụng <code>class=notpageimage</code> để loại trừ nó khỏi bản xem trước, hay dùng <code>class=noviewer</code> để loại trừ nó khỏi MediaViewer. Băng chuyền Hình ảnh còn có thể được tắt hoàn toàn ở một trang, với magic word <code><nowiki>__NOMEDIAVIEWERCAROUSEL__</nowiki></code>. Để gửi phản hồi hoặc báo cáo lỗi, hãy truy cập [[mw:Talk:Readers/Reader Growth/Image Browsing|trang dự án]].
* [[mw:Special:MyLanguage/Help:Tables#class="wikitable"|Wikitables]] nay đã có thể được [[mw:Special:MyLanguage/Help:Sortable tables#Forcing the initial sort direction|sắp xếp theo thứ tự giảm dần]] ngay lần nhấp chuột đầu tiên bằng cách thêm <code dir=ltr>data-sort-order="desc"</code> cho ô tiêu đề. Trước đây, theo mặc định, lần nhấp chuột đầu tiên vào tiêu đề cột sẽ sắp xếp cột theo thứ tự tăng dần. Sự bổ sung này cho Wikitable mang lại khả năng kiểm soát và tính linh hoạt cao hơn, trong khi hành vi mặc định cho những lần nhấp chuột tiếp theo vẫn được giữ nguyên. [https://phabricator.wikimedia.org/T398416]
'''Cập nhật cho biên tập viên'''
* Tính năng [[mw:Special:MyLanguage/Article guidance|Hướng dẫn bài viết]] hiện đang được thử nghiệm đối với một số biên tập viên tạo các bài viết mới trên các trang Wikipedia tiếng Anh đơn giản, tiếng Pháp và tiếng Thổ Nhĩ Kỳ. Thử nghiệm cũng sẽ sẽ sớm bắt đầu trên Wikipedia tiếng Ả Rập và tiếng Bengali. [[w:simple:Special:NewArticle|Tính năng này]] cung cấp cho các biên tập viên hướng dẫn do cộng đồng biên soạn để giúp họ tạo ra những bài viết tuân thủ tiêu chuẩn cộng đồng. Các biên tập viên có kinh nghiệm có thể tiếp tục tạo hoặc điều chỉnh dàn ý cho những loại bài viết cụ thể thường được tạo bởi những người đóng góp ít kinh nghiệm hơn. Những dàn ý này hướng dẫn các biên tập viên ít kinh nghiệm hơn trong việc tạo những bài viết chất lượng cao. Hướng dẫn nhanh về các ký hiệu được sử dụng trong dàn ý có thể được tìm thấy trên [[mw:Special:MyLanguage/Article guidance/Test feature guide#Markups in outlines|trang này]]. [[w:simple:Wikipedia:Article Guidance|Ví dụ về dàn ý]] có thể được điều chỉnh và hướng dẫn cách điều chỉnh chúng nằm trên [[mw:Special:MyLanguage/Article guidance#Adapting a sample outline in a Wikipedia|phần này]] của trang dự án.
* Wiki mong muốn thay thế nút "vô thời hạn" trong Đặc biệt:Cấm dành cho tài khoản tạm thời (ví dụ, wiki chỉ cấm tài khoản tạm thời đến khi tài khoản đó hết hạn) sẽ có thể thực hiện điều đó bằng cách tạo [[MediaWiki:ipb-indefinite-expiry-temporary-account]] với khoảng thời gian cấm mà họ muốn. [https://phabricator.wikimedia.org/T427125]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:41}} {{PLURAL:41|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Đến cuối tháng 6, việc sử dụng một chuỗi user-agent hợp lệ là bắt buộc để tải xuống tự động các dump từ trang web dumps.wikimedia.org. Những yêu cầu tự động cung cấp user-agent trống hoặc chung chung sẽ bị chặn. Điều này [[phab:T400119|sẽ mở rộng việc thực thi]] [[foundation:Special:MyLanguage/Policy:Wikimedia Foundation User-Agent Policy|quy định về user-agent]] đã có từ lâu. Quyền truy cập tới Dịch vụ Đám mây của Wikimedia sẽ không thay đổi.
* Quá trình triển khai [[mw:Wikimedia APIs/Rate limits|giới hạn truy cập API]] toàn cục đã hoàn tất, các giới hạn được áp dụng trên tất cả các API và ở tất cả các mức độ được ghi nhận cho tất cả các nhóm. Các bot chạy trong Toolforge/WMCS hoặc có quyền người dùng bot trên bất kỳ wiki nào vẫn được miễn trừ. Tất cả các bot nên tiếp tục theo những thực tiễn tốt nhất được ghi nhận để tránh bị vượt giới hạn truy cập.
* [https://api.wikimedia.org/wiki/Main_Page Wiki Cổng API] sẽ ở chế độ chỉ đọc kể từ tuần này (15-18 tháng 6). Vào tuần tới (22-25 tháng 6), tất cả các URL của wiki Cổng API sẽ chuyển hướng đến [[mw:Wikimedia APIs|API Wikimedia trên mediawiki.org]]. Tìm hiểu thêm trên [[wikitech:API Portal/Deprecation|trang dự án]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.7|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* Vào ngày 17 tháng 6 lúc 18:00 giờ UTC WMF sẽ tổ chức một cuộc gọi Discord tập trung vào việc đánh giá code. Chúng tôi đã lắng nghe thông qua [[mw:Special:MyLanguage/Developer Satisfaction Survey/2026|Khảo sát Sự hài lòng của Nhà phát triển]] rằng các tình nguyện viên đang gặp khó khăn trong việc đánh giá code và chúng tôi muốn thảo luận về những trải nghiệm này với mục tiêu tìm ra những giải pháp khả thi. Bạn có thể tham gia cuộc gọi [https://discord.gg/wikipedia?event=1514727511102062664 thông qua máy chủ Discord Cộng đồng Wikimedia].
* [[m:Special:MyLanguage/Conferencia Wikimedia de América Latina 2026|Hội nghị Wikimedia Mỹ La-tinh]] sẽ tổ chức cuộc thi hackathon khu vực quy tụ cộng đồng kỹ thuật của phong trào Wikimedia, gồm những nhà phát triển, quản trị viên hệ thống, nhà khoa học dữ liệu và các thành viên có quyền mở rộng. Những người đóng góp kỹ thuật quan tâm có thể [https://docs.google.com/forms/d/e/1FAIpQLSf4osJzTHBJjQbYJk7TMVEJjTEQv7IgtsUDfP-o-qTgeRQQxw/viewform đăng ký học bổng] tham gia cho đến nửa đêm ngày 21 tháng 6 (giờ Bolivia, UTC-4).
* Hãy đăng ký tham gia Thử thách Nhóm của Wikimania để góp mặt tại sự kiện đặc biệt này. Thử thách nhóm sẽ diễn ra trực tuyến và trực tiếp từ ngày 21 đến 22 tháng 7, trước hội nghị Wikimania. Mọi người đều có thể tham gia, bất kể kỹ năng hay việc đăng ký Wikimania trước đó như thế nào. Các nhóm sẽ cùng nhau giải quyết 10 thử thách quan trọng trong việc hỗ trợ cộng đồng Wikimedia. Để biết thêm chi tiết, hãy truy cập [[wmania:Special:MyLanguage/2026:Team challenges|trang Thử thách Nhóm]] và [https://wikimedia.eventyay.com/wm/teamchallenges/ đăng ký tại đó]. Cổng đăng ký sẽ đóng vào ngày 20 tháng 6 lúc 23:00 UTC.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/25|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W25"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:48, ngày 15 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30689604 -->
== Bản tin Kỹ thuật: Tuần 26-2026 ==
<section begin="technews-2026-W26"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/26|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Growth/Feature summary|Các tính năng Phát triển (Growth)]] [[phab:T418115|nay đã có mặt trên Wikidata]]. Bản cập nhật này cho phép truy cập vào chức năng Cố vấn ([[mw:Special:MyLanguage/Help:Growth/Mentorship|nếu được cấu hình]]), mô đun Tác động, Bảng Trợ giúp và Trang chủ dành cho Người mới được đơn giản hóa (không có Đề xuất sửa đổi). Các bảo quản viên Wikidata vẫn đang cấu hình các tính năng thông qua Cấu hình Cộng đồng.
'''Cập nhật cho biên tập viên'''
* Trang đặc biệt [[{{#special:RangeCalculator}}]] đã được tạo. Trang này cho phép người dùng tìm một dải IP mà không cần phải dựa vào các công cụ bên ngoài. Cho đến hiện tại, công cụ này chỉ có sẵn cho các kiểm định viên. [https://phabricator.wikimedia.org/T268429]
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Chú thích phụ]] là một tính năng mới của MediaWiki cho phép biên tập viên tái sử dụng các nguồn tham khảo với những chi tiết khác nhau. Tính năng này sẽ được triển khai đến hầu hết các phiên bản ngôn ngữ Wikipedia quy mô nhỏ và trung bình vào ngày 23 tháng 6. Trang [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#deployment|Câu hỏi thường gặp]] liệt kê những hành động có thể thực hiện trên wiki của bạn để hỗ trợ việc triển khai này. Hãy kiểm tra [[:phab:T414094|kế hoạch triển khai]] để biết các bước triển khai tiếp theo. [https://phabricator.wikimedia.org/T428902]
* Bắt đầu từ tuần sau, người dùng sẽ nhận được một thông báo khi họ bị cấm sửa đổi hoặc được bỏ cấm sửa đổi, hoặc khi lệnh cấm thay đổi. [https://phabricator.wikimedia.org/T100974]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:32}} {{PLURAL:32|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bắt đầu từ tuần tới, các bộ lọc sai phạm được đặt ở mức "yêu cầu xác minh CAPTCHA" sẽ bắt đầu ảnh hưởng đến cả những người dùng có quyền <code>skipcaptcha</code>, bao gồm hầu hết những người dùng có quyền tự động xác nhận. Các bot sẽ được miễn trừ. Thay đổi này sẽ chỉ ảnh hưởng đến những sửa đổi kích hoạt bộ lọc sai phạm. Quyền <code>skipcaptcha</code> vẫn sẽ tiếp tục giúp người dùng được miễn yêu cầu xác minh CAPTCHA trong quá trình sử dụng wiki thông thường. [https://phabricator.wikimedia.org/T402595]
* Tài liệu tham khảo cho [[wikitech:Machine_Learning/LiftWing/API|API Lift Wing]] đã được chuyển từ Cổng API sang [https://wikitech.wikimedia.org/w/index.php?api=lift-wing&title=Special%3ARestSandbox Chỗ thử REST] mang tính tương tác.
* Wiki Cổng API hiện đã đóng. Để xem tài liệu API, hãy xem [[mw:Special:MyLanguage/Wikimedia_APIs|API Wikimedia trên mediawiki.org]]. Tất cả các URL của wiki Cổng API (https://api.wikimedia.org/wiki/) sẽ đổi hướng tới trang mediawiki.org bắt đầu từ ngày 22 tháng 6. [https://phabricator.wikimedia.org/T427537]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.8|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* Hãy tham gia cuộc gọi trực tuyến vào ngày 25 tháng 6 lúc 2:30 chiều giờ UTC để gặp gỡ các thực tập sinh hiện tại của Wikimedia cho [[mw:Google_Summer_of_Code/2026|Google Summer of Code]] và [[mw:Outreachy/Round_32|Outreachy]]. Các thực tập sinh sẽ giới thiệu tổng quan về các dự án của họ và demo ngắn gọn công việc mà họ đã thực hiện cho đến nay. Người tham dự được khuyến khích [[mw:event:Google_Summer_of_Code/Summer_2026_June_Internship_open_session|chia sẻ ý tưởng và kết nối trong cộng đồng của họ]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/26|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W26"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 13:05, ngày 23 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Trizek (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30722494 -->
== RFC about AI-generated content in Wikimedia Commons ==
<bdi lang="en" dir="ltr">Apologies for writing in English, please help translate this message to your language. You are invited to participate in a [[c:Commons:Requests for comment/Policy update for AI content|request for comment on Wikimedia Commons about a policy update for AI content]]. This may affect files that are uploaded to Wikimedia Commons for use on this project. Thank you. [[m:User:Codename Noreste|Codename Noreste]] ([[m:User talk:Codename Noreste|thảo luận]])</bdi> 17:12, ngày 23 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Codename Noreste@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== <span lang="en" dir="ltr">Deployment of Legal and Safety Contacts Link in the Footer of Your Wiki</span> ==
<div lang="en" dir="ltr">
<section begin="Message"/>
'''Legal & Safety Contacts'''
Hello community, the Wikimedia Foundation has provided a [[wmf:Special:MyLanguage/Legal:Wikimedia Foundation Legal and Safety Contact Information|single legal and safety contact page]], to be linked in the footer of your wiki, to ensure access to accurate legal information. This is a regulatory requirement. We have already rolled out links to English, German, Italian, Spanish and other wikis and we will deploy to your wiki soon. [[m:Special:MyLanguage/Wikimedia_Foundation_Legal_and_Safety_Contacts_FAQ|Please read more on the project page]] and leave any comments in this thread or on the [[m:Special:MyLanguage/Talk:Wikimedia Foundation Legal and Safety Contacts FAQ|talk page]].
<section end="Message"/>
</div>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:31, ngày 25 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Sannita (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=30731267 -->
== Bản tin Kỹ thuật: Tuần 27-2026 ==
<section begin="technews-2026-W27"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/27|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Là một phần của [[mw:Special:MyLanguage/Contributors/Account Creation Experiments|Thử nghiệm Tạo Tài khoản]], nhóm Phát triển đã thử nghiệm việc thêm biểu tượng tài khoản người dùng vào tiêu đề trang web trên di động dành cho người dùng chưa đăng nhập, cung cấp quyền truy cập trực tiếp vào các tác vụ "Tạo tài khoản" và "Đăng nhập". Thử nghiệm đã tăng số tài khoản được tạo lên khoảng 20% mà không ảnh hưởng tiêu cực đến chất lượng sửa đổi hoặc tỷ lệ sửa đổi mang tính xây dựng. Tính năng này giờ sẽ được triển khai đến tất cả các trang wiki của Quỹ Wikimedia trên giao diện web di động trong tuần đầu tiên của tháng 7. [https://phabricator.wikimedia.org/T428220]
* Sau một [[phab:T426248|thử nghiệm thành công]], người dùng đã đăng nhập nhưng chưa [[mw:Special:MyLanguage/Help:Email_confirmation|xác nhận địa chỉ email của mình]] khi tạo tài khoản sẽ nhìn thấy một biểu ngữ mới yêu cầu họ hoàn tất quy trình đó. Điều này giúp giảm nguy cơ người dùng bị mất quyền truy cập vào tài khoản của họ, và làm cho địa chỉ email của tài khoản nói chung trở nên đáng tin cậy hơn. Đây là một phần của dự án [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]]. [https://phabricator.wikimedia.org/T428292]
* Một bản cập nhật cho tính năng [[Special:Search|Tìm kiếm]] sẽ tinh chỉnh cách <bdi lang="zxx" dir="ltr"><code><nowiki>-prefix:</nowiki></code></bdi> hoạt động khi được sử dụng để loại trừ kết quả. Trước đây, việc sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>-prefix:</nowiki></code></bdi> với phủ định có thể vô tình mở rộng kết quả tìm kiếm bằng cách thêm các không gian tên nằm trong phạm vi tìm kiếm, dẫn đến hành vi gây khó hiểu đối với những người dùng mong đợi một bộ lọc loại trừ đơn giản. Với lần cập nhật này, <bdi lang="zxx" dir="ltr"><code><nowiki>-prefix:</nowiki></code></bdi> nay sẽ loại trừ chặt những tiêu đề trang trùng khớp như mong đợi và có thể hiển thị cảnh báo nếu không gian tên có liên quan không được chọn một cách rõ ràng. Mặc dù vậy, hành vi của <bdi lang="zxx" dir="ltr"><code><nowiki>prefix:</nowiki></code></bdi> khi không có phủ định vẫn sẽ không thay đổi. [https://phabricator.wikimedia.org/T427443]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:33}} {{PLURAL:33|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến người đánh giá sử dụng thanh công cụ Quản lý Trang (Page Curation) không tự động được đăng ký theo dõi các cuộc thảo luận mà họ bắt đầu bình luận trên trang nay đã được giải quyết. Người đánh giá giờ sẽ nhận được thông báo khi có người nào đó trả lời những cuộc thảo luận này. [https://phabricator.wikimedia.org/T329346]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Kể từ ngày 29 tháng 6, các lượt tải xuống tự động từ trang dumps.wikimedia.org sẽ phải tuân theo [[Foundation:Special:MyLanguage/Policy:Wikimedia Foundation User-Agent Policy|quy định về user-agent]]. Các yêu cầu tự động mà cung cấp user-agent trống hoặc chung chung sẽ bị chặn. Việc truy cập vào các bản sao lưu (dump) thông qua Dịch vụ Đám mây Wikimedia sẽ không bị ảnh hưởng. Đây là thông báo tiếp theo sau thông báo được đưa ra trong [[m:Special:MyLanguage/Tech/News/2026/25|Bản tin Kỹ thuật số 25-2026]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.9|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/27|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W27"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 11:48, ngày 29 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30744833 -->
== <span lang="en" dir="ltr">Tech News: 2026-28</span> ==
<div lang="en" dir="ltr">
<section begin="technews-2026-W28"/><div class="plainlinks">
Latest '''[[m:Special:MyLanguage/Tech/News|tech news]]''' from the Wikimedia technical community. Please tell other users about these changes. Not all changes will affect you. [[m:Special:MyLanguage/Tech/News/2026/28|Translations]] are available.
'''Updates for editors'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Recurrent item]] View all {{formatnum:34}} community-submitted {{PLURAL:34|task|tasks}} that were [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|resolved last week]]. For example, an issue where the search bar results on Wikidata, showed English results instead of using the correct language fallback for users of language variants, has now been fixed. Search suggestions will now follow the expected language fallback chain. [https://phabricator.wikimedia.org/T429769]
'''Updates for technical contributors'''
* In preparation for [[m:Special:MyLanguage/Event:Celebrate Women|Celebrate Women campaign]] planned for March 2027, the Wikimedia Foundation’s [[m:Special:MyLanguage/Wikimedia Foundation/Advancement/Community Growth/Content Enablement|Content Enablement team]] has launched a 22-question survey to better understand technical contributions by women+ (anyone who identifies as a woman) across Wikimedia projects. The survey takes approximately 15–20 minutes to complete and will remain open until 20 July 2026. The [[m:Special:MyLanguage/Celebrate Women/Technical contributions survey|questions]] are also available on-wiki for review in advance.
* The [[mw:Special:MyLanguage/Extension:Score|Score extension]] now supports rendering music scores as SVG images in addition to PNG, addressing a long-standing [[:phab:T49578|feature request]] and resolving historical image quality issues. Both formats are now provided to clients, with PNG in the <bdi lang="zxx" dir="ltr"><code><nowiki>src</nowiki></code></bdi> attribute and SVG in the <bdi lang="zxx" dir="ltr"><code><nowiki>srcset</nowiki></code></bdi> attribute.
* The new [[wikitech:Parsoid|Parsoid]] parser [[mw:Special:MyLanguage/Parsoid/Parser_Unification/Updates|continues to be deployed to additional wikis]], making it easier to introduce new reading and editing features. It was enabled on French Wikipedia, bringing total progress to covering 78.9% of Wikipedia page views. Rollout to English Wikipedia desktop will progress through this week.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Recurrent item]] Detailed code updates later this week: [[mw:MediaWiki 1.47/wmf.10|MediaWiki]]
'''In depth'''
* The Wikimedia Hackathon 2026 [[diffblog:2026/06/29/wikimedia-hackathon-2026-building-collaborating-and-shaping-the-future-together/|recap blog post]] is now live. It highlights the projects, sessions, and social activities from this year’s event, and shares initial plans for the 2027 Wikimedia Hackathon.
'''''[[m:Special:MyLanguage/Tech/News|Tech news]]''' prepared by [[m:Special:MyLanguage/Tech/News/Writers|Tech News writers]] and posted by [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Contribute]] • [[m:Special:MyLanguage/Tech/News/2026/28|Translate]] • [[m:Tech|Get help]] • [[m:Talk:Tech/News|Give feedback]] • [[m:Global message delivery/Targets/Tech ambassadors|Subscribe or unsubscribe]].''
</div><section end="technews-2026-W28"/>
</div>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 13:57, ngày 6 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30773578 -->
== Bản tin Kỹ thuật: Tuần 29-2026 ==
<section begin="technews-2026-W29"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/29|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng [[mw:Special:MyLanguage/Growth/Revise_Tone|Xem lại Giọng văn]] giúp người mới xác định những đoạn văn trong bài viết Wikipedia mà có thể chứa ngôn ngữ không bách khoa và khuyến khích họ xem xét lại giọng văn đó. Tính năng này đã được [[w:en:A/B_testing|thử nghiệm A/B]] trên các Wikipedia tiếng Ả Rập, tiếng Anh, tiếng Pháp và tiếng Bồ Đào Nha, tại đó tỷ lệ hoàn thành nhiệm vụ của người mới [[mw:Special:MyLanguage/Growth/Revise_Tone#Experiment_Results|tăng 38.7%]] so với nhiệm vụ Hiệu đính mặc định, mà không làm giảm chất lượng sửa đổi. Cuộc thử nghiệm đã kết thúc vào ngày 9 tháng 7 và tính năng này nay đã có sẵn cho tất cả mọi người trên các wiki này, đồng thời có thể cấu hình được thông qua Cấu hình Cộng đồng. [[phab:T426364|Kế hoạch]] dự kiến là sẽ phát hành Xem lại Giọng văn đến nhiều trang wiki hơn.
* Cấu hình cộng đồng cho phép [[mw:Special:MyLanguage/Help:Growth/Mentorship#Automated mentor list cleanup|tự động loại bỏ cố vấn không hoạt động]] dựa trên các tiêu chí có thể cấu hình được sẽ được kích hoạt vào thứ 5, ngày 16, [[mw:Special:MyLanguage/Growth/Deployment|trên một số wiki]] để đảm bảo danh sách cố vấn được cập nhật. Cố vấn là những người đóng góp có kinh nghiệm, tự nguyện tham gia giúp đỡ người dùng mới trên wiki thông qua [[mw:Special:MyLanguage/Growth/Feature summary|Tính năng Phát triển (Growth)]]. Bảo quản viên nay có thể chuẩn bị các cài đặt thông qua [[w:Special:CommunityConfiguration/Mentorship|Đặc biệt:Cấu hình Cộng đồng/Cố vấn]]; những cài đặt này sẽ có hiệu lực kể từ thứ 5.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:38}} {{PLURAL:38|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến một số người dùng ứng dụng Wikipedia trên thiết bị Android bị đăng xuất ngay sau khi đăng nhập, khiến họ không thể duy trì trạng thái đăng nhập và sửa đổi trang, nay đã được giải quyết. [https://phabricator.wikimedia.org/T316916]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Việc sửa đổi trang thông qua đoạn mã người dùng hoặc tiện ích khiến cho nhãn danh sách theo dõi mà người dùng gán cho trang đó bị đặt lại. Vấn đề này nay đã được giải quyết. [https://phabricator.wikimedia.org/T423778]
* Để khắc phục lỗi Safari (xem [[phab:T425211]]), trên các wiki đã kích hoạt Parsoid, các liên kết wiki href nay sử dụng urls tuyệt đối thay vì url tương đối theo giao thức. Đầu ra API REST vẫn sẽ không thay đổi và sẽ tiếp tục sử dụng url tương đối theo giao thức. Các tiện ích, đoạn mã người dùng, bot và CSS có thể cần được điều chỉnh nếu chúng dựa vào sự hiện diện của url tương đối theo giao thức trong các liên kết wiki href. [https://phabricator.wikimedia.org/T431358]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.11|MediaWiki]]
'''Chuyên sâu'''
* Nhóm Nền tảng Thử nghiệm của Quỹ Wikimedia đã đăng bài viết trên blog phản ánh về năm đầu tiên thực hiện thử nghiệm có cấu trúc của họ. Bài viết nêu bật những thử nghiệm thành công như Kiểm tra Chép dán, Kiểm tra Nguồn tham khảo và Kiểm tra Giọng văn, những thử nghiệm đã cải thiện kết quả sửa đổi và được triển khai cho nhiều người dùng hơn, cũng như những thử nghiệm không dẫn đến việc thay đổi sản phẩm. [[diffblog:2026/07/07/moving-the-needle-how-we-test-new-ideas-across-wikimedia-projects|Đọc thêm]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/29|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W29"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:11, ngày 13 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30804401 -->
== Bản tin Kỹ thuật: Tuần 30-2026 ==
<section begin="technews-2026-W30"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/30|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Reader/Reader Experience|Nhóm Trải nghiệm Người đọc]] đã kết hợp phản hồi của cộng đồng xoay quanh vị trí của các nút sao theo dõi và nút danh sách theo dõi đối với [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4 Reading lists|tính năng beta Danh sách Đọc]], nhằm cho phép lưu lại các bài viết để đọc sau – một [[m:Special:MyLanguage/Community Wishlist/W102|mục danh sách mong muốn]] để đưa chức năng này lên web. Các biên tập viên được mời kích hoạt tính năng beta để thử nghiệm tính năng này và [[phab:T426453|chia sẻ suy nghĩ của mình]].
* [[mw:Special:MyLanguage/VisualEditor/Suggestion Mode|Chế độ Đề xuất]] cung cấp những đề xuất sửa đổi trong Trình Soạn thảo Trực quan để cải thiện các bài viết trên Wikipedia. [[Special:EditChecks|Mọi đề xuất]] đều [[mw:Special:MyLanguage/Help:Suggestion mode#For administrators – local customization|có thể được cộng đồng cấu hình]]. Tính năng [[mw:Special:MyLanguage/Edit check/TextMatch|Văn bản Khớp chính xác]] (TextMatch) là một cách giúp cho các tình nguyện viên có thể tạo đề xuất tùy chỉnh cục bộ. Tính năng này tìm kiếm các chuỗi văn bản trong bài viết, và nay cũng bao gồm việc hỗ trợ cho các biểu thức chính quy. Điều này mang lại cho các tình nguyện viên độ chính xác và tính linh hoạt cao hơn đối với những loại đề xuất mà họ có thể tạo ra cục bộ. Lưu ý: Đề xuất [[mw:Special:MyLanguage/Edit check/Configuration#:~:text=maximumEditcount|có thể được nhắm tới]] dựa trên số lần sửa đổi của người thực hiện sửa đổi cũng như các khía cạnh khác của trang. Bạn có thể [[mw:Special:MyLanguage/Help:Suggestion mode#Create custom local types of Suggestions|tìm ví dụ từ các cộng đồng khác]] để lấy cảm hứng, kể cả việc sử dụng Văn bản Khớp chính xác nhằm phát hiện: lỗi chính tả, lỗi ngữ pháp, có khả năng quảng cáo, lời sáo rỗng, cách sử dụng dấu gạch ngang hoặc dấu gạch nối không chính xác, từ khóa thời gian không cụ thể, tên lỗi thời, v.v. Bất kỳ [[mw:Special:MyLanguage/Talk:VisualEditor/Suggestion Mode|phản hồi]] nào đều được chúng tôi hoan nghênh.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, sự cố về công cụ SVG Translate khiến cho nó có thể sử dụng phiên bản tập tin lỗi thời, khiến các bản dịch hiện có bị ghi đè khi các bản dịch mới được tải lên, nay đã được [[phab:T430577|giải quyết]]. Nhìn chung, trong quý cuối cùng từ tháng 4 đến tháng 6 năm 2026, Quỹ Wikimedia đã giải quyết khoảng 337 tác vụ cộng đồng.
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Trên các wiki có hỗ trợ Parsoid, Parsoid nay hiển thị tối đa 1.250 hình ảnh mỗi trang. Một danh mục theo dõi mới, "media-limit-reached", sẽ sớm được cung cấp để xác định các trang đã đạt đến giới hạn này, giúp dễ dàng tìm thấy nội dung có thể bị hạn chế đầu ra phương tiện trong quá trình hiển thị. Xem [[phab:T430854]] để biết thêm thông tin và cung cấp phản hồi.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.12|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/30|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W30"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 05:46, ngày 21 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30836091 -->
== Request for comment (the future of Abstract Wikipedia) ==
<bdi lang="en" dir="ltr" class="mw-content-ltr">
Apologies if this has not yet been translated into your wiki's language. {{int:Please-translate}}
You are invited to voice your opinions in a [[:m:Requests for comment/The future of Abstract Wikipedia|request for comment about the future of Abstract Wikipedia]]. {{Int:Feedback-thanks-title}}
[[:m:User:Kowal2701|Kowal2701]] ([[:m:User talk:Kowal2701|talk]]) 12:25, ngày 24 tháng 7 năm 2026 (UTC)
</bdi>
<!-- Tin nhắn của Thành viên:DreamRimmer@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== Bản tin Kỹ thuật: Tuần 31-2026 ==
<section begin="technews-2026-W31"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/31|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Wishlist item]] Công cụ [[mw:Special:MyLanguage/ContentTranslation|Dịch Nội dung]] nay hỗ trợ chế độ tối, nhằm đáp ứng [[m:Community Wishlist/W544|yêu cầu từ Mong muốn Cộng đồng]]. Điều này giúp công cụ tương thích với các tính năng hỗ trợ khả năng tiếp cận có sẵn trong các giao diện Vector 2022 và Minerva, giúp giảm việc gây mỏi mắt cho người dùng khi dịch nội dung. [https://phabricator.wikimedia.org/T367077]
* Chế độ soạn thảo mã nguồn của Công cụ Thảo luận (DiscussionTools) và Trình soạn thảo mã nguồn 2017 nay sẽ cung cấp tính năng tự động điền cho các liên kết (<bdi lang="zxx" dir="ltr"><code><nowiki>[[</nowiki></code></bdi>), bản mẫu (<bdi lang="zxx" dir="ltr"><code><nowiki>{{</nowiki></code></bdi>), thẻ HTML và phân tích cú pháp (<bdi lang="zxx" dir="ltr"><code><nowiki><</nowiki></code></bdi>), cũng như các từ ma thuật (<bdi lang="zxx" dir="ltr"><code><nowiki>__</nowiki></code></bdi>), giúp việc chèn các liên kết, bản mẫu và mã đánh dấu wiki khác trong quá trình sửa đổi trở nên nhanh chóng và dễ dàng hơn. [https://phabricator.wikimedia.org/T432400]
* [[mw:Special:MyLanguage/Readers/Reader Growth/Mobile page previews|Nhóm Phát triển Người đọc]] đã kết thúc việc thử nghiệm với tính năng xem trước trang trên thiết bị di động và sẽ không triển khai tính năng này nữa. Tính năng Xem trước Trang là một cửa sổ bật lên ở cuối trang xuất hiện khi người đọc nhấn vào liên kết xanh, hiển thị hình thu nhỏ, đoạn mở đầu và tùy chọn mở bài viết. Thử ngiệm cho thấy tỷ lệ giữ chân người dùng không thay đổi nhưng các chỉ số khác đều mang tính tiêu cực, điều này có nghĩa là người đọc trên trang web dành cho thiết bị di động thích truy cập trực tiếp vào các bài viết được liên kết hơn là sử dụng tính năng xem trước trang.
* Nhóm Trải nghiệm Người đọc đã bước đầu ghi nhận những kết quả khả quan từ [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|tính năng Danh sách Đọc]], trong đó 93% người dùng tham gia báo cáo rằng tính năng này hữu ích. Danh sách Đọc giúp người đọc hoạt động tích cực lưu lại các bài viết để đọc sau này và hỗ trợ mục tiêu học tập của họ trên các dự án Wikimedia. Nhóm dự định sẽ tiếp tục cải tiến trước khi mở rộng tính năng này cho nhiều người dùng hơn.
* Sáng kiến [[mw:Special:MyLanguage/Wikimedia Apps/Team/Explore Feed Refresh|Làm mới Nguồn cấp dữ liệu Khám phá]] đã được thử nghiệm với những người đọc mới và không thường xuyên sử dụng ứng dụng Wikipedia. Nguồn cấp dữ liệu được làm mới giúp người đọc khám phá những nội dung mới và phù hợp với mình. Với kết quả mức độ tương tác với nguồn cấp dữ liệu tăng 10,5%, nhóm Ứng dụng Wikimedia đã quyết định mở rộng việc thiết kế lại Nguồn cấp dữ liệu Trang chủ sang iOS, áp dụng những kinh nghiệm thu được từ phiên bản dành cho Android.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến cho tên chủ đề trong tính năng Hướng dẫn Bài viết hiển thị sai cách viết hoa trên Wikipedia tiếng Pháp nay đã được giải quyết. Tên chủ đề nay sẽ tuân theo đúng quy tắc viết hoa của ngôn ngữ đó. [https://phabricator.wikimedia.org/T427201]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Sau khi thực hiện một số [[mw:Special:MyLanguage/Contributors/Account Creation Experiments|Thử nghiệm Tạo Tài khoản]] để cải thiện tỷ lệ hoàn tất việc đăng ký, một phiên bản mới của trường tên người dùng trên trang [[Special:CreateAccount|Tạo Tài khoản]] đã được triển khai. Phiên bản này bao gồm [[:c:File:Create account - July 2026 updates.png|một cửa sổ bật lên nhằm tóm tắt quy định về tên người dùng]] để cung cấp hướng dẫn rõ ràng hơn trong quá trình tạo tài khoản. Là một phần của thay đổi này, các thông báo <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-helpusername</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-help</nowiki></code></bdi> mà một số cộng đồng đã cấu hình sẽ không còn được sử dụng nữa. Nếu cộng đồng muốn tùy chỉnh hướng dẫn hiển thị trong cửa sổ bật lên mới, cộng đồng có thể sửa đổi các thông báo sau: <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-policy-popover-bullet1</nowiki></code></bdi>, <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-policy-popover-bullet2</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>createacct-username-policy-popover-bullet3</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T430604]
* Cuối tuần này, [[mw:Special:MyLanguage/Help:Extension:CodeMirror|trình làm nổi bật cú pháp CodeMirror]] sẽ cung cấp [[w:en:Theme (computing)|các chủ đề]]. Các chủ đề có thể được chọn từ menu thả xuống trong hộp thoại [[mw:Special:MyLanguage/Help:Extension:CodeMirror#CodeMirror preferences|tùy chọn CodeMirror]] hoàn chỉnh. Đối với mã wiki, các chủ đề có sẵn là mặc định, thân thiện với người mù màu (trước đây là tùy chọn dễ phân biệt cho người mù màu trong [[Special:Preferences#mw-prefsection-editing]]) và không làm nổi bật. Đối với các ngôn ngữ lập trình (ví dụ: CSS/JavaScript/JSON/Vue/Lua), hiện có sẵn một vài chủ đề. Các chủ đề tương tự này sau này cũng sẽ có sẵn cho mã wiki. [https://phabricator.wikimedia.org/T163533]
* Kể từ giờ trở đi, các wiki có thể giới hạn sửa đổi trong không gian tên "Thành viên" chỉ cho chính thành viên đó và một số nhóm người dùng nhất định. [[mw:Special:MyLanguage/Manual:$wgRestrictUserPageEditing|Đọc tài liệu hướng dẫn cấu hình]] để tìm hiểu thêm.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.14|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/31|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W31"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:49, ngày 27 tháng 7 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30856308 -->
== Bản tin Kỹ thuật: Tuần 32-2026 ==
<section begin="technews-2026-W32"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/32|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đã phát triển một [https://82db7c8d4b.catalyst.wmcloud.org/w/index.php?title=Regent%27s_Park&uselang=de bản vá demo] nhằm bọc thanh công cụ trang thành hai dòng nếu không có đủ không gian bề ngang cho tất cả các nút. Điều này nhằm mục đích giảm tình trạng quá tải trên thanh công cụ trong giao diện Vector 2022, có thể xảy ra trên một số trang ngôn ngữ Wikipedia trên một số độ rộng màn hình nhất định. [https://phabricator.wikimedia.org/T429518]
* Nhóm Trải nghiệm Người đọc dự kiến sẽ phát hành [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|Danh sách Đọc]], một [[m:Special:MyLanguage/Community Wishlist Survey 2021/Mobile and apps/Have Apps reading lists available on Destop/Mobile|mục trong Danh sách Mong muốn Cộng đồng]], hiện đang có sẵn để dùng thử dưới dạng tính năng beta, dưới dạng tính năng đầy đủ vào tháng 9. Trước thời điểm đó, chúng tôi cần các tình nguyện viên biên dịch giúp [https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-readinglists&filter=&action=translate dịch các chuỗi này] sang những ngôn ngữ khác. Tính năng này giúp hỗ trợ các mục tiêu đọc và học tập trên Wikipedia.
* Vào tuần tới, mục lục trên các trang tập tin Wikimedia Commons sẽ được cải thiện bằng cách hợp nhất mục lục trang tập tin với mục lục của trang. Điều này sẽ giúp việc hiểu cấu trúc trang tập tin, điều hướng đến những đề mục cụ thể, và chia sẻ liên kết đến các đề mục riêng biệt trở nên dễ dàng hơn. [https://phabricator.wikimedia.org/T332644]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:24}} {{PLURAL:24|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho một số hình [[w:TIFF|TIFF]] không thể tải được sau khi nhấn vào hình thu nhỏ của nó, khiến cho hình bị hỏng được hiển thị thay vì hình có kích thước đầy đủ, nay đã được giải quyết. [https://phabricator.wikimedia.org/T429326]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bộ chọn biến và hàm trong Bộ lọc Sai phạm (AbuseFilter) đã được cập nhật để hỗ trợ tìm kiếm và tự động điền. Điều này sẽ giúp những người quản lý bộ lọc tìm kiếm biến hoặc hàm mong muốn nhanh hơn. [https://phabricator.wikimedia.org/T323698]
* Các định dạng MJPEG và VP8 đã bị loại bỏ khỏi trình phát video. Thay vào đó, định dạng MP4 (MPEG-4 Phần 2) được thêm vào, nhằm cung cấp video chất lượng cao hơn cho các thiết bị iPhone đời cũ. Việc cập nhật lại tất cả các video hiện có sẽ có thể mất vài tuần. Định dạng mặc định cho các thiết bị hiện đại vẫn sẽ được giữ nguyên (VP9/WebM). [https://phabricator.wikimedia.org/T358266]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.15|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/32|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W32"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:46, ngày 3 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30872536 -->
== Bản tin Kỹ thuật: Tuần 33-2026 ==
<section begin="technews-2026-W33"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/33|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Mục Mong muốn cộng đồng]] Công cụ mới Trình tạo Biểu đồ (ChartWizard) [[c:Special:ChartWizard/Data:Example.Pie.chart|nay đã có mặt trên Wikimedia Commons]] dành cho các thành viên có mong muốn tạo các biểu đồ từ dữ liệu của riêng mình. Trình hướng dẫn này giúp [[mw:Special:MyLanguage/Extension:Chart|phần mở rộng Chart]] trở nên thân thiện hơn với người mới bắt đầu bằng cách cho phép các biên tập viên tạo biểu đồ, chẳng hạn như biểu đồ cột và biểu đồ tròn, mà không cần phải sử dụng JSON. Các thành viên vẫn có thể chuyển sang trình soạn thảo mã JSON nếu họ muốn. Mọi ý kiến đóng góp về công cụ mới này đều được hoan nghênh trên [[m:Talk:Community Wishlist/W414|trang thảo luận của mong muốn này]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:19}} {{PLURAL:19|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho tiện ích Hình ảnh của Ngày của ứng dụng Wikipedia dành cho iOS hiển thị cùng một hình ảnh mỗi ngày thay vì cập nhật hàng ngày, nay đã được giải quyết. [https://phabricator.wikimedia.org/T430692]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Hình ảnh SVG cho [[mw:Special:MyLanguage/Extension:Math|công thức toán học]] sẽ sớm được tạo trong trình duyệt thay vì trên máy chủ. MathML vẫn sẽ tiếp tục được tạo trên máy chủ và hiển thị trong trình duyệt mà không cần JavaScript. Wikibooks sẽ áp dụng thay đổi này vào ngày 12 tháng 8, Wikisource vào ngày 19 tháng 8 và Wikipedia từ ngày 20-27 tháng 8. Bạn có thể thử thay đổi này bằng cách chọn "{{int:Mw-math-mathjax}}" trong phần tùy chọn của bạn. Thay đổi này là một phần trong lộ trình [[mw:Special:MyLanguage/RESTBase/deprecation|ngừng sử dụng RESTBase]] và [[phab:T431372|ngừng sử dụng Mathoid]]. [https://phabricator.wikimedia.org/T271001]
* <span class="mw-translate-fuzzy">Các trang thể loại sẽ sớm hỗ trợ việc sắp xếp các mục theo thời gian chúng được thêm vào thể loại. Điều này sẽ giúp việc tìm kiếm các trang được xếp thể loại gần đây hoặc đã xếp từ lâu trở nên dễ dàng hơn. Tính năng này cũng sẽ cải thiện quy trình làm việc đối với các thể loại bảo trì chẳng hạn như danh sách trang chờ xóa và các tác vụ rà soát theo thời gian khác. Bạn có thể sử dụng tham số URL <bdi lang="zxx" dir="ltr"><code><nowiki>cldsort=timestamp</nowiki></code></bdi> trong chế độ xem thể loại để sắp xếp các mục này.</span> [https://phabricator.wikimedia.org/T433768]
* Các [[mw:Special:MyLanguage/Extension:Gadgets|tiện ích]] và đoạn mã người dùng trên các wiki của Wikimedia nay có thể sử dụng [[phab:T395347|các tính năng theo chuẩn ES2018]] và [[phab:T419142|các tính năng theo chuẩn ES2019]] trong đoạn mã JavaScript. Trước đây, nền tảng chỉ cho phép sử dụng tối đa đến chuẩn ES2017. MediaWiki kiểm tra mã nguồn để bảo vệ chức năng khỏi các lỗi cú pháp và đảm bảo các đoạn mã đều hợp lệ trên tất cả [[mw:Special:MyLanguage/Compatibility#Browser_support_matrix|các trình duyệt được hỗ trợ]]. [https://phabricator.wikimedia.org/T419142]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.16|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/33|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W33"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:45, ngày 10 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30901051 -->
== Bản tin Kỹ thuật: Tuần 34-2026 ==
<section begin="technews-2026-W34"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/34|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Help:Extension:CampaignEvents/Registration/Worklist|Tính năng Danh sách Công việc (Worklist)]] dành cho công cụ Đăng ký Sự kiện nay đã có mặt trên tất cả các dự án wiki của Wikimedia. Với Danh sách Công việc, ban tổ chức sự kiện có thể thêm trực tiếp các bài viết mà sẽ là trọng tâm của sự kiện vào trang sự kiện. Danh sách Công việc cũng hỗ trợ tính năng [[mw:Special:MyLanguage/Help:Extension:CampaignEvents/Registration/Worklist#How Event Pathways uses the worklist|Lộ trình Sự kiện (Event Pathways)]] giúp thông báo cho các biên tập viên khác về sự kiện sắp hoặc đang diễn ra khi họ sửa đổi một bài viết có trong Danh sách Công việc của sự kiện đó. Đây là phiên bản khả thi tối thiểu (MVP), và chúng tôi hoan nghênh mọi ý kiến đóng góp. Các ban tổ chức được khuyến khích thử tính năng này. Buổi [[m:Special:MyLanguage/Event:Worklist Setup Workshop: Get Your Event Ready|Hội thảo Thực hành Danh sách Công việc]] sẽ diễn ra vào ngày 18 tháng 6 lúc 16:00 UTC và ngày 19 tháng 6 lúc 11:00 UTC.
'''Cập nhật cho biên tập viên'''
* [[Special:ShortPages]] hiển thị các trang ngắn dựa trên kích thước của chúng, nhưng trong nhiều trường hợp danh sách này bị lấp đầy bởi các trang định hướng và đổi hướng mềm, khiến việc tìm kiếm chính các bài viết ngắn đó trở nên khó khăn hơn. Kể từ cuối tuần này, bạn sẽ có thể loại bỏ một bài viết khỏi trang đặc biệt này bằng cách thêm từ ma thuật <bdi lang="zxx" dir="ltr"><code><nowiki>__EXPECTSHORTPAGE__</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T433203]
* Một wiki mới đã được tạo ra: {{int:project-localized-name-group-wikipedia/vi}} tiếng [[d:Q3436680|Bole]] ([[w:bol:|<bdi lang="zxx" dir="ltr"><code><nowiki>w:bol:</nowiki></code></bdi>]]) [https://phabricator.wikimedia.org/T429921]
* Kể từ tuần ngày 17 tháng 8, thanh công cụ trang sẽ tự động xuống thành hai hàng khi không còn đủ không gian theo chiều ngang để hiển thị tất cả các nút. Đây là một [[phab:T429518|bản vá đã được hợp nhất hoàn toàn từ nhóm Trải nghiệm Người đọc]] nhằm giảm bớt tình trạng chật không gian trên thanh công cụ của giao diện Vector 2022, một vấn đề mà có thể xảy ra trên một số phiên bản ngôn ngữ Wikipedia ở một số độ rộng màn hình nhất định.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:16}} {{PLURAL:16|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, việc tải các tập tin có dung lượng lớn lên Wikimedia Commons đã trở nên ổn định hơn và ít gặp lỗi hơn sau một số bản sửa lỗi liên quan đến lỗi tải lên "Không thể lấy khóa". [https://phabricator.wikimedia.org/T386640]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Debian Bullseye sẽ kết thúc Hỗ trợ Dài hạn vào ngày 31 tháng 8 năm 2026. [[phab:T434103|Một số dự án Cloud VPS]] vẫn còn instance đang chạy Debian Bullseye. Bảo trì viên của những dự án này được khuyến khích chuyển sang Debian Bookworm hoặc Debian Trixie. Hiện đã có trang [[wikitech:Help:Cloud VPS instance operating system migration|hướng dẫn di chuyển]] nhằm giúp thực hiện quy trình này, đồng thời các thành viên cũng có thể muốn xem xem liệu khối lượng công việc của họ có phù hợp hơn với Toolforge hay không. Nếu bạn cần trợ giúp hoặc không thể hoàn tất quá trình chuyển đổi trước ngày 31 tháng 8, vui lòng liên hệ với quản trị viên Cloud VPS càng sớm càng tốt. [[listarchive:list/cloud-announce@lists.wikimedia.org/thread/RVIPQSYLKMSL5M46JP6NEJVGVE6I2RXQ/|Đọc thêm]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.16|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/34|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W34"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:03, ngày 17 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30922806 -->
== Bản tin Kỹ thuật: Tuần 35-2026 ==
<section begin="technews-2026-W35"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/35|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Trang [[Special:CreateAccount|Đặc biệt:Tạo tài khoản]] đã được đơn giản hóa như là một phần của nỗ lực nhằm hiện đại hóa trải nghiệm tạo tài khoản. Khung hiển thị số liệu thống kê về dự án sẽ không còn xuất hiện bên cạnh biểu mẫu trên giao diện trang web máy tính và di động. Nhiều thử nghiệm tạo tài khoản cho thấy việc sử dụng biểu mẫu đơn giản hơn giúp người dùng mới hoàn tất quy trình đăng ký dễ dàng hơn. [https://phabricator.wikimedia.org/T433783]
* Để cải thiện hiệu suất trang, các hình ảnh nay sẽ chỉ được tải khi người dùng xem chúng. Điều này có nghĩa là những hình ảnh nằm ở phần dưới của bài viết sẽ không được tải nếu người đọc không bao giờ cuộn trang xuống phần đó của bài viết, điều này có thể ảnh hưởng đến một vài số liệu liên quan đến hình ảnh. [https://phabricator.wikimedia.org/T148047]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:42}} {{PLURAL:42|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho các hình thu nhỏ trên Abstract Wikipedia có thể không hiển thị được sau khi tập tin tương ứng được di chuyển trên Wikimedia Commons, nay đã được giải quyết. Các hình thu nhỏ nay sẽ được cập nhật chính xác khi tập tin được di chuyển. [https://phabricator.wikimedia.org/T433448]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Thẻ Thông tin Thành viên là một tính năng giúp các tuần tra viên xem thông tin về các tài khoản người dùng. Trước đây, tính năng này chỉ xuất hiện ở những nơi chẳng hạn như lịch sử trang, nhật trình và thay đổi gần đây. Giờ đây, các thành viên cũng có thể [[mw:Special:MyLanguage/Help:Extension:CheckUser#User_Info_card_in_page_content|đặt thẻ này vào nội dung trang]], bằng cách sử dụng hàm phân tích cú pháp <bdi lang="zxx" dir="ltr"><code><nowiki>{{#uic:}}</nowiki></code></bdi>. Điều này đặc biệt hữu ích trong các bản mẫu như [[:en:Template:Userlinks|<bdi lang="zxx" dir="ltr"><code><nowiki>{{Userlinks}}</nowiki></code></bdi>]] (hoặc các biến thể chuyên biệt của chúng), vì nó sẽ giúp việc xem thông tin về thành viên trên nhiều trang bảng tin nhắn trở nên dễ dàng hơn. Thẻ này sẽ chỉ được hiển thị với những người dùng đã kích hoạt tính năng này trong phần [[Special:Preferences#mw-input-wpcheckuser-userinfocard-enable|tùy chọn]] của mình. [https://phabricator.wikimedia.org/T424466]
* Do những rủi ro về bảo mật và quyền riêng tư của người dùng, chúng tôi đã vô hiệu hóa quyền truy cập vào các URL dẫn đến trang <bdi lang="zxx" dir="ltr"><code><nowiki>Special:MyPage</nowiki></code></bdi> khi sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>action=raw</nowiki></code></bdi>. Nếu điều này ảnh hưởng tới bạn, hãy cân nhắc xem bạn có thể sử dụng một phương thức nào đó thay thế hay không. Các URL dẫn đến trang <bdi lang="zxx" dir="ltr"><code><nowiki>Special:MyPage</nowiki></code></bdi> vẫn có thể truy cập và sử dụng được mà không cần sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>action=raw</nowiki></code></bdi>. Các URL cụ thể cho trang thành viên (v.d. <bdi lang="zxx" dir="ltr"><code><nowiki>User:Myusername</nowiki></code></bdi>) vẫn có thể được sử dụng với <bdi lang="zxx" dir="ltr"><code><nowiki>action=raw</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T120386]
* Nhờ một bản cập nhật, phần mềm tạo hình thu nhỏ đã được cải tiến. Nó bao gồm việc nâng cấp <bdi lang="zxx" dir="ltr"><code><nowiki>librsvg</nowiki></code></bdi> lên phiên bản 2.60 và <bdi lang="zxx" dir="ltr"><code><nowiki>ImageMagick</nowiki></code></bdi> lên 7, cũng như việc khắc phục một số lỗi tạo hình thu nhỏ đã tồn tại từ lâu chẳng hạn như lỗi hiển thị. [https://phabricator.wikimedia.org/T419815#12222841]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.17|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/35|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W35"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:45, ngày 24 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30961208 -->
== Bản tin Kỹ thuật: Tuần 36-2026 ==
<section begin="technews-2026-W36"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/36|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Một hình thức mới cho Danh sách Mong muốn Cộng đồng hiện đang được lấy ý kiến đóng góp. Bạn có thể [[m:Special:MyLanguage/Community Wishlist/Community Wishlist 2027|đọc các ý tưởng đề xuất trên Meta]]. Quy trình mới này nhằm nâng cao hiệu quả sàng lọc, bỏ phiếu và ưu tiên cho các mong muốn nhằm đảm bảo tính minh bạch và sự cân bằng giữa các nhóm dự án và phiên bản ngôn ngữ. Đợt tham vấn này sẽ kéo dài trong vòng hai tuần.
'''Cập nhật cho biên tập viên'''
* Bản phát hành mới nhất của ứng dụng Wikipedia dành cho Android bao gồm các cập nhật đối với tính năng Đã lưu (Saved), giúp trải nghiệm lưu bài viết trên ứng dụng trở nên đồng bộ hơn với phiên bản iOS và Web. Bản cập nhật này thiết kế lại tab Đã lưu với giao diện “Tất cả bài viết”, xóa bỏ danh sách đọc mặc định “Đã lưu”, đổi tên các danh sách đọc thành “Bộ sưu tập” (Collections) và hiện đại hóa trải nghiệm lưu bài viết. [https://phabricator.wikimedia.org/T420788]
* Tính năng [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|Danh sách Đọc]] đã được kích hoạt cho tất cả người dùng đã đăng nhập trên Wikipedia tiếng Bengali, tiếng Trung, tiếng Séc và tiếng Việt vào ngày 25 tháng 8, sau vài tháng hoạt động dưới dạng tính năng thử nghiệm (beta). Danh sách Đọc sẽ được triển khai đến tất cả người dùng đã đăng nhập trên Wikipedia tiếng Ả Rập, tiếng Pháp và tiếng Indonesia vào ngày 1 tháng 9, sau đó là Wikipedia tiếng Anh vào ngày 14 tháng 9, và trên tất cả các wiki Wikipedia còn lại vào ngày 28 tháng 9.
* Vào cuối tháng này, một số độc giả chưa đăng nhập trên Wikipedia tiếng Bengali, tiếng Séc, tiếng Ba Tư, tiếng Anh và tiếng Ba Lan sử dụng giao diện Minerva trên thiết bị di động sẽ nhìn thấy một [[mw:Special:MyLanguage/Readers/Reader_Growth/Minimal_Minerva|thanh điều hướng được cập nhật]] trong [[:w:vi:Thử nghiệm A/B|thử nghiệm A/B]]. Thử nghiệm này sẽ so sánh thanh điều hướng hiện tại với phiên bản mới được thiết kế nhằm giúp người dùng tìm kiếm thông tin một cách nhanh chóng và dễ dàng hơn. Mục tiêu là xác định xem những thay đổi này có khuyến khích độc giả quay lại thường xuyên hơn hay không. Thử nghiệm này sẽ không làm thay đổi trải nghiệm của người dùng và/hoặc biên tập viên đã đăng nhập.
* Các biên tập viên chuyên bảo trì các trang đổi hướng, bản mẫu và thể loại được sử dụng trên các trang đổi hướng nay có thêm các phương thức cải tiến để tìm kiếm và quản lý trang đổi hướng. Trước đây, các trang đổi hướng không thể tìm kiếm được. Hai từ khóa tìm kiếm mới, <bdi lang="zxx" dir="ltr"><code><nowiki>onlyredirects:</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>withredirects:</nowiki></code></bdi>, giờ đây cho phép tìm kiếm trực tiếp các trang đổi hướng và có thể kết hợp với các từ khóa hiện có như <bdi lang="zxx" dir="ltr"><code><nowiki>incategory:</nowiki></code></bdi>, <bdi lang="zxx" dir="ltr"><code><nowiki>intitle:</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>insource:</nowiki></code></bdi>. [https://phabricator.wikimedia.org/T204089]
* Các công cụ tìm kiếm ISBN để tạo các nguồn trích dẫn gần đây đã không hoạt động do các vấn đề liên quan đến dịch vụ bên ngoài. Các nhà phát triển đang nỗ lực để tìm giải pháp khắc phục. [https://phabricator.wikimedia.org/T435179]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho việc tìm kiếm trang theo thể loại sử dụng <bdi lang="zxx" dir="ltr"><code><nowiki>deepcat</nowiki></code></bdi> có thể không trả về kết quả hoặc trả về kết quả không liên quan nay đã được giải quyết. [https://phabricator.wikimedia.org/T414859]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Tên miền của URL cho hình thu nhỏ đang được thay đổi từ $1 sang thumb.wikimedia.org. Các URL cũ sẽ tiếp tục hoạt động trong tương lai gần, nhưng MediaWiki sẽ chuyển sang sử dụng tên miền mới. Các URL trỏ đến các loại tập tin đa phương tiện khác như tập tin gốc, video và tập tin chuyển mã vẫn sẽ được phục vụ từ upload.wikimedia.org. [https://phabricator.wikimedia.org/T427465]
* [https://www.mediawiki.org/w/index.php?api=wmf-math%2Fv1&title=Special%3ARestSandbox API Toán học (Math API)] của Wikimedia hiện đã lỗi thời và không còn được hỗ trợ. Các điểm cuối (endpoints) này sẽ chính thức ngừng hoạt động hoàn toàn vào cuối tháng 9 năm 2026. Các nhà phát triển gọi các điểm cuối này nên chuyển sang các giải pháp hiển thị toán học thay thế, chẳng hạn như [https://developer.mozilla.org/en-US/docs/Web/MathML MathML] tích hợp sẵn hoặc [https://www.mathjax.org/ MathJax]. Các hệ thống MediaWiki được cài đặt bởi bên thứ ba sử dụng phần mở rộng Math để hiển thị công thức bắt buộc phải nâng cấp lên phiên bản v1.43 trở lên để tránh gián đoạn dịch vụ.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.18|MediaWiki]]
'''Chuyên sâu'''
* Đọc thêm về [[mw:Special:MyLanguage/Edit_check/TextMatch|TextMatch]] trong một bài viết trên Diff có tiêu đề: [[diffblog:2026/08/28/custom-edit-suggestions-for-every-wiki-how-communities-are-shaping-suggestion-mode-with-textmatch/|Đề xuất sửa đổi tùy chỉnh cho mọi wiki: Cộng đồng đang định hình Chế độ Gợi ý với TextMatch như thế nào]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/36|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W36"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:53, ngày 31 tháng 8 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30990659 -->
== Bản tin Kỹ thuật: Tuần 37-2026 ==
<section begin="technews-2026-W37"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/37|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng [[mw:Special:MyLanguage/Help:Growth/Tools/Add_a_link|Thêm Liên kết]] đã được nâng cấp cho người dùng trên Wikipedia tiếng Anh với khả năng phát hiện tốt hơn các liên kết có sự khác biệt về cách viết hoa. Cải tiến này sẽ giúp giảm bớt những gợi ý mơ hồ gây ra do sự khác biệt về cách viết viết hoa trong tiêu đề bài viết, bao gồm cả những bài viết về các sản phẩm văn hóa. Hiện kế hoạch cải tiến giai đoạn 2 đã được lên lịch, kế hoạch cũng sẽ nhằm mục đích chuẩn bị phát hành tính năng này ở các ngôn ngữ khác. [https://phabricator.wikimedia.org/T435526#12240876] [https://phabricator.wikimedia.org/T434259]
* Tính năng [[mw:Special:MyLanguage/Article_guidance|Chỉ dẫn bài viết]] sẽ được bật theo mặc định cho các biên tập viên mới trên Wikipedia tiếng Anh Đơn giản và Wikipedia tiếng Thổ Nhĩ Kỳ kể từ ngày 10 tháng 9 năm 2026 sau khi đã trải qua [[mw:Special:MyLanguage/Article_guidance/Updates#Summary_of_experiment_result|một cuộc thử nghiệm]]. Các biên tập viên mới có từ 0 đến 99 sửa đổi sẽ tự động nhìn thấy tính năng này khi họ nhấn vào liên kết đỏ hoặc sử dụng tùy chọn "[[tr:Vikipedi:Madde_sihirbazı|Madde oluşturto]]" (tạo bài viết) trên Wikipedia tiếng Thổ Nhĩ Kỳ để tạo bài viết mới. Thay đổi này nhằm mục đích giúp các biên tập viên mới tạo các bài viết có chất lượng cao hơn và đáp ứng các tiêu chuẩn của từng dự án Wikipedia. [[phab:maniphest/query/z3tcTjmLMxk5/#R|Các cải tiến bổ sung]] sẽ tiếp tục được thực hiện dựa trên kết quả thử nghiệm và phản hồi từ cộng đồng.
* Công cụ [https://pageviews.wmcloud.org Phân tích Lượt xem Trang] nhằm cho phép người dùng so sánh lượt xem giữa nhiều trang, năm nay đã tròn 10 tuổi và được bổ sung thêm một số tính năng mới. Chúng bao gồm [[toolforge:wikinav|WikiNav]] nhằm cung cấp thông tin chuyên sâu vào cách độc giả Wikipedia khám phá nội dung, thống kê sửa đổi trong mục [https://pageviews.wmcloud.org/siteviews?range=latest-30&sites=en.wikipedia.org Siteviews], khả năng [https://pageviews.wmcloud.org/massviews?source=wikiproject&project=en.wikipedia.org tra cứu bài viết thuộc Dự án Wiki], cũng như hỗ trợ chế độ tối. [https://phabricator.wikimedia.org/T378549]
* Một thanh điều hướng [[mw:Special:MyLanguage/Readers/Reader_Growth/Minimal_Minerva|Minerva được đơn giản hóa về mặt trực quan]] đang được thử nghiệm dành cho các độc giả chưa đăng nhập sử dụng giao diện web di động trên các dự án Wikipedia tiếng Bengal, tiếng Séc, tiếng Anh, tiếng Ba Tư và tiếng Ba Lan. Thử nghiệm này nhằm xác định xem việc đơn giản hóa thanh điều hướng có cải thiện việc giữ chân độc giả hay không. Thử nghiệm sẽ diễn ra từ ngày 31 tháng 8 đến ngày 28 tháng 9, và người dùng không cần phải thực hiện bất kỳ thao tác nào.
* [[m:Special:MyLanguage/WMDE Technical Wishes|Nhóm Mong muốn Kỹ thuật của WMDE]] đang thực hiện việc cải tiến [[en:Wikipedia:VisualEditor/Named references|tên nguồn tham khảo được tạo tự động trong Trình Soạn thảo Trực quan]]. Các biên tập viên sẽ chỉ nhận thấy một thay đổi nhỏ kể từ tuần này. Khi thêm tên nguồn tham khảo tự động việc đánh số sẽ bắt đầu tại <bdi lang="zxx" dir="ltr"><code><nowiki>:1</nowiki></code></bdi> thay vì <bdi lang="zxx" dir="ltr"><code><nowiki>:0</nowiki></code></bdi>. Đọc thêm trên [[m:WMDE Technical Wishes/References/VisualEditor automatic reference names|trang dự án]]. [https://gerrit.wikimedia.org/r/c/VisualEditor/VisualEditor/+/1332704]
* Tất cả các wiki sẽ [[m:Special:MyLanguage/Tech/Server switch|chuyển sang chế độ chỉ đọc trong vài phút]] vào ngày 23 tháng 9. Kế hoạch dự kiến diễn ra lúc 14:00 UTC. Thông tin thêm về kế hoạch này sẽ được xuất bản trong Bản tin Kỹ thuật và cũng sẽ được đăng lên trên từng wiki trong các tuần tiếp theo. [https://phabricator.wikimedia.org/T433363]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:25}} {{PLURAL:25|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho [[mw:Special:MyLanguage/Parsoid|Parsoid]] có thể xử lý sai các thẻ nowiki được lồng nhau, khiến nội dung bị mất và hiển thị nội dung không mong muốn nay đã được giải quyết. [https://phabricator.wikimedia.org/T435116]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bảo quản viên giao diện có thể cấu hình các tiện ích từ [[MediaWiki:Gadgets-definition]]. Định dạng của định nghĩa tiện ích đã được cập nhật và không còn yêu cầu tùy chọn <bdi lang="zxx" dir="ltr"><code><nowiki>ResourceLoader</nowiki></code></bdi> nữa, vì các tiện ích luôn được tải thông qua <bdi lang="zxx" dir="ltr"><code><nowiki>ResourceLoader</nowiki></code></bdi>. Điều này giúp đơn giản hóa cấu hình tiện ích bằng cách loại bỏ một tùy chọn không còn cần thiết nữa, giúp việc định nghĩa tiện ích trở nên dễ dàng hơn cho các bảo quản viên. [https://phabricator.wikimedia.org/T298199]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.19|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/37|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W37"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:44, ngày 7 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31008437 -->
== Bản tin Kỹ thuật: Tuần 38-2026 ==
<section begin="technews-2026-W38"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/38|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Nhóm Future Audiences đã mở một [[en:Special:MyLanguage/Wikipedia:Village pump (proposals)#New proposed experiment to let readers know about “Google preferred sources”|cuộc thảo luận trên Wikipedia tiếng Anh]] về một đề xuất thử nghiệm mới nhằm hiển thị thông báo tạm thời về tính năng mới [https://blog.google/products-and-platforms/products/search/original-high-quality-content-search/ Nguồn Ưu tiên của Google] dành cho độc giả Wikipedia truy cập từ Google. Thử nghiệm này nhằm kiểm tra xem liệu thông báo này có giúp thu hút khách truy cập quay lại Wikipedia thường xuyên hơn hay không. Tính năng Nguồn Ưu tiên cho phép người dùng chọn các trang web mà họ tin tưởng nhằm giúp Google có thể hiển thị nội dung từ các nguồn này một cách nổi bật hơn trong trải nghiệm trên Tìm kiếm và AI. Chúng tôi mong muốn triển khai thử nghiệm này trên các ngôn ngữ khác mà Google hỗ trợ và rất hoan nghênh sự hỗ trợ trong việc khởi xướng thảo luận trên các dự án wiki khác. Nếu bạn quan tâm, vui lòng liên hệ nhóm Future Audiences trên [[m:Special:MyLanguage/Future Audiences/Preferred sources|trang thảo luận]].
'''Cập nhật cho biên tập viên'''
* Nền tảng trò chuyện Discord ra mắt cơ chế (framework) tự thiết lập mới nhằm cho phép các trang web có thể sử dụng để tùy chỉnh cách hiển thị những liên kết đó khi được chia sẻ trên Discord. Nhóm Future Audiences dự định sẽ bắt đầu sử dụng cơ chế này để cải thiện cách hiển thị các liên kết Wikipedia khi được chia sẻ trên Discord, nhằm ghi công sửa đổi của các tình nguyện viên một cách tốt hơn. Hình thức và cách thức hoạt động của liên kết sẽ không thay đổi trong giai đoạn đầu của dự án này vì chúng tôi muốn thu thập một số dữ liệu cơ sở trước để đánh giá tác động của những thay đổi này trong tương lai. Dù vậy, nếu các thành viên cộng đồng đang hoạt động trên Discord có phát hiện ra bất kỳ vấn đề nào, họ có thể liên hệ qua [[phab:tag/future-audiences/|Phabricator]] hoặc [[m:Special:MyLanguage/Future Audiences|Metawiki]].
* Nhóm Phát triển Độc giả sẽ tiến hành một thử nghiệm xem liệu [[mw:Special:MyLanguage/Readers/Reader_Growth/Compact Lead|việc rút gọn phần mở đầu của bài viết]] kèm theo nút "đọc thêm" có giúp cải thiện việc giữ chân người đọc hay không. Thử nghiệm này sẽ bắt đầu vào ngày 17 tháng 9 trên các phiên bản Wikipedia tiếng Ả Rập, tiếng Tây Ban Nha, tiếng Pháp, tiếng Indonesia, tiếng Ý, tiếng Nhật, tiếng Bồ Đào Nha, tiếng Việt và tiếng Trung và sẽ kéo dài trong bốn tuần.
* Tất cả các wiki sẽ [[m:Special:MyLanguage/Tech/Server switch|chuyển sang chế độ chỉ đọc trong vòng vài phút]] vào ngày 23 tháng 9. Kế hoạch được lên lịch lúc 14:00 UTC. Thông tin chi tiết sẽ được đăng tải lên Bản tin Kỹ thuật và cũng sẽ được đăng lên từng wiki riêng lẻ trong tuần tới. [https://phabricator.wikimedia.org/T433363]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến [https://wikistats.wmcloud.org/ Wikistats] dành cho Wikipedia trả về lỗi HTTP 500 và không thể truy cập được, nay đã được giải quyết. [https://phabricator.wikimedia.org/T435959]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Các nhà phát triển đang bảo trì công cụ truy vấn các bảng liên kết của Wikimedia Commons cần cập nhật mã nguồn của mình để kết nối với cụm cơ sở dữ liệu (database cluster) x4 mới. Các bảng liên kết đã được chuyển từ cụm s4 sang x4, và sẽ không còn nhận được cập nhật trên cụm s4 nữa. Các bảng trang và đổi hướng vẫn sẽ tiếp tục khả dụng trên cả hai cụm này. Một bản sao dữ liệu wiki (wiki replica) cho cụm x4 sẽ được thiết lập sau này. Thay đổi này được thực hiện do cụm s4 đã trở nên quá lớn gây ảnh hưởng đến hiệu quả vận hành của bảng liên kết. Bạn có thể [[wikitech:Special:MyLanguage/News/2026 Commons links tables database split|đọc thêm]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.20|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/38|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W38"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:31, ngày 14 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31039826 -->
== Chuyển đổi máy chủ - Wiki của bạn sẽ sớm chuyển sang chế độ chỉ đọc trong một khoảng thời gian ngắn ==
<section begin="server-switch"/><div class="plainlinks">
[[:m:Special:MyLanguage/Tech/Server switch|Đọc thông báo này bằng ngôn ngữ khác]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-Tech%2FServer+switch&language=&action=page&filter= {{int:please-translate}}]
[[foundation:|Quỹ Wikimedia]] sẽ chuyển đổi lưu lượng qua lại giữa các trung tâm dữ liệu. Điều này sẽ giúp đảm bảo rằng Wikipedia và các wiki khác của Wikimedia vẫn có thể duy trì trực tuyến ngay cả sau tình huống thiên tai.
Mọi lưu lượng sẽ chuyển đổi vào ngày '''{{#time:j xg|2026-09-23|vi}}'''. Việc chuyển đổi này sẽ bắt đầu vào lúc '''[https://zonestamp.toolforge.org/{{#time:U|2026-09-23T14:00|en}} {{#time:H:i e|2026-09-23T14:00}}]'''.
Dù vậy, vì một số hạn chế của phần mềm [[mw:Special:MyLanguage/Manual:What is MediaWiki?|MediaWiki]], mọi sửa đổi đều phải bị ngưng lại khi việc chuyển đổi được thực hiện. Chúng tôi chân thành xin lỗi vì sự gián đoạn này, và chúng tôi đang tìm cách giảm thiểu những tình huống như vậy trong tương lai.
Một biểu ngữ sẽ được hiển thị trên tất cả các wiki 30 phút trước khi quá trình này diễn ra. Biểu ngữ sẽ tiếp tục được hiển thị cho tới khi kết thúc quá trình này.
Bạn có thể đóng góp bằng cách [https://meta.wikimedia.org/w/index.php?title=Special%3ATranslate&group=Centralnotice-tgroup-read_only_banner&task=view&language=&filter=&action=translate biên dịch và hiệu đính] dòng biểu ngữ này.
'''Bạn sẽ có thể đọc, nhưng không thể sửa đổi, tất cả wiki trong một khoảng thời gian ngắn.'''
* Bạn sẽ không thể sửa đổi trong vòng tối đa một giờ vào {{#time:l j xg Y|2026-09-23|vi}}.
* Nếu bạn cố gắng sửa đổi hay lưu trang trong khoảng thời gian này, bạn sẽ nhìn thấy một thông báo lỗi. Chúng tôi hy vọng sẽ không có sửa đổi nào bị mất trong khoảng thời gian đó, nhưng chúng tôi không thể đảm bảo được điều đó. Nếu bạn nhìn thấy thông báo lỗi, vui lòng chờ đợi cho đến khi mọi thứ trở lại bình thường. Sau đó bạn sẽ có thể lưu lại sửa đổi của mình. Tuy nhiên, chúng tôi khuyên bạn trước hết nên tạo một bản sao những thay đổi của bạn, nhằm mục đích đề phòng.
''Những ảnh hưởng khác'':
* Tác vụ xử lý nền sẽ bị chậm hơn và một số có thể bị ngừng hẳn. Các liên kết đỏ có thể sẽ không được cập nhật nhanh chóng như thường lệ. Nếu bạn tạo một bài viết đã được liên kết ở một nơi khác, liên kết đó vẫn sẽ có màu đỏ lâu hơn bình thường. Một số đoạn mã tốn nhiều thời gian chạy sẽ phải dừng lại.
* Chúng tôi hy vọng việc triển khai mã nguồn vẫn sẽ diễn ra như bất kỳ tuần nào khác. Tuy vậy, một vài trường hợp đóng băng mã nguồn có thể xảy ra nếu quá trình yêu cầu chúng sau đó.
* [[mw:Special:MyLanguage/GitLab|GitLab]] sẽ không khả dụng trong khoảng 90 phút.
Dự án này có thể bị hoãn lại nếu cần thiết. Bạn có thể [[wikitech:Switch_Datacenter|đọc lịch trình tại wikitech.wikimedia.org]]. Bất kỳ thay đổi nào đều sẽ được thông báo trong lịch trình này.
'''Xin hãy chia sẻ thông tin này với cộng đồng của bạn.'''</div><section end="server-switch"/>
[[m:user:Trizek (WMF)|Trizek (WMF)]] 12:58, ngày 15 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Trizek (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=30513874 -->
== Your feedback wanted: Remove ''(Language link added:) and similar'' edits from Special:RecentChanges ==
''(Apologies for posting in English. You can help by translating it)''
Hello, I’m Danny from [[:en:w:Wikimedia_Deutschland|Wikimedia Deutschland’s]] [[m:Wikidata_For_Wikimedia_Projects|Wikidata For Wikimedia Projects]] team.<br/>
We have been investigating and examining how Wikidata’s use in the [[Special:RecentChanges]] and [[Special:Watchlist]] pages can be made to be more useful, or less ‘noisy’ (fewer edits that have little value to the reader).
We are currently exploring to make a change in the volume and the type of Wikidata edits that appear in these pages, and '''we need your feedback''' to help us ensure this is a positive change for the Wikis and won’t disrupt your workflows.<br/>
Language links are also known as sitelinks or interlanguage links and describe when a Wikidata item is connected to a Wiki, adding it to the language dropdown tool for other connected Wikis.
[[File:Types of Lang Link changes.png|x350px|frame|A variety of "Language Link" edits as seen in the Recent Changes feed]]
The request for feedback is whether you support the removal of these language link edits from the Recent Changes and Watchlist feed, or would you oppose such a change and if so, why?
Please share you thoughts on the dedicated '''[[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|metawiki Talk page]]'''.
Further information about this change: [[m:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|m:Wikidata_For_Wikimedia_Projects/Hide_Language_Link_edits]]
Thank you for any participation or feedback you give, -- [[m:User:Danny_Benjafield_(WMDE)|User:Danny Benjafield (WMDE)]] 12:48, ngày 25 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Danny Benjafield (WMDE)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_test_list&oldid=31081007 -->
== Bản tin Kỹ thuật: Tuần 39-2026 ==
<section begin="technews-2026-W39"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/39|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[m:Special:MyLanguage/Tech/Server switch|Tất cả các wiki sẽ chuyển sang chế độ chỉ đọc]] trong vòng vài phút vào thứ 4, ngày 23 tháng 9 năm 2026 lúc [https://zonestamp.toolforge.org/1790172000 14:00 UTC]. Điều này là nhằm phục vụ cho việc thử nghiệm chuyển đổi máy chủ cơ sở dữ liệu dự phòng, [[wikitech:Special:MyLanguage/Deployments/Yearly calendar|diễn ra hai lần trong một năm]]. Trong quá trình chuyển đổi này, toàn bộ lưu lượng trên các trang web của Wikimedia được chuyển từ trung tâm dữ liệu chính sang trung tâm dữ liệu dự phòng nhằm kiểm tra tính khả dụng và ngăn ngừa việc gián đoạn dịch vụ ngay cả trong những trường hợp khẩn cấp. [https://phabricator.wikimedia.org/T433363]
'''Cập nhật cho biên tập viên'''
* Nhóm Tăng trưởng đã thử nghiệm một thông báo sau khi sửa đổi mới được thiết kế nhằm [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#4. Encourage Temporary Accounts to Register|khuyến khích những người đang có Tài khoản Tạm thời đăng ký tài khoản vĩnh viễn]]. Thông báo mới này thay thế cho nhiều hộp thoại kèm thông báo chào mừng xuất hiện cùng lúc bằng một thông báo duy nhất nhằm nêu bật những lợi ích của việc tạo một tài khoản. Thử nghiệm này đã giúp tăng tỷ lệ tạo tài khoản vĩnh viễn từ 1.94% lên 3.66%, tương đương với mức tăng khoảng 87%. Thay đổi này giờ đây sẽ được triển khai đến tất cả các dự án wiki. [https://phabricator.wikimedia.org/T433551]
* Đối với các biên tập viên Wikipedia sử dụng [[Special:Preferences#mw-prefsection-betafeatures|Tính năng Beta "Chế độ gợi ý"]], hiện có một [[Special:Preferences#mw-input-wpvisualeditor-editcheck-experimental|tùy chọn mới trong phần tùy chọn của người dùng]] nhằm hiển thị các gợi ý và kiểm tra sửa đổi mang tính "thử nghiệm". Những loại này được liệt kê tại [[Special:EditChecks#experimental-checks|Đặc biệt:EditChecks]], và nhằm mục đích để lập trình viên thử nghiệm sớm cũng như để thu thập phản hồi từ những người dùng có kinh nghiệm. Các bảo quản viên có thể thay đổi [[mw:Special:MyLanguage/Edit check/Configuration|chi tiết cấu hình]] cho từng gợi ý như thường lệ. Bảo quản viên cũng có thể [[mw:Special:MyLanguage/Help:Suggestion mode#Experimental Suggestions|sử dụng tính năng này]] để giúp thử nghiệm những ý tưởng của cộng đồng về những quy tắc kiểm tra và gợi ý do cộng đồng tạo. Những loại tính năng thử nghiệm này sẽ có giao diện trực quan khác biệt hơn vào cuối tuần này. [[mw:Talk:VisualEditor/Suggestion Mode|Mọi phản hồi đều được hoan nghênh]].
* [[m:CEE Technical Village Pump|Phòng Thảo luận Kỹ thuật CEE]] (CEE Technical Village Pump) đã được mở để đóng vai trò như một không gian thảo luận và hợp tác kỹ thuật của các cộng đồng Wikimedia tại khu vực Trung và Đông Âu.
* Một công cụ mới, [[mw:Special:MyLanguage/Language Onboarding and Development/Starter kit|Bộ Công cụ Khởi đầu]] (Starter Kit), nay đã có sẵn dành cho các cộng đồng Wikipedia ngôn ngữ mới và quy mô nhỏ. Công cụ này tập hợp những nhiệm vụ có hướng dẫn, công cụ và tài nguyên nhằm giúp cộng đồng có thể bắt đầu, theo dõi tiến độ, cũng như hợp tác cùng với cộng đồng Wikimedia rộng lớn hơn. Bộ Công cụ Khởi đầu được vận hành trên nền tảng Wikimedia Toolforge và được thiết kế dành cho các dự án Wikipedia có ít hơn 50.000 bài viết. Tìm hiểu thêm cách Bộ Công cụ Khởi đầu hoạt động và cách cộng đồng đang sử dụng công cụ này trong [[diffblog:2026/09/18/introducing-starter-kit-for-new-and-small-language-wikipedias/|bài viết này trên blog Diff]].
* Nhóm Phát triển Người đọc sẽ mở một đợt tái thử nghiệm của [[mw:Special:MyLanguage/Readers/Reader Growth/Image Browsing|thử nghiệm băng chuyền hình ảnh]]. Đợt tái thử nghiệm này sẽ sử dụng ba phiên bản thiết kế mới, được cập nhật dựa trên phản hồi của cộng đồng. Nhóm sẽ đánh giá kết quả và cùng cộng đồng quyết định xem có tiếp tục triển khai tính năng này hay không. Thử nghiệm này sẽ bắt đầu vào tuần ngày 28 tháng 9 và sẽ được thực hiện trên Wikipedia tiếng Ả Rập, tiếng Bengal, tiếng Trung, tiếng Séc, tiếng Anh, tiếng Ba Tư, tiếng Pháp, tiếng Đức, tiếng Indonesia, tiếng Nhật, tiếng Ba Lan, tiếng Bồ Đào Nha, tiếng Tây Ban Nha, tiếng Thụy Điển và tiếng Việt.
* Sau khi triển khai thành công trên Wikipedia tiếng Ả Rập, tiếng Bengal, tiếng Trung, tiếng Séc, tiếng Anh, tiếng Pháp, tiếng Indonesia và tiếng Việt, [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|tính năng Danh sách Đọc]] do nhóm Trải nghiệm Người đọc phát triển sẽ có mặt cho tất cả người dùng đã đăng nhập trên tất cả các dự án Wikipedia kể từ ngày 28 tháng 9.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho đoạn mã trạng thái cố vấn liên tục cập nhật trạng thái của cố vấn ngay cả khi không có gì thay đổi, tạo ra những mục không cần thiết trên Thay đổi Gần đây, nay đã được giải quyết. [https://phabricator.wikimedia.org/T436659]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* API truy vấn danh sách <bdi lang="zxx" dir="ltr"><code><nowiki>abusefilters</nowiki></code></bdi>, vốn được sử dụng để lấy thông tin chi tiết về các bộ lọc sai phạm đang hoạt động hoặc đã tắt được thiết lập trên wiki, đã được cập nhật để hỗ trợ tham số cấu hình <bdi lang="zxx" dir="ltr"><code><nowiki>formatversion=2</nowiki></code></bdi>, điều này dẫn đến những thay đổi gây ra lỗi (breaking changes) đến phản hồi của API. Tất cả người dùng đang bảo trì các đoạn mã người dùng hoặc đoạn mã khác cần kiểm tra xem họ có đang sử dụng API truy vấn danh sách <bdi lang="zxx" dir="ltr"><code><nowiki>abusefilters</nowiki></code></bdi> hay không, đồng thời điều chỉnh để giải quyết những thay đổi gây ra lỗi này. [https://phabricator.wikimedia.org/T435828]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.21|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/39|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W39"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 11:56, ngày 27 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31085309 -->
== Bản tin Kỹ thuật: Tuần 40-2026 ==
<section begin="technews-2026-W40"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/40|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Người dùng sử dụng giao diện mặc định trên trang web dành cho máy tính và thiết bị di động (lần lượt là Vector 2022 và Minerva) nay sẽ được thông báo nếu gợi ý tìm kiếm được hiển thị khi họ nhập vào hộp Tìm kiếm đến từ các trang đổi hướng. Trước đây, người dùng có thể bị bối rối khi gợi ý kết quả tìm kiếm hàng đầu không khớp chính xác với những gì họ nhập vào. Thông báo trang đổi hướng mới này giúp làm rõ rằng những gợi ý này không phải ngẫu nhiên mà có liên quan đến nội dung tìm kiếm. Các trang được gợi ý có thể là các trang đổi hướng đến những bài viết đích phù hợp nhất với nội dung được tìm kiếm. [https://phabricator.wikimedia.org/T303013]
* Người dùng Wikipedia chưa đăng nhập trên giao diện web di dộng sẽ bắt đầu nhìn thấy nút đánh dấu (bookmark) để lưu các bài viết vào [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|danh sách đọc]] của họ thay vì nút Sao theo dõi (Watchstar) hiện tại. Khi được nhấn vào, nút đánh dấu sẽ yêu cầu người dùng đăng nhập hoặc tạo tài khoản để lưu bài viết và đọc lại sau. Một thử nghiệm trước đó cho thấy biểu tượng đánh dấu có khả năng khuyến khích người dùng chưa đăng nhập tạo tài khoản cao gấp bốn lần so với nút Sao theo dõi. Thay đổi này là một phần trong nỗ lực nhằm khuyến khích nhiều độc giả trở thành chủ tài khoản hơn và sử dụng các tính năng giúp họ lưu lại và quay lại để đọc nội dung. [https://phabricator.wikimedia.org/T438769]
* Một thử nghiệm sẽ bắt đầu vào ngày 29 tháng 9 trên các phiên bản Wikipedia tiếng Tây Ban Nha, tiếng Ả Rập, tiếng Anh và tiếng Pháp nhằm đơn giản hóa trải nghiệm mà người dùng gặp ngay sau khi tạo tài khoản. Thử nghiệm này sẽ khám phá xem việc loại bỏ trở ngại từ Khảo sát Chào mừng người mới hiện tại có giúp người dùng mới dễ dàng hiểu được rằng cần phải làm những gì tiếp theo hơn hay không. Cuộc thử nghiệm này sẽ kéo dài đến hết tháng 10. [https://phabricator.wikimedia.org/T430058]
* [[m:Special:MyLanguage/Product and Technology Advisory Council|Hội đồng Cố vấn về Sản phẩm và Công nghệ]] đã kêu gọi cộng đồng đề xuất các chủ đề mà hội đồng nên xem xét và thảo luận với Quỹ Wikimedia. Các biên tập viên và tình nguyện viên kỹ thuật được mời đóng góp chủ đề tại [[m:Talk:Product and Technology Advisory Council|trang thảo luận của hội đồng]].
* Cuối tuần này, các cộng đồng sẽ có thể cấu hình tính năng [[mw:Special:MyLanguage/Help:Edit check|Kiểm tra và Gợi ý Sửa đổi]] để chúng được [[mw:Special:MyLanguage/Edit check/Configuration#extraNamespaces|hiển thị trong các không gian tên bổ sung]], chẳng hạn như không gian tên <bdi lang="zxx" dir="ltr"><code><nowiki>Draft:</nowiki></code></bdi>. [[mw:Talk:VisualEditor/Suggestion Mode|Mọi ý kiến đóng góp đều được hoan nghênh]].
* Một lỗi trong [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] đang khiến cho trang không thể tải được đối với người dùng có những thay đổi chưa được xem trên Wikimedia Commons. Các lập trình viên đang tiến hành khắc phục lỗi này. Trong thời gian đó, những người dùng bị ảnh hưởng có thể làm theo các giải pháp thay thế được nêu trong mục trợ giúp [[mw:Special:MyLanguage/Extension:GlobalWatchlist#GlobalWatchlist temporarily broken for users with Wikimedia Commons|có liên quan]].
* Các từ ma thuật mới <bdi lang="zxx" dir="ltr"><code><nowiki>{{CATEGORYSORT:TIMESTAMP}}</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>{{CATEGORYSORT:RTIMESTAMP}}</nowiki></code></bdi> hiện đã có sẵn để sử dụng. Chúng có khả năng thay đổi cách sắp xếp mặc định của các thể loại dựa trên dấu thời gian xếp thể loại. [https://phabricator.wikimedia.org/T433768]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:20}} {{PLURAL:20|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, sự cố không thể truy cập được [https://wikistats.wmcloud.org/ Wikistats] cho các trang Wikipedia nay đã được giải quyết. [https://phabricator.wikimedia.org/T435959]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Việc chuyển đổi trung tâm dữ liệu, vốn dự kiến được diễn ra vào ngày 23 tháng 9, đã bị hoãn lại. [[diffblog:2025/03/12/hear-that-the-wikis-go-silent-twice-a-year/|Cuộc diễn tập Equinox]] đã bộc lộ các vấn đề về năng lực hệ thống, khiến việc chuyển đổi toàn bộ dịch vụ sang trung tâm dữ liệu khác không thể thực hiện được. Quy trình này đã được tạm dừng để ưu tiên điều tra vấn đề nêu trên, nhằm đảm bảo rằng chúng tôi vẫn có thể phục vụ người dùng một cách ổn định và tin cậy. Một cuộc diễn tập mới sẽ được lên kế hoạch sau. Trong thời gian này, mọi lưu lượng truy cập và hoạt động sửa đổi vẫn sẽ diễn ra như bình thường.
* Vào ngày 23 tháng 9, một sự cố mất điện đã ảnh hưởng đến tất cả các dự án wiki trong một khoảng thời gian ngắn, gây ra vấn đề gián đoạn cho cả chế độ đọc và sửa đổi. Sự cố này cũng ảnh hưởng đến Gerrit. Điều này không liên quan gì đến việc hoãn chuyển đổi trung tâm dữ liệu. [https://www.wikimediastatus.net/incidents/9fm19t8qykk8]
* [[mw:Special:MyLanguage/Help:Extension:Produnto|Produnto]] đã được triển khai trên mediawiki.org và [[phab:T421436|một số wiki sử dụng ngôn ngữ Ấn Độ]]. Chúng tôi mong nhận được phản hồi của bạn về sản phẩm thử nghiệm này. Produnto cho phép người dùng sử dụng các mô đun Lua được lưu trữ trên [[gitlab:repos/lua|GitLab của Wikimedia]]. Nó giúp đơn giản hóa việc chia sẻ mã nguồn Lua giữa các wiki. Thay vì phải sao chép từng mô đun Lua riêng lẻ từ wiki này sang wiki khác, người dùng có thể dễ dàng chia sẻ các gói mã nguồn trên tất cả các wiki.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.22|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* [[m:Event:Cross-wiki Code Collaboration Workshop|Hội thảo cộng tác mã nguồn giữa các wiki]] sẽ được tổ chức trực tuyến vào ngày 2 tháng 10 lúc 12:30 UTC, quy tụ những cộng tác viên kỹ thuật Nam Á nhằm tìm hiểu về Produnto và bắt đầu thử nghiệm nó trên các phiên bản Wikipedia tiếng Hindi, tiếng Punjabi, tiếng Odia, tiếng Telugu và tiếng Malayalam. Produnto là một trình quản lý gói để triển khai các mô đun Lua được lưu trữ trên GitLab đến các wiki của Wikimedia và gần đây đã được triển khai trên một số wiki thí điểm.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/40|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W40"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 10:49, ngày 28 tháng 9 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=31092225 -->
== Wikidata Sitelink changes in Recent Changes and Watchlist ==
''(Apologies for cross-posting in English, translating it will help spread the message)''
Editors on group 1 wikis, including Wikiquote, Wikibooks, Wikiversity, Wikivoyage, and Wikisource, will no longer see notifications on [[Special:RecentChanges|Recent Changes]] and [[Special:Watchlist|Watchlist]] when a link to ''another'' language version of a page is added, removed, or changed in its Wikidata item. This change will begin on '''October 5 at 07:00 UTC''' as a two-week trial to reduce high-volume, low-value notifications and make higher-value changes easier to identify. Editors who rely on these notifications should be aware of the change and can share feedback or concerns on the [[m:Wikidata For Wikimedia Projects/Clearer Wikidata Edit Summaries/Hide Language Link edits|project]] or [[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|talk page]].<br/>Please reach out if you have any questions, thank you! -- [[User:Danny_Benjafield_(WMDE)|Danny Benjafield (WMDE)]] ([[User_talk:Danny_Benjafield_(WMDE)|talk]]) sent via [[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]]) 12:43, ngày 1 tháng 10 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=31106967 -->
== Bản tin Kỹ thuật: Tuần 41-2026 ==
<section begin="technews-2026-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/2026/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'''
* Quy trình cho [[m:Special:MyLanguage/Community Wishlist/Community Wishlist 2027#Updated Community Wishlist Process 2027/2028|Danh sách mong muốn của cộng đồng]] năm nay [[m:Special:MyLanguage/Community Wishlist/Community Wishlist 2027#Updated Community Wishlist Process 2027/2028|đã được công bố]], có tính đến phản hồi từ cộng đồng. Quy trình gửi mong muốn sẽ [[m:Special:MyLanguage/Community Wishlist/FAQ#What is the deadline for submitting wishes?|kết thúc vào ngày 8 tháng 11]]. Năm nay, [[m:Special:MyLanguage/Community Wishlist/Community Wishlist 2027/Working group|một nhóm công tác (mở cho tình nguyện viên tham gia)]] gồm các thành viên cộng đồng am hiểu về khía cạnh kỹ thuật của các wiki cùng với nhân viên của Wikimedia Foundation sẽ phụ trách [[m:Special:MyLanguage/Community Wishlist/FAQ#What is triage?|quá trình phân loại]]. Dự kiến quá trình phân loại sẽ hoàn tất vào cuối tháng 11. Việc bỏ phiếu cho các mong muốn sẽ bắt đầu vào tháng 1.
'''Cập nhật cho biên tập viên'''
* Các biên tập viên sử dụng [[mw:Special:MyLanguage/VisualEditor|trình soạn thảo trực quan]] nay sẽ nhìn thấy cảnh báo khi họ dán đoạn văn bản có khả năng đã được sao chép từ nội dung ban đầu được tạo bởi một trong năm chatbot AI tạo sinh bên ngoài vào Wikipedia. Tính năng này được gọi là [[mw:Special:MyLanguage/Edit check/LLM Paste Check|Kiểm tra Dán nội dung từ LLM]]. Đây là một dạng [[mw:Special:MyLanguage/Edit check|Kiểm tra Sửa đổi]] mà cộng đồng có thể tùy chỉnh được. Hệ thống kiểm tra này tìm kiếm các mã đánh dấu (marker) trong đoạn mã HTML được sao chép và không sử dụng phương pháp phát hiện hình mờ (watermark) trong nội dung. Các sửa đổi cũng sẽ [[mw:Special:MyLanguage/Edit check/LLM Paste Check#Edit tags|được gắn thẻ]] để các tuần tra viên có thể xem xét kỹ lưỡng hơn. Tính năng này giúp người mới đóng góp nội dung tuân thủ các chính sách của Wikipedia, đồng thời giúp các biên tập viên có kinh nghiệm dễ dàng nhận diện những sửa đổi có vấn đề. Các cộng đồng có quy định riêng về việc sử dụng LLM có thể [[mw:Special:MyLanguage/Edit check/LLM Paste Check#Configuration|điều chỉnh câu từ và quy định được liên kết]]. Nhóm phát triển [[listarchive:list/translators-l@lists.wikimedia.org/message/EVHKWJ4IERZELMPIWNH3XUVUSQV5KOO4/|chân thành xin lỗi]] vì đã triển khai tính năng này mà không dành thời gian chờ cho việc dịch thuật.
* Các biên tập viên nay có thể dễ dàng [[mw:Special:MyLanguage/Wikimedia Apps/Team/Future of Editing on the Mobile Apps|truy cập trình soạn thảo trực quan bản web trực tiếp từ ứng dụng dành cho iOS và Android]]. Khi mở trình soạn thảo, người dùng sẽ được lựa chọn giữa chế độ soạn thảo trực quan và chế độ soạn thảo mã nguồn. Nếu họ chọn chế độ soạn thảo trực quan, họ sẽ được đưa tới cửa sổ giao diện web di động trong trình duyệt trên điện thoại của họ. Sau khi hoàn thành sửa đổi của mình, một biểu ngữ sẽ xuất hiện để cung cấp cho họ lựa chọn trở về ứng dụng. Điều này cho phép độc giả đóng góp nội dung một cách nhanh chóng trong khi đang đọc một cách thoải mái.
* Người dùng ứng dụng Wikipedia dành cho Android và iOS nay sẽ nhìn thấy thông báo một lần mời tạo tài khoản sau khi họ đã sử dụng ứng dụng được hai tuần liên tiếp. Thông báo này giải thích những lợi ích của việc sở hữu một tài khoản. Điều này nhằm mục đích giúp nhiều đọc giả thông thường trở thành những người dùng đã đăng nhập quay lại ứng dụng thường xuyên hơn. [https://phabricator.wikimedia.org/T434847]
* Các biên tập viên trên [[wmnoc:conf/dblists/group1.dblist|các wiki thuộc group1]], bao gồm Wikiquote, Wikibooks, Wikiversity, Wikivoyage, và Wikisource, sẽ không còn nhìn thấy thông báo trên [[mw:Special:MyLanguage/Help:Recent changes|Thay đổi Gần đây]] và [[mw:Special:MyLanguage/Help: Watching pages|Danh sách Theo dõi]] khi một liên kết đến phiên bản ngôn ngữ khác của một trang được thêm, xóa hoặc thay đổi trong khoản mục Wikidata của nó. Thay đổi này sẽ bắt đầu vào ngày 5 tháng 10 lúc 07:00 UTC dưới dạng thử nghiệm kéo dài hai tuần nhằm giảm bớt các thông báo xuất hiện với số lượng lớn nhưng ít giá trị và giúp những thay đổi quan trọng có thể được nhận diện một cách dễ dàng hơn. Các biên tập viên thường dựa vào những thông báo này có thể đọc thêm trên [[m:Wikidata For Wikimedia Projects/Clearer Wikidata Edit Summaries/Hide Language Link edits|trang dự án]] và chia sẻ ý kiến hoặc thắc mắc trên [[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|trang thảo luận]]. [https://phabricator.wikimedia.org/T439415]
* [[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 vấn đề khiến cho các cố vấn tự rút khỏi chương trình cố vấn vẫn có thể có những người được cố vấn gán vào họ và tiếp nhận các câu hỏi, nay đã được giải quyết. Những người được cố vấn sẽ được gán lại khi một cố vấn rời khỏi chương trình. [https://phabricator.wikimedia.org/T418194]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Wikimedia Brasil đã xuất bản [[m:Special:MyLanguage/Wikimedia Brasil/Arcabouço de Boas Práticas de Desenvolvimento|Khung Thực tiễn Tốt nhất về Phát triển]] (ABPD). Đây là tài liệu hướng dẫn dành cho nhân viên, nhà thầu và tình nguyện viên tham gia xây dựng các công cụ và dự án kỹ thuật. Tài liệu này bao gồm các nội dung về vòng đời dự án, bảo mật, khả năng tiếp cận, bảo vệ dữ liệu cá nhân và sử dụng AI có trách nhiệm, đồng thời giải thích cách những hướng dẫn chung của phong trào được điều chỉnh sao cho phù hợp với bối cảnh cục bộ. Họ khuyến khích các tổ chức thành viên khác sử dụng lại và tùy chỉnh tài liệu này. Đọc thêm tại [[wmfblog:2026/09/26/wikimedia-brasils-development-best-practices-framework-technical-sustainability-as-an-organizational-responsibility|bài đăng trên Diff]].
* Một URL cơ sở chuẩn (canonical base) mới dành cho các API của Wikimedia sẽ sớm được giới thiệu. Đường dẫn chuẩn mới này theo mẫu dạng <bdi lang="zxx" dir="ltr"><code><nowiki>{projectName}/api/</nowiki></code></bdi> và sẽ đóng vai trò là đường dẫn thay thế cho các API REST hiện tại (ví dụ: <bdi lang="zxx" dir="ltr"><code><nowiki>{projectName}/w/rest.php/</nowiki></code></bdi>). Cả hai phiên bản đều có thể gọi được đối với tất cả các API hiện có, nhưng cấu trúc mới sẽ là lựa chọn ưu tiên cho các mô đun API được tạo mới. Thay đổi này sẽ không gây gián đoạn cho hầu hết người dùng. Những đường dẫn hiện tại vẫn sẽ có sẵn cho mọi yêu cầu đến điểm cuối (endpoint) hiện có. Tuy nhiên, một số điểm cuối có thể trả về các URL tuân theo mẫu mới trong phần nội dung phản hồi (response body). Các thay đổi sẽ có sẵn trên wiki thử nghiệm trước, và việc triển khai dự kiến sẽ được thực hiện trên toàn bộ các dự án wiki vào cuối tháng 10. [https://phabricator.wikimedia.org/T433535]
* [[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.23|MediaWiki]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/41|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W41"/>
18:52, ngày 5 tháng 10 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=31098825 -->
== Bản tin Kỹ thuật: Tuần 42-2026 ==
<section begin="technews-2026-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/2026/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'''
* Kể từ ngày 13 tháng 10, các wiki có thể thay đổi quy tắc (pattern) mặc định cho [[: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]] (hiện tại là <syntaxhighlight lang="wikitext" inline><ref name=":1" /></syntaxhighlight>). Họ sẽ có thể sử dụng tên nguồn tham khảo dễ hiểu và dựa trên nội dung mà sẽ giúp ích nhiều hơn cho các cộng tác viên sử dụng trình soạn thảo mã nguồn (v.d. <syntaxhighlight lang="wikitext" inline><ref name="Miller2026-1" /></syntaxhighlight>). Các quy tắc đặt tên nguồn tham khảo cho Trình Soạn thảo trực quan có thể được thiết lập thông qua các thông điệp hệ thống MediaWiki, JSON, bản mẫu và mô đun ([[:mw:Special:MyLanguage/Help:Cite/VisualEditor reference names|thông tin thêm]]). Bảo quản viên có thể kích hoạt những thay đổi này thông qua [[Special:CommunityConfiguration/Cite-VisualEditor-Autonames|cấu hình cộng đồng]]. Đây là một [[:m:Special:MyLanguage/Community_Wishlist/W17|mong muốn của cộng đồng]] được triển khai bởi [[:m:Special:MyLanguage/WMDE Technical Wishes|WMDE Technical Wishes]]. [https://phabricator.wikimedia.org/T436255]
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Chú thích phụ]] là một tính năng MediaWiki mới cho phép các biên tập viên tái sử dụng nguồn tham khảo với thông tin khác nhau. Công cụ sẽ được triển khai tới Wikipedia tiếng Anh vào ngày 14 tháng 10 và đến các dự án wiki còn lại của Quỹ Wikimedia vào cuối tháng 10 (khoảng ngày 21 tháng 10). Trang [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#deployment|FAQ]] liệt kê các 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. Đây là một [[:m:WMDE Technical Wishes/Sub-referencing/History|mong muốn lâu nay của cộng đồng]] được triển khai bởi [[:m:Special:MyLanguage/WMDE Technical Wishes|WMDE Technical Wishes]]. [https://phabricator.wikimedia.org/T440243][https://phabricator.wikimedia.org/T440304]
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Moderator Tools|Công cụ Kiểm tra]] sẽ loại bỏ chế độ xem dạng danh sách của Danh sách Theo dõi và chuyển mặc định tất cả người dùng sang chế độ xem dạng nhật ký thay đổi. Trước đây, có hai cách mà Danh sách Theo dõi được hiển thị cho người dùng phiên bản web trên di động: chế độ xem dạng danh sách, nơi mà các biên tập viên có thể xem các bài viết đã theo dõi dưới dạng danh sách, và chế độ xem dạng nhật ký thay đổi, nơi mà các biên tập viên có thể xem các thay đổi được thực hiện với các bài viết đã theo dõi dưới dạng nhật ký, được kiểm soát bởi tùy chọn Điều khiển Di động Nâng cao của người dùng. Điều này đã gây ra vấn đề cho việc bảo trì mã nguồn: hai kiểu hiển thị nghĩa là cần phải quản lý hai bộ mã nguồn khác nhau. Bằng việc chuyển mặc định sang chế độ xem nhật ký theo dõi, chúng tôi sẽ đơn giản hóa được mã nguồn và giảm thiểu nguy cơ bỏ sót lỗi.
* Ứng dụng Wikipedia dành cho Android đang thử nghiệm một cách để nghe phần giới thiệu của bài viết trong mục tin “Dành cho bạn”. Một mô hình chuyển đổi văn bản thành giọng nói (text-to-speech) sẽ đọc nội dung hiện có của bài viết mà không cần viết lại hay bổ sung thêm bất kỳ nội dung nào. Chương trình thử nghiệm 30 ngày này sẽ bắt đầu trong ứng dụng Wikipedia Beta vào tuần thứ ba của tháng 9, sau đó mở rộng sang ứng dụng Wikipedia dành cho Android bản chính thức trong tháng 10 dành cho một nhóm nhỏ người dùng đủ điều kiện. Một bộ phận nhỏ người dùng ứng dụng (những người có mục tin tiếng Anh và có quan tâm đến ít nhất một chủ đề) sẽ có quyền truy cập trải nghiệm tính năng này. Thử nghiệm này là một phần trong nỗ lực rộng lớn hơn nhằm mang lại cho độc giả nhiều lựa chọn tiếp nhận nội dung và qua đó tăng cường mức độ tương tác và khả năng giữ chân người dùng. [[mw:Special:MyLanguage/Readers/Listening to Wikipedia/Phase 1|Tìm hiểu thêm]] và [[mw:Talk:Readers/Listening to Wikipedia|chia sẻ ý kiến phản hồi]].
* Tính năng [[mw:Special:MyLanguage/Help:Extension:CodeMirror|nổi bật cú pháp bằng CodeMirror]] đã được [[phab:T288161|kích hoạt]] theo mặc định cho tất cả người dùng chưa đăng nhập và mới đăng ký trên Wikipedia tiếng Anh vào ngày 14 tháng 9. Do không ghi nhận tác động tiêu cực nào, thay đổi tương tự này đang được đề xuất áp dụng toàn cục cho tất cả các dự án wiki trong vài tuần tới. Nếu bạn có thắc mắc hay ý kiến phản hồi nào, hoặc nếu wiki của bạn muốn từ chối áp dụng thay đổi này, [[mw:Special:MyLanguage/Help talk:Extension:CodeMirror#Enabling CodeMirror by default on all WMF wikis for newbies|vui lòng xem trang trợ giúp]]. [https://phabricator.wikimedia.org/T440077]
* Tính năng [[d:Wikidata:Usability_and_usefulness/Item_editing_experience/Mobile_editing_of_statements|sửa đổi lời phát biểu trên giao diện di dộng của Wikidata]] cho mọi kiểu dữ liệu sẽ chính thức ra mắt vào ngày 13 tháng 10, khi đó nó sẽ được loại bỏ khỏi danh sách [[d:Special:Preferences#mw-prefsection-betafeatures|tính năng thử nghiệm beta]] của Wikidata và có sẵn cho tất cả các biên tập viên. Người dùng có thể [[d:Wikidata_talk:Usability_and_usefulness/Item_editing_experience/Mobile_editing_of_statements|báo cáo lỗi và chia sẻ ý kiến phản hồi]].
* Tuần trước, những thay đổi về liên kết ngôn ngữ đã bị loại bỏ khỏi nguồn cấp dữ liệu của [[Special:RecentChanges|Thay đổi Gần đây]] và [[Special:Watchlist|Danh sách Theo dõi]] trên Wikivoyage, Wikisource, Wikiversity, Wikiquote và Wiktionary. Do không ghi nhận tác động tiêu cực nào, [[m:Wikidata_For_Wikimedia_Projects|Wikidata cho các Dự án Wikimedia]] có kế hoạch triển khai thay đổi này trên toàn cục cho tất cả các phiên bản Wikipedia. Việc triển khai dự kiến diễn ra vào ngày 13 tháng 10 lúc 07:00 UTC, sau thời điểm này các biên tập viên sẽ không còn nhìn thấy những thay đổi khi một liên kết đến phiên bản ngôn ngữ ''khác'' của trang được thêm, xóa hoặc thay đổi trong khoản mục Wikidata tương ứng. Những biên tập viên thường theo dõi các thông báo này có thể tìm hiểu thêm tại [[m:Wikidata For Wikimedia Projects/Clearer Wikidata Edit Summaries/Hide Language Link edits|trang dự án]] cũng như chia sẻ ý kiến hoặc yêu cầu không áp dụng thay đổi cho wiki của mình tại [[m:Talk:Wikidata_For_Wikimedia_Projects/Clearer_Wikidata_Edit_Summaries/Hide_Language_Link_edits|trang thảo luận]]. [https://phabricator.wikimedia.org/T440698]
* [[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 việc vô tình chạm vào biểu đồ trong khi cuộn trên công cụ Lượt xem trang (Pageviews) trên thiết bị di động có thể vô tình phóng to biểu đồ nay đã được khắc phục. Tính năng thu phóng bằng cách nhấn và kéo nay đã bị vô hiệu hóa trên các thiết bị có màn hình cảm ứng. [https://phabricator.wikimedia.org/T440075]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Sẽ có ba thay đổi lớn đối với các tập tin dữ liệu xuất (dump): các tập tin dữ liệu xuất nội dung kiểu cũ [https://lists.wikimedia.org/hyperkitty/list/xmldatadumps-l@lists.wikimedia.org/thread/E6D5EU4PMSTSOI2J7A46HJ3YW2W554CS/ đã ngừng hỗ trợ vào tháng 1 năm 2026] sẽ bị loại bỏ, giải pháp thay thế [https://wikitech.wikimedia.org/wiki/MediaWiki_Content_File_Exports Xuất Tập tin Nội dung MediaWiki] (MediaWiki Content File Exports) sẽ được hoãn triển khai để thiết lập một “khoảng đệm an toàn”, và chúng nay cũng có sẵn dưới dạng tập tin nén 7zip. Người dùng sẽ cần phải thay đổi URL dùng để tải xuống các tập tin dữ liệu xuất này. Để biết thêm thông tin, lộ trình thực hiện và hướng dẫn chuyển đổi, vui lòng xem trang [https://wikitech.wikimedia.org/wiki/Legacy_content_dumps_sunset Ngừng hỗ trợ tập tin dữ liệu xuất nội dung kiểu cũ].
* [[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.24|MediaWiki]]
'''Chuyên sâu'''
* Quỹ Wikimedia đã phát hiện các hoạt động trái phép từ các tác nhân của OpenAI trên các dự án Wikimedia, bao gồm việc sửa đổi các trang wiki, nỗ lực khai thác một công cụ ghi chú công khai, cũng như lưu lượng truy cập tự động với cường độ cao. [[diffblog:2026/10/05/openai-rogue-agent-activities-found-on-wikimedia-projects/|Đọc bài blog trên Diff]] để biết thêm thông tin chi tiết về hoạt động này cũng như phản hồi của Quỹ.
'''Các cuộc họp và sự kiện'''
* Hãy ghi lại lịch trình cho sự kiện Wikimedia Hackathon tiếp theo! Chúng tôi sẽ gặp gỡ nhau tại thành phố Tirana xinh đẹp của Albania để tham dự [https://www.mediawiki.org/wiki/Wikimedia%20Hackathon%202027 Wikimedia Hackathon 2027] diễn ra từ ngày 9–11 tháng 4 năm 2027. Hồ sơ đăng ký nhận học bổng và tài trợ cho nhân viên hiện đang được [https://pretix.eu/wikimedia/Hackathon-2027/ tiếp nhận qua nền tảng Pretix] và sẽ đóng vào ngày 30 tháng 10 năm 2026. Cổng đăng ký tham dự dành cho công chúng sẽ được mở vào tháng 1 năm 2027.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/42|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W42"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 07:40, ngày 13 tháng 10 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=31142468 -->
t11ngoiolivhnhnf701ordgjfphj0yd
astrosphere
0
112929
2570145
2053651
2026-10-13T09:14:18Z
Hiyuune
50834
2570145
wikitext
text/x-wiki
{{also|astrosphère}}
=={{langname|en}}==
{{wp|en:}}
==={{section|etym}}===
Từ {{affix|en|astro-|-sphere}}.
==={{section|n}}===
{{en-noun}}
# [[thể|Thể]] [[cầu]] [[dạng]] [[sao]].
==={{section|ref}}===
* {{R:FVDP|db=ev}}
330fg2akiqxin94s5yogrptlj4b7xdr
ratchet
0
114448
2569991
2315534
2026-10-12T16:06:17Z
Hiyuune
50834
/* Tiếng Anh */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2569991
wikitext
text/x-wiki
=={{langname|en}}==
==={{section|pron}}===
* {{IPA|en|/ˈɹæt͡ʃɪt/}}
* {{audio|en|en-us-ratchet.ogg|a=US}}
* {{rhymes|en|ætʃɪt|s=2}}
==={{section|v}}===
{{en-verb}}
# {{lb|en|intransitive}} [[lắp|Lắp]] [[bánh]] [[cóc]] vào.
# [[tiện|Tiện]] thành [[bánh]] [[cóc]].
==={{section|ref}}===
* {{R:FVDP|db=ev}}
etjibyw6wbald3sp34sliw9au3jcpxn
plastral
0
162741
2570137
2508446
2026-10-13T09:02:07Z
Hiyuune
50834
2570137
wikitext
text/x-wiki
=={{langname|en}}==
==={{section|adj}}===
{{en-adj|-}}
# {{lb|en|zoology}} Liên quan đến [[yếm]] [[ngực]].
===={{section|drv}}====
{{col|en|epiplastral|entoplastral|hyoplastral|mesoplastral|hypoplastral|xiphiplastral
}}
==={{section|ref}}===
* {{R:FVDP|db=ev}}
c1djecc2uzayiyu3ldvfolltepqexvk
không trung
0
193267
2570102
2261114
2026-10-13T07:25:46Z
TienMinh-mun6xnChing
57893
2570102
wikitext
text/x-wiki
=={{langname|vi}}==
==={{ĐM|etym}}===
{{vie-etym-sino|空中}}.
==={{ĐM|pron}}===
{{vie-pron}}
==={{ĐM|n}}===
{{vie-noun}}
# [[khoảng không|Khoảng không]] từ [[mặt]] [[Trái Đất]] [[trở lên]].
#: {{ux|vi|Máy bay nhào lộn trên '''không trung'''.}}
==={{ĐM|ref}}===
* {{R:FVDP}}
t19t8hwj1b8he1ktyaocif76pglnn15
пузыриться
0
201717
2570055
2556138
2026-10-13T04:01:11Z
Hiyuune
50834
2570055
wikitext
text/x-wiki
=={{langname|ru}}==
==={{section|etym}}===
{{af|ru|пузы́рь|-ить|-ся}}
==={{section|pron}}===
* {{ru-IPA|пузыри́ться|ann=y}}
* {{ru-IPA|пузы́риться|ann=y}}
==={{section|v}}===
{{ru-verb|пузыри́ться,пузы́риться|impf}}
# [[sủi]] [[bong bóng]], [[phủ]] [[bong bóng]].
# [[phồng]] [[lên]].
===={{section|forms}}====
{{ru-conj|impf|4b|пузыри́ться|or|4a|пузы́риться}}
===={{section|drv}}====
* {{l|ru|вспузыри́ться}}, {{l|ru|вспузы́риться}}
===={{section|rel}}====
* {{l|ru|пузы́рь}}, {{l|ru|пузырёк}}
==={{section|ref}}===
* {{R:FVDP|db=rv}}
6bf427qy4epeqh4t7ecuv0u0a48laf9
sloughs
0
221960
2570135
1916932
2026-10-13T08:59:35Z
Hiyuune
50834
2570135
wikitext
text/x-wiki
=={{langname|en}}==
==={{section|n}}===
{{head|en|Biến thể hình thái danh từ}}
# {{plural of|en|slough}}
==={{section|v}}===
{{head|en|Biến thể hình thái động từ}}
# {{infl of|en|slough||s-verb-form}}
rzmb015rgwrxybn75b851gduv9bg3jz
terracing
0
225823
2570090
2168197
2026-10-13T07:06:04Z
Hiyuune
50834
2570090
wikitext
text/x-wiki
=={{langname|en}}==
==={{section|v}}===
{{head|en|Biến thể hình thái động từ}}
# {{infl of|en|terrace||ing-form}}.
==={{section|ana}}===
* {{đảo chữ|en|a=aceginrrt|arrecting|cratering|recrating|retracing}}
i5pasukdxsgvzksshyfsiellw5ji1ta
Thảo luận Thành viên:TheHighFighter2
3
257807
2569895
2564532
2026-10-12T12:48:02Z
TienMinh-mun6xnChing
57893
Mục mới: /* Một ngôi sao dành cho bạn! */
2569895
wikitext
text/x-wiki
{{Lưu trữ|root=Thảo_luận_Thành_viên:TheHighFighter2}}
== [[bản mẫu]] ==
Nhờ bạn xóa mục từ này, nó là một định nghĩa sai, chỉ có "tiêu bản" (specimen) mới có định nghĩa này. Nguồn Soha bản chất là tự xuất bản nên hạn chế dùng. [[Thành viên:Plantaest|Plantaest]] ([[Thảo luận Thành viên:Plantaest|thảo luận]]) 15:08, ngày 17 tháng 9 năm 2026 (UTC)
:@[[Thành viên:Plantaest|Plantaest]] Tôi tra lại trong ''Từ điển tiếng Việt'' của Viện Ngôn ngữ học, thì thấy giảng định nghĩa gần giống với trang Soha Tra từ kia (mời xem [https://archive.org/details/1BkF0KZgSGksZHbQzxaWVqrF7VV8hvnJjcozsFGyULH2/page/37/mode/1up?q=%22b%E1%BA%A3n+m%E1%BA%ABu%22]):
:::'''bản mẫu''' d. Mẫu sinh vật chế sẵn để nghiên cứu.
:--.--[[Thành viên:TheHighFighter2|Ta như cây bách buồn sau núi...]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 05:57, ngày 18 tháng 9 năm 2026 (UTC)
:: Vậy tôi nghĩ để cũng được, nhưng nên ghi nguồn sách thay vì Soha (bản chất của nó cũng tương tự Wiktionary); dù vậy tôi vẫn thấy từ này khá kỳ lạ (làm trong ngành), thường chỉ dùng từ "tiêu bản" hoặc "mẫu"/"mẫu vật". Tìm thử <code>"bản mẫu" "sinh học"</code> trên Google toàn trùng với "tiêu bản mẫu". [[Thành viên:Plantaest|Plantaest]] ([[Thảo luận Thành viên:Plantaest|thảo luận]]) 07:59, ngày 18 tháng 9 năm 2026 (UTC)
::: Xem [[:Special:Diff/2564531]]. [[User:Hiyuune|<span style="font-family: Segoe UI Light;color:#FF69B4;letter-spacing:">Linh Huynh</span>]] ([[User talk:Hiyuune|<span style="color:#008080;">talk</span>]]) 09:09, ngày 18 tháng 9 năm 2026 (UTC)
== Một ngôi sao dành cho bạn! ==
{| style="border: 1px solid {{{border|gray}}}; background-color: {{{color|#fdffe7}}};"
|rowspan="2" style="vertical-align:middle;" | {{#ifeq:{{{2}}}|alt|[[File:Camera Barnstar Hires.png|100px]]|[[File:Barnstar-camera.png|100px]]}}
|rowspan="2" |
|style="font-size: x-large; padding: 0; vertical-align: middle; height: 1.1em;" | '''Ngôi sao Nhiếp ảnh gia'''
|-
|style="vertical-align: middle; border-top: 1px solid gray;" | Cảm ơn bác tâm đắc đã giải quyết vấn nạn tôi phạm phải mà khó thể lường trước được, trong khi đang bối rối thì sự xuất hiện của bác với tôi là điều rất đỗi vinh dự, vì chính điều đó đã giúp tôi buông bỏ đi cái tính kiêu hãnh. Nhờ đó mà tôi học được bài học sâu sắc, đồng thời rút kinh nghiệm cho bản thân tôi để mà không mắc phải cái nỗi đau [https://vi.wiktionary.org/w/index.php?title=xi%C3%AAn_b%E1%BA%A9n&oldid=2569869 thấu xương thấu thịt] tôi đã mắc như ngày hôm nay.
|} – [[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[Thảo luận Thành viên:TienMinh-mun6xnChing|thảo luận]]) 12:48, ngày 12 tháng 10 năm 2026 (UTC)
4cp44qm7moiu8z51ahe0fcipihknbjo
2569896
2569895
2026-10-12T12:48:23Z
TienMinh-mun6xnChing
57893
2569896
wikitext
text/x-wiki
{{Lưu trữ|root=Thảo_luận_Thành_viên:TheHighFighter2}}
== [[bản mẫu]] ==
Nhờ bạn xóa mục từ này, nó là một định nghĩa sai, chỉ có "tiêu bản" (specimen) mới có định nghĩa này. Nguồn Soha bản chất là tự xuất bản nên hạn chế dùng. [[Thành viên:Plantaest|Plantaest]] ([[Thảo luận Thành viên:Plantaest|thảo luận]]) 15:08, ngày 17 tháng 9 năm 2026 (UTC)
:@[[Thành viên:Plantaest|Plantaest]] Tôi tra lại trong ''Từ điển tiếng Việt'' của Viện Ngôn ngữ học, thì thấy giảng định nghĩa gần giống với trang Soha Tra từ kia (mời xem [https://archive.org/details/1BkF0KZgSGksZHbQzxaWVqrF7VV8hvnJjcozsFGyULH2/page/37/mode/1up?q=%22b%E1%BA%A3n+m%E1%BA%ABu%22]):
:::'''bản mẫu''' d. Mẫu sinh vật chế sẵn để nghiên cứu.
:--.--[[Thành viên:TheHighFighter2|Ta như cây bách buồn sau núi...]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 05:57, ngày 18 tháng 9 năm 2026 (UTC)
:: Vậy tôi nghĩ để cũng được, nhưng nên ghi nguồn sách thay vì Soha (bản chất của nó cũng tương tự Wiktionary); dù vậy tôi vẫn thấy từ này khá kỳ lạ (làm trong ngành), thường chỉ dùng từ "tiêu bản" hoặc "mẫu"/"mẫu vật". Tìm thử <code>"bản mẫu" "sinh học"</code> trên Google toàn trùng với "tiêu bản mẫu". [[Thành viên:Plantaest|Plantaest]] ([[Thảo luận Thành viên:Plantaest|thảo luận]]) 07:59, ngày 18 tháng 9 năm 2026 (UTC)
::: Xem [[:Special:Diff/2564531]]. [[User:Hiyuune|<span style="font-family: Segoe UI Light;color:#FF69B4;letter-spacing:">Linh Huynh</span>]] ([[User talk:Hiyuune|<span style="color:#008080;">talk</span>]]) 09:09, ngày 18 tháng 9 năm 2026 (UTC)
== Một ngôi sao dành cho bạn! ==
{| style="border: 1px solid {{{border|gray}}}; background-color: {{{color|#fdffe7}}};"
|rowspan="2" style="vertical-align:middle;" | {{#ifeq:{{{2}}}|alt|[[File:Camera Barnstar Hires.png|100px]]|[[File:Barnstar-camera.png|100px]]}}
|rowspan="2" |
|style="font-size: x-large; padding: 0; vertical-align: middle; height: 1.1em;" | '''Ngôi sao Nhiếp ảnh gia'''
|-
|style="vertical-align: middle; border-top: 1px solid gray;" | Cảm ơn bác tâm đắc đã giải quyết vấn nạn tôi phạm phải mà khó thể lường trước được, trong khi đang bối rối tìm cách xử lý thì sự xuất hiện của bác với tôi là điều rất đỗi vinh dự, vì chính điều đó đã giúp tôi buông bỏ đi cái tính kiêu hãnh. Nhờ đó mà tôi học được bài học sâu sắc, đồng thời rút kinh nghiệm cho bản thân tôi để mà không mắc phải cái nỗi đau [https://vi.wiktionary.org/w/index.php?title=xi%C3%AAn_b%E1%BA%A9n&oldid=2569869 thấu xương thấu thịt] tôi đã mắc như ngày hôm nay.
|} – [[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[Thảo luận Thành viên:TienMinh-mun6xnChing|thảo luận]]) 12:48, ngày 12 tháng 10 năm 2026 (UTC)
6wfs2f9a0rz0fh1elglesypvbmgqs6k
Wiktionary:Yêu cầu di chuyển trang
4
259795
2569886
2569884
2026-10-12T12:01:02Z
TienMinh-mun6xnChing
57893
2569886
wikitext
text/x-wiki
{{Wiktionary:Yêu cầu di chuyển trang/Đầu}}
<!--Thêm yêu cầu dưới dòng này-->
===[[Bản mẫu:bakdecl-noun]] → [[Bản mẫu:ba-decl-noun]]===
Vì vấn đề kỹ thuật (bấm nhầm) không thể di chuyển lại về tên cũ một cách bình thường. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 14:07, ngày 21 tháng 11 năm 2025 (UTC)
:{{Tick}} [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 14:31, ngày 21 tháng 11 năm 2025 (UTC)
===[[Bản mẫu:R:aar:Hassan Kamil:2004]] → [[Bản mẫu:R:aa:Hassan Kamil:2004]]===
Về lại tên cũ như ban đầu. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 09:30, ngày 2 tháng 1 năm 2026 (UTC)
:{{tick}} – [[Thành viên:Higashizakura|<span style="color:pink; font-family:Noto Serif JP, serif;">'''Anh Đào Phương Đông'''</span>]] ([[Thảo luận Thành viên:Higashizakura|🌸]]) 09:45, ngày 2 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:kat-decl-noun]] → [[Bản mẫu:ka-decl-noun]]===
Về lại tên cũ như ban đầu. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 07:05, ngày 16 tháng 1 năm 2026 (UTC)
:{{xong}}--.--[[Thành viên:TheHighFighter2|Ta như cây bách buồn sau núi...]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 11:33, ngày 16 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:cym-mut]] → [[Bản mẫu:cy-mut]]===
Trả lại tên bản mẫu như cũ. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 09:02, ngày 19 tháng 1 năm 2026 (UTC)
:{{xong}} [[Thành viên:WhoAlone|<span style="color:black ;font:16px Calibri;">'''''Who'''''</span>]]<sup>[[Thảo luận Thành viên:WhoAlone|<span style="color:gray ;font:12px Arial;">Alone</span>]]</sup> 09:12, ngày 19 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:zho-forms]] → [[Bản mẫu:zh-forms]]===
Nhờ 1 BQV di chuyển bản mẫu về lại tên đúng như ban đầu. --<span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px"> [[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]|[[User talk:Kelly zhrm|ø]] </span> 14:57, ngày 29 tháng 1 năm 2026 (UTC)
:{{xong}}--.--[[Thành viên:TheHighFighter2|Ta như cây bách buồn sau núi...]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 15:25, ngày 29 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:du-conj]] → [[Bản mẫu:de-conj]]===
Lỗi di chuyển do nhầm tên. [[User:Hiyuune|<span style="font-family: Segoe UI Light;color:#FF69B4;letter-spacing:">Linh Huynh</span>]] ([[User talk:Hiyuune|<span style="color:#008080;">talk</span>]]) 06:06, ngày 6 tháng 3 năm 2026 (UTC)
===[[سم الله الرحمن الرحيم]]===
*'''Di chuyển''' đến [[Do đặt sai tên]].
-- [[Thành viên:IAmFukVuHoaq|IAmFukVuHoaq]] ([[Thảo luận Thành viên:IAmFukVuHoaq|thảo luận]]) 15:38, ngày 9 tháng 8 năm 2026 (UTC)
: {{Không thực hiện}} Yêu cầu không hợp lệ. [[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[Thảo luận Thành viên:TienMinh-mun6xnChing|thảo luận]]) 11:31, ngày 12 tháng 10 năm 2026 (UTC)
=== [[cá viên]] → [[xiên bẩn]] (lịch sử trang) ===
Do tôi có sơ suất trong việc đổi tên, phiền 1 bảo quản viên trộn lịch sử trang giữa mục từ [[xiên bẩn]] và [[cá viên]], trả các phiên bản của mục từ [[cá viên]] sang [[xiên bẩn]] về như cũ, đồng thời trả phiên bản [https://vi.wiktionary.org/w/index.php?title=xi%C3%AAn_b%E1%BA%A9n&diff=prev&oldid=2569875 này] tôi tạo [[xiên bẩn]] sang [[cá viên]], mặc dù cả hai mục từ đã đúng nội dung như bình thường tính đến thời điểm hiện tại. [[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[Thảo luận Thành viên:TienMinh-mun6xnChing|thảo luận]]) 11:34, ngày 12 tháng 10 năm 2026 (UTC)
6ygk2l0xs6zbsipeou8s6soxlhfvy2g
2569887
2569886
2026-10-12T12:03:00Z
TienMinh-mun6xnChing
57893
2569887
wikitext
text/x-wiki
{{Wiktionary:Yêu cầu di chuyển trang/Đầu}}
<!--Thêm yêu cầu dưới dòng này-->
===[[Bản mẫu:bakdecl-noun]] → [[Bản mẫu:ba-decl-noun]]===
Vì vấn đề kỹ thuật (bấm nhầm) không thể di chuyển lại về tên cũ một cách bình thường. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 14:07, ngày 21 tháng 11 năm 2025 (UTC)
:{{Tick}} [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 14:31, ngày 21 tháng 11 năm 2025 (UTC)
===[[Bản mẫu:R:aar:Hassan Kamil:2004]] → [[Bản mẫu:R:aa:Hassan Kamil:2004]]===
Về lại tên cũ như ban đầu. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 09:30, ngày 2 tháng 1 năm 2026 (UTC)
:{{tick}} – [[Thành viên:Higashizakura|<span style="color:pink; font-family:Noto Serif JP, serif;">'''Anh Đào Phương Đông'''</span>]] ([[Thảo luận Thành viên:Higashizakura|🌸]]) 09:45, ngày 2 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:kat-decl-noun]] → [[Bản mẫu:ka-decl-noun]]===
Về lại tên cũ như ban đầu. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 07:05, ngày 16 tháng 1 năm 2026 (UTC)
:{{xong}}--.--[[Thành viên:TheHighFighter2|Ta như cây bách buồn sau núi...]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 11:33, ngày 16 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:cym-mut]] → [[Bản mẫu:cy-mut]]===
Trả lại tên bản mẫu như cũ. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 09:02, ngày 19 tháng 1 năm 2026 (UTC)
:{{xong}} [[Thành viên:WhoAlone|<span style="color:black ;font:16px Calibri;">'''''Who'''''</span>]]<sup>[[Thảo luận Thành viên:WhoAlone|<span style="color:gray ;font:12px Arial;">Alone</span>]]</sup> 09:12, ngày 19 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:zho-forms]] → [[Bản mẫu:zh-forms]]===
Nhờ 1 BQV di chuyển bản mẫu về lại tên đúng như ban đầu. --<span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px"> [[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]|[[User talk:Kelly zhrm|ø]] </span> 14:57, ngày 29 tháng 1 năm 2026 (UTC)
:{{xong}}--.--[[Thành viên:TheHighFighter2|Ta như cây bách buồn sau núi...]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 15:25, ngày 29 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:du-conj]] → [[Bản mẫu:de-conj]]===
Lỗi di chuyển do nhầm tên. [[User:Hiyuune|<span style="font-family: Segoe UI Light;color:#FF69B4;letter-spacing:">Linh Huynh</span>]] ([[User talk:Hiyuune|<span style="color:#008080;">talk</span>]]) 06:06, ngày 6 tháng 3 năm 2026 (UTC)
===[[سم الله الرحمن الرحيم]]===
*'''Di chuyển''' đến [[Do đặt sai tên]].
-- [[Thành viên:IAmFukVuHoaq|IAmFukVuHoaq]] ([[Thảo luận Thành viên:IAmFukVuHoaq|thảo luận]]) 15:38, ngày 9 tháng 8 năm 2026 (UTC)
: {{Không thực hiện}} Yêu cầu không hợp lệ. [[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[Thảo luận Thành viên:TienMinh-mun6xnChing|thảo luận]]) 11:31, ngày 12 tháng 10 năm 2026 (UTC)
=== [[cá viên]] → [[xiên bẩn]] (lịch sử trang) ===
Do tôi có sơ suất trong việc đổi tên, phiền 1 bảo quản viên trộn lịch sử trang giữa mục từ [[xiên bẩn]] và [[cá viên]], trả lại 3 phiên bản của mục từ [[cá viên]] sang [[xiên bẩn]] về như cũ, đồng thời trả phiên bản [https://vi.wiktionary.org/w/index.php?title=xi%C3%AAn_b%E1%BA%A9n&diff=prev&oldid=2569875 này] tôi tạo sang [[cá viên]], mặc dù cả hai mục từ đã đúng nội dung như bình thường tính đến thời điểm hiện tại. [[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[Thảo luận Thành viên:TienMinh-mun6xnChing|thảo luận]]) 11:34, ngày 12 tháng 10 năm 2026 (UTC)
de2cewyy8wrxebcx1a5ch0v2l1ryavp
2569889
2569887
2026-10-12T12:03:17Z
TienMinh-mun6xnChing
57893
2569889
wikitext
text/x-wiki
{{Wiktionary:Yêu cầu di chuyển trang/Đầu}}
<!--Thêm yêu cầu dưới dòng này-->
===[[Bản mẫu:bakdecl-noun]] → [[Bản mẫu:ba-decl-noun]]===
Vì vấn đề kỹ thuật (bấm nhầm) không thể di chuyển lại về tên cũ một cách bình thường. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 14:07, ngày 21 tháng 11 năm 2025 (UTC)
:{{Tick}} [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 14:31, ngày 21 tháng 11 năm 2025 (UTC)
===[[Bản mẫu:R:aar:Hassan Kamil:2004]] → [[Bản mẫu:R:aa:Hassan Kamil:2004]]===
Về lại tên cũ như ban đầu. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 09:30, ngày 2 tháng 1 năm 2026 (UTC)
:{{tick}} – [[Thành viên:Higashizakura|<span style="color:pink; font-family:Noto Serif JP, serif;">'''Anh Đào Phương Đông'''</span>]] ([[Thảo luận Thành viên:Higashizakura|🌸]]) 09:45, ngày 2 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:kat-decl-noun]] → [[Bản mẫu:ka-decl-noun]]===
Về lại tên cũ như ban đầu. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 07:05, ngày 16 tháng 1 năm 2026 (UTC)
:{{xong}}--.--[[Thành viên:TheHighFighter2|Ta như cây bách buồn sau núi...]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 11:33, ngày 16 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:cym-mut]] → [[Bản mẫu:cy-mut]]===
Trả lại tên bản mẫu như cũ. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 09:02, ngày 19 tháng 1 năm 2026 (UTC)
:{{xong}} [[Thành viên:WhoAlone|<span style="color:black ;font:16px Calibri;">'''''Who'''''</span>]]<sup>[[Thảo luận Thành viên:WhoAlone|<span style="color:gray ;font:12px Arial;">Alone</span>]]</sup> 09:12, ngày 19 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:zho-forms]] → [[Bản mẫu:zh-forms]]===
Nhờ 1 BQV di chuyển bản mẫu về lại tên đúng như ban đầu. --<span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px"> [[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]|[[User talk:Kelly zhrm|ø]] </span> 14:57, ngày 29 tháng 1 năm 2026 (UTC)
:{{xong}}--.--[[Thành viên:TheHighFighter2|Ta như cây bách buồn sau núi...]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 15:25, ngày 29 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:du-conj]] → [[Bản mẫu:de-conj]]===
Lỗi di chuyển do nhầm tên. [[User:Hiyuune|<span style="font-family: Segoe UI Light;color:#FF69B4;letter-spacing:">Linh Huynh</span>]] ([[User talk:Hiyuune|<span style="color:#008080;">talk</span>]]) 06:06, ngày 6 tháng 3 năm 2026 (UTC)
===[[سم الله الرحمن الرحيم]]===
*'''Di chuyển''' đến [[Do đặt sai tên]].
-- [[Thành viên:IAmFukVuHoaq|IAmFukVuHoaq]] ([[Thảo luận Thành viên:IAmFukVuHoaq|thảo luận]]) 15:38, ngày 9 tháng 8 năm 2026 (UTC)
: {{Không thực hiện}} Yêu cầu không hợp lệ. [[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[Thảo luận Thành viên:TienMinh-mun6xnChing|thảo luận]]) 11:31, ngày 12 tháng 10 năm 2026 (UTC)
=== [[cá viên]] → [[xiên bẩn]] (lịch sử trang) ===
Do tôi có sơ suất trong việc đổi tên, phiền 1 bảo quản viên trộn lịch sử trang giữa mục từ [[xiên bẩn]] và [[cá viên]], trả lại 3 phiên bản của mục từ [[cá viên]] sang [[xiên bẩn]] về như cũ, đồng thời trả nguyên phiên bản [https://vi.wiktionary.org/w/index.php?title=xi%C3%AAn_b%E1%BA%A9n&diff=prev&oldid=2569875 này] tôi tạo sang [[cá viên]], mặc dù cả hai mục từ đã đúng nội dung như bình thường tính đến thời điểm hiện tại. [[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[Thảo luận Thành viên:TienMinh-mun6xnChing|thảo luận]]) 11:34, ngày 12 tháng 10 năm 2026 (UTC)
5le9uftb2wn26n87xb1dcn06tx4rj8r
2569890
2569889
2026-10-12T12:03:28Z
TienMinh-mun6xnChing
57893
2569890
wikitext
text/x-wiki
{{Wiktionary:Yêu cầu di chuyển trang/Đầu}}
<!--Thêm yêu cầu dưới dòng này-->
===[[Bản mẫu:bakdecl-noun]] → [[Bản mẫu:ba-decl-noun]]===
Vì vấn đề kỹ thuật (bấm nhầm) không thể di chuyển lại về tên cũ một cách bình thường. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 14:07, ngày 21 tháng 11 năm 2025 (UTC)
:{{Tick}} [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 14:31, ngày 21 tháng 11 năm 2025 (UTC)
===[[Bản mẫu:R:aar:Hassan Kamil:2004]] → [[Bản mẫu:R:aa:Hassan Kamil:2004]]===
Về lại tên cũ như ban đầu. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 09:30, ngày 2 tháng 1 năm 2026 (UTC)
:{{tick}} – [[Thành viên:Higashizakura|<span style="color:pink; font-family:Noto Serif JP, serif;">'''Anh Đào Phương Đông'''</span>]] ([[Thảo luận Thành viên:Higashizakura|🌸]]) 09:45, ngày 2 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:kat-decl-noun]] → [[Bản mẫu:ka-decl-noun]]===
Về lại tên cũ như ban đầu. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 07:05, ngày 16 tháng 1 năm 2026 (UTC)
:{{xong}}--.--[[Thành viên:TheHighFighter2|Ta như cây bách buồn sau núi...]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 11:33, ngày 16 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:cym-mut]] → [[Bản mẫu:cy-mut]]===
Trả lại tên bản mẫu như cũ. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 09:02, ngày 19 tháng 1 năm 2026 (UTC)
:{{xong}} [[Thành viên:WhoAlone|<span style="color:black ;font:16px Calibri;">'''''Who'''''</span>]]<sup>[[Thảo luận Thành viên:WhoAlone|<span style="color:gray ;font:12px Arial;">Alone</span>]]</sup> 09:12, ngày 19 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:zho-forms]] → [[Bản mẫu:zh-forms]]===
Nhờ 1 BQV di chuyển bản mẫu về lại tên đúng như ban đầu. --<span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px"> [[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]|[[User talk:Kelly zhrm|ø]] </span> 14:57, ngày 29 tháng 1 năm 2026 (UTC)
:{{xong}}--.--[[Thành viên:TheHighFighter2|Ta như cây bách buồn sau núi...]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 15:25, ngày 29 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:du-conj]] → [[Bản mẫu:de-conj]]===
Lỗi di chuyển do nhầm tên. [[User:Hiyuune|<span style="font-family: Segoe UI Light;color:#FF69B4;letter-spacing:">Linh Huynh</span>]] ([[User talk:Hiyuune|<span style="color:#008080;">talk</span>]]) 06:06, ngày 6 tháng 3 năm 2026 (UTC)
===[[سم الله الرحمن الرحيم]]===
*'''Di chuyển''' đến [[Do đặt sai tên]].
-- [[Thành viên:IAmFukVuHoaq|IAmFukVuHoaq]] ([[Thảo luận Thành viên:IAmFukVuHoaq|thảo luận]]) 15:38, ngày 9 tháng 8 năm 2026 (UTC)
: {{Không thực hiện}} Yêu cầu không hợp lệ. [[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[Thảo luận Thành viên:TienMinh-mun6xnChing|thảo luận]]) 11:31, ngày 12 tháng 10 năm 2026 (UTC)
=== [[cá viên]] → [[xiên bẩn]] (lịch sử trang) ===
Do tôi có sơ suất trong việc đổi tên, phiền 1 bảo quản viên trộn lịch sử trang giữa mục từ [[xiên bẩn]] và [[cá viên]], trả lại 3 phiên bản cũ của mục từ [[cá viên]] sang [[xiên bẩn]] về như cũ, đồng thời trả nguyên phiên bản [https://vi.wiktionary.org/w/index.php?title=xi%C3%AAn_b%E1%BA%A9n&diff=prev&oldid=2569875 này] tôi tạo sang [[cá viên]], mặc dù cả hai mục từ đã đúng nội dung như bình thường tính đến thời điểm hiện tại. [[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[Thảo luận Thành viên:TienMinh-mun6xnChing|thảo luận]]) 11:34, ngày 12 tháng 10 năm 2026 (UTC)
cbfbsl3focmzzrxi4drfpfxy9rd0i60
2569897
2569890
2026-10-12T12:51:59Z
TienMinh-mun6xnChing
57893
/* cá viên → xiên bẩn (lịch sử trang) */ Trả lời
2569897
wikitext
text/x-wiki
{{Wiktionary:Yêu cầu di chuyển trang/Đầu}}
<!--Thêm yêu cầu dưới dòng này-->
===[[Bản mẫu:bakdecl-noun]] → [[Bản mẫu:ba-decl-noun]]===
Vì vấn đề kỹ thuật (bấm nhầm) không thể di chuyển lại về tên cũ một cách bình thường. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 14:07, ngày 21 tháng 11 năm 2025 (UTC)
:{{Tick}} [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 14:31, ngày 21 tháng 11 năm 2025 (UTC)
===[[Bản mẫu:R:aar:Hassan Kamil:2004]] → [[Bản mẫu:R:aa:Hassan Kamil:2004]]===
Về lại tên cũ như ban đầu. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 09:30, ngày 2 tháng 1 năm 2026 (UTC)
:{{tick}} – [[Thành viên:Higashizakura|<span style="color:pink; font-family:Noto Serif JP, serif;">'''Anh Đào Phương Đông'''</span>]] ([[Thảo luận Thành viên:Higashizakura|🌸]]) 09:45, ngày 2 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:kat-decl-noun]] → [[Bản mẫu:ka-decl-noun]]===
Về lại tên cũ như ban đầu. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 07:05, ngày 16 tháng 1 năm 2026 (UTC)
:{{xong}}--.--[[Thành viên:TheHighFighter2|Ta như cây bách buồn sau núi...]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 11:33, ngày 16 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:cym-mut]] → [[Bản mẫu:cy-mut]]===
Trả lại tên bản mẫu như cũ. [[User:Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Hiyuune</b>]] [[User talk: Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">(angustifolia)</b>]] 09:02, ngày 19 tháng 1 năm 2026 (UTC)
:{{xong}} [[Thành viên:WhoAlone|<span style="color:black ;font:16px Calibri;">'''''Who'''''</span>]]<sup>[[Thảo luận Thành viên:WhoAlone|<span style="color:gray ;font:12px Arial;">Alone</span>]]</sup> 09:12, ngày 19 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:zho-forms]] → [[Bản mẫu:zh-forms]]===
Nhờ 1 BQV di chuyển bản mẫu về lại tên đúng như ban đầu. --<span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px"> [[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]|[[User talk:Kelly zhrm|ø]] </span> 14:57, ngày 29 tháng 1 năm 2026 (UTC)
:{{xong}}--.--[[Thành viên:TheHighFighter2|Ta như cây bách buồn sau núi...]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 15:25, ngày 29 tháng 1 năm 2026 (UTC)
===[[Bản mẫu:du-conj]] → [[Bản mẫu:de-conj]]===
Lỗi di chuyển do nhầm tên. [[User:Hiyuune|<span style="font-family: Segoe UI Light;color:#FF69B4;letter-spacing:">Linh Huynh</span>]] ([[User talk:Hiyuune|<span style="color:#008080;">talk</span>]]) 06:06, ngày 6 tháng 3 năm 2026 (UTC)
===[[سم الله الرحمن الرحيم]]===
*'''Di chuyển''' đến [[Do đặt sai tên]].
-- [[Thành viên:IAmFukVuHoaq|IAmFukVuHoaq]] ([[Thảo luận Thành viên:IAmFukVuHoaq|thảo luận]]) 15:38, ngày 9 tháng 8 năm 2026 (UTC)
: {{Không thực hiện}} Yêu cầu không hợp lệ. [[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[Thảo luận Thành viên:TienMinh-mun6xnChing|thảo luận]]) 11:31, ngày 12 tháng 10 năm 2026 (UTC)
=== [[cá viên]] → [[xiên bẩn]] (lịch sử trang) ===
Do tôi có sơ suất trong việc đổi tên, phiền 1 bảo quản viên trộn lịch sử trang giữa mục từ [[xiên bẩn]] và [[cá viên]], trả lại 3 phiên bản cũ của mục từ [[cá viên]] sang [[xiên bẩn]] về như cũ, đồng thời trả nguyên phiên bản [https://vi.wiktionary.org/w/index.php?title=xi%C3%AAn_b%E1%BA%A9n&diff=prev&oldid=2569875 này] tôi tạo sang [[cá viên]], mặc dù cả hai mục từ đã đúng nội dung như bình thường tính đến thời điểm hiện tại. [[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[Thảo luận Thành viên:TienMinh-mun6xnChing|thảo luận]]) 11:34, ngày 12 tháng 10 năm 2026 (UTC)
:{{done}} BQV {{noping|TheHighFighter2}} đã [https://vi.wiktionary.org/w/index.php?title=%C4%90%E1%BA%B7c_bi%E1%BB%87t:Nh%E1%BA%ADt_tr%C3%ACnh&logid=362994 giải quyết]. – [[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[Thảo luận Thành viên:TienMinh-mun6xnChing|thảo luận]]) 12:51, ngày 12 tháng 10 năm 2026 (UTC)
srm0cgftqoiwac96hyrpk1rwow9xt3p
nosþyrel
0
260102
2570038
2282677
2026-10-13T03:09:50Z
Hiyuune
50834
/* Danh từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2570038
wikitext
text/x-wiki
=={{langname|ang}}==
==={{section|alt}}===
* {{alter|ang|næsþyrel}}
==={{section|etym}}===
{{etym-from|term=nosu|meaning=mũi|2 term=þyrel|2 meaning=lỗ}}
==={{section|pron}}===
* {{ang-IPA|nos-þyrel}}
==={{section|n}}===
{{ang-noun|nosþȳrel|n|nosþȳrlu}}
# [[lỗ mũi|Lỗ mũi]].
===={{section|decl}}====
{{ang-decl-noun-a-n|nosþyrl|nomsg=nosþyrel|short=1}}
===={{section|desc}}====
* {{desctree|enm|nostrille}}
* {{desctree|enm|nosethirl}}
==={{section|ref}}===
* {{R:ang:BT|nos-þyrel|ref=023925}}
oete5eimdx01ozmglymr4ka0c77i6hi
Mô đun:fr-conj/tài liệu
828
262391
2570064
2061744
2026-10-13T04:14:08Z
Hiyuune
50834
2570064
wikitext
text/x-wiki
<!-- XIN HÃY THÊM THỂ LOẠI VÀO PHÍA DƯỚI TRANG NÀY. -->
<!-- Để bổ sung liên kết liên wiki, hãy ghé vào Wikidata. -->
=== Cách sử dụng ===
{{fr-conj
|inf={{{inf}}}
|ger.override = {{{ger.override}}}
|inf.override= {{{inf.override}}}
|ger.comp.override = {{{ger.comp.override}}}
|ppr = {{{ppr}}}
|pp = {{{pp}}}
|ind.p.1s = {{{ind.p.1s}}}
|ind.p.2s = {{{ind.p.2s}}}
|ind.p.3s = {{{ind.p.3s}}}
|ind.p.1p = {{{ind.p.1p}}}
|ind.p.2p = {{{ind.p.2p}}}
|ind.p.3p = {{{ind.p.3p}}}
|ind.i.1s = {{{ind.i.1s}}}
|ind.i.2s = {{{ind.i.2s}}}
|ind.i.3s = {{{ind.i.3s}}}
|ind.i.1p = {{{ind.i.1p}}}
|ind.i.2p = {{{ind.i.2p}}}
|ind.i.3p = {{{ind.i.3p}}}
|ind.ps.1s = {{{ind.ps.1s}}}
|ind.ps.2s = {{{ind.ps.2s}}}
|ind.ps.3s = {{{ind.ps.3s}}}
|ind.ps.1p = {{{ind.ps.1p}}}
|ind.ps.2p = {{{ind.ps.2p}}}
|ind.ps.3p = {{{ind.ps.3p}}}
|ind.f.1s = {{{ind.f.1s}}}
|ind.f.2s = {{{ind.f.2s}}}
|ind.f.3s = {{{ind.f.3s}}}
|ind.f.1p = {{{ind.f.1p}}}
|ind.f.2p = {{{ind.f.2p}}}
|ind.f.3p = {{{ind.f.3p}}}
|cond.p.1s = {{{cond.p.1s}}}
|cond.p.2s = {{{cond.p.2s}}}
|cond.p.3s = {{{cond.p.3s}}}
|cond.p.1p = {{{cond.p.1p}}}
|cond.p.2p = {{{cond.p.2p}}}
|cond.p.3p = {{{cond.p.3p}}}
|sub.p.1s = {{{sub.p.1s}}}
|sub.p.2s = {{{sub.p.2s}}}
|sub.p.3s = {{{sub.p.3s}}}
|sub.p.1p = {{{sub.p.1p}}}
|sub.p.2p = {{{sub.p.2p}}}
|sub.p.3p = {{{sub.p.3p}}}
|sub.pa.1s = {{{sub.pa.1s}}}
|sub.pa.2s = {{{sub.pa.2s}}}
|sub.pa.3s = {{{sub.pa.3s}}}
|sub.pa.1p = {{{sub.pa.1p}}}
|sub.pa.2p = {{{sub.pa.2p}}}
|sub.pa.3p = {{{sub.pa.3p}}}
|imp.p.2s = {{{imp.p.2s}}}
|imp.p.1p = {{{imp.p.1p}}}
|imp.p.2p = {{{imp.p.2p}}}
|ind.p.1s.alt = {{{ind.p.1s.alt}}}
|ind.p.2s.alt = {{{ind.p.2s.alt}}}
|ind.p.3s.alt = {{{ind.p.3s.alt}}}
|ind.p.1p.alt = {{{ind.p.1p.alt}}}
|ind.p.2p.alt = {{{ind.p.2p.alt}}}
|ind.p.3p.alt = {{{ind.p.3p.alt}}}
|ind.i.1s.alt = {{{ind.i.1s.alt}}}
|ind.i.2s.alt = {{{ind.i.2s.alt}}}
|ind.i.3s.alt = {{{ind.i.3s.alt}}}
|ind.i.1p.alt = {{{ind.i.1p.alt}}}
|ind.i.2p.alt = {{{ind.i.2p.alt}}}
|ind.i.3p.alt = {{{ind.i.3p.alt}}}
|ind.ps.1s.alt = {{{ind.ps.1s.alt}}}
|ind.ps.2s.alt = {{{ind.ps.2s.alt}}}
|ind.ps.3s.alt = {{{ind.ps.3s.alt}}}
|ind.ps.1p.alt = {{{ind.ps.1p.alt}}}
|ind.ps.2p.alt = {{{ind.ps.2p.alt}}}
|ind.ps.3p.alt = {{{ind.ps.3p.alt}}}
|ind.f.1s.alt = {{{ind.f.1s.alt}}}
|ind.f.2s.alt = {{{ind.f.2s.alt}}}
|ind.f.3s.alt = {{{ind.f.3s.alt}}}
|ind.f.1p.alt = {{{ind.f.1p.alt}}}
|ind.f.2p.alt = {{{ind.f.2p.alt}}}
|ind.f.3p.alt = {{{ind.f.3p.alt}}}
|cond.p.1s.alt = {{{cond.p.1s.alt}}}
|cond.p.2s.alt = {{{cond.p.2s.alt}}}
|cond.p.3s.alt = {{{cond.p.3s.alt}}}
|cond.p.1p.alt = {{{cond.p.1p.alt}}}
|cond.p.2p.alt = {{{cond.p.2p.alt}}}
|cond.p.3p.alt = {{{cond.p.3p.alt}}}
|sub.p.1s.alt = {{{sub.p.1s.alt}}}
|sub.p.2s.alt = {{{sub.p.2s.alt}}}
|sub.p.3s.alt = {{{sub.p.3s.alt}}}
|sub.p.1p.alt = {{{sub.p.1p.alt}}}
|sub.p.2p.alt = {{{sub.p.2p.alt}}}
|sub.p.3p.alt = {{{sub.p.3p.alt}}}
|sub.pa.1s.alt = {{{sub.pa.1s.alt}}}
|sub.pa.2s.alt = {{{sub.pa.2s.alt}}}
|sub.pa.3s.alt = {{{sub.pa.3s.alt}}}
|sub.pa.1p.alt = {{{sub.pa.1p.alt}}}
|sub.pa.2p.alt = {{{sub.pa.2p.alt}}}
|sub.pa.3p.alt = {{{sub.pa.3p.alt}}}
|imp.p.2s.alt = {{{imp.p.2s.alt}}}
|imp.p.1p.alt = {{{imp.p.1p.alt}}}
|imp.p.2p.alt = {{{imp.p.2p.alt}}}
}}
=== Xem thêm ===
<includeonly>
<!-- THỂ LOẠI TẠI ĐÂY, CẢM ƠN. -->
<!-- Để bổ sung liên kết liên wiki, hãy ghé vào Wikidata. -->
</includeonly>
do94d8neih4ese65828buvgxxo63585
biyar
0
264039
2569943
2136953
2026-10-12T14:58:37Z
WhoAlone
40420
2569943
wikitext
text/x-wiki
{{-yuy-}}
{{-etym-}}
{{inh+|yuy|xgn-pro|*bayar}}.
{{-noun-}}
{{head|yuy|Danh từ}}
# [[hạnh phúc]].
{{c|yuy|Đức hạnh}}
{{-hau-}}
{{-pron-}}
* [[Wiktionary:IPA|IPA]]: /bì.jár/
{{-num-}}
{{pn}}
# [[năm]].
[[Thể loại:Số tiếng Hausa]]
j95ip4ro5pd1kkrfy15f4xwzxelncsd
balaghan
0
265221
2569969
2249551
2026-10-12T15:07:13Z
WhoAlone
40420
2569969
wikitext
text/x-wiki
=={{langname|tl}}==
==={{ĐM|alt}}===
* {{alter|tl|balagahan}}
==={{ĐM|pron}}===
{{tl-pr|balaghán}}
==={{ĐM|n}}===
{{tl-noun|balaghán|b=+}}
# Sự [[ngạc nhiên]]; sự [[kinh ngạc]]; sự [[sửng sốt]].
#: {{synonym|tl|bagha|gilalas|gitla|gulat|mangha|taka}}
===={{ĐM|drv}}====
{{col3|tl|kababalaghan|mabalaghan}}
=={{langname|yuy}}==
==={{ĐM|etym}}===
{{inh+|yuy|xgn-pro|*bulagan}}.
==={{ĐM|n}}===
{{head|yuy|Danh từ}}
# [[chồn]] zibelin.
{{c|yuy|Họ Chồn}}
fbaglfdjhzoq6y1c6bn6lhso4jdrf4k
páy tlăm
0
265593
2570071
2055606
2026-10-13T05:45:23Z
Hiyuune
50834
2570071
wikitext
text/x-wiki
=={{langname|mtq}}==
==={{section|num}}===
{{head|mtq|Số từ}}
# [[bảy|Bảy]] [[trăm]].
b1e5k3w06kgl684b506ljk5xqsb6s64
cầu vượt
0
267116
2570047
2061583
2026-10-13T03:34:42Z
Hiyuune
50834
2570047
wikitext
text/x-wiki
=={{langname|vi}}==
{{wp}}
==={{section|etym}}===
{{com|vi|cầu|vượt}}
==={{section|pron}}===
{{vi-pron}}
==={{section|n}}===
{{vi-noun|cls=cây}}
# [[cầu|Cầu]] [[bắc]] [[vòng]] [[lên cao]] để [[vượt qua]] [[con đường]] khác mà không [[cắt ngang]], không làm [[ảnh hưởng]] đến [[giao thông]] ở cả [[hai]] [[tuyến]].
#: {{ux|vi|'''Cầu vượt''' đường cao tốc.}}
#: {{ux|vi|'''Cầu vượt''' cho người đi bộ.}}
===={{section|trans}}====
{{trans-top|{{pagename}}}}
* {{langname|ar}}:
*: {{langname|acw}}: {{t|acw|كُبْري|m|tr=kubri}}
* {{langname|en}}: {{t+|en|overpass}}
* {{langname|bg}}: {{t+|bg|надлез|m}}
* {{langname|gur}}: {{t|gur|sor-lasɩŋa|c3|c4}}
* {{langname|ka}}: {{t|ka|მიწისზედა გადასასვლელი}}
* {{langname|ja}}: {{t|ja|跨線橋|tr=こせんきょう, kosenkyō}}, {{t+|ja|陸橋|tr=りっきょう, rikkyō}}
* {{langname|fi}}: {{t|fi|ylikäytävä}}, {{t+|fi|ylikulkusilta}}, {{t+|fi|ylikulku}}
* {{langname|fr}}: {{t+|fr|autopont|m}}, {{t|fr|pont autoroutier|m}}
* {{langname|cs}}: {{t|cs|nadjezd|m}}
* {{langname|es}}: {{t+|es|puente|m}}, {{t|es|paso superior|m}}, {{qualifier|người đi bộ}} {{t|es|pasarela|f}}, {{t|es|paso elevado|m}}, {{t|es|paso a desnivel|m}}
* {{langname|zh}}:
*: {{langname|cmn}}: {{t+|cmn|立交橋|tr=lìjiāoqiáo}}
{{trans-bottom}}
==={{section|ref}}===
* {{R:vi:Hoàng Phê 2021|page=161}}
2zjq29vkk9f1bqa5mxtgf24lbhoh5q6
2570048
2570047
2026-10-13T03:37:09Z
Hiyuune
50834
2570048
wikitext
text/x-wiki
=={{langname|vi}}==
{{wp}}
==={{section|etym}}===
{{com|vi|cầu|vượt}}
==={{section|pron}}===
{{vi-pron}}
==={{section|n}}===
{{vi-noun|cls=cây}}
# [[cầu|Cầu]] [[bắc]] [[vòng]] [[lên cao]] để [[vượt qua]] [[con đường]] khác mà không [[cắt ngang]], không làm [[ảnh hưởng]] đến [[giao thông]] ở cả [[hai]] [[tuyến]].
#: {{ux|vi|'''Cầu vượt''' đường cao tốc.}}
#: {{ux|vi|'''Cầu vượt''' cho người đi bộ.}}
===={{section|trans}}====
{{trans-top|{{pagename}}}}
* {{langname|ar}}:
*: {{langname|acw}}: {{t|acw|كُبْري|m|tr=kubri}}
* {{langname|en}}: {{t+|en|overpass}}
* {{langname|pl}}: {{t+|pl|wiadukt|m}}
* {{langname|pt}}: {{t+|pt|viaduto|m}}
* {{langname|bg}}: {{t+|bg|надлез|m}}
* {{langname|de}}: {{t+|de|Überführung|f}}
* {{langname|ka}}: {{t|ka|მიწისზედა გადასასვლელი}}
* {{langname|gur}}: {{t|gur|sor-lasɩŋa|c3|c4}}
* {{langname|hi}}: {{t|hi|उपरिगामी सेतु|m}}
* {{langname|hu}}: {{t+|hu|felüljáró}}
* {{langname|id}}: {{t+|id|jalan layang}}
* {{langname|ga}}: {{t|ga|uasbhealach|m}}
* {{langname|mk}}: {{t|mk|на́двозник|m}}
* {{langname|ru}}: {{t+|ru|путепрово́д|m}}, {{t+|ru|эстака́да|f}}, {{t+|ru|виаду́к|m}}
* {{langname|ja}}: {{t|ja|跨線橋|tr=こせんきょう, kosenkyō}}, {{t+|ja|陸橋|tr=りっきょう, rikkyō}}
* {{langname|fi}}: {{t|fi|ylikäytävä}}, {{t+|fi|ylikulkusilta}}, {{t+|fi|ylikulku}}
* {{langname|fr}}: {{t+|fr|autopont|m}}, {{t|fr|pont autoroutier|m}}
* {{langname|cs}}: {{t|cs|nadjezd|m}}
* {{langname|es}}: {{t+|es|puente|m}}, {{t|es|paso superior|m}}, {{qualifier|người đi bộ}} {{t|es|pasarela|f}}, {{t|es|paso elevado|m}}, {{t|es|paso a desnivel|m}}
* {{langname|zh}}:
*: {{langname|cmn}}: {{t+|cmn|立交橋|tr=lìjiāoqiáo}}
* {{langname|it}}: {{t+|it|cavalcavia|m}}, {{t+|it|viadotto|m}}, {{t+|it|sovrappasso|m}}
{{trans-bottom}}
==={{section|ref}}===
* {{R:vi:Hoàng Phê 2021|page=161}}
7fpxu9zvgsfr6gvstnxq73bui7wlwqc
bala
0
269971
2569972
2515726
2026-10-12T15:07:44Z
WhoAlone
40420
2569972
wikitext
text/x-wiki
{{-bds-}}
{{-alternative form-}}
* [[balu]]
{{-noun-}}
{{pn}}
# [[ngày]].
{{-ref-}}
* [https://archive.org/stream/rosettaproject_bds_swadesh-1/bds.txt Danh sách Swadesh tiếng Burunge]
{{catname|Danh từ|tiếng Burunge}}
{{-yuy-}}
{{-noun-}}
{{pn}}
# [[trứng]].
{{-ref-}}
* Juha Janhunen, ''The Mongolic Languages'' (2006) {{ISBN|1135796904}}
[[Thể loại:Danh từ tiếng Đông Yugur]]
{{c|yuy|Trứng}}
{{-ili-}}
{{-noun-}}
{{pn}}
# [[đứa trẻ]].
[[Thể loại:Danh từ tiếng Ili Turki]]
{{-kaa-}}
{{-noun-}}
{{pn}}
# [[đứa trẻ]].
{{catname|Danh từ|tiếng Karakalpak}}
{{-trk-fyk-}}
{{-noun-}}
{{pn}}
# [[đứa trẻ]].
[[Thể loại:Danh từ tiếng Kyrgyz Phú Dụ]]
{{-tsb-}}
{{-noun-}}
{{head|tsb|Danh từ}} {{g-old|f}}
# [[óc]], [[sọ]].
{{-references-}}
* Graziano Savà. ''A Grammar of Ts’amakko''.
i6qr8g6goq913g1e1w7p0mzi2vzphy3
Mô đun:ru-pron
828
272234
2570052
2316010
2026-10-13T03:49:36Z
Hiyuune
50834
2570052
Scribunto
text/plain
--[[
This module implements the template {{ru-IPA}}.
Author: Originally Wyang; rewritten by Benwing; additional contributions
from Atitarev and a bit from others
FIXME:
1. (DONE) Geminated /j/ from -йя-: treat as any other gemination, meaning it
may not always be pronounced geminated. Currently we geminate it very late,
after all the code that reduces geminates. Should be done earlier and
places that include regexps with /j/ should be modified to also include
the gemination marker ː. Words with йя: аллилу́йя, ауйяма, ва́йя, ма́йя,
папа́йя, парано́йя, пира́йя, ра́йя, секво́йя, Гава́йям.
2. (DONE) Should have geminated jj in йе (occurs in e.g. фойе́). Should work
with gem=y (see FIXME #1). Words with йе: фойе́, колба Эрленмейера, скала
Айерс, Айерс-Рок, йети, Кайенна, конве́йер, конвейерный, сайентология,
фейерверк, Гава́йев. Note also Гава́йи with йи.
3. (DONE, CINEMANTIQUE OK WITH FIXES) In Асунсьо́н and Вьентья́н, put a syllable
break after the н and before consonant + /j/. Use the perm_syl_onset
mechanism or at least the code that accesses that mechanism. Should
possibly do this also in VCʲj and V‿Cʲj and VCj and V‿Cj sequences;
ask Cinemantique if this makes sense.
4. (DONE, CINEMANTIQUE OK WITH FIXES) Fix non-palatal е in льстец. Other
words that will be affected (and probably wrong): льви́ца, львя́тник,
льняно́й, льстить, льди́на, львиный, manual pronunciation given as lʲvʲit͡sə
and lʲvʲɵnək. Ask Cinemantique.
5. (DONE, CINEMANTIQUE SAYS NO IT DOESN'T) In львёнок, rendered as ˈlʲvɵnək
instead of ˈlʲvʲɵnək. Apparently same issue as льстец, having to do with
ь in beginning. This apparently has to do with the "assimilative
palatalization of consonants when followed by front vowels" code, which
blocks palatalization when the syllable begins with a cluster with a hard
sign, or a soft sign followed by a consonant. Then "retraction of front
vowels in syllables blocking assimilative palatalization" converts e to ɛ
and i to y in such cases of blocked palatalization (not needed for žcš,
which are handled by phon_respellings). Ask Cinemantique if this whole
business makes any sense.
6. (DONE) In prefixes/suffixes like -ин, treat single syllable word as
unstressed. Also support tilde to force unstressed syllable.
7. (DONE) In ни́ндзя, дз becomes palatal and н should palatal-assimilate to it.
8. (DONE) In под сту́лом, should render as pɐt͡s‿ˈstuləm when actually renders as
pɐˈt͡s‿stuləm. Also occurs in без ша́пки (bʲɪˈʂ‿ʂapkʲɪ instead of
bʲɪʂ‿ˈʂapkʲɪ); has something to do with ‿. Similarly occurs in
не к ме́сту, which should render as nʲɪ‿k‿ˈmʲestʊ, and от я́блони, which
should render as ɐt‿ˈjæblənʲɪ.
9. (STILL UNCLEAR) In собра́ние, Anatoli renders it as sɐˈbranʲɪ(j)ə with
optional (j). Ask him when this exactly applies. Does it apply in all ɪjə
sequences? Only word-finally? Also ijə?
10. (DONE) убе́жищa renders as ʊˈbʲeʐɨɕːʲə instead of ʊˈbʲeʐɨɕːə; уда́ча
similarly becomes ʊˈdat͡ɕʲə instead of ʊˈdat͡ɕə.
10a. (DONE) Remove the "offending clause" just mentioned, labeled FIXME (10a),
and fix it as the comment above it describes.
10b. (DONE) Remove the clause labeled "FIXME (10b)".
10c. (DONE) Investigate the clause labeled "FIXME (10c)". This relates to
FIXME #9 above concerning собра́ние.
10d. (DONE, NEEDS TESTING) Investigate the clause labeled "FIXME (10d)"
and apply the instructions there about removing a line and seeing
whether anything changes.
11. (DONE) тро́лль renders with geminated final l, and with ʲ on wrong side of
gemination (ːʲ instead of ʲː); note how this also occurs above in -ɕːʲə
from убе́жищa. (This issue with тро́лль will be masked by the change to
generally degeminate l; use фуррь; note also галльский.)
12. (DONE, NEEDS TESTING) May be additional errors with gemination in
combination with explicit / syllable boundary, because of the code
expecting that syllable breaks occur in certain places; should probably
rewrite the whole gemination code to be less fragile and not depend on
exactly where syllable breaks occur in consonant clusters, which it does
now (might want to rewrite to avoid the whole business of breaking by
syllable and processing syllable-by-syllable).
13. Many assimilations won't work properly with an explicit / syllable
boundary.
14. (DONE, ASK WYANG FOR ITS PURPOSE) Eliminate pal=y. Consider first asking
Wyang why this was put in originally.
15. (DONE) Add test cases: Цю́рих, от а́ба, others.
15a. (DONE) Add test cases: фуррь, по абази́ну (for assimilation of schwas
across ‿)
15b. (DONE) Add test case англо-норма́ннский (to make sure degemination of нн
occurs when not between vowels), multi-syllable word ending in a geminate:
ато́лл (not so good because лл always degeminated), коло́сс, Иоа́нн (good
because of нн), ха́ос, эвфеми́зм, хору́гвь (NOTE: ruwikt claims гв is voiced,
I doubt it, ask Cinemantique), наря́д на ку́хню (non-devoicing of д before
н in next word, ask Cinemantique about this, does it also apply to мрл?),
ко̀е-кто́
16. (DONE, ADDED SPECIAL HACK; REMOVED WITH NEW FINAL-Е CODE, SHOULD HANDLE
THROUGH pos=pro; DOESN'T HAVE ANYTHING TO DO WITH SECONDARY STRESS ON О)
Caused a change in ко̀е-кто́, perhaps because I rewrote code that accepted
an acute or circumflex accent to also take a grave accent. See how кое is
actually pronounced here and take action if needed. (ruwiki claims кое is
indeed pronounced like кои, ask Cinemantique what the rule for final -е
is and why different in кое vs. мороженое, anything to do with secondary
stress on о?)
17. (DONE) Rewrote voicing/devoicing assimilation; should make assimilation of
эвфеми́зм automatic and not require phon=.
18. (DONE) Removed redundant fronting-of-a code near end; make sure this
doesn't change anything.
19. (DONE, ANSWER IS YES) do сь and зь assimilate before шж, and
if so do they become ɕʑ? Ask Cinemantique.
20. (DONE) Add pos= to handle final -е. Possibilities appear to be neut
(neuter noun), adj (adjective, autodetected whether singular or plural),
comp (comparative), pre (prepositional case), adv (adverb), verb or v (2nd
plural verb forms).
21. (DONE, DEVOICE UNLESS NEXT WORD BEGINS WITH VOICED OBSTRUENT OR V+VOICED
OBSTRUENT) Figure out what to do with devoicing or non-devoicing before
mnrlv vowel. Apparently non-devoicing before vowel is only in fast speech
with a close juncture and Anatoli doesn't want that; but what about before
the consonants?
22. (DONE) Figure out what to do with fronting of a and u after or between
soft consonants, esp. when triggered by a following soft consonant with
optional or compulsory assimilation. Probably the correct thing to do
in the case of optional assimilation is to give two pronunciations
separated by commas, one with non-front vowel + hard consonant, the
other with front vowel + soft consonant.
23. (DONE, OK) Implement compulsory assimilation of xkʲ; ask Cinemantique to
make sure this is correct.
24. (DONE, BUT ANATOLI THINKS CONJUNCTION A MIGHT NOT BE REDUCED) Add а to
list of unstressed particles, but only recognize it and о (and perhaps all
the others) when not followed by a hyphen; then fix unnecessary cases with
о̂ (look at tracking cflex category) and the various hacks used in а ведь,
а сейчас, а то, а не то, а также, а как же; will need to add а̂ to а капелла
and possibly elsewhere; use different-pron tracking to catch this.
25. (DONE) Add / before цз, чж in Chinese words to ensure syllable boundary in
right place; ensure that this doesn't mess things up when occurring at
beginning of word or whatever.
26. (DONE) Rule on voicing assimilation before v: It says in Chew "A
Computational Phonology of Russian" that v is an obstruent before
obstruents and a sonorant before sonorants, i.e. v triggers voicing
assimilation if followed by an obstruent; verify that our code works this
way.
27. (DONE, NEEDS TESTING) Implement _ to block all assimilation; probably this
will happen automatically and we just need to remove the _ at the end.
28. (NOT DONE, NOT CORRECT) Change unstressed palatal o to have values like
regular o, for words like майора́т, Ога́йо, Йоха́ннесбург
29. (DONE) If we need partial reduction of non-final е/я to [ə] instead of [ɪ],
one way is to use another diacritic, e.g. dot-under; or use a spelling
like ьа.
30. (DONE) BUG: воѐнно-морско́й becomes [vɐˌenːə mɐrˈskoj] without [je], must be
due to ѐ being a composed character (may be a bug in the translit module;
add a test case).
31. In в Япо́нии, в Евро́пе, the initial [j] should be required not optional.
32. (DONE) Should be possible to write п(ь)я́нка, скам(ь)я́ and get optional
palatalization.
33. (CODE PRESENT BUT NOT COMPLETED) Final unstressed -е that becomes [e]
should become [ɪ] when not followed by end of utterance or pause.
34. In То́гане (phon=То́ганэ), final -э should be pronounced [e]. Should apply
in general to -э after paired consonants, but not to e.g. се́рдце.
35. (DONE) тц,дц,тч,дч shoud be always-geminated by default.
36. (DONE) treat ! and ? as separate words so we don't have issues with
word-final -е before them.
37. (DONE) Distinguish stress accents from other accents.
38. т(ь)ся not directly after the stress should be optionally geminated.
39. (DONE) нра̀вственно-эти́ческий should have optional not mandatory gemination
of нн.
40. (DONE) Make дц in -дцат- be optionally-geminated, for words like
одиннадцать, двадцать, тридцатый, etc.
41. (DONE) Don't show grave accents in annotations (but do in phon=).
42. (DONE) -чш- (as in лучший) should be pronounced as -тш-.
43. (DONE) Fix fronting of [au] in two syllables in a row.
44. (DONE) Add pos=imp for imperatives, use it to treat -ться differently from
infinitives.
45. (DONE) CFLEX should not be treated as stress for the purpose of determining
whether written а reduces to [ɐ] or [ə].
46. (DONE) Fix [дт]ьт, [сз]ьс sequences (esp. in imperatives) and make
palatalization of labials optional in [мбпфв]ь[ст][еияёю] (again esp. in
imperatives).
47. (DONE) Optional palatalization of -ся should apply only to -лся, not always.
48. (DONE) Reduction of стл -> сл should apply only in стлив, not always.
49. (DONE) Convert счит -> щит by default, as with счёт.
50. (DONE) Don't require that m_ru_translit.apply_tr_fixes() be called prior
to ipa(), but include an argument so that text transformed this way can
be passed in.
51. (DONE) pos=X/Y and gem=X/Y should require same number of elements as actual
words rather than counting phonetically-joined words.
52. (DONE) Should treat suffixes as beginning with a palatalizable pseudo-
consonant, so e.g. initial -е is indicated as palatalization of the
preceding consonant rather than being preceding by [j], and initial -а is
rendered as [ə] not [ɐ].
53. (DONE) Should treat prefixes as followed by a pseudoconsonant that doesn't
trigger voicing or devoicing of preceding consonants.
54. (DONE) Don't add ‿ after prefixes like из-.
55. Suffix -ёр is rendered as unstressed rather than stressed; probably because
the transliteration doesn't preserve the stress mark.
56. (DONE) -дцат- should be pronounced as if -дцыт-.
57. (DONE) вь (and other palatalized labials) + /j/ should have optional
patalization.
58. (DONE) Convert unstressed initial э- into и-.
59. (DONE) Implement automatic generation of secondary [ʑː] pronunciation for
зж/жж except as prefix boundaries; add zhpal= to override this.
60. (DONE) When checking for prefix boundaries, check all listed prefixes +
those prefixes preceded by по-, не- or непо- (cf. поссо́рить, порассужда́ть,
нерассуди́тельный, etc.).
]]
local com = require("Module:ru-common")
local m_ru_translit = require("Module:ru-translit")
local m_str_utils = require("Module:string utilities")
local listToSet = require("Module:table").listToSet
local export = {}
local u = m_str_utils.char
local rfind = m_str_utils.find
local rsubn = m_str_utils.gsub
local rmatch = m_str_utils.match
local ulower = m_str_utils.lower
local uupper = m_str_utils.upper
local usub = m_str_utils.sub
local ulen = m_str_utils.len
local split = m_str_utils.split
-- version of rsubn() that discards all but the first return value
local function rsub(term, foo, bar)
local retval = rsubn(term, foo, bar)
return retval
end
-- apply rsub() repeatedly until no change
local function rsub_repeatedly(term, foo, bar)
while true do
local new_term = rsub(term, foo, bar)
if new_term == term then
return term
end
term = new_term
end
end
-- If enabled, compare this module with new version of module in
-- Module:User:Benwing2/ru-pron to make sure all pronunciations are the same.
-- To check for differences, go to Wiktionary:Tracking/ru-pron/different-pron
-- and look at what links to the page.
local test_new_ru_pron_module = false
-- If enabled, do new code for final -е; else, the old way
local new_final_e_code = true
-- If enabled, do special case for final -е not before a pause
local final_e_non_pausal = false
local AC = u(0x0301) -- acute = ́
local GR = u(0x0300) -- grave = ̀
local CFLEX = u(0x0302) -- circumflex = ̂
local DUBGR = u(0x030F) -- double grave = ̏
local DOTABOVE = u(0x0307) -- dot above = ̇
local DOTBELOW = u(0x0323) -- dot below = ̣
local PSEUDOCONS = u(0xFFF2) -- pseudoconsonant added to the beginning of suffixes and end of prefixes
local TEMPCFLEX = u(0xFFF3) -- placeholder to be converted to a circumflex
local TEMPSUB = u(0xFFF4) -- miscellaneous temporary placeholder
local vow = 'aeiouyɛəäạëöü'
local ipa_vow = vow .. 'ɐɪʊɨæɵʉ'
local vowels, vowels_c = '[' .. vow .. ']', '([' .. vow .. '])'
-- No need to include DUBGR here because we rewrite it to CFLEX very early
local acc = AC .. GR .. CFLEX .. DOTABOVE .. DOTBELOW
local accents = '[' .. acc .. ']'
local stress_accents = '[' .. AC .. GR .. ']'
local perm_syl_onset = listToSet({
'spr', 'str', 'skr', 'spl', 'skl',
-- FIXME, do we want sc?
'sp', 'st', 'sk', 'sf', 'sx', 'sc',
'pr', 'br', 'tr', 'dr', 'kr', 'gr', 'fr', 'vr', 'xr',
'pl', 'bl', 'kl', 'gl', 'fl', 'vl', 'xl',
-- FIXME, do we want the following? If so, do we want vn?
'ml', 'mn',
-- FIXME, dž is now converted to ĝž, which will have a syllable
-- boundary in between
'šč', 'dž',
})
-- FIXME: Consider changing ӂ internally to ʑ to match ɕ (it is used externally
-- in e.g. дроӂӂи (pronunciation spelling of дрожжи)
local translit_conv = {
['c'] = 't͡s', ['č'] = 't͡ɕ', ['ĉ'] = 't͡ʂ',
['g'] = 'ɡ', ['ĝ'] = 'd͡ʐ',
['ĵ'] = 'd͡z', ['ǰ'] = 'd͡ʑ', ['ӂ'] = 'ʑ',
['š'] = 'ʂ', ['ž'] = 'ʐ'
}
local translit_conv_j = {
['cʲ'] = 't͡sʲ',
['ĵʲ'] = 'd͡zʲ'
}
-- Table of allophones. Each entry is a list of three values:
-- (1) the stressed value; (2) the value immediately before primary or
-- secondary stress; (3) the value elsewhere.
local allophones = {
['a'] = { 'a', 'ɐ', 'ə' },
['e'] = { 'e', 'ɪ', 'ɪ' },
['i'] = { 'i', 'ɪ', 'ɪ' },
['o'] = { 'o', 'ɐ', 'ə' },
['u'] = { 'u', 'ʊ', 'ʊ' },
['y'] = { 'ɨ', 'ɨ', 'ɨ' },
['ɛ'] = { 'ɛ', 'ɨ', 'ɨ' },
['ä'] = { 'a', 'ɪ', 'ɪ' },
['ạ'] = { 'a', 'ɐ', 'ə' },
['ë'] = { 'e', 'ɪ', 'ɪ' },
['ö'] = { 'ɵ', 'ɪ', 'ɪ' },
['ü'] = { 'u', 'ʊ', 'ʊ' },
['ə'] = { 'ə', 'ə', 'ə' },
}
local devoicing = {
['b'] = 'p', ['d'] = 't', ['g'] = 'k',
['z'] = 's', ['v'] = 'f',
['ž'] = 'š', ['ɣ'] = 'x',
['ĵ'] = 'c', ['ǰ'] = 'č', ['ĝ'] = 'ĉ',
['ӂ'] = 'ɕ',
}
local voicing = {
['p'] = 'b', ['t'] = 'd', ['k'] = 'g',
['s'] = 'z', ['f'] = 'v',
['š'] = 'ž', ['c'] = 'ĵ', ['č'] = 'ǰ', ['ĉ'] = 'ĝ',
['x'] = 'ɣ', ['ɕ'] = 'ӂ'
}
local iotating = {
['a'] = 'ä',
['e'] = 'ë',
['o'] = 'ö',
['u'] = 'ü'
}
local retracting = {
['e'] = 'ɛ',
['i'] = 'y',
}
local fronting = {
['a'] = 'æ',
['u'] = 'ʉ',
['ʊ'] = 'ʉ',
}
-- Prefixes that we recognize specially when they end in a geminated
-- consonant. The first element is the result after applying voicing/devoicing,
-- gemination and other changes. The second element is the original spelling,
-- so that we don't overmatch and get cases like Поттер. We check for these
-- prefixes at the beginning of words and also preceded by ne-, po- and nepo-.
-- The third element should be true if the prefix produces [žž] when assimilated
-- to a following ж, otherwise omitted. We use this as part of the
-- implementation of automatic ӂӂ pronunciation, which shouldn't happen at
-- prefix boundaries.
local geminate_pref = {
--'abː', --'adː',
{'be[szšž]ː', 'be[sz]', true},
--'braomː',
{'[vf]ː', 'v'},
{'vo[szšž]ː', 'vo[sz]', true},
{'i[szšž]ː', 'i[sz]', true},
--'^inː',
{'kontrː', 'kontr'},
{'superː', 'super'},
{'tran[szšž]ː', 'trans', true},
{'na[tdcč]ː', 'nad'},
{'ni[szšž]ː', 'ni[sz]', true},
{'o[tdcč]ː', 'ot'}, --'^omː',
{'o[bp]ː', 'ob'},
{'obe[szšž]ː', 'obe[sz]', true},
{'po[tdcč]ː', 'pod'},
{'pre[tdcč]ː', 'pred'}, --'^paszː', '^pozː',
{'ra[szšž]ː', 'ra[sz]', true},
{'[szšž]ː', '[sz]', true},
{'me[žš]ː', 'mež', true},
{'če?re[szšž]ː', 'če?re[sz]', true},
-- certain double prefixes involving ra[zs]-
{'predra[szšž]ː', 'predra[sz]', true},
{'bezra[szšž]ː', 'bezra[sz]', true},
{'nara[szšž]ː', 'nara[sz]', true},
{'vra[szšž]ː', 'vra[sz]', true},
{'dora[szšž]ː', 'dora[sz]', true},
-- '^sverxː', '^subː', '^tröxː', '^četyröxː',
}
local sztab = { s='cs', z='ĵz' }
local function ot_pod_sz(pre, sz)
return pre .. sztab[sz]
end
-- Ad-hoc phonetic substitutions to apply. Each entry is a two-element list,
-- the two arguments to 'rsub()'. These are applied in order, and are
-- carefully ordered to work correctly; don't reorder them unless you know
-- what you're doing. This is called fairly early on, after transliterating,
-- splitting on words, adding ⁀ at the beginning and end of all words, and
-- applying a few other changes. It mostly implements various sorts of
-- assimilations.
local phonetic_subs = {
{'h', 'ɣ'},
{'šč', 'ɕː'}, -- conversion of šč to geminate
-- the following group is ordered before changes that affect ts
{'n[dt]sk', 'n(t)sk'},
{'s[dt]sk', 'sck'},
-- -дцат- (in numerals) has optionally-geminated дц; if unstressed,
-- pronounced as -дцыт-
{'dca(' .. accents .. '?)t', function(accent)
if accent == '' then
return 'c(c)yt'
else
return 'c(c)a' .. accent .. 't'
end
end
},
-- Add / before цз, чж sequences (Chinese words) and assimilate чж
{'cz', '/cz'},
{'čž', '/ĝž'},
-- main changes for affricate assimilation of [dt] + sibilant, including ts;
-- we either convert to "short" variants t͡s, d͡z, etc. or to "long" variants
-- t͡ss, d͡zz, etc.
-- 1. т с, д з across word boundary, also т/с, д/з with explicitly written
-- slash, use long variants.
{'[dt](ʹ?[ ‿⁀/]+)s', 'c%1s'},
{'[dt](ʹ?[ ‿⁀/]+)z', 'ĵ%1z'},
-- 2. тс, дз + vowel use long variants.
{'[dt](ʹ?)s(j?' .. vowels .. ')', 'c%1s%2'},
{'[dt](ʹ?)z(j?' .. vowels .. ')', 'ĵ%1z%2'},
-- 3. тьс, дьз use long variants.
{'[dt]ʹs', 'cʹs'},
{'[dt]ʹz', 'ĵʹz'},
-- 4. word-initial от[сз]-, под[сз]- use long variants because there is
-- a morpheme boundary.
{'(⁀o' .. accents .. '?)t([sz])', ot_pod_sz},
{'(⁀po' .. accents .. '?)d([sz])', ot_pod_sz},
-- 5. other тс, дз use short variants.
{'[dt]s', 'c'},
{'[dt]z', 'ĵ'},
-- 6. тш, дж always use long variants (FIXME, may change)
{'[dtč](ʹ?[ %-‿⁀/]*)š', 'ĉ%1š'},
{'[dtč](ʹ?[ %-‿⁀/]*)ž', 'ĝ%1ž'},
-- 7. soften palatalized hard hushing affricates resulting from the previous
{'ĉʹ', 'č'},
{'ĝʹ', 'ǰ'},
-- changes that generate ɕː and ɕč through assimilation:
-- зч and жч become ɕː, as does сч at the beginning of a word and in the
-- sequence счёт when not following [цдт] (подсчёт); else сч becomes ɕč
-- (отсчи́тываться), as щч always does (рассчитáть written ращчита́ть)
{'[cdt]sč', 'čɕː'},
{'ɕːč', 'ɕč'},
{'[zž]č', 'ɕː'},
{'[szšž]ɕː?', 'ɕː'},
{'⁀sč', '⁀ɕː'},
{'sč(j?[oi]' .. accents .. '?)t', 'ɕː%1t'},
{'sč', 'ɕč'},
-- misc. changes for assimilation of [dtsz] + sibilants and affricates
{'[sz][dt]c', 'sc'},
{'([rn])[dt]([cč])', '%1%2'},
-- дц, тц, дч, тч + vowel always remain geminated, so mark this with ˑ;
-- if not followed by a vowel, as in e.g. путч, use normal gemination
-- (it will normally be degeminated)
{'[dt]([cč])(' .. vowels .. ')', '%1ˑ%2'},
{'[dt]([cč])', '%1%1'},
-- the following is ordered before the next one, which applies assimilation
-- of [тд] to щ (including across word boundaries)
{'n[dt]ɕ', 'nɕ'},
-- [сз] and [сз]ь before soft affricates [щч], including across word
-- boundaries; note that the common sequence сч has already been handled
{'[zs]ʹ?([ ‿⁀/]*[ɕč])', 'ɕ%1'},
-- reduction of too many ɕ's, which can happen from the previous
{'ɕɕː', 'ɕː'},
-- assimilation before [тдц] and [тдц]ь before щ
{'[cdt]ʹ?([ ‿⁀/]*)ɕ', 'č%1ɕ'},
-- assimilation of [сз] and [сз]ь before [шж]
{'[zs]([ ‿⁀/]*)š', 'š%1š'},
{'[zs]([ ‿⁀/]*)ž', 'ž%1ž'},
{'[zs]ʹ([ ‿⁀/]*)š', 'ɕ%1š'},
{'[zs]ʹ([ ‿⁀/]*)ž', 'ӂ%1ž'},
-- assimilation of [сз]ь before с[еияёю] (in imperatives esp. before ся)
{'[zs]ʹs([eij])', 'sˑ%1'},
-- assimilation of [тд]ь before т[еияёю] (e.g. in imperatives esp. before те)
{'[td]ʹt([eij])', 'tˑ%1'},
-- optional palatalization of palatalized labials before another consonant
-- in [ст][еияёю] (esp. in imperatives before -те, -ся)
-- FIXME, perhaps we should either generalize this or restrict it only
-- to imperatives
{'([mpbfv])ʹ([st][eij])', '%1(ʹ)%2'},
{'sverxi', 'sverxy'},
{'stʹd', 'zd'},
-- this will often become degeminated
{'tʹd', 'dd'},
-- loss of consonants in certain clusters
{'([ns])[dt]g', '%1g'},
{'zdn', 'zn'},
{'lnc', 'nc'},
{'[sz]t(li' .. accents .. '?v)', 's%1'},
{'[sz]tn', 'sn'},
{'lvstv', 'lstv'},
-- initial unstressed э -> и; should precede backing of /i/ in close juncture
{'⁀ɛ([^' .. acc .. '])', '⁀i%1'},
-- unstressed э after a vowel -> и; repeated to handle the unlikely case
-- where two ээ occur in a row; FIXME, this is a type of ikanye, and we
-- mostly implement ikanye later on using the chart in 'allophones', so
-- it would be nice to merge these two cases, but I can't think of an
-- obvious way to do it
{'(' .. vowels .. accents .. '?)ɛ([^' .. acc .. '])', '%1i%2'},
{'(' .. vowels .. accents .. '?)ɛ([^' .. acc .. '])', '%1i%2'},
-- backing of /i/ after hard consonants in close juncture
{'([mnpbtdkgfvszxɣrlšžcĵĉĝ])⁀‿⁀i', '%1⁀‿⁀y'},
}
local cons_assim_palatal = {
-- assimilation of tn, dn, zn, st, zd, nč, nɕ is handled specially
compulsory = listToSet({'ntʲ', 'ndʲ', 'xkʲ',
'csʲ', 'ĵzʲ', 'ncʲ', 'nĵʲ'}),
optional = listToSet({'slʲ', 'zlʲ', 'nsʲ', 'nzʲ',
'mpʲ', 'mbʲ', 'mfʲ', 'fmʲ'})
}
-- words which will be treated as accentless (i.e. their vowels will be
-- reduced), and which will liaise with a preceding or following word;
-- this will not happen if the words have an accent mark, cf.
-- по́ небу vs. по не́бу, etc.
local accentless = {
-- class 'pre': particles that join with a following word
pre = listToSet({'bez', 'bliz', 'v', 'vo', 'da', 'do',
'za', 'iz', 'iz-pod', 'iz-za', 'izo', 'k', 'ko', 'mež',
'na', 'nad', 'nado', 'ne', 'ni', 'ob', 'obo', 'ot', 'oto',
'pered', 'peredo', 'po', 'pod', 'podo', 'pred', 'predo', 'pri', 'pro',
's', 'so', 'u', 'čerez'}),
-- class 'prespace': particles that join with a following word, but only
-- if a space (not a hyphen) separates them; hyphens are used here
-- to spell out letters, e.g. а-эн-бэ́ for АНБ (NSA = National Security
-- Agency) or о-а-э́ for ОАЭ (UAE = United Arab Emirates)
prespace = listToSet({'a', 'o'}),
-- class 'post': particles that join with a preceding word
post = listToSet({'by', 'b', 'ž', 'že', 'li', 'libo', 'lʹ', 'ka',
'nibudʹ', 'tka'}),
-- class 'posthyphen': particles that join with a preceding word, but only
-- if a hyphen (not a space) separates them
posthyphen = listToSet({'to'}),
}
-- Pronunciation of final unstressed -е, depending on the part of speech and
-- exact ending. Also used for pronunciation of -ться in imperatives vs.
-- infinitives.
--
-- Endings:
-- oe = -ое
-- ve = any other vowel plus -е (FIXME, may have to split out -ее)
-- je = -ье
-- softpaired = soft paired consonant + -е
-- hardsib = hard sibilant (ц, ш, ж) + -е
-- softsib = soft sibilant (ч, щ) + -е
--
-- Parts of speech:
-- def = default used in absence of pos
-- n/noun = neuter noun in the nominative/accusative singular (but not ending
-- in adjectival -ое or -ее; those should be considered as adjectives)
-- pre = prepositional case singular
-- dat = dative case singular (treated same as prepositional case singular)
-- voc = vocative case (currently treated as 'mid')
-- nnp = noun nominative plural in -е (гра́ждане, боя́ре, армя́не); not
-- adjectival plurals in -ие or -ые, including adjectival nouns
-- (да́нные, а́вторские)
-- inv = invariable noun or other word (currently treated as 'mid')
-- a/adj = adjective or adjectival noun (typically either neuter in -ое or
-- -ее, or plural in -ие, -ые, or -ье, or short neuter in unpaired
-- sibilant + -е)
-- c/com = comparative (typically either in -ее or sibilant + -е)
-- adv = adverb
-- p = preposition (treated same as adverb)
-- v/vb/verb = finite verbal form (usually 2nd-plural in -те), but not
-- imperatives (use pos=imp) and not participle forms, which should be
-- treated as adjectives
-- pro = pronoun (кое-, какие-, ваше, сколькие)
-- num = number (двое, трое, обе, четыре; currently treated as 'mid')
-- pref = prefix (treated as 'high' because integral part of word)
-- hi/high = force high values ([ɪ] or [ɨ])
-- mid = force mid values ([e] or [ɨ])
-- lo/low/schwa = force low, really schwa, values ([ə])
--
-- Possible values:
-- 1. ə [ə], e [e], i [ɪ] after a vowel or soft consonant
-- 2. ə [ə] or y [ɨ] after a hard sibilant
--
-- If a part of speech doesn't have an entry for a given type of ending,
-- it receives the default value. If a part of speech's entry is a string,
-- it's an alias for another way of specifying the same part of speech
-- (e.g. n=noun).
local pos_properties = {
def={oe='ə', ve='e', je='e', softpaired='e', hardsib='y', softsib='e', tsjapal='n'},
noun={oe='ə', ve='e', je='e', softpaired='e', hardsib='ə', softsib='e'},
n='noun',
pre={oe='e', ve='e', softpaired='e', hardsib='y', softsib='e'},
dat='pre',
voc='mid',
nnp={softpaired='e'}, -- FIXME, not sure about this
inv='mid', --FIXME, not sure about this (e.g. вице-, кофе)
adj={oe='ə', ve='e', je='ə'}, -- FIXME: Not sure about -ее, e.g. neut adj си́нее; FIXME, not sure about short neuter adj, e.g. похо́же from похо́жий, дорогосто́яще from дорогосто́ящий, should this be treated as neuter noun?
a='adj',
com={ve='e', hardsib='y', softsib='e'},
c='com',
adv={softpaired='e', hardsib='y', softsib='e'},
p='adv', --FIXME, not sure about prepositions
verb={softpaired='e'},
v='verb',
vb='verb',
-- Imperatives like other verbs except that final -ться is palatalized
imp={softpaired='e', tsjapal='y'},
impv='imp',
pro={oe='i', ve='i'}, --FIXME, not sure about ваше, сколькие, какие-, кое-
num='mid', --FIXME, not sure about обе
pref='high',
-- forced values
high={oe='i', ve='i', je='i', softpaired='i', hardsib='y', softsib='i'},
hi='high',
mid={oe='e', ve='e', je='e', softpaired='e', hardsib='y', softsib='e'},
low={oe='ə', ve='ə', je='ə', softpaired='ə', hardsib='ə', softsib='ə'},
lo='low',
schwa='low'
}
local function track(page)
local m_debug = require("Module:debug")
m_debug.track("ru-pron/" .. page)
return true
end
-- remove accents that we don't want to appear in the phonetic respelling
function phon_respelling(text)
return (rsub(text, '[/_‿' .. CFLEX .. DUBGR .. DOTABOVE .. DOTBELOW .. ']', ''))
end
-- Direct implementation of {{ru-IPA}}.
function export.ru_IPA(frame)
local parent_args = frame:getParent().args
local params = {
[1] = {},
phon = {},
pos = {},
gem = {},
ann = {},
noadj = {type = "boolean"},
noshto = {type = "boolean"},
raw = {type = "boolean"},
zhpal = {type = "boolean"}, -- treated as 3-way: true, false, nil
bracket = {type = "boolean", default = "true"},
a = {type = "labels"},
aa = {type = "labels"},
q = {type = "qualifier"},
qq = {type = "qualifier"},
}
local args = require("Module:parameters").process(parent_args, params)
local text = args[1] or args.phon or mw.loadData("Module:headword/data").pagename
local origtext, transformed_text = m_ru_translit.apply_tr_fixes(text, args.noadj, args.noshto)
local pronunciations = export.ipa(transformed_text, args.adj, args.gem, args.bracket, args.pos, args.zhpal,
"transformed")
local maintext
if args.raw then
return table.concat(pronunciations, ", ")
else
local anntext = (args.ann == "y" and "'''" .. phon_respelling(text) .. "''': " or
args.ann and "'''" .. args.ann .. "''': " or
"")
local lang = require("Module:languages").getByCode("ru")
for i, pronunciation in ipairs(pronunciations) do
pronunciations[i] = { pron = pronunciation }
end
maintext = require("Module:IPA").format_IPA_full {
lang = lang,
items = pronunciations,
a = args.a,
aa = args.aa,
q = args.q,
qq = args.qq,
separator = " ~ ",
}
local respelling
if args.phon then
respelling = args.phon
elseif origtext ~= transformed_text then
respelling = transformed_text
end
local respelling_text = ""
if respelling then
respelling = phon_respelling(respelling)
respelling_text = respelling and " (''phonetic respelling'': " .. require("Module:script utilities").tag_text(respelling, lang) .. ")"
end
return anntext .. maintext .. respelling_text
end
end
-- Forward function declarations
local ru_ipa_main
-- Return the actual IPA corresponding to Cyrillic text. ADJ, GEN, BRACKET
-- POS and ZHPAL are as in [[Template:ru-IPA]]. If IS_TRANFORMED is true, the
-- text has already been passed through m_ru_translit.apply_tr_fixes();
-- otherwise, this will be done. Note that the return value is a list of one or
-- more valid pronunciations.
function export.ipa(text, adj, gem, bracket, pos, zhpal, is_transformed)
local new_module_result
-- Test code to compare existing module to new one.
if test_new_ru_pron_module then
local m_new_ru_pron = require("Module:User:Benwing2/ru-pron")
new_module_result = m_new_ru_pron.ipa(text, adj, gem, bracket, pos, zhpal, is_transformed)
end
if type(text) == "table" then
local params = {
[1] = {},
phon = {},
adj = {type = "boolean"},
gem = {},
bracket = {type = "boolean", default = "true"},
pos = {},
zhpal = {type = "boolean"},
}
local args = require("Module:parameters").process(text, params)
text, adj, gem, bracket, pos, zhpal =
(args.phon or args[1]), args.adj, args.gem, args.bracket, args.pos, args.zhpal
if not text then
text = mw.loadData("Module:headword/data").pagename
end
end
if not is_transformed then
local origtext, transformed_text = m_ru_translit.apply_tr_fixes(text)
text = transformed_text
end
gem = gem or ""
-- If a multipart gemination spec, split into components.
if rfind(gem, "/") then
gem = split(gem, "/", true)
for i=1,#gem do
gem[i] = usub(gem[i], 1, 1)
end
else
gem = usub(gem, 1, 1)
end
-- Verify that gem (or each part of multipart gem) is recognized
for _, g in ipairs(type(gem) == "table" and gem or {gem}) do
if g ~= "" and g ~= "y" and g ~= "o" and g ~= "n" then
error("Unrecognized gemination spec '" .. g .. ": Should be y, yes, o, opt, n, no, or empty")
end
end
pos = pos or "def"
-- If a multipart part of speech, split into components, and convert
-- each blank component to the default.
if rfind(pos, "/") then
pos = split(pos, "/", true)
for i=1,#pos do
if pos[i] == "" then
pos[i] = "def"
end
end
end
-- Verify that pos (or each part of multipart pos) is recognized
for _, p in ipairs(type(pos) == "table" and pos or {pos}) do
if not pos_properties[p] then
error("Unrecognized part of speech '" .. p .. "': Should be n/noun/neut, a/adj, c/com, pre, dat, adv, inv, voc, v/verb, pro, hi/high, mid, lo/low/schwa or omitted")
end
end
text = ulower(text)
local combined_gem = type(gem) == "table" and table.concat(gem, "/") or gem
if combined_gem ~= "" then
track("gem")
track("gem/" .. combined_gem)
end
if adj then
track("adj")
end
-- don't include h here because we allow it as a legitimate alternative
-- for ɣ. Include vowels with all of the accents that have special meaning
-- for this module. (TODO: additional consonants from IPA)
if rfind(text, "[a-gi-zæɐčěəɛɪɨǒǫɵšʊʉžáǽéíóúýàèìòùỳâêîôûŷȁȅȉȍȕạẹịọụỵȧėȯẏ]") then
track("latin-text")
end
if rfind(text, "[сз]ч") then
track("sch")
end
if rfind(text, "[шж]ч") then
track("shch")
end
if rfind(text, CFLEX) then
track("cflex")
end
if rfind(text, DUBGR) then
track("dubgr")
end
text = rsub(text, "``", DUBGR)
text = rsub(text, "`", GR)
text = rsub(text, "@", DOTABOVE)
text = rsub(text, "%^", CFLEX)
text = rsub(text, DUBGR, CFLEX)
-- translit doesn't always convert э to ɛ (depends on whether a consonant
-- precedes), so do it ourselves before translit
text = rsub(text, 'э', 'ɛ')
-- vowel + йе should have double jj, but the translit module will translit
-- it the same as vowel + е, so do it ourselves before translit
text = rsub(text, '([' .. com.vowel .. ']' .. com.opt_accent .. ')й([еѐ])',
'%1йй%2')
-- transliterate and decompose Latin vowels with accents, recomposing
-- certain key combinations; don't include accent on monosyllabic ё, so
-- that we end up without an accent on such words. NOTE: Not clear we
-- need to be decomposing like this any more, although it is still
-- useful if the user supplies Latin text, which we allow (although
-- undocumented).
text = com.decompose(m_ru_translit.tr_after_fixes(text))
-- handle old ě (e.g. сѣдло́), ǒ (e.g. сѣ̈дла) and ǫ (e.g. ея̈)
text = text:gsub("ě", "e")
:gsub("ǒ", "o")
:gsub("ǫ", "o")
-- handle sequences of accents (esp from ё with secondary/tertiary stress)
text = rsub(text, accents .. '+(' .. accents .. ')', '%1')
-- convert commas and en/en dashes to IPA foot boundaries
text = rsub(text, '%s*[,–—]%s*', ' | ')
-- canonicalize multiple spaces
text = rsub(text, '%s+', ' ')
-- Add primary stress to single-syllable words preceded or followed by
-- unstressed particle or preposition. Add "tertiary" stress to remaining
-- single-syllable words that aren't a particle, preposition, prefix or
-- suffix and don't already bear an accent (including force-reduction
-- accents, i.e. dot-above/dot-below); "tertiary stress" means a vowel is
-- treated as stressed for the purposes of vowel reduction but isn't
-- marked with a primary or secondary stress marker; we repurpose a
-- circumflex for this purpose. We need to preserve the distinction
-- between spaces and hyphens because (1) we only recognize certain
-- post-accentless particles following a hyphen (to distinguish e.g.
-- 'то' from '-то'); (2) we only recognize certain pre-accentless
-- particles preceding a space (to distinguish particles 'о' and 'а' from
-- spelled letters о and а, which should not be reduced); and (3) we
-- recognize hyphens for the purpose of marking unstressed prefixes and
-- suffixes.
local word = split(text, "([ %-]+)")
for i = 1, #word do
-- check for single-syllable words that need a stress; they must meet
-- the following conditions:
-- 1. must not be an accentless word, which is any of the following:
-- 1a. in the "pre" class, or
if not (accentless['pre'][word[i]] or
-- 1b. in the "prespace" class if followed by space and another word, or
i < #word - 1 and accentless['prespace'][word[i]] and word[i+1] == " " or
-- 1c. in the "post" class if preceded by another word and
-- not followed by a hyphen (this is because words like
-- ка and же are also used for spelling initialisms), or
i > 2 and accentless['post'][word[i]] and word[i+1] ~= "-" or
-- 1d. in the "posthyphen" class preceded by a hyphen and another word
-- (and not followed by a hyphen, see 1c);
i > 2 and accentless['posthyphen'][word[i]] and word[i-1] == "-" and word[i+1] ~= "-") and
-- 2. must be one syllable;
ulen(rsub(word[i], '[^' .. vow .. ']', '')) == 1 and
-- 3. must not have any accents (including dot-above, forcing reduction);
not rfind(word[i], accents) and
-- 4. must not be a prefix or suffix, identified by a preceding or trailing hyphen, i.e. one of the following:
-- 4a. utterance-initial preceded by a hyphen, or
not (i == 3 and word[2] == "-" and word[1] == "" or
-- 4b. non-utterance-initial preceded by a hyphen, or
i >= 3 and word[i-1] == " -" or
-- 4c. utterance-final followed by a hyphen, or
i == #word - 2 and word[i+1] == "-" and word[i+2] == "" or
-- 4d. non-utterance-final followed by a hyphen;
i <= #word - 2 and word[i+1] == "- ") then
-- OK, we have a stressable single-syllable word; either add primary
-- or tertiary stress:
-- 1. add primary stress if preceded or followed by an accentless word,
if (i > 2 and accentless['pre'][word[i-2]] or
i > 2 and word[i-1] == " " and accentless['prespace'][word[i-2]] or
i < #word - 1 and accentless['post'][word[i+2]] and word[i+3] ~= "-" or
i < #word - 1 and word[i+1] == "-" and accentless['posthyphen'][word[i+2]] and word[i+3] ~= "-") then
word[i] = rsub(word[i], vowels_c, '%1' .. AC)
-- 2. else add tertiary stress
else
word[i] = rsub(word[i], vowels_c, '%1' .. CFLEX)
end
end
end
-- count number of words and make sure we have correct number of
-- gemination and part-of-speech specs if a multipart spec is given
local num_real_words = 0
for i = 1, #word do
if (i % 2) == 1 and word[i] ~= "" then
num_real_words = num_real_words + 1
end
end
if type(gem) == "table" and #gem ~= num_real_words then
error("Number of gemination specs (" .. #gem .. ") should match number of words (" .. num_real_words .. ")")
end
if type(pos) == "table" and #pos ~= num_real_words then
error("Number of parts of speech (" .. #pos .. ") should match number of words (" .. num_real_words .. ")")
end
-- make unaccented prepositions and particles liaise with the following or
-- preceding word; in the process, fix up number of elements in gem/pos
-- tables so there's a single element for the combined word
local real_word_index = 0
for i = 1, #word do
if (i % 2) == 1 and word[i] ~= "" then
real_word_index = real_word_index + 1
end
if i < #word - 1 and (accentless['pre'][word[i]] or accentless['prespace'][word[i]] and word[i+1] == " ") and
-- don't add ‿ onto the end of a prefix; a prefix is a word followed by a hyphen that is in turn
-- followed by a space or end of terms; note that ends of terms after a hyphen are marked by a blank
-- string due to the way split() works
not (word[i+1] == "-" and (word[i+2] == " " or word[i+2] == "" and i == #word - 2)) then
word[i+1] = '‿'
if type(gem) == "table" then
table.remove(gem, real_word_index)
end
if type(pos) == "table" then
table.remove(pos, real_word_index)
end
elseif i > 2 and (accentless['post'][word[i]] and word[i+1] ~= "-" or
accentless['posthyphen'][word[i]] and word[i-1] == "-" and word[i+1] ~= "-") then
word[i-1] = '‿'
-- for unaccented words that liaise with the preceding word,
-- remove the gemination spec corresponding to the unaccented word
-- because the gemination in question is almost certainly in the
-- preceding word, but remove the POS spec corresponding to the
-- preceding word because it's the final -е of the unaccented word
-- that the POS will refer to
if type(gem) == "table" then
table.remove(gem, real_word_index)
end
if type(pos) == "table" then
table.remove(pos, real_word_index - 1)
end
end
end
-- rejoin words, convert hyphens to spaces and eliminate stray spaces
-- resulting from this; but convert hyphens at the beginning of suffixes
-- to a pseudoconsonant, so we treat vowels at the beginning of suffixes
-- as if they are followed by a consonant, not word-initial. Similarly
-- convert hyphens at the end of prefixes to a pseudoconsonant.
text = table.concat(word, "")
text = rsub(text, '^%-', PSEUDOCONS)
text = rsub(text, '%s%-', ' ' .. PSEUDOCONS)
text = rsub(text, '%-$', PSEUDOCONS)
text = rsub(text, '%-%s', PSEUDOCONS .. ' ')
text = rsub(text, '[%-%s]+', ' ')
text = rsub(text, '^ ', '')
text = rsub(text, ' $', '')
-- add a ⁀ at the beginning and end of every word and at close juncture
-- boundaries; we will remove this later but it makes it easier to do
-- word-beginning and word-end rsubs
text = rsub(text, ' ', '⁀ ⁀')
text = rsub(text, '([!?])', '⁀%1⁀')
text = '⁀' .. text .. '⁀'
text = rsub(text, '‿', '⁀‿⁀')
-- At this point, the spelling has been normalized (see the comment to
-- ru_ipa_main() below). Now we need to handle any pronunciation-spelling
-- variants (particularly, handling зж and жж, which have both
-- non-palatalized and palatalized variants except at prefix boundaries)
-- and convert each variant to IPA.
local alltext
-- If zž or žž occur not at a prefix boundary, then generate two variants,
-- the first with non-palatal [ʐː] and the second with [ʑː] (potentially
-- with nearby vowels affected appropriately for the palatalization
-- difference). But don't do this if zhpal=n.
if zhpal == false or not rfind(text, 'ž') then
-- speed up the majority of cases where ž doesn't occur
alltext = {text}
else
-- First, go through and mark all prefix boundaries where a ž directly
-- follows the prefix by inserting a ˑ between prefix and ž. This
-- prevents us from generating the [ʑː] variant (notated internally as
-- ӂӂ). Don't do this if zhpal=y, which defeats this check.
if zhpal ~= true then
for _, gempref in ipairs(geminate_pref) do
local origspell = gempref[2]
local is_zh = gempref[3]
if is_zh then
-- allow all vowels to have accents following them
origspell = rsub(origspell, vowels_c, '%1' .. accents .. '?')
text = rsub(text, '(⁀' .. origspell .. ')ž', '%1ˑž')
text = rsub(text, '(⁀po' .. origspell .. ')ž', '%1ˑž')
text = rsub(text, '(⁀ne' .. origspell .. ')ž', '%1ˑž')
text = rsub(text, '(⁀nepo' .. origspell .. ')ž', '%1ˑž')
end
end
end
-- Then, if zž or žž are present (which will exclude prefix boundaries
-- because a ˑ marker will intervene), generate the two possibilities,
-- else generate only one.
local alltext1
if rfind(text, '[zž]ž') then
alltext1 = {text, rsub(text, '[zž]ž', 'ӂӂ')}
else
alltext1 = {text}
end
-- Finally, remove the ˑ marker.
alltext = {}
for _, text in ipairs(alltext1) do
table.insert(alltext, rsub(text, 'ˑ', ''))
end
end
-- Now generate the pronunciation(s) for each of the spelling variants
-- we generate above. (In some cases there are multiple pronunciation
-- variants generated, e.g. in the sequence palatalized consonant + a/u +
-- optionally palatalized consonant.)
local allpron = {}
for _, text in ipairs(alltext) do
local thispron = ru_ipa_main(text, adj, gem, bracket, pos)
for _, pron in ipairs(thispron) do
table.insert(allpron, pron)
end
end
-- Handle test_new_ru_pron_module if specified (tracking for changed
-- pronunciations).
if test_new_ru_pron_module then
local string_version = table.concat(allpron, ", ")
if new_module_result ~= string_version then
--error(string_version .. " || " .. new_module_result)
track("different-pron")
else
track("same-pron")
end
end
return allpron
end
-- Convert normalized spelling into actual pronunciation. Return value is a
-- list of one or more valid pronunciations. "Normalized" means that various
-- normalization transformations have been applied, e.g.
-- (1) text is transliterated and accents decomposed;
-- (2) ‿ is added where appropriate to join clitics to normally-stressed words;
-- (3) ⁀ is added at the beginning and end of all words;
-- (4) primary or tertiary stress may have been added to single-syllable words
-- as appropriate;
-- (5) punctuation is removed and replaced with spaces and/or IPA foot
-- boundaries;
-- (6) etc.
-- Note that normalization does *not* implement assimilations, conversion of
-- vowels or consonants to their IPA equivalents, or other intra-word changes.
ru_ipa_main = function(text, adj, gem, bracket, pos)
-- save original word spelling before respellings, (de)voicing changes,
-- geminate changes, etc. for implementation of geminate_pref
local orig_word = split(text, " ", true)
local word
-- remove any apostrophes, since any still present at this stage
-- are purely cosmetic (e.g. in foreign names)
-- any apostrophes in the input that are standing in for hard signs
-- should have already been dealt with by the transliteration
-- module
text = rsub(text, '[\'’]', '')
-- insert or remove /j/ before [aou] so that palatal versions of these
-- vowels are always preceded by /j/ and non-palatal versions never are
-- (do this before the change below adding tertiary stress to final
-- palatal о):
-- (1) Non-palatal [ou] after always-hard шж (e.g. in брошю́ра, жю́ри)
-- despite the spelling (FIXME, should this also affect [a]?)
text = rsub(text, '([šž])j([ou])', '%2%3')
-- (2) Palatal [aou] after always-soft щчӂ and voiced variant ǰ (NOTE:
-- this happens before the change šč -> ɕː in phonetic_subs)
text = rsub(text, '([čǰӂ])([aou])', '%1j%2')
-- (3) ьо is pronounced as ьйо, i.e. like (possibly unstressed) ьё, e.g.
-- in Асунсьо́н
text = rsub(text, 'ʹo', 'ʹjo')
-- add tertiary stress to some final -о (this needs to be done before
-- eliminating dot-above, after adding ⁀, after adding /j/ before palatal о):
-- (1) after vowels, e.g. То́кио
text = rsub(text, '(' .. vowels .. accents .. '?o)⁀', '%1' .. CFLEX .. '⁀')
-- (2) when palatal, e.g. ра́нчо, га́учо, ма́чо, Ога́йо
text = rsub(text, 'jo⁀', 'jo' .. CFLEX .. '⁀')
-- eliminate dot-above, which has served its purpose of preventing any
-- sort of stress (needs to be done after adding tertiary stress to
-- final -о)
text = rsub(text, DOTABOVE, '')
-- eliminate dot-below (needs to be done after changes above that insert
-- j before [aou] after always-soft щчӂ)
text = rsub(text, 'ja' .. DOTBELOW, 'jạ')
if rfind(text, DOTBELOW) then
error("Dot-below accent can only be placed on я or palatal а")
end
text = adj and rsub(text, '(.[aoe]́?)go(' .. AC .. '?)⁀', '%1vo%2⁀') or text
text = adj and rsub(text, '(.[aoe]́?)go(' .. AC .. '?)sja⁀', '%1vo%2sja⁀') or text
function fetch_pos_property(i, ending)
local thispos = type(pos) == "table" and pos[i] or pos
local chart = pos_properties[thispos]
while type(chart) == "string" do -- handle aliases
chart = pos_properties[chart]
end
assert(type(chart) == "table")
local sub = chart[ending] or pos_properties['def'][ending]
assert(sub)
return sub
end
-- Pos-specific handling of final -ться: palatalized if pos=imp, else not
-- (infinitives). If we have multiple parts of speech, we need to be
-- trickier, splitting by word.
local function final_tsja_processing(pron, i)
local tsjapal = fetch_pos_property(i, 'tsjapal')
if tsjapal == 'n' then
-- FIXME!!! Should these also pay attention to grave accents?
pron = rsub(pron, '́tʹ?sja⁀', '́cca⁀')
pron = rsub(pron, '([^́])tʹ?sja⁀', '%1ca⁀')
end
return pron
end
if type(pos) == "table" then
--split by word and process each word
word = split(text, " ", true)
for i = 1, #word do
word[i] = final_tsja_processing(word[i], i)
end
text = table.concat(word, " ")
else
text = final_tsja_processing(text, 1)
end
--phonetic substitutions of various sorts
for _, phonsub in ipairs(phonetic_subs) do
text = rsub(text, phonsub[1], phonsub[2])
end
--voicing, devoicing
--NOTE: v before an obstruent assimilates in voicing and triggers voicing
--assimilation of a preceding consonant; neither happens before a sonorant
--1. absolutely final devoicing
text = rsub(text, '([bdgvɣzžĝĵǰӂ])(ʹ?⁀)$', function(a, b)
return devoicing[a] .. b end)
--2. word-final devoicing before another word
text = rsub(text, '([bdgvɣzžĝĵǰӂ])(ʹ?⁀ ⁀[^bdgɣzžĝĵǰӂ])', function(a, b)
return devoicing[a] .. b end)
--3. voicing/devoicing assimilation; repeat to handle recursive assimilation
while true do
local new_text = rsub(text, '([bdgvɣzžĝĵǰӂ])([ ‿⁀ʹːˑ()/]*[ptkfxsščɕcĉ])', function(a, b)
return devoicing[a] .. b end)
new_text = rsub(new_text, '([ptkfxsščɕcĉ])([ ‿⁀ʹːˑ()/]*v?[ ‿⁀ʹːˑ()/]*[bdgɣzžĝĵǰӂ])', function(a, b)
return voicing[a] .. b end)
if new_text == text then
break
end
text = new_text
end
--re-notate orthographic geminate consonants
text = rsub(text, '([^' .. vow .. '.%-_])' .. '%1', '%1ː')
text = rsub(text, '([^' .. vow .. '.%-_])' .. '%(%1%)', '%1(ː)')
--rewrite iotated vowels
text = rsub(text, '(j[%(ːˑ%)]*)([aeou])', function(a, b)
return a .. iotating[b] end)
-- eliminate j after consonant and before iotated vowel (including
-- semi-reduced ạ)
text = rsub(text, '([^' .. vow .. acc .. 'ʹʺ‿⁀ ]/?)j([äạëöü])', '%1%2')
--split by word and process each word
word = split(text, " ", true)
for i = 1, #word do
local pron = word[i]
-- Check for gemination at prefix boundaries; if so, convert the
-- regular gemination symbol ː to a special symbol ˑ that indicates
-- we always preserve the gemination unless gem=n. We look for
-- certain sequences at the beginning of a word, but make sure that
-- the original spelling is appropriate as well (see comment above
-- for geminate_pref).
if rfind(pron, 'ː') then -- optimize by only doing when gemination present
local orig_pron = orig_word[i]
local deac = rsub(pron, accents, '')
local orig_deac = rsub(orig_pron, accents, '')
-- the following two are optimizations to reduce the number of regex
-- checks in the majority of cases with words not beginning with ne-
-- or po-.
local is_ne = rfind(orig_deac, '⁀ne')
local is_po = rfind(orig_deac, '⁀po')
for _, gempref in ipairs(geminate_pref) do
local newspell = gempref[1]
local oldspell = gempref[2]
-- FIXME! The rsub below will be incorrect if there is
-- gemination in a joined preposition or particle
if rfind(orig_deac, '⁀' .. oldspell) and rfind(deac, '⁀' .. newspell) or
is_po and rfind(orig_deac, '⁀po' .. oldspell) and rfind(deac, '⁀po' .. newspell) or
is_ne and rfind(orig_deac, '⁀ne' .. oldspell) and rfind(deac, '⁀ne' .. newspell) or
is_ne and rfind(orig_deac, '⁀nepo' .. oldspell) and rfind(deac, '⁀nepo' .. newspell) then
pron = rsub(pron, '(⁀[^‿⁀ː]*)ː', '%1ˑ')
end
end
end
--degemination, optional gemination
local thisgem = type(gem) == "table" and gem[i] or gem
if thisgem == 'y' then
-- leave geminates alone, convert ˑ to regular gemination; ˑ is a
-- special gemination symbol used at prefix boundaries that we
-- remove only when gem=n, else we convert it to regular gemination
pron = rsub(pron, 'ˑ', 'ː')
elseif thisgem == 'o' then
-- make geminates optional, except for ɕӂ, also ignore left paren
-- in (ː) sequence
pron = rsub(pron, '([^ɕӂ%(%)])[ːˑ]', '%1(ː)')
elseif thisgem == 'n' then
-- remove gemination, except for ɕӂ
pron = rsub(pron, '([^ɕӂ%(%)])[ːˑ]', '%1')
else
-- degeminate l's
pron = rsub(pron, '(l)ː', '%1')
-- preserve gemination between vowels immediately after the stress,
-- special gemination symbol ˑ also remains, ɕӂ remain geminated,
-- žn remain geminated between vowels even not immediately after
-- the stress, n becomes optionally geminated when after but not
-- immediately after the stress, ssk and zsk remain geminated
-- immediately after the stress, else degeminate; we signal that
-- gemination should remain by converting to special symbol ˑ,
-- then removing remaining ː not after ɕӂ and left paren; do
-- various subs repeatedly in case of multiple geminations in a word
-- 1. immediately after the stress
pron = rsub_repeatedly(pron, '(' .. vowels .. stress_accents .. '[^ɕӂ%(%)])ː(' .. vowels .. ')', '%1ˑ%2')
-- 2. remaining geminate n after the stress between vowels
pron = rsub_repeatedly(pron, '(' .. stress_accents .. '.-' .. vowels .. accents .. '?n)ː(' .. vowels .. ')', '%1(ː)%2')
-- 3. remaining ž and n between vowels
pron = rsub_repeatedly(pron, '(' .. vowels .. accents .. '?[žn])ː(' .. vowels .. ')', '%1ˑ%2')
-- 4. ž word initially before vowels (жжение, жжём, etc.)
pron = rsub_repeatedly(pron, '(⁀ž)ː(' .. vowels .. ')', '%1ˑ%2')
-- 5. ssk (and zsk, already normalized) immediately after the stress
pron = rsub(pron, '(' .. vowels .. stress_accents .. '[^' .. vow .. ']*s)ː(k)', '%1ˑ%2')
-- 6. eliminate remaining gemination, except for ɕː and ӂː
pron = rsub(pron, '([^ɕӂ%(%)])ː', '%1')
-- 7. convert special gemination symbol ˑ to regular gemination
pron = rsub(pron, 'ˑ', 'ː')
end
-- handle soft and hard signs, assimilative palatalization
-- 1. insert j before i when required
pron = rsub(pron, 'ʹi', 'ʹji')
-- 2. insert glottal stop after hard sign if required
pron = rsub(pron, 'ʺ([aɛiouy])', 'ʔ%1')
-- 3. (ь) indicating optional palatalization
pron = rsub(pron, '%(ʹ%)', '⁽ʲ⁾')
-- 4. assimilative palatalization of consonants when followed by
-- front vowels or soft sign
pron = rsub(pron, '([mnpbtdkgfvszxɣrl' .. PSEUDOCONS ..'])([ː()]*[eiäạëöüʹ])', '%1ʲ%2')
pron = rsub(pron, '([cĵ])([ː()]*[äạöüʹ])', '%1ʲ%2')
-- 5. remove hard and soft signs
pron = rsub(pron, "[ʹʺ]", "")
-- reduction of unstressed word-final -я, -е; but special-case
-- unstressed не, же. Final -я always becomes [ə]; final -е may
-- become [ə], [e], [ɪ] or [ɨ] depending on the part of speech and
-- the preceding consonants/vowels.
pron = rsub(pron, '[äạ]⁀', 'ə⁀')
pron = rsub(pron, '⁀nʲe⁀', '⁀nʲi⁀')
pron = rsub(pron, '⁀že⁀', '⁀žy⁀')
-- function to fetch the appropriate value for ending and part of
-- speech, handling aliases and defaults and converting 'e' to 'ê'
-- so that the unstressed [e] sound is preserved
function fetch_e_sub(ending)
local sub = fetch_pos_property(i, ending)
if sub == 'e' then
-- add TEMPCFLEX (which will be converted to CFLEX) to preserve
-- the unstressed [e] sound, which will otherwise be converted
-- to [ɪ]; we do this instead of adding CFLEX directly because
-- we later convert some instances of the resulting 'e' to
-- 'i', and we don't want to do this when the user explicitly
-- wrote a Cyrillic е with a circumflex on it. [NOTE that
-- formerly applied when we added CFLEX directly: DO NOT
-- use ê here directly because it's a single composed char,
-- when we need the e and accent to be separate.]
return 'e' .. TEMPCFLEX
else
return sub
end
end
if new_final_e_code then
-- as requested by Atitarev, final unstressed -ɛ should be unreduced
pron = rsub(pron, 'ɛ⁀', 'ɛ' .. TEMPCFLEX .. '⁀')
-- handle substitutions in two parts, one for vowel+j+e sequences
-- and the other for cons+e sequences
pron = rsub(pron, vowels_c .. '(' .. accents .. '?j)ë⁀', function(v, ac)
local ty = v == 'o' and 'oe' or 've'
return v .. ac .. fetch_e_sub(ty) .. '⁀'
end)
-- consonant may palatalized, geminated or optional-geminated
pron = rsub(pron, '(.)(ʲ?[ː()]*)[eë]⁀', function(ch, mod)
local ty = ch == 'j' and 'je' or
rfind(ch, '[cĵšžĉĝ]') and 'hardsib' or
rfind(ch, '[čǰɕӂ]') and 'softsib' or
'softpaired'
return ch ..mod .. fetch_e_sub(ty) .. '⁀'
end)
if final_e_non_pausal then
-- final [e] should become [ɪ] when not followed by pause or
-- end of utterance (in other words, followed by space plus
-- anything but a pause symbol, or followed by tie bar).
pron = rsub(pron, 'e' .. TEMPCFLEX .. '⁀‿', 'i⁀‿')
if i < #word and word[i+1] ~= '⁀|⁀' then
pron = rsub(pron, 'e' .. TEMPCFLEX .. '⁀$', 'i⁀')
end
end
-- now convert TEMPCFLEX to CFLEX; we use TEMPCFLEX so the previous
-- two regexps won't affect cases where the user explicitly wrote
-- a circumflex
pron = rsub(pron, TEMPCFLEX, CFLEX)
else
-- Do the old way, which mostly converts final -е to schwa, but
-- has highly broken retraction code for vowel + [шжц] + е (but
-- not with accent on vowel!) before it that causes final -е in
-- this circumstance to become [ɨ], and a special hack for кое-.
pron = rsub(pron, vowels_c .. '([cĵšžĉĝ][ː()]*)[eë]', '%1%2ɛ')
pron = rsub(pron, '⁀ko(' .. stress_accents .. ')jë⁀', '⁀ko%1ji⁀')
pron = rsub(pron, '[eë]⁀', 'ə⁀')
end
-- retraction of е and и after цшж
pron = rsub(pron, '([cĵšžĉĝ][ː()]*)([ei])', function(a, b)
return a .. retracting[b] end)
--syllabify, inserting @ at syllable boundaries
--1. insert @ after each vowel
pron = rsub(pron, '(' .. vowels .. accents .. '?)', '%1@')
--2. eliminate word-final @
pron = rsub(pron, '@+⁀$', '⁀')
--3. move @ forward directly before any ‿⁀, as long as at least
-- one consonant follows that; we will move it across ‿⁀ later
pron = rsub(pron, '@([^@' .. vow .. acc .. ']*)([‿⁀]+[^‿⁀@' .. vow .. acc .. '])', '%1@%2')
--4. in a consonant cluster, move @ forward so it's before the
-- last consonant
pron = rsub(pron, '@([^‿⁀@' .. vow .. acc .. ']*)([^‿⁀@' .. vow .. acc .. 'ːˑ()ʲ]ʲ?[ːˑ()]*‿?[' .. vow .. acc .. '])', '%1@%2')
--5. move @ backward if in the middle of a "permanent onset" cluster,
-- e.g. sk, str, that comes before a vowel, putting the @ before
-- the permanent onset cluster
pron = rsub(pron, '([^‿⁀@_' .. vow .. acc .. ']?)(_*)([^‿⁀@_' .. vow .. acc .. '])(_*)@([^‿⁀@' .. vow .. acc .. 'ːˑ()ʲ])(ʲ?[ːˑ()]*[‿⁀]*[' .. vow .. acc .. '])', function(a, aund, b, bund, c, d)
if perm_syl_onset[a .. b .. c] or c == 'j' and rfind(b, '[čǰɕӂʲ]') then
return '@' .. a .. aund .. b .. bund .. c .. d
elseif perm_syl_onset[b .. c] then
return a .. aund .. '@' .. b .. bund .. c .. d
end end)
--6. if / is present (explicit syllable boundary), remove any @
-- (automatic boundary) and convert / to @
if rfind(pron, '/') then
pron = rsub(pron, '[^' .. vow .. acc .. ']+', function(x)
if rfind(x, '/') then
x = rsub(x, '@', '')
x = rsub(x, '/', '@')
end
return x
end)
end
--7. remove @ followed by a final consonant cluster
pron = rsub(pron, '@([^‿⁀@' .. vow .. ']+⁀)$', '%1')
--8. remove @ preceded by an initial consonant cluster (should only
-- happen when / is inserted by user or in цз, чж sequences)
pron = rsub(pron, '^(⁀[^‿⁀@' .. vow .. ']+)@', '%1')
--9. make sure @ isn't directly before linking ‿⁀
pron = rsub(pron, '@([‿⁀]+)', '%1@')
-- handle word-initial unstressed o and a; note, vowels always
-- followed by at least one char because of word-final ⁀
-- do after syllabification because syllabification doesn't know
-- about ɐ as a vowel
pron = rsub(pron, '^⁀[ao]([^' .. acc .. '])', '⁀ɐ%1')
--split by syllable
local syllable = split(pron, '@', true)
--create set of 1-based syllable indexes of stressed syllables
--(acute, grave, circumflex)
local stress = {}
for j = 1, #syllable do
if rfind(syllable[j], stress_accents) then
stress[j] = "real"
elseif rfind(syllable[j], CFLEX) then
stress[j] = "cflex"
end
end
-- iterate syllable by syllable to handle stress marks, vowel allophony
local syl_conv = {}
for j = 1, #syllable do
local syl = syllable[j]
local alnum
--vowel allophony
if stress[j] then
-- convert acute/grave/circumflex accent to appropriate
-- IPA marker of primary/secondary/unmarked stress
alnum = 1
syl = rsub(syl, '(.*)́', 'ˈ%1')
syl = rsub(syl, '(.*)̀', 'ˌ%1')
syl = rsub(syl, CFLEX, '')
elseif stress[j+1] == "real" then
-- special-casing written а immediately before the stress,
-- but only for primary/secondary stress, not circumflex
alnum = 2
else
alnum = 3
end
syl = rsub(syl, vowels_c, function(a)
if a ~= '' then
return allophones[a][alnum]
end end)
syl_conv[j] = syl
end
pron = table.concat(syl_conv, "")
-- Optional (j) before ɪ, which is always unstressed; not following
-- consonant across a joined word boundary
pron = rsub(pron, '([^' .. ipa_vow .. ']⁀‿⁀)jɪ', '%1' .. TEMPSUB .. 'ɪ')
pron = rsub(pron, '⁀jɪ', '⁀(j)ɪ')
pron = rsub(pron, '([' .. ipa_vow .. '])jɪ', "%1(j)ɪ")
pron = rsub(pron, TEMPSUB, 'j')
--consonant assimilative palatalization of tn/dn/zn, depending on whether [rl] precedes;
--sn no longer palatalizes per [[User:Thadh]]
pron = rsub(pron, '([rl]?)([ː()ˈˌ]*[dtz])([ː()ˈˌ]*nʲ)', function(a, b, c)
if a == '' then
return a .. b .. 'ʲ' .. c
else
return a .. b .. '⁽ʲ⁾' .. c
end end)
--consonant assimilative palatalization of st/zd, depending on
--whether [rl] precedes
pron = rsub(pron, '([rl]?)([ˈˌ]?[sz])([ː()ˈˌ]*[td]ʲ)', function(a, b, c)
if a == '' then
return a .. b .. 'ʲ' .. c
else
return a .. b .. '⁽ʲ⁾' .. c
end end)
--general consonant assimilative palatalization
pron = rsub_repeatedly(pron, '([szntdpbmfcĵx])([ː()ˈˌ]*)([szntdpbmfcĵlk]ʲ)', function(a, b, c)
if cons_assim_palatal['compulsory'][a..c] then
return a .. 'ʲ' .. b .. c
elseif cons_assim_palatal['optional'][a..c] then
return a .. '⁽ʲ⁾' .. b .. c
else
return a .. b .. c
end end)
-- further assimilation before alveolopalatals
pron = rsub(pron, 'n([ː()ˈˌ]*)([čǰɕӂ])', 'nʲ%1%2')
-- optional palatal assimilation of вп, вб only word-initially
pron = rsub(pron, '⁀([ː()ˈˌ]*[fv])([ː()ˈˌ]*[pb]ʲ)', '⁀%1⁽ʲ⁾%2')
-- optional palatal assimilation of бв but not in обв-
pron = rsub(pron, 'b([ː()ˈˌ]*vʲ)', 'b⁽ʲ⁾%1')
if rfind(word[i], '⁀o' .. accents .. '?bv') then
-- ə in case of a word with a preceding preposition
pron = rsub(pron, '⁀([ː()ˈˌ]*[ɐəo][ː()ˈˌ]*)b⁽ʲ⁾([ː()ˈˌ]*vʲ)', '⁀%1b%2')
end
-- palatalized labials before /j/ should be optionally palatalized
pron = rsub(pron, '([mpbfv])ʲ([ːˈˌ]*j)', '%1⁽ʲ⁾%2')
-- Word-final -лся (normally in past verb forms) should have optional
-- palatalization. Need to rewrite as -лсьа to defeat this.
-- FIXME: Should we move this to phonetic_subs?
if rfind(word[i], 'ls[äạ]⁀') then
pron = rsub(pron, 'lsʲə⁀', 'ls⁽ʲ⁾ə⁀')
end
word[i] = pron
end
text = table.concat(word, " ")
if bracket then
text = '[' .. text .. ']'
end
-- Front a and u between soft consonants. If between a soft and
-- optionally soft consonant (should only occur in that order, shouldn't
-- ever have a or u preceded by optionally soft consonant),
-- split the result into two. We only split into two even if there
-- happen to be multiple optionally fronted a's and u's to avoid
-- excessive numbers of possibilities (and it simplifies the code).
-- 1. First, temporarily add soft symbol to inherently soft consonants.
text = rsub(text, '([čǰɕӂj])', '%1ʲ')
-- 2. Handle case of [au] between two soft consonants
text = rsub_repeatedly(text, '(ʲ[ː()]*)([auʊ])([ˈˌ]?.ʲ)', function(a, b, c)
return a .. fronting[b] .. c end)
-- 3. Handle [au] between soft consonant and optional j, which is still fronted
text = rsub_repeatedly(text, '(ʲ[ː()]*)([auʊ])([ˈˌ]?%(jʲ%))', function(a, b, c)
return a .. fronting[b] .. c end)
-- 4. Handle case of [au] between soft and optionally soft consonant
if rfind(text, 'ʲ[ː()]*[auʊ][ˈˌ]?.⁽ʲ⁾') then
local opt_hard = rsub(text, '(ʲ[ː()]*)([auʊ])([ˈˌ]?.)⁽ʲ⁾', '%1%2%3')
local opt_soft = rsub(text, '(ʲ[ː()]*)([auʊ])([ˈˌ]?.)⁽ʲ⁾', function(a, b, c)
return a .. fronting[b] .. c .. 'ʲ' end)
text = { opt_hard, opt_soft }
else
text = { text }
end
for i, pronunciation in ipairs(text) do
-- 5. Undo addition of soft symbol to inherently soft consonants.
pronunciation = rsub(pronunciation, '([čǰɕӂj])ʲ', '%1')
-- convert special symbols to IPA
pronunciation = rsub(pronunciation, '[cĵ]ʲ', translit_conv_j)
pronunciation = rsub(pronunciation, '[cčgĉĝĵǰšžɕӂ]', translit_conv)
-- Assimilation involving hiatus of ɐ and ə
pronunciation = rsub(pronunciation, 'ə([‿⁀]*)[ɐə]', 'ɐ%1ɐ')
-- Use ɫ for dark l
pronunciation = rsub(pronunciation, 'l([^ʲ])', 'ɫ%1')
-- eliminate ⁀ symbol at word boundaries
-- eliminate _ symbol that prevents assimilations
-- eliminate pseudoconsonant at beginning of suffixes or end of prefixes
text[i] = rsub(pronunciation, '[⁀_' .. PSEUDOCONS ..']', '')
end
return text
end
-- Return the actual IPA corresponding to Cyrillic text as a single string.
-- This is a wrapper around export.ipa(), which returns a list; if that
-- function returns more than one item, they are separated by ", ".
function export.ipa_string(text, adj, gem, bracket, pos, zhpal, is_transformed)
local ipa_list = export.ipa(text, adj, gem, bracket, pos, zhpal, is_transformed)
return table.concat(ipa_list, ", ")
end
return export
en1a3oeewm835cm189389m3vmu6glvk
Mô đun:languages/data/3/l
828
272290
2569966
2569415
2026-10-12T15:06:21Z
Lcsnes
40261
2569966
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["laa"] = {
"Lapuyan Subanun",
12635302,
"phi",
}
m["lab"] = {
"Linear A",
nil,
}
m["lac"] = {
"Lacandon",
35766,
"myn",
}
m["lad"] = {
"tiếng Ladino",
36196,
"roa-ibe",
"Hebr, Latn, Cyrl",
"Tiếng Ladino",
"Ladino",
ancestors = "osp",
}
m["lae"] = {
"Pattani",
7148323,
"sit-whm",
}
m["laf"] = {
"Lafofa",
35711,
"alv",
}
m["lag"] = {
"Langi",
584983,
"bnt-mra",
}
m["lah"] = {
"tiếng Lahnda",
1334774,
"inc-pan",
"pa-Arab",
"Tiếng Lahnda",
"Lahnda",
ancestors = "inc-opa",
}
m["lai"] = {
"Lambya",
6481626,
"bnt-mby",
}
m["laj"] = {
"Lango (Uganda)",
35670,
"sdv-los",
"Latn",
}
m["lak"] = {
"Laka",
6474529, -- also Q55616620
"csu-sar", -- formerly classified as "alv-mbm"; see [[w:Lau Laka language]]
}
m["lam"] = {
"Lamba",
36098,
"bnt-sbi",
"Latn",
}
m["lan"] = {
"Laru",
3913987,
"nic-knj",
"Latn",
}
m["lap"] = {
"Kabba-Laka",
6474528,
"csu-sar",
}
m["laq"] = {
"Qabiao",
3436700,
"qfa-kra",
}
m["lar"] = {
"Larteh",
35639,
"alv-gng",
"Latn",
}
m["las"] = {
"tiếng Lama Gur",
35652,
"nic-gne",
"Latn",
"Tiếng Lama Gur",
"Lama Gur",
}
m["lau"] = {
"Laba",
12952694,
"paa-nha"
}
m["law"] = {
"Lauje",
6498258,
"poz",
"Latn",
}
m["lax"] = {
"tiếng Tiwa",
7810466,
"tbq-bdg",
"Latn, Beng",
"Tiếng Tiwa",
"Tiwa",
}
m["lay"] = {
"tiếng Bạch Lạp Mã",
6480756,
"sit-nba",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
"Tiếng Bạch Lạp Mã",
"Bạch Lạp Mã",
}
m["laz"] = {
"Aribwatsa",
3502104,
"poz-ocw",
"Latn",
}
m["lbb"] = {
"Label",
3214296,
"poz-ocw",
"Latn",
}
m["lbc"] = {
"Lakkia",
3027879,
"qfa-tak",
}
m["lbe"] = {
"tiếng Lak",
36206,
"cau-nec",
"Cyrl, Latn, Arab, Geor",
"Tiếng Lak",
"Lak",
translit = {Cyrl = "lbe-translit"},
override_translit = true,
display_text = {Cyrl = s["cau-Cyrl-displaytext"]},
entry_name = {
Cyrl = s["cau-Cyrl-entryname"],
Latn = s["cau-Latn-entryname"],
},
sort_key = "lbe-sortkey",
}
m["lbf"] = {
"Tinani",
784502,
"sit-whm",
}
m["lbg"] = {
"Laopang",
12952711,
"tbq-bis",
}
m["lbi"] = {
"La'bi",
6460637,
"alv-mbm",
}
m["lbj"] = {
"tiếng Ladakh",
35833,
"sit-lab",
"Tibt, Arab",
"Tiếng Ladakh",
"Ladakh",
translit = { Tibt = "Tibt-translit" },
override_translit = true,
display_text = s["Tibt-displaytext"],
entry_name = s["Tibt-entryname"],
sort_key = "Tibt-sortkey",
}
m["lbk"] = {
"Central Bontoc",
nil,
"phi",
"Latn",
}
m["lbl"] = {
"Libon Bikol",
18664462,
"phi",
}
m["lbm"] = {
"tiếng Lodha",
6666374,
"mun",
"Deva, Orya",
"Tiếng Lodha",
"Lodha",
translit = { Orya = "or-translit" },
}
m["lbn"] = {
"tiếng Lamet",
3216723,
"mkh-pal",
"Laoo",
"Tiếng Lamet",
"Lamet",
}
m["lbo"] = {
"tiếng Jru'",
6298648,
"mkh-ban",
"Latn",
"Tiếng Jru'",
"Jru'"
}
m["lbq"] = {
"Wampar",
7966946,
"poz-ocw",
"Latn",
}
m["lbr"] = {
"Northern Lorung",
6668040,
"sit-kie",
}
m["lbs"] = {
"Libyan Sign Language",
11775688,
"sgn",
}
m["lbt"] = {
"Lachi",
6583606,
"qfa-kra",
}
m["lbu"] = {
"Labu",
6467660,
"poz-ocw",
"Latn",
}
m["lbv"] = {
"Lavatbura-Lamusong",
2405981,
"poz-ocw",
"Latn",
}
m["lbw"] = {
"Tolaki",
3033597,
"poz-btk",
"Latn",
}
m["lbx"] = {
"Lawangan",
3120345,
"poz-bre",
"Latn",
}
m["lby"] = {
"Lamu-Lamu",
6482727,
nil,
"Latn",
}
m["lbz"] = {
"Lardil",
3915688,
"aus-tnk",
"Latn",
}
m["lcc"] = {
"Legenyem",
12952713,
"poz-hce",
"Latn",
}
m["lcd"] = {
"Lola",
6668867,
"poz-cet",
"Latn",
}
m["lce"] = {
"Loncong",
3058192,
}
m["lcf"] = {
"Lubu",
3264685,
}
m["lch"] = {
"Luchazi",
3265143,
"bnt-clu",
}
m["lcl"] = {
"Lisela",
6558753,
"poz-cma",
"Latn",
}
m["lcm"] = {
"Tungag",
3542085,
"poz-ocw",
"Latn",
}
m["lcp"] = {
"tiếng Lawa Tây",
18644465,
"mkh-pal",
"Thai",
"Tiếng Lawa Tây",
"Lawa Tây",
sort_key = "Thai-sortkey",
}
m["lcq"] = {
"Luhu",
6699890,
"poz-cma",
"Latn",
}
m["lcs"] = {
"Lisabata-Nuniali",
6558534,
}
m["lda"] = {
"Kla",
nil,
"dmn-mda",
"Latn",
}
m["ldb"] = {
"Idun",
3914441,
"nic-plc",
"Latn",
}
m["ldd"] = {
"Luri (Nigeria)",
4701277,
"cdc-wst",
}
m["ldg"] = {
"Lenyima",
3914423,
"nic-uce",
"Latn",
}
m["ldh"] = {
"Lamja-Dengsa-Tola",
11001739,
"nic-dak",
}
m["ldj"] = {
"Lemoro",
3912761,
"nic-jer",
}
m["ldk"] = {
"Leelau",
3914465,
"alv-bwj",
}
m["ldl"] = {
"Kaan",
3914501,
"alv-yun",
}
m["ldm"] = {
"Landoma",
35568,
"alv-mel",
}
m["ldn"] = {
"tiếng Láadan",
35757,
"art",
"Latn",
type = "appendix-constructed",
}
m["ldo"] = {
"Loo",
3915378,
"alv-bwj",
}
m["ldp"] = {
"Tso",
3913953,
"alv-wjk",
}
m["ldq"] = {
"Lufu",
35796,
"nic-ykb",
"Latn",
}
m["lea"] = {
"Lega-Shabunda",
12952719,
"bnt-lgb",
}
m["leb"] = {
"Lala-Bisa",
6480112,
"bnt-sbi",
}
m["lec"] = {
"Leco",
2625398,
"qfa-iso",
}
m["led"] = {
"Lendu",
523823,
"csu-lnd",
"Latn",
}
m["lee"] = {
"Lyélé",
3089032,
"nic-gnn",
}
m["lef"] = {
"tiếng Lelemi",
35585,
"alv-ntg",
"Latn",
"Tiếng Lelemi",
"Lelemi",
}
m["leh"] = {
"Lenje",
6522666,
"bnt-bot",
}
m["lei"] = {
"Lemio",
6521165,
"ngf-mad",
}
m["lej"] = {
"Lengola",
6522474,
"bnt-leb",
}
m["lek"] = {
"Leipon",
3229216,
"poz-aay",
"Latn",
}
m["lel"] = {
"Lele (Congo)",
56733,
"bnt-bsh",
}
m["lem"] = {
"Nomaande",
13479983,
"nic-mbw",
"Latn",
}
m["len"] = {
"Honduran Lenca",
36189,
"nai-len",
"Latn",
}
m["leo"] = {
"Leti (Cameroon)",
1345684,
"nic-mba",
ancestors = "bag",
}
m["lep"] = {
"tiếng Lepcha",
35990,
"sit",
"Lepc",
"Tiếng Lepcha",
"Lepcha",
translit = "lep-translit",
}
m["leq"] = {
"Lembena",
6521067,
"paa-eng",
}
m["ler"] = {
"Lenkau",
3229472,
"poz-aay",
"Latn",
}
m["les"] = {
"Lese",
11033939,
"csu-mle",
}
m["let"] = {
"Lesing-Gelimi",
12635445,
"poz-ocw",
"Latn",
}
m["leu"] = {
"Kara (New Guinea)",
3192889,
"poz-ocw",
"Latn",
}
m["lev"] = {
"Lamma",
6583582,
"ngf",
}
m["lew"] = { -- this code was basically assigned as a catch-all for things that aren't brs, kzf or unz
"Ledo Kaili",
35877,
"poz-kal",
"Latn",
}
m["lex"] = {
"Luang",
6695015,
"poz-tim",
}
m["ley"] = {
"Lemolang",
3033560,
}
m["lez"] = {
"tiếng Lezgi",
31746,
"cau-esm",
"Cyrl, Latn, Arab",
"Tiếng Lezgi",
"Lezgi",
translit = "lez-translit",
override_translit = true,
display_text = {Cyrl = s["cau-Cyrl-displaytext"]},
entry_name = {
Cyrl = s["cau-Cyrl-entryname"],
Latn = s["cau-Latn-entryname"],
},
}
m["lfa"] = {
"Lefa",
35643,
"bnt-baf",
}
m["lfn"] = {
"Lingua Franca Nova",
146803,
"art",
"Latn, Cyrl",
type = "appendix-constructed",
}
m["lga"] = {
"Lungga",
3267590,
"poz-ocw",
"Latn",
}
m["lgb"] = {
"Laghu",
3216169,
"poz-ocw",
"Latn",
}
m["lgg"] = {
"Lugbara",
3272737,
"csu-mma",
}
m["lgh"] = {
"Laghuu",
6472114,
"tbq-muj",
}
m["lgi"] = {
"Lengilu",
6522465,
"poz-swa",
"Latn",
}
m["lgk"] = {
"Neverver",
3241515,
"poz-vnc",
"Latn",
}
m["lgl"] = {
"Wala",
3565284,
"poz-sls",
}
m["lgm"] = {
"Lega-Mwenga",
14916883,
"bnt-lgb",
}
m["lgn"] = {
"Opuuo",
3354339,
"ssa-kom",
}
m["lgq"] = {
"tiếng Logba",
35813,
"alv-ntg",
"Latn",
"Tiếng Logba",
"Logba",
}
m["lgr"] = {
"Lengo",
3229454,
"poz-sls",
"Latn",
}
m["lgs"] = {
"Guinea-Bissau Sign Language",
5616441,
"sgn",
}
m["lgt"] = {
"Pahi",
7124545,
"paa-spk",
"Latn",
}
m["lgu"] = {
"Longgu",
3259105,
"poz-sls",
}
m["lgz"] = {
"Ligenza",
5531038,
"bnt-bun",
}
m["lha"] = {
"tiếng La Ha",
3112363,
"qfa-kra",
}
m["lhh"] = {
"Laha (Indonesia)",
6473107,
"poz-cma",
}
m["lhi"] = {
"Lahu Shi",
25559457,
"tbq-lho",
}
m["lhl"] = {
"tiếng Lahul Lohar",
12953672,
"inc",
"Takr",
"Tiếng Lahul Lohar",
"Lahul Lohar",
}
m["lhm"] = {
"tiếng Lhomi",
14240916,
"sit-tib",
"Deva",
"Tiếng Lhomi",
"Lhomi",
}
m["lhn"] = {
"Lahanan",
12953660,
}
m["lhp"] = {
"Lhokpu",
3436603,
"sit-dhi",
}
m["lhs"] = {
"tiếng Mlahsö",
3393063,
"sem-cna",
"Syrc",
"Tiếng Mlahsö",
"Mlahsö",
}
m["lht"] = {
"Lo-Toga",
3257566,
"poz-vnc",
"Latn",
}
m["lhu"] = {
"tiếng La Hủ",
35780,
"tbq-lho",
"Latn",
"Tiếng La Hủ",
"La Hủ",
}
m["lia"] = {
"West-Central Limba",
32867815,
"alv-lim",
}
m["lib"] = {
"Likum",
3240737,
"poz-aay",
"Latn",
}
m["lic"] = {
"tiếng Hlai",
934738,
"qfa-lic",
"Latn",
"Tiếng Hlai",
"Hlai",
}
m["lid"] = {
"Nyindrou",
3346666,
"poz-aay",
"Latn",
}
m["lie"] = {
"Likila",
11011614,
"bnt-ngn",
}
m["lif"] = {
"Limbu",
56477,
"sit-kir",
"Limb",
translit = "lif-translit",
}
m["lig"] = {
"Ligbi",
33594,
"dmn-jje",
}
m["lih"] = {
"Lihir",
6546938,
"poz-ocw",
"Latn",
}
m["lii"] = {
"Lingkhim",
12635536,
}
m["lij"] = {
"tiếng Liguria",
36106,
"roa-git",
"Latn",
"Tiếng Liguria",
"Liguria",
}
m["lik"] = {
"Lika",
1530394,
"bnt-boa",
}
m["lil"] = {
"tiếng Lillooet",
34154,
"sal",
nil,
"Tiếng Lillooet",
"Lillooet",
}
m["lio"] = {
"Liki",
4261493,
"poz-ocw",
"Latn",
}
m["lip"] = {
"Sekpele",
36257,
"alv-ntg",
}
m["liq"] = {
"tiếng Libido",
35691,
"cus-hec",
nil,
"Tiếng Libido",
"Libido",
}
m["lir"] = {
"Liberian Kreyol",
6541128,
"crp",
"Latn",
ancestors = "en",
}
m["lis"] = {
"tiếng Lisu",
56480,
"tbq-lso",
"Lisu, Latn",
"Tiếng Lisu",
"Lisu",
translit = {Lisu = "Lisu-translit"},
override_translit = true,
sort_key = {Lisu = s["Lisu-sortkey"]},
}
m["liu"] = {
"Logorik",
6667811,
"sdv-daj",
}
m["liv"] = {
"tiếng Livonia",
33698,
"urj-fin",
"Latn",
"Tiếng Livonia",
"Livonia",
entry_name = {
remove_diacritics = "'" .. u(0x2019),
from = {"Ǭ", "ǭ"},
to = {"Ō", "ō"}
},
}
m["liw"] = {
"Col",
2981948,
}
m["lix"] = {
"tiếng Liabuku",
13580912,
"poz-mun",
nil,
"Tiếng Liabuku",
"Liabuku"
}
m["liy"] = {
"tiếng Banda-Bambari",
11051591,
"bad-cnt",
"Latn",
"Tiếng Banda-Bambari",
"Banda-Bambari",
}
m["liz"] = {
"Libinza",
4914576,
"bnt-zbi",
}
m["lja"] = {
"Golpa",
nil,
"aus-yol",
"Latn",
}
m["lje"] = {
"Rampi",
7290041,
"poz",
}
m["lji"] = {
"Laiyolo",
6474218,
}
m["ljl"] = {
"Li'o",
2697010,
"poz",
}
m["ljp"] = {
"Lampung Api",
49215,
"poz-lgx",
"Latn",
}
m["ljw"] = {
"Yirandali",
17059380,
}
m["ljx"] = {
"Yuru",
nil,
}
m["lka"] = {
"tiếng Lakalei",
12952700,
"poz-tim",
"Latn",
"Tiếng Lakalei",
"Lakalei",
}
m["lkb"] = {
"Kabras",
nil,
"bnt-msl",
ancestors = "luy",
}
m["lkc"] = {
"Kucong",
6441572,
"tbq-lho",
}
m["lkd"] = {
"Lakondê",
20527166,
"sai-nmk",
"Latn",
}
m["lke"] = {
"Kenyi",
12952628,
"bnt-nyg",
}
m["lkh"] = {
"Lakha",
56606,
"sit-tib",
}
m["lki"] = {
"tiếng Laki",
56483,
"ku",
"fa-Arab",
"Tiếng Laki",
"Laki",
translit = "lki-translit",
entry_name = {remove_diacritics = c.kasra .. c.sukun},
}
m["lkj"] = {
"Remun",
7312239,
}
m["lkl"] = {
"Laeko-Libuat",
3504331,
"qfa-tor",
}
m["lkm"] = {
"Kalaamaya",
6349988,
}
m["lkn"] = {
"Lakon",
3216494,
"poz-vnc",
"Latn",
}
m["lko"] = {
"Khayo",
6401095,
"bnt-msl",
}
m["lkr"] = {
"Päri",
36487,
"sdv-lon",
}
m["lks"] = {
"Kisa",
nil,
"bnt-msl",
ancestors = "luy",
}
m["lkt"] = {
"tiếng Lakota",
33537,
"sio-dkt",
"Latn",
"Tiếng Lakota",
"Lakota",
}
m["lku"] = {
"Kungkari",
6444526,
}
m["lky"] = {
"Lokoya",
56687,
"sdv-lma",
}
m["lla"] = {
"Lala-Roba",
3914878,
"alv-yun",
}
m["llb"] = {
"Lolo",
11006056,
"bnt-mak",
ancestors = "vmw",
}
m["llc"] = {
"Lele (Guinea)",
6520837,
"dmn-mok",
}
m["lld"] = {
"tiếng Ladin",
36202,
"roa-rhe",
"Latn",
"Tiếng Ladin",
"Ladin",
}
m["lle"] = {
"Lele (New Guinea)",
3229269,
"poz-oce",
"Latn",
}
m["llf"] = {
"Hermit",
3134240,
"poz-aay",
"Latn",
}
m["llg"] = {
"Lole",
6668883,
"poz-tim",
}
m["llh"] = {
"Lamu",
6482736,
"tbq-lso",
}
m["lli"] = {
"Teke-Laali",
36543,
"bnt-nze",
}
m["llj"] = {
"Ladji-Ladji",
6512694,
"aus-pam",
}
m["llk"] = {
"Lelak",
3229263,
"poz-swa",
"Latn",
}
m["lll"] = {
"Lilau",
6547570,
"qfa-tor",
}
m["llm"] = {
"tiếng Lasalimu",
6492774,
"poz-mun",
"Latn",
"Tiếng Lasalimu",
"Lasalimu"
}
m["lln"] = {
"Lele (Chad)",
1641493,
"cdc-est",
}
m["llo"] = {
"Khlor",
27921409,
"mkh-kat",
}
m["llp"] = {
"tiếng Efate Bắc",
3580152,
"poz-vnc",
"Latn",
"Tiếng Efate Bắc",
"Efate Bắc",
}
m["llq"] = {
"Lolak",
12953679,
"phi",
}
m["lls"] = {
"Lithuanian Sign Language",
3915480,
"sgn",
}
m["llu"] = {
"Lau",
3218574,
"poz-sls",
"Latn",
}
m["llx"] = {
"Lauan",
35682,
"poz-occ",
"Latn",
}
m["lma"] = {
"East Limba",
11034212,
"alv-lim",
}
m["lmb"] = {
"Merei",
12952843,
"poz-vnc",
"Latn",
}
m["lmc"] = {
"Limilngan",
6549414,
}
m["lmd"] = {
"Lumun",
35777,
"alv-tal",
}
m["lme"] = {
"Pévé",
56249,
"cdc-mas",
}
m["lmf"] = {
"South Lembata",
7567815,
}
m["lmg"] = {
"Lamogai",
278365,
"poz-ocw",
"Latn",
}
m["lmh"] = {
"Lambichhong",
6481472,
"sit-kie",
ancestors = "ybh",
}
m["lmi"] = {
"Lombi",
11259563,
"csu-maa",
}
m["lmj"] = {
"West Lembata",
6864697,
}
m["lmk"] = {
"tiếng Lamkang",
12952703,
"tbq-kuk",
"Latn, Mymr",
"Tiếng Lamkang",
"Lamkang",
}
m["lml"] = {
"tiếng Hano",
3063193,
"poz-vnc",
"Latn",
"Tiếng Hano",
"Hano",
}
m["lmn"] = {
"tiếng Lambadi",
33474,
"inc-wes",
ancestors = "raj",
"Knda, Deva, Telu",
"Tiếng Lambadi",
"Lambadi",
}
m["lmo"] = {
"tiếng Lombard",
33754,
"roa-git",
"Latn",
"Tiếng Lombard",
"Lombard",
}
m["lmp"] = {
"tiếng Limbum",
35801,
"nic-nka",
"Latn",
"Tiếng Limbum",
"Limbum",
}
m["lmq"] = {
"Lamatuka",
6480982,
}
m["lmr"] = {
"Lamalera",
6480787,
}
m["lmu"] = {
"Lamenu",
740604,
"poz-vnc",
"Latn",
}
m["lmv"] = {
"Lomaiviti",
3130221,
"poz-occ",
"Latn",
}
m["lmw"] = {
"Lake Miwok",
3216471,
"nai-you",
"Latn",
}
m["lmx"] = {
"Laimbue",
6473933,
"nic-rnw",
}
m["lmy"] = {
"tiếng Lamboya",
6481538,
"poz-cet",
"Latn",
"Tiếng Lamboya",
"Lamboya",
sort_key = "lmy-sortkey",
}
m["lmz"] = {
"Lumbee",
12635887,
nil,
"Latn",
}
m["lna"] = {
"Langbashe",
11137550,
"bad",
}
m["lnb"] = {
"Mbalanhu",
12952830,
"bnt-ova",
}
m["lnd"] = {
"Lun Bawang",
13479839,
"poz-swa",
"Latn",
}
m["lnh"] = {
"tiếng Lanoh",
6487291,
"mkh-asl",
nil,
"Tiếng Lanoh",
"Lanoh",
}
m["lni"] = {
"Daantanai'",
5207384,
"paa-sbo",
}
m["lnj"] = {
"Linngithigh",
3915694,
"aus-pmn",
"Latn",
}
m["lnl"] = {
"tiếng Banda Trung Nam",
41354532,
"bad",
"Latn",
"Tiếng Banda Trung Nam",
"Banda Trung Nam",
}
m["lnm"] = {
"Langam",
6485678,
"paa",
"Latn",
}
m["lnn"] = {
"Lorediakarkar",
6680287,
"poz-vnc",
"Latn",
}
m["lno"] = {
"Lango (Sudan)",
223306,
"sdv-lma",
}
m["lns"] = {
"Lamnso'",
35788,
"nic-rng",
}
m["lnu"] = {
"Longuda",
35797,
"alv-bam",
"Latn",
}
m["lnw"] = {
"Lanima",
nil,
"aus-pam",
"Latn",
}
m["loa"] = {
"Loloda",
6669025,
"paa-nha",
"Latn",
}
m["lob"] = {
"tiếng Lobi",
35807,
"nic-gur",
"Latn",
"Tiếng Lobi",
"Lobi",
}
m["loc"] = {
"Inonhan",
2400870,
"phi",
}
m["lod"] = {
"Berawan",
4891018,
"poz-swa",
"Latn",
}
m["loe"] = {
"Saluan",
12953867,
"poz",
}
m["lof"] = {
"Logol",
35779,
"alv-hei",
}
m["log"] = {
"Logo",
2613477,
"csu-mma",
}
m["loh"] = {
"Narim",
56353,
"sdv",
}
m["loi"] = {
"Lomakka",
3913961,
"alv-kul",
}
m["loj"] = {
"tiếng Lou",
3260104,
"poz-aay",
"Latn",
"Tiếng Lou",
"Lou",
}
m["lok"] = {
"Loko",
3914912,
"dmn-msw",
"Latn",
}
m["lol"] = {
"tiếng Mongo",
112893,
"bnt-mon",
"Latn",
"Tiếng Mongo",
"Mongo",
}
m["lom"] = {
"tiếng Loma",
35885,
"dmn-msw",
"Latn, Loma",
"Tiếng Loma",
"Loma",
}
m["lon"] = {
"Malawi Lomwe",
10975286,
}
m["loo"] = {
"Lombo",
11167192,
"bnt-ske",
}
m["lop"] = {
"Lopa",
3914875,
}
m["loq"] = {
"Lobala",
4849710,
"bnt-ngn",
}
m["lor"] = {
"Téén",
36467,
"alv-kul",
}
m["los"] = {
"Loniu",
3259202,
"poz-aay",
"Latn",
}
m["lot"] = {
"Lotuko",
56672,
"sdv-lma",
}
m["lou"] = {
"tiếng Creole Louisiana",
1185127,
"crp",
"Latn",
ancestors = "fr",
sort_key = s["roa-oil-sortkey"],
"Tiếng Creole Louisiana",
"Creole Louisiana",
}
m["lov"] = {
"Lopi",
12952740,
"tbq-tal",
}
m["low"] = {
"Tampias Lobu",
12953674,
}
m["lox"] = {
"Loun",
6689636,
"poz-cet",
"Latn",
}
m["loy"] = {
"tiếng Loke",
12952744,
"sit-tib",
"Tibt, Deva",
"Tiếng Loke",
"Loke",
translit = { Tibt = "Tibt-translit" },
override_translit = true,
display_text = s["Tibt-displaytext"],
entry_name = s["Tibt-entryname"],
sort_key = "Tibt-sortkey",
}
m["loz"] = {
"Lozi",
33628,
"bnt-sts",
"Latn",
}
m["lpa"] = {
"Lelepa",
3229273,
"poz-vnc",
}
m["lpe"] = {
"Lepki",
4259152,
"paa-pau",
}
m["lpn"] = {
"Long Phuri Naga",
6673049,
"sit-aao",
}
m["lpo"] = {
"Lipo",
56921,
"tbq-llo",
"Plrd",
}
m["lpx"] = {
"Lopit",
56684,
"sdv-lma",
}
m["lra"] = {
"Rara Bakati'",
3419746,
"day",
}
m["lrc"] = {
"tiếng Lur Bắc",
19933293,
"ira-swi",
"fa-Arab",
"Tiếng Lur Bắc",
"Lur Bắc",
ancestors = "pal",
}
m["lre"] = {
"Laurentian",
1790301,
"iro-nor",
"Latn",
}
m["lrg"] = {
"Laragia",
2591193,
}
m["lri"] = {
"Marachi",
6754565,
"bnt-msl",
}
m["lrk"] = {
"Loarki",
6663513,
}
m["lrl"] = {
"tiếng Lar",
33468,
"ira-swi",
"fa-Arab",
"Tiếng Lar",
"Lar",
}
m["lrm"] = {
"Marama",
nil,
"bnt-msl",
ancestors = "luy",
}
m["lrn"] = {
"Lorang",
6678781,
}
m["lro"] = {
"Laro",
35687,
"alv-hei",
}
m["lrr"] = {
"Southern Lorung",
12952742,
"sit-kie",
}
m["lrt"] = {
"Larantuka Malay",
6488691,
"poz-mly",
"Latn",
}
m["lrv"] = {
"Larevat",
3217892,
"poz-vnc",
"Latn",
}
m["lrz"] = {
"Lemerig",
2028448,
"poz-vnc",
}
m["lsa"] = {
"Lasgerdi",
3218296,
"ira-kms",
}
m["lsd"] = {
"tiếng Lishana Deni",
3436461,
"sem-nna",
"Hebr",
"Tiếng Lishana Deni",
"Lishana Deni",
}
m["lse"] = {
"Lusengo",
6683546,
"bnt-zbi",
}
m["lsh"] = {
"Lish",
6558822,
"sit-khb",
}
m["lsi"] = {
"tiếng Lashi",
6493203,
"tbq-brm",
nil,
"Tiếng Lashi",
"Lashi",
}
m["lsl"] = {
"Latvian Sign Language",
6497414,
"sgn",
}
m["lsm"] = {
"Saamia",
3739441,
"bnt-msl",
}
m["lso"] = {
"Laos Sign Language",
6488022,
"sgn",
}
m["lsp"] = {
"Panamanian Sign Language",
7129968,
"sgn",
}
m["lsr"] = {
"Aruop",
3450566,
"qfa-tor",
}
m["lss"] = {
"Lasi",
12953669,
"inc-snd",
"Arab",
ancestors = "sd",
}
m["lst"] = {
"Trinidad and Tobago Sign Language",
7842495,
"sgn",
}
m["lsy"] = {
"Mauritian Sign Language",
6793754,
"sgn",
}
m["ltc"] = {
"tiếng Hán trung cổ",
2016252,
"zhx",
"Hant, Phag, Tang",
"Tiếng Hán trung cổ",
"Hán trung cổ",
translit = {Hant = "zh-translit"},
sort_key = {Hant = "Hani-sortkey"},
}
m["ltg"] = {
"tiếng Latgale",
36212,
"bat-eas",
"Latn",
"Tiếng Latgale",
"Latgale",
}
m["lti"] = {
"tiếng Leti (Indonesia)",
3236912,
"poz-tim",
"Latn",
"Tiếng Leti (Indonesia)",
"Leti (Indonesia)",
}
m["ltn"] = {
"tiếng Latundê",
nil,
"sai-nmk",
"Latn",
"Tiếng Latundê",
"Latundê",
}
m["lto"] = {
"Olutsotso",
nil,
"bnt-msl",
ancestors = "luy",
}
m["lts"] = {
"Lutachoni",
nil,
"bnt-msl",
}
m["ltu"] = {
"Latu",
6497181,
"poz-cma",
}
m["lua"] = {
"tiếng Luba-Kasai",
34173,
"bnt-lub",
"Latn",
}
m["luc"] = {
"tiếng Aringa",
56556,
"csu-mma",
"Latn",
"Tiếng Aringa",
"Aringa",
}
m["lud"] = {
"tiếng Lyydi",
33918,
"urj-fin",
"Latn, Cyrl",
"Tiếng Lyydi",
"Lyydi",
}
m["lue"] = {
"Luvale",
33597,
"bnt-clu",
"Latn",
}
m["luf"] = {
"Laua",
6497673,
}
m["lui"] = {
"Luiseño",
56236,
"azc-cup",
"Latn",
entry_name = {remove_diacritics = c.acute .. c.circ},
}
m["luj"] = {
"Luna",
11003832,
"bnt-lbn",
}
m["luk"] = {
"tiếng Lunana",
56446,
"sit-tib",
"Tibt",
"Tiếng Lunana",
"Lunana",
ancestors = "dz",
translit = "Tibt-translit",
override_translit = true,
display_text = s["Tibt-displaytext"],
entry_name = s["Tibt-entryname"],
sort_key = "Tibt-sortkey",
}
m["lul"] = {
"Olu'bo",
6589401,
"csu-mma",
}
m["lum"] = {
"Luimbi",
10963134,
"bnt-clu",
}
m["lun"] = {
"Lunda",
33607,
"bnt-lun",
"Latn",
}
m["luo"] = {
"Luo",
5414796,
"sdv-los",
"Latn",
}
m["lup"] = {
"tiếng Lumbu",
35793,
"bnt-sir",
"Latn",
"Tiếng Lumbu",
"Lumbu",
}
m["luq"] = {
"tiếng Lucumí",
1768321,
"alv-yor",
"Latn",
"Tiếng Lucumí",
"Lucumí",
ancestors = "yo",
sort_key = {
remove_diacritics = c.acute,
},
}
m["lur"] = {
"Laura",
2984540,
}
m["lus"] = {
"tiếng Mizo",
36147,
"tbq-kuk",
"Latn",
"Tiếng Mizo",
"Mizo",
}
m["lut"] = {
"tiếng Lushootseed",
33658,
"sal",
"Latn",
"Tiếng Lushootseed",
"Lushootseed",
}
m["luu"] = {
"Lumba-Yakkha",
6703050,
"sit-kie",
ancestors = "ybh",
}
m["luv"] = {
"Luwati",
33402,
"inc-snd",
"Khoj",
}
m["luy"] = {
"tiếng Luhya",
35893,
"bnt-msl",
"Latn",
"Tiếng Luhya",
"Luhya",
}
m["luz"] = {
"tiếng Lur Nam",
12952748,
"ira-swi",
"fa-Arab",
"Tiếng Lur Nam",
"Lur Nam",
ancestors = "pal",
}
m["lva"] = {
"Maku'a",
35790,
"poz-tim",
}
m["lvi"] = {
"tiếng Lawi",
6502657,
"mkh-ban",
"Latn",
"Tiếng Lawi",
"Lawi",
}
m["lvk"] = {
"tiếng Lavukaleve",
770547,
"paa",
"Latn",
"Tiếng Lavukaleve",
"Lavukaleve",
}
m["lvl"] = {
"Lwel",
93936908,
"bnt-bdz",
"Latn",
}
m["lvu"] = {
"Levuka",
6535860,
}
m["lwa"] = {
"Lwalu",
6706953,
"bnt-lbn",
}
m["lwe"] = {
"Lewo Eleng",
6537465,
}
m["lwg"] = {
"Wanga",
nil,
"bnt-msl",
ancestors = "luy",
}
m["lwh"] = {
"White Lachi",
8842956,
"qfa-kra",
}
m["lwl"] = {
"tiếng Lawa Đông",
18644464,
"mkh-pal",
"Thai",
"Tiếng Lawa Đông",
"Lawa Đông",
sort_key = "Thai-sortkey",
}
m["lwm"] = {
"tiếng Laomian",
19597674,
"tbq-bis",
"Thai",
"Tiếng Laomian",
"Laomian",
}
m["lwo"] = {
"Luwo",
56362,
"sdv-lon",
"Latn",
}
m["lws"] = {
"Malawian Sign Language",
47522462,
"sgn",
}
m["lwt"] = {
"Lewotobi",
14916885,
}
m["lwu"] = {
"Lawu",
6505073,
"tbq-lwo",
}
m["lww"] = {
"tiếng Lewo",
3237321,
"poz-vnc",
"Latn",
"Tiếng Lewo",
"Lewo",
}
m["lya"] = {
"tiếng Laya",
56602,
"sit-tib",
"Tibt",
"Tiếng Laya",
"Laya",
ancestors = "dz",
translit = "Tibt-translit",
override_translit = true,
display_text = s["Tibt-displaytext"],
entry_name = s["Tibt-entryname"],
sort_key = "Tibt-sortkey",
}
m["lyg"] = {
"tiếng Lyngngam",
12635902,
"aav-pkl",
nil,
"Tiếng Lyngngam",
"Lyngngam",
}
m["lyn"] = {
"Luyana",
3268098,
}
m["lzh"] = {
"tiếng Văn ngôn",
37041,
"zhx",
"Hant",
"Tiếng Văn ngôn",
"Văn ngôn",
wikimedia_codes = "zh-classical",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["lzl"] = {
"Litzlitz",
6653424,
"poz-vnc",
"Latn",
}
m["lzn"] = {
"Leinong Naga",
5924455,
"sit-kch",
}
m["lzz"] = {
"tiếng Laz",
1160372,
"ccs-zan",
"Geor, Latn",
"Tiếng Laz",
"Laz",
translit = {Geor = "lzz-translit"},
override_translit = true,
entry_name = {remove_diacritics = c.grave .. c.acute .. c.circ},
}
return require("Module:languages").finalizeData(m, "language")
l98xflhx610rair89583btrxbutfrcn
Mô đun:languages/canonical names
828
273923
2569993
2568473
2026-10-12T16:08:43Z
Hiyuune
50834
2569993
Scribunto
text/plain
return {
["Aba"] = "utp",
["Abai Sungai"] = "abf",
["Abenlen Ayta"] = "abp",
["Abipon"] = "axb",
["Abishira"] = "ash",
["Abom"] = "aob",
["Abu"] = "ado",
["Abu' Arapesh"] = "aah",
["Abua"] = "abn",
["Abun"] = "kgr",
["Abung"] = "abl",
["Abureni"] = "mgj",
["Abé"] = "aba",
["Ache"] = "yif",
["Aché"] = "guq",
["Acroá"] = "acs",
["Adabe"] = "adb",
["Adai"] = "xad",
["Adamorobe Sign Language"] = "ads",
["Adang"] = "adn",
["Adangbe"] = "adq",
["Adap"] = "adp",
["Adasen"] = "tiu",
["Adele"] = "ade",
["Adhola"] = "adh",
["Tiếng Adjukru"] = "adj",
["Adithinngithigh"] = "dth",
["Adonara"] = "adr",
["Aduge"] = "adu",
["Aeka"] = "aez",
["Aekyom"] = "awi",
["Aequian"] = "xae",
["Afghan Sign Language"] = "afg",
["Afitti"] = "aft",
["Afra"] = "ulf",
["Afrihili"] = "afh",
["Afro-Seminole Creole"] = "afs",
["Agarabi"] = "agd",
["Agariya"] = "agi",
["Agavotaguerra"] = "avo",
["Aghu"] = "ahh",
["Aghu Tharrnggala"] = "gtu",
["Agi"] = "aif",
["Agob"] = "kit",
["Agoi"] = "ibm",
["Aguano"] = "aga",
["Aguaruna"] = "agr",
["Aguna"] = "aug",
["Agusan Manobo"] = "msm",
["Agutaynen"] = "agn",
["Agwagwune"] = "yay",
["Ahanta"] = "aha",
["Ahirani"] = "ahr",
["Ahwai"] = "nfd",
["Ai-Cham"] = "aih",
["Aighon"] = "aix",
["Aikanã"] = "tba",
["Aiklep"] = "mwg",
["Aimele"] = "ail",
["Ainbai"] = "aic",
["Aiome"] = "aki",
["Airoran"] = "air",
["Aisi"] = "mmq",
["Aiwoo"] = "nfl",
["Aja"] = "aja",
["Ajagua"] = "sai-ajg",
["Ajawa"] = "ajw",
["Ajyíninka Apurucayali"] = "cpc",
["Ak"] = "akq",
["Aka (Central Africa)"] = "axk",
["Aka (Sudan)"] = "soh",
["Aka-Bea"] = "abj",
["Aka-Cari"] = "aci",
["Aka-Kol"] = "aky",
["Aka-Kora"] = "ack",
["Akar-Bale"] = "acl",
["Akatek"] = "knj",
["Ake"] = "aik",
["Akebu"] = "keu",
["Akei"] = "tsr",
["Akeu"] = "aeu",
["Akolet"] = "akt",
["Akoye"] = "miw",
["Akpa"] = "akf",
["Akpes"] = "ibe",
["Akrukay"] = "afi",
["Akuku"] = "ayk",
["Akum"] = "aku",
["Akurio"] = "ako",
["Akuwagel"] = "bey",
["Akwa"] = "akw",
["Akyaung Ari"] = "nqy",
["Al-Sayyid Bedouin Sign Language"] = "syy",
["Alabat Island Agta"] = "dul",
["Alacatlatzala Mixtec"] = "mim",
["Alago"] = "ala",
["Alapmunte"] = "apv",
["Alas-Kluet Batak"] = "btz",
["Alazapa"] = "nai-ala",
["Albanian Sign Language"] = "sqk",
["Alege"] = "alf",
["Algerian Sign Language"] = "asp",
["Ali"] = "aiy",
["Alladian"] = "ald",
["Alngith"] = "aid",
["Alo Phola"] = "ypo",
["Alor"] = "aol",
["Aloápam Zapotec"] = "zaq",
["Alu"] = "mte",
["Alugu"] = "aub",
["Tiếng Alune"] = "alp",
["Alungul"] = "aus-alu",
["Aluo"] = "yna",
["Alur"] = "alz",
["Alutiiq"] = "ems",
["Alviri-Vidari"] = "avd",
["Alyawarr"] = "aly",
["Amahai"] = "amq",
["Amanayé"] = "ama",
["Amara"] = "aie",
["Amarakaeri"] = "amr",
["Amarizana"] = "awd-ama",
["Amasi"] = "alv-ama",
["Amatlán Zapotec"] = "zpo",
["Amba"] = "rwm",
["Ambakich"] = "aew",
["Ambala Ayta"] = "abc",
["Ambelau"] = "amv",
["Ambele"] = "ael",
["Amblong"] = "alm",
["Ambo"] = "amb",
["Ambul"] = "apo",
["Amele"] = "aey",
["Amganad Ifugao"] = "ifa",
["Ami"] = "amy",
["Ammonite"] = "sem-amm",
["Amo"] = "amo",
["Amol"] = "alx",
["Amoltepec Mixtec"] = "mbz",
["Amondawa"] = "adw",
["Amorite"] = "sem-amo",
["Ampanang"] = "apg",
["Ampari Dogon"] = "aqd",
["Amri Karbi"] = "ajz",
["Amto"] = "amt",
["Ana Tinga Dogon"] = "dti",
["Anakalangu"] = "akg",
["Anam"] = "pda",
["Anambé"] = "aan",
["Anamgura"] = "imi",
["Anasi"] = "bpo",
["Ancient Ligurian"] = "xlg",
["Ancient North Arabian"] = "xna",
["Ancient Zapotec"] = "xzp",
["Andai"] = "afd",
["Andajin"] = "ajn",
["Andaman Creole Hindi"] = "hca",
["Andaqui"] = "ana",
["Andarum"] = "aod",
["Andegerebinha"] = "adg",
["Andh"] = "anr",
["Andio"] = "bzb",
["Andjingith"] = "aus-and",
["Andoa"] = "anb",
["Andoque"] = "ano",
["Andoquero"] = "sai-and",
["Andra-Hus"] = "anx",
["Aneityum"] = "aty",
["Anem"] = "anz",
["Aneme Wake"] = "aby",
["Anfillo"] = "myo",
["Tiếng Angaataha"] = "agm",
["Angaité"] = "aqt",
["Angal"] = "age",
["Angal Enen"] = "aoe",
["Angal Heneng"] = "akh",
["Angevin"] = "roa-ang",
["Angkamuthi"] = "avm",
["Angkola Batak"] = "akb",
["Angloromani"] = "rme",
["Angor"] = "agg",
["Angoram"] = "aog",
["Angosturas Tunebo"] = "tnd",
["Anguthimri"] = "awg",
["Ani Phowa"] = "ypn",
["Animere"] = "anf",
["Anindilyakwa"] = "aoi",
["Anjam"] = "boj",
["Anmatyerre"] = "amx",
["Anong"] = "nun",
["Anor"] = "anj",
["Anserma"] = "ans",
["Ansus"] = "and",
["Antakarinya"] = "ant",
["Antigua and Barbuda Creole English"] = "aig",
["Anu"] = "anl",
["Anufo"] = "cko",
["Anus"] = "auq",
["Anuta"] = "aud",
["Anyin Morofo"] = "mtb",
["Aoheng"] = "pni",
["Aore"] = "aor",
["Ap Ma"] = "kbx",
["Apalachee"] = "xap",
["Apali"] = "ena",
["Apasco-Apoala Mixtec"] = "mip",
["Apiaká"] = "api",
["Apma"] = "app",
["Apolista"] = "awd-apo",
["Aproumu Aizi"] = "ahp",
["Apurinã"] = "apu",
["Arabana"] = "ard",
["Arabela"] = "arl",
["Aralle-Tabulahan"] = "atq",
["Arammba"] = "stk",
["Aranama-Tamique"] = "xrt",
["Arandai"] = "jbj",
["Araona"] = "aro",
["Arapaso"] = "arj",
["Arara-Karo"] = "arr",
["Ararandewára"] = "xaj",
["Arawum"] = "awm",
["Arbore"] = "arv",
["Are"] = "mwc",
["Areba"] = "aea",
["Argentine Sign Language"] = "aed",
["Arguni"] = "agf",
["Arhâ"] = "aqr",
["Arhö"] = "aok",
["Aribwatsa"] = "laz",
["Aribwaung"] = "ylu",
["Arifama-Miniafia"] = "aai",
["Arigidi"] = "aqg",
["Arikapú"] = "ark",
["Arikara"] = "ari",
["Arikem"] = "ait",
["Tiếng Aringa"] = "luc",
["Armazic"] = "xrm",
["Armenian Sign Language"] = "aen",
["Arop-Lokep"] = "apr",
["Arop-Sissano"] = "aps",
["Arosi"] = "aia",
["Arritinngithigh"] = "rrt",
["Arta"] = "atz",
["Arua"] = "aru",
["Aruamu"] = "msy",
["Aruek"] = "aur",
["Aruop"] = "lsr",
["Arutani"] = "atx",
["Aruá"] = "arx",
["As"] = "asz",
["Asaro'o"] = "mtv",
["Ashe"] = "ahs",
["Asháninka"] = "cni",
["Ashéninka Perené"] = "prq",
["Asilulu"] = "asl",
["Asoa"] = "asv",
["Assangori"] = "sjg",
["Asu"] = "aum",
["Asue Awyu"] = "psa",
["Asunción Mixtepec Zapotec"] = "zoo",
["Ata"] = "atm",
["Ata Manobo"] = "atd",
["Atakapa"] = "aqp",
["Atampaya"] = "amz",
["Atanques"] = "cba-ata",
["Atatláhuca Mixtec"] = "mib",
["Ateso"] = "teo",
["Ati"] = "atk",
["Atohwaim"] = "aqm",
["Atong (Cameroon)"] = "ato",
["Atorada"] = "aox",
["Atsam"] = "cch",
["Atsugewi"] = "atw",
["Attié"] = "ati",
["Au"] = "avt",
["Aulua"] = "aul",
["Aurá"] = "aux",
["Aushi"] = "auh",
["Aushiri"] = "avs",
["Auslan"] = "asf",
["Austral"] = "aut",
["Australian Aboriginal Sign Language"] = "asw",
["Austrian Sign Language"] = "asq",
["Austronesian Mari"] = "hob",
["Auwe"] = "smf",
["Auyana"] = "auy",
["Auye"] = "auu",
["Auyokawa"] = "auo",
["Avau"] = "avb",
["Avava"] = "tmb",
["Avikam"] = "avi",
["Avá-Canoeiro"] = "avv",
["Awa (New Guinea)"] = "awb",
["Awa-Cuaiquer"] = "kwi",
["Awabakal"] = "awk",
["Awak"] = "awo",
["Awar"] = "aya",
["Awara"] = "awx",
["Awbono"] = "awh",
["Awera"] = "awr",
["Awetí"] = "awe",
["Awngthim"] = "gwm",
["Awtuw"] = "kmn",
["Awun"] = "aww",
["Awutu"] = "afu",
["Awyi"] = "auw",
["Axamb"] = "ahb",
["Ayabadhu"] = "ayd",
["Ayautla Mazatec"] = "vmy",
["Ayerrerenge"] = "axe",
["Ayi"] = "ayq",
["Ayizi"] = "yyz",
["Ayizo"] = "ayb",
["Ayomán"] = "sai-ayo",
["Ayoquesco Zapotec"] = "zaf",
["Ayoreo"] = "ayo",
["Tiếng Ayu"] = "ayu",
["Ayutla Mixtec"] = "miy",
["Azha"] = "aza",
["Azhe"] = "yiz",
["Baa"] = "kwb",
["Baan"] = "bvj",
["Baangi"] = "bqx",
["Baba"] = "bbw",
["Babango"] = "bbm",
["Babanki"] = "bbk",
["Babine-Witsuwit'en"] = "bcr",
["Babole"] = "bvx",
["Bada"] = "bhz",
["Badeshi"] = "bdz",
["Badimaya"] = "bia",
["Badyara"] = "pbp",
["Baeggu"] = "bvd",
["Baelelea"] = "bvc",
["Baenan"] = "sai-bae",
["Baetora"] = "btr",
["Bafanji"] = "bfj",
["Bafaw"] = "bwt",
["Bafia"] = "ksf",
["Bafut"] = "bfd",
["Baga Kaloum"] = "bqf",
["Baga Koga"] = "bgo",
["Baga Manduri"] = "bmd",
["Baga Pokur"] = "bcg",
["Baga Sitemu"] = "bsp",
["Baga Sobané"] = "bsv",
["Bagheli"] = "bfy",
["Bagirmi"] = "bmi",
["Bago-Kusuntu"] = "bqg",
["Bagri"] = "bgq",
["Bagupi"] = "bpi",
["Bagusa"] = "bqb",
["Baha"] = "yha",
["Baham"] = "bdw",
["Bahamian Creole"] = "bah",
["Baharna Arabic"] = "abv",
["Bahau"] = "bhv",
["Bahinemo"] = "bjh",
["Bahonsuai"] = "bsu",
["Bai"] = "bdj",
["Baibai"] = "bbf",
["Baikeno"] = "bkx",
["Baima"] = "bqh",
["Baimak"] = "bmx",
["Bainouk-Gunyaamolo"] = "bcz",
["Bainouk-Samik"] = "bcb",
["Baissa Fali"] = "fah",
["Bajan"] = "bjs",
["Bajelani"] = "bjm",
["Baka"] = "bkc",
["Bakairí"] = "bkq",
["Bakoko"] = "bkh",
["Bakole"] = "kme",
["Bakpinka"] = "bbs",
["Bakulung"] = "bbu",
["Tiếng Bakumpai"] = "bkr",
["Bakwé"] = "bjw",
["Balaesang"] = "bls",
["Balangao"] = "blw",
["Balangingi"] = "sse",
["Balau"] = "blg",
["Baldemu"] = "bdn",
["Bali"] = "bcp",
["Baliledo"] = "poz-bal",
["Balinese Malay"] = "mhp",
["Balo"] = "bqo",
["Baloi"] = "biz",
["Balong"] = "bnt-bal",
["Baluan-Pam"] = "blq",
["Bamako Sign Language"] = "bog",
["Bamali"] = "bbq",
["Bambalang"] = "bmo",
["Bambam"] = "ptu",
["Bambili-Bambui"] = "baw",
["Bamenyam"] = "bce",
["Bamu"] = "bcf",
["Bamukumbit"] = "bqt",
["Bamunka"] = "bvm",
["Bamwe"] = "bmg",
["Ban Khor Sign Language"] = "bfk",
["Banam Bay"] = "vrt",
["Banao Itneg"] = "bjx",
["Banaro"] = "byz",
["Banda"] = "bnd",
["Banda Malay"] = "bpq",
["Banda-Bambari"] = "liy",
["Banda-Banda"] = "bpd",
["Banda-Mbrès"] = "bqk",
["Banda-Ndélé"] = "bfl",
["Banda-Yangere"] = "yaj",
["Bandi"] = "bza",
["Bandial"] = "bqj",
["Bangala"] = "bxg",
["Bangandu"] = "bgf",
["Bangba"] = "bbe",
["Bangime"] = "dba",
["Bangka"] = "mfb",
["Bangru"] = "sit-ban",
["Bangubangu"] = "bnx",
["Bangwinji"] = "bsj",
["Baniva"] = "bvv",
["Baniwa"] = "bwi",
["Banka"] = "bxw",
["Bankan Tey Dogon"] = "dbw",
["Banoni"] = "bcm",
["Bantik"] = "bnq",
["Baraamu"] = "brd",
["Baram Kayan"] = "kys",
["Barama"] = "bbg",
["Barambu"] = "brm",
["Baramu"] = "bmz",
["Barapasi"] = "brp",
["Baras"] = "brs",
["Barasana"] = "bsn",
["Barbareño"] = "boi",
["Barclayville Grebo"] = "gry",
["Bardi"] = "bcj",
["Barein"] = "bva",
["Bargam"] = "mlp",
["Bariai"] = "bch",
["Bariji"] = "bjc",
["Barikanchi"] = "bxo",
["Barngarla"] = "bjb",
["Barok"] = "bjk",
["Barranbinya"] = "aus-bra",
["Barro Negro Tunebo"] = "tbn",
["Barrow Point"] = "bpt",
["Baruga"] = "bjz",
["Barunggam"] = "aus-brm",
["Baruya"] = "byr",
["Barwe"] = "bwg",
["Barí"] = "mot",
["Basa"] = "bzw",
["Basa-Gumna"] = "bsl",
["Basa-Gurmana"] = "buj",
["Basap"] = "bdb",
["Bashkardi"] = "bsg",
["Bassa-Kontagora"] = "bsr",
["Bassossi"] = "bsi",
["Bata"] = "bta",
["Bataan Ayta"] = "ayt",
["Batanga"] = "bnm",
["Bateri"] = "btv",
["Bathari"] = "bhm",
["Bati (Cameroon)"] = "btc",
["Bati (Indonesia)"] = "bvt",
["Batu"] = "btu",
["Batui"] = "zbt",
["Bau"] = "bbd",
["Bauchi"] = "bsf",
["Baure"] = "brg",
["Bauria"] = "bge",
["Bauro"] = "bxa",
["Bauwaki"] = "bwk",
["Bauzi"] = "bvz",
["Bawm Chin"] = "bgr",
["Bay Miwok"] = "mkq",
["Bayali"] = "bjy",
["Baybayanon"] = "bvy",
["Baygo"] = "byg",
["Bayogoula"] = "nai-bay",
["Bayono"] = "byl",
["Bayot"] = "bda",
["Bayungu"] = "bxj",
["Bazigar"] = "bfr",
["Baïnounk Gubëeher"] = "alv-bgu",
["Beami"] = "beo",
["Beba"] = "bfp",
["Bebe"] = "bzv",
["Bebele"] = "beb",
["Bebeli"] = "bek",
["Bebil"] = "bxp",
["Bedik"] = "tnr",
["Bedoanas"] = "bed",
["Beeke"] = "bkf",
["Beele"] = "bxq",
["Beembe"] = "beq",
["Beezen"] = "bnz",
["Befang"] = "bby",
["Begbere-Ejar"] = "bqv",
["Bekati'"] = "bei",
["Bekwarra"] = "bkv",
["Bekwel"] = "bkw",
["Belait"] = "beg",
["Belanda Bor"] = "bxb",
["Belanda Viri"] = "bvi",
["Belizean Creole"] = "bzj",
["Tiếng Bembe"] = "bmb",
["Ben Tey"] = "dbt",
["Bena"] = "yun",
["Benabena"] = "bef",
["Bende"] = "bdp",
["Bendi"] = "bct",
["Beneraf"] = "bnv",
["Beng"] = "nhb",
["Benga"] = "bng",
["Benggoi"] = "bgy",
["Bengkala Sign Language"] = "bqy",
["Bentong"] = "bnu",
["Benyadu'"] = "byd",
["Beothuk"] = "bue",
["Bepour"] = "bie",
["Bera"] = "brf",
["Berakou"] = "bxv",
["Berau Malay"] = "bve",
["Berawan"] = "lod",
["Bergish"] = "gmw-bgh",
["Berinomo"] = "bit",
["Berom"] = "bom",
["Berta"] = "wti",
["Berti"] = "byt",
["Besme"] = "bes",
["Besoa"] = "bep",
["Betaf"] = "bfe",
["Bete"] = "byf",
["Bete-Bendi"] = "btt",
["Betoi"] = "sai-bet",
["Bhalay"] = "bhx",
["Bharia"] = "bha",
["Bhaya"] = "bhe",
["Bhele"] = "bhy",
["Bhilali"] = "bhi",
["Bhoti Kinnauri"] = "nes",
["Biafada"] = "bif",
["Biage"] = "bdf",
["Biak"] = "bhw",
["Biali"] = "beh",
["Bian Marind"] = "bpv",
["Biangai"] = "big",
["Biao"] = "byk",
["Biao Mon"] = "bmt",
["Biao-Jiao Mien"] = "bje",
["Bibaali"] = "bcn",
["Bibbulman"] = "xbp",
["Bidiyo"] = "bid",
["Bidyara"] = "bym",
["Bidyogo"] = "bjg",
["Biem"] = "bmc",
["Bierebo"] = "bnk",
["Bieria"] = "brj",
["Biete"] = "biu",
["Big Nambas"] = "nmb",
["Biga"] = "bhc",
["Bigambal"] = "xbe",
["Bikaru"] = "bic",
["Bikya"] = "byb",
["Bila"] = "bip",
["Bilakura"] = "bql",
["Bilba"] = "bpz",
["Bilbil"] = "brz",
["Bile"] = "bil",
["Biliau"] = "bcu",
["Biloxi"] = "bll",
["Bilur"] = "bxf",
["Bimin"] = "bhl",
["Bimoba"] = "bim",
["Bina"] = "bmn",
["Binahari"] = "bxz",
["Binandere"] = "bhg",
["Binawa"] = "byj",
["Bindal"] = "xbd",
["Bine"] = "bon",
["Binji"] = "bpj",
["Binongan Itneg"] = "itb",
["Bintauna"] = "bne",
["Bintulu"] = "bny",
["Binumarien"] = "bjr",
["Bipi"] = "biq",
["Birgid"] = "brk",
["Biri"] = "bzr",
["Biritai"] = "bqq",
["Birri"] = "bvq",
["Birrpayi"] = "xbj",
["Birwa"] = "brl",
["Biseni"] = "ije",
["Bishuo"] = "bwh",
["Bisis"] = "bnw",
["Bisorio"] = "bir",
["Bitare"] = "brt",
["Bitur"] = "mcc",
["Biwat"] = "bwm",
["Biyo"] = "byo",
["Biyom"] = "bpm",
["Blablanga"] = "blp",
["Black Speech"] = "art-bsp",
["Blafe"] = "bfh",
["Bo"] = "bgl",
["Bo-Rukul"] = "mae",
["Bo-Ung"] = "mux",
["Boano (Maluku)"] = "bzn",
["Boano (Sulawesi)"] = "bzl",
["Bobongko"] = "bgb",
["Bobot"] = "bty",
["Bodo (Central Africa)"] = "boy",
["Bofi"] = "bff",
["Boga"] = "bvw",
["Bogaya"] = "boq",
["Boguru"] = "bqu",
["Boikin"] = "bzf",
["Bokha"] = "ybk",
["Bokoto"] = "bdt",
["Bokyi"] = "bky",
["Bolak"] = "art-blk",
["Bolango"] = "bld",
["Bole"] = "bol",
["Bolgo"] = "bvo",
["Bolia"] = "bli",
["Tiếng Bolinao"] = "smk",
["Bolivian Sign Language"] = "bvl",
["Bolon"] = "bof",
["Bolondo"] = "bzm",
["Bolongan"] = "blj",
["Bom"] = "bmf",
["Boma Nkuu"] = "bnt-bon",
["Boma Yumu"] = "bnt-boy",
["Bomboli"] = "bml",
["Bomboma"] = "bws",
["Bomitaba"] = "zmx",
["Bomwali"] = "bmw",
["Bon Gula"] = "glc",
["Bondei"] = "bou",
["Tiếng Kulango Bondoukou"] = "kzc",
["Bondum Dom Dogon"] = "dbu",
["Bonerate"] = "bna",
["Bonggi"] = "bdg",
["Bonggo"] = "bpg",
["Bongili"] = "bui",
["Bongo"] = "bot",
["Bongu"] = "bpu",
["Bonjo"] = "bok",
["Bonkeng"] = "bvg",
["Bonkiman"] = "bop",
["Bookan"] = "bnb",
["Boor"] = "bvf",
["Bora"] = "boa",
["Border Kuna"] = "kvn",
["Borei"] = "gai",
["Boro"] = "xxb",
["Borong"] = "ksr",
["Boruca"] = "brn",
["Boselewa"] = "bwf",
["Bosngun"] = "bqs",
["Bote-Majhi"] = "bmj",
["Tiếng Kulango Bouna"] = "nku",
["Bourbonnais-Berrichon"] = "roa-bbn",
["Bozaba"] = "bzo",
["Bragat"] = "aof",
["Brazilian Sign Language"] = "bzs",
["Brek Karen"] = "kvl",
["Tiếng Brem"] = "buq",
["Bribri"] = "bzd",
["British Sign Language"] = "bfi",
["Brokskat"] = "bkk",
["Broome Pearling Lugger Pidgin"] = "bpl",
["Brunei Bisaya"] = "bsb",
["Bruny Island"] = "xpz",
["Bu"] = "jid",
["Bu-Nao Bunu"] = "bwx",
["Bua"] = "bub",
["Bualkhaw Chin"] = "cbl",
["Buamu"] = "box",
["Bubi"] = "buw",
["Bubia"] = "bbx",
["Budibud"] = "btp",
["Budong-Budong"] = "bdx",
["Budu"] = "buu",
["Buduma"] = "bdm",
["Budza"] = "bja",
["Buena Vista Yokuts"] = "nai-bvy",
["Buglere"] = "sab",
["Bugun"] = "bgg",
["Buhutu"] = "bxh",
["Bujhyal"] = "byh",
["Bukar-Sadung Bidayuh"] = "sdo",
["Bukat"] = "bvk",
["Bukawa"] = "buk",
["Bukit Malay"] = "bvu",
["Bukitan"] = "bkn",
["Buksa"] = "tkb",
["Bukusu"] = "bxk",
["Bulgarian Sign Language"] = "bqn",
["Bulgebi"] = "bmp",
["Buli (Ghana)"] = "bwu",
["Buli (Indonesia)"] = "bzq",
["Bulu (Cameroon)"] = "bum",
["Bulu (New Guinea)"] = "bjl",
["Bum"] = "bmv",
["Bumaji"] = "byp",
["Bumbita Arapesh"] = "aon",
["Bun"] = "buv",
["Buna"] = "bvn",
["Bunaba"] = "bck",
["Bunak"] = "bfn",
["Tiếng Bunama"] = "bdd",
["Bundeli"] = "bns",
["Bung"] = "bqd",
["Bungain"] = "but",
["Bunganditj"] = "xbg",
["Bungu"] = "wun",
["Bunoge"] = "dgb",
["Buol"] = "blf",
["Bura"] = "bwr",
["Burak"] = "bys",
["Buraka"] = "bkg",
["Burarra"] = "bvr",
["Burate"] = "bti",
["Burduna"] = "bxn",
["Bure"] = "bvh",
["Burgundian"] = "gem-bur",
["Burmeso"] = "bzu",
["Buru (Indonesia)"] = "mhs",
["Buru (Nigeria)"] = "bqw",
["Burui"] = "bry",
["Burumakok"] = "aip",
["Burun"] = "bdi",
["Burusu"] = "bqr",
["Buruwai"] = "asi",
["Busam"] = "bxs",
["Busami"] = "bsm",
["Busang Kayan"] = "bfg",
["Bushoong"] = "buf",
["Buso"] = "bso",
["Busoa"] = "bup",
["Busuu"] = "bju",
["Butbut Kalinga"] = "kyb",
["Butchulla"] = "xby",
["Butmas-Tur"] = "bnr",
["Buwal"] = "bhs",
["Buyeo"] = "xpy",
["Buyu"] = "byi",
["Buyuan Jino"] = "jiy",
["Bwa"] = "bww",
["Bwaidoka"] = "bwd",
["Bwala"] = "bnt-bwa",
["Bwanabwana"] = "tte",
["Bwatoo"] = "bwa",
["Bwela"] = "bwl",
["Bwile"] = "bwc",
["Bwisi"] = "bwz",
["Byangsi"] = "bee",
["Byep"] = "mkk",
["Bädi Kanum"] = "khd",
["Caac"] = "msq",
["Cabiyarí"] = "cbb",
["Cabécar"] = "cjp",
["Cacaloxtepec Mixtec"] = "miu",
["Cacaopera"] = "ccr",
["Cacua"] = "cbv",
["Cacán"] = "sai-cac",
["Caddo"] = "cad",
["Cafundó"] = "ccd",
["Cahuarano"] = "cah",
["Caka"] = "ckx",
["Cakchiquel-Quiché Mixed Language"] = "ckz",
["Cakfem-Mushere"] = "cky",
["Calabrian Greek"] = "grk-cal",
["Callawalla"] = "caw",
["Calusa"] = "nai-cal",
["Caluyanun"] = "clu",
["Caló"] = "rmq",
["Camarines Norte Agta"] = "abd",
["Cameroon Mambila"] = "mcu",
["Cameroon Pidgin"] = "wes",
["Campalagian"] = "cml",
["Camsá"] = "kbh",
["Camtho"] = "cmt",
["Candoshi-Shapra"] = "cbu",
["Canichana"] = "caz",
["Cao Miao"] = "cov",
["Capiznon"] = "cps",
["Caquinte"] = "cot",
["Cara"] = "cfd",
["Carabayo"] = "cby",
["Caramanta"] = "crf",
["Caranqui"] = "sai-caq",
["Carapana"] = "cbc",
["Carian"] = "xcr",
["Cariay"] = "awd-kar",
["Carijona"] = "cbd",
["Carolina Algonquian"] = "crr",
["Carolinian"] = "cal",
["Carpathian Romani"] = "rmc",
["Cashibo-Cacataibo"] = "cbr",
["Cashinahua"] = "cbs",
["Casiguran Dumagat Agta"] = "dgc",
["Casuarina Coast Asmat"] = "asc",
["Catacao"] = "sai-cat",
["Catalan Sign Language"] = "csc",
["Catuquinaru"] = "sai-ctq",
["Catío Chibcha"] = "cba-cat",
["Cauca"] = "cca",
["Cavere"] = "awd-cav",
["Cavineña"] = "cav",
["Cayubaba"] = "cyb",
["Cayuse"] = "xcy",
["Cazcan"] = "azc-caz",
["Cañari"] = "sai-cnr",
["Cebaara Senoufo"] = "sef",
["Cemuhî"] = "cam",
["Cen"] = "cen",
["Central Asmat"] = "cns",
["Central Awyu"] = "awu",
["Central Bontoc"] = "lbk",
["Central Cagayan Agta"] = "agt",
["Central Grebo"] = "grv",
["Central Huishui Hmong"] = "hmc",
["Central Maewo"] = "mwo",
["Central Mahuatlán Zapoteco"] = "zam",
["Central Malay"] = "pse",
["Central Masela"] = "mxz",
["Central Mashan Hmong"] = "hmm",
["Central Melanau"] = "mel",
["Central Ojibwa"] = "ojc",
["Central Palawano"] = "plc",
["Central Pame"] = "pbs",
["Central Pomo"] = "poo",
["Central Sierra Miwok"] = "csm",
["Central Subanen"] = "syb",
["Central Tagbanwa"] = "tgt",
["Central Tarahumara"] = "tar",
["Central Teke"] = "nzu",
["Central Tunebo"] = "tuf",
["Centúúm"] = "cet",
["Cerma"] = "cme",
["Ch'olti'"] = "myn-chl",
["Chaap Wuurong"] = "tjw",
["Chadian Sign Language"] = "cds",
["Chaha"] = "sem-cha",
["Chairel"] = "sit-cha",
["Chakali"] = "cli",
["Chala"] = "cll",
["Chali"] = "tgf",
["Chamacoco"] = "ceg",
["Chamba Daka"] = "ccg",
["Chamba Leko"] = "ndi",
["Chambri"] = "can",
["Champenois"] = "roa-cha",
["Chang"] = "nbc",
["Changriwa"] = "cga",
["Chaná"] = "sai-chn",
["Chané"] = "caj",
["Chapacura"] = "sai-chp",
["Chara"] = "cra",
["Charrua"] = "sai-chr",
["Chaudangsi"] = "cdn",
["Chayahuita"] = "cbt",
["Chazumba Mixtec"] = "xtb",
["Che"] = "ruk",
["Cheke Holo"] = "mrn",
["Chemakum"] = "xch",
["Chenapian"] = "cjn",
["Chepya"] = "ycp",
["Cherepon"] = "cpn",
["Chesu"] = "ych",
["Chetco-Tolowa"] = "ctc",
["Chhintange"] = "ctn",
["Chhulung"] = "cur",
["Chiangmai Sign Language"] = "csd",
["Chiapanec"] = "cip",
["Chichicapan Zapotec"] = "zpv",
["Chichimeca-Jonaz"] = "pei",
["Chichonyi-Chidzihana-Chikauma"] = "coh",
["Chicomuceltec"] = "cob",
["Chiduruma"] = "dug",
["Chigmecatitlán Mixtec"] = "mii",
["Chilean Sign Language"] = "csg",
["Chilisso"] = "clh",
["Chiltepec Chinantec"] = "csa",
["Chimalapa Zoque"] = "zoh",
["Chimariko"] = "cid",
["Chimila"] = "cbg",
["Chimwiini"] = "bnt-cmw",
["Chinbon Chin"] = "cnb",
["Chinese Pidgin English"] = "cpi",
["Chinese Sign Language"] = "csl",
["Chipaya"] = "cap",
["Chiquihuitlán Mazatec"] = "maq",
["Chiquimulilla"] = "nai-chi",
["Chiquitano"] = "cax",
["Chirino"] = "sai-chi",
["Chiripá"] = "nhd",
["Chitimacha"] = "ctm",
["Chitkuli Kinnauri"] = "cik",
["Chitwania Tharu"] = "the",
["Tiếng Zapotec Choapan"] = "zpc",
["Chochotec"] = "coz",
["Chokri Naga"] = "nri",
["Chokwe"] = "cjk",
["Cholón"] = "cht",
["Chono"] = "sai-cno",
["Chopi"] = "cce",
["Chuabo"] = "chw",
["Chuanqiandian Cluster Miao"] = "cqd",
["Chuave"] = "cjv",
["Chug"] = "cvg",
["Chuj"] = "cac",
["Chuka"] = "cuh",
["Chukwa"] = "cuw",
["Chumburung"] = "ncu",
["Churuya"] = "sai-chu",
["Chácobo"] = "cao",
["Ci Gbe"] = "cib",
["Cibak"] = "ckl",
["Cicipu"] = "awc",
["Ciguayo"] = "nai-cig",
["Cinamiguin Manobo"] = "mkx",
["Cinda-Regi-Tiyal"] = "cdr",
["Cineni"] = "cie",
["Cinta Larga"] = "cin",
["Cishingini"] = "asg",
["Citak"] = "txt",
["Ciwogai"] = "tgd",
["Tiếng Gael cổ điển"] = "ghc",
["Classical Guaraní"] = "gn-cls",
["Classical Mandaic"] = "myz",
["Classical Newar"] = "nwc",
["Classical Quechua"] = "qwc",
["Coahuilteco"] = "xcw",
["Coast Miwok"] = "csi",
["Coastal Konjo"] = "kjc",
["Coatecas Altas Zapotec"] = "zca",
["Coatepec Nahuatl"] = "naz",
["Coatlán Mixe"] = "mco",
["Coatlán Zapotec"] = "zps",
["Coatzospan Mixtec"] = "miz",
["Cocopa"] = "coc",
["Cocos Islands Malay"] = "coa",
["Coeruna"] = "sai-coe",
["Cogui"] = "kog",
["Col"] = "liw",
["Colombian Sign Language"] = "csn",
["Colonia Tovar German"] = "gct",
["Columbia-Wenatchi"] = "col",
["Colán"] = "sai-col",
["Comaltepec Chinantec"] = "cco",
["Comechingon"] = "sai-cmg",
["Comecrudo"] = "xcm",
["Communicationssprache"] = "art-com",
["Como Karim"] = "cfg",
["Con"] = "cno",
["Coos"] = "csz",
["Copainalá Zoque"] = "zoc",
["Copallén"] = "sai-cop",
["Coquille"] = "coq",
["Cora"] = "crn",
["Cori"] = "cry",
["Coroado Puri"] = "sai-crd",
["Cosoleacaque Nahuatl"] = "nhk",
["Costa Rican Sign Language"] = "csr",
["Cotabato Manobo"] = "mta",
["Cotoname"] = "xcn",
["Coyaima"] = "coy",
["Coyotepec Popoloca"] = "pbf",
["Coyutla Totonac"] = "toc",
["Crimean Gothic"] = "gme-cgo",
["Croatian Sign Language"] = "csq",
["Cruzeño"] = "crz",
["Cuban Sign Language"] = "csf",
["Cubeo"] = "cub",
["Cueva"] = "sai-cva",
["Cuiba"] = "cui",
["Cuitlatec"] = "cuy",
["Culina"] = "cul",
["Tiếng Culli"] = "sai-cul",
["Cun"] = "cuq",
["Cung"] = "cug",
["Curonian"] = "xcu",
["Curripaco"] = "kpc",
["Cutchi-Swahili"] = "ccl",
["Cuvok"] = "cuv",
["Cuyamecalco Mixtec"] = "xtu",
["Cwi Bwamu"] = "bwy",
["Czech Sign Language"] = "cse",
["Da'a Kaili"] = "kzf",
["Daai Chin"] = "dao",
["Daantanai'"] = "lni",
["Daba"] = "dbq",
["Dabe"] = "dbe",
["Dadanitic"] = "sem-dad",
["Dadi Dadi"] = "dda",
["Dadiya"] = "dbd",
["Tiếng Daga"] = "dgz",
["Dagaari Dioula"] = "dgd",
["Dagik"] = "dec",
["Dagoman"] = "dgn",
["Daho-Doo"] = "das",
["Dai"] = "dij",
["Dair"] = "drb",
["Dairi Batak"] = "btd",
["Dakaka"] = "bpa",
["Dakka"] = "dkk",
["Daloa Bété"] = "bev",
["Dama (Nigeria)"] = "dmm",
["Dama (Sierra Leone)"] = "dmn-dam",
["Damakawa"] = "dam",
["Damal"] = "uhn",
["Dampelas"] = "dms",
["Danaru"] = "dnr",
["Dandami Maria"] = "daq",
["Dangaura Tharu"] = "thl",
["Danish Sign Language"] = "dsl",
["Dano"] = "aso",
["Dao"] = "daz",
["Daonda"] = "dnd",
["Dar Fur Daju"] = "daj",
["Dar Sila Daju"] = "dau",
["Darai"] = "dry",
["Darkinjung"] = "xda",
["Darlong"] = "dln",
["Darmiya"] = "drd",
["Daro-Matu Melanau"] = "dro",
["Darumbal"] = "xgm",
["Dass"] = "dot",
["Datooga"] = "tcc",
["Daungwurrung"] = "dgw",
["Davawenyo"] = "daw",
["Dawawa"] = "dww",
["Dawera-Daweloor"] = "ddw",
["Day"] = "dai",
["Dayi"] = "dax",
["Dazaga"] = "dzg",
["Deccani"] = "dcc",
["Dedua"] = "ded",
["Defaka"] = "afn",
["Defi Gbe"] = "gbh",
["Deg"] = "mzw",
["Degenan"] = "dge",
["Dehwari"] = "deh",
["Dek"] = "dek",
["Dela-Oenale"] = "row",
["Delo"] = "ntr",
["Delta Yokuts"] = "nai-dly",
["Dem"] = "dem",
["Dema"] = "dmx",
["Demisa"] = "dei",
["Demta"] = "dmy",
["Tiếng Dena'ina"] = "tfn",
["Dendi"] = "ddn",
["Dengese"] = "dez",
["Dengka"] = "dnk",
["Deno"] = "dbb",
["Denya"] = "anv",
["Dení"] = "dny",
["Desano"] = "des",
["Dewas Rai"] = "dwz",
["Dewoin"] = "dee",
["Dezfuli"] = "def",
["Dghwede"] = "dgh",
["Dhaiso"] = "dhs",
["Dhalandji"] = "dhl",
["Dhao"] = "nfa",
["Dhofari Arabic"] = "adf",
["Dhudhuroa"] = "ddr",
["Dhungaloo"] = "dhx",
["Dhurga"] = "dhu",
["Dhuwal"] = "dwu",
["Dhuwaya"] = "dwy",
["Dia"] = "dia",
["Dibiyaso"] = "dby",
["Dibo"] = "dio",
["Dicamay Agta"] = "duy",
["Didinga"] = "did",
["Digo"] = "dig",
["Tiếng Dii"] = "dur",
["Dijim-Bwilim"] = "cfa",
["Dilling"] = "dil",
["Dima"] = "jma",
["Dimbong"] = "dii",
["Dinapigue Agta"] = "phi-din",
["Dineor"] = "mrx",
["Ding"] = "diz",
["Diodio"] = "ddi",
["Diri"] = "dwa",
["Dirim"] = "dir",
["Disa"] = "dsi",
["Diuwe"] = "diy",
["Diuxi-Tilantongo Mixtec"] = "xtd",
["Dixon Reef"] = "dix",
["Djadjawurrung"] = "dja",
["Djambarrpuyngu"] = "djr",
["Djangun"] = "djf",
["Djauan"] = "djn",
["Djawi"] = "djw",
["Djimini"] = "dyi",
["Djinba"] = "djb",
["Djiwarli"] = "djl",
["Dobel"] = "kvo",
["Dobu"] = "dob",
["Doe"] = "doe",
["Doga"] = "dgg",
["Doghoro"] = "dgx",
["Dogoso"] = "dgs",
["Dogosé"] = "dos",
["Dogul Dom"] = "dbg",
["Doka"] = "dbi",
["Doko-Uyanga"] = "uya",
["Dom"] = "doa",
["Dominican Sign Language"] = "doq",
["Dompo"] = "doy",
["Domu"] = "dof",
["Domung"] = "dev",
["Dondo"] = "dok",
["Dong"] = "doh",
["Dongo"] = "doo",
["Dongotono"] = "ddd",
["Dongshanba Lalo"] = "yik",
["Donno So Dogon"] = "dds",
["Doondo"] = "dde",
["Dorasque"] = "cba-dor",
["Dori'o"] = "dor",
["Dorig"] = "wwo",
["Doromu-Koki"] = "kqc",
["Dorze"] = "doz",
["Doso"] = "dol",
["Dothraki"] = "art-dtk",
["Doura"] = "don",
["Doutai"] = "tds",
["Doyayo"] = "dow",
["Drehu"] = "dhv",
["Duala"] = "dua",
["Duano"] = "dup",
["Duau"] = "dva",
["Dubu"] = "dmu",
["Dugun"] = "ndu",
["Duguri"] = "dbm",
["Dugwor"] = "dme",
["Duhwa"] = "kbz",
["Duit"] = "cba-dui",
["Duke"] = "nke",
["Dulbu"] = "dbo",
["Duli"] = "duz",
["Duma"] = "dma",
["Dumaitic"] = "sem-dum",
["Dumbea"] = "duf",
["Dumpas"] = "dmv",
["Dumun"] = "dui",
["Duna"] = "duc",
["Dungmali"] = "raa",
["Dungu"] = "dbv",
["Dura"] = "drq",
["Duri"] = "mvp",
["Duriankere"] = "dbn",
["Dusner"] = "dsn",
["Dusun Deyah"] = "dun",
["Dusun Malang"] = "duq",
["Dutch Sign Language"] = "dse",
["Duupa"] = "dae",
["Duvle"] = "duv",
["Duwai"] = "dbp",
["Duwet"] = "gve",
["Dwang"] = "nnu",
["Dyaabugay"] = "dyy",
["Dyaberdyaber"] = "dyb",
["Dyan"] = "dya",
["Dyangadi"] = "dyn",
["Dyugun"] = "dyd",
["Dza"] = "jen",
["Dzando"] = "dzn",
["Dzao Min"] = "bpn",
["Dzodinka"] = "add",
["Dâw"] = "kwa",
["E'ma Buyang"] = "yzg",
["Early Modern Korean"] = "ko-ear",
["Early Tripuri"] = "xtr",
["East Damar"] = "dmr",
["East Franconian"] = "vmf",
["East Kewa"] = "kjs",
["East Limba"] = "lma",
["East Makian"] = "mky",
["East Masela"] = "vme",
["East Nyala"] = "nle",
["East Tarangan"] = "tre",
["Eastern Bolivian Guaraní"] = "gui",
["Eastern Durango Nahuatl"] = "azd",
["Eastern Gurung"] = "ggn",
["Eastern Highland Chatino"] = "cly",
["Eastern Highland Otomi"] = "otm",
["Eastern Huasteca Nahuatl"] = "nhe",
["Eastern Huishui Hmong"] = "hme",
["Eastern Karaboro"] = "xrb",
["Eastern Keres"] = "kee",
["Eastern Lalu"] = "yit",
["Tiếng Maninkakan Đông"] = "emk",
["Eastern Meohang"] = "emg",
["Eastern Muria"] = "emu",
["Eastern Ngad'a"] = "nea",
["Eastern Nisu"] = "nos",
["Eastern Penan"] = "pez",
["Eastern Pomo"] = "peb",
["Eastern Qiandong Miao"] = "hmq",
["Eastern Subanun"] = "sfe",
["Eastern Tawbuid"] = "bnj",
["Eastern Xiangxi Miao"] = "muq",
["Eastern Xwla Gbe"] = "gbx",
["Ebira"] = "igb",
["Ecuadorian Sign Language"] = "ecs",
["Ede Cabe"] = "cbj",
["Ede Ije"] = "ijj",
["Edera Awyu"] = "awy",
["Edolo"] = "etr",
["Edomite"] = "xdm",
["Edopi"] = "dbf",
["Efutop"] = "ofu",
["Egyptian Sign Language"] = "esl",
["Ejamat"] = "eja",
["Ekajuk"] = "eka",
["Ekari"] = "ekg",
["Ekele"] = "khy",
["Eki"] = "eki",
["Ekit"] = "eke",
["Ekpeye"] = "ekp",
["El Alto Zapotec"] = "zpp",
["El Hugeirat"] = "elh",
["Eleme"] = "elm",
["Elepi"] = "ele",
["Elip"] = "ekm",
["Elkei"] = "elk",
["Eloi"] = "art-elo",
["Elotepec Zapotec"] = "zte",
["Eloyi"] = "afo",
["Elseng"] = "mrf",
["Elu"] = "elu",
["Emae"] = "mmw",
["Emai"] = "ema",
["Eman"] = "emn",
["Embaloh"] = "emb",
["Emberá-Baudó"] = "bdc",
["Emberá-Catío"] = "cto",
["Emem"] = "enr",
["Emerillon"] = "eme",
["Emplawas"] = "emw",
["Enawené-Nawé"] = "unk",
["Ende"] = "end",
["Enga"] = "enq",
["Enggano"] = "eno",
["Enlhet"] = "enl",
["Enrekang"] = "ptt",
["Enu"] = "enu",
["Enwan"] = "env",
["Enwang"] = "enw",
["Enxet"] = "enx",
["Enya"] = "gey",
["Epena"] = "sja",
["Epi-Olmec"] = "xep",
["Epigraphic Mayan"] = "emy",
["Erave"] = "kjy",
["Ere"] = "twp",
["Erie"] = "iro-ere",
["Eritai"] = "ert",
["Erokwanas"] = "erw",
["Erre"] = "err",
["Erromintxela"] = "emx",
["Eruwa"] = "erh",
["Ese Ejja"] = "ese",
["Eshtehardi"] = "esh",
["Eskayan"] = "esy",
["Esmeralda"] = "sai-esm",
["Esselen"] = "esq",
["Estado de México Otomi"] = "ots",
["Estonian Sign Language"] = "eso",
["Esuma"] = "esm",
["Etchemin"] = "etc",
["Etebi"] = "etb",
["Eten"] = "etx",
["Eteocypriot"] = "ecy",
["Ethiopian Sign Language"] = "eth",
["Etkywan"] = "ich",
["Eton (Cameroon)"] = "eto",
["Eton (Vanuatu)"] = "etn",
["Etulo"] = "utr",
["Evant"] = "bzz",
["Ewage-Notu"] = "nou",
["Ewarhuyana"] = "sai-ewa",
["Ewondo"] = "ewo",
["Extremaduran"] = "ext",
["Eyak"] = "eya",
["Ezaa"] = "eza",
["Fagani"] = "faf",
["Faire Atta"] = "azt",
["Faita"] = "faj",
["Faiwol"] = "fai",
["Fakkanci"] = "gel",
["Fali"] = "fli",
["Fam"] = "fam",
["Fanamaket"] = "bjp",
["Fang (Beboid)"] = "fak",
["Fania"] = "fni",
["Fas"] = "fqs",
["Fasu"] = "faa",
["Fataleka"] = "far",
["Tiếng Fataluku"] = "ddg",
["Fayu"] = "fau",
["Fedan"] = "pdn",
["Fembe"] = "agl",
["Fer"] = "kah",
["Feroge"] = "fer",
["Filomena Mata-Coahuitlán Totonac"] = "tlp",
["Finisterre Yau"] = "yuw",
["Finnish Sign Language"] = "fse",
["Finnish-Swedish Sign Language"] = "fss",
["Finongan"] = "fag",
["Fipa"] = "fip",
["Firan"] = "fir",
["Fiwaga"] = "fiw",
["Flemish Sign Language"] = "vgt",
["Flinders Island"] = "fln",
["Foau"] = "flh",
["Foia Foia"] = "ffi",
["Folopa"] = "ppo",
["Foma"] = "fom",
["Fongoro"] = "fgr",
["Foodo"] = "fod",
["Forak"] = "frq",
["Fordata"] = "frd",
["Fore"] = "for",
["Forest Nenets"] = "yrk-for",
["Fortsenal"] = "frt",
["French Belgian Sign Language"] = "sfb",
["French Sign Language"] = "fsl",
["Fuliiru"] = "flr",
["Fulniô"] = "fun",
["Fum"] = "fum",
["Tiếng Fungwa"] = "ula",
["Furu"] = "fuu",
["Futuna-Aniwa"] = "fut",
["Fuyug"] = "fuy",
["Fwe"] = "fwe",
["Fwâi"] = "fwa",
["Fyam"] = "pym",
["Fyer"] = "fie",
["Ga'anda"] = "gqa",
["Ga'dang"] = "gdg",
["Gaa"] = "ttb",
["Gaam"] = "tbi",
["Gabadi"] = "kbt",
["Gabi"] = "gbw",
["Gabrielino-Fernandeño"] = "xgf",
["Gadang"] = "gdk",
["Gade"] = "ged",
["Gadjerawang"] = "gdh",
["Gadsup"] = "gaj",
["Gafat"] = "gft",
["Gagadu"] = "gbu",
["Gagnoa Bété"] = "btg",
["Gaikundi"] = "gbf",
["Gaina"] = "gcn",
["Gal"] = "gap",
["Galambu"] = "glo",
["Galela"] = "gbi",
["Galeya"] = "gar",
["Galice"] = "gce",
["Galindian"] = "xgl",
["Gallaecian"] = "cel-gal",
["Galoli"] = "gal",
["Gambera"] = "gma",
["Gamela"] = "sai-gam",
["Gamkonora"] = "gak",
["Gamo-Ningi"] = "bte",
["Gana"] = "gnq",
["Ganang"] = "gne",
["Gane"] = "gzn",
["Ganggalida"] = "gcd",
["Ganglau"] = "ggl",
["Gangte"] = "gnb",
["Gangulu"] = "gnl",
["Gants"] = "gao",
["Ganzi"] = "gnz",
["Gao"] = "gga",
["Gapapaiwa"] = "pwg",
["Garawa"] = "wrk",
["Garingbal"] = "xgi",
["Garus"] = "gyb",
["Garza"] = "xgr",
["Gashowu"] = "nai-gsy",
["Gavak"] = "dmc",
["Gavar"] = "gou",
["Gavião do Jiparaná"] = "gvo",
["Gayo"] = "gay",
["Gayón"] = "sai-gay",
["Gbagyi"] = "gbr",
["Gban"] = "ggu",
["Gbanu"] = "gbv",
["Gbanziri"] = "gbg",
["Gbari"] = "gby",
["Gbaya"] = "gba",
["Gbaya-Bossangoa"] = "gbp",
["Gbaya-Bozoum"] = "gbq",
["Gbaya-Mbodomo"] = "gmm",
["Gbayi"] = "gyg",
["Gbesi Gbe"] = "gbs",
["Gbii"] = "ggb",
["Gbin"] = "xgb",
["Gboloo Grebo"] = "gec",
["Gciriku"] = "diu",
["Gcwi"] = "gwj",
["Ge"] = "hmj",
["Gebe"] = "gei",
["Gedaged"] = "gdd",
["Geji"] = "gji",
["Gela"] = "nlg",
["Gelao"] = "gio",
["Gele'"] = "sbc",
["Geme"] = "geq",
["Gende"] = "gaf",
["Gengle"] = "geg",
["Gepo"] = "ygp",
["Gera"] = "gew",
["German Sign Language"] = "gsg",
["Geruma"] = "gea",
["Geser-Gorom"] = "ges",
["Gey"] = "guv",
["Ghanaian Sign Language"] = "gse",
["Ghandruk Sign Language"] = "gds",
["Ghanongga"] = "ghn",
["Ghari"] = "gri",
["Ghayavi"] = "bmk",
["Ghera"] = "ghr",
["Ghulfan"] = "ghl",
["Giangan"] = "bgi",
["Gibanawa"] = "gib",
["Gidar"] = "gid",
["Gikyode"] = "acd",
["Gilima"] = "gix",
["Gimi (Austronesian)"] = "gip",
["Gimme"] = "kmp",
["Gimnime"] = "gmn",
["Ginuman"] = "gnm",
["Girawa"] = "bbr",
["Githabul"] = "gih",
["Gitua"] = "ggt",
["Giyug"] = "giy",
["Gizrra"] = "tof",
["Glaro-Twabo"] = "glr",
["Glavda"] = "glw",
["Glio-Oubi"] = "oub",
["Gnau"] = "gnu",
["Goa'uld"] = "art-gld",
["Goaria"] = "gig",
["Gobasi"] = "goi",
["Gobu"] = "gox",
["Godié"] = "god",
["Godwari"] = "gdx",
["Goemai"] = "ank",
["Gogo"] = "gog",
["Gogodala"] = "ggw",
["Gokana"] = "gkn",
["Gokhy"] = "sit-gkh",
["Gola"] = "gol",
["Golin"] = "gvf",
["Golpa"] = "lja",
["Gondi"] = "gon",
["Gongduk"] = "goe",
["Gonja"] = "gjn",
["Goo"] = "gov",
["Gor"] = "gqr",
["Gorakor"] = "goc",
["Gorap"] = "goq",
["Goreng"] = "xgg",
["Gorovu"] = "grq",
["Gottscheerish"] = "gmw-gts",
["Goundo"] = "goy",
["Gowlan"] = "goj",
["Gowro"] = "gwf",
["Gozarkhani"] = "goz",
["Grangali"] = "nli",
["Grass Koiari"] = "kbk",
["Grebo"] = "grb",
["Greek Sign Language"] = "gss",
["Green Gelao"] = "giq",
["Green Hmong"] = "hnj",
["Grenadian Creole English"] = "gcl",
["Gresi"] = "grs",
["Groma"] = "gro",
["Gros Ventre"] = "ats",
["Gua"] = "gwx",
["Guahibo"] = "guh",
["Guambiano"] = "gum",
["Guamo"] = "sai-gmo",
["Guanano"] = "gvc",
["Guatemalan Sign Language"] = "gsm",
["Guató"] = "gta",
["Guayabero"] = "guo",
["Guazacapán"] = "nai-guz",
["Gudang"] = "xgd",
["Gudanji"] = "nji",
["Gude"] = "gde",
["Gudu"] = "gdu",
["Guduf-Gava"] = "gdf",
["Guerrero Nahuatl"] = "ngu",
["Guevea de Humboldt Zapotec"] = "zpg",
["Gugadj"] = "ggd",
["Gugu Badhun"] = "gdc",
["Gugu Warra"] = "wrw",
["Guhu-Samane"] = "ghs",
["Guianese Creole"] = "gcr",
["Guiberoua Bété"] = "bet",
["Guinau"] = "awd-gnu",
["Guinea-Bissau Sign Language"] = "lgs",
["Guinean Sign Language"] = "gus",
["Guiqiong"] = "gqi",
["Gula"] = "glu",
["Gula'alaa"] = "gmb",
["Gule"] = "gly",
["Gullah"] = "gul",
["Gumalu"] = "gmu",
["Gumatj"] = "gnn",
["Gumawana"] = "gvs",
["Gundi"] = "gdi",
["Gunditjmara"] = "gjm",
["Gundungurra"] = "xrd",
["Gungabula"] = "gyf",
["Gungu"] = "rub",
["Guntai"] = "gnt",
["Gunu"] = "yas",
["Gunwinggu"] = "gup",
["Tiếng Gunya"] = "gyy",
["Gupa-Abawa"] = "gpa",
["Gupapuyngu"] = "guf",
["Guragone"] = "gge",
["Guramalum"] = "grz",
["Gureng Gureng"] = "gnr",
["Gurgula"] = "ggg",
["Guriaso"] = "grx",
["Gurindji"] = "gue",
["Gurjar Apabhramsa"] = "inc-gup",
["Gurmana"] = "gvm",
["Guro"] = "goa",
["Guruntum"] = "grd",
["Gusan"] = "gsn",
["Gusii"] = "guz",
["Gusilay"] = "gsl",
["Guwa"] = "xgw",
["Guwamu"] = "gwu",
["Guwar"] = "aus-guw",
["Guya"] = "gka",
["Guyanese Creole English"] = "gyn",
["Guyani"] = "gvy",
["Guébie"] = "gie",
["Gvoko"] = "ngs",
["Gwa"] = "gwb",
["Gwahatike"] = "dah",
["Gwak"] = "jgk",
["Gwamhi-Wuri"] = "bga",
["Gwandara"] = "gwn",
["Gwara"] = "alv-gwa",
["Gweda"] = "grw",
["Gweno"] = "gwe",
["Gwere"] = "gwr",
["Gyalsumdo"] = "gyo",
["Gyele"] = "gyi",
["Gyem"] = "gye",
["Güenoa"] = "sai-gue",
["Habu"] = "hbu",
["Hadothi"] = "hoj",
["Hadrami"] = "xhd",
["Hadza"] = "hts",
["Haeke"] = "aek",
["Hahon"] = "hah",
["Haigwai"] = "hgw",
["Hainyaxo Bozo"] = "bzx",
["Haiphong Sign Language"] = "haf",
["Haitian Vodoun Culture Language"] = "hvc",
["Haiǁom"] = "hgm",
["Haji"] = "hji",
["Hakö"] = "hao",
["Halang Doan"] = "hld",
["Halia"] = "hla",
["Hamap"] = "hmu",
["Hamba"] = "hba",
["Hamtai"] = "hmt",
["Hanga"] = "hag",
["Hanga Hundi"] = "wos",
["Hanoi Sign Language"] = "hab",
["Harami"] = "xha",
["Haraza"] = "nub-har",
["Haruai"] = "tmd",
["Haruku"] = "hrk",
["Harzani"] = "hrz",
["Hasaitic"] = "sem-has",
["Hasha"] = "ybj",
["Tiếng Ả Rập Hassaniya"] = "mey",
["Tiếng Hatam"] = "had",
["Hausa Sign Language"] = "hsl",
["Haveke"] = "hvk",
["Havu"] = "hav",
["Hawai'i Pidgin Sign Language"] = "hps",
["Hawaiian Creole"] = "hwc",
["Haya"] = "hay",
["Hdi"] = "xed",
["Hehe"] = "heh",
["Helong"] = "heg",
["Helu"] = "elu-prk",
["Hema"] = "nix",
["Hemba"] = "hem",
["Herdé"] = "hed",
["Hermit"] = "llf",
["Hewa"] = "ham",
["Heyo"] = "auk",
["Hibito"] = "hib",
["Hidatsa"] = "hid",
["Highland Konjo"] = "kjk",
["Highland Oaxaca Chontal"] = "chd",
["Highland Puebla Nahuatl"] = "azz",
["Hijuk"] = "hij",
["Himarimã"] = "hir",
["Himyaritic"] = "sem-him",
["Hismaic"] = "sem-his",
["Hitchiti"] = "nai-hit",
["Hitu"] = "htu",
["Hixkaryana"] = "hix",
["Hlepho Phowa"] = "yhl",
["Hlersu"] = "hle",
["Hmar"] = "hmr",
["Hmong Dô"] = "hmv",
["Hmong Shua"] = "hmz",
["Hmwaveke"] = "mrk",
["Ho Chi Minh City Sign Language"] = "hos",
["Hobyót"] = "hoh",
["Hoia Hoia"] = "hhi",
["Holikachuk"] = "hoi",
["Holma"] = "hod",
["Holoholo"] = "hoo",
["Holu"] = "hol",
["Homa"] = "hom",
["Honduran Lenca"] = "len",
["Honduras Sign Language"] = "hds",
["Hone"] = "juh",
["Hong Kong Sign Language"] = "hks",
["Honi"] = "how",
["Horned Miao"] = "hrm",
["Horo"] = "hor",
["Horom"] = "hoe",
["Hote"] = "hot",
["Hoti"] = "hti",
["Hovongan"] = "hov",
["Hoyahoya"] = "hhy",
["Hrangkhol"] = "hra",
["Hruso"] = "hru",
["Huachipaeri"] = "hug",
["Huambisa"] = "hub",
["Huaorani"] = "auc",
["Huarijio"] = "var",
["Huaulu"] = "hud",
["Huautla Mazatec"] = "mau",
["Huave"] = "huv",
["Huaxcaleca Nahuatl"] = "nhq",
["Huba"] = "hbb",
["Huehuetla Tepehua"] = "tee",
["Huetar"] = "cba-hue",
["Huichol"] = "hch",
["Huilliche"] = "huh",
["Huitepec Mixtec"] = "mxs",
["Hukumina"] = "huw",
["Hula"] = "hul",
["Tiếng Huli"] = "hui",
["Hulung"] = "huk",
["Humene"] = "huf",
["Hun"] = "uth",
["Hunde"] = "hke",
["Hungana"] = "hum",
["Hungarian Sign Language"] = "hsh",
["Hungworo"] = "nat",
["Hunjara-Kaina Ke"] = "hkk",
["Hunnic"] = "xhc",
["Hupla"] = "hap",
["Hutterisch"] = "geh",
["Hwana"] = "hwo",
["Hya"] = "hya",
["Hän"] = "haa",
["Hértevin"] = "hrt",
["I-Wak"] = "iwk",
["Iamalele"] = "yml",
["Iatmul"] = "ian",
["Iau"] = "tmu",
["Ibali Teke"] = "tek",
["Ibani"] = "iby",
["Iberian"] = "xib",
["Iboko"] = "bkp",
["Ibu"] = "ibu",
["Icelandic Sign Language"] = "icl",
["Iceve-Maci"] = "bec",
["Idakho-Isukha-Tiriki"] = "ida",
["Idaté"] = "idt",
["Idere"] = "ide",
["Idesa"] = "ids",
["Idi"] = "idi",
["Idoma"] = "idu",
["Idon"] = "idc",
["Idun"] = "ldb",
["Iduna"] = "viv",
["Ifo"] = "iff",
["Igana"] = "igg",
["Igede"] = "ige",
["Ignaciano"] = "ign",
["Igo"] = "ahl",
["Iguta"] = "nar",
["Igwe"] = "igw",
["Iha"] = "ihp",
["Ihievbe"] = "ihi",
["Ija-Zuba"] = "vki",
["Ik"] = "ikx",
["Ika"] = "ikk",
["Ikaranggal"] = "ikr",
["Ikizu"] = "ikz",
["Iko"] = "iki",
["Ikobi-Mena"] = "meb",
["Ikoma"] = "ntk",
["Ikpeng"] = "txi",
["Ikpeshi"] = "ikp",
["Iku-Gora-Ankwa"] = "ikv",
["Ikulu"] = "ikl",
["Ikwo"] = "iqw",
["Ila"] = "ilb",
["Ile Ape"] = "ila",
["Ilgar"] = "ilg",
["Ili'uun"] = "ilu",
["Ilianen Manobo"] = "mbi",
["Illyrian"] = "xil",
["Ilongot"] = "ilk",
["Ilue"] = "ilv",
["Ilwana"] = "mlk",
["Imbongu"] = "imo",
["Imonda"] = "imn",
["Imroing"] = "imr",
["Inabaknon"] = "abx",
["Inapang"] = "mzu",
["Indanga"] = "bnt-ind",
["Indian Sign Language"] = "ins",
["Indonesian Bajau"] = "bdl",
["Indonesian Sign Language"] = "inl",
["Indri"] = "idr",
["Indus Valley Language"] = "xiv",
["Inebu One"] = "oin",
["Ineseño"] = "inz",
["Inga"] = "inb",
["Inlaod Itneg"] = "iti",
["Inoke-Yate"] = "ino",
["Inonhan"] = "loc",
["Inpui Naga"] = "nkf",
["International Sign"] = "ils",
["Inuinnaqtun"] = "esx-inq",
["Inuit Sign Language"] = "iks",
["Inuktun"] = "esx-ink",
["Ipai"] = "nai-ipa",
["Ipalapa Amuzgo"] = "azm",
["Ipiko"] = "ipo",
["Ipili"] = "ipi",
["Ipulo"] = "ass",
["Iquito"] = "iqu",
["Ir"] = "irr",
["Irantxe"] = "irn",
["Iranun"] = "ill",
["Irarutu"] = "irh",
["Iraya"] = "iry",
["Iresim"] = "ire",
["Iriga Bicolano"] = "bto",
["Irish Sign Language"] = "isg",
["Isabi"] = "isa",
["Isanzu"] = "isn",
["Isarog Agta"] = "agk",
["Isaurian"] = "und-isa",
["Isconahua"] = "isc",
["Isebe"] = "igo",
["Isinai"] = "inn",
["Isirawa"] = "srl",
["Islander Creole English"] = "icr",
["Israeli Sign Language"] = "isr",
["Isthmus Mixe"] = "mir",
["Isu"] = "isu",
["Isubu"] = "szv",
["Italian Sign Language"] = "ise",
["Itawit"] = "itv",
["Iteri"] = "itr",
["Itik"] = "itx",
["Ito"] = "itw",
["Itundujia Mixtec"] = "mce",
["Itzá"] = "itz",
["Iwal"] = "kbm",
["Iwam"] = "iwm",
["Iwur"] = "iwo",
["Ixcatec"] = "ixc",
["Ixcatlán Mazatec"] = "mzi",
["Ixtayutla Mixtec"] = "vmj",
["Ixtenco Otomi"] = "otz",
["Iyayu"] = "iya",
["Iyive"] = "uiv",
["Iyo"] = "nca",
["Iyo'wujwa Chorote"] = "crq",
["Iyojwa'ja Chorote"] = "crt",
["Izere"] = "izr",
["Izi"] = "izz",
["Izi-Ezaa-Ikwo-Mgbo"] = "izi",
["Izora"] = "cbo",
["Iñapari"] = "inp",
["Jabem"] = "jae",
["Jabutí"] = "jbt",
["Jad"] = "jda",
["Jadgali"] = "jdg",
["Jahanka"] = "jad",
["Jair Awyu"] = "awv",
["Jakati"] = "jat",
["Jalapa de Díaz Mazatec"] = "maj",
["Jalkunan"] = "bxl",
["Jamaican Country Sign Language"] = "jcs",
["Jamaican Sign Language"] = "jls",
["Jambi Malay"] = "jax",
["Jamiltepec Mixtec"] = "mxt",
["Jaminjung"] = "djd",
["Jamsay"] = "djm",
["Jamtish"] = "gmq-jmk",
["Jandavra"] = "jnd",
["Janday"] = "jan",
["Jangkang"] = "djo",
["Jangshung"] = "jna",
["Janji"] = "jni",
["Japanese Sign Language"] = "jsl",
["Japrería"] = "jru",
["Jara"] = "jaf",
["Jaru"] = "ddj",
["Jassic"] = "ysc",
["Jawe"] = "jaz",
["Jaya"] = "jyy",
["Jebero"] = "jeb",
["Jeikó"] = "sai-jko",
["Jenaama Bozo"] = "bze",
["Jeng"] = "jeg",
["Jere"] = "jer",
["Jeri Kuo"] = "jek",
["Jerung"] = "jee",
["Jhankot Sign Language"] = "jhs",
["Jiamao"] = "jio",
["Jiba"] = "juo",
["Jibu"] = "jib",
["Jilbe"] = "jie",
["Jili"] = "mgi",
["Jilim"] = "jil",
["Jimi"] = "jmi",
["Jimjimen"] = "jim",
["Jina"] = "jia",
["Jingulu"] = "jig",
["Jiongnai Bunu"] = "pnu",
["Jirajara"] = "sai-jrj",
["Jiru"] = "jrr",
["Jita"] = "jit",
["Joba"] = "job",
["Jofotek-Bromnya"] = "jbr",
["Jola-Fonyi"] = "dyo",
["Jola-Kasa"] = "csk",
["Jonkor Bourmataguil"] = "jeu",
["Jordanian Sign Language"] = "jos",
["Jorá"] = "jor",
["Jowulu"] = "jow",
["Ju"] = "juu",
["Jumla Sign Language"] = "jus",
["Jumli"] = "jml",
["Jungle Inga"] = "inj",
["Juquila Mixe"] = "mxq",
["Jur Modo"] = "bex",
["Jurúna"] = "jur",
["Jutiapa"] = "nai-jtp",
["Juwal"] = "mwb",
["Juxtlahuaca Mixtec"] = "vmc",
["Jwira-Pepesa"] = "jwi",
["Júma"] = "jua",
["Kaamba"] = "xku",
["Kaan"] = "ldl",
["Kaang Chin"] = "ckn",
["Kaansa"] = "gna",
["Kaapor Sign Language"] = "uks",
["Kaba"] = "ksp",
["Kabalai"] = "kvf",
["Kabatei"] = "xkp",
["Kabba-Laka"] = "lap",
["Kabishiana"] = "tup-kab",
["Kabola"] = "klz",
["Kabore One"] = "onk",
["Kabras"] = "lkb",
["Kaburi"] = "uka",
["Kabutra"] = "kbu",
["Kabwa"] = "cwa",
["Kabwari"] = "kcw",
["Kachari"] = "xac",
["Kacipo-Balesi"] = "koe",
["Kaco'"] = "xkk",
["Kadai"] = "kzd",
["Kadara"] = "kad",
["Kadaru"] = "kdu",
["Kadiwéu"] = "kbc",
["Kado"] = "kdv",
["Kadugli"] = "xtc",
["Kaduo"] = "ktp",
["Kaera"] = "jka",
["Kafoa"] = "kpu",
["Kagan Kalagan"] = "kll",
["Kagate"] = "syw",
["Kagoma"] = "kdm",
["Kagoro"] = "xkg",
["Kagulu"] = "kki",
["Kahe"] = "hka",
["Kahua"] = "agw",
["Kaian"] = "kct",
["Kaibobo"] = "kzb",
["Kaidipang"] = "kzp",
["Kaiep"] = "kbw",
["Kaike"] = "kzq",
["Kaiku"] = "kkq",
["Kaimbulawa"] = "zka",
["Kaimbé"] = "xai",
["Kairak"] = "ckr",
["Kairiru"] = "kxa",
["Kairui-Midiki"] = "krd",
["Kais"] = "kzm",
["Kaivi"] = "kce",
["Kaiwá"] = "kgk",
["Kaiy"] = "tcq",
["Kajakse"] = "ckq",
["Kajali"] = "xkj",
["Kajaman"] = "kag",
["Kakabe"] = "kke",
["Kakanda"] = "kka",
["Kakihum"] = "kxe",
["Kako"] = "kkj",
["Kakwa"] = "keo",
["Kala"] = "kcl",
["Kala Lagaw Ya"] = "mwp",
["Kalaamaya"] = "lkm",
["Kalabakan"] = "kve",
["Kalabari"] = "ijn",
["Kalabra"] = "kzz",
["Kalagan"] = "kqe",
["Kalaktang Monpa"] = "kkf",
["Kalam"] = "kmh",
["Kalamsé"] = "knz",
["Kalanadi"] = "wkl",
["Kalanga"] = "kck",
["Kalapuya"] = "kyl",
["Kalarko"] = "kba",
["Kalasuri"] = "xme-kls",
["Kalenjin"] = "kln",
["Kalinago"] = "crb",
["Kalkatungu"] = "ktg",
["Kalou"] = "ywa",
["Kaluli"] = "bco",
["Kalumpang"] = "kli",
["Kam"] = "kdx",
["Kamakan"] = "vkm",
["Kamang"] = "woi",
["Kamano"] = "kbq",
["Kamantan"] = "kci",
["Kamar"] = "keq",
["Kamara"] = "jmr",
["Kamarian"] = "kzx",
["Kamaru"] = "kgx",
["Kamasa"] = "klp",
["Kamasau"] = "kms",
["Kamayurá"] = "kay",
["Kamba"] = "kam",
["Kambaira"] = "kyy",
["Kamberataro"] = "kbv",
["Kamberau"] = "irx",
["Kambiwá"] = "xbw",
["Kami"] = "kmi",
["Kamkata-viri"] = "bsh",
["Kamo"] = "kcq",
["Kamoro"] = "kgq",
["Kamu"] = "xmu",
["Kamwe"] = "hig",
["Kanakuru"] = "kna",
["Kanamari"] = "knm",
["Kanashi"] = "xns",
["Kanasi"] = "soq",
["Kandas"] = "kqw",
["Kandawo"] = "gam",
["Kande"] = "kbs",
["Kang"] = "kyp",
["Kanga"] = "kcp",
["Kanggape"] = "igm",
["Kango"] = "kty",
["Kango-Sua"] = "kzy",
["Kaniet"] = "ktk",
["Kanikkaran"] = "kev",
["Kaningdon-Nindem"] = "kdp",
["Kaningi"] = "kzo",
["Kaningra"] = "knr",
["Kaninuwa"] = "wat",
["Kanite"] = "kmu",
["Kanjari"] = "kft",
["Kanju"] = "kbe",
["Kanowit"] = "kxn",
["Kanoé"] = "kxo",
["Kansa"] = "ksk",
["Kantosi"] = "xkt",
["Kanu"] = "khx",
["Kanufi"] = "kni",
["Kanyok"] = "kny",
["Kao"] = "kax",
["Kaonde"] = "kqn",
["Kap"] = "ykm",
["Kapauri"] = "khp",
["Kapin"] = "tbx",
["Kapinawá"] = "xpn",
["Kapriman"] = "dju",
["Kaptiau"] = "kbi",
["Kapya"] = "klo",
["Kara (New Guinea)"] = "leu",
["Kara (Tanzania)"] = "reg",
["Karadjeri"] = "gbd",
["Karaga Mandaya"] = "mry",
["Karami"] = "xar",
["Karamojong"] = "kdj",
["Karang"] = "kzr",
["Karanga"] = "kth",
["Karankawa"] = "zkk",
["Karas"] = "kgv",
["Karawa"] = "xrw",
["Kare (Africa)"] = "kbn",
["Kare (New Guinea)"] = "kmf",
["Karey"] = "kyd",
["Kari"] = "kbj",
["Karingani"] = "kgn",
["Karipuna"] = "kuq",
["Karipúna"] = "kgm",
["Karipúna Creole French"] = "kmv",
["Kariya"] = "kil",
["Kariyarra"] = "vka",
["Karkar-Yuri"] = "yuj",
["Karkin"] = "krb",
["Karko"] = "kko",
["Karnai"] = "bbv",
["Karo Batak"] = "btx",
["Karok"] = "kyh",
["Karolanos"] = "kyn",
["Karon"] = "krx",
["Karon Dori"] = "kgw",
["Karore"] = "xkx",
["Karranga"] = "xrq",
["Karuwali"] = "rxw",
["Kasanga"] = "ccj",
["Kasem"] = "xsm",
["Kasiguranin"] = "ksn",
["Kaska"] = "kkz",
["Kaskean"] = "zsk",
["Kaskihá"] = "gva",
["Kassite"] = "und-kas",
["Kassonke"] = "kao",
["Kasua"] = "khs",
["Kataang"] = "kgd",
["Katabaga"] = "ktq",
["Katawixi"] = "xat",
["Katembri"] = "sai-kat",
["Kathlamet"] = "nai-kat",
["Kathoriya Tharu"] = "tkt",
["Kathu"] = "ykt",
["Katkari"] = "kfu",
["Katla"] = "kcr",
["Kato"] = "ktw",
["Katso"] = "kaf",
["Katukina"] = "knt",
["Kaulong"] = "pss",
["Kaur"] = "vkk",
["Kaure"] = "bpp",
["Kauwera"] = "xau",
["Kawacha"] = "kcb",
["Kawaiisu"] = "xaw",
["Kawe"] = "kgb",
["Kawishana"] = "awd-kaw",
["Kaxararí"] = "ktx",
["Kaxuyana"] = "kbb",
["Kaya"] = "zra",
["Kayabí"] = "kyz",
["Kayagar"] = "kyt",
["Kayan Mahakam"] = "xay",
["Kayan River Kayan"] = "xkn",
["Kayardild"] = "gyd",
["Kayeli"] = "kzl",
["Kaytetye"] = "gbb",
["Kayupulau"] = "kzu",
["Kazukuru"] = "kzk",
["Ke'o"] = "xxk",
["Keak"] = "keh",
["Keapara"] = "khz",
["Kedang"] = "ksx",
["Keder"] = "kdy",
["Kehu"] = "khh",
["Kei"] = "kei",
["Keiga"] = "kec",
["Kein"] = "bmh",
["Keiyo"] = "eyo",
["Kela-Yela"] = "kel",
["Kelabit"] = "kzi",
["Keley-I Kallahan"] = "ify",
["Tiếng Keliko"] = "kbo",
["Kelo"] = "xel",
["Kelon"] = "kyo",
["Kemak"] = "kem",
["Kembayan"] = "xem",
["Kemberano"] = "bzp",
["Kembra"] = "xkw",
["Kemezung"] = "dmo",
["Kemi Sami"] = "sjk",
["Kemiehua"] = "kfj",
["Kemtuik"] = "kmt",
["Kenaboi"] = "xbn",
["Kenati"] = "gat",
["Kendayan"] = "knx",
["Kendeje"] = "klf",
["Kendem"] = "kvm",
["Kenga"] = "kyq",
["Keningau Murut"] = "kxi",
["Keninjal"] = "knl",
["Kenswei Nsei"] = "ndb",
["Kenyan Sign Language"] = "xki",
["Kenyi"] = "lke",
["Keoru-Ahia"] = "xeu",
["Kepkiriwát"] = "kpn",
["Kepo'"] = "kuk",
["Kera"] = "ker",
["Kerak"] = "hhr",
["Kereho"] = "xke",
["Kerewe"] = "ked",
["Kerewo"] = "kxz",
["Kerinci"] = "kvr",
["Kesawai"] = "xes",
["Ketangalan"] = "kae",
["Kete"] = "kcv",
["Ketengban"] = "xte",
["Ketum"] = "ktt",
["Kewa"] = "kew",
["Keyagana"] = "kyg",
["Kgalagadi"] = "xkv",
["Khana"] = "ogo",
["Khandeshi"] = "khn",
["Khao"] = "xao",
["Kharam Naga"] = "kfw",
["Kharia Thar"] = "ksy",
["Khayo"] = "lko",
["Khe"] = "kqg",
["Khehek"] = "tlx",
["Khetrani"] = "xhe",
["Khezha Naga"] = "nkh",
["Khirwar"] = "kwx",
["Khisa"] = "kqm",
["Khlor"] = "llo",
["Khlula"] = "ykl",
["Khoibu Naga"] = "nkb",
["Khoini"] = "xkc",
["Kholok"] = "ktc",
["Khumi Chin"] = "cnk",
["Khwe"] = "xuu",
["Kibala"] = "blv",
["Kibena"] = "bez",
["Kibet"] = "kie",
["Kibiri"] = "prm",
["Kichwa"] = "qwe-kch",
["Kikami"] = "kcu",
["Kilit"] = "xme-klt",
["Kilivila"] = "kij",
["Kiliwa"] = "klb",
["Kilmeri"] = "kih",
["Kimaama"] = "kig",
["Kimaragang"] = "kqr",
["Kimbu"] = "kiv",
["Kimki"] = "sbt",
["Kimré"] = "kqp",
["Kinabalian"] = "cbw",
["Kinalakna"] = "kco",
["Kinga"] = "zga",
["Kings River Yokuts"] = "nai-kry",
["Kinikinao"] = "gqn",
["Kinuku"] = "kkd",
["Kioko"] = "ues",
["Kiong"] = "kkm",
["Kiorr"] = "xko",
["Kipfokomo"] = "pkb",
["Kipsigis"] = "sgc",
["Kiput"] = "kyi",
["Kir-Balar"] = "kkr",
["Kire"] = "geb",
["Kirfi"] = "kks",
["Kirikiri"] = "kiy",
["Kirya-Konzel"] = "fkk",
["Kis"] = "kis",
["Kisa"] = "lks",
["Kisankasa"] = "kqh",
["Kisar"] = "kje",
["Kisi"] = "kiz",
["Kita Maninkakan"] = "mwk",
["Kitanemuk"] = "azc-ktn",
["Kitembo"] = "tbt",
["Kitja"] = "gia",
["Kitsai"] = "kii",
["Kiunum"] = "wei",
["Kla"] = "lda",
["Klamath-Modoc"] = "kla",
["Klao"] = "klu",
["Klias River Kadazan"] = "kqt",
["Ko"] = "fuj",
["Koasati"] = "cku",
["Koba"] = "kpd",
["Kobiana"] = "kcj",
["Kobol"] = "kgu",
["Kochila Tharu"] = "thq",
["Kodaku"] = "ksz",
["Kodeoha"] = "vko",
["Kodi"] = "kod",
["Kodia"] = "kwp",
["Koenoem"] = "kcs",
["Kofa"] = "kso",
["Kofei"] = "kpi",
["Kofyar"] = "kwl",
["Kohin"] = "kkx",
["Kohumono"] = "bcs",
["Koi"] = "kkt",
["Koireng"] = "nkd",
["Koitabu"] = "kqi",
["Koiwat"] = "kxt",
["Kok-Nar"] = "gko",
["Kok-Paponk"] = "okg",
["Kokata"] = "ktd",
["Koke"] = "kou",
["Koko-Bera"] = "kkp",
["Kokoda"] = "xod",
["Kokola"] = "kzn",
["Kokota"] = "kkk",
["Kol (Cameroon)"] = "biw",
["Kol (New Guinea)"] = "kol",
["Kola"] = "kvv",
["Kolbila"] = "klc",
["Kolibugan Subanon"] = "skn",
["Kolom"] = "klm",
["Koluwawa"] = "klx",
["Kom (India)"] = "kmm",
["Koma"] = "kmy",
["Komba"] = "kpf",
["Kombai"] = "tyn",
["Kombio"] = "xbi",
["Komering"] = "kge",
["Kominimung"] = "xoi",
["Kompane"] = "kvp",
["Komyandaret"] = "kzv",
["Kon Keu"] = "kkn",
["Konai"] = "kxw",
["Konda"] = "knd",
["Koneraw"] = "kdw",
["Konkomba"] = "xon",
["Konni"] = "kma",
["Kono (Guinea)"] = "knu",
["Kono (Nigeria)"] = "klk",
["Kono (Sierra Leone)"] = "kno",
["Konomala"] = "koa",
["Konomihu"] = "nai-knm",
["Konongo"] = "kcz",
["Konyak Naga"] = "nbe",
["Konyanka Maninka"] = "mku",
["Konzo"] = "koo",
["Kopar"] = "xop",
["Kopkaka"] = "opk",
["Korafe-Yegha"] = "kpr",
["Korak"] = "koz",
["Korana"] = "kqz",
["Korandje"] = "kcy",
["Korean Sign Language"] = "kvk",
["Koreguaje"] = "coe",
["Koresh-e Rostam"] = "okh",
["Korlai Creole Portuguese"] = "vkp",
["Koro (India)"] = "jkr",
["Koro (New Guinea)"] = "kxr",
["Koro (Vanuatu)"] = "krf",
["Koro (West Africa)"] = "kfo",
["Koromfé"] = "kfz",
["Koromira"] = "kqj",
["Koronadal Blaan"] = "bpr",
["Koroni"] = "xkq",
["Korop"] = "krp",
["Koropó"] = "xxr",
["Koroshi"] = "ktl",
["Korowai"] = "khe",
["Korubo"] = "xor",
["Korupun-Sela"] = "kpq",
["Kosadle"] = "kiq",
["Kosarek Yale"] = "kkl",
["Kosena"] = "kze",
["Koshin"] = "kid",
["Kota (Gabon)"] = "koq",
["Kota Bangun Kutai Malay"] = "mqg",
["Kota Marudu Talantang"] = "grm",
["Kota Marudu Tinagas"] = "ktr",
["Kotafon Gbe"] = "kqk",
["Koti"] = "eko",
["Kou"] = "snz",
["Kouya"] = "kyf",
["Kovai"] = "kqb",
["Kove"] = "kvc",
["Kowaki"] = "xow",
["Kowiai"] = "kwh",
["Koy Sanjaq Surat"] = "kqd",
["Koyaga"] = "kga",
["Koyo"] = "koh",
["Koyra Chiini"] = "khq",
["Koyukon"] = "koy",
["Kpagua"] = "kuw",
["Kpala"] = "kpl",
["Kpan"] = "kpk",
["Kpasam"] = "pbn",
["Kpati"] = "koc",
["Kpatili"] = "kym",
["Kpee"] = "cpo",
["Kpelle"] = "kpe",
["Kpessi"] = "kef",
["Kplang"] = "kph",
["Krache"] = "kye",
["Krahô"] = "xra",
["Krenak"] = "kqq",
["Krevinian"] = "zkv",
["Kreye"] = "xre",
["Krikati-Timbira"] = "xri",
["Krim"] = "krm",
["Krisa"] = "ksi",
["Kristang"] = "mcm",
["Krobu"] = "kxb",
["Krongo"] = "kgo",
["Kua"] = "tyu",
["Kua-nsi"] = "ykn",
["Kuamasi"] = "yku",
["Kuan"] = "uan",
["Kuanhua"] = "xnh",
["Kube"] = "kgf",
["Kubi"] = "kof",
["Kubo"] = "jko",
["Kubu"] = "kvb",
["Kucong"] = "lkc",
["Kudu-Camo"] = "kov",
["Kugama"] = "kow",
["Kugbo"] = "kes",
["Kugu-Muminh"] = "xmh",
["Kui (Indonesia)"] = "kvd",
["Kuijau"] = "dkr",
["Kuikúro"] = "kui",
["Kujarge"] = "vkj",
["Kuk"] = "kfn",
["Kukatja"] = "kux",
["Kukele"] = "kez",
["Kukkuzi"] = "urj-kuk",
["Kuku-Mangk"] = "xmq",
["Kuku-Mu'inh"] = "xmp",
["Kuku-Thaypan"] = "typ",
["Kuku-Ugbanh"] = "ugb",
["Kuku-Uwanh"] = "uwa",
["Kuku-Yalanji"] = "gvn",
["Kula"] = "tpg",
["Kulaal"] = "glj",
["Kulere"] = "kul",
["Kulfa"] = "kxj",
["Kulina"] = "xpk",
["Kulisusu"] = "vkl",
["Kulon"] = "uon",
["Kulung"] = "kle",
["Kumak"] = "nee",
["Kumalu"] = "ksl",
["Kumam"] = "kdi",
["Kuman"] = "kue",
["Kumaoni"] = "kfy",
["Kumba"] = "ksm",
["Kumbainggar"] = "kgs",
["Kumbaran"] = "wkb",
["Kumhali"] = "kra",
["Kumu"] = "kmw",
["Kumukio"] = "kuo",
["Kunama"] = "kun",
["Kunbarlang"] = "wlg",
["Kunda"] = "kdn",
["Kunduvadi"] = "wku",
["Kung"] = "kfl",
["Kungarakany"] = "ggk",
["Kungardutyi"] = "gdt",
["Kunggari"] = "kgl",
["Kungkari"] = "lku",
["Kuni"] = "kse",
["Kuni-Boazi"] = "kvg",
["Kunimaipa"] = "kup",
["Kunja"] = "pep",
["Kunjen"] = "kjn",
["Kunyi"] = "njx",
["Kunza"] = "kuz",
["Kuot"] = "kto",
["Kupa"] = "kug",
["Kupang Malay"] = "mkn",
["Kupsabiny"] = "kpz",
["Kur"] = "kuv",
["Kura Ede Nago"] = "nqk",
["Kurama"] = "krh",
["Kuranko"] = "knk",
["Kuri"] = "nbn",
["Kuria"] = "kuj",
["Kurmukar"] = "kfv",
["Kurnai"] = "unn",
["Kurrama"] = "vku",
["Kurti"] = "ktm",
["Kurtjar"] = "gdj",
["Kurudu"] = "kjr",
["Kuruáya"] = "kyr",
["Tiếng Kusaal"] = "kus",
["Kusaghe"] = "ksg",
["Kustenau"] = "awd-kus",
["Kusu"] = "ksv",
["Kusunda"] = "kgg",
["Kuthant"] = "xut",
["Kutto"] = "kpa",
["Kutu"] = "kdc",
["Kuturmi"] = "khj",
["Kuuk Thaayorre"] = "thd",
["Kuuk Yak"] = "uky",
["Kuuku-Ya'u"] = "kuy",
["Kuvale"] = "olu",
["Kuwaa"] = "blh",
["Kuwaataay"] = "cwt",
["Kuwani"] = "paa-kwn",
["Kwa'"] = "bko",
["Kwaami"] = "ksq",
["Kwadi"] = "kwz",
["Kwaio"] = "kwd",
["Kwaja"] = "kdz",
["Kwak"] = "kwq",
["Kwakum"] = "kwu",
["Kwalhioqua-Tlatskanai"] = "qwt",
["Kwama"] = "kmq",
["Kwambi"] = "kwm",
["Kwamera"] = "tnk",
["Kwami"] = "ktf",
["Kwamtim One"] = "okk",
["Kwang"] = "kvi",
["Kwanga"] = "kwj",
["Kwangali"] = "kwn",
["Kwanka"] = "bij",
["Kwara'ae"] = "kwf",
["Kwasio"] = "nmg",
["Kwaya"] = "kya",
["Kwaza"] = "xwa",
["Kwegu"] = "xwg",
["Kwer"] = "kwr",
["Kwerba"] = "kwe",
["Kwerba Mamberamo"] = "xwr",
["Kwere"] = "cwe",
["Kwerisa"] = "kkb",
["Kwese"] = "kws",
["Kwesten"] = "kwt",
["Kwini"] = "gww",
["Kwinsu"] = "kuc",
["Kwoma"] = "kmo",
["Kwomtari"] = "kwo",
["Kyak"] = "bka",
["Kyaka"] = "kyc",
["Kyan-Karyaw Naga"] = "nqq",
["Kyenele"] = "kql",
["Kyenga"] = "tye",
["Kyerung"] = "kgy",
["Kélé"] = "keb",
["Kómnzo"] = "paa-kom",
["La'bi"] = "lbi",
["Laal"] = "gdm",
["Laba"] = "lau",
["Label"] = "lbb",
["Labir"] = "jku",
["Labo"] = "mwi",
["Labo Phowa"] = "ypb",
["Labu"] = "lbu",
["Labuk-Kinabatangan Kadazan"] = "dtb",
["Lacandon"] = "lac",
["Lachi"] = "lbt",
["Lachiguiri Zapotec"] = "zpa",
["Lachixío Zapotec"] = "zpl",
["Ladji-Ladji"] = "llj",
["Laeko-Libuat"] = "lkl",
["Lafofa"] = "laf",
["Laghu"] = "lgb",
["Laghuu"] = "lgh",
["Lagwan"] = "kot",
["Laha (Indonesia)"] = "lhh",
["Tiếng La Ha"] = "lha",
["Lahanan"] = "lhn",
["Lahu Shi"] = "lhi",
["Lahul Lohar"] = "lhl",
["Laimbue"] = "lmx",
["Laitu Chin"] = "clj",
["Laiyolo"] = "lji",
["Laka"] = "lak",
["Lake Miwok"] = "lmw",
["Lakha"] = "lkh",
["Lakkia"] = "lbc",
["Lakon"] = "lkn",
["Lakondê"] = "lkd",
["Lakota Dida"] = "dic",
["Lala (New Guinea)"] = "nrz",
["Lala (South Africa)"] = "bnt-lal",
["Lala-Bisa"] = "leb",
["Lala-Roba"] = "lla",
["Lalana Chinantec"] = "cnl",
["Lamaholot"] = "slp",
["Lamalera"] = "lmr",
["Lamang"] = "hia",
["Lamatuka"] = "lmq",
["Lamba"] = "lam",
["Lambichhong"] = "lmh",
["Lambya"] = "lai",
["Lame"] = "bma",
["Lamenu"] = "lmu",
["Lamet"] = "lbn",
["Lamja-Dengsa-Tola"] = "ldh",
["Lamma"] = "lev",
["Lamnso'"] = "lns",
["Lamogai"] = "lmg",
["Lampung Api"] = "ljp",
["Lamu"] = "llh",
["Lamu-Lamu"] = "lby",
["Lanas Lobu"] = "ruu",
["Landoma"] = "ldm",
["Lang'e"] = "yne",
["Langam"] = "lnm",
["Langbashe"] = "lna",
["Langi"] = "lag",
["Langnian Buyang"] = "yln",
["Lango (Sudan)"] = "lno",
["Lango (Uganda)"] = "laj",
["Lanima"] = "lnw",
["Lao Naga"] = "nlq",
["Laopang"] = "lbg",
["Laos Sign Language"] = "lso",
["Lapaguía-Guivini Zapotec"] = "ztl",
["Lapine"] = "art-lap",
["Lapuyan Subanun"] = "laa",
["Laragia"] = "lrg",
["Larantuka Malay"] = "lrt",
["Lardil"] = "lbz",
["Larevat"] = "lrv",
["Larike-Wakasihu"] = "alo",
["Laro"] = "lro",
["Larteh"] = "lar",
["Laru"] = "lan",
["Lasgerdi"] = "lsa",
["Lasi"] = "lss",
["Latu"] = "ltu",
["Latvian Sign Language"] = "lsl",
["Lau"] = "llu",
["Laua"] = "luf",
["Lauan"] = "llx",
["Lauje"] = "law",
["Laura"] = "lur",
["Laurentian"] = "lre",
["Lavatbura-Lamusong"] = "lbv",
["Lawangan"] = "lbx",
["Lawu"] = "lwu",
["Lawunuia"] = "tgi",
["Laze"] = "tbq-laz",
["Lealao Chinantec"] = "cle",
["Leco"] = "lec",
["Ledo Kaili"] = "lew",
["Leelau"] = "ldk",
["Lefa"] = "lfa",
["Lega-Mwenga"] = "lgm",
["Lega-Shabunda"] = "lea",
["Legbo"] = "agb",
["Legenyem"] = "lcc",
["Lehali"] = "tql",
["Lehalurup"] = "urr",
["Leinong Naga"] = "lzn",
["Leipon"] = "lek",
["Lela"] = "dri",
["Lelak"] = "llk",
["Lele (Chad)"] = "lln",
["Lele (Congo)"] = "lel",
["Lele (Guinea)"] = "llc",
["Lele (New Guinea)"] = "lle",
["Lelepa"] = "lpa",
["Lembena"] = "leq",
["Lemerig"] = "lrz",
["Lemio"] = "lei",
["Lemolang"] = "ley",
["Lemoro"] = "ldj",
["Lenakel"] = "tnl",
["Lendu"] = "led",
["Lengilu"] = "lgi",
["Lengo"] = "lgr",
["Lengola"] = "lej",
["Lenje"] = "leh",
["Lenkau"] = "ler",
["Lenyima"] = "ldg",
["Lepki"] = "lpe",
["Lere"] = "gnh",
["Lese"] = "les",
["Lesing-Gelimi"] = "let",
["Letemboi"] = "nms",
["Leti (Cameroon)"] = "leo",
["Leti (Indonesia)"] = "lti",
["Levuka"] = "lvu",
["Lewo Eleng"] = "lwe",
["Lewotobi"] = "lwt",
["Leyigha"] = "ayi",
["Lhokpu"] = "lhp",
["Li'o"] = "ljl",
["Liana-Seti"] = "ste",
["Liangmai Naga"] = "njn",
["Liberian Kreyol"] = "lir",
["Libinza"] = "liz",
["Libon Bikol"] = "lbl",
["Liburnian"] = "xli",
["Libyan Sign Language"] = "lbs",
["Ligbi"] = "lig",
["Ligenza"] = "lgz",
["Lihir"] = "lih",
["Lika"] = "lik",
["Liki"] = "lio",
["Likila"] = "lie",
["Likuba"] = "kxx",
["Likum"] = "lib",
["Likwala"] = "kwc",
["Lilau"] = "lll",
["Limassa"] = "bme",
["Limbu"] = "lif",
["Limi"] = "ylm",
["Limilngan"] = "lmc",
["Linear A"] = "lab",
["Lingkhim"] = "lii",
["Lingua Franca Nova"] = "lfn",
["Linngithigh"] = "lnj",
["Lipo"] = "lpo",
["Lisabata-Nuniali"] = "lcs",
["Lisela"] = "lcl",
["Lish"] = "lsh",
["Lishán Didán"] = "trg",
["Lithuanian Sign Language"] = "lls",
["Little Swanport"] = "aus-lsw",
["Litzlitz"] = "lzl",
["Lizu"] = "sit-liz",
["Lo-Toga"] = "lht",
["Loarki"] = "lrk",
["Lobala"] = "loq",
["Logo"] = "log",
["Logol"] = "lof",
["Logooli"] = "rag",
["Logorik"] = "liu",
["Lokaa"] = "yaz",
["Loko"] = "lok",
["Lokoya"] = "lky",
["Lola"] = "lcd",
["Lolak"] = "llq",
["Lole"] = "llg",
["Lolo"] = "llb",
["Loloda"] = "loa",
["Lolopo"] = "ycl",
["Lomaiviti"] = "lmv",
["Lomakka"] = "loi",
["Lombi"] = "lmi",
["Lombo"] = "loo",
["Lomwe"] = "ngl",
["Loncong"] = "lce",
["Long Phuri Naga"] = "lpn",
["Long Wat"] = "ttw",
["Longgu"] = "lgu",
["Longto"] = "wok",
["Longuda"] = "lnu",
["Loniu"] = "los",
["Lonwolwol"] = "crc",
["Loo"] = "ldo",
["Lopa"] = "lop",
["Lope"] = "yiu",
["Lopi"] = "lov",
["Lopit"] = "lpx",
["Lorang"] = "lrn",
["Lorediakarkar"] = "lnn",
["Lote"] = "uvl",
["Lotud"] = "dtr",
["Lotuko"] = "lot",
["Loun"] = "lox",
["Loup A"] = "xlo",
["Loup B"] = "xlb",
["Lovono"] = "vnk",
["Lower Burdekin"] = "xbb",
["Lower Chehalis"] = "cea",
["Lower Grand Valley Dani"] = "dni",
["Lower Nossob"] = "nsb",
["Lower Southern Aranda"] = "axl",
["Lower Ta'oih"] = "tto",
["Lowland Oaxaca Chontal"] = "clo",
["Lowland Tarahumara"] = "tac",
["Loxicha Zapotec"] = "ztp",
["Lozi"] = "loz",
["Luang"] = "lex",
["Tiếng Luba-Kasai"] = "lua",
["Lubila"] = "kcc",
["Lubu"] = "lcf",
["Lubuagan Kalinga"] = "knb",
["Luchazi"] = "lch",
["Lufu"] = "ldq",
["Lugbara"] = "lgg",
["Luguru"] = "ruf",
["Luhu"] = "lcq",
["Luimbi"] = "lum",
["Luiseño"] = "lui",
["Lule"] = "ule",
["Lule Sami"] = "smj",
["Lumba-Yakkha"] = "luu",
["Lumbee"] = "lmz",
["Lumun"] = "lmd",
["Lun Bawang"] = "lnd",
["Luna"] = "luj",
["Lunda"] = "lun",
["Lungga"] = "lga",
["Luo"] = "luo",
["Luopohe Hmong"] = "hml",
["Luri (Nigeria)"] = "ldd",
["Lusengo"] = "lse",
["Lusi"] = "khl",
["Lusitanian"] = "xls",
["Lutachoni"] = "lts",
["Lutos"] = "ndy",
["Luvale"] = "lue",
["Luwati"] = "luv",
["Luwo"] = "lwo",
["Luyana"] = "lyn",
["Lwalu"] = "lwa",
["Lwel"] = "lvl",
["Lyélé"] = "lee",
["Tiếng Láadan"] = "ldn",
["Láá Láá Bwamu"] = "bwj",
["Ma"] = "msj",
["Ma Manda"] = "skc",
["Ma'di"] = "mhi",
["Ma'ya"] = "slz",
["Maba"] = "mqa",
["Mabaale"] = "mmz",
["Mabaka Valley Kalinga"] = "kkg",
["Mabire"] = "muj",
["Maca"] = "mca",
["Macaguaje"] = "mcl",
["Macaguán"] = "mbn",
["Macanese"] = "mzs",
["Macau Pidgin Portuguese"] = "crp-mpp",
["Machame"] = "jmc",
["Machiguenga"] = "mcb",
["Machinere"] = "mpd",
["Machinga"] = "mvw",
["Macoris"] = "nai-mac",
["Macuna"] = "myy",
["Mada (Cameroon)"] = "mxu",
["Mada (Nigeria)"] = "mda",
["Madagascar Sign Language"] = "mzc",
["Madak"] = "mmx",
["Maden"] = "xmx",
["Madhi Madhi"] = "dmd",
["Madi"] = "grg",
["Madngele"] = "zml",
["Madukayang Kalinga"] = "kmd",
["Mae"] = "mme",
["Maek"] = "hmk",
["Maeng Itneg"] = "itt",
["Mafa"] = "maf",
["Mafea"] = "mkv",
["Mag-Anchi Ayta"] = "sgb",
["Mag-Indi Ayta"] = "blx",
["Magadhi Prakrit"] = "inc-mgd",
["Magahat"] = "mtw",
["Magdalena Peñasco Mixtec"] = "xtm",
["Magiyi"] = "gmg",
["Magoma"] = "gmx",
["Magɨ"] = "gkd",
["Mahican"] = "mjy",
["Mahongwe"] = "mhb",
["Mahou"] = "mxx",
["Tiếng Maia"] = "sks",
["Maiadomu"] = "mzz",
["Maiani"] = "tnh",
["Maii"] = "mmm",
["Mailu"] = "mgu",
["Maindo"] = "cwb",
["Mairasi"] = "zrs",
["Maisin"] = "mbq",
["Maiwa (Indonesia)"] = "wmm",
["Maiwa (New Guinea)"] = "mti",
["Maiwala"] = "mum",
["Majera"] = "xmj",
["Majhi"] = "mjz",
["Majhwar"] = "mmj",
["Mak (China)"] = "mkg",
["Mak (Nigeria)"] = "pbl",
["Makaa"] = "mcp",
["Makah"] = "myh",
["Tiếng Makalero"] = "mjb",
["Tiếng Makasae"] = "mkz",
["Makassar Malay"] = "mfp",
["Makayam"] = "aup",
["Makhuwa"] = "vmw",
["Makhuwa-Marrevone"] = "xmc",
["Makhuwa-Meetto"] = "mgh",
["Makhuwa-Moniga"] = "mhm",
["Makhuwa-Saka"] = "xsq",
["Makhuwa-Shirima"] = "vmk",
["Maklew"] = "mgf",
["Makolkol"] = "zmh",
["Makonde"] = "kde",
["Maku"] = "xak",
["Maku'a"] = "lva",
["Makuri Naga"] = "jmn",
["Makuráp"] = "mpu",
["Makwe"] = "ymk",
["Makyan Naga"] = "umn",
["Mal Paharia"] = "mkb",
["Mala (New Guinea)"] = "ped",
["Mala (Nigeria)"] = "ruy",
["Malaccan Creole Malay"] = "ccm",
["Malalamai"] = "mmt",
["Malalí"] = "sai-mal",
["Malango"] = "mln",
["Malas"] = "mkr",
["Malasanga"] = "mqz",
["Malawi Lomwe"] = "lon",
["Malawian Sign Language"] = "lws",
["Malayic Dayak"] = "xdy",
["Malaynon"] = "mlz",
["Malaysian Sign Language"] = "xml",
["Malba Birifor"] = "bfo",
["Male"] = "mdc",
["Maleu-Kilenge"] = "mgl",
["Malfaxal"] = "mlx",
["Malgana"] = "vml",
["Malgbe"] = "mxf",
["Mali"] = "gcc",
["Malibu"] = "sai-mlb",
["Malila"] = "mgq",
["Malimba"] = "mzd",
["Malimpung"] = "mli",
["Malol"] = "mbk",
["Maltese Sign Language"] = "mdl",
["Malua Bay"] = "mll",
["Malvi"] = "mup",
["Maléku Jaíka"] = "gut",
["Mam"] = "mam",
["Mama"] = "mma",
["Mamaa"] = "mhf",
["Mamaindé"] = "wmd",
["Mamanwa"] = "mmn",
["Tiếng Senoufo Mamara"] = "myk",
["Mamasa"] = "mqj",
["Mambae"] = "mgm",
["Mambai"] = "mcs",
["Mamboru"] = "mvd",
["Mambwe-Lungu"] = "mgr",
["Mamuju"] = "mqx",
["Mamulique"] = "emm",
["Mamusi"] = "kdf",
["Mamvu"] = "mdi",
["Man Met"] = "mml",
["Manado Malay"] = "xmm",
["Manam"] = "mva",
["Manambu"] = "mle",
["Manangba"] = "nmm",
["Manangkari"] = "znk",
["Manao"] = "awd-man",
["Manda (Australia)"] = "zma",
["Manda (Tanzania)"] = "mgs",
["Mandaic"] = "mid",
["Mandailing Batak"] = "btm",
["Mandalorian"] = "art-man",
["Mandan"] = "mhq",
["Mandandanyi"] = "zmk",
["Mandar"] = "mdr",
["Mandari"] = "mqu",
["Mander"] = "mqr",
["Mandingo"] = "man",
["Mandjak"] = "mfv",
["Mandobo Atas"] = "aax",
["Mandobo Bawah"] = "bwp",
["Manem"] = "jet",
["Mangala"] = "mem",
["Mangarayi"] = "mpc",
["Mangarevan"] = "mrv",
["Mangayat"] = "myj",
["Mangbetu"] = "mdj",
["Mangbutu"] = "mdk",
["Mangerr"] = "zme",
["Mangga Buang"] = "mmo",
["Tiếng Mango"] = "mge",
["Mangole"] = "mqc",
["Mangseng"] = "mbh",
["Manigri-Kambolé Ede Nago"] = "xkb",
["Manikion"] = "mnx",
["Manipa"] = "mqp",
["Mankiyali"] = "nlm",
["Manna-Dora"] = "mju",
["Manombai"] = "woo",
["Mansoanka"] = "msw",
["Manta"] = "myg",
["Mantsi"] = "nty",
["Manusela"] = "wha",
["Manya"] = "mzj",
["Manyawa"] = "mny",
["Manza"] = "mzv",
["Mao Naga"] = "nbi",
["Mape"] = "mlh",
["Mapena"] = "mnm",
["Mapia"] = "mpy",
["Mapidian"] = "mpw",
["Mapoyo"] = "mcg",
["Mapun"] = "sjm",
["Mara"] = "mec",
["Mara Chin"] = "mrh",
["Marachi"] = "lri",
["Maraghei"] = "vmh",
["Maragus"] = "mrs",
["Maram Naga"] = "nma",
["Marama"] = "lrm",
["Maranungku"] = "zmr",
["Mararit"] = "mgb",
["Maratino"] = "sai-mar",
["Marawan"] = "awd-mar",
["Marba"] = "mpg",
["Marenje"] = "vmr",
["Marfa"] = "mvu",
["Margany"] = "zmc",
["Marghi South"] = "mfm",
["Margi"] = "mrt",
["Maria"] = "mds",
["Mariaté"] = "awd-mrt",
["Maridan"] = "zmd",
["Maridjabin"] = "zmj",
["Marik"] = "dad",
["Marimanindji"] = "zmm",
["Marind"] = "mrz",
["Maring"] = "mbw",
["Maringarr"] = "zmt",
["Marino"] = "mrb",
["Mariri"] = "mqi",
["Maritime Sign Language"] = "nsr",
["Maritsauá"] = "msp",
["Mariyedi"] = "zmy",
["Marka"] = "rkm",
["Markweeta"] = "enb",
["Maroon Spirit Language"] = "cpe-mar",
["Marovo"] = "mvo",
["Marrgu"] = "mhg",
["Marriammu"] = "xru",
["Marrithiyel"] = "mfr",
["Martha's Vineyard Sign Language"] = "mre",
["Marti Ke"] = "zmg",
["Martu Wangka"] = "mpj",
["Marúbo"] = "mzr",
["Masaba"] = "myx",
["Masadiit Itneg"] = "tis",
["Masakará"] = "sai-msk",
["Masalit"] = "mls",
["Masana"] = "mcn",
["Masbate Sorsogon"] = "bks",
["Mashco Piro"] = "cuj",
["Mashi"] = "mho",
["Masimasi"] = "ism",
["Masiwang"] = "bnf",
["Maslam"] = "msv",
["Masmaje"] = "mes",
["Massachusett"] = "wam",
["Massalat"] = "mdg",
["Massep"] = "mvs",
["Matagalpa"] = "mtn",
["Matanawi"] = "sai-mat",
["Matbat"] = "xmt",
["Matengo"] = "mgv",
["Matepi"] = "mqe",
["Matigsalug Manobo"] = "mbt",
["Matipuhy"] = "mzo",
["Matlatzinca"] = "mat",
["Mato"] = "met",
["Mato Grosso Arára"] = "axg",
["Matsés"] = "mcf",
["Mattole"] = "mvb",
["Matukar"] = "mjk",
["Matumbi"] = "mgw",
["Matya Samo"] = "stj",
["Matís"] = "mpq",
["Mauritian Sign Language"] = "lsy",
["Mauwake"] = "mhl",
["Mawa"] = "mcw",
["Mawak"] = "mjj",
["Mawan"] = "mcz",
["Mawayana"] = "mzx",
["Mawchi"] = "mke",
["Mawes"] = "mgk",
["Maxakalí"] = "mbl",
["Maxi Gbe"] = "mxl",
["Maya Samo"] = "sym",
["Mayaguduna"] = "xmy",
["Mayangna"] = "yan",
["Mayawali"] = "yxa",
["Maybrat"] = "ayz",
["Mayeka"] = "myc",
["Mayi-Thakurti"] = "xyt",
["Maykulan"] = "mnt",
["Maynas"] = "sai-mys",
["Mayo"] = "mfy",
["Mayogo"] = "mdm",
["Mayoyao Ifugao"] = "ifu",
["Maypure"] = "awd-mpr",
["Mazagway"] = "dkx",
["Mazaltepec Zapotec"] = "zpy",
["Mazatlán Mazatec"] = "vmz",
["Mazatlán Mixe"] = "mzl",
["Mba"] = "mfc",
["Mbala"] = "mdp",
["Mbalanhu"] = "lnb",
["Mbandja"] = "zmz",
["Mbangala"] = "mxg",
["Mbangi"] = "mgn",
["Mbangwe"] = "zmn",
["Mbara (Australia)"] = "mvl",
["Mbara (Chad)"] = "mpk",
["Mbariman-Gudhinma"] = "zmv",
["Mbati"] = "mdn",
["Mbato"] = "gwa",
["Mbay"] = "myb",
["Mbe"] = "mfo",
["Mbe'"] = "mtk",
["Mbelime"] = "mql",
["Mbere"] = "mdt",
["Mbesa"] = "zms",
["Mbiywom"] = "aus-mbi",
["Mbo (Cameroon)"] = "mbo",
["Mbo (Congo)"] = "zmw",
["Mboi"] = "moi",
["Mboko"] = "mdu",
["Mbole"] = "mdq",
["Mbonga"] = "xmb",
["Mbongno"] = "bgu",
["Mbosi"] = "mdw",
["Mbowe"] = "mxo",
["Mbre"] = "mka",
["Mbu'"] = "muc",
["Mbudum"] = "xmd",
["Mbugu"] = "mhd",
["Mbugwe"] = "mgz",
["Mbuko"] = "mqb",
["Mbukushu"] = "mhw",
["Mbula"] = "mna",
["Mbula-Bwazza"] = "mbu",
["Mbule"] = "mlb",
["Mbulungish"] = "mbv",
["Mbum"] = "mdd",
["Mbunda"] = "mck",
["Mbunga"] = "mgy",
["Mburku"] = "bbt",
["Mbuun"] = "zmp",
["Mbwela"] = "mfu",
["Mea"] = "meg",
["Mebu"] = "mjn",
["Mecayapan Nahuatl"] = "nhx",
["Medebur"] = "mjm",
["Medefaidrin"] = "dmf",
["Mednyj Aleut"] = "mud",
["Mefele"] = "mfj",
["Megam"] = "mef",
["Mehek"] = "nux",
["Mehináku"] = "mmh",
["Mekeo"] = "mek",
["Mekmek"] = "mvk",
["Mekwei"] = "msf",
["Mekéns"] = "skf",
["Mel-Khaonh"] = "hkn",
["Mele-Fila"] = "mxe",
["Mendalam Kayan"] = "xkd",
["Mengaka"] = "xmg",
["Mengen"] = "mee",
["Menien"] = "sai-men",
["Menka"] = "mea",
["Menya"] = "mcr",
["Meoswar"] = "mvx",
["Mer"] = "mnu",
["Meramera"] = "mxm",
["Merei"] = "lmb",
["Merey"] = "meq",
["Merlav"] = "mrm",
["Meroitic"] = "xmr",
["Meru"] = "mer",
["Mese"] = "mci",
["Mesme"] = "zim",
["Mesmes"] = "mys",
["Meta'"] = "mgo",
["Metlatónoc Mixtec"] = "mxv",
["Mewari"] = "mtr",
["Mewati"] = "wtm",
["Mexican Sign Language"] = "mfs",
["Meyah"] = "mej",
["Mezontla Popoloca"] = "pbe",
["Mfinu"] = "zmf",
["Mfumte"] = "nfu",
["Mgbo"] = "gmz",
["Mian"] = "mpt",
["Miani"] = "pla",
["Micha"] = "yiq",
["Michif"] = "crg",
["Michigamea"] = "cmm",
["Michoacán Nahuatl"] = "ncl",
["Mid Grand Valley Dani"] = "dnt",
["Mid-Southern Banda"] = "bjo",
["Middle Assamese"] = "inc-mas",
["Middle Bengali"] = "inc-mbn",
["Tiếng Cornwall trung đại"] = "cnx",
["Middle Kannada"] = "dra-mkn",
["Middle Median"] = "xme-mid",
["Middle Newar"] = "nwx",
["Tiếng Na Uy trung đại"] = "gmq-mno",
["Middle Watut"] = "mpl",
["Midob"] = "mei",
["Migaama"] = "mmy",
["Migabac"] = "mpp",
["Miji"] = "sjl",
["Miju"] = "mxj",
["Mikasuki"] = "mik",
["Milang"] = "und-mil",
["Mili"] = "ymh",
["Millcayac"] = "sai-mil",
["Miltu"] = "mlj",
["Miluk"] = "iml",
["Milyan"] = "imy",
["Mimi of Decorse"] = "und-mmd",
["Mimi of Nachtigal"] = "und-mmn",
["Mina"] = "hna",
["Minaean"] = "inm",
["Minang"] = "xrg",
["Minanibai"] = "mcv",
["Minaveha"] = "mvn",
["Minderico"] = "drc",
["Mindiri"] = "mpn",
["Mingang Doso"] = "mko",
["Mingo"] = "iro-min",
["Tiếng Huitoto Minica"] = "hto",
["Minidien"] = "wii",
["Minigir"] = "vmg",
["Minjungbal"] = "xjb",
["Minkin"] = "xxm",
["Minoan"] = "omn",
["Minokok"] = "mqq",
["Miraya Bikol"] = "rbl",
["Mire"] = "mvh",
["Miriti"] = "mmv",
["Miriwoong Sign Language"] = "rsm",
["Miriwung"] = "mep",
["Mirpur Panjabi"] = "pmu",
["Misantla Totonac"] = "tlc",
["Miship"] = "mjs",
["Misima-Paneati"] = "mpx",
["Mitlatongo Mixtec"] = "vmm",
["Mittu"] = "mwu",
["Mituku"] = "zmq",
["Miu"] = "mpo",
["Miwa"] = "vmi",
["Mixed Great Andamanese"] = "gac",
["Mixifore"] = "mfg",
["Mixtepec Mixtec"] = "mix",
["Mixtepec Zapotec"] = "zpm",
["Miya"] = "mkf",
["Miyobe"] = "soy",
["Mlap"] = "kja",
["Mlomp"] = "mlo",
["Mmaala"] = "mmu",
["Mmani"] = "buy",
["Mmen"] = "bfm",
["Mo"] = "wkd",
["Mo'da"] = "gbn",
["Moabite"] = "obm",
["Moba"] = "mfq",
["Mobilian"] = "mod",
["Mobumrin Aizi"] = "ahm",
["Mocana"] = "sai-mcn",
["Mochi"] = "old",
["Mochica"] = "omc",
["Mocho"] = "mhc",
["Mocoví"] = "moc",
["Modang"] = "mxd",
["Modole"] = "mqo",
["Moere"] = "mvq",
["Mofu-Gudur"] = "mif",
["Mogum"] = "mou",
["Moi (Congo)"] = "mow",
["Moi (Indonesia)"] = "mxn",
["Moikodi"] = "mkp",
["Moingi"] = "mwz",
["Mojave"] = "mov",
["Moji"] = "ymi",
["Mok"] = "mqt",
["Mokerang"] = "mft",
["Mokole"] = "mkl",
["Mokpwe"] = "bri",
["Molale"] = "mbe",
["Moldova Sign Language"] = "vsi",
["Molengue"] = "bxc",
["Molima"] = "mox",
["Molmo One"] = "aun",
["Molo"] = "zmo",
["Molof"] = "msl",
["Moloko"] = "mlw",
["Mom Jango"] = "ver",
["Moma"] = "myl",
["Momare"] = "msz",
["Mombo Dogon"] = "dmb",
["Mombum"] = "mso",
["Momina"] = "mmb",
["Momuna"] = "mqf",
["Monastic Sign Language"] = "mzg",
["Mondropolon"] = "npn",
["Mondé"] = "mnd",
["Mongol"] = "mgt",
["Mongolian Sign Language"] = "msr",
["Moni"] = "mnz",
["Monimbo"] = "mom",
["Mono (California)"] = "mnr",
["Mono (Cameroon)"] = "mru",
["Mono (Congo)"] = "mnh",
["Monsang Naga"] = "nmh",
["Montagnais"] = "moe",
["Montana Salish"] = "fla",
["Montol"] = "mtl",
["Monumbo"] = "mxk",
["Monzombo"] = "moj",
["Moo"] = "gwg",
["Mopan Maya"] = "mop",
["Mor (Austronesian)"] = "mhz",
["Mor (Papuan)"] = "moq",
["Moraid"] = "msg",
["Moran"] = "sit-mor",
["Morawa"] = "mze",
["Morelos Nahuatl"] = "nhm",
["Morerebi"] = "xmo",
["Moresada"] = "msx",
["Mori Atas"] = "mzq",
["Mori Bawah"] = "xmz",
["Morigi"] = "mdb",
["Moroccan Sign Language"] = "xms",
["Morom"] = "bdo",
["Moronene"] = "mqn",
["Morori"] = "mok",
["Morouas"] = "mrp",
["Mortlockese"] = "mrl",
["Moru"] = "mgd",
["Mosimo"] = "mqv",
["Moskona"] = "mtj",
["Motembo"] = "tmv",
["Mouk-Aria"] = "mwh",
["Mount Iraya Agta"] = "atl",
["Mount Iriga Agta"] = "agz",
["Mountain Koiari"] = "kpx",
["Mouwase"] = "jmw",
["Movima"] = "mzp",
["Moyadan Itneg"] = "ity",
["Mozambican Sign Language"] = "mzy",
["Mpalitjanh"] = "xpj",
["Mpiemo"] = "mcx",
["Mpiin"] = "bnt-mpi",
["Mpinda"] = "pnd",
["Mpongmpong"] = "mgg",
["Mpoto"] = "mpa",
["Mpotovoro"] = "mvt",
["Mpuono"] = "bnt-mpu",
["Mpur"] = "akc",
["Mro Chin"] = "cmr",
["Mru"] = "mro",
["Mser"] = "kqx",
["Mualang"] = "mtd",
["Mubami"] = "tsx",
["Mubi"] = "mub",
["Mucuchí"] = "sai-muc",
["Muda"] = "ymd",
["Muduapa"] = "wiv",
["Muellama"] = "sai-mue",
["Mufian"] = "aoj",
["Muher"] = "sem-mhr",
["Muinane"] = "bmr",
["Mukha-Dora"] = "mmk",
["Mukulu"] = "moz",
["Mulaha"] = "mfw",
["Mulam"] = "mlm",
["Mulao"] = "giu",
["Mullukmulluk"] = "mpb",
["Muluridyi"] = "vmu",
["Mum"] = "kqa",
["Mumuye"] = "mzm",
["Mundang"] = "mua",
["Mundani"] = "mnf",
["Mundat"] = "mmf",
["Mundolinco"] = "art-mun",
["Mundurukú"] = "myu",
["Mungaka"] = "mhk",
["Mungbam"] = "mij",
["Mungkip"] = "mpv",
["Muniche"] = "myr",
["Munit"] = "mtc",
["Mur Pano"] = "tkv",
["Muratayak"] = "asx",
["Murik (Malaysia)"] = "mxr",
["Murik (New Guinea)"] = "mtf",
["Murkim"] = "rmh",
["Murrinh-Patha"] = "mwf",
["Tiếng Huitoto Murui"] = "huu",
["Murupi"] = "mqw",
["Muruwari"] = "zmu",
["Musan"] = "mmp",
["Musar"] = "mmi",
["Musasa"] = "smm",
["Musey"] = "mse",
["Musgu"] = "mug",
["Muskum"] = "mje",
["Musom"] = "msu",
["Mussau-Emira"] = "emi",
["Mutu"] = "tuc",
["Muya"] = "mvm",
["Muyang"] = "muy",
["Muyuw"] = "myw",
["Muzi"] = "ymz",
["Muzo"] = "sai-muz",
["Mvanip"] = "mcj",
["Mvuba"] = "mxh",
["Mwaghavul"] = "sur",
["Mwali Comorian"] = "wlc",
["Mwani"] = "wmw",
["Mwatebu"] = "mwa",
["Mwera"] = "mwe",
["Mwimbi-Muthambi"] = "mws",
["Mysian"] = "yms",
["Mzieme Naga"] = "nme",
["Mághdì"] = "gmd",
["Mün Chin"] = "mwq",
["Mündü"] = "muh",
["N'Ko"] = "nqo",
["Na"] = "nbt",
["Na'vi"] = "art-nav",
["Naaba"] = "nao",
["Naba"] = "mne",
["Nabak"] = "naf",
["Nabi"] = "mty",
["Nachering"] = "ncd",
["Nadruvian"] = "ndf",
["Nadëb"] = "mbj",
["Nafi"] = "srf",
["Nafri"] = "nxx",
["Naga Pidgin"] = "nag",
["Nagarchal"] = "nbg",
["Nage"] = "nxe",
["Nagtipunan Agta"] = "phi-nag",
["Nagu"] = "ngr",
["Nagumi"] = "ngv",
["Nahali"] = "nlx",
["Nahari"] = "nhh",
["Nahavaq"] = "sns",
["Nai"] = "bio",
["Najdi Arabic"] = "ars",
["Naka'ela"] = "nae",
["Nakai"] = "nkj",
["Nakame"] = "nib",
["Nakanai"] = "nak",
["Nakara"] = "nck",
["Nake"] = "nbk",
["Naki"] = "mff",
["Nakwi"] = "nax",
["Nalca"] = "nlc",
["Nali"] = "nss",
["Nalik"] = "nal",
["Nalu"] = "naj",
["Nalögo"] = "nlz",
["Namakura"] = "nmk",
["Namat"] = "nkm",
["Nambo"] = "ncm",
["Nambya"] = "nmq",
["Namia"] = "nnm",
["Namiae"] = "nvm",
["Namibian Sign Language"] = "nbs",
["Namla"] = "naa",
["Namo"] = "mxw",
["Namonuito"] = "nmt",
["Namosi-Naitasiri-Serua"] = "bwb",
["Namuyi"] = "nmy",
["Nancere"] = "nnc",
["Nande"] = "nnb",
["Nandi"] = "niq",
["Nanerigé Sénoufo"] = "sen",
["Nanga Dama Dogon"] = "nzz",
["Nanti"] = "cox",
["Nanticoke"] = "nnt",
["Nanubae"] = "afk",
["Naolan"] = "nai-nao",
["Napu"] = "npy",
["Nar Phu"] = "npa",
["Nara"] = "nrb",
["Narak"] = "nac",
["Narango"] = "nrg",
["Narau"] = "nxu",
["Narim"] = "loh",
["Naro"] = "nhr",
["Narom"] = "nrm",
["Narragansett"] = "xnt",
["Narungga"] = "nnr",
["Naruo"] = "ylo",
["Nasal"] = "nsy",
["Nasarian"] = "nvh",
["Nasioi"] = "nas",
["Nasu"] = "ywq",
["Natagaimas"] = "nts",
["Natchez"] = "ncz",
["Nathembo"] = "nte",
["Natioro"] = "nti",
["Natú"] = "sai-nat",
["Natügu"] = "ntu",
["Nauete"] = "nxa",
["Nauna"] = "ncn",
["Nauo"] = "nwo",
["Navarro-Aragonese"] = "roa-oan",
["Navut"] = "nsw",
["Nawaru"] = "nwr",
["Nawathinehena"] = "nwa",
["Nawdm"] = "nmz",
["Nawuri"] = "naw",
["Nayi"] = "noz",
["Ncane"] = "ncr",
["Nchumbulu"] = "nlu",
["Nda'nda'"] = "nnz",
["Ndai"] = "gke",
["Ndaka"] = "ndk",
["Ndali"] = "ndh",
["Ndam"] = "ndm",
["Ndamba"] = "ndj",
["Ndambomo"] = "nxo",
["Ndasa"] = "nda",
["Nde-Gbite"] = "ned",
["Nde-Nsele-Nta"] = "ndd",
["Ndemli"] = "nml",
["Ndendeule"] = "dne",
["Ndengereko"] = "ndg",
["Nding"] = "eli",
["Ndjébbana"] = "djj",
["Ndo"] = "ndp",
["Ndobo"] = "ndw",
["Ndoe"] = "nbb",
["Ndolo"] = "ndl",
["Ndom"] = "nqm",
["Ndombe"] = "ndq",
["Ndoola"] = "ndr",
["Ndrulo"] = "dno",
["Nduga"] = "ndx",
["Ndumu"] = "nmd",
["Ndunda"] = "nuh",
["Ndunga"] = "ndt",
["Ndut"] = "ndv",
["Ndyuka-Trio Pidgin"] = "njt",
["Ndzwani Comorian"] = "wni",
["Nedebang"] = "nec",
["Nefamese"] = "nef",
["Negeri Sembilan Malay"] = "zmi",
["Nehan"] = "nsn",
["Nek"] = "nif",
["Nekgini"] = "nkg",
["Neko"] = "nej",
["Neku"] = "nek",
["Neme"] = "nex",
["Nemi"] = "nem",
["Nen"] = "nqn",
["Nend"] = "anh",
["Nengone"] = "nen",
["Neo"] = "neu",
["Nepalese Sign Language"] = "nsp",
["Nepali Kurux"] = "kxl",
["Nete"] = "net",
["Neve'ei"] = "vnm",
["Neverver"] = "lgk",
["New Caledonian Javanese"] = "jas",
["New River Shasta"] = "nai-nrs",
["New Zealand Sign Language"] = "nzs",
["Neyo"] = "ney",
["Nez Perce"] = "nez",
["Nga La"] = "hlt",
["Ngaanyatjarra"] = "ntj",
["Ngadjunmaya"] = "nju",
["Ngadjuri"] = "jui",
["Ngaing"] = "nnf",
["Ngaju"] = "nij",
["Ngala"] = "nud",
["Ngalakan"] = "nig",
["Ngalkbun"] = "ngk",
["Ngamambo"] = "nbv",
["Ngamini"] = "nmv",
["Ngamo"] = "nbh",
["Ngan'gityemerri"] = "nam",
["Nganakarti"] = "xnk",
["Ngandi"] = "nid",
["Ngando (Central African Republic)"] = "ngd",
["Ngando (Congo)"] = "nxd",
["Ngandyera"] = "nne",
["Ngangam"] = "gng",
["Ngantangarra"] = "ntg",
["Nganyaywana"] = "nyx",
["Ngardi"] = "rxd",
["Ngarigu"] = "xni",
["Ngarinman"] = "nbj",
["Ngarinyin"] = "ung",
["Ngarla"] = "nrk",
["Ngarluma"] = "nrl",
["Ngarrindjeri"] = "nay",
["Ngasa"] = "nsg",
["Ngatik Men's Creole"] = "ngm",
["Ngawn Chin"] = "cnw",
["Ngawun"] = "nxn",
["Ngazidja Comorian"] = "zdj",
["Tiếng Ngbaka"] = "nga",
["Ngbaka Ma'bo"] = "nbm",
["Ngbaka Manza"] = "ngg",
["Ngbee"] = "jgb",
["Ngbinda"] = "nbd",
["Ngbundu"] = "nuu",
["Ngelima"] = "agh",
["Ngemba"] = "nge",
["Ngen"] = "gnj",
["Ngendelengo"] = "nql",
["Ngeq"] = "ngt",
["Ngete"] = "nnn",
["Nggem"] = "nbq",
["Nggwahyi"] = "ngx",
["Ngie"] = "ngj",
["Ngile"] = "jle",
["Ngindo"] = "nnq",
["Tiếng Ngiti"] = "niy",
["Ngizim"] = "ngi",
["Ngkoth"] = "aus-ngk",
["Ngkâlmpw Kanum"] = "kcd",
["Ngochang"] = "tbq-ngo",
["Ngom"] = "nra",
["Ngombale"] = "nla",
["Ngombe (Central African Republic)"] = "nmj",
["Ngong"] = "nnx",
["Ngongo"] = "noq",
["Ngoni"] = "ngo",
["Ngoreme"] = "ngq",
["Ngoshie"] = "nsh",
["Ngul"] = "nlo",
["Ngulu"] = "ngp",
["Nguluwan"] = "nuw",
["Ngumbi"] = "nui",
["Ngunawal"] = "xul",
["Ngundi"] = "ndn",
["Ngundu"] = "nue",
["Ngungwel"] = "ngz",
["Ngurmbur"] = "nrx",
["Ngwaba"] = "ngw",
["Ngwe"] = "nwe",
["Ngwo"] = "ngn",
["Ngäbere"] = "gym",
["Nhanda"] = "nha",
["Nhirrpi"] = "hrp",
["Nhuwala"] = "nhf",
["Nicaraguan Creole"] = "bzk",
["Nicaraguan Sign Language"] = "ncs",
["Nicola"] = "ath-nic",
["Niellim"] = "nie",
["Nigeria Mambila"] = "mzk",
["Nigerian Pidgin"] = "pcm",
["Nigerian Sign Language"] = "nsi",
["Nihali"] = "nll",
["Nii"] = "nii",
["Niksek"] = "gbe",
["Nila"] = "nil",
["Nilamba"] = "nim",
["Nimadi"] = "noe",
["Nimanbur"] = "nmp",
["Nimbari"] = "nmr",
["Nimboran"] = "nir",
["Nimi"] = "nis",
["Nimo"] = "niw",
["Nimoa"] = "nmw",
["Ninam"] = "shb",
["Nindi"] = "nxi",
["Ningera"] = "nby",
["Ninggerum"] = "nxr",
["Ningil"] = "niz",
["Ninia Yali"] = "nlk",
["Ninzo"] = "nin",
["Nipsan"] = "nps",
["Nisa"] = "njs",
["Nisenan"] = "nsz",
["Nisi"] = "yso",
["Niuafo'ou"] = "num",
["Niuatoputapu"] = "nkp",
["Niwer Mil"] = "hrc",
["Njalgulgule"] = "njl",
["Njebi"] = "nzb",
["Njen"] = "njj",
["Njerep"] = "njr",
["Njyem"] = "njy",
["Nkami"] = "nkq",
["Nkangala"] = "nkn",
["Nkem-Nkum"] = "isi",
["Nkhumbi"] = "khu",
["Nkongho"] = "nkc",
["Nkoroo"] = "nkx",
["Nkoya"] = "nka",
["Nkukoli"] = "nbo",
["Nkutu"] = "nkw",
["Nnam"] = "nbp",
["Nocamán"] = "nom",
["Nocte Naga"] = "njb",
["Noiri"] = "noi",
["Nokuku"] = "nkk",
["Nomaande"] = "lem",
["Nomane"] = "nof",
["Nomatsiguenga"] = "not",
["Nomlaki"] = "nol",
["Nomu"] = "noh",
["Nonuya"] = "noj",
["Nooksack"] = "nok",
["Tiếng Noone"] = "nhu",
["Nopala Chatino"] = "cya",
["Norn"] = "nrn",
["Norra"] = "nrr",
["North Ambrym"] = "mmg",
["North Asmat"] = "nks",
["North Awyu"] = "yir",
["North Babar"] = "bcd",
["North Boma"] = "boh",
["North Central Mixe"] = "neq",
["North Fali"] = "fll",
["North Giziga"] = "gis",
["North Mofu"] = "mfk",
["North Muyu"] = "kti",
["North Nuaulu"] = "nni",
["North Tairora"] = "tbg",
["North Tanna"] = "tnn",
["North Wahgi"] = "whg",
["North Watut"] = "una",
["Northeast Kiwai"] = "kiw",
["Northeast Maidu"] = "nmu",
["Northeast Pashayi"] = "aee",
["Northeastern Dinka"] = "dip",
["Northeastern Pomo"] = "pef",
["Northern Alta"] = "aqn",
["Northern Bontoc"] = "rbk",
["Northern Ghale"] = "ghh",
["Tiếng Grebo Bắc"] = "gbo",
["Northern Guiyang Hmong"] = "huj",
["Northern Haida"] = "hdn",
["Northern Huishui Hmong"] = "hmi",
["Northern Kalapuya"] = "nrt",
["Northern Kam"] = "doc",
["Northern Kankanay"] = "xnn",
["Northern Kissi"] = "kqs",
["Northern Lorung"] = "lbr",
["Northern Mashan Hmong"] = "hmp",
["Northern Muji"] = "ymx",
["Northern Ngbandi"] = "ngb",
["Northern Nuni"] = "nuv",
["Northern Oaxaca Nahuatl"] = "nhy",
["Northern Ohlone"] = "cst",
["Northern One"] = "onr",
["Northern Pame"] = "pmq",
["Northern Pinghua"] = "cnp",
["Northern Pomo"] = "pej",
["Northern Puebla Nahuatl"] = "ncj",
["Northern Pumi"] = "pmi",
["Northern Qiandong Miao"] = "hea",
["Northern Rengma Naga"] = "nnl",
["Northern Sierra Miwok"] = "nsq",
["Northern Subanen"] = "stb",
["Northern Tarahumara"] = "thh",
["Northern Tidong"] = "ntd",
["Northern Tlaxiaco Mixtec"] = "xtn",
["Northern Toussian"] = "tsp",
["Northern Tutchone"] = "ttm",
["Northern Valley Yokuts"] = "nai-nvy",
["Northwest Maidu"] = "mjd",
["Northwest Oaxaca Mixtec"] = "mxa",
["Northwest Pashayi"] = "glh",
["Northwestern Dinka"] = "diw",
["Northwestern Fars"] = "faz",
["Northwestern Tamang"] = "tmk",
["Norwegian Sign Language"] = "nsl",
["Notre"] = "bly",
["Notsi"] = "ncf",
["Nottoway"] = "ntw",
["Nottoway-Meherrin"] = "nwy",
["Noxilo"] = "art-nox",
["Noy"] = "noy",
["Nsari"] = "asj",
["Nsenga"] = "nse",
["Nshi"] = "nsc",
["Nsong"] = "soo",
["Nsongo"] = "nsx",
["Ntomba"] = "nto",
["Ntra'ngith"] = "dgt",
["Nuguria"] = "nur",
["Nuk"] = "noc",
["Nukak Makú"] = "mbr",
["Nukna"] = "klt",
["Nukuini"] = "nuc",
["Nukumanu"] = "nuq",
["Nukunu"] = "nnv",
["Nukunul"] = "xnu",
["Nukuoro"] = "nkr",
["Numana"] = "nbr",
["Numanggang"] = "nop",
["Numbami"] = "sij",
["Nume"] = "tgs",
["Numee"] = "kdk",
["Nungali"] = "nug",
["Nunggubuyu"] = "nuy",
["Nungon"] = "paa-nun",
["Nungu"] = "rin",
["Nupbikha"] = "npb",
["Nusa Laut"] = "nul",
["Nusu"] = "nuf",
["Nutabe"] = "cba-nut",
["Nyabwa"] = "nwb",
["Nyaheun"] = "nev",
["Nyakyusa"] = "nyy",
["Nyali"] = "nlj",
["Nyam"] = "nmi",
["Nyamal"] = "nly",
["Nyambo"] = "now",
["Nyamusa-Molo"] = "nwm",
["Nyamwanga"] = "mwn",
["Nyamwezi"] = "nym",
["Nyaneka"] = "nyk",
["Nyang'i"] = "nyp",
["Nyanga (Congo)"] = "nyj",
["Nyanga (Togo)"] = "ayg",
["Nyanga-li"] = "nyc",
["Nyangatom"] = "nnj",
["Nyangbo"] = "nyb",
["Nyangga"] = "nny",
["Nyangumarta"] = "nna",
["Nyankole"] = "nyn",
["Nyaturu"] = "rim",
["Nyawaygi"] = "nyt",
["Nyemba"] = "nba",
["Nyengo"] = "nye",
["Nyenkha"] = "neh",
["Nyigina"] = "nyh",
["Nyiha"] = "nih",
["Nyika"] = "nkt",
["Nyimang"] = "nyi",
["Nyindrou"] = "lid",
["Nyindu"] = "nyg",
["Nyiyaparli"] = "xny",
["Nyokon"] = "nvo",
["Nyole (Kenya)"] = "nyd",
["Nyole (Uganda)"] = "nuj",
["Nyong"] = "muo",
["Nyulnyul"] = "nyv",
["Nyungwe"] = "nyu",
["Nyâlayu"] = "yly",
["Nzakambay"] = "nzy",
["Nzakara"] = "nzk",
["Nzanyi"] = "nja",
["Nzima"] = "nzi",
["Tiếng Huitoto Nüpode"] = "hux",
["O'chi'chi'"] = "xoc",
["Obanliku"] = "bzy",
["Obispeño"] = "obi",
["Oblo"] = "obl",
["Obo Manobo"] = "obo",
["Obokuitai"] = "afz",
["Obolo"] = "ann",
["Obulom"] = "obu",
["Ocotepec Mixtec"] = "mie",
["Ocotlán Zapotec"] = "zac",
["Od"] = "odk",
["Odiai"] = "bhf",
["Odoodee"] = "kkc",
["Odual"] = "odu",
["Odut"] = "oda",
["Ofayé"] = "opy",
["Ofo"] = "ofo",
["Ogbah"] = "ogc",
["Ogbia"] = "ogb",
["Ogbogolo"] = "ogg",
["Ogea"] = "eri",
["Tiếng Oirata"] = "oia",
["Okiek"] = "oki",
["Oko-Eni-Osayen"] = "oks",
["Oko-Juwoi"] = "okj",
["Okobo"] = "okb",
["Okodia"] = "okd",
["Okolod"] = "kqv",
["Okpamheri"] = "opa",
["Okpe (Northwestern Edo)"] = "okx",
["Okpe (Southwestern Edo)"] = "oke",
["Okpela"] = "atg",
["Oksapmin"] = "opm",
["Oku"] = "oku",
["Okwanuchu"] = "nai-okw",
["Old Avar"] = "oav",
["Old Hungarian"] = "ohu",
["Old Kamta"] = "inc-ork",
["Old Kentish Sign Language"] = "okl",
["Old Manipuri"] = "omp",
["Old Punjabi"] = "inc-opa",
["Old Tati"] = "xme-ott",
["Old Tibetan"] = "otb",
["Tiếng Wales cổ"] = "owl",
["Olekha"] = "ole",
["Ollari"] = "gdb",
["Olo"] = "ong",
["Oloma"] = "olm",
["Olrat"] = "olr",
["Olu'bo"] = "lul",
["Olulumo-Ikom"] = "iko",
["Oluta Popoluca"] = "plo",
["Olutsotso"] = "lto",
["Omagua"] = "omg",
["Omba"] = "omb",
["Ombamba"] = "mbm",
["Ombo"] = "oml",
["Tiếng Nahuatl Ometepec"] = "nht",
["Omi"] = "omi",
["Omotik"] = "omt",
["Omurano"] = "omu",
["Ong"] = "oog",
["Onin"] = "oni",
["Onjob"] = "onj",
["Ono"] = "ons",
["Onobasulu"] = "onn",
["Onondaga"] = "ono",
["Ontenu"] = "ont",
["Ontong Java"] = "ojv",
["Oorlams"] = "oor",
["Opao"] = "opo",
["Opata"] = "opt",
["Opuuo"] = "lgn",
["Opón"] = "sai-opo",
["Oraon Sadri"] = "sdr",
["Orejón"] = "ore",
["Oring"] = "org",
["Orizaba Nahuatl"] = "nlv",
["Orléanais"] = "roa-orl",
["Oro"] = "orx",
["Oro Win"] = "orw",
["Oroha"] = "ora",
["Orokaiva"] = "okv",
["Oroko"] = "bdu",
["Orokolo"] = "oro",
["Orowe"] = "bpk",
["Oruma"] = "orr",
["Orya"] = "ury",
["Osamayi"] = "syx",
["Ososo"] = "oso",
["Ot Danum"] = "otd",
["Otank"] = "uta",
["Oti"] = "oti",
["Otomaco"] = "sai-oto",
["Ottawa"] = "otw",
["Ouma"] = "oum",
["Oune"] = "oue",
["Owa"] = "stn",
["Owenia"] = "wsr",
["Owiniga"] = "owi",
["Oy"] = "oyb",
["Oya'oya"] = "oyy",
["Ozolotepec Zapotec"] = "zao",
["Pa"] = "ppt",
["Pa Di"] = "pdi",
["Pa'a"] = "pqa",
["Paama"] = "pma",
["Paasaal"] = "sig",
["Pacahuara"] = "pcp",
["Padoe"] = "pdo",
["Paeonian"] = "ine-pae",
["Pagi"] = "pgi",
["Pagibete"] = "pae",
["Pahanan Agta"] = "apf",
["Pahi"] = "lgt",
["Pahlavani"] = "phv",
["Pai Tavytera"] = "pta",
["Pai-lang"] = "tbq-plg",
["Paicî"] = "pri",
["Paikoneka"] = "awd-pai",
["Paipai"] = "ppi",
["Pajapan Nahuatl"] = "nhp",
["Pak-Tong"] = "pkg",
["Pakanha"] = "pkn",
["Pakistan Sign Language"] = "pks",
["Paku Karen"] = "kpp",
["Pal"] = "abw",
["Palaka Senoufo"] = "plr",
["Palantla Chinantec"] = "cpa",
["Palawan Batak"] = "bya",
["Paleni"] = "pnl",
["Palewyami"] = "nai-ply",
["Palikur"] = "plu",
["Pallanganmiddang"] = "pmd",
["Palta"] = "sai-pal",
["Palu'e"] = "ple",
["Paluan"] = "plz",
["Palya Bareli"] = "bpx",
["Pam"] = "pmn",
["Pambia"] = "pmb",
["Pamigua"] = "sai-pam",
["Pamlico"] = "pmk",
["Pamona"] = "pmf",
["Pamosu"] = "hih",
["Pamplona Atta"] = "att",
["Pana (Central Africa)"] = "pnz",
["Pana (West Africa)"] = "pnq",
["Panamanian Sign Language"] = "lsp",
["Panamint"] = "par",
["Panare"] = "pbh",
["Panará"] = "kre",
["Panasuan"] = "psn",
["Panawa"] = "pwb",
["Pande"] = "bkj",
["Pangseng"] = "pgs",
["Pangutaran Sama"] = "slm",
["Pangwa"] = "pbr",
["Panim"] = "pnr",
["Pankararé"] = "pax",
["Pankararú"] = "paz",
["Pankhu"] = "pkh",
["Pannei"] = "pnc",
["Panobo"] = "pno",
["Panyi Bai"] = "bfc",
["Panyjima"] = "pnw",
["Panzaleo"] = "sai-pnz",
["Pao"] = "ppa",
["Papapana"] = "ppn",
["Papar"] = "dpp",
["Papasena"] = "pas",
["Papel"] = "pbo",
["Papi"] = "ppe",
["Papitalai"] = "pat",
["Papora"] = "ppu",
["Papua New Guinean Sign Language"] = "pgz",
["Papuan Malay"] = "pmy",
["Para Naga"] = "pzn",
["Paraguayan Sign Language"] = "pys",
["Parakanã"] = "pak",
["Paranan"] = "prf",
["Paranawát"] = "paf",
["Paratió"] = "sai-par",
["Parawen"] = "prw",
["Pardhan"] = "pch",
["Pardhi"] = "pcl",
["Pare"] = "asa",
["Paredarerme"] = "xpd",
["Pará Arára"] = "aap",
["Pará Gavião"] = "gvp",
["Pasi"] = "psq",
["Pass Valley Yali"] = "yac",
["Passé"] = "awd-pas",
["Patagón"] = "sai-ptg",
["Patamona"] = "pbc",
["Patani"] = "ptn",
["Pataxó Hã-Ha-Hãe"] = "pth",
["Patep"] = "ptp",
["Pathiya"] = "pty",
["Patpatar"] = "gfk",
["Pattani"] = "lae",
["Pattapu"] = "ptq",
["Patwin"] = "pwi",
["Paulohi"] = "plh",
["Paumarí"] = "pad",
["Pauri Bareli"] = "bfb",
["Pauserna"] = "psm",
["Pawaia"] = "pwa",
["Payaguá"] = "sai-pyg",
["Paynamar"] = "pmr",
["Pe"] = "pai",
["Pech"] = "pay",
["Peerapper"] = "xpw",
["Peere"] = "pfe",
["Pei"] = "ppq",
["Pekal"] = "pel",
["Pele-Ata"] = "ata",
["Penang Sign Language"] = "psg",
["Penchal"] = "pek",
["Pendau"] = "ums",
["Penrhyn"] = "pnh",
["Pentlatch"] = "ptw",
["Perai"] = "wet",
["Perema"] = "wom",
["Pericú"] = "nai-per",
["Pero"] = "pip",
["Persian Sign Language"] = "psc",
["Peruvian Sign Language"] = "prl",
["Petapa Zapotec"] = "zpe",
["Petats"] = "pex",
["Peñoles Mixtec"] = "mil",
["Phala"] = "ypa",
["Phana'"] = "phq",
["Phangduwali"] = "phw",
["Phende"] = "pem",
["Philippine Sign Language"] = "psp",
["Philistine"] = "und-phi",
["Phimbi"] = "phm",
["Phola"] = "ypg",
["Pholo"] = "yip",
["Phom"] = "nph",
["Phudagi"] = "phd",
["Phuie"] = "pug",
["Phukha"] = "phh",
["Phuma"] = "ypm",
["Phunoi"] = "pho",
["Phupa"] = "ypp",
["Phupha"] = "yph",
["Phuthi"] = "bnt-phu",
["Phuza"] = "ypz",
["Piamatsina"] = "ptr",
["Piame"] = "pin",
["Piapoco"] = "pio",
["Piaroa"] = "pid",
["Tiếng Pichinglis"] = "fpe",
["Pichis Ashéninka"] = "cpu",
["Pictish"] = "xpi",
["Picuris"] = "nai-pic",
["Pidgin Delaware"] = "dep",
["Pidgin Iha"] = "ihb",
["Pidgin Onin"] = "onx",
["Pijao"] = "pij",
["Pije"] = "piz",
["Pijin"] = "pis",
["Pileni"] = "piv",
["Pima Bajo"] = "pia",
["Pimbwe"] = "piw",
["Pinai-Hagahai"] = "pnn",
["Pingelapese"] = "pif",
["Pini"] = "pii",
["Pinigura"] = "pnv",
["Pinjarup"] = "pnj",
["Pinji"] = "pic",
["Pinotepa Nacional Mixtec"] = "mio",
["Pintiini"] = "pti",
["Pintupi-Luritja"] = "piu",
["Pirahã"] = "myp",
["Piratapuyo"] = "pir",
["Pirlatapa"] = "bxi",
["Piro"] = "pie",
["Pirriya"] = "xpa",
["Pisabo"] = "pig",
["Pisaflores Tepehua"] = "tpp",
["Piscataway"] = "psy",
["Pisidian"] = "xps",
["Pitcairn-Norfolk"] = "pih",
["Pite Sami"] = "sje",
["Piti"] = "pcn",
["Pitta-Pitta"] = "pit",
["Piu"] = "pix",
["Piya-Kwonci"] = "piy",
["Plains Indian Sign Language"] = "psd",
["Plains Miwok"] = "pmw",
["Plapo Krumen"] = "ktj",
["Playero"] = "gob",
["Pochuri Naga"] = "npo",
["Pochutec"] = "xpo",
["Podoko"] = "pbi",
["Pogali"] = "hkh",
["Pogolo"] = "poy",
["Poitevin-Saintongeais"] = "roa-poi",
["Pokangá"] = "pok",
["Poke"] = "pof",
["Pol"] = "pmm",
["Polish Sign Language"] = "pso",
["Polonombauk"] = "plb",
["Pom"] = "pmo",
["Ponam"] = "ncc",
["Pongu"] = "png",
["Ponyo"] = "npg",
["Poqomam"] = "poc",
["Poqomchi'"] = "poh",
["Porohanon"] = "prh",
["Port Sandwich"] = "psw",
["Port Sorell"] = "xpl",
["Port Vato"] = "ptv",
["Portuguese Sign Language"] = "psr",
["Potiguára"] = "pog",
["Poumei Naga"] = "pmx",
["Pouye"] = "bye",
["Powari"] = "pwr",
["Powhatan"] = "pim",
["Poyanáwa"] = "pyn",
["Tiếng Ireland nguyên thủy"] = "pgl",
["Principense"] = "pre",
["Proto-Amuesha-Chamicuro"] = "awd-amc-pro",
["Tiếng Tiểu Á nguyên thủy"] = "ine-ana-pro",
["Proto-Apachean"] = "apa-pro",
["Proto-Arawa"] = "auf-pro",
["Tiếng Armenia nguyên thủy"] = "hyx-pro",
["Proto-Arnhem"] = "aus-arn-pro",
["Proto-Atayalic"] = "map-ata-pro",
["Proto-Batak"] = "btk-pro",
["Proto-Bongo-Bagirmi"] = "csu-bba-pro",
["Proto-Boran"] = "sai-bor-pro",
["Proto-Bua"] = "alv-bua-pro",
["Proto-Bungku-Tolaki"] = "poz-btk-pro",
["Tiếng Miến nguyên thủy"] = "tbq-brm-pro",
["Proto-Caddoan"] = "cdd-pro",
["Proto-Cangin"] = "alv-cng-pro",
["Proto-Central Chadic"] = "cdc-cbm-pro",
["Proto-Central Indo-Aryan"] = "inc-cen-pro",
["Proto-Central Jê"] = "sai-cje-pro",
["Proto-Central New South Wales"] = "aus-cww-pro",
["Proto-Central Sudanic"] = "csu-pro",
["Proto-Central Togo"] = "alv-gtm-pro",
["Proto-Chatino"] = "omq-cha-pro",
["Proto-Chibchan"] = "cba-pro",
["Proto-Chimakuan"] = "chi-pro",
["Proto-Chinookan"] = "nai-ckn-pro",
["Tiếng Chukotka-Kamchatka nguyên thủy"] = "qfa-cka-pro",
["Proto-Chumash"] = "nai-chu-pro",
["Proto-Cupan"] = "azc-cup-pro",
["Proto-Daju"] = "sdv-daj-pro",
["Proto-Daly"] = "aus-dal-pro",
["Proto-Eastern Jebel"] = "sdv-eje-pro",
["Proto-Eastern Oti-Volta"] = "nic-eov-pro",
["Proto-Fali"] = "alv-fli-pro",
["Proto-Grassfields"] = "nic-grf-pro",
["Proto-Great Andamanese"] = "qfa-adm-pro",
["Proto-Guang"] = "alv-gng-pro",
["Proto-Gur"] = "nic-gur-pro",
["Proto-Gurunsi"] = "nic-gns-pro",
["Proto-Halmahera-Cenderawasih"] = "poz-hce-pro",
["Proto-Heiban"] = "alv-hei-pro",
["Proto-Highland East Cushitic"] = "cus-hec-pro",
["Proto-Hmong"] = "hmn-pro",
["Proto-Hrusish"] = "sit-hrs-pro",
["Proto-Huitoto-Ocaina"] = "sai-hoc-pro",
["Proto-Hurro-Urartian"] = "qfa-hur-pro",
["Proto-Idomoid"] = "alv-ido-pro",
["Proto-Igboid"] = "alv-igb-pro",
["Proto-Ijoid"] = "ijo-pro",
["Proto-Iwaidjan"] = "aus-wdj-pro",
["Proto-Jukunoid"] = "nic-jkn-pro",
["Proto-Kadu"] = "qfa-kad-pro",
["Proto-Kalamian"] = "phi-kal-pro",
["Proto-Kalapuyan"] = "nai-klp-pro",
["Proto-Kampa"] = "awd-kmp-pro",
["Proto-Kham"] = "sit-kha-pro",
["Proto-Khoe"] = "khi-kho-pro",
["Proto-Komisenian"] = "ira-kms-pro",
["Proto-Kru"] = "kro-pro",
["Proto-Kuliak"] = "ssa-klk-pro",
["Proto-Kurdish"] = "ku-pro",
["Proto-Kwa"] = "alv-kwa-pro",
["Proto-Lalo"] = "tbq-lal-pro",
["Proto-Lampungic"] = "poz-lgx-pro",
["Tiếng Lô Lô nguyên thủy"] = "tbq-lol-pro",
["Proto-Lower Cross River"] = "nic-lcr-pro",
["Proto-Luish"] = "sit-luu-pro",
["Proto-Maidun"] = "nai-mdu-pro",
["Proto-Mangbetu"] = "csu-maa-pro",
["Proto-Masa"] = "cdc-mas-pro",
["Proto-Mazatec"] = "omq-maz-pro",
["Proto-Medo-Parthian"] = "ira-mpr-pro",
["Proto-Mixe-Zoque"] = "nai-miz-pro",
["Proto-Mixtec"] = "omq-mxt-pro",
["Proto-Mumuye"] = "alv-mum-pro",
["Proto-Munji-Yidgha"] = "ira-mny-pro",
["Proto-Na-Dene"] = "xnd-pro",
["Proto-Nawiki"] = "awd-nwk-pro",
["Proto-Nilotic"] = "sdv-nil-pro",
["Proto-North Caucasian"] = "ccn-pro",
["Proto-North Halmahera"] = "paa-nha-pro",
["Proto-North Sarawak"] = "poz-swa-pro",
["Proto-Nubian"] = "nub-pro",
["Proto-Numic"] = "azc-num-pro",
["Proto-Nupoid"] = "alv-nup-pro",
["Proto-Nyima"] = "sdv-nyi-pro",
["Proto-Nyulnyulan"] = "aus-nyu-pro",
["Proto-Ogoni"] = "nic-ogo-pro",
["Proto-Ossetic"] = "os-pro",
["Proto-Oti-Volta"] = "nic-ovo-pro",
["Proto-Oto-Manguean"] = "omq-pro",
["Proto-Oto-Pamean"] = "omq-otp-pro",
["Proto-Otomi"] = "oto-otm-pro",
["Proto-Otomian"] = "oto-pro",
["Proto-Paresi-Waura"] = "awd-prw-pro",
["Proto-Plateau Penutian"] = "nai-plp-pro",
["Proto-Pomeranian"] = "zlw-pom-pro",
["Proto-Pomo"] = "nai-pom-pro",
["Proto-Saka"] = "xsc-sak-pro",
["Proto-Sanglechi-Ishkashimi"] = "ira-sgi-pro",
["Proto-Sara"] = "csu-sar-pro",
["Proto-Siouan-Catawban"] = "nai-sca-pro",
["Proto-Songhay"] = "son-pro",
["Proto-Sotho-Tswana"] = "bnt-sts-pro",
["Proto-South Cushitic"] = "cus-sou-pro",
["Proto-South Sulawesi"] = "poz-ssw-pro",
["Proto-Southern Jê"] = "sai-sje-pro",
["Proto-Sunda-Sulawesi"] = "poz-sus-pro",
["Proto-Ta-Arawak"] = "awd-taa-pro",
["Proto-Takic"] = "azc-tak-pro",
["Proto-Taman"] = "sdv-tmn-pro",
["Proto-Tani"] = "sit-tan-pro",
["Proto-Taranoan"] = "sai-tar-pro",
["Proto-Tatic"] = "xme-ttc-pro",
["Proto-Totozoquean"] = "nai-tot-pro",
["Tiếng Liên New Guinea nguyên thủy"] = "ngf-pro",
["Proto-Tsezian"] = "cau-tsz-pro",
["Proto-Tsimshianic"] = "nai-tsi-pro",
["Proto-Upper Cross River"] = "nic-ucr-pro",
["Proto-Utian"] = "nai-utn-pro",
["Proto-Western Mande"] = "dmn-mdw-pro",
["Proto-Witotoan"] = "sai-wit-pro",
["Proto-Yupik"] = "ypk-pro",
["Proto-Zapotecan"] = "omq-zap-pro",
["Providencia Sign Language"] = "prz",
["Psikye"] = "kvj",
["Puare"] = "pux",
["Pudtol Atta"] = "atp",
["Puebla Mazatec"] = "pbm",
["Puelche"] = "pue",
["Puerto Rican Sign Language"] = "psl",
["Puimei Naga"] = "npu",
["Puiron"] = "sit-prn",
["Pukapukan"] = "pkp",
["Pulabu"] = "pup",
["Puluwat"] = "puw",
["Puma"] = "pum",
["Pumé"] = "yae",
["Punan Aput"] = "pud",
["Punan Bah-Biau"] = "pna",
["Punan Batu"] = "pnm",
["Punan Merah"] = "puf",
["Punan Merap"] = "puc",
["Punan Tubu"] = "puj",
["Punu"] = "puu",
["Puquina"] = "puq",
["Puragi"] = "pru",
["Purari"] = "iar",
["Purepecha"] = "pua",
["Puri"] = "prr",
["Purik"] = "prx",
["Purisimeño"] = "puy",
["Puruborá"] = "pur",
["Puruhá"] = "sai-prh",
["Purukotó"] = "sai-pur",
["Purum"] = "pub",
["Putai"] = "mfl",
["Putoh"] = "put",
["Putukwam"] = "afe",
["Puyo-Paekche"] = "xpp",
["Pwaamei"] = "pme",
["Pwapwa"] = "pop",
["Pyapun"] = "pcw",
["Pye Krumen"] = "pye",
["Pyemmairre"] = "xpb",
["Pyen"] = "pyy",
["Pykobjê"] = "sai-pyk",
["Pyu"] = "pby",
["Páez"] = "pbb",
["Pááfang"] = "pfa",
["Päri"] = "lkr",
["Pémono"] = "pev",
["Pévé"] = "lme",
["Pökoot"] = "pko",
["Q'anjob'al"] = "kjb",
["Q'eqchi"] = "kek",
["Qabiao"] = "laq",
["Qaqet"] = "byx",
["Qatabanian"] = "xqt",
["Qau"] = "gqu",
["Qila Muji"] = "ymq",
["Quebec Sign Language"] = "fcs",
["Querétaro Otomi"] = "otq",
["Quetzaltepec Mixe"] = "pxm",
["Queyu"] = "qvy",
["Quiavicuzas Zapotec"] = "zpj",
["Quileute"] = "qui",
["Quimbaya"] = "sai-qmb",
["Quinigua"] = "nai-qng",
["Quinqui"] = "quq",
["Quioquitani-Quierí Zapotec"] = "ztq",
["Quiotepec Chinantec"] = "chq",
["Quitemo"] = "sai-qtm",
["Rabona"] = "sai-rab",
["Rahambuu"] = "raz",
["Rajah Kabunsuwan Manobo"] = "mqk",
["Raji"] = "rji",
["Rajong"] = "rjg",
["Rakahanga-Manihiki"] = "rkh",
["Ralte"] = "ral",
["Ramandi"] = "tks",
["Ramanos"] = "sai-ram",
["Ramoaaina"] = "rai",
["Ramopa"] = "kjx",
["Rampi"] = "lje",
["Rana Tharu"] = "thr",
["Rang"] = "rax",
["Rangkas"] = "rgk",
["Ranglong"] = "rnl",
["Rao"] = "rao",
["Rapa"] = "ray",
["Rapoisi"] = "kyx",
["Rapting"] = "rpt",
["Rara Bakati'"] = "lra",
["Ratahan"] = "rth",
["Rathawi"] = "rtw",
["Rathwi Bareli"] = "bgd",
["Rawa"] = "rwo",
["Rawat"] = "jnl",
["Rawo"] = "rwa",
["Rayón Zoque"] = "zor",
["Razajerdi"] = "rat",
["Razihi"] = "rzh",
["Reang"] = "ria",
["Red Gelao"] = "gir",
["Reel"] = "atu",
["Rejang Kayan"] = "ree",
["Rema"] = "bow",
["Rembarunga"] = "rmb",
["Rembong"] = "reb",
["Remo"] = "rem",
["Remontado Agta"] = "agv",
["Rempi"] = "rmp",
["Remun"] = "lkj",
["Rennellese"] = "mnv",
["Repanbitip"] = "rpn",
["Rer Bare"] = "rer",
["Rerau"] = "rea",
["Rerep"] = "pgk",
["Reshe"] = "res",
["Resígaro"] = "rgr",
["Retta"] = "ret",
["Reyesano"] = "rey",
["Rhine Franconian"] = "gmw-rfr",
["Riang"] = "ril",
["Riantana"] = "ran",
["Ribun"] = "rir",
["Rigwe"] = "iri",
["Rikbaktsa"] = "rkb",
["Ringgou"] = "rgu",
["Ririo"] = "rri",
["Ritarungo"] = "rit",
["Riung"] = "riu",
["Riverain Sango"] = "snj",
["Rogo"] = "rod",
["Roma"] = "rmm",
["Romani Greek"] = "rge",
["Romanian Sign Language"] = "rms",
["Romano-Serbian"] = "rsb",
["Romanova"] = "rmv",
["Romblomanon"] = "rol",
["Rombo"] = "rof",
["Romkun"] = "rmk",
["Ron"] = "cla",
["Ronga"] = "rng",
["Rongga"] = "ror",
["Rongmei Naga"] = "nbu",
["Rongpo"] = "rnp",
["Ronji"] = "roe",
["Roon"] = "rnn",
["Roria"] = "rga",
["Roro"] = "rro",
["Rotokas"] = "roo",
["Roviana"] = "rug",
["Rudbari"] = "rdb",
["Rufiji"] = "rui",
["Ruga"] = "ruh",
["Rukiga"] = "cgg",
["Ruma"] = "ruz",
["Rumu"] = "klq",
["Runga"] = "rou",
["Rungtu"] = "rtc",
["Rungwa"] = "rnw",
["Russenorsk"] = "crp-rsn",
["Russian Sign Language"] = "rsl",
["Ruuli"] = "ruc",
["Ruwund"] = "rnd",
["Rwa"] = "rwk",
["Rwanda-Rundi"] = "rw",
["Sa"] = "sax",
["Sa'a"] = "apb",
["Sa'ban"] = "snv",
["Sa'och"] = "scq",
["Saafi-Saafi"] = "sav",
["Saam"] = "raq",
["Saamia"] = "lsm",
["Saare"] = "uss",
["Sabah Malay"] = "msi",
["Sabanê"] = "sae",
["Sabaot"] = "spy",
["Sabine"] = "sbv",
["Sabir"] = "pml",
["Sabu"] = "hvn",
["Sacapulteco"] = "quv",
["Saep"] = "spd",
["Safaitic"] = "sem-saf",
["Safaliba"] = "saf",
["Safeyoka"] = "apz",
["Safwa"] = "sbk",
["Sagala"] = "sbm",
["Sagalla"] = "tga",
["Sahaptin"] = "nai-spt",
["Sahu"] = "saj",
["Sajau Basap"] = "sjb",
["Sakachep"] = "sch",
["Sakam"] = "skm",
["Sakao"] = "sku",
["Sakata"] = "skt",
["Sake"] = "sak",
["Sala"] = "shq",
["Salampasu"] = "slx",
["Salas"] = "sgu",
["Salchuq"] = "slq",
["Saleman"] = "sau",
["Saliba (Colombia)"] = "slc",
["Saliba (New Guinea)"] = "sbe",
["Salinan"] = "sln",
["Salt-Yui"] = "sll",
["Saluan"] = "loe",
["Salumá"] = "slj",
["Salvadoran Lenca"] = "nai-sln",
["Salvadoran Sign Language"] = "esn",
["Sam"] = "snx",
["Sama"] = "smd",
["Samaritan Aramaic"] = "sam",
["Samaritan Hebrew"] = "smp",
["Samarokena"] = "tmj",
["Samatao"] = "ysd",
["Samba"] = "smx",
["Sambe"] = "xab",
["Samberigi"] = "ssx",
["Samburu"] = "saq",
["Samoan Plantation Pidgin"] = "cpe-spp",
["Samosa"] = "swm",
["Sampang"] = "rav",
["Samre"] = "sxm",
["Samvedi"] = "smv",
["San Agustín Mixtepec Zapotec"] = "ztm",
["San Baltazar Loxicha Zapotec"] = "zpx",
["San Felipe Otlaltepec Popoloca"] = "pow",
["San Jerónimo Tecóatl Mazatec"] = "maa",
["San Juan Atzingo Popoloca"] = "poe",
["San Juan Colorado Mixtec"] = "mjc",
["San Juan Quiahije Chatino"] = "ctp-san",
["San Juan Teita Mixtec"] = "xtj",
["San Luís Temalacayuca Popoloca"] = "pps",
["San Marcos Tlalcoyalco Popoloca"] = "pls",
["San Miguel Creole French"] = "scf",
["San Miguel Piedras Mixtec"] = "xtp",
["San Miguel el Grande Mixtec"] = "mig",
["San Pablo Güilá Zapotec"] = "ztu",
["San Pedro Amuzgos Amuzgo"] = "azg",
["San Pedro Quiatoni Zapotec"] = "zpf",
["San Vicente Coatlán Zapotec"] = "zpt",
["Sanapaná"] = "spn",
["Sanaviron"] = "sai-san",
["Sandawe"] = "sad",
["Sanga (Congo)"] = "sng",
["Sanga (Nigeria)"] = "xsn",
["Sanggau"] = "scg",
["Sangil"] = "snl",
["Sangkong"] = "sgk",
["Sanglechi"] = "sgy",
["Sangtam Naga"] = "nsa",
["Sangu (Gabon)"] = "snq",
["Sangu (Tanzania)"] = "sbp",
["Sani"] = "ysn",
["Sanie"] = "ysy",
["Saniyo-Hiyewe"] = "sny",
["Sankaran Maninka"] = "msc",
["Sansi"] = "ssi",
["Santa Catarina Albarradas Zapotec"] = "ztn",
["Santa Inés Ahuatempan Popoloca"] = "pca",
["Santa Inés Yatzechi Zapotec"] = "zpn",
["Santa Lucía Monteverde Mixtec"] = "mdv",
["Santa María La Alta Nahuatl"] = "nhz",
["Santa María Quiegolani Zapotec"] = "zpi",
["Santa María Zacatepec Mixtec"] = "mza",
["Santa Teresa Cora"] = "cok",
["Santiago Xanica Zapotec"] = "zpr",
["Santo Domingo Albarradas Zapotec"] = "zas",
["Sanumá"] = "xsu",
["Saparua"] = "spr",
["Sapará"] = "sai-sap",
["Sapo"] = "krn",
["Saponi"] = "spi",
["Sapuan"] = "spu",
["Sapé"] = "spc",
["Sar"] = "mwm",
["Sara"] = "sre",
["Sara Kaba"] = "sbz",
["Sara Kaba Deme"] = "kwg",
["Sara Kaba Náà"] = "kwv",
["Sarangani Blaan"] = "bps",
["Sarangani Manobo"] = "mbs",
["Sarasira"] = "zsa",
["Saraveca"] = "sar",
["Sarli"] = "sdf",
["Sartang"] = "onp",
["Sarua"] = "swy",
["Sarudu"] = "sdu",
["Saruga"] = "sra",
["Sasaru"] = "sxs",
["Tiếng Sassari"] = "sdc",
["Satawalese"] = "stw",
["Sateré-Mawé"] = "mav",
["Sathmar Swabian"] = "gmw-stm",
["Saudi Arabian Sign Language"] = "sdl",
["Sauraseni Apabhramsa"] = "inc-sap",
["Sauri"] = "srt",
["Sause"] = "sao",
["Sausi"] = "ssj",
["Tiếng Savosavo"] = "svs",
["Sawai"] = "szw",
["Saweru"] = "swr",
["Sawi"] = "saw",
["Sawila"] = "swt",
["Saya"] = "say",
["Sayula Popoluca"] = "pos",
["Scanian"] = "gmq-scy",
["Seba"] = "kdg",
["Seberuang"] = "sbx",
["Sebop"] = "sib",
["Sebuyau"] = "snb",
["Sechura"] = "sai-sec",
["Secoya"] = "sey",
["Sedoa"] = "tvw",
["Seenku"] = "sos",
["Segai"] = "sge",
["Segeju"] = "seg",
["Seget"] = "sbg",
["Sehwi"] = "sfw",
["Seim"] = "sim",
["Seimat"] = "ssg",
["Seit-Kaitetu"] = "hik",
["Sekani"] = "sek",
["Sekapan"] = "skp",
["Sekar"] = "skz",
["Seke"] = "skj",
["Sekele"] = "vaj",
["Seki"] = "syi",
["Seko Padang"] = "skx",
["Seko Tengah"] = "sko",
["Sekpele"] = "lip",
["Selangor Sign Language"] = "kgi",
["Selaru"] = "slu",
["Selayar"] = "sly",
["Selee"] = "snw",
["Selepet"] = "spl",
["Selk'nam"] = "ona",
["Selonian"] = "sxl",
["Selungai Murut"] = "slg",
["Seluwasan"] = "sws",
["Sema"] = "nsm",
["Semandang"] = "sdm",
["Sembakung Murut"] = "sbr",
["Semimi"] = "etz",
["Semnani"] = "smy",
["Sempan"] = "xse",
["Senara Sénoufo"] = "seq",
["Senaya"] = "syn",
["Sene"] = "sej",
["Sengele"] = "szg",
["Senggi"] = "snu",
["Sengo"] = "spk",
["Sengseng"] = "ssz",
["Sensi"] = "sni",
["Sentani"] = "set",
["Senthang Chin"] = "sez",
["Sentinelese"] = "std",
["Sepa (Indonesia)"] = "spb",
["Sepa (New Guinea)"] = "spe",
["Sepen"] = "spm",
["Sepik Iwam"] = "iws",
["Sepik Mari"] = "mbx",
["Sera"] = "sry",
["Sere"] = "swf",
["Serili"] = "sve",
["Seroa"] = "kqu",
["Serrano"] = "ser",
["Seru"] = "szd",
["Serua"] = "srw",
["Serudung Murut"] = "srk",
["Serui-Laut"] = "seu",
["Seta"] = "stf",
["Setaman"] = "stm",
["Seti"] = "sbi",
["Sewa Bay"] = "sew",
["Seychellois Creole"] = "crs",
["Sha"] = "scw",
["Shahmirzadi"] = "srz",
["Shahrudi"] = "shm",
["Shall-Zwall"] = "sha",
["Shama-Sambuga"] = "sqa",
["Shamang"] = "xsh",
["Shambala"] = "ksb",
["Shanenawa"] = "swo",
["Shanga"] = "sho",
["Shangzhai"] = "jih",
["Shaozhou Tuhua"] = "zhx-sht",
["Sharanahua"] = "mcd",
["Shark Bay"] = "ssv",
["Sharwa"] = "swq",
["Shasta"] = "sht",
["Shatt"] = "shj",
["Shau"] = "sqh",
["Shawnee"] = "sjw",
["Tiếng Xa"] = "shx",
["Shehri"] = "shv",
["Sheko"] = "she",
["Shelta"] = "sth",
["Shendu"] = "shl",
["Sheni"] = "scv",
["Sherbro"] = "bun",
["Sherdukpen"] = "sdp",
["Shi"] = "shr",
["Shihhi Arabic"] = "ssh",
["Shiki"] = "gua",
["Shilluk"] = "shk",
["Shipibo-Conibo"] = "shp",
["Shixing"] = "sxg",
["Shoo-Minda-Nye"] = "bcv",
["Shoshone"] = "shh",
["Shua"] = "shg",
["Shuar"] = "jiv",
["Shuba"] = "cbq",
["Shumashti"] = "sts",
["Shumcho"] = "scu",
["Shuwa-Zamani"] = "ksa",
["Shwai"] = "shw",
["Sialum"] = "slw",
["Siamou"] = "sif",
["Sian"] = "spg",
["Siane"] = "snp",
["Siang"] = "sya",
["Siar-Lak"] = "sjr",
["Sibe"] = "nco",
["Sibu Melanau"] = "sdx",
["Sicanian"] = "sxc",
["Siculo-Arabic"] = "sqr",
["Sidetic"] = "xsd",
["Sie"] = "erg",
["Sierra Leone Sign Language"] = "sgx",
["Sierra Negra Nahuatl"] = "nsu",
["Sierra de Juárez Zapotec"] = "zaa",
["Sighu"] = "sxe",
["Sihan"] = "snr",
["Sika"] = "ski",
["Sikaiana"] = "sky",
["Sikaritai"] = "tty",
["Sikiana"] = "sik",
["Sikule"] = "skh",
["Sila"] = "slt",
["Silacayoapan Mixtec"] = "mks",
["Sileibi"] = "sbq",
["Silimo"] = "wul",
["Siliput"] = "mkc",
["Silopi"] = "xsp",
["Simaa"] = "sie",
["Simba"] = "sbw",
["Simbali"] = "smg",
["Simbari"] = "smb",
["Simbo"] = "sbb",
["Simeku"] = "smz",
["Simeulue"] = "smr",
["Simte"] = "smt",
["Sinacantán"] = "nai-sin",
["Sinagen"] = "siu",
["Sinasina"] = "sst",
["Sindarin"] = "sjn",
["Sindhi Bhil"] = "sbn",
["Sindihui Mixtec"] = "xts",
["Singa"] = "sgm",
["Singapore Sign Language"] = "sls",
["Singpho"] = "sgp",
["Sinicahua Mixtec"] = "xti",
["Sininkere"] = "skq",
["Sinte Romani"] = "rmo",
["Sinyar"] = "sys",
["Sinúfana"] = "sai-sin",
["Sio"] = "xsi",
["Siona"] = "snn",
["Sipakapense"] = "qum",
["Sira"] = "swj",
["Siri"] = "sir",
["Siriano"] = "sri",
["Sirionó"] = "srq",
["Siroi"] = "ssd",
["Siuslaw"] = "sis",
["Sivandi"] = "siy",
["Siwai"] = "siw",
["Siyin Chin"] = "csy",
["Skagit"] = "ska",
["Skalvian"] = "svx",
["Ske"] = "ske",
["Skou"] = "skv",
["Slavomolisano"] = "svm",
["Slovakian Sign Language"] = "svk",
["Small Flowery Miao"] = "sfm",
["Smärky Kanum"] = "kxq",
["Snohomish"] = "sno",
["So'a"] = "ssq",
["Sobei"] = "sob",
["Sochiapam Chinantec"] = "cso",
["Soga"] = "xog",
["Sok"] = "skk",
["Soko"] = "soc",
["Sokoro"] = "sok",
["Solano"] = "xso",
["Soli"] = "sby",
["Solos"] = "sol",
["Som"] = "smc",
["Somba-Siawari"] = "bmu",
["Somra"] = "ntx",
["Somrai"] = "sor",
["Somray"] = "smu",
["Somyev"] = "kgt",
["Sonaga"] = "ysg",
["Sonde"] = "shc",
["Songe"] = "sop",
["Songomeno"] = "soe",
["Songoora"] = "sod",
["Sonha"] = "soi",
["Sonia"] = "siq",
["Soo"] = "teu",
["Sop"] = "urw",
["Sori-Harengan"] = "sbh",
["Sorkhei"] = "sqo",
["Sorothaptic"] = "sxo",
["Sorsogon Ayta"] = "ays",
["Sos Kundi"] = "sdk",
["Sota Kanum"] = "krz",
["Sou"] = "sqq",
["South African Sign Language"] = "sfs",
["South Awyu"] = "aws",
["South Boma"] = "bnt-sbo",
["Tiếng Banda Trung Nam"] = "lnl",
["South Central Dinka"] = "dib",
["South Fali"] = "fal",
["South Giziga"] = "giz",
["South Lembata"] = "lmf",
["South Muyu"] = "kts",
["South Nuaulu"] = "nxl",
["South Tairora"] = "omw",
["South Ucayali Ashéninka"] = "cpy",
["South Watut"] = "mcy",
["Southeast Ambrym"] = "tvk",
["Southeast Babar"] = "vbb",
["Southeast Ijo"] = "ijs",
["Southeast Pashayi"] = "psi",
["Southeast Tasmanian"] = "xpf",
["Southeastern Dinka"] = "dks",
["Southeastern Ixtlán Zapotec"] = "zpd",
["Southeastern Nochixtlán Mixtec"] = "mxy",
["Southeastern Pomo"] = "pom",
["Southeastern Puebla Nahuatl"] = "npl",
["Southeastern Tarahumara"] = "tcu",
["Southern Alta"] = "agy",
["Southern Birifor"] = "biv",
["Southern Bobo"] = "bwq",
["Southern Bontoc"] = "obk",
["Southern Catanduanes Bicolano"] = "bln",
["Southern Dagaare"] = "dga",
["Southern Ghale"] = "ghe",
["Southern Grebo"] = "grj",
["Southern Guiyang Hmong"] = "hmy",
["Southern Haida"] = "hax",
["Southern Hindko"] = "hnd",
["Southern Kalapuya"] = "sxk",
["Southern Kalinga"] = "ksc",
["Southern Khanty"] = "kca-sou",
["Tiếng Kissi Nam"] = "kss",
["Southern Kiwai"] = "kjd",
["Tiếng Xwarin"] = "sdh",
["Southern Lolopo"] = "ysp",
["Southern Lorung"] = "lrr",
["Southern Ma'di"] = "snm",
["Southern Mashan Hmong"] = "hma",
["Southern Muji"] = "ymc",
["Southern Ngbandi"] = "nbw",
["Southern Nisu"] = "nsd",
["Southern Nuni"] = "nnw",
["Southern Ohlone"] = "css",
["Southern One"] = "osu",
["Southern Pame"] = "pmz",
["Southern Pinghua"] = "csp",
["Southern Pomo"] = "peq",
["Southern Puebla Mixtec"] = "mit",
["Southern Puget Sound Salish"] = "slh",
["Southern Pumi"] = "pmj",
["Southern Qiandong Miao"] = "hms",
["Southern Rengma Naga"] = "nre",
["Southern Sama"] = "ssb",
["Southern Sierra Miwok"] = "skd",
["Southern Tidong"] = "itd",
["Southern Tiwa"] = "tix",
["Southern Toussian"] = "wib",
["Southern Tutchone"] = "tce",
["Southern Valley Yokuts"] = "nai-svy",
["Southwest Gbaya"] = "gso",
["Southwest Palawano"] = "plv",
["Southwest Pashayi"] = "psh",
["Southwest Tanna"] = "nwi",
["Southwestern Bontoc"] = "vbk",
["Southwestern Dinka"] = "dik",
["Southwestern Fars"] = "fay",
["Southwestern Guiyang Hmong"] = "hmg",
["Southwestern Huishui Hmong"] = "hmh",
["Southwestern Nisu"] = "nsv",
["Southwestern Tamang"] = "tsf",
["Southwestern Tarahumara"] = "twr",
["Southwestern Tepehuan"] = "tla",
["Southwestern Tlaxiaco Mixtec"] = "meh",
["Sowa"] = "sww",
["Sowanda"] = "sow",
["Soyaltepec Mazatec"] = "vmp",
["Soyaltepec Mixtec"] = "vmq",
["Spanish Sign Language"] = "ssp",
["Spiti Bhoti"] = "spt",
["Spokane"] = "spo",
["Sri Lankan Creole Malay"] = "sci",
["Sri Lankan Sign Language"] = "sqs",
["Stod Bhoti"] = "sbu",
["Stoney"] = "sto",
["Suabo"] = "szp",
["Suarmin"] = "seo",
["Suau"] = "swp",
["Suba"] = "sxb",
["Suba-Simbiti"] = "ssc",
["Subi"] = "xsj",
["Subiya"] = "sbs",
["Subtiaba"] = "sut",
["Sudest"] = "tgo",
["Sudovian"] = "xsv",
["Suena"] = "sue",
["Suga"] = "sgi",
["Suganga"] = "sug",
["Sugut Dusun"] = "kzs",
["Suki"] = "sui",
["Suku"] = "sub",
["Sukuma"] = "suk",
["Sukur"] = "syk",
["Sukurum"] = "zsu",
["Sula"] = "szn",
["Sulka"] = "sua",
["Sulod"] = "srg",
["Suma"] = "sqm",
["Sumariup"] = "siv",
["Sumau"] = "six",
["Tiếng Sumbawa"] = "smw",
["Sumbwa"] = "suw",
["Sumtu Chin"] = "csv",
["Sunam"] = "ssk",
["Sunum"] = "ymn",
["Sunwar"] = "suz",
["Suoy"] = "syo",
["Supyire"] = "spp",
["Sur"] = "tdl",
["Surbakhal"] = "sbj",
["Surigaonon"] = "sgd",
["Sursurunga"] = "sgz",
["Suruahá"] = "swx",
["Surubu"] = "sde",
["Suruí"] = "sru",
["Suruí Do Pará"] = "mdz",
["Susquehannock"] = "sqn",
["Susuami"] = "ssu",
["Suundi"] = "sdj",
["Suwawa"] = "swu",
["Suyá"] = "suy",
["Swabian"] = "swg",
["Swampy Cree"] = "csw",
["Swedish Sign Language"] = "swl",
["Swiss-French Sign Language"] = "ssr",
["Swiss-German Sign Language"] = "sgg",
["Swiss-Italian Sign Language"] = "slf",
["Swo"] = "sox",
["Syenara Senoufo"] = "shz",
["Sácata"] = "sai-sac",
["São Paulo Kaingáng"] = "zkp",
["Sãotomense"] = "cri",
["Sìcìté Sénoufo"] = "sep",
["T'en"] = "tct",
["Tabaa Zapotec"] = "zat",
["Tabancale"] = "sai-tab",
["Tabaru"] = "tby",
["Tabasco Chontal"] = "chf",
["Tabasco Nahuatl"] = "nhc",
["Tabasco Zoque"] = "zoq",
["Tabla"] = "tnm",
["Tabo"] = "knv",
["Tabriak"] = "tzx",
["Tacahua Mixtec"] = "xtt",
["Tacana"] = "tna",
["Tadaksahak"] = "dsq",
["Tae'"] = "rob",
["Tafreshi"] = "xme-taf",
["Tagabawa"] = "bgs",
["Tagakaulu Kalagan"] = "klg",
["Tagbanwa"] = "tbw",
["Tagbu"] = "tbm",
["Tagish"] = "tgx",
["Tagwana Senoufo"] = "tgw",
["Tai"] = "taw",
["Tai Hang Tong"] = "thc",
["Tai Hongjin"] = "tiz",
["Tai Long"] = "thi",
["Tai Thanh"] = "tmm",
["Tai Ya"] = "cuu",
["Taiap"] = "gpn",
["Taikat"] = "aos",
["Tainae"] = "ago",
["Tairuma"] = "uar",
["Taita"] = "dav",
["Taiwan Sign Language"] = "tss",
["Taje"] = "pee",
["Tiếng Tajio"] = "tdj",
["Tajuasohn"] = "tja",
["Takelma"] = "tkm",
["Takia"] = "tbc",
["Takka Apabhramsa"] = "inc-tak",
["Takua"] = "tkz",
["Takuu"] = "nho",
["Takwane"] = "tke",
["Talaud"] = "tld",
["Taliabu"] = "tlv",
["Talieng"] = "tdf",
["Talinga-Bwisi"] = "tlj",
["Talise"] = "tlr",
["Tallán"] = "sai-tal",
["Talodi"] = "tlo",
["Taloki"] = "tlk",
["Talondo'"] = "tln",
["Talu"] = "yta",
["Tama (Chad)"] = "tma",
["Tama (Colombia)"] = "ten",
["Tamagario"] = "tcg",
["Tamambo"] = "mla",
["Taman (Indonesia)"] = "tmn",
["Taman (Myanmar)"] = "tcl",
["Tamanaku"] = "tmz",
["Tamazola Mixtec"] = "vmx",
["Tambas"] = "tdk",
["Tambora"] = "xxt",
["Tambotalo"] = "tls",
["Tambunan Dusun"] = "kzt",
["Tami"] = "tmy",
["Tamnim Citak"] = "tml",
["Tampias Lobu"] = "low",
["Tampulma"] = "tpm",
["Tanacross"] = "tcb",
["Tanahmerah"] = "tcm",
["Tanapag"] = "tpv",
["Tandaganon"] = "tgn",
["Tandia"] = "tni",
["Tanema"] = "tnx",
["Tangale"] = "tan",
["Tangam"] = "sit-tgm",
["Tanggu"] = "tgu",
["Tangko"] = "tkx",
["Tangsa"] = "nst",
["Tanguat"] = "tbs",
["Tanimuca-Retuarã"] = "tnc",
["Tanjijili"] = "uji",
["Tanudan Kalinga"] = "kml",
["Tanzanian Sign Language"] = "tza",
["Tapachultec"] = "nai-tap",
["Taparita"] = "sai-tpr",
["Tapayuna"] = "sai-tap",
["Tapeba"] = "tbb",
["Tapei"] = "afp",
["Tapieté"] = "tpj",
["Tar Gula"] = "kcm",
["Tarairiú"] = "sai-trr",
["Tarao"] = "tro",
["Taraon"] = "mhu",
["Tareng"] = "tgr",
["Tarjumo"] = "txj",
["Tarok"] = "yer",
["Tarpia"] = "tpf",
["Tartessian"] = "txr",
["Taruma"] = "tdm",
["Tasmate"] = "tmt",
["Tataltepec Chatino"] = "cta",
["Tatana"] = "txx",
["Tataviam"] = "azc-tat",
["Tauade"] = "ttd",
["Taulil"] = "tuh",
["Taupota"] = "tpa",
["Taushiro"] = "trr",
["Tauya"] = "tya",
["Taveta"] = "tvs",
["Tawala"] = "tbo",
["Tawandê"] = "xtw",
["Tawang Monpa"] = "twm",
["Tawasa"] = "nai-taw",
["Taworta"] = "tbp",
["Tawoyan"] = "twy",
["Tawr Chin"] = "tcp",
["Tay Khang"] = "tnu",
["Tayabas Ayta"] = "ayy",
["Tayo"] = "cks",
["Tboli"] = "tbl",
["Tchitchege"] = "tck",
["Tchumbuli"] = "bqa",
["Te'un"] = "tve",
["Teanu"] = "tkw",
["Tebul Sign Language"] = "tsy",
["Tebul Ure Dogon"] = "dtu",
["Tecpatlán Totonac"] = "tcw",
["Tedaga"] = "tuq",
["Tee"] = "tkq",
["Tefaro"] = "tfo",
["Tegali"] = "ras",
["Tehit"] = "kps",
["Tehuelche"] = "teh",
["Teiwa"] = "twe",
["Tejalapan Zapotec"] = "ztt",
["Teke-Fuumu"] = "ifm",
["Teke-Kukuya"] = "kkw",
["Teke-Laali"] = "lli",
["Teke-Tege"] = "teg",
["Teke-Tsaayi"] = "tyi",
["Teke-Tyee"] = "tyx",
["Tektiteko"] = "ttc",
["Tela-Masbuar"] = "tvm",
["Telefol"] = "tlf",
["Teluti"] = "tlt",
["Tembé"] = "tqb",
["Teme"] = "tdo",
["Temein"] = "teq",
["Temi"] = "soz",
["Temne"] = "tem",
["Temoaya Otomi"] = "ott",
["Tempasuk Dusun"] = "tdu",
["Tenango Otomi"] = "otn",
["Tene Kan Dogon"] = "dtk",
["Tenggarong Kutai Malay"] = "vkt",
["Tenino"] = "tqn",
["Tenis"] = "tns",
["Tennet"] = "tex",
["Teojomulco Chatino"] = "omq-teo",
["Teop"] = "tio",
["Teor"] = "tev",
["Tepecano"] = "tep",
["Tepetotutla Chinantec"] = "cnt",
["Tepeuxila Cuicatec"] = "cux",
["Tepo Krumen"] = "ted",
["Tiếng Mixtec Teposcolula"] = "omq-tel",
["Tequistlatec"] = "nai-teq",
["Tera"] = "ttr",
["Terebu"] = "trb",
["Terei"] = "buo",
["Tereno"] = "ter",
["Tereweng"] = "twg",
["Terik"] = "tec",
["Termanu"] = "twu",
["Ternateño"] = "tmg",
["Tese"] = "keg",
["Teshenawa"] = "twc",
["Tetela"] = "tll",
["Tetelcingo Nahuatl"] = "nhg",
["Tetete"] = "teb",
["Tetun Dili"] = "tdt",
["Teushen"] = "sai-teu",
["Teutila Cuicatec"] = "cut",
["Tewa"] = "tew",
["Texcatepec Otomi"] = "otx",
["Texistepec Popoluca"] = "poq",
["Texmelucan Zapotec"] = "zpz",
["Tezoatlán Mixtec"] = "mxb",
["Tha"] = "thy",
["Thado Chin"] = "tcz",
["Thai Sign Language"] = "tsq",
["Thaiphum Chin"] = "cth",
["Thakali"] = "ths",
["Thamudic"] = "sem-tha",
["Thangmi"] = "thf",
["Thao"] = "ssf",
["Tharaka"] = "thk",
["Tharrgari"] = "dhr",
["Thawa"] = "xtv",
["Thopho"] = "ytp",
["Thu Lao"] = "tyl",
["Thulung"] = "tdh",
["Thurawal"] = "tbh",
["Thuri"] = "thu",
["Tiagbamrin Aizi"] = "ahi",
["Tiale"] = "mnl",
["Tibea"] = "ngy",
["Ticuna"] = "tca",
["Tidaá Mixtec"] = "mtx",
["Tidore"] = "tvo",
["Tiemacèwè Bozo"] = "boo",
["Tiene"] = "tii",
["Tifal"] = "tif",
["Tigak"] = "tgc",
["Tii"] = "txq",
["Tijaltepec Mixtec"] = "xtl",
["Tikar"] = "tik",
["Tikopia"] = "tkp",
["Tilapa Otomi"] = "otl",
["Tillamook"] = "til",
["Tilquiapan Zapotec"] = "zts",
["Tilung"] = "tij",
["Tima"] = "tms",
["Timbe"] = "tim",
["Timor Pidgin"] = "tvy",
["Timote"] = "sai-tim",
["Timucua"] = "tjm",
["Timugon Murut"] = "tih",
["Tinani"] = "lbf",
["Tingui-Boto"] = "tgv",
["Tinigua"] = "tit",
["Tinoc Kallahan"] = "tne",
["Tinputz"] = "tpz",
["Tira"] = "tic",
["Tirahi"] = "tra",
["Tiranige Diga Dogon"] = "tde",
["Tircul"] = "pyx",
["Tiri"] = "cir",
["Tita"] = "tdq",
["Titan"] = "ttv",
["Tiv"] = "tiv",
["Tiéfo"] = "tiq",
["Tiéyaxo Bozo"] = "boz",
["Tjurruru"] = "tju",
["Tlacoatzintepec Chinantec"] = "ctl",
["Tlacolulita Zapotec"] = "zpk",
["Tlahuica"] = "ocu",
["Tlahuitoltepec Mixe"] = "mxp",
["Tlamacazapa Nahuatl"] = "nuz",
["Tlazoyaltepec Mixtec"] = "mqh",
["To"] = "toz",
["To'abaita"] = "mlu",
["Toaripi"] = "tqo",
["Toba"] = "tob",
["Toba Batak"] = "bbc",
["Toba-Maskoy"] = "tmf",
["Tobagonian Creole English"] = "tgh",
["Tobanga"] = "tng",
["Tobati"] = "tti",
["Tobelo"] = "tlb",
["Tobilung"] = "tgb",
["Tobo"] = "tbv",
["Tocantins Asurini"] = "asu",
["Tofanma"] = "tlg",
["Tofin Gbe"] = "tfi",
["Togbo-Vara Banda"] = "tor",
["Togoyo"] = "tgy",
["Tojolabal"] = "toj",
["Toka-Leya"] = "dov",
["Tokano"] = "zuh",
["Tol"] = "jic",
["Tolai"] = "ksd",
["Tolaki"] = "lbw",
["Tolomako"] = "tlm",
["Tolowa"] = "tol",
["Toloza"] = "ytl",
["Tomadino"] = "tdi",
["Tombelala"] = "ttp",
["Tombonuo"] = "txa",
["Tombulu"] = "tom",
["Tomini"] = "txm",
["Tommeginne"] = "xpv",
["Tommo So"] = "dto",
["Tomo Kan Dogon"] = "dtm",
["Tomoip"] = "tqp",
["Tondano"] = "tdn",
["Tonga (Malawi)"] = "tog",
["Tonga (Mozambique)"] = "toh",
["Tonga (Zambia)"] = "toi",
["Tongwe"] = "tny",
["Tonjon"] = "tjn",
["Tonsawang"] = "tnw",
["Tonsea"] = "txs",
["Tontemboan"] = "tnt",
["Toogee"] = "xpx",
["Topoiyo"] = "toy",
["Toposa"] = "toq",
["Toraja-Sa'dan"] = "sda",
["Toram"] = "trj",
["Torau"] = "ttu",
["Toro"] = "tdv",
["Toro So Dogon"] = "dts",
["Toro Tegu Dogon"] = "dtt",
["Toromono"] = "tno",
["Torona"] = "tqr",
["Torres Strait Creole"] = "tcs",
["Torricelli"] = "tei",
["Torricelli Yau"] = "yyu",
["Torá"] = "trz",
["Tosu"] = "sit-tos",
["Totela"] = "ttl",
["Totoli"] = "txe",
["Totomachapan Zapotec"] = "zph",
["Totontepec Mixe"] = "mto",
["Totoro"] = "ttk",
["Touo"] = "tqu",
["Toura"] = "neb",
["Tourangeau"] = "roa-tou",
["Towei"] = "ttn",
["Traveller Danish"] = "rmd",
["Traveller Norwegian"] = "rmg",
["Traveller Scottish"] = "trl",
["Tregami"] = "trm",
["Tremembé"] = "tme",
["Trieng"] = "stg",
["Trimuris"] = "tip",
["Tring"] = "tgq",
["Tringgus"] = "trx",
["Trinidad and Tobago Sign Language"] = "lst",
["Trinidadian Creole English"] = "trf",
["Trinitario"] = "trn",
["Truká"] = "tka",
["Trumai"] = "tpy",
["Ts'ün-Lao"] = "tsl",
["Tsaangi"] = "tsa",
["Tsafiki"] = "cof",
["Tsakwambo"] = "kvz",
["Tsetsaut"] = "txc",
["Tshobdun"] = "sit-tsh",
["Tshwa"] = "hio",
["Tsikimba"] = "kdl",
["Tsimané"] = "cas",
["Tsishingini"] = "tsw",
["Tso"] = "ldp",
["Tsogo"] = "tsv",
["Tsotsitaal"] = "fly",
["Tsum"] = "ttz",
["Tsuvadi"] = "tvd",
["Tsuvan"] = "tsh",
["Tswa"] = "tsc",
["Tswapong"] = "two",
["Tubar"] = "tbu",
["Tucano"] = "tuo",
["Tugen"] = "tuy",
["Tugun"] = "tzn",
["Tugutil"] = "tuj",
["Tukpa"] = "tpq",
["Tukudede"] = "tkd",
["Tukumanféd"] = "tkf",
["Tula"] = "tul",
["Tule-Kaweah Yokuts"] = "nai-tky",
["Tulehu"] = "tlu",
["Tulishi"] = "tey",
["Tulu-Bohuai"] = "rak",
["Tulua"] = "aus-tul",
["Tuma-Irumu"] = "iou",
["Tumak"] = "tmc",
["Tumi"] = "kku",
["Tumleo"] = "tmq",
["Tumshuqese"] = "xtq",
["Tumtum"] = "tbr",
["Tumulung Sisaala"] = "sil",
["Tunen"] = "tvu",
["Tungag"] = "lcm",
["Tunggare"] = "trt",
["Tunia"] = "tug",
["Tunisian Sign Language"] = "tse",
["Tunjung"] = "tjg",
["Tunumiisut"] = "esx-tut",
["Tunzu"] = "dza",
["Tuotomb"] = "ttf",
["Tuparí"] = "tpr",
["Tupinikin"] = "tpk",
["Tupuri"] = "tui",
["Turaka"] = "trh",
["Turi"] = "trd",
["Turiwára"] = "twt",
["Turka"] = "tuz",
["Turkana"] = "tuv",
["Turkish Sign Language"] = "tsm",
["Turks and Caicos Creole English"] = "tch",
["Turumsa"] = "tqm",
["Turung"] = "try",
["Tuscarora"] = "tus",
["Tutelo"] = "tta",
["Tutong"] = "ttg",
["Tutsa Naga"] = "tvt",
["Tutuba"] = "tmi",
["Tututepec Mixtec"] = "mtu",
["Tututni"] = "tuu",
["Tuwali Ifugao"] = "ifk",
["Tuwari"] = "tww",
["Tuxináwa"] = "tux",
["Tuxá"] = "tud",
["Tuyuca"] = "tue",
["Twana"] = "twa",
["Twendi"] = "twn",
["Tyaraity"] = "woa",
["Tyerrernotepanner"] = "xph",
["Tz'utujil"] = "tzj",
["Tzeltal"] = "tzh",
["Tày Tac"] = "tyt",
["Téén"] = "lor",
["Tübatulabal"] = "tub",
["Uab Meto"] = "aoz",
["Uamué"] = "uam",
["Uare"] = "ksj",
["Ubaghara"] = "byc",
["Ubang"] = "uba",
["Ubi"] = "ubi",
["Ubir"] = "ubr",
["Ucayali-Yurúa Ashéninka"] = "cpb",
["Uda"] = "uda",
["Ufim"] = "ufi",
["Ugandan Sign Language"] = "ugn",
["Ughele"] = "uge",
["Uhami"] = "uha",
["Uisai"] = "uis",
["Ujir"] = "udj",
["Ukaan"] = "kcf",
["Ukhwejo"] = "ukh",
["Ukit"] = "umi",
["Ukpe-Bayobiri"] = "ukp",
["Ukpet-Ehom"] = "akd",
["Ukrainian Sign Language"] = "ukl",
["Ukue"] = "uku",
["Ukuriguma"] = "ukg",
["Ukwa"] = "ukq",
["Ukwuani-Aboh-Ndoni"] = "ukw",
["Ulau-Suain"] = "svb",
["Uldeme"] = "udl",
["Ulithian"] = "uli",
["Ulumanda'"] = "ulm",
["Ulwa"] = "ulw",
["Uma"] = "ppk",
["Uma' Lasan"] = "xky",
["Uma' Lung"] = "ulu",
["Umanakaina"] = "gdn",
["Umatilla"] = "uma",
["Umbindhamu"] = "umd",
["Umbu-Ungu"] = "ubu",
["Umbugarla"] = "umr",
["Umbuygamu"] = "umg",
["Umeda"] = "upi",
["Umiida"] = "xud",
["Umiray Dumaget Agta"] = "due",
["Umon"] = "umm",
["Umotína"] = "umo",
["Umpila"] = "ump",
["Una"] = "mtg",
["Unas"] = "art-una",
["Unde Kaili"] = "unz",
["Uneme"] = "une",
["Unggaranggu"] = "xun",
["Unggumi"] = "xgu",
["Tiếng Uni"] = "uni",
["Unserdeutsch"] = "uln",
["Unua"] = "onu",
["Unubahe"] = "unu",
["Uokha"] = "uok",
["Upper Chehalis"] = "cjh",
["Upper Grand Valley Dani"] = "dna",
["Upper Kuskokwim"] = "kuu",
["Upper Necaxa Totonac"] = "tku",
["Upper Tanana"] = "tau",
["Upper Taromi"] = "tov",
["Upper Umpqua"] = "xup",
["Ura (New Guinea)"] = "uro",
["Ura (Vanuatu)"] = "uur",
["Uradhi"] = "urf",
["Urapmin"] = "urm",
["Urarina"] = "ura",
["Urat"] = "urt",
["Urhobo"] = "urh",
["Uri"] = "uvh",
["Urigina"] = "urg",
["Urim"] = "uri",
["Urimo"] = "urx",
["Urningangg"] = "urc",
["Uru"] = "ure",
["Uru-Eu-Wau-Wau"] = "urz",
["Uru-Pa-In"] = "urp",
["Uruangnirin"] = "urn",
["Uruava"] = "urv",
["Uruguayan Sign Language"] = "ugy",
["Urumi"] = "uru",
["Usaghade"] = "usk",
["Usan"] = "wnu",
["Usarufa"] = "usa",
["Usila Chinantec"] = "cuc",
["Uspanteco"] = "usp",
["Utarmbung"] = "omo",
["Ute"] = "ute",
["Utu"] = "utu",
["Uwinymil"] = "aus-uwi",
["Uya"] = "usu",
["Uyajitaya"] = "duk",
["Uzekwe"] = "eze",
["Vaghua"] = "tva",
["Vagla"] = "vag",
["Vai"] = "vai",
["Vaiphei"] = "vap",
["Vale"] = "vae",
["Valencian Sign Language"] = "vsv",
["Valle Nacional Chinantec"] = "cvn",
["Valley Maidu"] = "vmv",
["Valman"] = "van",
["Valpei"] = "vlp",
["Vamale"] = "mkt",
["Vame"] = "mlr",
["Vandalic"] = "xvn",
["Vangunu"] = "mpr",
["Vanimo"] = "vam",
["Vanji"] = "ira-wnj",
["Vanuma"] = "vau",
["Vao"] = "vao",
["Varhadi"] = "vah",
["Varisi"] = "vrs",
["Vayu"] = "vay",
["Veddah"] = "ved",
["Vehes"] = "val",
["Vemgo-Mabas"] = "vem",
["Venezuelan Sign Language"] = "vsl",
["Ventureño"] = "veo",
["Vera'a"] = "vra",
["Vestinian"] = "xvs",
["Vidunda"] = "vid",
["Viemo"] = "vig",
["Vilela"] = "vil",
["Vili"] = "vif",
["Villa Viciosa Agta"] = "dyg",
["Vincentian Creole English"] = "svc",
["Viti"] = "vit",
["Vitou"] = "vto",
["Viya"] = "gev",
["Vlax Romani"] = "rmy",
["Volga German"] = "gmw-vog",
["Vono"] = "kch",
["Voro"] = "vor",
["Vracada Apabhramsa"] = "inc-vra",
["Vumbu"] = "vum",
["Vunapu"] = "vnp",
["Vunjo"] = "vun",
["Vute"] = "vut",
["Wa"] = "wbm",
["Wa'ema"] = "wag",
["Waamwang"] = "wmn",
["Wab"] = "wab",
["Wabo"] = "wbb",
["Waboda"] = "kmx",
["Wadaginam"] = "wdg",
["Waddar"] = "wbq",
["Wadi Wadi"] = "xwd",
["Wadjabangayi"] = "wdy",
["Wadjiginy"] = "wdj",
["Wadjigu"] = "wdu",
["Wae Rana"] = "wrx",
["Waffa"] = "waj",
["Wagawaga"] = "wgb",
["Wagaya"] = "wga",
["Wagdi"] = "wbr",
["Wageman"] = "waq",
["Wahau Kayan"] = "whu",
["Wahau Kenyah"] = "whk",
["Waigali"] = "wbk",
["Waigeo"] = "wgo",
["Waikuri"] = "nai-wai",
["Wailaki"] = "wlk",
["Wailapa"] = "wlr",
["Waima'a"] = "wmh",
["Waimiri-Atroari"] = "atr",
["Wainumá"] = "awd-wai",
["Waioli"] = "wli",
["Waitaká"] = "sai-wai",
["Waja"] = "wja",
["Wajarri"] = "wbv",
["Wajuk"] = "xwj",
["Waka"] = "wav",
["Wakawaka"] = "wkw",
["Wakoná"] = "waf",
["Wala"] = "lgl",
["Walak"] = "wlw",
["Walangama"] = "nlw",
["Wali (Ghana)"] = "wlx",
["Wali (Sudan)"] = "wll",
["Waling"] = "wly",
["Walio"] = "wla",
["Walla Walla"] = "waa",
["Walmajarri"] = "wmt",
["Wam"] = "wmo",
["Wamas"] = "wmc",
["Wambaya"] = "wmb",
["Wambon"] = "wms",
["Wamey"] = "cou",
["Wamin"] = "wmi",
["Wampar"] = "lbq",
["Wampur"] = "waz",
["Wan"] = "wan",
["Wanambre"] = "wnb",
["Wanap"] = "wnp",
["Wanda"] = "wbh",
["Wandala"] = "mfi",
["Wandamen"] = "wad",
["Wandarang"] = "wnd",
["Wandji"] = "wdd",
["Wanga"] = "lwg",
["Wanggamala"] = "wnm",
["Wangganguru"] = "wgg",
["Wanggom"] = "wng",
["Wangkayutyuru"] = "wky",
["Wangkumara"] = "xwk",
["Wanham"] = "sai-wnm",
["Wanji"] = "wbi",
["Wanman"] = "wbt",
["Wannu"] = "jub",
["Wano"] = "wno",
["Wantoat"] = "wnc",
["Wanukaka"] = "wnk",
["Wanyi"] = "wny",
["Wané"] = "hwa",
["Wapan"] = "juk",
["Wapishana"] = "wap",
["Wappo"] = "wao",
["Wara"] = "wbf",
["Warao"] = "wba",
["Warapu"] = "wra",
["Waray Sorsogon"] = "srv",
["Wardandi"] = "wxw",
["Warembori"] = "wsa",
["Wari'"] = "pav",
["Waris"] = "wrs",
["Waritai"] = "wbe",
["Wariyangga"] = "wri",
["Warkay-Bipim"] = "bgv",
["Warlmanpa"] = "wrl",
["Warlpiri"] = "wbp",
["Warluwara"] = "wrb",
["Warnang"] = "wrn",
["Waropen"] = "wrp",
["Warray"] = "wrz",
["Warrgamay"] = "wgy",
["Warrwa"] = "wwr",
["Waru"] = "wru",
["Warumungu"] = "wrm",
["Waruna"] = "wrv",
["Warungu"] = "wrg",
["Warwar Feni"] = "hrw",
["Wasa"] = "wss",
["Wasco-Wishram"] = "wac",
["Wasembo"] = "gsp",
["Washo"] = "was",
["Waskia"] = "wsk",
["Wasu"] = "wsu",
["Watakataui"] = "wtk",
["Watam"] = "wax",
["Wathaurong"] = "wth",
["Watiwa"] = "wtf",
["Watubela"] = "wah",
["Waube"] = "kop",
["Wauja"] = "wau",
["Wauyai"] = "wuy",
["Wawa"] = "www",
["Tiếng Ngõa Hương"] = "wxa",
["Wayoró"] = "wyr",
["Wayumará"] = "sai-way",
["Wedau"] = "wed",
["Weh"] = "weh",
["Welaung"] = "weu",
["Weliki"] = "klh",
["Welsh Romani"] = "rmw",
["Wemale"] = "weo",
["Weme Gbe"] = "wem",
["Wendat"] = "wdt",
["Weri"] = "wer",
["Wersing"] = "kvw",
["West Albay Bikol"] = "fbl",
["West Ambae"] = "nnd",
["West Central Banda"] = "bbp",
["West Damar"] = "drn",
["West Greenlandic Pidgin"] = "crp-gep",
["West Lembata"] = "lmj",
["West Masela"] = "mss",
["West Tarangan"] = "txn",
["West Uvean"] = "uve",
["West-Central Limba"] = "lia",
["Western Arrernte"] = "are",
["Western Bolivian Guaraní"] = "gnw",
["Western Bukidnon Manobo"] = "mbb",
["Western Dani"] = "dnw",
["Western Durango Nahuatl"] = "azn",
["Western Fijian"] = "wyy",
["Western Gurung"] = "gvr",
["Western Jicaque"] = "und-wji",
["Western Juxtlahuaca Mixtec"] = "jmx",
["Western Karaboro"] = "kza",
["Western Keres"] = "kjq",
["Tiếng Krahn"] = "krw",
["Western Lalu"] = "ywl",
["Western Maninkakan"] = "mlq",
["Western Mashan Hmong"] = "hmw",
["Western Meohang"] = "raf",
["Western Muria"] = "mut",
["Western Panjabi"] = "pnb",
["Western Penan"] = "pne",
["Western Sisaala"] = "ssl",
["Western Subanon"] = "suc",
["Western Tawbuid"] = "twb",
["Western Totonac"] = "tqt",
["Western Tunebo"] = "tnb",
["Western Xwla Gbe"] = "xwl",
["Westrobothnian"] = "gmq-bot",
["Weyewa"] = "wew",
["White Lachi"] = "lwh",
["Whitesands"] = "tnp",
["Wiarumus"] = "tua",
["Wichita"] = "wic",
["Wichí Lhamtés Güisnay"] = "mzh",
["Wichí Lhamtés Nocten"] = "mtp",
["Wichí Lhamtés Vejoz"] = "wlv",
["Wik-Epa"] = "wie",
["Wik-Iiyanh"] = "wij",
["Wik-Keyangan"] = "wif",
["Wik-Me'anha"] = "wih",
["Wik-Mungkan"] = "wim",
["Wik-Ngathana"] = "wig",
["Wikalkan"] = "wik",
["Wikngenchera"] = "wua",
["Wilawila"] = "wil",
["Wintu"] = "wnw",
["Winyé"] = "kst",
["Wipi"] = "gdr",
["Wiraféd"] = "wir",
["Wirangu"] = "wgu",
["Wiru"] = "wiu",
["Wirö"] = "wpc",
["Wiwa"] = "mbp",
["Woccon"] = "xwc",
["Wogamusin"] = "wog",
["Wogeo"] = "woc",
["Woi"] = "wbw",
["Wojenaka"] = "jod",
["Wolani"] = "wod",
["Woleaian"] = "woe",
["Womo"] = "wmx",
["Wong-gie"] = "aus-won",
["Wongo"] = "won",
["Woods Cree"] = "cwd",
["Woria"] = "wor",
["Worimi"] = "kda",
["Worodougou"] = "jud",
["Worora"] = "wro",
["Wotapuri-Katarqalai"] = "wsv",
["Woun Meu"] = "noa",
["Wudu"] = "wud",
["Wulguru"] = "aus-wul",
["Wuliwuli"] = "wlu",
["Wulna"] = "wux",
["Wumboko"] = "bqm",
["Wumbvu"] = "wum",
["Wumeng"] = "ywu",
["Wunai Bunu"] = "bwn",
["Wunambal"] = "wub",
["Wurrugu"] = "wur",
["Wusa"] = "yig",
["Wushi"] = "bse",
["Wusi"] = "wsi",
["Wutung"] = "wut",
["Wuvulu-Aua"] = "wuv",
["Wyandot"] = "wya",
["Wára"] = "tci",
["Wãpha"] = "juw",
["Wè Southern"] = "gxx",
["Wè Western"] = "wec",
["Xadani Zapotec"] = "zax",
["Xakriabá"] = "xkr",
["Xanaguía Zapotec"] = "ztg",
["Xaragure"] = "axx",
["Xerénte"] = "xer",
["Xetá"] = "xet",
["Xicotepec de Juárez Totonac"] = "too",
["Xinca"] = "xin",
["Xingú Asuriní"] = "asn",
["Xipaya"] = "xiy",
["Xiri"] = "xii",
["Xiriâna"] = "xir",
["Xishanba Lalo"] = "ywt",
["Xocó"] = "sai-xoc",
["Xokleng"] = "xok",
["Xukurú"] = "xoo",
["Xwela Gbe"] = "xwe",
["Yaa"] = "iyx",
["Yabarana"] = "yar",
["Yabaâna"] = "ybn",
["Yaben"] = "ybm",
["Yabong"] = "ybo",
["Yabula Yabula"] = "yxy",
["Yace"] = "ekr",
["Yafi"] = "wfg",
["Yagara"] = "yxg",
["Yagaria"] = "ygr",
["Yagomi"] = "ygm",
["Yagua"] = "yad",
["Yagwoia"] = "ygw",
["Yahadian"] = "ner",
["Yahang"] = "rhp",
["Yahuna"] = "ynu",
["Yaka"] = "yaf",
["Yakaikeke"] = "ykk",
["Yakoma"] = "yky",
["Tiếng Yala"] = "yba",
["Yalahatan"] = "jal",
["Yalakalore"] = "xyl",
["Yalarnnga"] = "ylr",
["Yale"] = "nce",
["Yaleba"] = "ylb",
["Yalunka"] = "yal",
["Yalálag Zapotec"] = "zpu",
["Yamap"] = "ymp",
["Yamba"] = "yam",
["Yambes"] = "ymb",
["Yambeta"] = "yat",
["Yamdena"] = "jmd",
["Yameo"] = "yme",
["Yaminahua"] = "yaa",
["Yamongeri"] = "ymg",
["Yan-nhangu"] = "jay",
["Yana"] = "ynn",
["Yanda"] = "yda",
["Yanda Dogon"] = "dym",
["Yandjibara"] = "xyb",
["Yandruwandha"] = "ynd",
["Yangben"] = "yav",
["Yangkaal"] = "aus-ynk",
["Yangkam"] = "bsx",
["Yangman"] = "jng",
["Yango"] = "yng",
["Yangulam"] = "ynl",
["Yangum Dey"] = "yde",
["Yangum Gel"] = "ygl",
["Yangum Mon"] = "ymo",
["Yankunytjatjara"] = "kdd",
["Yanomamö"] = "guu",
["Yanomámi"] = "wca",
["Yansi"] = "yns",
["Yaosakor Asmat"] = "asy",
["Yaouré"] = "yre",
["Yaqay"] = "jaq",
["Yaqui"] = "yaq",
["Yarawata"] = "yrw",
["Yareba"] = "yrb",
["Yareni Zapotec"] = "zae",
["Yarli"] = "yxl",
["Yarluyandi"] = "yry",
["Yarumá"] = "sai-yar",
["Yarí"] = "yri",
["Yasa"] = "yko",
["Yatay"] = "yty",
["Yaul"] = "yla",
["Yaur"] = "jau",
["Yautepec Zapotec"] = "zpb",
["Yavitero"] = "yvt",
["Yawa"] = "yva",
["Yawalapití"] = "yaw",
["Yawanawa"] = "ywn",
["Yawarawarga"] = "yww",
["Yaweyuha"] = "yby",
["Yawijibaya"] = "jbw",
["Yawiyo"] = "ybx",
["Yawuru"] = "ywr",
["Yaygir"] = "xya",
["Yei"] = "jei",
["Yekhee"] = "ets",
["Yekora"] = "ykr",
["Yelmek"] = "jel",
["Yelogu"] = "ylg",
["Yemba"] = "ybb",
["Yemeni Arabic"] = "ayn",
["Yendang"] = "yen",
["Yeni"] = "yei",
["Yeniche"] = "yec",
["Yerakai"] = "yra",
["Yeretuar"] = "gop",
["Yerukula"] = "yeu",
["Yeskwa"] = "yes",
["Yessan-Mayo"] = "yss",
["Yetfa"] = "yet",
["Yeyi"] = "yey",
["Yil"] = "yll",
["Yimas"] = "yee",
["Yimchungru Naga"] = "yim",
["Yinbaw Karen"] = "kvu",
["Yindjilandji"] = "yil",
["Yine"] = "pib",
["Yinggarda"] = "yia",
["Yinhawangka"] = "ywg",
["Yiningayi"] = "ygi",
["Yintale Karen"] = "kvy",
["Yinwum"] = "yxm",
["Yir-Yoront"] = "yiy",
["Yirandali"] = "ljw",
["Yis"] = "yis",
["Yitha Yitha"] = "xth",
["Yoba"] = "yob",
["Yocoboué Dida"] = "gud",
["Yoidik"] = "ydk",
["Yoke"] = "yki",
["Yolngu Sign Language"] = "ygs",
["Yoloxochitl Mixtec"] = "xty",
["Yombe"] = "yom",
["Yopno"] = "yut",
["Yora"] = "mts",
["Yorta Yorta"] = "xyy",
["Younuo Bunu"] = "buh",
["Yout Wam"] = "ytw",
["Yuaga"] = "nua",
["Yucatec Maya Sign Language"] = "msd",
["Yuchi"] = "yuc",
["Yucuañe Mixtec"] = "mvg",
["Yucuna"] = "ycn",
["Yugambal"] = "yub",
["Yugoslavian Sign Language"] = "ysl",
["Yugul"] = "ygu",
["Yuhup"] = "yab",
["Yuki"] = "yuk",
["Yukpa"] = "yup",
["Yukuben"] = "ybl",
["Yulu"] = "yul",
["Yuma"] = "yum",
["Yumana"] = "awd-yum",
["Yupiltepeque"] = "nai-yup",
["Yupua"] = "sai-yup",
["Yuqui"] = "yuq",
["Yuracare"] = "yuz",
["Yuru"] = "ljx",
["Yurumanguí"] = "sai-yur",
["Yurutí"] = "yui",
["Yutanduchi Mixtec"] = "mab",
["Yuwana"] = "yau",
["Yuyu"] = "yxu",
["Zaachila Zapotec"] = "ztx",
["Zabana"] = "kji",
["Zacatlán-Ahuacatlán-Tepetzintla Nahuatl"] = "nhi",
["Zakhring"] = "zkr",
["Zambian Sign Language"] = "zsl",
["Zan Gula"] = "zna",
["Zanaki"] = "zak",
["Zande"] = "zne",
["Zangwal"] = "zah",
["Zaramo"] = "zaj",
["Zari"] = "zaz",
["Zauzou"] = "zal",
["Zazao"] = "jaj",
["Zbu"] = "sit-zbu",
["Zeem"] = "zua",
["Zemba"] = "dhm",
["Zeme Naga"] = "nzm",
["Zemgalian"] = "xzm",
["Zenag"] = "zeg",
["Zenzontepec Chatino"] = "czn",
["Zhang-Zhung"] = "xzh",
["Zhire"] = "zhi",
["Zhoa"] = "zhw",
["Zhár"] = "jjr",
["Zia"] = "zia",
["Zialo"] = "zil",
["Zigula"] = "ziw",
["Zimakani"] = "zik",
["Zimba"] = "zmb",
["Zimbabwe Sign Language"] = "zib",
["Zinza"] = "zin",
["Zipser German"] = "gmw-zps",
["Zire"] = "sih",
["Ziriya"] = "zir",
["Zizilivakan"] = "ziz",
["Zo'é"] = "pto",
["Zokhuo"] = "yzk",
["Zotung Chin"] = "czt",
["Zulgo-Gemzek"] = "gnd",
["Zumaya"] = "zuy",
["Zuni"] = "zun",
["Zuwara"] = "ber-zuw",
["Zyphe"] = "zyp",
["Záparo"] = "zro",
["Biệt ngữ Chinook"] = "chn",
["Không xác định ngôn ngữ"] = "und",
["Ngôn ngữ ký hiệu Mỹ"] = "ase",
["Tiếng 'Are'are"] = "alu",
["Tiếng A Xương"] = "acn",
["Tiếng A'ou"] = "aou",
["Tiếng A-Hmao"] = "hmd",
["Tiếng Aari"] = "aiw",
["Tiếng Aari nguyên thủy"] = "omv-aro-pro",
["Tiếng Aasax"] = "aas",
["Tiếng Abaga"] = "abg",
["Tiếng Abai"] = "poz-abi",
["Tiếng Abanyom"] = "abm",
["Tiếng Abau"] = "aau",
["Tiếng Abaza"] = "abq",
["Tiếng Abidji"] = "abi",
["Tiếng Abinomn"] = "bsa",
["Tiếng Abkhaz"] = "ab",
["Tiếng Abkhaz-Abaza nguyên thủy"] = "cau-abz-pro",
["Tiếng Abon"] = "abo",
["Tiếng Abron"] = "abr",
["Tiếng Abui"] = "abz",
["Tiếng Abure"] = "abu",
["Tiếng Aceh"] = "ace",
["Tiếng Achawa"] = "aca",
["Tiếng Acheron"] = "acz",
["Tiếng Achi"] = "acr",
["Tiếng Acholi"] = "ach",
["Tiếng Achuar"] = "acu",
["Tiếng Achumawi"] = "acv",
["Tiếng Adangme"] = "ada",
["Tiếng Adi"] = "adi",
["Tiếng Adja"] = "ajg",
["Tiếng Adnyamathanha"] = "adt",
["Tiếng Adygea"] = "ady",
["Tiếng Adzera"] = "adz",
["Tiếng Aer"] = "aeq",
["Tiếng Afade"] = "aal",
["Tiếng Afar"] = "aa",
["Tiếng Afrikaans"] = "af",
["Tiếng Agatu"] = "agc",
["Tiếng Agawam"] = "alg-aga",
["Tiếng Aghem"] = "agq",
["Tiếng Aghul"] = "agx",
["Tiếng Aghwan"] = "xag",
["Tiếng Agta Dupaningan"] = "duo",
["Tiếng Aguacateca"] = "agu",
["Tiếng Ahom"] = "aho",
["Tiếng Ahtna"] = "aht",
["Tiếng Ai"] = "eee",
["Tiếng Ai Cập"] = "egy",
["Tiếng Ai Cập bình dân"] = "egx-dem",
["Tiếng Aimol"] = "aim",
["Tiếng Ainu"] = "ain",
["Tiếng Aiton"] = "aio",
["Tiếng Ajië"] = "aji",
["Tiếng Aka-Bo"] = "akm",
["Tiếng Aka-Jeru"] = "akj",
["Tiếng Aka-Kede"] = "akx",
["Tiếng Akan"] = "ak",
["Tiếng Akaselem"] = "aks",
["Tiếng Akawaio"] = "ake",
["Tiếng Akha"] = "ahk",
["Tiếng Akhvakh"] = "akv",
["Tiếng Akkad"] = "akk",
["Tiếng Aklanon"] = "akl",
["Tiếng Akoose"] = "bss",
["Tiếng Akuntsu"] = "aqz",
["Tiếng Alaba-K’abeena"] = "alw",
["Tiếng Alabama"] = "akz",
["Tiếng Alagwa"] = "wbj",
["Tiếng Alak"] = "alk",
["Tiếng Alamblak"] = "amp",
["Tiếng Alangan"] = "alj",
["Tiếng Alawa"] = "alh",
["Tiếng Albani"] = "sq",
["Tiếng Albani nguyên thủy"] = "sqj-pro",
["Tiếng Alchuka"] = "tuw-alk",
["Tiếng Alekano"] = "gah",
["Tiếng Aleut"] = "ale",
["Tiếng Algic nguyên thủy"] = "aql-pro",
["Tiếng Algonquin"] = "alq",
["Tiếng Algonquin nguyên thủy"] = "alg-pro",
["Tiếng Allar"] = "all",
["Tiếng Alsea"] = "aes",
["Tiếng Alumu-Tesu"] = "aab",
["Tiếng Alutor"] = "alr",
["Tiếng Alyentiyak"] = "sai-all",
["Tiếng Ama"] = "amm",
["Tiếng Amahuaca"] = "amc",
["Tiếng Amaimon"] = "ali",
["Tiếng Amal"] = "aad",
["Tiếng Amanab"] = "amn",
["Tiếng Amarasi"] = "aaz",
["Tiếng Ambai"] = "amk",
["Tiếng Ambrak"] = "aag",
["Tiếng Ambulas"] = "abt",
["Tiếng Amdang"] = "amj",
["Tiếng Amhara"] = "am",
["Tiếng Amis"] = "ami",
["Tiếng Amurdag"] = "amg",
["Tiếng Amuzgo"] = "amu",
["Tiếng Anaang"] = "anw",
["Tiếng Anal"] = "anm",
["Tiếng Anauyá"] = "awd-ana",
["Tiếng Andi"] = "ani",
["Tiếng Angami"] = "njm",
["Tiếng Angika"] = "anp",
["Tiếng Angkula"] = "aus-ang",
["Tiếng Angola"] = "aoa",
["Tiếng Anh"] = "en",
["Tiếng Anh Solombala"] = "crp-slb",
["Tiếng Anh cổ"] = "ang",
["Tiếng Anh trung đại"] = "enm",
["Tiếng Anii"] = "blo",
["Tiếng Ankave"] = "aak",
["Tiếng Annobón"] = "fab",
["Tiếng Anuak"] = "anu",
["Tiếng Anuki"] = "aui",
["Tiếng Anyi"] = "any",
["Tiếng Ao"] = "njo",
["Tiếng Apabhramsa"] = "inc-apa",
["Tiếng Apache Tây"] = "apw",
["Tiếng Apache đồng bằng"] = "apk",
["Tiếng Aparaí"] = "apy",
["Tiếng Apatani"] = "apt",
["Tiếng Apinayé"] = "apn",
["Tiếng Aputai"] = "apx",
["Tiếng Aquitani"] = "xaq",
["Tiếng Aragon"] = "an",
["Tiếng Araki"] = "akr",
["Tiếng Arakwal"] = "rkw",
["Tiếng Aram"] = "arc",
["Tiếng Aranadan"] = "aaf",
["Tiếng Arapaho"] = "arp",
["Tiếng Arawak nguyên thủy"] = "awd-pro",
["Tiếng Araweté"] = "awt",
["Tiếng Archi"] = "aqc",
["Tiếng Arem"] = "aem",
["Tiếng Argobba"] = "agj",
["Tiếng Arhuaco"] = "arh",
["Tiếng Ari"] = "aac",
["Tiếng Arin"] = "xrn",
["Tiếng Armenia"] = "hy",
["Tiếng Armenia cổ"] = "xcl",
["Tiếng Armenia trung đại"] = "axm",
["Tiếng Aromania"] = "rup",
["Tiếng Arrernte Đông"] = "aer",
["Tiếng Ashkun"] = "ask",
["Tiếng Ashraaf"] = "cus-ash",
["Tiếng Ashéninka Pajonal"] = "cjo",
["Tiếng Asi"] = "bno",
["Tiếng Askopan"] = "eiv",
["Tiếng Asli nguyên thủy"] = "mkh-asl-pro",
["Tiếng Assam"] = "as",
["Tiếng Assam cận đại"] = "inc-oas",
["Tiếng Assan"] = "xss",
["Tiếng Assiniboine"] = "asb",
["Tiếng Asturias"] = "ast",
["Tiếng Asumboa"] = "aua",
["Tiếng Asur"] = "asr",
["Tiếng Atayal"] = "tay",
["Tiếng Atemble"] = "ate",
["Tiếng Athabasca nguyên thủy"] = "ath-pro",
["Tiếng Athpariya"] = "aph",
["Tiếng Atikamekw"] = "atj",
["Tiếng Atong (Ấn Độ)"] = "aot",
["Tiếng Atsahuaca"] = "atc",
["Tiếng Auhelawa"] = "kud",
["Tiếng Aukan"] = "djk",
["Tiếng Avar"] = "av",
["Tiếng Avar-Andic nguyên thủy"] = "cau-ava-pro",
["Tiếng Avatime"] = "avn",
["Tiếng Avesta"] = "ae",
["Tiếng Avokaya"] = "avu",
["Tiếng Awa (Trung Quốc)"] = "vwa",
["Tiếng Awadh"] = "awa",
["Tiếng Awadh cổ"] = "inc-oaw",
["Tiếng Aweer"] = "bob",
["Tiếng Awing"] = "azo",
["Tiếng Awjila"] = "auj",
["Tiếng Awngi"] = "awn",
["Tiếng Axi"] = "yix",
["Tiếng Ayere"] = "aye",
["Tiếng Aymara"] = "ay",
["Tiếng Azerbaijan"] = "az",
["Tiếng Ba Lan"] = "pl",
["Tiếng Ba Lan cổ"] = "zlw-opl",
["Tiếng Ba Na"] = "bdq",
["Tiếng Ba Tư"] = "fa",
["Tiếng Ba Tư cổ"] = "peo",
["Tiếng Ba Tư trung đại"] = "pal",
["Tiếng Ba Tư-Do Thái"] = "jpr",
["Tiếng Baagandji"] = "drl",
["Tiếng Baatonum"] = "bba",
["Tiếng Babatana"] = "baa",
["Tiếng Babungo"] = "bav",
["Tiếng Babuza"] = "bzg",
["Tiếng Bacama"] = "bcy",
["Tiếng Bactria"] = "xbc",
["Tiếng Badaga"] = "bfq",
["Tiếng Badanchi"] = "bau",
["Tiếng Bade"] = "bde",
["Tiếng Badui"] = "bac",
["Tiếng Bagua"] = "sai-bag",
["Tiếng Bagvalal"] = "kva",
["Tiếng Bahing"] = "bhj",
["Tiếng Bahnar nguyên thủy"] = "mkh-ban-pro",
["Tiếng Bainouk-Gunyuño"] = "bab",
["Tiếng Baiso"] = "bsw",
["Tiếng Bajjika"] = "vjk",
["Tiếng Bakaka"] = "bqz",
["Tiếng Bakhtiari"] = "bqi",
["Tiếng Baki"] = "bki",
["Tiếng Bakung"] = "xkl",
["Tiếng Bala"] = "tuw-bal",
["Tiếng Balanta-Ganja"] = "bjt",
["Tiếng Balanta-Kentohe"] = "ble",
["Tiếng Balantak"] = "blz",
["Tiếng Bali"] = "ban",
["Tiếng Baloch"] = "bal",
["Tiếng Balt-Slav nguyên thủy"] = "ine-bsl-pro",
["Tiếng Balti"] = "bft",
["Tiếng Bambara"] = "bm",
["Tiếng Bambassi"] = "myf",
["Tiếng Bamum"] = "bax",
["Tiếng Bana"] = "bcw",
["Tiếng Bandjalang"] = "bdy",
["Tiếng Banggai"] = "bgz",
["Tiếng Bangi"] = "bni",
["Tiếng Bangolan"] = "bgj",
["Tiếng Banjar"] = "bjn",
["Tiếng Bankon"] = "abb",
["Tiếng Bantawa"] = "bap",
["Tiếng Bantayanon"] = "bfx",
["Tiếng Bantoid nguyên thủy"] = "nic-bod-pro",
["Tiếng Bantu nguyên thủy"] = "bnt-pro",
["Tiếng Banyumas"] = "map-bms",
["Tiếng Baoule"] = "bci",
["Tiếng Barai"] = "bbb",
["Tiếng Barakai"] = "baj",
["Tiếng Bari"] = "bfa",
["Tiếng Barikewa"] = "jbk",
["Tiếng Barombi"] = "bbi",
["Tiếng Baré"] = "bae",
["Tiếng Basaa"] = "bas",
["Tiếng Basay"] = "byq",
["Tiếng Bashkir"] = "ba",
["Tiếng Basketo"] = "bst",
["Tiếng Basque"] = "eu",
["Tiếng Basque nguyên thủy"] = "euq-pro",
["Tiếng Bassa"] = "bsq",
["Tiếng Bassari"] = "bsc",
["Tiếng Batak Simalungun"] = "bts",
["Tiếng Batek"] = "btq",
["Tiếng Bats"] = "bbl",
["Tiếng Batuley"] = "bay",
["Tiếng Bayern"] = "bar",
["Tiếng Beaver"] = "bea",
["Tiếng Bedjond"] = "bjv",
["Tiếng Beja"] = "bej",
["Tiếng Belarus"] = "be",
["Tiếng Belhariya"] = "byw",
["Tiếng Beli"] = "blm",
["Tiếng Bella Coola"] = "blc",
["Tiếng Bellara"] = "brw",
["Tiếng Belnəng"] = "glb",
["Tiếng Bemba"] = "bem",
["Tiếng Bench"] = "bcq",
["Tiếng Bengal"] = "bn",
["Tiếng Bengal cổ"] = "inc-obn",
["Tiếng Benue-Congo nguyên thủy"] = "nic-bco-pro",
["Tiếng Berber Bắc Sahara"] = "mzb",
["Tiếng Berber Tunisia"] = "sds",
["Tiếng Berber nguyên thủy"] = "ber-pro",
["Tiếng Berber-Do Thái"] = "jbe",
["Tiếng Berik"] = "bkl",
["Tiếng Betawi"] = "bew",
["Tiếng Bezhta"] = "kap",
["Tiếng Bhadrawah"] = "bhd",
["Tiếng Bhatri"] = "bgw",
["Tiếng Bhattiyat"] = "bht",
["Tiếng Bhil"] = "bhb",
["Tiếng Bhil Dungra"] = "duh",
["Tiếng Bhnong"] = "mkh-bhn",
["Tiếng Bhojpur"] = "bho",
["Tiếng Bhumij"] = "aav-bhu",
["Tiếng Bhunjia"] = "bhu",
["Tiếng Bidayuh Bau"] = "sne",
["Tiếng Bidayuh Biatah"] = "bth",
["Tiếng Bih"] = "ibh",
["Tiếng Bihari"] = "bh",
["Tiếng Bikol Buhi'non"] = "ubl",
["Tiếng Bilaspur"] = "kfs",
["Tiếng Bilen"] = "byn",
["Tiếng Bilua"] = "blb",
["Tiếng Bima"] = "bhp",
["Tiếng Binukid"] = "bkd",
["Tiếng Birao"] = "brr",
["Tiếng Birgit"] = "btf",
["Tiếng Birhor"] = "biy",
["Tiếng Birjia"] = "bix",
["Tiếng Bisaya Sabah"] = "bsy",
["Tiếng Bishnupriya"] = "bpy",
["Tiếng Bislama"] = "bi",
["Tiếng Bissa"] = "bib",
["Tiếng Bisu"] = "bzi",
["Tiếng Bit"] = "bgk",
["Tiếng Blackfoot"] = "bla",
["Tiếng Blagar"] = "beu",
["Tiếng Blang"] = "blr",
["Tiếng Bod nguyên thủy"] = "sit-bdi-pro",
["Tiếng Bodo (Ấn Độ)"] = "brx",
["Tiếng Bodo Parja"] = "bdv",
["Tiếng Bodo-Garo nguyên thủy"] = "tbq-bdg-pro",
["Tiếng Boghom"] = "bux",
["Tiếng Bokar"] = "sit-bok",
["Tiếng Boko"] = "bqc",
["Tiếng Bokobaru"] = "bus",
["Tiếng Bola"] = "bnp",
["Tiếng Boloki"] = "bkt",
["Tiếng Bomu"] = "bmq",
["Tiếng Bondo"] = "bfw",
["Tiếng Boon"] = "bnl",
["Tiếng Borôro"] = "bor",
["Tiếng Botlikh"] = "bph",
["Tiếng Bourguignon"] = "roa-brg",
["Tiếng Brahui"] = "brh",
["Tiếng Braj"] = "bra",
["Tiếng Breri"] = "brq",
["Tiếng Breton"] = "br",
["Tiếng Breton cổ"] = "obt",
["Tiếng Breton trung đại"] = "xbm",
["Tiếng Britton nguyên thủy"] = "cel-bry-pro",
["Tiếng Brokkat"] = "bro",
["Tiếng Brokpa"] = "sgt",
["Tiếng Bru"] = "bru",
["Tiếng Bru Tây"] = "brv",
["Tiếng Brâu"] = "brb",
["Tiếng Buang Mapos"] = "bzh",
["Tiếng Bube"] = "bvb",
["Tiếng Budukh"] = "bdk",
["Tiếng Bughotu"] = "bgt",
["Tiếng Bugis"] = "bug",
["Tiếng Buhid"] = "bku",
["Tiếng Bukhara"] = "bhh",
["Tiếng Bukiyip"] = "ape",
["Tiếng Bulgar"] = "xbo",
["Tiếng Bulgari"] = "bg",
["Tiếng Bumthang"] = "kjz",
["Tiếng Bungku"] = "bkz",
["Tiếng Bunun"] = "bnn",
["Tiếng Burji"] = "bji",
["Tiếng Burunge"] = "bds",
["Tiếng Burushaski"] = "bsk",
["Tiếng Buryat"] = "bua",
["Tiếng Busa"] = "bqp",
["Tiếng Bushi"] = "buc",
["Tiếng Bussa"] = "dox",
["Tiếng Butuanon"] = "btw",
["Tiếng Bách Tế"] = "pkc",
["Tiếng Bạch Lạp Mã"] = "lay",
["Tiếng Bạch Nam"] = "bfs",
["Tiếng Bạch Trung"] = "bca",
["Tiếng Bạch nguyên thủy"] = "sit-bai-pro",
["Tiếng Bảo An"] = "peh",
["Tiếng Bắc Altai"] = "atv",
["Tiếng Bắc Amami Ōshima"] = "ryn",
["Tiếng Bắc Catanduanes Bikol"] = "cts",
["Tiếng Bắc Emberá"] = "emp",
["Tiếng Bắc Friesland"] = "frr",
["Tiếng Bắc Iroquois nguyên thủy"] = "iro-nor-pro",
["Tiếng Bắc Khanty"] = "kca-nor",
["Tiếng Bắc Mansi"] = "mns-nor",
["Tiếng Bắc Ndebele"] = "nd",
["Tiếng Bắc Nisu"] = "yiv",
["Tiếng Bắc Paiute"] = "pao",
["Tiếng Bắc Sami"] = "se",
["Tiếng Bắc Selkup"] = "sel-nor",
["Tiếng Bắc Slavey"] = "scs",
["Tiếng Bắc Thái"] = "nod",
["Tiếng Bắc Yukaghir"] = "ykg",
["Tiếng Bắc Âu cổ"] = "non",
["Tiếng Bắc Âu nguyên thủy"] = "gmq-pro",
["Tiếng Bố Cam"] = "bbh",
["Tiếng Bố Lưu"] = "ply",
["Tiếng Bố Mang"] = "bvp",
["Tiếng Bố Y"] = "pcc",
["Tiếng Bối-Thái nguyên thủy"] = "qfa-bet-pro",
["Tiếng Bồ Đào Nha"] = "pt",
["Tiếng Bổ trợ Quốc tế"] = "ia",
["Tiếng Ca Dong"] = "kxy",
["Tiếng Ca Tua"] = "kta",
["Tiếng Cahuilla"] = "chl",
["Tiếng Camling"] = "rab",
["Tiếng Camuni"] = "xcc",
["Tiếng Canela"] = "ram",
["Tiếng Cao Câu Ly"] = "zkg",
["Tiếng Capanahua"] = "kaq",
["Tiếng Carib nguyên thủy"] = "sai-car-pro",
["Tiếng Carrier"] = "crx",
["Tiếng Carrier Nam"] = "caf",
["Tiếng Catalan"] = "ca",
["Tiếng Catalan cổ"] = "roa-oca",
["Tiếng Catawba"] = "chc",
["Tiếng Cayuga"] = "cay",
["Tiếng Cebu"] = "ceb",
["Tiếng Celt nguyên thủy"] = "cel-pro",
["Tiếng Celtiberi"] = "xce",
["Tiếng Cerrado nguyên thủy"] = "sai-cer-pro",
["Tiếng Ch'orti'"] = "caa",
["Tiếng Chachi"] = "cbi",
["Tiếng Chagatai"] = "chg",
["Tiếng Chaima"] = "ciy",
["Tiếng Chak"] = "ckh",
["Tiếng Chakma"] = "ccp",
["Tiếng Chamalal"] = "cji",
["Tiếng Chamba"] = "cdh",
["Tiếng Chamicuro"] = "ccc",
["Tiếng Chamorro"] = "ch",
["Tiếng Chantyal"] = "chx",
["Tiếng Chatino cao nguyên Tây"] = "ctp",
["Tiếng Chaura"] = "crv",
["Tiếng Chavacano"] = "cbk",
["Tiếng Chechen"] = "ce",
["Tiếng Chenchu"] = "cde",
["Tiếng Chenoua"] = "cnu",
["Tiếng Chepang"] = "cdm",
["Tiếng Cherokee"] = "chr",
["Tiếng Chetti Moundadan"] = "cty",
["Tiếng Chetti Wayanad"] = "ctt",
["Tiếng Chewong"] = "cwg",
["Tiếng Cheyenne"] = "chy",
["Tiếng Chhattisgarh"] = "hne",
["Tiếng Chibcha"] = "chb",
["Tiếng Chichewa"] = "ny",
["Tiếng Chickasaw"] = "cic",
["Tiếng Chilcotin"] = "clc",
["Tiếng Chin Asho"] = "csh",
["Tiếng Chin Ekai"] = "cey",
["Tiếng Chin Falam"] = "cfm",
["Tiếng Chin Hakha"] = "cnh",
["Tiếng Chin Songlai"] = "csj",
["Tiếng Chin Tedim"] = "ctd",
["Tiếng Chinal"] = "cih",
["Tiếng Chinantec Ojitlán"] = "chj",
["Tiếng Chinantec Ozumacín"] = "chz",
["Tiếng Chinantec Tepinapa"] = "cte",
["Tiếng Chinook"] = "chh",
["Tiếng Chiricahua"] = "apm",
["Tiếng Chiru"] = "cdf",
["Tiếng Chittagong"] = "ctg",
["Tiếng Chiwere"] = "iow",
["Tiếng Chocangacakha"] = "cgk",
["Tiếng Choctaw"] = "cho",
["Tiếng Chodri"] = "cdi",
["Tiếng Chol"] = "ctu",
["Tiếng Chong"] = "cog",
["Tiếng Chu Ru"] = "cje",
["Tiếng Chukot"] = "ckt",
["Tiếng Chulym"] = "clw",
["Tiếng Churah"] = "cdj",
["Tiếng Chuuk"] = "chk",
["Tiếng Chuvan"] = "xcv",
["Tiếng Chuvash"] = "cv",
["Tiếng Châu Đại Dương nguyên thủy"] = "poz-oce-pro",
["Tiếng Chăm Tây"] = "cja",
["Tiếng Chăm cổ"] = "ocm",
["Tiếng Chăm nguyên thủy"] = "cmc-pro",
["Tiếng Chăm Đông"] = "cjm",
["Tiếng Chơ Ro"] = "crw",
["Tiếng Chứt"] = "scb",
["Tiếng Cia-Cia"] = "cia",
["Tiếng Cimbri"] = "cim",
["Tiếng Circassia nguyên thủy"] = "cau-cir-pro",
["Tiếng Co"] = "cua",
["Tiếng Cocama"] = "cod",
["Tiếng Cochimi"] = "coj",
["Tiếng Coeur d'Alene"] = "crd",
["Tiếng Cofán"] = "con",
["Tiếng Comanche"] = "com",
["Tiếng Comoros Maore"] = "swb",
["Tiếng Comox"] = "coo",
["Tiếng Copt"] = "cop",
["Tiếng Cornwall"] = "kw",
["Tiếng Cornwall cổ"] = "oco",
["Tiếng Corse"] = "co",
["Tiếng Cowlitz"] = "cow",
["Tiếng Cree"] = "cr",
["Tiếng Cree Moose"] = "crm",
["Tiếng Cree Đông Bắc"] = "crl",
["Tiếng Cree Đông Nam"] = "crj",
["Tiếng Cree đồng bằng"] = "crk",
["Tiếng Creole Antilles"] = "gcf",
["Tiếng Creole Guinea-Bissau"] = "pov",
["Tiếng Creole Haiti"] = "ht",
["Tiếng Creole Hà Lan Berbice"] = "brc",
["Tiếng Creole Jamaica"] = "jam",
["Tiếng Creole Louisiana"] = "lou",
["Tiếng Creole Mauritius"] = "mfe",
["Tiếng Creole Nghi Lan"] = "ycr",
["Tiếng Creole Réunion"] = "rcf",
["Tiếng Creole quần đảo Virgin"] = "vic",
["Tiếng Crow"] = "cro",
["Tiếng Cuman"] = "qwm",
["Tiếng Cumanagoto"] = "cuo",
["Tiếng Cumbria"] = "xcb",
["Tiếng Cupeño"] = "cup",
["Tiếng Cushit nguyên thủy"] = "cus-pro",
["Tiếng Cuyunon"] = "cyo",
["Tiếng Càn-đà-la"] = "pgd",
["Tiếng Cám"] = "gan",
["Tiếng Cơ Nặc Du Lạc"] = "jiu",
["Tiếng Cơ Tu"] = "ktv",
["Tiếng Cơ Tu Phương"] = "phg",
["Tiếng Cơ Tu Tây"] = "kuf",
["Tiếng Cơ Tu nguyên thủy"] = "mkh-kat-pro",
["Tiếng Cống"] = "cnc",
["Tiếng Cờ Lao Trắng"] = "giw",
["Tiếng Daasanach"] = "dsh",
["Tiếng Dabarre"] = "dbr",
["Tiếng Dacia"] = "xdc",
["Tiếng Dadibi"] = "mps",
["Tiếng Dagara Bắc"] = "dgi",
["Tiếng Dagba"] = "dgk",
["Tiếng Dagbani"] = "dag",
["Tiếng Dahalik"] = "dlk",
["Tiếng Dahalo"] = "dal",
["Tiếng Dakota"] = "dak",
["Tiếng Dakpa"] = "dka",
["Tiếng Dalmatia"] = "dlm",
["Tiếng Dambi"] = "dac",
["Tiếng Damel"] = "dml",
["Tiếng Dan"] = "dnj",
["Tiếng Danau"] = "dnu",
["Tiếng Dangaléat"] = "daa",
["Tiếng Danu"] = "dnv",
["Tiếng Danuwar"] = "dhw",
["Tiếng Dar Daju Daju"] = "djc",
["Tiếng Dargwa"] = "dar",
["Tiếng Dargwa nguyên thủy"] = "cau-drg-pro",
["Tiếng Daur"] = "dta",
["Tiếng Dawro"] = "dwr",
["Tiếng Deg Xinag"] = "ing",
["Tiếng Degema"] = "deg",
["Tiếng Denesuline"] = "chp",
["Tiếng Deori"] = "der",
["Tiếng Desiya"] = "dso",
["Tiếng Dhangu"] = "dhg",
["Tiếng Dhanka"] = "dhn",
["Tiếng Dharug"] = "xdk",
["Tiếng Dhatki"] = "mki",
["Tiếng Dhimal"] = "dhi",
["Tiếng Dhivehi"] = "dv",
["Tiếng Dhodia"] = "dho",
["Tiếng Dhundhar"] = "dhd",
["Tiếng Dibabawon"] = "mbd",
["Tiếng Dieri"] = "dif",
["Tiếng Digan"] = "rom",
["Tiếng Digan Balkan"] = "rmn",
["Tiếng Digan Baltic"] = "rml",
["Tiếng Digan Tavringer"] = "rmu",
["Tiếng Dimasa"] = "dis",
["Tiếng Dime"] = "dim",
["Tiếng Dinka"] = "din",
["Tiếng Dirasha"] = "gdl",
["Tiếng Ditidaht"] = "dtd",
["Tiếng Dizi"] = "mdx",
["Tiếng Dizi nguyên thủy"] = "omv-diz-pro",
["Tiếng Djinang"] = "dji",
["Tiếng Do Thái"] = "he",
["Tiếng Dogri"] = "doi",
["Tiếng Dogri Hindi"] = "dgo",
["Tiếng Dogrib"] = "dgr",
["Tiếng Dolgan"] = "dlg",
["Tiếng Dolpo"] = "dre",
["Tiếng Domaaki"] = "dmk",
["Tiếng Domari"] = "rmt",
["Tiếng Dongolawi"] = "kzh",
["Tiếng Doteli"] = "dty",
["Tiếng Dravida nguyên thủy"] = "dra-pro",
["Tiếng Dubla"] = "dub",
["Tiếng Dukha"] = "trk-dkh",
["Tiếng Dumi"] = "dus",
["Tiếng Duruwa"] = "pci",
["Tiếng Dusun Witu"] = "duw",
["Tiếng Duun"] = "dux",
["Tiếng Duy Ngô Nhĩ"] = "ug",
["Tiếng Duy Ngô Nhĩ cổ"] = "oui",
["Tiếng Dyirbal"] = "dbl",
["Tiếng Dyula"] = "dyu",
["Tiếng Dzala"] = "dzl",
["Tiếng Dzongkha"] = "dz",
["Tiếng Dzuun"] = "dnn",
["Tiếng Ebla"] = "xeb",
["Tiếng Ebrié"] = "ebr",
["Tiếng Ebughu"] = "ebg",
["Tiếng Ede Ica"] = "ica",
["Tiếng Ede Idaca"] = "idd",
["Tiếng Ede Nago"] = "nqg",
["Tiếng Edekiri nguyên thủy"] = "alv-edk-pro",
["Tiếng Edo"] = "bin",
["Tiếng Edoid nguyên thủy"] = "alv-edo-pro",
["Tiếng Efai"] = "efa",
["Tiếng Efate Bắc"] = "llp",
["Tiếng Efate Nam"] = "erk",
["Tiếng Efe"] = "efe",
["Tiếng Efik"] = "efi",
["Tiếng Ega"] = "ega",
["Tiếng Eggon"] = "ego",
["Tiếng Ehueun"] = "ehu",
["Tiếng Eipomek"] = "eip",
["Tiếng Eitiep"] = "eit",
["Tiếng Ejagham"] = "etu",
["Tiếng El Molo"] = "elo",
["Tiếng Elam"] = "elx",
["Tiếng Elymi"] = "xly",
["Tiếng Emberá-Chamí"] = "cmi",
["Tiếng Emberá-Tadó"] = "tdc",
["Tiếng Embu"] = "ebu",
["Tiếng Emilia"] = "egl",
["Tiếng Enets lãnh nguyên"] = "enh",
["Tiếng Enets rừng"] = "enf",
["Tiếng Engenni"] = "enn",
["Tiếng Enisei nguyên thủy"] = "qfa-yen-pro",
["Tiếng Eotile"] = "eot",
["Tiếng Epie"] = "epi",
["Tiếng Eravalla"] = "era",
["Tiếng Erzya"] = "myv",
["Tiếng Esan"] = "ish",
["Tiếng Ese"] = "mcq",
["Tiếng Esimbi"] = "ags",
["Tiếng Eskimo nguyên thủy"] = "esx-esk-pro",
["Tiếng Eskimo-Aleut nguyên thủy"] = "esx-pro",
["Tiếng Estonia"] = "et",
["Tiếng Eteocrete"] = "ecr",
["Tiếng Etrusca"] = "ett",
["Tiếng Even"] = "eve",
["Tiếng Evenk"] = "evn",
["Tiếng Ewe"] = "ee",
["Tiếng Fala"] = "fax",
["Tiếng Falisci"] = "xfa",
["Tiếng Fanagalo"] = "fng",
["Tiếng Fang (Bantu)"] = "fan",
["Tiếng Faroe"] = "fo",
["Tiếng Fe'fe'"] = "fmp",
["Tiếng Fiji"] = "fj",
["Tiếng Finn nguyên thủy"] = "urj-fin-pro",
["Tiếng Flemish Tây"] = "vls",
["Tiếng Fogaha"] = "ber-fog",
["Tiếng Foi"] = "foi",
["Tiếng Fon"] = "fon",
["Tiếng Fox"] = "sac",
["Tiếng Franche-Comté"] = "roa-fcm",
["Tiếng Franco-Provençal"] = "frp",
["Tiếng Franken Trung"] = "gmw-cfr",
["Tiếng Frisia Saterland"] = "stq",
["Tiếng Frisia cổ"] = "ofs",
["Tiếng Friuli"] = "fur",
["Tiếng Fula"] = "ff",
["Tiếng Fur"] = "fvr",
["Tiếng Ga"] = "gaa",
["Tiếng Gabri"] = "gab",
["Tiếng Gadaba Bodo"] = "gbj",
["Tiếng Gaddang"] = "gad",
["Tiếng Gaddi"] = "gbk",
["Tiếng Gael Scotland"] = "gd",
["Tiếng Gagauz"] = "gag",
["Tiếng Gahri"] = "bfu",
["Tiếng Galati"] = "xga",
["Tiếng Galicia"] = "gl",
["Tiếng Galicia-Bồ Đào Nha"] = "roa-opt",
["Tiếng Gallo"] = "roa-gal",
["Tiếng Gallura"] = "sdn",
["Tiếng Galo"] = "adl",
["Tiếng Gamilaraay"] = "kld",
["Tiếng Gamit"] = "gbl",
["Tiếng Gamo"] = "gmv",
["Tiếng Ganza"] = "gza",
["Tiếng Garasia Adiwasi"] = "gas",
["Tiếng Garasia Rajput"] = "gra",
["Tiếng Garhwal"] = "gbm",
["Tiếng Garifuna"] = "cab",
["Tiếng Garo"] = "grt",
["Tiếng Garre"] = "gex",
["Tiếng Gata'"] = "gaq",
["Tiếng Gaul"] = "cel-gau",
["Tiếng Gawar-Bati"] = "gwt",
["Tiếng Gawwada"] = "gwd",
["Tiếng Gayil"] = "gyl",
["Tiếng Gbe Saxwe"] = "sxw",
["Tiếng Gbe Waci"] = "wci",
["Tiếng Gbe nguyên thủy"] = "alv-gbe-pro",
["Tiếng Gbiri-Niragu"] = "grh",
["Tiếng Gedeo"] = "drs",
["Tiếng Gen"] = "gej",
["Tiếng German Tây nguyên thủy"] = "gmw-pro",
["Tiếng German nguyên thủy"] = "gem-pro",
["Tiếng Graeco-Phrygia nguyên thủy"] = "ine-grp-pro",
["Tiếng Geʽez"] = "gez",
["Tiếng Ghadames"] = "gha",
["Tiếng Ghomala'"] = "bbj",
["Tiếng Ghomara"] = "gho",
["Tiếng Ghotuo"] = "aaa",
["Tiếng Gia Rai"] = "jra",
["Tiếng Gikuyu"] = "ki",
["Tiếng Gilak"] = "glk",
["Tiếng Gimi (Goroka)"] = "gim",
["Tiếng Girirra"] = "gii",
["Tiếng Giryama"] = "nyf",
["Tiếng Gitxsan"] = "git",
["Tiếng Giẻ"] = "jeh",
["Tiếng Glosa"] = "igs",
["Tiếng Godoberi"] = "gdo",
["Tiếng Gofa"] = "gof",
["Tiếng Gone Dau"] = "goo",
["Tiếng Gooniyandi"] = "gni",
["Tiếng Goran"] = "hac",
["Tiếng Gorontalo"] = "gor",
["Tiếng Gorowa"] = "gow",
["Tiếng Goth"] = "got",
["Tiếng Gotland"] = "gmq-gut",
["Tiếng Gotland cổ"] = "gmq-ogt",
["Tiếng Greenland"] = "kl",
["Tiếng Gruzia"] = "ka",
["Tiếng Gruzia cổ"] = "oge",
["Tiếng Gruzia-Do Thái"] = "jge",
["Tiếng Gruzia-Zan nguyên thủy"] = "ccs-gzn-pro",
["Tiếng Guajajára"] = "gub",
["Tiếng Guajá"] = "gvj",
["Tiếng Guanche"] = "gnc",
["Tiếng Guarani Mbya"] = "gun",
["Tiếng Guarani Paraguay"] = "gug",
["Tiếng Guaraní"] = "gn",
["Tiếng Guarayu"] = "gyr",
["Tiếng Gujar"] = "gju",
["Tiếng Gujarat"] = "gu",
["Tiếng Gujarat cổ"] = "inc-ogu",
["Tiếng Gujarat trung đại"] = "inc-mgu",
["Tiếng Gulay"] = "gvl",
["Tiếng Gulimancema"] = "gux",
["Tiếng Gumuz"] = "guk",
["Tiếng Gun"] = "guw",
["Tiếng Gurenne"] = "gur",
["Tiếng Guugu Yimidhirr"] = "kky",
["Tiếng Gwichʼin"] = "gwi",
["Tiếng H'Mông Tương Tây Tây"] = "mmr",
["Tiếng H'Mông-Miền nguyên thủy"] = "hmx-pro",
["Tiếng H'roi"] = "hro",
["Tiếng Hachijō"] = "jpx-hcj",
["Tiếng Hadiyya"] = "hdy",
["Tiếng Haida"] = "hai",
["Tiếng Haisla"] = "has",
["Tiếng Hajong"] = "haj",
["Tiếng Halba"] = "hlb",
["Tiếng Halkomelem"] = "hur",
["Tiếng Hamer-Banna"] = "amf",
["Tiếng Hano"] = "lml",
["Tiếng Hanunoo"] = "hnn",
["Tiếng Harari"] = "har",
["Tiếng Harsusi"] = "hss",
["Tiếng Haryanvi"] = "bgc",
["Tiếng Hatti"] = "xht",
["Tiếng Hausa"] = "ha",
["Tiếng Haush"] = "sai-hau",
["Tiếng Havasupai-Walapai-Yavapai"] = "yuf",
["Tiếng Hawaii"] = "haw",
["Tiếng Hazara"] = "haz",
["Tiếng Heiban"] = "hbn",
["Tiếng Heiltsuk"] = "hei",
["Tiếng Hellen nguyên thủy"] = "grk-pro",
["Tiếng Herero"] = "hz",
["Tiếng Hernici"] = "xhr",
["Tiếng Higaonon"] = "mba",
["Tiếng Hiligaynon"] = "hil",
["Tiếng Hindi"] = "hi",
["Tiếng Hindi Fiji"] = "hif",
["Tiếng Hindi cổ"] = "inc-ohi",
["Tiếng Hindko Bắc"] = "hno",
["Tiếng Hinduri"] = "hii",
["Tiếng Hindustan Caribe"] = "hns",
["Tiếng Hinukh"] = "gin",
["Tiếng Hiri Motu"] = "ho",
["Tiếng Hitti"] = "hit",
["Tiếng Hiw"] = "hiw",
["Tiếng Hlai"] = "lic",
["Tiếng Hlai nguyên thủy"] = "qfa-lic-pro",
["Tiếng Ho"] = "hoc",
["Tiếng Hoava"] = "hoa",
["Tiếng Hocak"] = "win",
["Tiếng Holiya"] = "hoy",
["Tiếng Hopi"] = "hop",
["Tiếng Horpa"] = "ero",
["Tiếng Hozo"] = "hoz",
["Tiếng Hpon"] = "hpo",
["Tiếng Hrê"] = "hre",
["Tiếng Hu"] = "huo",
["Tiếng Hulaulá"] = "huy",
["Tiếng Hungary"] = "hu",
["Tiếng Hunsrik"] = "hrx",
["Tiếng Hunzib"] = "huz",
["Tiếng Hupa"] = "hup",
["Tiếng Hupdë"] = "jup",
["Tiếng Hurri"] = "xhu",
["Tiếng Huy"] = "czh",
["Tiếng Hy Lạp"] = "el",
["Tiếng Hy Lạp Cappadocia"] = "cpg",
["Tiếng Hy Lạp Italiot"] = "grk-ita",
["Tiếng Hy Lạp Mariupol"] = "grk-mar",
["Tiếng Hy Lạp Mycenae"] = "gmy",
["Tiếng Hy Lạp Pontos"] = "pnt",
["Tiếng Hy Lạp cổ"] = "grc",
["Tiếng Hyam"] = "jab",
["Tiếng Hà Lan"] = "nl",
["Tiếng Hà Lan Jersey"] = "gmw-jdt",
["Tiếng Hà Lan cổ"] = "odt",
["Tiếng Hà Lan trung đại"] = "dum",
["Tiếng Hà Lăng"] = "hal",
["Tiếng Hà Nhì"] = "hni",
["Tiếng Hán thượng cổ"] = "och",
["Tiếng Hán trung cổ"] = "ltc",
["Tiếng Hán-Tạng nguyên thủy"] = "sit-pro",
["Tiếng Hạ Saxon Hà Lan"] = "nds-nl",
["Tiếng Hạ Sorb"] = "dsb",
["Tiếng Hạ Tanana"] = "taa",
["Tiếng Hạ Đức"] = "nds",
["Tiếng Hạ Đức Mennonite"] = "pdt",
["Tiếng Hạ Đức trung đại"] = "gml",
["Tiếng Hạ Đức tại Đức"] = "nds-de",
["Tiếng Iaai"] = "iai",
["Tiếng Ibaloi"] = "ibl",
["Tiếng Iban"] = "iba",
["Tiếng Ibanag"] = "ibg",
["Tiếng Ibatan"] = "ivb",
["Tiếng Ibibio"] = "ibb",
["Tiếng Ibino"] = "ibn",
["Tiếng Ibuoro"] = "ibr",
["Tiếng Iceland"] = "is",
["Tiếng Ida'an"] = "dbj",
["Tiếng Ido"] = "io",
["Tiếng Idu"] = "clk",
["Tiếng Ifugao Batad"] = "ifb",
["Tiếng Ifè"] = "ife",
["Tiếng Igala"] = "igl",
["Tiếng Igbo"] = "ig",
["Tiếng Ikposo"] = "kpo",
["Tiếng Ikwere"] = "ikw",
["Tiếng Ili Turki"] = "ili",
["Tiếng Ilokano"] = "ilo",
["Tiếng Indo-Bồ Đào Nha"] = "idb",
["Tiếng Indonesia"] = "id",
["Tiếng Indonesia Peranakan"] = "pea",
["Tiếng Ingria"] = "izh",
["Tiếng Ingush"] = "inh",
["Tiếng Inor"] = "ior",
["Tiếng Interlingue"] = "ie",
["Tiếng Intha"] = "int",
["Tiếng Inuit nguyên thủy"] = "esx-inu-pro",
["Tiếng Inuktitut"] = "iu",
["Tiếng Inuktitut Đông Canada"] = "ike",
["Tiếng Inupiaq"] = "ik",
["Tiếng Inuvialuktun"] = "ikt",
["Tiếng Iran nguyên thủy"] = "ira-pro",
["Tiếng Iraqw"] = "irk",
["Tiếng Ireland"] = "ga",
["Tiếng Ireland cổ"] = "sga",
["Tiếng Ireland trung đại"] = "mga",
["Tiếng Iroquois nguyên thủy"] = "iro-pro",
["Tiếng Irula"] = "iru",
["Tiếng Isan"] = "tts",
["Tiếng Ishkashim"] = "isk",
["Tiếng Isnag"] = "isd",
["Tiếng Isoko"] = "iso",
["Tiếng Istria"] = "ist",
["Tiếng Istria Rumani"] = "ruo",
["Tiếng Italic nguyên thủy"] = "itc-pro",
["Tiếng Itaŋikom"] = "bkm",
["Tiếng Itelmen"] = "itl",
["Tiếng Itene"] = "ite",
["Tiếng Itonama"] = "ito",
["Tiếng Itsekiri"] = "its",
["Tiếng Itu Mbon Uzo"] = "itm",
["Tiếng Ivatan"] = "ivv",
["Tiếng Iwaidja"] = "ibd",
["Tiếng Ixil"] = "ixl",
["Tiếng Izon"] = "ijc",
["Tiếng Jacaltec"] = "jac",
["Tiếng Jah Hut"] = "jah",
["Tiếng Jamamadí"] = "jaa",
["Tiếng Japhug"] = "sit-jap",
["Tiếng Jaqaru"] = "jqr",
["Tiếng Jarawa"] = "anq",
["Tiếng Jaunsar"] = "jns",
["Tiếng Java"] = "jv",
["Tiếng Java Caribe"] = "jvn",
["Tiếng Java cổ"] = "kaw",
["Tiếng Javindo"] = "jvd",
["Tiếng Jehai"] = "jhi",
["Tiếng Jeju"] = "jje",
["Tiếng Jemez"] = "tow",
["Tiếng Jicarilla"] = "apj",
["Tiếng Jiiddu"] = "jii",
["Tiếng Jirel"] = "jul",
["Tiếng Jju"] = "kaj",
["Tiếng Jru'"] = "lbo",
["Tiếng Juang"] = "jun",
["Tiếng Jukun Takum"] = "jbu",
["Tiếng Jumaytepeque"] = "nai-jum",
["Tiếng Jumjum"] = "jum",
["Tiếng Juray"] = "juy",
["Tiếng Juǀ'hoan"] = "ktz",
["Tiếng Jylland"] = "jut",
["Tiếng Jê Bắc nguyên thủy"] = "sai-nje-pro",
["Tiếng Jê nguyên thủy"] = "sai-jee-pro",
["Tiếng K'Ho"] = "kpm",
["Tiếng K'iche'"] = "quc",
["Tiếng Kabardia"] = "kbd",
["Tiếng Kabiye"] = "kbp",
["Tiếng Kabuverdianu"] = "kea",
["Tiếng Kabyle"] = "kab",
["Tiếng Kachama-Ganjule"] = "kcx",
["Tiếng Kachin"] = "kac",
["Tiếng Kadar"] = "kej",
["Tiếng Kadazan bờ biển"] = "kzj",
["Tiếng Kadu"] = "zkd",
["Tiếng Kafa"] = "kbr",
["Tiếng Kagayanen"] = "cgc",
["Tiếng Kaikadi"] = "kep",
["Tiếng Kaingang"] = "kgp",
["Tiếng Kaitag"] = "xdq",
["Tiếng Kakabai"] = "kqf",
["Tiếng Kaki Ae"] = "tbd",
["Tiếng Kalam"] = "gwc",
["Tiếng Kalanguya"] = "kak",
["Tiếng Kalao"] = "kly",
["Tiếng Kalash"] = "kls",
["Tiếng Kalinga Limos"] = "kmk",
["Tiếng Kalkot"] = "xka",
["Tiếng Kalmyk"] = "xal",
["Tiếng Kalo Phần Lan"] = "rmf",
["Tiếng Kamarupi Prakrit"] = "inc-kam",
["Tiếng Kamassia"] = "xas",
["Tiếng Kamayo"] = "kyk",
["Tiếng Kambaata"] = "ktb",
["Tiếng Kambera"] = "xbr",
["Tiếng Kamula"] = "xla",
["Tiếng Kanakanavu"] = "xnb",
["Tiếng Kanan"] = "zkn",
["Tiếng Kangean"] = "kkv",
["Tiếng Kangra"] = "xnr",
["Tiếng Kankanaey"] = "kne",
["Tiếng Kannada"] = "kn",
["Tiếng Kannada cổ"] = "dra-okn",
["Tiếng Kannauj"] = "bjj",
["Tiếng Kanuri"] = "kr",
["Tiếng Kapampangan"] = "pam",
["Tiếng Kapingamarangi"] = "kpg",
["Tiếng Kaqchikel"] = "cak",
["Tiếng Karachay-Balkar"] = "krc",
["Tiếng Karaim"] = "kdr",
["Tiếng Karajá"] = "kpj",
["Tiếng Karakalpak"] = "kaa",
["Tiếng Karakhanid"] = "xqa",
["Tiếng Karao"] = "kyj",
["Tiếng Karata"] = "kpt",
["Tiếng Karbi"] = "mjw",
["Tiếng Karekare"] = "kai",
["Tiếng Karelia"] = "krl",
["Tiếng Karen Bwe"] = "bwe",
["Tiếng Karen Geba"] = "kvq",
["Tiếng Karen Geko"] = "ghk",
["Tiếng Karen Mobwa"] = "jkm",
["Tiếng Karen Paku"] = "jkp",
["Tiếng Karen S'gaw"] = "ksw",
["Tiếng Karen Zayein"] = "kxk",
["Tiếng Karen nguyên thủy"] = "kar-pro",
["Tiếng Kari'na"] = "car",
["Tiếng Kariri"] = "kzw",
["Tiếng Karitiâna"] = "ktn",
["Tiếng Karo"] = "kxh",
["Tiếng Kartvelia nguyên thủy"] = "ccs-pro",
["Tiếng Kashaya"] = "kju",
["Tiếng Kashmir"] = "ks",
["Tiếng Kaszëb"] = "csb",
["Tiếng Katang Bắc"] = "ncq",
["Tiếng Kaurna"] = "zku",
["Tiếng Kavalan"] = "ckv",
["Tiếng Kavet"] = "krv",
["Tiếng Kawésqar"] = "alc",
["Tiếng Kayan"] = "pdu",
["Tiếng Kayapó"] = "txu",
["Tiếng Kayort"] = "kyv",
["Tiếng Kazakh"] = "kk",
["Tiếng Kensiu"] = "kns",
["Tiếng Kenyang"] = "ken",
["Tiếng Kerek"] = "krk",
["Tiếng Kerman"] = "xme-ker",
["Tiếng Ket"] = "ket",
["Tiếng Khakas"] = "kjh",
["Tiếng Khalaj"] = "klj",
["Tiếng Khaling"] = "klr",
["Tiếng Kham Gamale"] = "kgj",
["Tiếng Kham Parbate Tây"] = "kjl",
["Tiếng Kham Parbate Đông"] = "kif",
["Tiếng Kham Sheshi"] = "kip",
["Tiếng Khamba"] = "kbg",
["Tiếng Khamti"] = "kht",
["Tiếng Khamyang"] = "ksu",
["Tiếng Khang Gia"] = "kxs",
["Tiếng Khanty"] = "kca",
["Tiếng Kharia"] = "khr",
["Tiếng Khasa Prakrit"] = "inc-kha",
["Tiếng Khasi"] = "kha",
["Tiếng Khasi nguyên thủy"] = "aav-khs-pro",
["Tiếng Khazar"] = "zkz",
["Tiếng Khengkha"] = "xkf",
["Tiếng Khiamniungan"] = "kix",
["Tiếng Khinalug"] = "kjj",
["Tiếng Khiết Đan"] = "zkt",
["Tiếng Khmer"] = "km",
["Tiếng Khmer Surin"] = "kxm",
["Tiếng Khmer cổ"] = "okz",
["Tiếng Khmer nguyên thủy"] = "mkh-kmr-pro",
["Tiếng Khmer trung đại"] = "xhm",
["Tiếng Khoekhoe"] = "naq",
["Tiếng Kholosi"] = "inc-kho",
["Tiếng Khotan"] = "kho",
["Tiếng Khowar"] = "khw",
["Tiếng Khroskyabs"] = "jiq",
["Tiếng Khuen"] = "khf",
["Tiếng Khvarshi"] = "khv",
["Tiếng Khwarezm"] = "xco",
["Tiếng Khách Gia"] = "hak",
["Tiếng Kháng"] = "kjm",
["Tiếng Khùa"] = "xhv",
["Tiếng Khün"] = "kkh",
["Tiếng Khơ Mú"] = "kjg",
["Tiếng Khơ Mú nguyên thủy"] = "mkh-khm-pro",
["Tiếng Khương Bắc"] = "cng",
["Tiếng Khương Nam"] = "qxs",
["Tiếng Khương Đường"] = "cna",
["Tiếng Kickapoo"] = "kic",
["Tiếng Kikai"] = "kzg",
["Tiếng Kili"] = "tuw-kil",
["Tiếng Kim"] = "kia",
["Tiếng Kim Môn"] = "mji",
["Tiếng Kimbundu"] = "kmb",
["Tiếng Kinaray-a"] = "krj",
["Tiếng Kinnaur"] = "kfk",
["Tiếng Kinnaur Harija"] = "kjo",
["Tiếng Kintaq"] = "knq",
["Tiếng Kiowa"] = "kio",
["Tiếng Gilbert"] = "gil",
["Tiếng Kirike"] = "okr",
["Tiếng Kisan"] = "xis",
["Tiếng Kistane"] = "gru",
["Tiếng Kituba"] = "ktu",
["Tiếng Klallam"] = "clm",
["Tiếng Klingon"] = "tlh",
["Tiếng Knaan"] = "czk",
["Tiếng Koalib"] = "kib",
["Tiếng Kobon"] = "kpw",
["Tiếng Koch"] = "kdq",
["Tiếng Koda"] = "cdz",
["Tiếng Kodava"] = "kfa",
["Tiếng Kohistan"] = "mvy",
["Tiếng Koibal"] = "zkb",
["Tiếng Kok Borok"] = "trp",
["Tiếng Kolami"] = "kfb",
["Tiếng Kolhe"] = "ekl",
["Tiếng Koli Kachi"] = "gjk",
["Tiếng Koli Parkar"] = "kvx",
["Tiếng Koli Wadiyara"] = "kxp",
["Tiếng Koman nguyên thủy"] = "ssa-kom-pro",
["Tiếng Komi cổ"] = "urj-koo",
["Tiếng Komi-Permyak"] = "koi",
["Tiếng Komi-Yazva"] = "urj-kya",
["Tiếng Komi-Zyrian"] = "kpv",
["Tiếng Komo"] = "xom",
["Tiếng Komodo"] = "kvh",
["Tiếng Konabéré"] = "bbo",
["Tiếng Konda-Dora"] = "kfc",
["Tiếng Kondekor"] = "gau",
["Tiếng Kongo"] = "kg",
["Tiếng Konkan"] = "kok",
["Tiếng Konobo"] = "kqo",
["Tiếng Konso"] = "kxc",
["Tiếng Koonzime"] = "ozm",
["Tiếng Koore"] = "kqy",
["Tiếng Koraga Korra"] = "kfd",
["Tiếng Koraga Mudu"] = "vmd",
["Tiếng Korku"] = "kfq",
["Tiếng Korwa"] = "kfp",
["Tiếng Koryak"] = "kpy",
["Tiếng Kosrae"] = "kos",
["Tiếng Kota (Ấn Độ)"] = "kfe",
["Tiếng Kotava"] = "avk",
["Tiếng Kott"] = "zko",
["Tiếng Koya"] = "kff",
["Tiếng Kpelle Guinea"] = "gkp",
["Tiếng Kpelle Liberia"] = "xpe",
["Tiếng Kra nguyên thủy"] = "qfa-kra-pro",
["Tiếng Kra-Dai nguyên thủy"] = "qfa-tak-pro",
["Tiếng Kraol"] = "rka",
["Tiếng Kresh"] = "krs",
["Tiếng Krio"] = "kri",
["Tiếng Kriol Úc"] = "rop",
["Tiếng Krung"] = "krr",
["Tiếng Krymchak"] = "jct",
["Tiếng Kryts"] = "kry",
["Tiếng Ktunaxa"] = "kut",
["Tiếng Kubachi"] = "ugh",
["Tiếng Kudiya"] = "kfg",
["Tiếng Kudmal"] = "kyw",
["Tiếng Kui (Ấn Độ)"] = "uki",
["Tiếng Kui Dawik"] = "dwk",
["Tiếng Kuke"] = "ght",
["Tiếng Kuki-Chin nguyên thủy"] = "tbq-kuk-pro",
["Tiếng Kukna"] = "kex",
["Tiếng Kullu"] = "kfx",
["Tiếng Kulon-Pazeh"] = "uun",
["Tiếng Kumbewaha"] = "xks",
["Tiếng Kumeyaay"] = "nai-kum",
["Tiếng Kumyk"] = "kum",
["Tiếng Kumzar"] = "zum",
["Tiếng Kuna"] = "cuk",
["Tiếng Kundal Shahi"] = "shd",
["Tiếng Kunigami"] = "xug",
["Tiếng Kuo"] = "xuo",
["Tiếng Kupia"] = "key",
["Tiếng Kurichiya"] = "kfh",
["Tiếng Kurmanji"] = "kmr",
["Tiếng Kurtokha"] = "xkz",
["Tiếng Kurukh"] = "kru",
["Tiếng Kurumba Alu"] = "xua",
["Tiếng Kurumba Attapady"] = "pkr",
["Tiếng Kurumba Betta"] = "xub",
["Tiếng Kurumba Jennu"] = "xuj",
["Tiếng Kurumba Kannada"] = "kfi",
["Tiếng Kurumba Mullu"] = "kpb",
["Tiếng Kushi"] = "kuh",
["Tiếng Kutch"] = "kfr",
["Tiếng Kutep"] = "kub",
["Tiếng Kuvi"] = "kxv",
["Tiếng Kuy"] = "kdt",
["Tiếng Kven"] = "fkv",
["Tiếng Kw'adza"] = "wka",
["Tiếng Kwak'wala"] = "kwk",
["Tiếng Kwanja"] = "knp",
["Tiếng Kwanyama"] = "kj",
["Tiếng Kwinti"] = "kww",
["Tiếng Kyakala"] = "tuw-kkl",
["Tiếng Kyrgyz"] = "ky",
["Tiếng Kyrgyz Phú Dụ"] = "trk-fyk",
["Tiếng Kâte"] = "kmg",
["Tiếng La Hủ"] = "lhu",
["Tiếng Laalaa"] = "cae",
["Tiếng Ladakh"] = "lbj",
["Tiếng Ladin"] = "lld",
["Tiếng Ladino"] = "lad",
["Tiếng Lahnda"] = "lah",
["Tiếng Lahta"] = "kvt",
["Tiếng Lak"] = "lbe",
["Tiếng Lakalei"] = "lka",
["Tiếng Laki"] = "lki",
["Tiếng Lakota"] = "lkt",
["Tiếng Lama Gur"] = "las",
["Tiếng Lambadi"] = "lmn",
["Tiếng Lamboya"] = "lmy",
["Tiếng Lamkang"] = "lmk",
["Tiếng Lanoh"] = "lnh",
["Tiếng Laomian"] = "lwm",
["Tiếng Lar"] = "lrl",
["Tiếng Lasalimu"] = "llm",
["Tiếng Lashi"] = "lsi",
["Tiếng Latgale"] = "ltg",
["Tiếng Latinh"] = "la",
["Tiếng Latundê"] = "ltn",
["Tiếng Latvia"] = "lv",
["Tiếng Lavukaleve"] = "lvk",
["Tiếng Lawa Tây"] = "lcp",
["Tiếng Lawa Đông"] = "lwl",
["Tiếng Lawi"] = "lvi",
["Tiếng Laya"] = "lya",
["Tiếng Laz"] = "lzz",
["Tiếng Lelemi"] = "lef",
["Tiếng Lemnos"] = "xle",
["Tiếng Lepcha"] = "lep",
["Tiếng Leponti"] = "xlp",
["Tiếng Lewo"] = "lww",
["Tiếng Lezgi"] = "lez",
["Tiếng Lezgi nguyên thủy"] = "cau-lzg-pro",
["Tiếng León"] = "roa-leo",
["Tiếng León cổ"] = "roa-ole",
["Tiếng Lhao Vo"] = "mhx",
["Tiếng Lhomi"] = "lhm",
["Tiếng Liabuku"] = "lix",
["Tiếng Libido"] = "liq",
["Tiếng Liguria"] = "lij",
["Tiếng Lillooet"] = "lil",
["Tiếng Limbum"] = "lmp",
["Tiếng Limburg"] = "li",
["Tiếng Lindu"] = "klw",
["Tiếng Lingala"] = "ln",
["Tiếng Lipan"] = "apl",
["Tiếng Lishana Deni"] = "lsd",
["Tiếng Lishanid Noshan"] = "aij",
["Tiếng Lisu"] = "lis",
["Tiếng Litva"] = "lt",
["Tiếng Litva cổ"] = "olt",
["Tiếng Livonia"] = "liv",
["Tiếng Livvi"] = "olo",
["Tiếng Lobi"] = "lob",
["Tiếng Lodha"] = "lbm",
["Tiếng Logba"] = "lgq",
["Tiếng Lojban"] = "jbo",
["Tiếng Loke"] = "loy",
["Tiếng Lokono"] = "arw",
["Tiếng Loma"] = "lom",
["Tiếng Lomavren"] = "rmi",
["Tiếng Lombard"] = "lmo",
["Tiếng Lorrain"] = "roa-lor",
["Tiếng Lotha Naga"] = "njh",
["Tiếng Lou"] = "loj",
["Tiếng Luba-Katanga"] = "lu",
["Tiếng Lucumí"] = "luq",
["Tiếng Luganda"] = "lg",
["Tiếng Luhya"] = "luy",
["Tiếng Lukpa"] = "dop",
["Tiếng Lumbu"] = "lup",
["Tiếng Lunana"] = "luk",
["Tiếng Lur Bắc"] = "lrc",
["Tiếng Lur Nam"] = "luz",
["Tiếng Lushootseed"] = "lut",
["Tiếng Lutuv"] = "clt",
["Tiếng Luwi"] = "xlu",
["Tiếng Luxembourg"] = "lb",
["Tiếng Lycia"] = "xlc",
["Tiếng Lydia"] = "xld",
["Tiếng Lyngngam"] = "lyg",
["Tiếng Lyydi"] = "lud",
["Tiếng Lào"] = "lo",
["Tiếng Lâm Cao"] = "onb",
["Tiếng Lô Lô"] = "ii",
["Tiếng Lô Lô-Miến nguyên thủy"] = "tbq-lob-pro",
["Tiếng Lư Nhân"] = "sit-lrn",
["Tiếng Lưu Cầu nguyên thủy"] = "jpx-ryu-pro",
["Tiếng Lự"] = "khb",
["Tiếng M'Nông Nam"] = "mnn",
["Tiếng M'Nông Trung"] = "cmo",
["Tiếng M'Nông Đông"] = "mng",
["Tiếng Ma Thoa"] = "nru",
["Tiếng Ma'anyan"] = "mhy",
["Tiếng Maaka"] = "mew",
["Tiếng Maale"] = "mdy",
["Tiếng Maasai"] = "mas",
["Tiếng Maay"] = "ymm",
["Tiếng Mabaan"] = "mfz",
["Tiếng Mabang"] = "mde",
["Tiếng Macedoni cổ đại"] = "xmk",
["Tiếng Macedonia"] = "mk",
["Tiếng Macushi"] = "mbc",
["Tiếng Madura"] = "mad",
["Tiếng Magaha"] = "mag",
["Tiếng Magar Tây"] = "mrd",
["Tiếng Magar Đông"] = "mgp",
["Tiếng Magori"] = "zgr",
["Tiếng Maguindanao"] = "mdh",
["Tiếng Mah Meri"] = "mhe",
["Tiếng Mahal"] = "mjx",
["Tiếng Maithil"] = "mai",
["Tiếng Majang"] = "mpe",
["Tiếng Makassar"] = "mak",
["Tiếng Mal"] = "mlf",
["Tiếng Malagasy"] = "mg",
["Tiếng Malankurava"] = "mjo",
["Tiếng Malapandaram"] = "mjp",
["Tiếng Malarya"] = "mjq",
["Tiếng Malasar"] = "ymr",
["Tiếng Malasar Mala"] = "ima",
["Tiếng Malavedan"] = "mjr",
["Tiếng Malayalam"] = "ml",
["Tiếng Malecite-Passamaquoddy"] = "pqm",
["Tiếng Malta"] = "mt",
["Tiếng Mampruli"] = "maw",
["Tiếng Man"] = "gv",
["Tiếng Manda (Ấn Độ)"] = "mha",
["Tiếng Mandahuaca"] = "mht",
["Tiếng Mandara"] = "tbf",
["Tiếng Mande nguyên thủy"] = "dmn-pro",
["Tiếng Mandi"] = "mjl",
["Tiếng Mandinka"] = "mnk",
["Tiếng Mangas"] = "zns",
["Tiếng Manggarai"] = "mqy",
["Tiếng Mangghuer"] = "xgn-mgr",
["Tiếng Mangghul"] = "mjg-mgr",
["Tiếng Manipur"] = "mni",
["Tiếng Mankanya"] = "knf",
["Tiếng Mannan"] = "mjv",
["Tiếng Mano"] = "mev",
["Tiếng Mansaka"] = "msk",
["Tiếng Mansi nguyên thủy"] = "mns-pro",
["Tiếng Manumanaw"] = "kxf",
["Tiếng Mao Nam"] = "mmd",
["Tiếng Maori"] = "mi",
["Tiếng Mapuche"] = "arn",
["Tiếng Maranao"] = "mrw",
["Tiếng Marathi"] = "mr",
["Tiếng Marathi cổ"] = "omr",
["Tiếng Marau"] = "mvr",
["Tiếng Mari Tây"] = "mrj",
["Tiếng Mari nguyên thủy"] = "chm-pro",
["Tiếng Mari Đông"] = "mhr",
["Tiếng Maria (Ấn Độ)"] = "mrr",
["Tiếng Maricopa"] = "mrc",
["Tiếng Marma"] = "rmz",
["Tiếng Marquises Bắc"] = "mrq",
["Tiếng Marquises Nam"] = "mqm",
["Tiếng Marrucini"] = "umc",
["Tiếng Marshall"] = "mh",
["Tiếng Marsi"] = "ims",
["Tiếng Martuthunira"] = "vma",
["Tiếng Marwar"] = "mwr",
["Tiếng Masbatenyo"] = "msb",
["Tiếng Maskelynes"] = "klv",
["Tiếng Matal"] = "mfh",
["Tiếng Mator"] = "mtm",
["Tiếng Maung"] = "mph",
["Tiếng Maya Yucatán"] = "yua",
["Tiếng Maya nguyên thủy"] = "myn-pro",
["Tiếng Mazahua Michoacán"] = "mmc",
["Tiếng Mazahua Trung"] = "maz",
["Tiếng Mazandaran"] = "mzn",
["Tiếng Mbabaram"] = "vmb",
["Tiếng Mbembe Tigon"] = "nza",
["Tiếng Mbembe sông Cross"] = "mfn",
["Tiếng Me'en"] = "mym",
["Tiếng Me'phaa Acatepec"] = "tpx",
["Tiếng Me'phaa Azoyú"] = "tpc",
["Tiếng Me'phaa Tlacoapa"] = "tpl",
["Tiếng Media cổ"] = "xme-old",
["Tiếng Medumba"] = "byv",
["Tiếng Mehri"] = "gdq",
["Tiếng Melo"] = "mfx",
["Tiếng Melpa"] = "med",
["Tiếng Memon"] = "mby",
["Tiếng Mendankwe-Nkwen"] = "mfd",
["Tiếng Mende"] = "men",
["Tiếng Menominee"] = "mez",
["Tiếng Mentawai"] = "mwv",
["Tiếng Meriam"] = "ulk",
["Tiếng Mesaka"] = "iyo",
["Tiếng Mesqan"] = "mvz",
["Tiếng Messapio"] = "cms",
["Tiếng Meänkieli"] = "fit",
["Tiếng Mi'kmaq"] = "mic",
["Tiếng Miami"] = "mia",
["Tiếng Minangkabau"] = "min",
["Tiếng Mingrelia"] = "xmf",
["Tiếng Minriq"] = "mnq",
["Tiếng Mintil"] = "mzt",
["Tiếng Miranda"] = "mwl",
["Tiếng Mirga"] = "zrg",
["Tiếng Mising"] = "mrg",
["Tiếng Miskito"] = "miq",
["Tiếng Mixtec Alcozauca"] = "xta",
["Tiếng Mixtec Chayuco"] = "mih",
["Tiếng Mixtec Yosondúa"] = "mpm",
["Tiếng Mixtec nguyên thủy"] = "omq-mix-pro",
["Tiếng Miyako"] = "mvi",
["Tiếng Mizo"] = "lus",
["Tiếng Miến Điện"] = "my",
["Tiếng Miến Điện cổ"] = "obr",
["Tiếng Miền nguyên thủy"] = "hmx-mie-pro",
["Tiếng Mlabri"] = "mra",
["Tiếng Mlahsö"] = "lhs",
["Tiếng Mogholi"] = "mhj",
["Tiếng Moglena-Rumani"] = "ruq",
["Tiếng Mohawk"] = "moh",
["Tiếng Mohegan-Pequot"] = "xpq",
["Tiếng Moken"] = "mwt",
["Tiếng Mokil"] = "mkj",
["Tiếng Moklen"] = "mkm",
["Tiếng Moksha"] = "mdf",
["Tiếng Molbog"] = "pwm",
["Tiếng Mongghul"] = "mjg-mgl",
["Tiếng Mongo"] = "lol",
["Tiếng Mongondow"] = "mog",
["Tiếng Mooré"] = "mos",
["Tiếng Mordvin nguyên thủy"] = "urj-mdv-pro",
["Tiếng Moro"] = "mor",
["Tiếng Morokodo"] = "mgc",
["Tiếng Mota"] = "mtt",
["Tiếng Motu"] = "meu",
["Tiếng Mozarab"] = "mxi",
["Tiếng Mpade"] = "mpi",
["Tiếng Mpi"] = "mpz",
["Tiếng Muak Sa-aak"] = "ukk",
["Tiếng Mudburra"] = "dmw",
["Tiếng Muduga"] = "udg",
["Tiếng Muna"] = "mnb",
["Tiếng Munda"] = "unx",
["Tiếng Munda nguyên thủy"] = "mun-pro",
["Tiếng Mundabli"] = "boe",
["Tiếng Mundari"] = "unr",
["Tiếng Munggui"] = "mth",
["Tiếng Munji"] = "mnj",
["Tiếng Munsee"] = "umu",
["Tiếng Muria Viễn Tây"] = "fmu",
["Tiếng Murle"] = "mur",
["Tiếng Mursi"] = "muz",
["Tiếng Muscogee"] = "mus",
["Tiếng Musi"] = "mui",
["Tiếng Muskogee nguyên thủy"] = "nai-mus-pro",
["Tiếng Muthuvan"] = "muv",
["Tiếng Mwan"] = "moa",
["Tiếng Mwotlap"] = "mlv",
["Tiếng Myene"] = "mye",
["Tiếng Mân Bắc"] = "mnp",
["Tiếng Mân Nam"] = "nan",
["Tiếng Mân Trung"] = "czo",
["Tiếng Mân Tuyền Chương"] = "nan-hbl",
["Tiếng Mân nguyên thủy"] = "zhx-min-pro",
["Tiếng Mân Đông"] = "cdo",
["Tiếng Mã Lai"] = "ms",
["Tiếng Mã Lai Ambon"] = "abs",
["Tiếng Mã Lai Baba"] = "mbf",
["Tiếng Mã Lai Bacan"] = "btj",
["Tiếng Mã Lai Brunei"] = "kxd",
["Tiếng Mã Lai Bắc Maluku"] = "max",
["Tiếng Mã Lai Kedah"] = "meo",
["Tiếng Mã Lai Pattani"] = "mfa",
["Tiếng Mã Lai Sarawak"] = "poz-sml",
["Tiếng Mã Lai cổ"] = "omy",
["Tiếng Mã Lai nguyên thủy"] = "poz-mly-pro",
["Tiếng Mã Lai-Chăm nguyên thủy"] = "poz-mcm-pro",
["Tiếng Mã Lai-Sumbawa nguyên thủy"] = "poz-msa-pro",
["Tiếng Mã Lai-Đa Đảo Trung Đông nguyên thủy"] = "poz-cet-pro",
["Tiếng Mã Lai-Đa Đảo nguyên thủy"] = "poz-pro",
["Tiếng Mã Lai-Đa Đảo Đông nguyên thủy"] = "pqe-pro",
["Tiếng Mã Liềng"] = "pkt",
["Tiếng Mãn Châu"] = "mnc",
["Tiếng Mòcheno"] = "mhn",
["Tiếng Môn"] = "mnw",
["Tiếng Môn Thái"] = "mnw-tha",
["Tiếng Môn cổ"] = "omx",
["Tiếng Môn nguyên thủy"] = "mkh-mnc-pro",
["Tiếng Môn trung đại"] = "mkh-mmn",
["Tiếng Môn-Khmer nguyên thủy"] = "mkh-pro",
["Tiếng Mông"] = "hmf",
["Tiếng Mông Cổ"] = "mn",
["Tiếng Mông Cổ Khamnigan"] = "ykh",
["Tiếng Mông Cổ cổ điển"] = "cmg",
["Tiếng Mông Cổ nguyên thủy"] = "xgn-pro",
["Tiếng Mông Cổ trung đại"] = "xng",
["Tiếng Mông Trắng"] = "mww",
["Tiếng Mơ Nâm"] = "moo",
["Tiếng Mường"] = "mtq",
["Tiếng Mạ"] = "cma",
["Tiếng Mảng"] = "zng",
["Tiếng Na Miểu"] = "neo",
["Tiếng Na Uy"] = "no",
["Tiếng Na Uy (Bokmål)"] = "nb",
["Tiếng Na Uy (Nynorsk)"] = "nn",
["Tiếng Nafaanra"] = "nfr",
["Tiếng Naga Chothe"] = "nct",
["Tiếng Naga Maring"] = "nng",
["Tiếng Naga Moyon"] = "nmo",
["Tiếng Naga Thangal"] = "nki",
["Tiếng Naga Trung nguyên thủy"] = "sit-aao-pro",
["Tiếng Nahua nguyên thủy"] = "azc-nah-pro",
["Tiếng Nahuatl"] = "nah",
["Tiếng Nahuatl Temascaltepec"] = "nhv",
["Tiếng Nahuatl cổ điển"] = "nci",
["Tiếng Nakh nguyên thủy"] = "cau-nkh-pro",
["Tiếng Nam Altai"] = "alt",
["Tiếng Nam Amami Ōshima"] = "ams",
["Tiếng Nam Dravida I nguyên thủy"] = "dra-sdo-pro",
["Tiếng Nam Dravida II nguyên thủy"] = "dra-sdt-pro",
["Tiếng Nam Dravida nguyên thủy"] = "dra-sou-pro",
["Tiếng Nam Kolami"] = "nit",
["Tiếng Nam Mansi"] = "mns-sou",
["Tiếng Nam Ndebele"] = "nr",
["Tiếng Nam Sami"] = "sma",
["Tiếng Nam Selkup"] = "sel-sou",
["Tiếng Nam Slavey"] = "xsl",
["Tiếng Nam Thái"] = "sou",
["Tiếng Nam Uzbek"] = "uzs",
["Tiếng Nam Yukaghir"] = "yux",
["Tiếng Nam Á nguyên thủy"] = "aav-pro",
["Tiếng Nam Đảo nguyên thủy"] = "map-pro",
["Tiếng Nam Động"] = "kmc",
["Tiếng Nam Ả Rập cổ"] = "sem-srb",
["Tiếng Nambikwara"] = "nab",
["Tiếng Nanai"] = "gld",
["Tiếng Nankina"] = "nnk",
["Tiếng Napoli"] = "nap",
["Tiếng Naskapi"] = "nsk",
["Tiếng Nateni"] = "ntm",
["Tiếng Naukan"] = "ynk",
["Tiếng Nauru"] = "na",
["Tiếng Navajo"] = "nv",
["Tiếng Ndau"] = "ndc",
["Tiếng Ndogo"] = "ndz",
["Tiếng Ndonga"] = "ng",
["Tiếng Nefusa"] = "jbn",
["Tiếng Negerhollands"] = "dcr",
["Tiếng Negidal"] = "neg",
["Tiếng Nenets lãnh nguyên"] = "yrk-tun",
["Tiếng Nepal"] = "ne",
["Tiếng Newa"] = "new",
["Tiếng Nga"] = "ru",
["Tiếng Nga bồi Taimyr"] = "crp-tpr",
["Tiếng Ngadha"] = "nxg",
["Tiếng Ngalum"] = "szb",
["Tiếng Ngam"] = "nmc",
["Tiếng Ngambay"] = "sba",
["Tiếng Nganasan"] = "nio",
["Tiếng Ngas"] = "anc",
["Tiếng Ngiemboon"] = "nnh",
["Tiếng Ngiyambaa"] = "wyb",
["Tiếng Ngomba"] = "jgo",
["Tiếng Ngombe (Congo)"] = "ngc",
["Tiếng Nguni nguyên thủy"] = "bnt-ngu-pro",
["Tiếng Nguồn"] = "nuo",
["Tiếng Ngô"] = "wuu",
["Tiếng Ngũ Đồn"] = "wuh",
["Tiếng Nha Lang"] = "yrn",
["Tiếng Nheengatu"] = "yrl",
["Tiếng Nhu Nhiên"] = "qfa-xgx-rou",
["Tiếng Nhĩ Tô"] = "ers",
["Tiếng Nhật"] = "ja",
["Tiếng Nhật Bản nguyên thủy"] = "jpx-pro",
["Tiếng Nhật cổ"] = "ojp",
["Tiếng Nias"] = "nia",
["Tiếng Nicobar Car"] = "caq",
["Tiếng Nicobar Nam"] = "nik",
["Tiếng Nicobar Trung"] = "ncb",
["Tiếng Nicobar nguyên thủy"] = "aav-nic-pro",
["Tiếng Niger-Congo nguyên thủy"] = "nic-pro",
["Tiếng Nin-Sahara nguyên thủy"] = "ssa-pro",
["Tiếng Nisga'a"] = "ncg",
["Tiếng Niue"] = "niu",
["Tiếng Nivaclé"] = "cag",
["Tiếng Nivkh"] = "niv",
["Tiếng Nkari"] = "nkz",
["Tiếng Nkonya"] = "nko",
["Tiếng Nobiin"] = "fia",
["Tiếng Nobonob"] = "gaw",
["Tiếng Nogai"] = "nog",
["Tiếng Noon"] = "snf",
["Tiếng Noreia"] = "nrc",
["Tiếng Norman"] = "nrf",
["Tiếng Novgorod cổ"] = "zle-ono",
["Tiếng Novial"] = "nov",
["Tiếng Ntcham"] = "bud",
["Tiếng Nubaca"] = "baf",
["Tiếng Nubi"] = "kcn",
["Tiếng Nubia cổ"] = "onw",
["Tiếng Nuer"] = "nus",
["Tiếng Numidia"] = "nxm",
["Tiếng Nupe"] = "nup",
["Tiếng Nuristan nguyên thủy"] = "iir-nur-pro",
["Tiếng Nuu-chah-nulth"] = "nuk",
["Tiếng Nyah Kur"] = "cbn",
["Tiếng Nyaw"] = "nyw",
["Tiếng Nyeu"] = "nyl",
["Tiếng Nyishi"] = "njz",
["Tiếng Nyoro"] = "nyo",
["Tiếng Nyunga"] = "nys",
["Tiếng Nzadi"] = "nzd",
["Tiếng Nùng"] = "nut",
["Tiếng Nùng Vẻn"] = "enc",
["Tiếng Nǀuu"] = "ngh",
["Tiếng Nạp Tây"] = "nxq",
["Tiếng Nữ Chân"] = "juc",
["Tiếng O'odham"] = "ood",
["Tiếng Ocaina"] = "oca",
["Tiếng Occitan"] = "oc",
["Tiếng Occitan cổ"] = "pro",
["Tiếng Ogbronuagum"] = "ogu",
["Tiếng Oghuz cổ sơ kỳ"] = "trk-eog",
["Tiếng Oirat"] = "xwo",
["Tiếng Ojibwe"] = "oj",
["Tiếng Ojibwe Severn"] = "ojs",
["Tiếng Ojibwe Tây"] = "ojw",
["Tiếng Ojibwe Tây Bắc"] = "ojb",
["Tiếng Ojibwe Đông"] = "ojg",
["Tiếng Okanagan"] = "oka",
["Tiếng Okinawa"] = "ryu",
["Tiếng Okinoerabu"] = "okn",
["Tiếng Olukumi"] = "ulb",
["Tiếng Omaha-Ponca"] = "oma",
["Tiếng Omo nguyên thủy"] = "omv-pro",
["Tiếng Omok"] = "omk",
["Tiếng Oneida"] = "one",
["Tiếng Ongota"] = "bxe",
["Tiếng Oriya"] = "or",
["Tiếng Oriya Adiwasi"] = "ort",
["Tiếng Oriya cổ"] = "inc-oor",
["Tiếng Oriya trung đại"] = "inc-mor",
["Tiếng Orma"] = "orc",
["Tiếng Ormu"] = "orz",
["Tiếng Ormur"] = "oru",
["Tiếng Oroch"] = "oac",
["Tiếng Orok"] = "oaa",
["Tiếng Oromo"] = "om",
["Tiếng Oromo Nam"] = "gax",
["Tiếng Oromo Đông"] = "hae",
["Tiếng Oroqen"] = "orh",
["Tiếng Osage"] = "osa",
["Tiếng Osatu"] = "ost",
["Tiếng Osci"] = "osc",
["Tiếng Osing"] = "osi",
["Tiếng Ossetia"] = "os",
["Tiếng Ossetia cổ"] = "oos",
["Tiếng Otomi Mezquital"] = "ote",
["Tiếng Otoro"] = "otr",
["Tiếng Otuke"] = "otu",
["Tiếng Oyda"] = "oyd",
["Tiếng Pa Kô"] = "pac",
["Tiếng Pa'O"] = "blk",
["Tiếng Paeligni"] = "pgn",
["Tiếng Pagu"] = "pgu",
["Tiếng Pahari Mahasu"] = "bfz",
["Tiếng Paharia Kumarbhag"] = "kmj",
["Tiếng Paharia Sauria"] = "mjt",
["Tiếng Paite"] = "pck",
["Tiếng Paiwan"] = "pwn",
["Tiếng Pakan nguyên thủy"] = "mkh-pkn-pro",
["Tiếng Paku"] = "pku",
["Tiếng Pala"] = "plq",
["Tiếng Palau"] = "pau",
["Tiếng Palaung Ruching"] = "pce",
["Tiếng Palaung Rumai"] = "rbb",
["Tiếng Palaung Shwe"] = "pll",
["Tiếng Palaung nguyên thủy"] = "mkh-pal-pro",
["Tiếng Palawano Brooke's Point"] = "plw",
["Tiếng Palenquero"] = "pln",
["Tiếng Pali"] = "pi",
["Tiếng Paliyan"] = "pcf",
["Tiếng Palor"] = "fap",
["Tiếng Pama-Nyungar nguyên thủy"] = "aus-pam-pro",
["Tiếng Pancana"] = "pnp",
["Tiếng Panchpargania"] = "tdb",
["Tiếng Pangasinan"] = "pag",
["Tiếng Pangwala"] = "pgg",
["Tiếng Paniya"] = "pcg",
["Tiếng Papiamento"] = "pap",
["Tiếng Papuma"] = "ppm",
["Tiếng Parachi"] = "prc",
["Tiếng Paraujano"] = "pbg",
["Tiếng Parauk"] = "prk",
["Tiếng Pareci"] = "pab",
["Tiếng Parenga"] = "pcj",
["Tiếng Parthia"] = "xpr",
["Tiếng Parya"] = "paq",
["Tiếng Pashtun"] = "ps",
["Tiếng Pathan nguyên thủy"] = "ira-pat-pro",
["Tiếng Pauna"] = "pnk",
["Tiếng Pawnee"] = "paw",
["Tiếng Pazeh"] = "pzh",
["Tiếng Pear"] = "pcb",
["Tiếng Pear nguyên thủy"] = "mkh-pea-pro",
["Tiếng Pecheneg"] = "xpc",
["Tiếng Pela"] = "bxd",
["Tiếng Pemon"] = "aoc",
["Tiếng Pengo"] = "peg",
["Tiếng Perm nguyên thủy"] = "urj-prm-pro",
["Tiếng Petjo"] = "pey",
["Tiếng Phai"] = "prt",
["Tiếng Phake"] = "phk",
["Tiếng Phalura"] = "phl",
["Tiếng Phi-Á nguyên thủy"] = "afa-pro",
["Tiếng Philippines nguyên thủy"] = "phi-pro",
["Tiếng Phoenicia"] = "phn",
["Tiếng Phong-Kniang"] = "pnx",
["Tiếng Phrygia"] = "xpg",
["Tiếng Phu Thái"] = "pht",
["Tiếng Phuan"] = "phu",
["Tiếng Pháp"] = "fr",
["Tiếng Pháp cổ"] = "fro",
["Tiếng Pháp trung đại"] = "frm",
["Tiếng Phạn"] = "sa",
["Tiếng Phần Lan"] = "fi",
["Tiếng Phổ Hiền"] = "cpx",
["Tiếng Phổ cổ"] = "prg",
["Tiếng Picard"] = "pcd",
["Tiếng Piceni Bắc"] = "nrp",
["Tiếng Piceni Nam"] = "spx",
["Tiếng Piemonte"] = "pms",
["Tiếng Pilagá"] = "plg",
["Tiếng Pinyin"] = "pny",
["Tiếng Pipil"] = "ppl",
["Tiếng Pitjantjatjara"] = "pjt",
["Tiếng Plateau nguyên thủy"] = "nic-plt-pro",
["Tiếng Pnar"] = "pbv",
["Tiếng Pnar-Khasi-Lyngngam nguyên thủy"] = "aav-pkl-pro",
["Tiếng Pohnpei"] = "pon",
["Tiếng Polabia"] = "pox",
["Tiếng Polci"] = "plj",
["Tiếng Ponosakan"] = "pns",
["Tiếng Popoluca cao nguyên"] = "poi",
["Tiếng Potawatomi"] = "pot",
["Tiếng Pothohar"] = "phr",
["Tiếng Prakrit"] = "pra",
["Tiếng Prakrit Ashoka"] = "inc-ash",
["Tiếng Prakrit Niya"] = "pra-niy",
["Tiếng Prakrit Paisaci"] = "inc-psc",
["Tiếng Prakrit Saurasen"] = "psu",
["Tiếng Prasun"] = "prn",
["Tiếng Pucikwar"] = "apq",
["Tiếng Puinave"] = "pui",
["Tiếng Pumpokol"] = "xpm",
["Tiếng Punic"] = "xpu",
["Tiếng Punjab"] = "pa",
["Tiếng Puroik"] = "suv",
["Tiếng Puyuma"] = "pyu",
["Tiếng Pwo Bắc"] = "pww",
["Tiếng Pwo Phrae"] = "kjt",
["Tiếng Pwo Tây"] = "pwo",
["Tiếng Pwo Đông"] = "kjp",
["Tiếng Pà Thẻn"] = "pha",
["Tiếng Pọng"] = "hnu",
["Tiếng Qashqai"] = "qxq",
["Tiếng Qimant"] = "ahg",
["Tiếng Quan Thoại"] = "cmn",
["Tiếng Quapaw"] = "qua",
["Tiếng Quechua"] = "qu",
["Tiếng Quenya"] = "qya",
["Tiếng Quichuañol"] = "mue",
["Tiếng Quinault"] = "qun",
["Tiếng Quiripi"] = "qyp",
["Tiếng Quảng Lâm"] = "aav-qal",
["Tiếng Quảng Đông"] = "yue",
["Tiếng Quốc tế ngữ"] = "eo",
["Tiếng Ra Glai Bắc"] = "rog",
["Tiếng Ra Glai Cát Gia"] = "roc",
["Tiếng Ra Glai Nam"] = "rgs",
["Tiếng Rabha"] = "rah",
["Tiếng Raetia"] = "xrr",
["Tiếng Rajasthan"] = "raj",
["Tiếng Rajbanshi"] = "rjs",
["Tiếng Rakhine"] = "rki",
["Tiếng Rama"] = "rma",
["Tiếng Rangpur"] = "rkt",
["Tiếng Rapa Nui"] = "rap",
["Tiếng Rarotonga"] = "rar",
["Tiếng Rasawa"] = "rac",
["Tiếng Ratagnon"] = "btn",
["Tiếng Raute"] = "rau",
["Tiếng Ravula"] = "yea",
["Tiếng Rawang"] = "raw",
["Tiếng Rejang"] = "rej",
["Tiếng Reli"] = "rei",
["Tiếng Rendille"] = "rel",
["Tiếng Riang Lai"] = "yin",
["Tiếng Rohingya"] = "rhg",
["Tiếng Romagnol"] = "rgn",
["Tiếng Romansh"] = "rm",
["Tiếng Rotuma"] = "rtm",
["Tiếng Rukai"] = "dru",
["Tiếng Rukai nguyên thủy"] = "dru-pro",
["Tiếng Rumani"] = "ro",
["Tiếng Rungus"] = "drg",
["Tiếng Rusnak"] = "rsk",
["Tiếng Rusyn"] = "rue",
["Tiếng Ruthenia cổ"] = "zle-ort",
["Tiếng Rutul"] = "rut",
["Tiếng Rơ Măm"] = "rmx",
["Tiếng Rơ Ngao"] = "ren",
["Tiếng Saanich"] = "str",
["Tiếng Saaroa"] = "sxr",
["Tiếng Saba"] = "saa",
["Tiếng Sabüm"] = "sbo",
["Tiếng Sadri"] = "sck",
["Tiếng Saek"] = "skb",
["Tiếng Saho"] = "ssy",
["Tiếng Saisiyat"] = "xsy",
["Tiếng Saka-Wakhi nguyên thủy"] = "xsc-skw-pro",
["Tiếng Sakizaya"] = "szy",
["Tiếng Salar"] = "slr",
["Tiếng Salish nguyên thủy"] = "sal-pro",
["Tiếng Sama Trung"] = "sml",
["Tiếng Sambal Botolan"] = "sbl",
["Tiếng Sambali"] = "xsb",
["Tiếng Sambalpur"] = "spv",
["Tiếng Sami Akkala"] = "sia",
["Tiếng Sami Inari"] = "smn",
["Tiếng Sami Kildin"] = "sjd",
["Tiếng Sami Skolt"] = "sms",
["Tiếng Sami Ter"] = "sjt",
["Tiếng Sami Ume"] = "sju",
["Tiếng Sami nguyên thủy"] = "smi-pro",
["Tiếng Samo"] = "smq",
["Tiếng Samo Nam"] = "sbd",
["Tiếng Samoa"] = "sm",
["Tiếng Samogitia"] = "sgs",
["Tiếng Samoyed nguyên thủy"] = "syd-pro",
["Tiếng Samtao"] = "stu",
["Tiếng Sangir"] = "sxn",
["Tiếng Sangisar"] = "sgr",
["Tiếng Sango"] = "sg",
["Tiếng Santal"] = "sat",
["Tiếng Saposa"] = "sps",
["Tiếng Saraiki"] = "skr",
["Tiếng Saramacca"] = "srm",
["Tiếng Sardegna"] = "sc",
["Tiếng Sarikol"] = "srh",
["Tiếng Sarmatia nguyên thủy"] = "xsc-sar-pro",
["Tiếng Sasak"] = "sas",
["Tiếng Saurashtra"] = "saz",
["Tiếng Savi"] = "sdg",
["Tiếng Saxon Transylvania"] = "gmw-tsx",
["Tiếng Saxon cổ"] = "osx",
["Tiếng Scots"] = "sco",
["Tiếng Scots trung đại"] = "gmw-msc",
["Tiếng Scythia nguyên thủy"] = "xsc-pro",
["Tiếng Sebat Bet Gurage"] = "sgw",
["Tiếng Sechelt"] = "sec",
["Tiếng Selkup"] = "sel",
["Tiếng Selkup nguyên thủy"] = "sel-pro",
["Tiếng Semai"] = "sea",
["Tiếng Semaq Beri"] = "szc",
["Tiếng Semelai"] = "sza",
["Tiếng Semit Tây nguyên thủy"] = "sem-wes-pro",
["Tiếng Semit nguyên thủy"] = "sem-pro",
["Tiếng Semnam"] = "ssm",
["Tiếng Sena"] = "seh",
["Tiếng Seneca"] = "see",
["Tiếng Senhaja de Srair"] = "sjs",
["Tiếng Senni Humburi"] = "hmb",
["Tiếng Senni Koyraboro"] = "ses",
["Tiếng Senoufo Nyarafolo"] = "sev",
["Tiếng Serbia-Croatia"] = "sh",
["Tiếng Serer"] = "srr",
["Tiếng Seri"] = "sei",
["Tiếng Seze"] = "sze",
["Tiếng Shabak"] = "sdb",
["Tiếng Shabo"] = "sbf",
["Tiếng Shan"] = "shn",
["Tiếng Shebayo"] = "awd-she",
["Tiếng Shekkacho"] = "moy",
["Tiếng Sherpa"] = "xsr",
["Tiếng Shina"] = "scl",
["Tiếng Shina Kohistan"] = "plk",
["Tiếng Shinasha"] = "bwo",
["Tiếng Sholaga"] = "sle",
["Tiếng Shompen"] = "sii",
["Tiếng Shona"] = "sn",
["Tiếng Shor"] = "cjs",
["Tiếng Shughnan"] = "sgh",
["Tiếng Shughnan-Rushan nguyên thủy"] = "ira-shr-pro",
["Tiếng Shughnan-Yazghulom nguyên thủy"] = "ira-shy-pro",
["Tiếng Shughnan-Yazghulom-Munji nguyên thủy"] = "ira-sym-pro",
["Tiếng Shuswap"] = "shs",
["Tiếng Sicel"] = "scx",
["Tiếng Sicily"] = "scn",
["Tiếng Sidamo"] = "sid",
["Tiếng Sikkim"] = "sip",
["Tiếng Silesia"] = "szl",
["Tiếng Siltʼe"] = "stv",
["Tiếng Sinaugoro"] = "snc",
["Tiếng Sindh"] = "sd",
["Tiếng Sinhala"] = "si",
["Tiếng Sioux nguyên thủy"] = "sio-pro",
["Tiếng Siraya"] = "fos",
["Tiếng Sirenik"] = "ysr",
["Tiếng Sirmaur"] = "srx",
["Tiếng Sissala"] = "sld",
["Tiếng Sissano"] = "sso",
["Tiếng Siwi"] = "siz",
["Tiếng Siwu"] = "akp",
["Tiếng Skepi"] = "skw",
["Tiếng Slav Giáo hội"] = "zls-chs",
["Tiếng Slav Giáo hội cổ"] = "cu",
["Tiếng Slav nguyên thủy"] = "sla-pro",
["Tiếng Slav Đông cổ"] = "orv",
["Tiếng Slovak"] = "sk",
["Tiếng Slovak cổ"] = "zlw-osk",
["Tiếng Slovene"] = "sl",
["Tiếng Slovincia"] = "zlw-slv",
["Tiếng Socotra"] = "sqt",
["Tiếng Sogdia"] = "sog",
["Tiếng Sogdia nguyên thủy"] = "ira-sgc-pro",
["Tiếng Sokna"] = "swn",
["Tiếng Solon"] = "tuw-sol",
["Tiếng Solong"] = "aaw",
["Tiếng Somali"] = "so",
["Tiếng Somali nguyên thủy"] = "cus-som-pro",
["Tiếng Soninke"] = "snk",
["Tiếng Sonsorol"] = "sov",
["Tiếng Sora"] = "srb",
["Tiếng Soran"] = "ckb",
["Tiếng Sotho"] = "st",
["Tiếng Sotho Bắc"] = "nso",
["Tiếng Soyot"] = "trk-soy",
["Tiếng Squamish"] = "squ",
["Tiếng Sranan Tongo"] = "srn",
["Tiếng Stau"] = "ero-tau",
["Tiếng Sumer"] = "sux",
["Tiếng Sunda"] = "su",
["Tiếng Sunda cổ"] = "osn",
["Tiếng Suri"] = "suq",
["Tiếng Surjapur"] = "sjp",
["Tiếng Susu"] = "sus",
["Tiếng Svan"] = "sva",
["Tiếng Swahili"] = "sw",
["Tiếng Swazi"] = "ss",
["Tiếng Sylhet"] = "syl",
["Tiếng Syriac cổ điển"] = "syc",
["Tiếng Sán Chay"] = "mlc",
["Tiếng Séc"] = "cs",
["Tiếng Séc cổ"] = "zlw-ocs",
["Tiếng Sô"] = "sss",
["Tiếng Taabwa"] = "tap",
["Tiếng Tabasaran"] = "tab",
["Tiếng Tachawit"] = "shy",
["Tiếng Tadyawan"] = "tdy",
["Tiếng Tafi"] = "tcd",
["Tiếng Tagal Murut"] = "mvv",
["Tiếng Tagalog"] = "tl",
["Tiếng Tagbanwa Calamian"] = "tbk",
["Tiếng Tagdal"] = "tda",
["Tiếng Tagoi"] = "tag",
["Tiếng Tahiti"] = "ty",
["Tiếng Tahltan"] = "tht",
["Tiếng Tai Loi"] = "tlq",
["Tiếng Tai Tây Nam nguyên thủy"] = "tai-swe-pro",
["Tiếng Taivoan"] = "tvx",
["Tiếng Tajik"] = "tg",
["Tiếng Tal"] = "tal",
["Tiếng Tala"] = "tak",
["Tiếng Talossa"] = "tzl",
["Tiếng Talysh"] = "tly",
["Tiếng Tamang Gorkha Đông"] = "tge",
["Tiếng Tamang Tây"] = "tdg",
["Tiếng Tamang Đông"] = "taj",
["Tiếng Tamazight Maroc chuẩn"] = "zgh",
["Tiếng Tamazight Trung Atlas"] = "tzm",
["Tiếng Tamil"] = "ta",
["Tiếng Tamil cổ"] = "oty",
["Tiếng Tamki"] = "tax",
["Tiếng Tammari"] = "tbz",
["Tiếng Tampuan"] = "tpu",
["Tiếng Tanchangya"] = "tnv",
["Tiếng Tangkhul Naga"] = "nmf",
["Tiếng Tangoa"] = "tgp",
["Tiếng Tangut"] = "txg",
["Tiếng Tanimbili"] = "tbe",
["Tiếng Taos"] = "twf",
["Tiếng Tapirapé"] = "taf",
["Tiếng Tara Baka"] = "bdh",
["Tiếng Tarantino"] = "roa-tar",
["Tiếng Tariana"] = "tae",
["Tiếng Tarifit"] = "rif",
["Tiếng Tasawaq"] = "twq",
["Tiếng Tashelhit"] = "shi",
["Tiếng Tat"] = "ttt",
["Tiếng Tat-Do Thái"] = "jdt",
["Tiếng Tatar"] = "tt",
["Tiếng Tiên Ti"] = "mis-xbi",
["Tiếng Tatar Crưm"] = "crh",
["Tiếng Tatar Siberia"] = "sty",
["Tiếng Tatuyo"] = "tav",
["Tiếng Taungyo"] = "tco",
["Tiếng Tause"] = "tad",
["Tiếng Tausug"] = "tsg",
["Tiếng Tavoy"] = "tvn",
["Tiếng Tay Dọ"] = "tyj",
["Tiếng Tayma"] = "sem-tay",
["Tiếng Taz"] = "zhx-taz",
["Tiếng Taznatit"] = "grr",
["Tiếng Taíno"] = "tnq",
["Tiếng Tchad nguyên thủy"] = "cdc-pro",
["Tiếng Telugu"] = "te",
["Tiếng Telugu cổ"] = "dra-ote",
["Tiếng Tem"] = "kdh",
["Tiếng Temiar"] = "tea",
["Tiếng Temoq"] = "tmo",
["Tiếng Ten'edn"] = "tnz",
["Tiếng Tengger"] = "tes",
["Tiếng Tenharim"] = "pah",
["Tiếng Tepehua Tlachichilco"] = "tpt",
["Tiếng Tepehuan Bắc"] = "ntp",
["Tiếng Tepehuan Đông Nam"] = "stp",
["Tiếng Teressa"] = "tef",
["Tiếng Teribe"] = "tfr",
["Tiếng Ternate"] = "tft",
["Tiếng Tetserret"] = "tez",
["Tiếng Tetum"] = "tet",
["Tiếng Thachanad"] = "thn",
["Tiếng Thavưng"] = "thm",
["Tiếng Thompson"] = "thp",
["Tiếng Thracia"] = "txh",
["Tiếng Thác Bạt"] = "qfa-xgx-tuo",
["Tiếng Thái"] = "th",
["Tiếng Thái Hàng Tổng"] = "tpo",
["Tiếng Thái Lai"] = "tjl",
["Tiếng Thái Na"] = "tdd",
["Tiếng Thái Trắng"] = "twh",
["Tiếng Thái Tống"] = "soa",
["Tiếng Thái nguyên thủy"] = "tai-pro",
["Tiếng Thái Đen"] = "blt",
["Tiếng Thái Đỏ"] = "tyr",
["Tiếng Thát Mai"] = "smh",
["Tiếng Thượng Kinabatangan"] = "dmg",
["Tiếng Thượng Sorb"] = "hsb",
["Tiếng Thổ"] = "tou",
["Tiếng Thổ Dục Hồn"] = "qfa-xgx-tuh",
["Tiếng Thổ Gia Bắc"] = "tji",
["Tiếng Thổ Gia Nam"] = "tjs",
["Tiếng Thổ Nhĩ Kỳ"] = "tr",
["Tiếng Thổ Nhĩ Kỳ Anatolia cổ"] = "trk-oat",
["Tiếng Thổ Nhĩ Kỳ Gagauz Balkan"] = "bgx",
["Tiếng Thổ Nhĩ Kỳ Ottoman"] = "ota",
["Tiếng Thụy Điển"] = "sv",
["Tiếng Thụy Điển cổ"] = "gmq-osw",
["Tiếng Thủy"] = "swi",
["Tiếng Tiang"] = "tbj",
["Tiếng Tigre"] = "tig",
["Tiếng Tigrinya"] = "ti",
["Tiếng Tindi"] = "tin",
["Tiếng Tipai"] = "nai-tip",
["Tiếng Tippera"] = "tpe",
["Tiếng Tiruray"] = "tiy",
["Tiếng Tiwa"] = "lax",
["Tiếng Tiwi"] = "tiw",
["Tiếng Tiên Ti"] = "qfa-xgx-xbi",
["Tiếng Tlapanec Malinaltepec"] = "tcf",
["Tiếng Tlingit"] = "tli",
["Tiếng Tobi"] = "tox",
["Tiếng Tochari A"] = "xto",
["Tiếng Tochari B"] = "txb",
["Tiếng Tochari nguyên thủy"] = "ine-toc-pro",
["Tiếng Tocho"] = "taz",
["Tiếng Toda"] = "tcx",
["Tiếng Tofa"] = "kim",
["Tiếng Tok Pisin"] = "tpi",
["Tiếng Tokelau"] = "tkl",
["Tiếng Toki Pona"] = "tok",
["Tiếng Tokunoshima"] = "tkn",
["Tiếng Toma"] = "tod",
["Tiếng Tonga"] = "to",
["Tiếng Tonkawa"] = "tqw",
["Tiếng Tooro"] = "ttj",
["Tiếng Torwali"] = "trw",
["Tiếng Toto"] = "txo",
["Tiếng Totonac Papantla"] = "top",
["Tiếng Totonac cao nguyên"] = "tos",
["Tiếng Triqui Chicahuaxtla"] = "trs",
["Tiếng Triqui Copala"] = "trc",
["Tiếng Triqui San Martín Itunyoso"] = "trq",
["Tiếng Triqui nguyên thủy"] = "omq-tri-pro",
["Tiếng Trió"] = "tri",
["Tiếng Triều Châu"] = "nan-tws",
["Tiếng Triều Tiên"] = "ko",
["Tiếng Triều Tiên cổ"] = "oko",
["Tiếng Triều Tiên nguyên thủy"] = "qfa-kor-pro",
["Tiếng Triều Tiên trung đại"] = "okm",
["Tiếng Truku"] = "trv",
["Tiếng Trung Bikol"] = "bcl",
["Tiếng Trung Dusun"] = "dtp",
["Tiếng Trung Mansi"] = "mns-cen",
["Tiếng Trung Nahuatl"] = "nhn",
["Tiếng Trung Nahuatl Huasteca"] = "nch",
["Tiếng Trung Nahuatl Puebla"] = "ncx",
["Tiếng Trung Quốc"] = "zh",
["Tiếng Trà Động"] = "cdy",
["Tiếng Trác Ni"] = "cda",
["Tiếng Tráng"] = "za",
["Tiếng Tráng Nông"] = "zhn",
["Tiếng Tráng Tả Giang"] = "zzj",
["Tiếng Tráng Đức Tĩnh"] = "zyg",
["Tiếng Trát Bá"] = "zhb",
["Tiếng Tsakhur"] = "tkr",
["Tiếng Tsakonia"] = "tsd",
["Tiếng Tsamai"] = "tsb",
["Tiếng Tsat"] = "huq",
["Tiếng Tsez"] = "ddo",
["Tiếng Tshangla"] = "tsj",
["Tiếng Tsimshian"] = "tsi",
["Tiếng Tsonga"] = "ts",
["Tiếng Tsou"] = "tsu",
["Tiếng Tsuut'ina"] = "srs",
["Tiếng Tswana"] = "tn",
["Tiếng Tuamotu"] = "pmt",
["Tiếng Tuareg"] = "tmh",
["Tiếng Tukang Besi Bắc"] = "khc",
["Tiếng Tukang Besi Nam"] = "bhq",
["Tiếng Tuki"] = "bag",
["Tiếng Tulu"] = "tcy",
["Tiếng Tumbuka"] = "tum",
["Tiếng Tungus nguyên thủy"] = "tuw-pro",
["Tiếng Tunica"] = "tun",
["Tiếng Tunni"] = "tqq",
["Tiếng Tupi"] = "tpn",
["Tiếng Tupi cổ"] = "tpw",
["Tiếng Tupi nguyên thủy"] = "tup-pro",
["Tiếng Tupi-Guarani nguyên thủy"] = "tup-gua-pro",
["Tiếng Turk Khorasan"] = "kmz",
["Tiếng Turk Khorezm"] = "zkh",
["Tiếng Turk cổ"] = "otk",
["Tiếng Turk nguyên thủy"] = "trk-pro",
["Tiếng Turkmen"] = "tk",
["Tiếng Turoyo"] = "tru",
["Tiếng Tuva"] = "tyv",
["Tiếng Tuvalu"] = "tvl",
["Tiếng Tuwuli"] = "bov",
["Tiếng Tyap"] = "kcg",
["Tiếng Tzotzil"] = "tzo",
["Tiếng Tà Mun"] = "aav-tam",
["Tiếng Tà Ôi Thượng"] = "tth",
["Tiếng Tày"] = "tyz",
["Tiếng Tày Sa Pa"] = "tys",
["Tiếng Tân Aram Assyria"] = "aii",
["Tiếng Tân Aram Bohtan"] = "bhn",
["Tiếng Tân Aram Chaldea"] = "cld",
["Tiếng Tân Aram Do Thái Barzani"] = "bjf",
["Tiếng Tân Aram Tây"] = "amw",
["Tiếng Tây Abenaki"] = "abe",
["Tiếng Tây Ban Nha"] = "es",
["Tiếng Tây Ban Nha cổ"] = "osp",
["Tiếng Tây Bắc Gbaya"] = "gya",
["Tiếng Tây Bắc Kavkaz nguyên thủy"] = "cau-nwc-pro",
["Tiếng Tây Bồi"] = "tas",
["Tiếng Tây Duyên hải Bajau"] = "bdr",
["Tiếng Tây Frisia"] = "fy",
["Tiếng Tây Huasteca Nahuatl"] = "nhw",
["Tiếng Tây Kayah"] = "kyu",
["Tiếng Tây Makian"] = "mqs",
["Tiếng Tây Tạng"] = "bo",
["Tiếng Tây Tạng Kham"] = "khg",
["Tiếng Tây Tạng cổ điển"] = "xct",
["Tiếng Tây Yugur"] = "ybe",
["Tiếng Tích Bá"] = "sjo",
["Tiếng Tơ Đrá"] = "tdr",
["Tiếng Tương"] = "hsn",
["Tiếng Tấn"] = "cjy",
["Tiếng Tứ Thổ"] = "sit-sit",
["Tiếng Tứ Xuyên"] = "zhx-sic",
["Tiếng U"] = "uuu",
["Tiếng Ubangi nguyên thủy"] = "nic-ubg-pro",
["Tiếng Ubykh"] = "uby",
["Tiếng Udi"] = "udi",
["Tiếng Udihe"] = "ude",
["Tiếng Udmurt"] = "udm",
["Tiếng Uduk"] = "udu",
["Tiếng Ugarit"] = "uga",
["Tiếng Ugong"] = "ugo",
["Tiếng Ugria nguyên thủy"] = "urj-ugr-pro",
["Tiếng Ukraina"] = "uk",
["Tiếng Ulch"] = "ulc",
["Tiếng Ullatan"] = "ull",
["Tiếng Umbria"] = "xum",
["Tiếng Umbundu"] = "umb",
["Tiếng Unami"] = "unm",
["Tiếng Uneapa"] = "bbn",
["Tiếng Urak Lawoi'"] = "urk",
["Tiếng Ural nguyên thủy"] = "urj-pro",
["Tiếng Urali"] = "url",
["Tiếng Urartu"] = "xur",
["Tiếng Urdu"] = "ur",
["Tiếng Uripiv-Wala-Rano-Atchin"] = "upv",
["Tiếng Urubú-Kaapor"] = "urb",
["Tiếng Urum"] = "uum",
["Tiếng Ushojo"] = "ush",
["Tiếng Usui"] = "usi",
["Tiếng Ute-Aztec nguyên thủy"] = "azc-pro",
["Tiếng Uvbie"] = "evh",
["Tiếng Uzbek"] = "uz",
["Tiếng Vaagri Booli"] = "vaa",
["Tiếng Vaghri"] = "vgr",
["Tiếng Varli"] = "vav",
["Tiếng Vasavi"] = "vas",
["Tiếng Venda"] = "ve",
["Tiếng Veneti"] = "xve",
["Tiếng Veneto"] = "vec",
["Tiếng Veps"] = "vep",
["Tiếng Vishava"] = "vis",
["Tiếng Việt"] = "vi",
["Tiếng Việt trung cổ"] = "mkh-mvi",
["Tiếng Việt-Mường nguyên thủy"] = "mkh-vie-pro",
["Tiếng Volapük"] = "vo",
["Tiếng Volsci"] = "xvo",
["Tiếng Volta-Congo nguyên thủy"] = "nic-vco-pro",
["Tiếng Volta-Niger nguyên thủy"] = "alv-von-pro",
["Tiếng Vot"] = "vot",
["Tiếng Vurës"] = "msn",
["Tiếng Võro"] = "vro",
["Tiếng Văn ngôn"] = "lzh",
["Tiếng Waama"] = "wwa",
["Tiếng Waata"] = "ssn",
["Tiếng Wagi"] = "fad",
["Tiếng Wahgi"] = "wgi",
["Tiếng Waimaha"] = "bao",
["Tiếng Waiwai"] = "waw",
["Tiếng Wakhi"] = "wbl",
["Tiếng Wales"] = "cy",
["Tiếng Wales trung đại"] = "wlm",
["Tiếng Wallis"] = "wls",
["Tiếng Wallon"] = "wa",
["Tiếng Wambule"] = "wme",
["Tiếng Wancho"] = "nnp",
["Tiếng Waneci"] = "wne",
["Tiếng War-Jaintia"] = "aml",
["Tiếng Waray"] = "war",
["Tiếng Wardaman"] = "wrr",
["Tiếng Warekena"] = "gae",
["Tiếng Warji"] = "wji",
["Tiếng Wastek"] = "hus",
["Tiếng Wawonii"] = "wow",
["Tiếng Wayampi"] = "oym",
["Tiếng Wayana"] = "way",
["Tiếng Wayuu"] = "guc",
["Tiếng Wemba-Wemba"] = "xww",
["Tiếng Wewaw"] = "wea",
["Tiếng Wiradjuri"] = "wrh",
["Tiếng Wiyot"] = "wiy",
["Tiếng Wobé"] = "wob",
["Tiếng Woiwurrung"] = "wyi",
["Tiếng Wolane"] = "wle",
["Tiếng Wolaytta"] = "wal",
["Tiếng Wolio"] = "wlo",
["Tiếng Wolof"] = "wo",
["Tiếng Wotu"] = "wtw",
["Tiếng Wymysorys"] = "wym",
["Tiếng Xamtanga"] = "xan",
["Tiếng Xavante"] = "xav",
["Tiếng Xhosa"] = "xh",
["Tiếng Xinh Mun"] = "puo",
["Tiếng Xtiêng"] = "sti",
["Tiếng Xtiêng Bù Đeh"] = "stt",
["Tiếng Xârâcùù"] = "ane",
["Tiếng Xơ Đăng"] = "sed",
["Tiếng Yaaku"] = "muu",
["Tiếng Yaeyama"] = "rys",
["Tiếng Yaghnob"] = "yai",
["Tiếng Yakan"] = "yka",
["Tiếng Yakima"] = "yak",
["Tiếng Yakkha"] = "ybh",
["Tiếng Yakut"] = "sah",
["Tiếng Yali Angguruk"] = "yli",
["Tiếng Yami"] = "tao",
["Tiếng Yamphu"] = "ybi",
["Tiếng Yanesha'"] = "ame",
["Tiếng Yanyuwa"] = "jao",
["Tiếng Yao (Nam Mĩ)"] = "sai-yao",
["Tiếng Yao (châu Phi)"] = "yao",
["Tiếng Yap"] = "yap",
["Tiếng Yapunda"] = "yev",
["Tiếng Yazghulom"] = "yah",
["Tiếng Ye'kwana"] = "mch",
["Tiếng Yele"] = "yle",
["Tiếng Yemsa"] = "jnj",
["Tiếng Yevan"] = "yej",
["Tiếng Yiddish"] = "yi",
["Tiếng Yidgha"] = "ydg",
["Tiếng Yidiny"] = "yii",
["Tiếng Yindjibarndi"] = "yij",
["Tiếng Yiwom"] = "gek",
["Tiếng Yogad"] = "yog",
["Tiếng Yola"] = "yol",
["Tiếng Yolmo"] = "scp",
["Tiếng Yom"] = "pil",
["Tiếng Yonaguni"] = "yoi",
["Tiếng Yong"] = "yno",
["Tiếng Yongkom"] = "yon",
["Tiếng Yoron"] = "yox",
["Tiếng Yoruba"] = "yo",
["Tiếng Yoruba nguyên thủy"] = "alv-yor-pro",
["Tiếng Yorubo nguyên thủy"] = "alv-yrd-pro",
["Tiếng Yoy"] = "yoy",
["Tiếng Yugh"] = "yug",
["Tiếng Yukaghir nguyên thủy"] = "qfa-yuk-pro",
["Tiếng Yup'ik"] = "esu",
["Tiếng Yupik Trung Siberia"] = "ess",
["Tiếng Yuri"] = "sai-yri",
["Tiếng Yurok"] = "yur",
["Tiếng Yámana"] = "yag",
["Tiếng Zacatepec Chatino"] = "ctz",
["Tiếng Zaghawa"] = "zag",
["Tiếng Zaiwa"] = "atb",
["Tiếng Zangskar"] = "zau",
["Tiếng Zapotec"] = "zap",
["Tiếng Zapotec Cajonos"] = "zad",
["Tiếng Zapotec Isthmus"] = "zai",
["Tiếng Zapotec Mitla"] = "zaw",
["Tiếng Zapotec Rincón"] = "zar",
["Tiếng Zapotec Rincón Nam"] = "zsr",
["Tiếng Zapotec San Juan Guelavía"] = "zab",
["Tiếng Zapotec Yatee"] = "zty",
["Tiếng Zapotec Yatzachi"] = "zav",
["Tiếng Zapotec Zaniza"] = "zpw",
["Tiếng Zapotec Zoogocho"] = "zpq",
["Tiếng Zapotec nguyên thủy"] = "omq-zpc-pro",
["Tiếng Zarma"] = "dje",
["Tiếng Zarphat"] = "zrp",
["Tiếng Zay"] = "zwa",
["Tiếng Zayse-Zergulla"] = "zay",
["Tiếng Zaza"] = "zza",
["Tiếng Zaza-Goran nguyên thủy"] = "ira-zgr-pro",
["Tiếng Zeeland"] = "zea",
["Tiếng Zenaga"] = "zen",
["Tiếng Zirenkel"] = "zrn",
["Tiếng Zoque Francisco León"] = "zos",
["Tiếng Zou"] = "zom",
["Tiếng Zulu"] = "zu",
["Tiếng Zumbun"] = "jmb",
["Tiếng Äynu"] = "aib",
["Tiếng Ê Đê"] = "rad",
["Tiếng Ông Bối nguyên thủy"] = "qfa-onb-pro",
["Tiếng Önge"] = "oon",
["Tiếng Önge nguyên thủy"] = "qfa-ong-pro",
["Tiếng Övdal"] = "ovd",
["Tiếng Ý"] = "it",
["Tiếng Ý-Do Thái"] = "itk",
["Tiếng Đa Đảo hạt nhân nguyên thủy"] = "poz-pnp-pro",
["Tiếng Đa Đảo nguyên thủy"] = "poz-pol-pro",
["Tiếng Đa Đảo Đông nguyên thủy"] = "poz-pep-pro",
["Tiếng Đan Mạch"] = "da",
["Tiếng Đan Mạch cổ"] = "gmq-oda",
["Tiếng Đài Sơn"] = "zhx-tai",
["Tiếng Đông Abenaki"] = "aaq",
["Tiếng Đông Acipa"] = "acp",
["Tiếng Đông Bontoc"] = "ebk",
["Tiếng Đông Bắc Kavkaz nguyên thủy"] = "cau-nec-pro",
["Tiếng Đông Can"] = "dng",
["Tiếng Đông Futuna"] = "fud",
["Tiếng Đông Hương"] = "sce",
["Tiếng Đông Kayah"] = "eky",
["Tiếng Đông Khanty"] = "kca-eas",
["Tiếng Đông Yugur"] = "yuy",
["Tiếng Đường Uông"] = "zhx-twa",
["Tiếng Đại Tây Dương–Congo nguyên thủy"] = "alv-pro",
["Tiếng Độc Long"] = "duu",
["Tiếng Động-Thủy nguyên thủy"] = "qfa-kms-pro",
["Tiếng Đức"] = "de",
["Tiếng Đức Alemanni"] = "gsw",
["Tiếng Đức Pennsylvania"] = "pdc",
["Tiếng Đức cao địa cổ"] = "goh",
["Tiếng Đức cao địa trung đại"] = "gmh",
["Tiếng Đức Đông Trung"] = "gmw-ecg",
["Tiếng Ơ Đu"] = "tyh",
["Tiếng Ưu Miền"] = "ium",
["Tiếng ǃXóõ"] = "nmn",
["Tiếng Ả Rập"] = "ar",
["Tiếng Ả Rập Ai Cập"] = "arz",
["Tiếng Ả Rập Algérie"] = "arq",
["Tiếng Ả Rập Andalusia"] = "xaa",
["Tiếng Ả Rập Bắc Levant"] = "apc",
["Tiếng Ả Rập Bắc Lưỡng Hà"] = "ayp",
["Tiếng Ả Rập Hijazi"] = "acw",
["Tiếng Ả Rập Iraq"] = "acm",
["Tiếng Ả Rập Juba"] = "pga",
["Tiếng Ả Rập Libya"] = "ayl",
["Tiếng Ả Rập Maroc"] = "ary",
["Tiếng Ả Rập Nam Levant"] = "ajp",
["Tiếng Ả Rập Oman"] = "acx",
["Tiếng Ả Rập Sudan"] = "apd",
["Tiếng Ả Rập Síp"] = "acy",
["Tiếng Ả Rập Tajikistan"] = "abh",
["Tiếng Ả Rập Tchad"] = "shu",
["Tiếng Ả Rập Tunisia"] = "aeb",
["Tiếng Ả Rập Uzbekistan"] = "auz",
["Tiếng Ả Rập vùng Vịnh"] = "afb",
["Tiếng Ấn-Arya nguyên thủy"] = "inc-pro",
["Tiếng Ấn-Iran nguyên thủy"] = "iir-pro",
["Tiếng Ấn-Âu nguyên thủy"] = "ine-pro",
["Tiếng Ỹaroamë"] = "yro",
["Àhàn"] = "ahn",
["Áncá"] = "acb",
["Ömie"] = "aom",
["Đa ngữ"] = "mul",
["ǀXam"] = "xam",
["ǁAni"] = "hnh",
["ǁGana"] = "gnk",
["ǁXegwi"] = "xeg",
["ǂHoan"] = "huc",
["ǃKung"] = "khi-kun",
}
ojqf6gcu8v00l9oekjvft6zq1ka7wts
asun
0
274663
2570157
2157004
2026-10-13T09:27:09Z
Hiyuune
50834
2570157
wikitext
text/x-wiki
=={{langname|kxs}}==
==={{section|etym}}===
Từ {{inherited|kxs|xgn-pro|*aduusun}}.
==={{section|n}}===
{{head|kxs|Danh từ}}
# [[gia súc|Gia súc]].
==={{section|ref}}===
* {{cite-book|last=Hans |first=Nugteren |title=Mongolic Phonology and the Qinghai-Gansu Languages |year=2011 |publisher=Universiteit Leiden |url=https://www.lotpublications.nl/Documents/289_fulltext.pdf |isbn=978-94-6093-070-6}}
=={{langname|fi}}==
==={{section|etym}} 1===
===={{section|n}}====
{{head|fi|Biến thể hình thái danh từ}}
# {{infl of|fi|asu||gen|s}}
==={{section|etym}} 2===
===={{section|v}}====
{{head|fi|Biến thể hình thái danh từ}}
# {{verb form of|fi|asua||ind|pres|ở|1|s}}
==={{section|ana}}===
* {{anagrams|fi|a=ansu|anus|nasu|suan|suna}}
=={{langname|sce}}==
==={{section|etym}}===
Từ {{inherited|sce|xgn-pro|*aduusun}}.
==={{section|pron}}===
* {{IPA|sce|/asuŋ/}}
==={{section|n}}===
{{head|sce|Danh từ}}
# [[động vật|Động vật]] (nói chung).
# [[gia súc|Gia súc]].
===={{section|syn}}====
* {{l|sce|chusheng}}
* {{l|sce|hherwa}}
* {{l|sce|howoer}}
aefm1n799dldl8qpjnbfhe4o6u2i1p3
2570160
2570157
2026-10-13T09:29:43Z
Hiyuune
50834
2570160
wikitext
text/x-wiki
=={{langname|eu}}==
{{wp|eu:}}
[[Image:Illustration_Urtica_dioica0.jpg|thumb|asun]]
==={{section|pron}}===
{{eu-pr|+<audio:LL-Q8752 (eus)-Xabier Cañas-asun.wav>}}
==={{section|n}}===
{{head|eu|Danh từ}}
# [[tầm ma|Tầm ma]].
#: {{syn|eu|osin}}
===={{section|decl}}====
{{eu-ndecl|in}}
==={{section|further}}===
* {{R:eu:EH}}
* {{R:eu:OEH}}
{{C|eu|Plants}}
=={{langname|kxs}}==
==={{section|etym}}===
Từ {{inherited|kxs|xgn-pro|*aduusun}}.
==={{section|n}}===
{{head|kxs|Danh từ}}
# [[gia súc|Gia súc]].
==={{section|ref}}===
* {{cite-book|last=Hans |first=Nugteren |title=Mongolic Phonology and the Qinghai-Gansu Languages |year=2011 |publisher=Universiteit Leiden |url=https://www.lotpublications.nl/Documents/289_fulltext.pdf |isbn=978-94-6093-070-6}}
=={{langname|fi}}==
==={{section|etym}} 1===
===={{section|n}}====
{{head|fi|Biến thể hình thái danh từ}}
# {{infl of|fi|asu||gen|s}}
==={{section|etym}} 2===
===={{section|v}}====
{{head|fi|Biến thể hình thái danh từ}}
# {{verb form of|fi|asua||ind|pres|ở|1|s}}
==={{section|ana}}===
* {{anagrams|fi|a=ansu|anus|nasu|suan|suna}}
=={{langname|sce}}==
==={{section|etym}}===
Từ {{inherited|sce|xgn-pro|*aduusun}}.
==={{section|pron}}===
* {{IPA|sce|/asuŋ/}}
==={{section|n}}===
{{head|sce|Danh từ}}
# [[động vật|Động vật]] (nói chung).
# [[gia súc|Gia súc]].
===={{section|syn}}====
* {{l|sce|chusheng}}
* {{l|sce|hherwa}}
* {{l|sce|howoer}}
d28bbqv4n7cdgfvpngemzmaozi8kadz
biigi
0
283411
2569944
2105281
2026-10-12T14:58:46Z
WhoAlone
40420
2569944
wikitext
text/x-wiki
{{-yuy-}}
{{-noun-}}
{{pn}}
# [[chăn]].
{{-ref-}}
* Juha Janhunen, ''The Mongolic Languages'' (2006) {{ISBN|1135796904}}
[[Thể loại:Danh từ tiếng Đông Yugur]]
{{c|yuy|Hàng gia dụng}}
0qh3jt045wyh0wpd9kjz9wlrhwzahz6
bodo
0
283441
2569942
2105333
2026-10-12T14:58:11Z
WhoAlone
40420
2569942
wikitext
text/x-wiki
{{-yuy-}}
{{-noun-}}
{{pn}}
# [[hươu]].
{{-ref-}}
* Juha Janhunen, ''The Mongolic Languages'' (2006) {{ISBN|1135796904}}
[[Thể loại:Danh từ tiếng Đông Yugur]]
{{c|yuy|Bộ Guốc chẵn}}
7gaikdhi40jym1iwnw1a2t698wz9aqr
belwisin
0
283462
2569947
2136939
2026-10-12T15:00:12Z
WhoAlone
40420
2569947
wikitext
text/x-wiki
{{-yuy-}}
{{-etym-}}
{{inh+|yuy|xgn-pro|*belbisün}}.
{{-noun-}}
{{head|yuy|Danh từ}}
# [[góa phụ]].
{{-ref-}}
* Juha Janhunen, ''The Mongolic Languages'' (2006) {{ISBN|1135796904}}
{{c|yuy|Mọi người}}
90lu0qbqfah8u6c8xwklmyqtt2xwg83
Mô đun:ru-verb
828
283801
2570056
2569422
2026-10-13T04:03:10Z
Hiyuune
50834
2570056
Scribunto
text/plain
--[=[
This module contains functions for creating inflection tables for Russian
verbs.
Author: Benwing, rewritten from early version by Atitarev, earliest version by CodeCat
NOTE: This module is partly converted to support manual translit, in the
form CYRILLIC//LATIN (i.e. with a // separating the Cyrillic and Latin
parts). All the general infrastructure supports manual translit; the
only thing that doesn't is some of the specific verb conjugation functions.
In particular, all of the class 1, 2, 3 and 4 conjugation functions support
manual translit, and the rest don't. To convert another, follow the
model of one of the already-converted functions.
Note that an individual form (an entry in the 'forms' table) can be
either a string (no special manual translit; generally this originates
from the portion of the code that doesn't support manual translit), or
a one-element list {CYRILLIC} (no special manual translit), or a
two-element list {CYRILLIC, LATIN} with manual translit specified.
The code is careful only to generate manual translit when it's needed,
to avoid penalizing the majority of cases where manual transit isn't
needed.
]=]
local m_str_utils = require("Module:string utilities")
local m_utilities = require("Module:utilities")
local m_table = require("Module:table")
local m_links = require("Module:links")
local com = require("Module:ru-common")
local m_debug = require("Module:debug")
local m_table_tools = require("Module:table tools")
-- If enabled, compare this module with new version of module to make
-- sure all conjugations are the same.
local test_new_ru_verb_module = false
local export = {}
-- Within this module, conjugations are the functions that do the actual
-- conjugating by creating the forms of a basic verb.
-- They are defined further down.
local conjugations = {}
local lang = require("Module:languages").getByCode("ru")
local u = m_str_utils.char
local rfind = m_str_utils.find
local rsubn = m_str_utils.gsub
local rmatch = m_str_utils.match
local rsplit = m_str_utils.split
local usub = m_str_utils.sub
local AC = u(0x0301) -- acute = ́
local DIA = u(0x0308) -- diaeresis = ̈
local PSEUDOCONS = u(0xFFF2) -- pseudoconsonant placeholder, matching ru-common
local IRREG = "△"
-- version of rsubn() that discards all but the first return value
local function rsub(term, foo, bar)
local retval = rsubn(term, foo, bar)
return retval
end
-- version of rsubn() that returns a 2nd argument boolean indicating whether
-- a substitution was made.
local function rsubb(term, foo, bar)
local retval, nsubs = rsubn(term, foo, bar)
return retval, nsubs > 0
end
-- Fancy version of ine() (if-not-empty). Converts empty string to nil,
-- but also strips leading/trailing space and then single or double quotes,
-- to allow for embedded spaces.
local function ine(arg)
if not arg then return nil end
arg = rsub(arg, "^%s*(.-)%s*$", "%1")
if arg == "" then return nil end
local inside_quotes = rmatch(arg, '^"(.*)"$')
if inside_quotes then
return inside_quotes
end
inside_quotes = rmatch(arg, "^'(.*)'$")
if inside_quotes then
return inside_quotes
end
return arg
end
local function is_vowel_stem(stem)
return rfind(stem, "[" .. com.vowel .. AC .. DIA .. "]$")
end
-- Return the next number to use as an internal note symbol, starting at 1.
-- We look at existing internal notes to see if the symbol is already used.
local function next_note_symbol(data)
local nextsym = 1
while true do
local sym_already_seen = false
for _, note in ipairs(data.internal_notes) do
if rfind(note, "^" .. nextsym .. " ") then
sym_already_seen = true
break
end
end
if sym_already_seen then
nextsym = nextsym + 1
else
break
end
end
return nextsym
end
-- FIXME: Move to utils
-- Iterate over a chain of parameters, FIRST then PREF2, PREF3, ...,
-- inserting into LIST (newly created if omitted). Return LIST.
local function get_arg_chain(args, first, pref, list)
if not list then
list = {}
end
local val = args[first]
local i = 2
while val do
table.insert(list, val)
val = args[pref .. i]
i = i + 1
end
return list
end
-- FIXME: Move to utils
-- Set a chain of parameters, FIRST then PREF2, PREF3, ..., from LIST.
local function set_arg_chain(args, first, pref, list)
local param = first
local i = 2
for _, val in ipairs(list) do
args[param] = val
param = pref .. i
i = i + 1
end
end
local function normalize_form(form)
if type(form) == "table" and m_table.length(form) == 1 then
return form[1]
end
return form
end
-- For a given form in a conjugation table, we allow either strings or
-- two-element lists {RUSSIAN, TRANSLIT}, where TRANSLIT can be nil
-- (equivalent to a one-element list). When comparing them, we have to take
-- this into account.
local function forms_equal(form1, form2)
return m_table.deepEquals(normalize_form(form1), normalize_form(form2))
end
local function contains_form(forms, form)
for _, f in ipairs(forms) do
if forms_equal(f, form) then
return true
end
end
return false
end
-- FIXME: Move to utils
-- Append to the end of a chain of parameters, FIRST then PREF2, PREF3, ...,
-- if the value isn't already present.
local function append_to_arg_chain(args, first, pref, newval)
local nextarg = first
local i = 2
if newval == "" then
error("Internal error: attempt to insert blank value into arg chain")
end
while true do
if not args[nextarg] then break end
if forms_equal(args[nextarg], newval) then
return nil
end
nextarg = pref .. i
i = i + 1
end
args[nextarg] = newval
return nextarg
end
local function get_true_arg(arg, not_off_by_1)
-- We normally move all params down by one because the first param is the
-- verb type; so reflect this correctly if the arg is numeric and
-- not_off_by_1 isn't given
return (not_off_by_1 or type(arg) ~= "number") and arg or arg + 1
end
local function getarg(args, arg, default, paramdesc, not_off_by_1)
paramdesc = paramdesc or "Parameter " .. get_true_arg(arg, not_off_by_1)
default = default or "-"
--PAGENAME = mw.title.getCurrentTitle().text
local NAMESPACE = mw.title.getCurrentTitle().nsText
return args[arg] or (NAMESPACE == "Template" and default) or error(paramdesc .. " has not been provided")
end
local function check_stressed_arg(val, arg)
-- don't consider suffixes
if not rfind(val, "^%-") and not com.is_nonsyllabic(val) and not com.is_stressed(val) then
error("Argument value " .. val .. " (parameter " .. get_true_arg(arg) .. ") must be stressed")
end
return val
end
local function get_stressed_arg(args, arg, default, paramdesc)
local retval = getarg(args, arg, default, paramdesc)
check_stressed_arg(retval, arg)
return retval
end
local function get_opt_stressed_arg(args, arg)
return args[arg] and get_stressed_arg(args, arg) or nil
end
local function check_unstressed_arg(val, arg)
if com.is_stressed(val) then
error("Argument value " .. val .. " (parameter " .. get_true_arg(arg) .. ") should not be stressed")
end
return val
end
local function get_unstressed_arg(args, arg, default, paramdesc)
local retval = getarg(args, arg, default, paramdesc)
check_unstressed_arg(retval, arg)
return retval
end
local function get_opt_unstressed_arg(args, arg)
return args[arg] and get_unstressed_arg(args, arg) or nil
end
local function no_stray_args(args, maxarg)
for i=(maxarg + 1), 20 do
if args[i] then
error("Value for argument " .. get_true_arg(i) .. " not allowed ("
.. args[i] .. " supplied)")
end
end
end
-- Extract a form spec (either a single string or a two-element table {RU, TR}
-- into the component Russian and transliterated components. Normally, if
-- an explicit manual translit wasn't given, the resulting translit will be
-- nil; but if ALWAYS_TRANSLIT is given, it will be auto-transliterated from
-- the Russian as needed.
local function extract_russian_tr(form, always_translit)
local ru, tr
if type(form) == "table" then
ru, tr = form[1], form[2]
else
ru = form
end
if not tr and always_translit then
tr = ru and com.translit(ru)
end
return ru, tr
end
local function strip_arg_status_prefix(arg)
if not arg then
return arg, ""
end
local subbed
arg, subbed = rsubb(arg, "^awkward%-", "")
if subbed then
return arg, "awkward-"
end
arg, subbed = rsubb(arg, "^none%-", "")
if subbed then
return arg, "none-"
end
return arg, ""
end
local function track(page)
m_debug.track("ru-verb/" .. page)
return true
end
-- Forward functions
local present_e_a
local present_e_b
local present_e_c
local present_je
local present_i
local make_reflexive
local make_pre_reform
local parse_and_stress_override
local handle_forms_and_overrides
local finish_generating_forms
local make_table
local all_verb_types = {
"pf", "pf-intr", "pf-refl",
"pf-impers", "pf-intr-impers", "pf-refl-impers",
"impf", "impf-intr", "impf-refl",
"impf-impers", "impf-intr-impers", "impf-refl-impers"}
-- Examples of alternatives in use:
-- past_m2: со́здал/созда́л, пе́редал/переда́л, о́тдал/отда́л, при́нялся/принялся́
-- past_m3: for verbs with three past masculine sg forms: за́нялся, заня́лся, занялс́я (заня́ться)
-- past_n2: да́ло, дал́о; вз́яло, взяло́
-- past_pl2: разобрали́сь (разобрали́)
-- past_m_short: short forms in 3a (исчез, сох, etc.)
-- past_f_short: short forms in 3a (исчезла, сохла, etc.)
-- past_n_short: short forms in 3a (исчезло, сохло, etc.)
-- past_pl_short: short forms in 3a (исчезли, сохли, etc.)
-- past_adv_parts:
-- тереть: тере́вши, тёрши, short: тере́в
-- умереть: умере́вши, у́мерши, short: умере́в
-- pres_adv_part: сыпля, сыпя, лёжа (лежать)
-- pres_2sg2: сыплешь, сыпешь
-- pres_3sg2: сыплет, сыпет
-- pres_1pl2: сыплем, сыпем
-- pres_2pl2: сыплете, сыпете
-- pres_3pl2: сыплют, сыпют
-- futr_2sg2: насыплешь, насыпешь
-- futr_3sg2: насыплет, насыпет
-- futr_1pl2: насыплем, насыпем
-- futr_2pl2: насыплете, насыпете
-- futr_3pl2: насыплют, насыпют
-- List of all main verb forms. Short forms (those ending in "_short")
-- must be listed after the corresponding non-short forms.
local all_main_verb_forms = {
-- present tense
"pres_1sg", "pres_2sg", "pres_3sg", "pres_1pl", "pres_2pl", "pres_3pl",
-- future tense
"futr_1sg", "futr_2sg", "futr_3sg", "futr_1pl", "futr_2pl", "futr_3pl",
-- present-future tense. The conjugation functions generate the
-- "present-future" tense instead of either the present or future tense,
-- since the same forms are used in the present imperfect and future
-- perfect. These forms are later copied into the present or future in
-- finish_generating_forms().
"pres_futr_1sg", "pres_futr_2sg", "pres_futr_3sg", "pres_futr_1pl", "pres_futr_2pl", "pres_futr_3pl",
-- imperative
"impr_sg", "impr_pl",
-- past
"past_m", "past_f", "past_n", "past_pl",
"past_m_short", "past_f_short", "past_n_short", "past_pl_short",
-- active participles
"pres_actv_part", "past_actv_part",
-- passive participles
"pres_pasv_part", "past_pasv_part",
-- adverbial participles
"pres_adv_part", "past_adv_part", "past_adv_part_short",
-- infinitive
"infinitive"
}
-- List of all verb forms. Each element is a list, where the first element
-- is the "main" form and the remainder are alternatives. The following
-- *MUST* hold:
-- 1. Forms must be given in the order they will appear in the outputted
-- table.
-- 2. Short forms (those ending in "_short") must be listed after the
-- corresponding non-short forms.
-- 3. For each person, e.g. '2sg', there must be the same number of
-- futr_PERSON, pres_PERSON and pres_futr_PERSON forms, and the alternative
-- forms must be listed in the same order.
--
-- FIXME!!! We should fix things so we no longer need to compute this table.
local all_verb_forms = {}
-- Compile all_verb_forms
for _, mainform in ipairs(all_main_verb_forms) do
local entry = {}
table.insert(entry, mainform)
for i=2,9 do
table.insert(entry, mainform .. i)
end
table.insert(all_verb_forms, entry)
end
local prop_aliases = {
pap="past_actv_part",
paptail="past_actv_part_tail",
paptailall="past_actv_part_tailall",
ppp="past_pasv_part",
ppptail="past_pasv_part_tail",
ppptailall="past_pasv_part_tailall",
prap="pres_actv_part",
praptail="pres_actv_part_tail",
praptailall="pres_actv_part_tailall",
prpp="pres_pasv_part",
prpptail="pres_pasv_part_tail",
prpptailall="pres_pasv_part_tailall",
padp="past_adv_part",
padptail="past_adv_part_tail",
padptailall="past_adv_part_tailall",
padp_short="past_adv_part_short",
padp_shorttail="past_adv_part_short_tail",
padp_shorttailall="past_adv_part_short_tailall",
pradp="pres_adv_part",
pradptail="pres_adv_part_tail",
pradptailall="pres_adv_part_tailall",
}
-- Table mapping "main" to the list of all forms in the series (e.g.
-- past_m, past_m2, past_m3, etc.). If a main form (e.g. past_m) is missing,
-- it needs to end up with a value of "", whereas the alternatives
-- (e.g. past_m2, past_m3) need to end up with a value of nil.
local main_to_all_verb_forms = {}
-- List of the main verb forms for the past.
local past_verb_forms = {"past_m", "past_f", "past_n", "past_pl"}
-- List of the main verb forms for the present.
local pres_verb_forms = {"pres_1sg", "pres_2sg", "pres_3sg",
"pres_1pl", "pres_2pl", "pres_3pl"}
-- List of the main verb forms for the future.
local futr_verb_forms = {"futr_1sg", "futr_2sg", "futr_3sg",
"futr_1pl", "futr_2pl", "futr_3pl"}
-- List of the main verb forms for the imperative.
local impr_verb_forms = {"impr_sg", "impr_pl"}
-- List of the main verb forms for participles.
local part_verb_forms = {"pres_actv_part", "past_actv_part",
"pres_pasv_part", "past_pasv_part",
"pres_adv_part", "past_adv_part", "past_adv_part_short"}
-- List of the main verb forms for present participles.
local pres_part_verb_forms = {"pres_actv_part", "pres_pasv_part",
"pres_adv_part"}
-- List of the main verb forms for past participles.
local past_part_verb_forms = {"past_actv_part", "past_pasv_part",
"past_adv_part", "past_adv_part_short"}
-- Compile main_to_all_verb_forms.
for _, proplist in ipairs(all_verb_forms) do
main_to_all_verb_forms[proplist[1]] = proplist
end
-- Map listing the forms to be displayed, and the verb forms used to generate
-- the displayed form, in order. For example, under past_m will be found
-- {"past_m_short", "past_m", "past_m2", "past_m3"} because those forms in
-- that order are displayed in the table under "masculine singular past".
local disp_verb_form_map = {}
for _, proplist in ipairs(all_verb_forms) do
local key = proplist[1]
-- if we find short forms, insert them at the beginning of the list for
-- the corresponding full forms. This requires that short forms are
-- listed in all_verb_forms after the corresponding full forms.
if rfind(key, "_short$") then
local full_key = rsub(key, "_short$", "")
-- short forms should occur in list after full forms
assert(#(disp_verb_form_map[full_key]) > 0)
-- build entry for full form, consisting first of the short forms,
-- in order, then the full forms, in order.
local new_entry = {}
for _, form in ipairs(proplist) do
table.insert(new_entry, form)
end
for _, form in ipairs(disp_verb_form_map[full_key]) do
table.insert(new_entry, form)
end
disp_verb_form_map[full_key] = new_entry
elseif rfind(key, "^pres_futr") then
-- skip these forms, not displayed
else
disp_verb_form_map[key] = mw.clone(proplist)
end
end
local all_verb_props = mw.clone(all_verb_forms)
local non_form_props = {"title", "perf", "intr", "impers", "categories", "notes", "internal_notes"}
for _, prop in ipairs(non_form_props) do
table.insert(all_verb_props, {prop})
end
-- Clone parent's args while also assigning nil to empty strings and splitting
-- arg sets (numeric args separated by "or"), assigning named args to
-- all all sets. Handle aliases in the process. Extract conjugation type
-- from the first arg of the arg set (for the initial arg set, this will be
-- arg 2 because arg 1 is the verb type), assigning to '.conj_type' of the
-- arg set. Return arg sets.
local function split_args_handle_aliases(frame)
local args = frame:getParent().args
local arg_sets = {}
local arg_set = {}
-- Verb type, e.g. impf, pf, impf-intr, pf-intr, impf-refl, pf-refl, etc.
-- Default to impf on the template page so that there is no script error.
local verb_type = getarg(args, 1, "impf", "Verb type (first parameter)")
local offset = 1
-- Find maximum-numbered arg, allowing for holes.
local max_arg = 1 -- needs to be 1 not 0 so template pages display ok
for pname in pairs(args) do
if type(pname) == "number" and pname > max_arg then
max_arg = pname
end
end
-- Now gather the numbered arguments.
for i=2,(max_arg + 1) do
local end_arg_set = false
if i == max_arg + 1 or args[i] == "or" then
end_arg_set = true
end
if end_arg_set then
table.insert(arg_sets, arg_set)
arg_set = {}
offset = i
else
arg_set[i - offset] = ine(args[i])
end
end
-- Insert named arguments into all arg sets, mapping aliases appropriately.
for pname, param in pairs(args) do
if type(pname) == "string" then
local argval = ine(param)
local mainprop, num = rmatch(pname, "^([a-z_]+)([0-9]*)$")
for i=1,#arg_sets do
if not mainprop then
arg_sets[i][pname] = argval
else
mainprop = prop_aliases[mainprop] or mainprop
arg_sets[i][mainprop .. num] = argval
end
end
end
end
-- If we're conjugating a suffix, insert a pseudoconsonant at the beginning
-- of all forms, so they get conjugated as if ending in a consonant.
-- We remove the pseudoconsonant later.
for i=1,#arg_sets do
local asif_prefix = (arg_sets[i]["asif_prefix"] or
arg_sets[i][2] and rfind(arg_sets[i][2], "^%-") and PSEUDOCONS)
if asif_prefix then
for k, v in pairs(arg_sets[i]) do
arg_sets[i][k] = rsub(v, "^%-", "-" .. asif_prefix)
end
end
end
-- Frob conjugation type.
for i=1,#arg_sets do
local arg1 = arg_sets[i][1]
local conj_type
if arg1 then
local orig_arg1 = arg1
-- This complex spec matches matches 3°a, 3oa, 4a1a, 6c1a,
-- 1a6a, 6a1as13, 6a1as14, 11*b, etc.
conj_type = rmatch(arg1, "^([0-9]+[*°o0-9abc]*[abc]s?1?[34]?)")
arg1 = rsub(arg1, "^[0-9]+[*°o0-9abc]*[abc]s?1?[34]?", "")
if not conj_type then
if rfind(arg1, "^irreg") then
conj_type = "irreg"
arg1 = rsub(arg1, "^irreg", "")
end
if not conj_type then
-- Check for Cyrillic, a common mistake (esp. Cyrillic а)
if rfind(orig_arg1, "[абцдеѣфгчийклмнопярстувшхызёюжэщьъ]") then
error("Unrecognized conjugation type (WARNING, has Cyrillic in it): " .. orig_arg1)
else
error("Unrecognized conjugation type: " .. orig_arg1)
end
end
end
-- The * variant is conventionally written e.g. 11*b; if found in
-- the conj_type, move it to the beginning of the remainder
if rfind(conj_type, "%*") then
conj_type = rsub(conj_type, "%*", "")
arg1 = "*" .. arg1
end
arg_sets[i][1] = arg1
else
local NAMESPACE = mw.title.getCurrentTitle().nsText
if NAMESPACE == "Template" and i == 1 then
conj_type = "1a"
else
error("Must specify argument 2 (conjugation type)")
end
end
arg_sets[i]["conj_type"] = conj_type
end
return arg_sets, verb_type
end
function export.do_generate_forms(arg_sets, verb_type, old)
local set1 = arg_sets[1]
local notes = get_arg_chain(set1, "notes", "notes")
local forms = {}
local categories = {}
if not m_table.contains(all_verb_types, verb_type) then
error("Invalid verb type " .. verb_type)
end
local data = {}
data.verb_type = verb_type
--impersonal
data.impers = rfind(verb_type, "impers")
data.intr = rfind(verb_type, "intr")
data.perf = rfind(verb_type, "^pf")
data.iter = set1["iter"]
data.nopres = set1["nopres"]
data.nopast = set1["nopast"]
data.nofutr = set1["nofutr"]
data.noimpr = set1["noimpr"]
if data.iter and data.perf then
error("Iterative verbs must be imperfective")
end
data.old = old
data.has_ppp = set1["has_ppp"]
data.has_prpp = set1["has_prpp"]
data.ppp_override = false
data.prpp_override = false
for _, form in ipairs(main_to_all_verb_forms["past_pasv_part"]) do
if set1[form] then
data.ppp_override = true
break
end
end
data.main_ppp_override = not not set1["past_pasv_part"]
for _, form in ipairs(main_to_all_verb_forms["pres_pasv_part"]) do
if set1[form] then
data.prpp_override = true
break
end
end
data.internal_notes = {}
local titles = {}
for i=1,#arg_sets do
local args = arg_sets[i]
local conj_type = args.conj_type
-- Support e.g. 3oa in place of 3°a
conj_type = rsub(conj_type, "o", "°")
track("conj-" .. conj_type) -- FIXME, convert to regular category
track("conj-" .. conj_type .. "/" .. verb_type) -- FIXME, convert to regular category
data.conj_type = conj_type
data.cat_conj_types = {conj_type}
if conj_type == "irreg" then
data.title = "irregular"
else
data.title = conj_type
end
if not conjugations[conj_type] then
error("Unknown conjugation type '" .. conj_type .. "'")
end
if args[2] then
local inf, tr = com.split_russian_tr(args[2])
if rfind(inf, "[тч]ься$") then
inf = rsub(inf, "ся$", "")
tr = com.strip_tr_ending(tr, "ся")
data.refl = true
elseif rfind(inf, "ти́?сь$") then
-- 7a (вы́вестись), 7b (вести́сь) or derivative of -йти́ (разойти́сь)
inf = rsub(inf, "сь$", "")
tr = com.strip_tr_ending(tr, "сь")
data.refl = true
elseif rfind(inf, "[тч]ь$") then
-- Allow monosyllabic infinitives to be specified without stress
if com.is_monosyllabic(inf) and not rfind(inf, "^%-") then
inf, tr = com.make_ending_stressed(inf, tr)
end
end
if tr then
args[2] = inf .. "//" .. tr
else
args[2] = inf
end
end
if data.refl and data.intr then
error("Can't specify -intr with reflexive verbs")
end
if data.has_ppp or data.has_prpp then
if data.refl then
error("Can't specify has_ppp=y or has_prpp=y with reflexive verbs")
end
if not data.intr then
error("Can only specify has_ppp=y or has_prpp=y with intransitive verbs")
end
end
data.shouldnt_have_ppp = data.refl or not data.has_ppp and data.intr
data.shouldnt_have_prpp = data.refl or not data.has_prpp and data.intr
if data.ppp_override and data.shouldnt_have_ppp then
error("Shouldn't specify past passive participle with reflexive or intransitive verbs, if it's needed use has_ppp=y")
elseif data.perf and not data.shouldnt_have_ppp and not data.ppp_override then
-- possible omissions
track("perfective-no-ppp")
end
if data.prpp_override and data.shouldnt_have_prpp then
error("Shouldn't specify present passive participle with reflexive or intransitive verbs, if it's needed use has_prpp=y")
end
-- Call conjugation function. It will return a table of forms
-- as if it's the first arg set. If it is in fact the first
-- arg set, we just use the table directly (we may destructively
-- modify it if there are later arg sets, but this is OK because
-- no one else but us uses the table). Otherwise we need to
-- append the values from the table to those of the previous
-- arg sets.
local arg_set_forms = conjugations[conj_type](args, data)
if i == 1 then
forms = arg_set_forms
else
for _, all_forms in pairs(main_to_all_verb_forms) do
for _, form in ipairs(all_forms) do
if arg_set_forms[form] then
append_to_arg_chain(forms, all_forms[1], all_forms[1],
arg_set_forms[form])
end
end
end
end
m_table.insertIfNot(titles, data.title)
if conj_type == "irreg" then
table.insert(categories, "Russian irregular verbs")
end
-- For irregular verbs, if the verb didn't set a specific cat_conj_type,
-- it will be the same as the conj_type and be "irreg". In that case,
-- replace it with the title, which might be a proper conjugation type
-- like 4a or 8c/b (and remove anything starting with a slash, to
-- account for cases like 8c/b). After doing this, the cat_conj_type
-- might still begin with "irreg" (for sufficiently irregular verbs that
-- they can't be assigned to any of the normal classes), in which case
-- we don't create a class for the verb beyond "Russian irregular verbs"
-- (set above).
if data.cat_conj_types[1] == "irreg" then
data.cat_conj_types = {rsub(rsub(data.title, "/.*", ""), "[*⑨]", "")}
end
for _, cat_conj_type in ipairs(data.cat_conj_types) do
if not rmatch(cat_conj_type, "^irreg") then
local class_num = rmatch(cat_conj_type, "^([0-9]+)")
assert(class_num and class_num ~= "")
table.insert(categories, "Động từ lớp " .. class_num .. " tiếng Nga")
table.insert(categories, "Động từ lớp " .. cat_conj_type .. " tiếng Nga")
end
end
end
data.title = "lớp " .. table.concat(titles, " // ") ..
(data.perf and ", thể hoàn thành" or ", thể chưa hoàn thành") ..
(data.refl and " phản thân" or data.intr and ", nội động từ" or ", ngoại động từ") ..
(data.impers and " không ngôi" or "") ..
(data.iter and " lặp đi lặp lại" or "")
-- Perfective/imperfective
if data.perf then
table.insert(categories, "Động từ hoàn thành tiếng Nga")
else
table.insert(categories, "Động từ chưa hoàn thành tiếng Nga")
end
handle_forms_and_overrides(set1, forms, data)
local function remove_pseudo(str)
local toremove = set1["asif_prefix"] or PSEUDOCONS
if str == nil then
return str
end
str = rsub(str, "^%-" .. toremove, "-")
-- also handle prefix after space, e.g. in futures
str = rsub(str, " %-" .. toremove, " -")
return str
end
-- Remove pseudoconsonant we may have inserted; if no ending, insert
-- "(no suffix)".
for k in pairs(forms) do
if forms[k] == "-" .. PSEUDOCONS or type(forms[k] == "table") and forms[k][1] == "-" .. PSEUDOCONS then
-- Make the translit empty.
forms[k] = {"(no suffix)", ""}
else
if type(forms[k]) == "table" then
forms[k][1] = remove_pseudo(forms[k][1])
forms[k][2] = remove_pseudo(forms[k][2])
else
forms[k] = remove_pseudo(forms[k])
end
end
end
-- Catch errors in verb arguments that lead to the infinitive not matching
-- page title, but only in the main namespace.
local NAMESPACE = mw.title.getCurrentTitle().nsText
if NAMESPACE == "" then
local PAGENAME = mw.title.getCurrentTitle().text
for _, form in ipairs(main_to_all_verb_forms["infinitive"]) do
local inf = extract_russian_tr(forms[form])
if inf then
inf, _ = m_table_tools.separate_notes(inf) -- remove any footnote symbols (e.g. грясти́)
local inf_noaccent = com.remove_accents(inf)
if inf ~= "-" then
if data.refl then
if rfind(inf_noaccent, "и$") then
inf_noaccent = inf_noaccent .. "сь"
inf = inf .. "сь"
else
inf_noaccent = inf_noaccent .. "ся"
inf = inf .. "ся"
end
end
if inf_noaccent ~= PAGENAME then
error("Infinitive " .. inf .. " doesn't match pagename " ..
PAGENAME)
end
end
end
end
end
-- Reflexive/intransitive/transitive
if set1["reflex_stress"] then
track("reflex-stress")
end
if data.refl then
local reflex_stress = set1["reflex_stress"] or data.default_reflex_stress -- "ся́"
make_reflexive(forms, reflex_stress and reflex_stress ~= "n" and
reflex_stress ~= "no")
table.insert(categories, "Động từ phản thân tiếng Nga")
elseif data.intr then
table.insert(categories, "Nội động từ tiếng Nga")
else
table.insert(categories, "Ngoại động từ tiếng Nga")
end
-- Impersonal
if data.impers then
table.insert(categories, "Động từ không ngôi tiếng Nga")
end
-- Iterative
if data.iter then
table.insert(categories, "Động từ lặp đi lặp lại tiếng Nga")
end
if data.old then
make_pre_reform(forms)
end
finish_generating_forms(forms, data)
return forms, data.title, data.perf, data.intr or data.refl, data.impers, categories, notes, data.internal_notes
end
local function fetch_forms(forms)
local function fetch_one_form(form)
local val = forms[form]
local ru, tr
if type(val) == "table" then
ru, tr = val[1], val[2]
elseif type(val) == "string" and val ~= "" and val ~= "-" then
ru = val
end
if not ru then
return nil
end
local ruentry = m_table_tools.separate_and_superscript_notes(ru)
local trentry, trnotes
if tr then
trentry, trnotes = m_table_tools.separate_and_superscript_notes(tr)
end
-- There shouldn't be any links.
-- ruentry = m_links.remove_links(ruentry)
-- There shouldn't be any vertical bars.
-- ruentry = rsub(ruentry, "|", "<!>")
-- if trentry then
-- trentry = rsub(trentry, "|", "<!>")
-- end
return trentry and ruentry .. "//" .. trentry or ruentry
end
local vals = {}
for _, proplist in ipairs(all_verb_forms) do
local vallist = {}
local propname = proplist[1]
if not rfind(propname, "^pres_futr") then
for _, prop in ipairs(proplist) do
local val = fetch_one_form(prop)
if val then
table.insert(vallist, val)
end
end
if #vallist > 0 then
table.insert(vals, propname .. "=" .. table.concat(vallist, ","))
end
end
end
return table.concat(vals, "|")
end
function export.generate_forms(frame)
local arg_sets, verb_type = split_args_handle_aliases(frame)
local old = frame.args["old"] or arg_sets[1]["old"]
local forms = export.do_generate_forms(arg_sets, verb_type, old)
return fetch_forms(forms)
end
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
local arg_sets, verb_type = split_args_handle_aliases(frame)
local old = frame.args["old"] or arg_sets[1]["old"]
local arg_sets_clone
if test_new_ru_verb_module then
-- arg_sets may be modified by do_generate_forms()
arg_sets_clone = mw.clone(arg_sets)
end
local forms, title, perf, intr, impers, categories, notes, internal_notes =
export.do_generate_forms(arg_sets, verb_type, old)
-- Test code to compare existing module to new one.
if test_new_ru_verb_module then
local m_new_ru_verb = require("Module:User:Benwing2/ru-verb")
local newforms, newtitle, newperf, newintr, newimpers, newcategories, newnotes, newinternal_notes =
m_new_ru_verb.do_generate_forms(arg_sets_clone, verb_type, old)
local vals = mw.clone(forms)
vals.title = title
vals.perf = perf
vals.intr = intr
vals.impers = impers
vals.categories = categories
vals.notes = notes
vals.internal_notes = internal_notes
local newvals = mw.clone(newforms)
newvals.title = newtitle
newvals.perf = newperf
newvals.intr = newintr
newvals.impers = newimpers
newvals.categories = newcategories
newvals.notes = newnotes
newvals.internal_notes = newinternal_notes
local difconj = false
for _, proplist in ipairs(all_verb_props) do
for _, prop in ipairs(proplist) do
local val = vals[prop]
local newval = newvals[prop]
-- deal with impedance mismatch between old style (plain string)
-- and new style (Russian/translit array), and empty string vs. nil
if not m_table.contains(non_form_props, prop) then
if type(val) == "string" then val = {val} end
if val and val[1] == "" then val = nil end
if type(newval) == "string" then newval = {newval} end
if newval and newval[1] == "" then newval = nil end
end
-- Ignore changes in pres_futr_*, which aren't displayed
if not forms_equal(val, newval) and not rfind(prop, "^pres_futr") then
-- Uncomment this to display the particular case and
-- differing forms.
--error(prop .. " " .. (val and concat_vals(val) or "nil") .. " || " .. (newval and concat_vals(newval) or "nil"))
difconj = true
break
end
end
end
track(difconj and "different-conj" or "same-conj")
end
return make_table(forms, title, perf, intr, impers, notes, internal_notes, old) .. m_utilities.format_categories(categories, lang)
end
--[=[
Functions for working with stems, paradigms, Russian/translit
]=]
-- Combine a stem with optional translit with an ending and possibly a foonote
-- symbol (which may be a tuple {RUNOTES, TRNOTES}), returning a tuple
-- {RUSSIAN, TR}.
local function combine(stem, tr, ending, note)
if not ending or ending == "-" then
return nil
end
local arg_status
ending, arg_status = strip_arg_status_prefix(ending)
if stem ~= "" and com.is_stressed(ending) then
stem, tr = com.make_unstressed_once(stem, tr)
end
stem = arg_status .. stem
if not note then
return com.concat_russian_tr(stem, tr, ending, nil, "dopair")
else
local runotes, trnotes = extract_russian_tr(note)
local ruending, trending = com.concat_russian_tr(ending, nil, runotes, trnotes)
return com.concat_russian_tr(stem, tr, ruending, trending, "dopair")
end
end
-- Set an individual form PARAM in FORMS with value based on stem STEM (with
-- optional translit TR), ENDINGS (either a single string or a list of strings)
-- and NOTE (nil, a string, or a tuple {RUSSIAN, TR}). If there are multiple
-- endings listed, they will go successively into PARAM, PARAM2, etc.
-- (e.g. past_m, past_m2, etc.).
local function set_form(forms, param, stem, tr, endings, note)
if type(endings) ~= "table" then
endings = {endings}
end
local entries = {}
for _, val in ipairs(endings) do
m_table.insertIfNot(entries, combine(stem, tr, val, note))
end
set_arg_chain(forms, param, param, entries)
end
-- Append to an individual form PARAM in FORMS with value based on stem STEM
-- (with optional translit TR), ENDINGS (either a single string or a list of
-- strings) and NOTE (nil, a string, or a tuple {RUSSIAN, TR}). If there are
-- multiple endings listed, they will go successively into PARAM, PARAM2, etc.
-- (e.g. past_m, past_m2, etc.), provided there are no existing forms already
-- present. Duplicate forms aren't inserted.
local function append_form(forms, param, stem, tr, endings, note)
if type(endings) ~= "table" then
endings = {endings}
end
for _, val in ipairs(endings) do
append_to_arg_chain(forms, param, param, combine(stem, tr, val, note))
end
end
local function append_pres_futr(forms, stem, tr,
sg1, sg2, sg3, pl1, pl2, pl3, note)
append_form(forms, "pres_futr_1sg", stem, tr, sg1, note)
append_form(forms, "pres_futr_2sg", stem, tr, sg2, note)
append_form(forms, "pres_futr_3sg", stem, tr, sg3, note)
append_form(forms, "pres_futr_1pl", stem, tr, pl1, note)
append_form(forms, "pres_futr_2pl", stem, tr, pl2, note)
append_form(forms, "pres_futr_3pl", stem, tr, pl3, note)
end
local function append_participles_2stem(forms,
pres_stem, pres_tr, past_stem, past_tr,
pres_actv, pres_pasv, pres_adv, past_actv, past_adv, past_adv_short,
pres_note, past_note)
append_form(forms, "pres_actv_part", pres_stem, pres_tr, pres_actv, pres_note)
append_form(forms, "pres_pasv_part", pres_stem, pres_tr, pres_pasv, pres_note)
append_form(forms, "pres_adv_part", pres_stem, pres_tr, pres_adv, pres_note)
append_form(forms, "past_actv_part", past_stem, past_tr, past_actv, past_note)
append_form(forms, "past_adv_part", past_stem, past_tr, past_adv, past_note)
append_form(forms, "past_adv_part_short", past_stem, past_tr, past_adv_short, past_note)
end
local function append_participles(forms, stem, tr,
pres_actv, pres_pasv, pres_adv, past_actv, past_adv, past_adv_short, note)
append_participles_2stem(forms, stem, tr, stem, tr,
pres_actv, pres_pasv, pres_adv, past_actv, past_adv, past_adv_short, note, note)
end
local function set_ppp(forms, stem, tr, ending, note)
set_form(forms, "past_pasv_part", stem, tr, ending, note)
end
local function append_ppp(forms, stem, tr, ending, note)
append_form(forms, "past_pasv_part", stem, tr, ending, note)
end
local function append_imper(forms, stem, tr, sg, pl, note)
append_form(forms, "impr_sg", stem, tr, sg, note)
append_form(forms, "impr_pl", stem, tr, pl, note)
end
local function set_past(forms, stem, tr, m, f, n, pl, note)
set_form(forms, "past_m", stem, tr, m, note)
set_form(forms, "past_f", stem, tr, f, note)
set_form(forms, "past_n", stem, tr, n, note)
set_form(forms, "past_pl", stem, tr, pl, note)
end
local function append_past(forms, stem, tr, m, f, n, pl, note)
append_form(forms, "past_m", stem, tr, m, note)
append_form(forms, "past_f", stem, tr, f, note)
append_form(forms, "past_n", stem, tr, n, note)
append_form(forms, "past_pl", stem, tr, pl, note)
end
-- Prepend a possibly-stressed prefix to all forms; if prefix is stressed,
-- destress the forms before prepending. FIXME: Should support explicit
-- manual translit.
local function prepend_prefix(forms, prefix, pre_two_cons_prefix)
pre_two_cons_prefix = pre_two_cons_prefix or prefix
local stressed_prefix = com.is_stressed(prefix)
for key, form in pairs(forms) do
local ru, tr = extract_russian_tr(form)
if tr then
error("Explicit manual translit not yet supported")
end
-- check for empty string, dashes and nil's
if ru and ru ~= "" and ru ~= "-" then
if stressed_prefix then
ru = com.make_unstressed(ru)
end
if rfind(ru, "^[" .. com.cons .. "][" .. com.cons .. "]") then
forms[key] = pre_two_cons_prefix .. ru
else
forms[key] = prefix .. ru
end
end
end
end
-- Apply regex substitution FROM -> TO to all forms. FIXME: Should support
-- explicit manual translit.
local function rsub_forms(forms, from, to)
for key, form in pairs(forms) do
local ru, tr = extract_russian_tr(form)
if tr then
error("Explicit manual translit not yet supported")
end
-- check for empty string, dashes and nil's
if ru and ru ~= "" and ru ~= "-" then
forms[key] = rsub(ru, from, to)
end
end
end
local variant_to_title = {
["[(2)]"] = "[②]",
["(2)"] = "②",
["[(3)]"] = "[③]",
["(3)"] = "③",
["[(4)]"] = "[④]",
["(4)"] = "④",
["[(5)]"] = "[⑤]",
["(5)"] = "⑤",
["[(6)]"] = "[⑥]",
["(6)"] = "⑥",
["[(7)]"] = "[⑦]",
["(7)"] = "⑦",
["[(8)]"] = "[⑧]",
["(8)"] = "⑧",
["(9)"] = "⑨",
["щ"] = "(-щ-)",
["ё"] = "(-ё-)",
["о"] = "(-о-)",
["жд"] = "(-жд-)",
}
local function prepare_past_stress_indicator(past_stress)
if not past_stress or past_stress == "a" then
return ""
end
past_stress = rsub(past_stress, "%(1%)", "①")
past_stress = rsub(past_stress, "(.),%1①", "%1[①]")
past_stress = rsub(past_stress, "(.)①,%1", "%1[①]")
past_stress = rsub(past_stress, "''", "''")
past_stress = rsub(past_stress, "-nd", "")
past_stress = rsub(past_stress, "-bd", "")
return "/" .. past_stress
end
local function parse_variants(data, variants, allowed)
-- Need to set these to nil in case of multiple arg sets
data.imper_variant = nil
data.var4 = nil
data.var5 = nil
data.var6 = nil
data.ppp = nil
data.var9 = nil
data.shch = nil
data.yo = nil
data.o = nil
data.zhd = nil
data.star = nil
variants = variants or ""
local variant_title = ""
if variants ~= "" then -- short-circuit the most common case
-- Only recognize * variant for long-variant prefix at the beginning
-- of the variant code block (where it gets moved if it's in the
-- middle of the conjugation type, as it normally is) because a *
-- also occurs in b*, a past stress variant code.
if rfind(variants, "^%*") then
-- Specify that the present/future tense has extra -о in the prefix:
-- types 9*b (e.g. растере́ть, futr_1sg разотру́) and 11*b (e.g. изли́ть,
-- futr_1sg изолью́). It can also occur with type 7*b (in -че́сть,
-- e.g. счесть, сочту́; расче́сть, разочту́) and type 8*b (in -же́чь, e.g.
-- сжечь, сожгу́) but these are always irregular and require the
-- present tense to be specified explicitly. It can also occur
-- with type 14*b (e.g. размя́ть, разомну́; сжать, сожну́; подожа́ть, подожму́),
-- but for these verbs the present tense is unpredictable and
-- must be specified explicitly.
--
-- This can also occur where the extra -о occurs in the infinitive
-- and past, but not the present tense: type 5*c (in -гна́ть, e.g.
-- согна́ть, сгоню́; разогна́ться, разгоню́сь), type 6*c (in -стла́ть, e.g.
-- подостла́ть, подстелю́; разостла́ть, расстелю́), type 6°*c
-- (in -зва́ть, -бра́ть, -дра́ть, e.g. подозва́ть, подзову́; разобра́ться, разберу́сь);
-- but these are always irregular and require the present tense
-- to be specified explicitly.
if not m_table.contains(allowed, "*") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.star = true
variants = rsub(variants, "^*", "")
end
-- Allow brackets around both 5 and 6, e.g. [(5)(6)]
variants = rsub(variants, "%[(%([56]%))(%([56]%))%]", "[%1][%2]")
-- Handle all remaining variants. We do this using an rsub() function,
-- where we pull out, parse and remove each variant in turn.
variants = rsub(variants, "(%[?%(?[23456789ёощийьж+][дp]?%)?%]?)", function(var)
if m_table.contains({"(2)", "[(2)]", "(3)", "[(3)]", "и", "й", "ь"}, var) then
if data.imper_variant then
error("Saw two imperative variants " .. data.imper_variant ..
" and " .. var)
end
local is_23 = m_table.contains({"(2)", "[(2)]", "(3)", "[(3)]"}, var)
if is_23 and not m_table.contains(allowed, "23") or
not is_23 and not m_table.contains(allowed, "и") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.imper_variant = var
elseif m_table.contains({"(4)", "[(4)]"}, var) then
if data.var4 then
error("Saw two variant-4 specs " .. data.var4 .. " and " .. var)
end
if not m_table.contains(allowed, "4") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.var4 = var == "(4)" and "req" or "opt"
elseif m_table.contains({"(5)", "[(5)]"}, var) then
if data.var5 then
error("Saw two variant-5 specs " .. data.var5 .. " and " .. var)
end
if not m_table.contains(allowed, "5") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.var5 = var == "(5)" and "req" or "opt"
elseif m_table.contains({"(6)", "[(6)]"}, var) then
if data.var6 then
error("Saw two variant-6 specs " .. data.var6 .. " and " .. var)
end
if not m_table.contains(allowed, "6") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.var6 = var == "(6)" and "req" or "opt"
elseif m_table.contains({"(7)", "[(7)]", "(8)", "[(8)]", "+p"}, var) then
if data.shouldnt_have_ppp then
error("Shouldn't specify past passive participle with reflexive or intransitive verbs, if it's needed use has_ppp=y")
end
if data.ppp then
error("Saw two past passive participle specs " .. data.ppp .. " and " .. var)
end
if m_table.contains({"(7)", "[(7)]"}, var) and not m_table.contains(allowed, "7") or
m_table.contains({"(8)", "[(8)]"}, var) and not m_table.contains(allowed, "8") or
var == "+p" and not m_table.contains(allowed, "+p") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.ppp = var
elseif var == "(9)" then
if data.var9 then
error("Saw (9) twice")
end
if not m_table.contains(allowed, "9") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.var9 = true
elseif var == "щ" then
-- specify that the 1sg pres/futr and past passive participle
-- of class 4/5/6 verbs iotate -т to -щ instead of -ч; cf.
-- похи́тить (похи́щу) (4a), защити́ть (защищу́) (4b),
-- поглоти́ть (поглощу́) (4c), клевета́ть (клевещу́) (6c)
if data.shch then
error("Saw щ twice")
end
if not m_table.contains(allowed, "щ") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.shch = "щ"
elseif var == "ё" then
-- specify that the past passive participle has ё instead of е
if data.yo then
error("Saw ё twice")
end
if not m_table.contains(allowed, "ё") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.yo = true
elseif var == "о" then
-- specify that the past passive participle has о instead of е
-- NOTE: Not currently allowed as a user-specifiable variant
if data.o then
error("Saw о twice")
end
if not m_table.contains(allowed, "о") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.o = true
elseif var == "жд" then
-- specify that the past passive participle of class 4/5/6 verbs
-- iotates -д to -жд instead of -ж
if data.zhd then
error("Saw жд twice")
end
if not m_table.contains(allowed, "жд") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.zhd = true
else
error("Unrecognized variant spec: " .. var)
end
variant_title = variant_title .. (variant_to_title[var] or "")
return ""
end)
variant_title = rsub(variant_title, "%[⑤%]%[⑥%]", "[⑤⑥]")
end
if variants ~= "" and not m_table.contains(allowed, "past") then
error("Past stress " .. variants .. " not allowed for this verb class")
end
if data.yo and not data.ppp then
error("Variant ё specified without calling for past passive participle")
end
if data.o and not data.ppp then
error("Variant о specified without calling for past passive participle")
end
if data.zhd and not data.ppp then
error("Variant жд specified without calling for past passive participle")
end
if data.perf and not data.ppp and not data.ppp_override and not data.shouldnt_have_ppp and not data.impers then
error("For perfective transitive verbs, need to specify past passive participle by variant or override; use |ppp=- if no such participle")
end
data.past_stress = variants == "" and "a" or rsub(variants, "/", "")
data.title = data.title ..
prepare_past_stress_indicator(data.past_stress) ..
variant_title
if data.star then
data.title = rsub(data.title, "^([0-9]+°?)", "%1*")
end
-- If there's an override of past_pasv_part, generate the normal participle
-- so we can determine whether the override is irregular. But set a flag
-- so we erase any automatically generated past passive participles that
-- aren't overridden. This happens for example in обнять, where there are
-- two automatically generated past passive participles but a single
-- ppp=о́внятый override.
if not data.ppp and data.main_ppp_override then
data.ppp = "+p"
data.ppp_auto_generated = true
end
end
local function set_past_by_stress(forms, past_stresses, prefix, prefixtr, base,
basetr, args, data, no_pastml, note)
-- If there isn't manual translit for the prefix, we need to supply it
-- if there's manual translit for the base, because we often concatenate
-- prefix to the base.
local prefixtr = prefixtr or basetr and com.translit(prefix)
for _, past_stress in ipairs(rsplit(past_stresses, ",")) do
local pastml = no_pastml and "" or "л"
local stressed_prefix, stressed_prefixtr
if prefix == "пере" then
stressed_prefix = "пе́ре"
stressed_prefixtr = "pe" .. AC .. "re"
elseif prefix == "раз" then
stressed_prefix = "ро́з"
stressed_prefixtr = "ro" .. AC .. "z"
elseif prefix == "рас" then
-- Does this ever occur?
stressed_prefix = "ро́с"
stressed_prefixtr = "ro" .. AC .. "s"
elseif prefix == "ра" and rfind(base, "^[сз]") then
-- Type 9/11/14/16 with automatically split prefix; may never happen.
stressed_prefix = "ро́"
stressed_prefixtr = "ro" .. AC
else
stressed_prefix, stressed_prefixtr =
com.make_ending_stressed(prefix, prefixtr)
end
-- Normally the base is stressed and the prefix isn't, but it could
-- be the other way around, e.g. in запереть and запереться, where
-- the stress on the prefix is used to get prefix-stressed participles.
-- To deal with this, we usually combine base and prefix unchanged,
-- but in combination with stressed_prefix we always want an unstressed
-- base, and when a stressed -ся́ is called for, we want both of them
-- unstressed.
local ubase, ubasetr = com.make_unstressed(base, basetr)
local uprefix, uprefixtr = com.make_unstressed(prefix, prefixtr)
-- If the prefix is stressed (вы́-), we need to use the unstressed base to avoid getting double stress.
local prefixbase = com.is_stressed(prefix) and prefix .. ubase or prefix .. base
local prefixbasetr = basetr and (com.is_stressed(prefix) and prefixtr .. ubasetr or prefixtr .. basetr)
local stressed_prefix_ubase = stressed_prefix .. ubase
local stressed_prefix_ubasetr = ubasetr and stressed_prefixtr .. ubasetr
local uprefixubase = uprefix .. ubase
local uprefixubasetr = ubasetr and uprefixtr .. ubasetr
if past_stress == "a" then
-- (/под/пере/при/по)забы́ть, раздобы́ть, (/пере/по)забы́ться
append_past(forms, prefixbase, prefixbasetr, pastml,
"ла", "ло", "ли", note)
elseif past_stress == "a(1)" then
-- вы́дать, вы́быть, etc.; also проби́ть with the meaning
-- "to strike (of a clock)" (which is a(1),a or similar)
append_past(forms, stressed_prefix_ubase,
stressed_prefix_ubasetr, pastml, {}, "ло", "ли", note)
-- Retraction to prefix doesn't happen in feminine singular, see the
-- bottom of page 81 of Zaliznyak's 1980 grammar.
append_past(forms, prefixbase, prefixbasetr, {}, "ла", {}, {}, note)
elseif past_stress == "b" then
append_past(forms, prefixbase, prefixbasetr, pastml,
"ла́", "ло́", "ли́", note)
elseif past_stress == "b*" then
if not data.refl then
error("Only reflexive verbs can take past stress variant " .. past_stress)
end
-- See comment in type c''. We want to see whether we actually
-- added an argument, and if so, where.
local argset = append_to_arg_chain(forms, "past_m", "past_m",
combine(uprefixubase, uprefixubasetr, pastml .. (note or "")))
if argset and not args[argset] and not data.impers then
data.default_reflex_stress = "ся́"
end
append_past(forms, prefixbase, prefixbasetr, {}, "ла́", "ло́", "ли́", note)
elseif past_stress == "c" then
-- изда́ть, возда́ть, сдать, пересозда́ть, воссозда́ть, надда́ть, наподда́ть, etc.
-- быть, избы́ть, сбыть
-- клясть, закля́сть
append_past(forms, prefixbase, prefixbasetr, pastml, "ла́", "ло", "ли", note)
elseif past_stress == "c(1)" then
-- прибы́ть, убы́ть
-- прокля́сть
-- also, c(1),c:
-- зада́ть, обда́ть, отда́ть, подда́ть, переда́ть (пе́редал), преда́ть, прода́ть, разда́ть (ро́здал), созда́ть, etc.
-- отбы́ть, побы́ть, пробы́ть
-- also, c,c(1):
-- добы́ть
-- Because the prefix may vary depending on stress (esp. for
-- раздать [ро́здал/раздала́]), we need to separate the endings that
-- take the stressed prefix and those that take the unstressed
-- prefix with stressed ending.
append_past(forms, stressed_prefix_ubase, stressed_prefix_ubasetr,
pastml, {}, "ло", "ли", note)
append_past(forms, prefixbase, prefixbasetr, {}, "ла́", {}, {}, note)
elseif past_stress == "c'" then
-- дать
--same with "взять"
append_past(forms, prefixbase, prefixbasetr,
pastml, "ла́", {"ло", "ло́"}, "ли", note)
elseif past_stress == "c''" or past_stress == "c''-nd" or past_stress == "c''-bd" then
if not data.refl then
error("Only reflexive verbs can take past stress variant " .. past_stress)
end
-- c'' (-ся́ dated): all verbs in -да́ться; избы́ться, сбы́ться; all verbs in -кля́сться
-- c''-nd (-ся́ not dated): various verbs in -ня́ться per Zaliznyak
-- c''-bd (-ся́ becoming dated): various verbs in -ня́ться per ruwikt
local note_symbol = past_stress == "c''-nd" and "" or
next_note_symbol(data)
append_past(forms, prefixbase, prefixbasetr,
pastml, "ла́", {"ло́", "ло"}, {"ли́", "ли"})
-- We want to see whether we actually added an argument, and if
-- so, where.
local argset = append_to_arg_chain(forms, "past_m", "past_m",
combine(uprefixubase, uprefixubasetr, pastml .. note_symbol .. (note or "")))
-- Only display the internal note and set the default reflex
-- stress if the form with the note will be displayed (i.e. not
-- impersonal, and no override of this form). FIXME: We should
-- have a more general mechanism to check for this.
if not args[argset] and not data.impers then
local note = past_stress == "c''" and note_symbol .. " Dated." or
past_stress == "c''-bd" and note_symbol .. " Becoming dated." or
nil
if note then
m_table.insertIfNot(data.internal_notes, note)
end
data.default_reflex_stress = "ся́"
end
elseif past_stress == "c''(1)" then
-- запере́ться
-- See comment in type c''. We want to see whether we actually
-- added an argument, and if so, where.
local argset = append_to_arg_chain(forms, "past_m", "past_m",
combine(uprefixubase, uprefixubasetr, pastml .. (note or "")))
if argset and not args[argset] and not data.impers then
data.default_reflex_stress = "ся́"
end
append_past(forms, prefixbase, prefixbasetr, {}, "ла́", "ло́", "ли́", note)
append_past(forms, stressed_prefix_ubase, stressed_prefix_ubasetr,
pastml, {}, "ло", "ли", note)
else
error("Unrecognized past-stress value " .. past_stress .. ", should be a, a(1), b, b*, c, c(1), c', c'', c''-nd, c''-bd, c''(1) or comma-separated list")
end
end
end
-- Split a verb stem into a possibly multisyllabic prefix (пере-, переиз-,
-- воссоз-, повы́-, etc.) and a single-syllable main verb (-тер-, -ли́-, -гре́-,
-- etc.). Normally the splitting is done simply by looking for alternating
-- vowel/consonant sequences, meaning that e.g. разгре́ will be split as
-- ра + згре́ and растер will be split as ра + стер. For most purposes, this
-- doesn't matter, but for the * variant it does; in that case, if it is
-- known that the main verb base always begins with a single consonant,
-- specify SINGLE_CONS_BASE and then e.g. растер will be split as рас + тер.
local function split_monosyllabic_main_verb(ru, tr, single_cons_base)
local rusyl, trsyl = com.split_syllables(ru, tr)
local last_ru = rusyl[#rusyl]
local last_tr = trsyl and trsyl[#trsyl]
table.remove(rusyl, #rusyl)
local prefix_ru = table.concat(rusyl, "")
local prefix_tr
if trsyl then
table.remove(trsyl, #trsyl)
prefix_tr = table.concat(trsyl, "")
end
if single_cons_base then
local cons_to_move, rest = rmatch(last_ru, "^([" .. com.cons .. "]+)([" .. com.cons .. "].*)$")
if cons_to_move then
prefix_ru = prefix_ru .. cons_to_move
last_ru = rest
end
if last_tr then
cons_to_move, rest = rmatch(last_tr, "^([" .. com.tr_cons .. "]+)([" .. com.tr_cons .. "].*)$")
if cons_to_move then
prefix_tr = prefix_tr .. cons_to_move
last_tr = rest
end
end
end
return prefix_ru, prefix_tr, last_ru, last_tr
end
local function split_known_main_verb(arg, mains)
-- Given an argument (which may be RUSSIAN//TR), split the prefix from
-- the main verb, which should be one of the verbs in MAINS (which can be
-- a -- single verb or a list of verbs, but in either case all verbs
-- need to be stressed). This correctly handles stressed and unstressed
-- prefixes.
local stem, tr = com.split_russian_tr(arg)
if type(mains) ~= "table" then
mains = {mains}
end
for _, main in ipairs(mains) do
assert(com.is_stressed(main))
if rfind(stem, main .. "$") then
stem, tr = com.strip_ending(stem, tr, main)
if com.is_stressed(stem) then
error("Two stresses in " .. arg)
end
return stem, tr, main, nil
end
main = com.make_unstressed_once(main)
if rfind(stem, main .. "$") then
stem, tr = com.strip_ending(stem, tr, main)
if com.is_unstressed(stem) then
error("No stresses in " .. arg)
end
return stem, tr, main, nil
end
end
if #mains == 1 then
error("Argument " .. arg .. " doesn't end in " .. mains[1])
else
error("Argument " .. arg .. " doesn't end in any of " .. table.concat(mains, ","))
end
end
local function construct_long_prefix_variant(prefix)
if rfind(prefix, "рас$") then
return rsub(prefix, "рас$", "разо")
end
if rfind(prefix, "ис$") then
return rsub(prefix, "ис$", "изо")
end
if rfind(prefix, "вс$") then
return rsub(prefix, "вс$", "взо")
end
return prefix .. "о"
end
local function append_imper_by_variant(forms, stem, tr, variant, verbclass, note)
local vowel_stem = is_vowel_stem(stem)
local stress = rmatch(verbclass, "([abc])$")
if not stress then
error("Unrecognized verb class '" .. verbclass .. "', should end with a, b or c")
end
local longend = stress == "a" and "и" or "и́"
local shortend = vowel_stem and (com.is_unstressed(stem) and "́й" -- accent on previous vowel
or "й") or "ь"
local function append_short_imper()
append_imper(forms, stem, tr, shortend, shortend .. "те", note)
end
local function append_long_imper()
append_imper(forms, stem, tr, longend, longend .. "те", note)
end
if variant and variant ~= "" then
track("explicit-imper")
track("explicit-imper/" .. verbclass)
end
if variant == "(2)" then
-- use short variants with вы́- (for these verbs, long is expected)
if not rfind(stem, "^вы́-") then
error("Should only specify imperative variant (2) with verbs in вы́-, not " .. stem)
end
append_short_imper()
elseif variant == "[(2)]" then
-- use both long and short variants
append_long_imper()
append_short_imper()
elseif variant == "(3)" then
-- long in singular, short in plural
append_imper(forms, stem, tr, longend, shortend .. "те", note)
elseif variant == "[(3)]" then
-- long and short in singular, short in plural
append_imper(forms, stem, tr, {longend, shortend}, shortend .. "те", note)
elseif variant == "ь" or variant == "й" then
-- short variants wanted
append_short_imper()
elseif variant == "и" then
-- long variants wanted
append_long_imper()
else
assert(not variant or variant == "")
if vowel_stem then
if verbclass == "4b" or verbclass == "4c" or (
verbclass == "4a" and rfind(stem, "^вы́-")) then
append_long_imper()
else
append_short_imper()
end
else -- consonant stem
if stress == "b" or stress == "c" then
append_long_imper()
else
assert(stress == "a")
-- "и" after вы́-, e.g. вы́садить
-- "и" after final щ, e.g. тара́щиться (although this particular
-- verb has a [(3)] spec attached to it)
if rfind(stem, "^вы́-") or rfind(stem, "щ$") or
-- "и" after two consonants in a row (мо́рщить, зафре́ндить)
rfind(stem, "[бвгджзклмнпрстфхцчшщь][бвгджзклмнпрстфхцчшщ]$") then
append_long_imper()
else
-- "ь" after a single consonant (бре́дить)
append_short_imper()
end
end
end
end
end
-- Compute the past passive participle stem for verbs that require it to be
-- iotated (class 4, and class 5 in -еть).
local function iotated_ppp(data, stem, tr)
local iotated_stem, iotated_tr
if data.zhd then
local subbed
iotated_stem, subbed = rsubb(stem, "з?д$", "жд")
if not subbed then
error("Variant -жд- specified but stem " .. stem .. " doesn't end in -д")
end
if tr then
iotated_tr, subbed = rsubb(tr, "z?d$", "žd")
if not subbed then
error("Variant -жд- specified but translit " .. tr .. " doesn't end in -d")
end
end
else
iotated_stem, iotated_tr = com.iotation(stem, tr, data.shch)
end
return iotated_stem, iotated_tr
end
-- Set the past passive participle of verbs where the stress is moved left
-- from the ending by one syllable (if possible) if the ending is stressed,
-- otherwise left as-is (except class 1a in -е́ть, which has ending-stressed
-- -ённый). This applies to classes 1, 2, 3, 5, 6, 10 and 13. The stem comes
-- from the infinitive, iotated in class 5 -еть/-ѣть verbs. The participle
-- ending is -анный/-янный for verbs in -ать/-ять, -енный/-ённый for verbs in -еть,
-- -ѣнный/-ѣ̈нный for verbs in -ѣть, otherwise -тый.
local function set_moving_ppp(forms, data)
if not data.ppp then
return
end
-- NOTE: No need to check for multiple infinitives because no verbs have
-- them normally, and we probably don't want to check for overrides here
-- (e.g. it would break достичь and related verbs, which have participles
-- based on the infinitive достигнуть).
local infinitive, infinitivetr = extract_russian_tr(forms["infinitive"])
local stem, ending = rmatch(infinitive, "^(.*)([аеѣоуя]́?ть)$")
if not stem then
error("Strange infinitive " .. infinitive .. " when trying to create participle")
end
local tr, endingtr
if infinitivetr then
if ending == "ять" or ending == "я́ть" then
tr, endingtr = rmatch(infinitivetr, "^(.*)(ja" .. AC .. "?tʹ)$")
else
tr, endingtr = rmatch(infinitivetr, "^(.*)([aeěou]" .. AC .. "?tʹ)$")
end
if not tr then
error("Translit " .. infinitivetr .. " doesn't match Cyrillic " ..
infinitive)
end
end
local ending_vowel = usub(ending, 1, 1)
local ppptype = data.ppp
if com.is_nonsyllabic(stem) then
-- e.g. 3b гну́ть (гну́тый); but not -нуть (type 3a, as a suffix)
ppptype = "(7)"
end
if m_table.contains({"5a", "5b", "5c"}, data.conj_type) and
(ending_vowel == "е" or ending_vowel == "ѣ") then
stem, tr = iotated_ppp(data, stem, tr)
end
if not com.is_stressed(stem) then
stem, tr = com.make_ending_stressed(stem, tr)
end
if data.o then
-- цев -> цо́в, e.g. (об)лицева́ть -> (об)лицо́ванный
stem = rsub(stem, "е́", "о́") -- Cyrillic
if tr then
tr = rsub(tr, "e" .. AC, "o" .. AC) -- Latin
end
elseif data.yo then
-- ё occurs with e.g. 1a наверста́ть (навёрстанный)
-- ё occurs with e.g. 3b поверну́ть (повёрнутый)
-- ё occurs with e.g. 5b лежа́ть (лёжанный) but not with 5c держа́ть
-- (де́ржанный)
-- ё occurs always with class 2 in -ева́ть, e.g.
-- (за)тушева́ть ((за)тушёванный) and (за)клева́ть ((за)клёванный)
local subbed
stem, subbed = rsubb(stem, "е́", "ё") -- Cyrillic
if not subbed and data.old then
stem, subbed = rsub(stem, "ѣ́", "ѣ̈")
end
if not subbed then
error("No stressed е" .. (data.old and " or ѣ" or "") ..
" in stem " .. stem ..
" to replace with ё" .. (data.old and " or ѣ̈" or "") ..
" when trying to create participle")
end
if tr then
tr, subbed = rsub(tr, "j[eě]" .. AC, "jo" .. AC) -- Latin
if not subbed then
tr, subbed = rsub(tr, "[eě]" .. AC, "jo" .. AC) -- Latin
end
if not subbed then
error("No stressed е in translit " .. tr .. " to replace with jo when trying to create participle")
end
end
end
if data.conj_type == "1a" and ending_vowel == "е" then
-- 1a, only одоле́ть, преодоле́ть, verbs in -печатле́ть
set_ppp(forms, stem, tr, "ённый")
elseif data.conj_type == "1a" and ending_vowel == "ѣ" then
set_ppp(forms, stem, tr, "ѣ̈нный")
else
local stressed_ending, unstressed_ending
if ending_vowel == "е" then
stressed_ending = "ённый"
unstressed_ending = "енный"
elseif ending_vowel == "ѣ" then
stressed_ending = "ѣ̈нный"
unstressed_ending = "ѣнный"
else
local ppp_ending =
(ending_vowel == "а" or ending_vowel == "я") and "нный" or "тый"
stressed_ending = ending_vowel .. AC .. ppp_ending
unstressed_ending = ending_vowel .. ppp_ending
end
set_ppp(forms, stem, tr,
-- (7) occurs with 1a обуя́ть (обуя́нный)
ppptype == "(7)" and stressed_ending or
-- [(7)] -- when does it occur? may only occur in class 4
ppptype == "[(7)]" and {unstressed_ending, stressed_ending} or
unstressed_ending)
end
end
-- Iterate over the values of a property (e.g. past_m, past_f), handling
-- overrides properly. Call FN on each one, passing in RU, TR, NOTE.
local function iterate_over_prop(forms, args, prop, fn)
for _, form in ipairs(main_to_all_verb_forms[prop]) do
local ru, tr
if args[form] then
local orig_forms = {}
for _, form2 in ipairs(main_to_all_verb_forms[prop]) do
if forms[form2] then
table.insert(orig_forms, forms[form2])
end
end
local override = parse_and_stress_override(form, args[form], forms[form], orig_forms)
ru, tr = extract_russian_tr(override)
end
if (not ru or ru == "" or ru == "-") and forms[form] then
ru, tr = extract_russian_tr(forms[form])
end
-- skip unstressed forms (may occur in the past_m when a stressed
-- reflexive -ся́ should occur; these occur only in запереться and
-- опереться, where they're used to generate the past active part
-- and past adverbial part, and end-stressed forms shouldn't be
-- generated)
if ru and ru ~= "" and ru ~= "-" and not com.is_unstressed(ru) then
local ruentry, runotes = m_table_tools.separate_notes(ru)
local trentry, trnotes
if tr then
trentry, trnotes = m_table_tools.separate_notes(tr)
end
fn(ruentry, trentry, {runotes, trnotes})
end
end
end
-- Set the past passive participle for those classes where it is derived
-- from the past tense masculine singular (9, 11, 12, 14, 15, 16). We need
-- to apply any relevant overrides.
local function set_ppp_from_past_m(forms, args, data)
if not data.ppp then
return
end
iterate_over_prop(forms, args, "past_m", function(ru, tr, note)
if rfind(ru, "л$") then
ru = rsub(ru, "л$", "")
if tr then
tr = rsub(tr, "l$", "")
end
end
append_ppp(forms, ru, tr, "тый", note)
end)
end
-- Set the past passive participle for class-4 verbs.
local function set_class_4_ppp(forms, data, stem, tr, vclass)
if not data.ppp then
return
end
local iotated_stem, iotated_tr = iotated_ppp(data, stem, tr)
vclass = vclass or data.conj_type
if vclass == "4b" then
local stressed_iotated_stem, stressed_iotated_tr =
com.make_ending_stressed(iotated_stem, iotated_tr)
set_ppp(forms, stressed_iotated_stem, stressed_iotated_tr,
-- (8) occurs with 4b скрои́ть (скро́енный)
data.ppp == "(8)" and "енный" or
-- [(8)] occurs with 4b разгроми́ть (разгромлённый, разгро́мленный)
data.ppp == "[(8)]" and {"ённый", "енный"} or "ённый")
else
set_ppp(forms, iotated_stem, iotated_tr,
-- (7) occurs with 4c раздели́ть (разделённый)
data.ppp == "(7)" and "ённый" or
-- [(7)] occurs with 4a осве́домить (осве́домленный, осведомлённый)
-- [(7)] occurs with 4c иссуши́ть (иссу́шенный, иссушённый)
data.ppp == "[(7)]" and {"енный", "ённый"} or "енный")
end
end
-- Set the past passive participle for class-7 and class-8 verbs. These
-- form the PPP by adding to the base of the 3sg pres/futr (i.e. minus
-- -ет/-ёт). The stress follows the stress of the past singular feminine.
-- Only types a, a(1) and b exist, meaning that if the past singular feminine
-- is ending-stressed then the PPP ending is -ённый, otherwise it is -енный
-- with the stress of the 3sg pres/futr base preserved (and added to the
-- last syllable if the base has no stress, as in 7b укра́сть, 3sg украдёт,
-- fem sg past укра́ла, PPP укра́денный).
local function set_class_7_8_ppp(forms, args, data)
if not data.ppp then
return
end
local sg3_bases = {}
-- Extract 3sg bases. There may be more than one possible form, e.g. in
-- обокра́сть, so support this.
-- FIXME: We don't support checking for overrides here; doing so isn't
-- overly hard but is a bit tricky because the overrides will be either
-- pres_3sg or futr_3sg, depending on the aspect of the verb.
-- FIXME: We don't support manual translit here, because neither 7 nor 8
-- support it elsewhere.
for _, form in ipairs(main_to_all_verb_forms["pres_futr_3sg"]) do
local ru, tr
if forms[form] then
ru, tr = extract_russian_tr(forms[form])
end
if ru and ru ~= "" and ru ~= "-" then
local ruentry, runotes = m_table_tools.separate_notes(ru)
ruentry = rsub(ruentry, "[её]т$", "")
if com.is_unstressed(ruentry) then
ruentry = com.make_ending_stressed(ruentry)
end
m_table.insertIfNot(sg3_bases, {ruentry, runotes})
end
end
-- Here we do the same rigmarole as in set_ppp_from_past_m(), to respect
-- any past_f overrides that might have been set. It's unlikely that
-- there is more than one possible form but we support it.
iterate_over_prop(forms, args, "past_f", function(ru, tr, note)
for _, base_and_notes in ipairs(sg3_bases) do
local base, notes = base_and_notes[1], base_and_notes[2]
append_ppp(forms, base, nil,
-- check if past_f is ending-stressed
rfind(ru, AC .. "$") and "ённый" or "енный", notes)
end
end)
end
--[=[
Conjugation functions
]=]
conjugations["1a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"+p", "7", "ё"})
local stem, tr = com.split_russian_tr(get_stressed_arg(args, 2))
if stem == "-" and not tr then
-- Template space; leave it
else
stem, tr = com.strip_ending(stem, tr, "ть")
end
no_stray_args(args, 2)
forms["infinitive"] = combine(stem, tr, "ть")
append_participles(forms, stem, tr, "ющий", "емый", "я", "вший", "вши", "в")
set_moving_ppp(forms, data)
present_je(forms, stem, tr, "a")
append_imper(forms, stem, tr, "й", "йте")
set_past(forms, stem, tr, "л", "ла", "ло", "ли")
return forms
end
local function guts_of_2(args, data)
local forms = {}
local inf_stem, inf_tr = com.split_russian_tr(get_stressed_arg(args, 2))
inf_stem, inf_tr = com.strip_ending(inf_stem, inf_tr, "ть")
no_stray_args(args, 2)
local pres_stem, pres_tr = inf_stem, inf_tr
local variants = args[1] or ""
parse_variants(data, variants, {"+p", "7"})
-- If stem ends in -ева́ть and a past passive participle is called for
-- with stress on the -е-, automatically set -о- or -ё- as required.
if data.ppp and data.ppp ~= "(7)" then
if rfind(inf_stem, "цева́") then
if data.ppp == "[(7)]" then
-- FIXME. Theoretically we should support this but there
-- aren't any verbs requiring it. It won't work properly
-- currently because we need the о to appear only when
-- stressed.
error("Variant [(7)] not supported for class 2")
end
-- цев -> цо́в, e.g. (об)лицева́ть -> (об)лицо́ванный
data.o = true
data.title = data.title .. "(-о-)"
elseif rfind(inf_stem, "ева́") then
data.yo = true
data.title = data.title .. "(-ё-)"
end
end
-- all -ова- change to -у-
pres_stem = rsub(pres_stem, "о(́?)ва(́?)$", "у%1%2")
pres_tr = pres_tr and rsub(pres_tr, "o(́?)va(́?)$", "u%1%2")
-- -ева- change to -ю- after most consonants and vowels, to -у- after hissing sounds and ц
if rfind(pres_stem, "[бвгдзклмнпрстфхь" .. com.vowel .. AC .. "]е(́?)ва(́?)$") then
pres_stem = rsub(pres_stem, "е(́?)ва(́?)$", "ю%1%2")
pres_tr = pres_tr and rsub(pres_tr, "e(́?)va(́?)$", "ju%1%2")
elseif rfind(pres_stem, "[жцчшщ]е(́?)ва(́?)$") then
pres_stem = rsub(pres_stem, "е(́?)ва(́?)$", "у%1%2")
pres_tr = pres_tr and rsub(pres_tr, "e(́?)va(́?)$", "u%1%2")
end
forms["infinitive"] = combine(inf_stem, inf_tr, "ть")
if data.conj_type == "2a" then
append_participles_2stem(forms, pres_stem, pres_tr, inf_stem, inf_tr,
"ющий", "емый", "я", "вший", "вши", "в")
present_je(forms, pres_stem, pres_tr, "a")
else
append_participles_2stem(forms, pres_stem, pres_tr, inf_stem, inf_tr,
"ю́щий", "-", "я́", "вший", "вши", "в")
present_je(forms, pres_stem, pres_tr, "b")
end
set_moving_ppp(forms, data)
append_imper(forms, pres_stem, pres_tr, "й", "йте")
set_past(forms, inf_stem, inf_tr, "л", "ла", "ло", "ли")
return forms
end
conjugations["2a"] = function(args, data)
return guts_of_2(args, data)
end
conjugations["2b"] = function(args, data)
return guts_of_2(args, data)
end
conjugations["3°a"] = function(args, data)
local forms = {}
-- (5), [(6)] or similar; imperative indicators
parse_variants(data, args[1], {"5", "6", "23", "и", "+p", "7", "ё"})
local stem, tr = com.split_russian_tr(get_stressed_arg(args, 2))
stem, tr = com.strip_ending(stem, tr, "нуть")
local vowel_stem = is_vowel_stem(stem)
no_stray_args(args, 2)
forms["infinitive"] = combine(stem, tr, "нуть")
append_participles(forms, stem, tr,
-- default is blank for pres passive and adverbial
"нущий", "-", "-",
data.var6 == "req" and "нувший" or
data.var6 == "opt" and (vowel_stem and {"вший", "нувший"} or {"ший", "нувший"}) or
vowel_stem and "вший" or "ший",
data.var6 == "req" and "нувши" or
data.var6 == "opt" and (vowel_stem and {"вши", "нувши"} or {"ши", "нувши"}) or
vowel_stem and "вши" or "ши",
data.var6 == "req" and "нув" or
data.var6 == "opt" and (vowel_stem and {"в", "нув"} or "нув") or
vowel_stem and "в" or "-")
set_moving_ppp(forms, data)
present_e_a(forms, stem .. "н", tr and tr .. "n")
append_imper_by_variant(forms, stem .. "н", tr and tr .. "n", data.imper_variant, "3°a")
forms["past_m"] = data.var5 and combine(stem, tr, "нул") or "-"
forms["past_m_short"] = data.var5 ~= "req" and combine(stem, tr, (vowel_stem and "л" or "")) or nil
forms["past_f_short"] = combine(stem, tr, "ла")
forms["past_n_short"] = combine(stem, tr, "ло")
forms["past_pl_short"] = combine(stem, tr, "ли")
return forms
end
conjugations["3a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"23", "и", "+p", "7", "ё"})
local stem, tr = com.split_russian_tr(get_stressed_arg(args, 2))
-- make sure we can strip нуть from the stem and any translit;
com.strip_ending(stem, tr, "нуть")
-- but then just strip the -уть and leave the н
stem, tr = com.strip_ending(stem, tr, "уть")
no_stray_args(args, 2)
forms["infinitive"] = combine(stem, tr, "уть")
append_participles(forms, stem, tr,
-- default is blank for pres passive and adverbial
"ущий", "-", "-", "увший", "увши", "ув")
set_moving_ppp(forms, data)
present_e_a(forms, stem, tr)
append_imper_by_variant(forms, stem, tr, data.imper_variant, "3a")
set_past(forms, stem .. "ул", tr and tr .. "ul", "", "а", "о", "и")
return forms
end
local function guts_of_3b_3c(args, data, vclass)
local forms = {}
parse_variants(data, args[1], {"+p", "7", "ё"})
local stem, tr = com.split_russian_tr(get_stressed_arg(args, 2))
-- make sure we can strip нуть from the stem and any translit;
com.strip_ending(stem, tr, "ну́ть")
-- but then just strip the -у́ть and leave the н
stem, tr = com.strip_ending(stem, tr, "у́ть")
no_stray_args(args, 2)
forms["infinitive"] = combine(stem, tr, "у́ть")
append_participles(forms, stem, tr,
-- default is blank for pres passive and adverbial
"у́щий", "-", "-", "у́вший", "у́вши", "у́в")
set_moving_ppp(forms, data)
append_imper(forms, stem, tr, "и́", "и́те")
set_past(forms, stem, tr, "у́л", "у́ла", "у́ло", "у́ли")
if data.conj_type == "3b" then
present_e_b(forms, stem, tr)
else
stem, tr = com.make_ending_stressed(stem, tr)
present_e_c(forms, stem, tr)
end
return forms
end
conjugations["3b"] = function(args, data)
return guts_of_3b_3c(args, data)
end
conjugations["3c"] = function(args, data)
return guts_of_3b_3c(args, data)
end
conjugations["4a"] = function(args, data)
local forms = {}
-- imperative variants, also щ, used for verbs like похитить (похи́щу) (4a),
-- защитить (защищу́) (4b), поглотить (поглощу́) (4c) with a different
-- iotation (т -> щ, not ч)
parse_variants(data, args[1], {"23", "и", "щ", "past", "+p", "7", "жд"})
local stem, tr = com.split_russian_tr(get_stressed_arg(args, 2))
stem, tr = com.strip_ending(stem, tr, "ить")
no_stray_args(args, 2)
forms["infinitive"] = combine(stem, tr, "ить")
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(stem, "[шщжч]$")
append_participles(forms, stem, tr, hushing and "ащий" or "ящий",
"awkward-имый", hushing and "а" or "я", "ивший", "ивши", "ив")
set_class_4_ppp(forms, data, stem, tr)
present_i(forms, stem, tr, "a", data.shch)
append_imper_by_variant(forms, stem, tr, data.imper_variant, "4a")
-- set prefix to "" as past stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil, stem .. "и",
tr and tr .. "i", args, data)
return forms
end
conjugations["4a1a"] = function(args, data)
local forms = {}
data.title = "4a // 1a"
data.cat_conj_types = {"1a", "4a"}
-- imperative variants, also щ, used for verbs like похитить (похи́щу) (4a),
-- защитить (защищу́) (4b), поглотить (поглощу́) (4c) with a different
-- iotation (т -> щ, not ч)
parse_variants(data, args[1], {"23", "и", "щ", "past", "+p", "7", "жд"})
local stem4, tr4 = com.split_russian_tr(get_stressed_arg(args, 2))
stem4, tr4 = com.strip_ending(stem4, tr4, "ить")
local hushing = rfind(stem4, "[шщжч]$")
local stem1, tr1
if hushing then
stem1 = stem4 .. "а"
tr1 = tr4 and tr4 .. "a"
else
stem1 = stem4 .. "я"
tr1 = tr4 and tr4 .. "ja"
end
no_stray_args(args, 2)
forms["infinitive"] = combine(stem4, tr4, "ить")
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
append_participles(forms, stem4, tr4, hushing and "ащий" or "ящий",
"awkward-имый", hushing and "а" or "я", "ивший", "ивши", "ив")
append_participles(forms, stem1, tr1, "ющий", "емый", "я", {}, {}, {})
set_class_4_ppp(forms, data, stem4, tr4)
present_i(forms, stem4, tr4, "a", data.shch)
present_je(forms, stem1, tr1, "a", data.shch)
append_imper_by_variant(forms, stem4, tr4, data.imper_variant, "4a")
append_imper(forms, stem1, tr1, "й", "йте")
-- set prefix to "" as past stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil, stem4 .. "и",
tr4 and tr4 .. "i", args, data)
return forms
end
conjugations["4b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"щ", "past", "+p", "8", "жд"})
local stem, tr = com.split_russian_tr(get_stressed_arg(args, 2))
stem, tr = com.strip_ending(stem, tr, "и́ть")
no_stray_args(args, 2)
forms["infinitive"] = combine(stem, tr, "и́ть")
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(stem, "[шщжч]$")
append_participles(forms, stem, tr, hushing and "а́щий" or "я́щий",
"awkward-и́мый", hushing and "а́" or "я́", "и́вший", "и́вши", "и́в")
set_class_4_ppp(forms, data, stem, tr)
present_i(forms, stem, tr, "b", data.shch)
append_imper(forms, stem, tr, "и́", "и́те")
-- set prefix to "" as past stem may vary in length and no (1) variants
local stem_noa, tr_noa = com.make_unstressed_once(stem, tr)
set_past_by_stress(forms, data.past_stress, "", nil, stem_noa .. "и́",
tr_noa and tr_noa .. "i" .. AC, args, data)
return forms
end
conjugations["4c"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"щ", "4", "past", "+p", "7", "жд"})
local stem, tr = com.split_russian_tr(get_stressed_arg(args, 2))
stem, tr = com.strip_ending(stem, tr, "и́ть")
stem, tr = com.make_ending_stressed(stem, tr)
no_stray_args(args, 2)
forms["infinitive"] = combine(stem, tr, "и́ть")
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(stem, "[шщжч]$")
local prap_end_stressed = hushing and "а́щий" or "я́щий"
local prap_stem_stressed = hushing and "ащий" or "ящий"
append_participles(forms, stem, tr, data.var4 == "req" and prap_stem_stressed
or data.var4 == "opt" and {prap_end_stressed, prap_stem_stressed}
or prap_end_stressed,
"awkward-и́мый", hushing and "а́" or "я́", "и́вший", "и́вши", "и́в")
set_class_4_ppp(forms, data, stem, tr)
present_i(forms, stem, tr, "c", data.shch)
append_imper(forms, stem, tr, "и́", "и́те")
local stem_noa, tr_noa = com.make_unstressed_once(stem, tr)
set_past_by_stress(forms, data.past_stress, "", nil, stem_noa .. "и́",
tr_noa and tr_noa .. "i" .. AC, args, data)
return forms
end
-- Combined class 5. But there's enough conditional code that it might make
-- more sense to separate them again.
local function guts_of_5(args, data)
local forms = {}
local is5a = data.conj_type == "5a"
local is5b = data.conj_type == "5b"
-- imperative ending (выгнать - выгони) and past stress; imperative is
-- "й" after any vowel (e.g. выстоять), with or without an acute accent,
-- otherwise ь or и
if is5a or is5b then
parse_variants(data, args[1], {"23", "и", "past", "+p", "7", "ё"})
else
parse_variants(data, args[1], {"23", "и", "past", "+p", "7", "ё", "4"})
end
local inf = get_stressed_arg(args, 2)
local past_stem = com.strip_ending(inf, nil, "ть")
local stem = is5b and get_opt_unstressed_arg(args, 3) or get_opt_stressed_arg(args, 3)
local default_stem = rmatch(past_stem, "^(.*)[еѣая]́?$")
if not default_stem then
error("Argument " .. inf .. " doesn't end in еть, ѣть, ать or ять")
end
if not is5a and not is5b then
default_stem = com.make_ending_stressed(default_stem)
end
stem = stem or default_stem
local pres_note = stem ~= default_stem and IRREG
no_stray_args(args, 3)
forms["infinitive"] = past_stem .. "ть"
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(stem, "[шщжч]$")
if is5a then
append_participles_2stem(forms, stem, nil, past_stem, nil,
hushing and "ащий" or "ящий", "имый", hushing and "а" or "я",
"вший", "вши", "в", pres_note)
elseif is5b then
append_participles_2stem(forms, stem, nil, past_stem, nil,
hushing and "а́щий" or "я́щий", "и́мый", hushing and "а́" or "я́",
"вший", "вши", "в", pres_note)
else
-- var4 occurs with at least терпре́ть and дыша́ть
local prap_end_stressed = hushing and "а́щий" or "я́щий"
local prap_stem_stressed = hushing and "ащий" or "ящий"
append_participles_2stem(forms, stem, nil, past_stem, nil,
data.var4 == "req" and prap_stem_stressed
or data.var4 == "opt" and {prap_end_stressed, prap_stem_stressed}
or prap_end_stressed,
"и́мый", hushing and "а́" or "я́", "вший", "вши", "в", pres_note)
end
set_moving_ppp(forms, data)
present_i(forms, stem, nil, is5a and "a" or is5b and "b" or "c", nil, pres_note)
append_imper_by_variant(forms, stem, nil, data.imper_variant, data.conj_type, pres_note)
-- set prefix to "" as past stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil, past_stem, nil,
args, data)
return forms
end
conjugations["5a"] = function(args, data)
return guts_of_5(args, data)
end
conjugations["5b"] = function(args, data)
return guts_of_5(args, data)
end
conjugations["5c"] = function(args, data)
return guts_of_5(args, data)
end
-- Implement 6a, 6°a, 6a1as13, 6a1as14, and 1a6a.
local function guts_of_6a(args, data, vclass)
local forms = {}
-- Type 6a1a, section 13:
-- Forms of both 6a and 1a can occur. They are the same in the infinitive
-- and past. In the present active participle and the present/future, the
-- type 6 forms are preferred and the type 1a forms are colloquial. In the
-- remaining present forms and the imperative, both are equally preferred
-- (we put the type-6 forms first because Zaliznyak lists them first).
-- Type 6a1a section 14, type 1a6a:
-- Forms of both 6a and 1a can occur. They are the same in the infinitive
-- and past. In the present adverbial participle and the imperative, the
-- type 1a forms are preferred and the type 6a forms are dated. In the
-- remaining present forms, one or the other is slightly preferred (type
-- 6a for 6a1a, type 1a for 1a6a).
if vclass == "6a1as13" or vclass == "6a1as14" then
data.title = "6a // 1a"
data.cat_conj_types = {"1a", "6a"}
elseif vclass == "1a6a" then
data.title = "1a // 6a"
data.cat_conj_types = {"1a", "6a"}
end
parse_variants(data, args[1], {"23", "и", "past", "+p", "7", "ё"})
local inf = get_stressed_arg(args, 2)
local inf_past_stem = com.strip_ending(inf, nil, "ть")
local stem = rmatch(inf_past_stem, "^(.*)[ая]́?$")
if not stem then
error("Argument " .. inf .. " doesn't end in ать or ять")
end
if com.is_unstressed(stem) then
-- колыха́ть, колеба́ть, etc.
stem = com.make_ending_stressed(stem)
end
-- вызвать - вы́зову (в́ызов)
local pres_stem = get_opt_stressed_arg(args, 3) or stem
no_stray_args(args, 3)
local pres_note = pres_stem ~= stem and IRREG
-- no iotation, e.g. вырвать - вы́рву
local no_iotation = vclass == "6°a"
-- replace consonants for 1st person singular present/future
local iotated_stem = no_iotation and pres_stem or com.iotation(pres_stem)
forms["infinitive"] = inf_past_stem .. "ть"
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(iotated_stem, "[шщжч]$") or no_iotation
-- Participles
-- pres_pasv_part is normal if infinitive ends in -ять, nonexistent except
-- with certain lexical exceptions (колеба́ть, колыха́ть, глаго́лать,
-- дви́гать with exceptional form дви́жимый) if infinitive ends in -ать
local prpp_status = rfind(inf_past_stem, "я́?$") and "" or "none-"
if vclass == "6a" or vclass == "6°a" or vclass == "6a1as13" then
append_participles_2stem(forms, iotated_stem, nil, inf_past_stem, nil,
hushing and "ущий" or "ющий", prpp_status .. "емый", hushing and "а" or "я",
"вший", "вши", "в", pres_note)
if vclass == "6a1as13" then
-- then all the type 1a forms (both are the same in the past)
append_participles(forms, inf_past_stem, nil, "ющий*", prpp_status .. "емый", "я")
end
elseif vclass == "6a1as14" then
-- first the preferred type 6a present active/passive participles
append_participles(forms, iotated_stem, nil,
hushing and "ущий" or "ющий", prpp_status .. "емый", {}, {}, {}, {}, pres_note)
-- then all the type 1a forms (both are the same in the past)
append_participles(forms, inf_past_stem, nil, "ющий", "емый", "я",
"вший", "вши", "в")
-- then the dated type 6a present adverbial participle
append_participles(forms, iotated_stem, nil,
{}, {}, hushing and "а*" or "я*", {}, {}, {}, pres_note)
else -- type 1a6a
-- first the preferred type 1a forms (both are the same in the past)
append_participles(forms, inf_past_stem, nil, "ющий", "емый", "я",
"вший", "вши", "в")
-- then the type 6a forms (dated in present adverbial participle)
append_participles(forms, iotated_stem, nil,
hushing and "ущий" or "ющий", prpp_status .. "емый", hushing and "а*" or "я*",
{}, {}, {}, pres_note)
end
set_moving_ppp(forms, data)
-- Present/future tense
local function class_6_present()
if no_iotation then
present_e_a(forms, pres_stem, nil, pres_note)
else
present_je(forms, pres_stem, nil, "a", nil, pres_note)
end
end
if vclass == "6a" or vclass == "6°a" then
class_6_present()
elseif vclass == "1a6a" then
-- Do type 1a forms
present_je(forms, inf_past_stem, nil, "a")
class_6_present()
elseif vclass == "6a1as14" then
class_6_present()
-- Do type 1a forms
present_je(forms, inf_past_stem, nil, "a")
else
-- 6a1as13
class_6_present()
-- Do type 1a forms
present_je(forms, inf_past_stem, nil, "a", nil, "*")
end
-- Imperative forms; if 1a6a or 6a1as14, type 6a forms are dated;
-- if 6a1as13, type 6a forms go first.
local function class_1_impr()
append_imper(forms, inf_past_stem, nil, "й", "йте")
end
local function class_6_impr()
local dated_note = ((vclass == "6a1as14" or vclass == "1a6a") and "*" or "") ..
(pres_note or "")
append_imper_by_variant(forms, iotated_stem, nil, data.imper_variant,
"6a", dated_note)
end
if vclass == "6a1as14" or vclass == "1a6a" then
class_1_impr()
class_6_impr()
elseif vclass == "6a1as13" then
class_6_impr()
class_1_impr()
else
class_6_impr()
end
-- set prefix to "" as past stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil, inf_past_stem, nil,
args, data)
if vclass == "6a1as14" or vclass == "1a6a" then
m_table.insertIfNot(data.internal_notes, "* Dated.")
elseif vclass == "6a1as13" then
m_table.insertIfNot(data.internal_notes, "* Colloquial; type-6 forms preferred.")
end
return forms
end
conjugations["6a"] = function(args, data)
return guts_of_6a(args, data, "6a")
end
conjugations["6°a"] = function(args, data)
return guts_of_6a(args, data, "6°a")
end
conjugations["6a1as13"] = function(args, data)
return guts_of_6a(args, data, "6a1as13")
end
conjugations["6a1as14"] = function(args, data)
return guts_of_6a(args, data, "6a1as14")
end
conjugations["1a6a"] = function(args, data)
return guts_of_6a(args, data, "1a6a")
end
-- implement 6b, 6°b
local function guts_of_6b(args, data, vclass)
local forms = {}
parse_variants(data, args[1], {"past", "+p", "7", "ё"})
local inf = get_stressed_arg(args, 2)
local stem = rmatch(inf, "^(.*)[ая]́ть$")
if not stem then
error("Argument " .. inf .. " doesn't end in ать or ять")
end
-- звать - зов, драть - дер
local pres_stem = get_opt_unstressed_arg(args, 3) or stem
no_stray_args(args, 3)
-- no iotation, e.g. рвать - рву
local no_iotation = vclass == "6°b"
local vowel_end_stem = is_vowel_stem(stem)
local pres_note = pres_stem ~= stem and IRREG
if no_iotation then
present_e_b(forms, pres_stem, nil, pres_note)
else
present_je(forms, pres_stem, nil, "b", nil, pres_note)
end
local impr_end = vowel_end_stem and "́й" -- accent on the preceding vowel
or "и́"
append_imper(forms, pres_stem, nil, impr_end, impr_end .. "те", pres_note)
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(pres_stem, "[шщжч]$")
-- no pres_pasv_part
local past_stem_with_vowel = stem .. (vowel_end_stem and "я́" or "а́")
append_participles_2stem(
forms, pres_stem, nil, past_stem_with_vowel, nil,
((hushing or no_iotation) and "у́щий" or "ю́щий"), {}, (hushing and "а́" or "я́"),
"вший", "вши", "в", pres_note)
forms["infinitive"] = combine(past_stem_with_vowel, nil, "ть")
set_moving_ppp(forms, data)
-- past_f for ждала́, подождала́ now handled through general mechanism
--for разобрало́сь, past_n2 разобрало́ now handled through general mechanism
--for разобрали́сь, past_pl2 разобрали́ now handled through general mechanism
-- set prefix to "" as past stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil,
stem .. (vowel_end_stem and "я́" or "а́"), nil, args, data)
return forms
end
conjugations["6b"] = function(args, data)
return guts_of_6b(args, data, "6b")
end
conjugations["6°b"] = function(args, data)
return guts_of_6b(args, data, "6°b")
end
-- Implement 6c, 6°c and 6c1a.
local function guts_of_6c(args, data, vclass)
local forms = {}
-- In type 6c1a, forms of both 6c and 1a can occur. They are
-- the same in the infinitive and past. In the present active participle
-- and the present/future, the type 6c forms are preferred and the type 1a
-- forms are colloquial. In the remaining present forms and the imperative,
-- both are equally preferred (we put the 6c forms first because Zaliznyak
-- lists 6c first).
if vclass == "6c1a" then
data.title = "6c // 1a"
data.cat_conj_types = {"1a", "6c"}
end
-- optional щ parameter for verbs like клеветать (клевещу́), past stress
parse_variants(data, args[1], {"щ", "past", "+p", "7", "ё"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "а́ть")
stem = com.make_ending_stressed(stem)
-- разостла́ть - расстелю́, рассте́лешь
local pres_stem = get_opt_stressed_arg(args, 3) or stem
no_stray_args(args, 3)
local pres_note = pres_stem ~= stem and IRREG
-- remove accent for some forms
local stem_noa = com.make_unstressed(stem)
-- applies only to стона́ть, застона́ть, простона́ть
local no_iotation = vclass == "6°c"
-- iotate the stem
local iotated_stem =
no_iotation and pres_stem or com.iotation(pres_stem, nil, data.shch)
local stem1a = stem_noa .. "а́"
forms["infinitive"] = stem_noa .. "а́ть"
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(iotated_stem, "[шщжч]$")
-- Participles
append_participles_2stem(forms, iotated_stem, nil, stem_noa, nil,
(hushing or no_iotation) and "ущий" or "ющий", {},
hushing and "а́" or "я́", "а́вший", "а́вши", "а́в", pres_note)
if vclass == "6c1a" then
-- then all the type 1a forms (both are the same in the past)
append_participles(forms, stem1a, nil, "ющий*", "емый", "я")
end
set_moving_ppp(forms, data)
if no_iotation then
present_e_c(forms, pres_stem, nil, pres_note)
else
present_je(forms, pres_stem, nil, "c", data.shch, pres_note)
end
append_imper(forms, iotated_stem, nil, "и́", "и́те", pres_note)
if vclass == "6c1a" then
present_je(forms, stem1a, nil, "a", nil, "*")
append_imper(forms, stem1a, nil, "й", "йте")
end
-- set prefix to "" as past stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil, stem_noa .. "а́", nil,
args, data)
if vclass == "6c1a" then
m_table.insertIfNot(data.internal_notes, "* Colloquial; type-6 forms preferred.")
end
return forms
end
conjugations["6c"] = function(args, data)
return guts_of_6c(args, data, "6c")
end
conjugations["6°c"] = function(args, data)
return guts_of_6c(args, data, "6°c")
end
conjugations["6c1a"] = function(args, data)
return guts_of_6c(args, data, "6c1a")
end
local function convert_last_e_to_yo(form)
return rsub(form,
"([еѣ])[́̀̈]*([^" .. com.vowel .. "]*)$",
function(e, nonvowels)
return (e == "е" and "ё" or "ѣ̈") .. nonvowels
end)
end
local function guts_of_7(args, data, forms)
local is7b = data.conj_type == "7b"
local full_inf = get_stressed_arg(args, 2)
local pres_stems = is7b and get_unstressed_arg(args, 3) or get_stressed_arg(args, 3)
pres_stems = rsplit(pres_stems, ",")
local past_stem
if past_stem ~= "ёе" then
past_stem = get_opt_stressed_arg(args, 4)
end
local past_stem_vowel_alt = past_stem == "ёе"
if past_stem_vowel_alt then
past_stem = nil
end
no_stray_args(args, 4)
forms["infinitive"] = full_inf
-- Construct the default past and present stem by a combination of
-- infinitive and present final consonant.
-- (1) Deduce the final consonant.
local final_cons
for _, pres_stem in ipairs(pres_stems) do
-- Final cons is -ст if pres stem ends in vowel + ст, else
-- single final cons [дтсзбп] (no actual examples of final п).
-- Note that final -з can occur after a consonant (e.g. ползти́).
local this_final_cons = rmatch(pres_stem,
"[" .. com.vowel .. "]" .. AC .. "?(ст)$")
if not this_final_cons then
this_final_cons = rmatch(pres_stem, "([дтсзбп])$")
end
if not this_final_cons then
error("Unable to determine final consonant from present stem " .. pres_stem)
end
if final_cons and this_final_cons ~= final_cons then
error("Present stems with conflicting final consonants specified: " ..
table.concat(pres_stems, ","))
end
final_cons = this_final_cons
end
-- (2) Find the infinitive minus the termination.
local prefix = rmatch(full_inf, "^(.*)[сз]т[иь]" .. AC .."?$")
if not prefix then
error("Strange infinitive " .. full_inf .. "in class 7")
end
-- (3) Combine infinitive with final consonant.
local default_pres_stem = prefix .. final_cons
if is7b then
default_pres_stem = com.make_unstressed(default_pres_stem)
end
local default_past_stem = default_pres_stem
if com.is_unstressed(default_past_stem) then
default_past_stem = com.make_ending_stressed(default_past_stem)
end
-- (4) Past stems ending in -д and -т when the infinitive ends in -сть (but not -сти or -сти́)
-- lose this consonant (page 85 of Zaliznyak, see also footnote 2 on that page).
if rfind(full_inf, "сть$") then
default_past_stem = rsub(default_past_stem, "[дт]$", "")
end
-- (5) If 7b and the past stem wasn't originally specified as ёе, the past stem gets
-- ё in place of е.
if is7b and not past_stem_vowel_alt then
default_past_stem = convert_last_e_to_yo(default_past_stem)
end
for _, pres_stem in ipairs(pres_stems) do
local pres_note = pres_stem ~= default_pres_stem and IRREG
if is7b then
present_e_b(forms, pres_stem, nil, pres_note)
append_imper(forms, pres_stem, nil, "и́", "и́те", pres_note)
else
present_e_a(forms, pres_stem, nil, pres_note)
append_imper_by_variant(forms, pres_stem, nil, data.imper_variant,
"7a", pres_note)
end
end
-- Construct the past stem if not specified. Note that we then derive a separate
-- past-tense stem from this stem, and this stem as such ends up applying only
-- to the past active and adverbial participles.
if not past_stem then
past_stem = default_past_stem
end
local past_note = past_stem ~= default_past_stem and IRREG
-- Derive the past tense stem from the past stem derived above. This has ё instead of е
-- in 7b verbs; it also loses д and т in all cases, when the past stem derived above only loses
-- these consonants in some cases.
local past_tense_stem = past_stem
if is7b then
past_tense_stem = convert_last_e_to_yo(past_tense_stem)
end
past_tense_stem = rsub(past_tense_stem, "[дт]$", "")
local vowel_pp = is_vowel_stem(past_stem)
local pap = vowel_pp and "вши" or "ши"
local var9_note_symbol = next_note_symbol(data)
for _, pres_stem in ipairs(pres_stems) do
local pres_note = pres_stem ~= default_pres_stem and IRREG
append_participles_2stem(forms, pres_stem, nil, past_stem, nil,
is7b and "у́щий" or "ущий", "-", is7b and "я́" or "я",
vowel_pp and "вший" or "ший",
data.var9 and {is7b and "я́" or "я", pap .. var9_note_symbol} or pap,
vowel_pp and not data.var9 and "в" or "-", pres_note, past_note)
end
if data.var9 then
m_table.insertIfNot(data.internal_notes, var9_note_symbol .. " Dated.")
end
-- set prefix to "" as past stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil, past_tense_stem, nil,
args, data,
-- 0 ending if the past stem ends in a consonant
not is_vowel_stem(past_tense_stem) and "no-pastml", past_note)
-- set PPP; must be done after both present 3sg and past fem have been set
set_class_7_8_ppp(forms, args, data)
end
conjugations["7a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"23", "и", "9","past", "+p"})
-- лезть - ле́зши - non-existent past_actv_part handled through general mechanism
guts_of_7(args, data, forms)
return forms
end
conjugations["7b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"9", "past", "+p"})
guts_of_7(args, data, forms)
return forms
end
local function class_8a_stem_to_infinitive(stem)
-- map e.g. вы́сек back to высе́чь
return rsub(stem, "[гк]$", "чь")
end
local function class_8b_stem_to_infinitive(stem)
-- map e.g. отвлёк back to отвле́чь
-- map e.g. зажёг back to заже́чь
return com.make_ending_stressed(rsub(rsub(rsub(stem, "ё", "е"), "ѣ̈", "ѣ"), "[гк]$", "чь"))
end
conjugations["8a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local full_inf = get_stressed_arg(args, 2)
local stem = get_stressed_arg(args, 3)
local stressed_past_stem = get_opt_stressed_arg(args, 4) or stem
no_stray_args(args, 4)
forms["infinitive"] = full_inf
local pres_note = class_8a_stem_to_infinitive(stem) ~= full_inf and IRREG
local stressed_past_note =
class_8a_stem_to_infinitive(stressed_past_stem) ~= full_inf and IRREG
-- default for pres_pasv_part is blank
append_participles_2stem(forms, stem, nil, stressed_past_stem, nil,
"ущий", "-", "-", "ший", "ши", "-", pres_note, stressed_past_note)
local iotated_stem = com.iotation(stem)
append_pres_futr(forms, iotated_stem, nil, {}, "ешь", "ет", "ем", "ете", {}, pres_note)
append_pres_futr(forms, stem, nil, "у", {}, {}, {}, {}, "ут", pres_note)
append_imper(forms, stem, nil, "и", "ите", pres_note)
-- set prefix to "" as stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil, stem, nil, args, data,
"no-pastml", pres_note)
forms["past_m"] = stressed_past_stem .. (stressed_past_note or "")
-- set PPP; must be done after both present 3sg and past fem have been set
set_class_7_8_ppp(forms, args, data)
return forms
end
conjugations["8b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local full_inf = get_stressed_arg(args, 2)
local stem = get_unstressed_arg(args, 3)
local stressed_past_stems = rsplit(args[4] or "ё", ",")
for _, stressed_past_stem in ipairs(stressed_past_stems) do
if stressed_past_stem ~= "е" then
check_stressed_arg(stressed_past_stem, 4)
end
end
no_stray_args(args, 4)
forms["infinitive"] = full_inf
local pres_note = class_8b_stem_to_infinitive(stem) ~= full_inf and IRREG
local iotated_stem = com.iotation(stem)
append_pres_futr(forms, iotated_stem, nil, {}, "ёшь", "ёт", "ём", "ёте", {}, pres_note)
append_pres_futr(forms, stem, nil, "у́", {}, {}, {}, {}, "у́т", pres_note)
append_imper(forms, stem, nil, "и́", "и́те", pres_note)
-- set prefix to "" as stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil,
com.make_ending_stressed(stem), nil, args, data, "no-pastml", pres_note)
forms["past_m"] = nil
for _, stressed_past_stem in ipairs(stressed_past_stems) do
local pastm_stem, past_part_stem
if stressed_past_stem == "е" then
past_part_stem = com.make_ending_stressed(stem)
pastm_stem = past_part_stem
elseif stressed_past_stem == "ё" then
past_part_stem = convert_last_e_to_yo(com.make_ending_stressed(stem))
pastm_stem = past_part_stem
elseif stressed_past_stem == "ёе" then
past_part_stem = com.make_ending_stressed(stem)
pastm_stem = convert_last_e_to_yo(past_part_stem)
else
pastm_stem = stressed_past_stem
past_part_stem = stressed_past_stem
end
local past_note =
class_8b_stem_to_infinitive(pastm_stem) ~= full_inf and IRREG
-- default for pres_pasv_part is blank; влечь -> влеко́мый handled through
-- general override mechanism
append_participles_2stem(forms, stem, nil, past_part_stem, nil,
"у́щий", "-", "-", "ший", "ши", "-", pres_note, past_note)
append_form(forms, "past_m", pastm_stem, nil, "", past_note)
end
-- set PPP; must be done after both present 3sg and past fem have been set
set_class_7_8_ppp(forms, args, data)
return forms
end
conjugations["9a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "еть")
local pres_stem = get_opt_stressed_arg(args, 3)
no_stray_args(args, 3)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
local default_pres_stem = prefix .. rsub(base, "е", "")
pres_stem = pres_stem or default_pres_stem
local pres_note = pres_stem ~= default_pres_stem and IRREG
forms["infinitive"] = stem .. "еть"
-- perfective only
append_participles(forms, stem, nil, "-", "-", "-", "ший", "ши", "ев")
present_e_a(forms, pres_stem, nil, pres_note)
append_imper(forms, pres_stem, nil, "и", "ите", pres_note)
-- past_m doesn't end in л
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data, "no-pastml")
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["9b"] = function(args, data)
local forms = {}
--for this type, it's important to distinguish impf and pf
local impf = rfind(data.verb_type, "^impf")
parse_variants(data, args[1], {"past", "+p", "*"})
local stem_noa = com.strip_ending(get_stressed_arg(args, 2), nil, "е́ть")
local stem = rsub(stem_noa, "(.*)е", "%1ё")
local pres_stem = get_opt_unstressed_arg(args, 3)
-- stem used for past active and adverbial participles; defaults to past_m
local past_part_stem = get_opt_stressed_arg(args, 4)
no_stray_args(args, 4)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem, nil, "single_cons_base")
local default_pres_stem =
data.star and construct_long_prefix_variant(prefix) .. rsub(base, "[её]", "") or
prefix .. rsub(base, "[её]", "")
pres_stem = pres_stem or default_pres_stem
local pres_note = pres_stem ~= default_pres_stem and IRREG
forms["infinitive"] = stem_noa .. "е́ть"
present_e_b(forms, pres_stem, nil, pres_note)
append_imper(forms, pres_stem, nil, "и́", "и́те", pres_note)
-- past_m doesn't end in л
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data, "no-pastml")
set_ppp_from_past_m(forms, args, data)
append_participles_2stem(forms, pres_stem, nil, stem, nil, "у́щий", {}, {},
-- impf: тереть -> тёрши
-- pf: растереть -> растёрши, растере́в
-- we handle (рас)тёрши down below because the stress depends on the
-- past_m: запереть -> за́пер, за́перши(й)
{}, {}, impf and {} or "е́в", pres_note)
if past_part_stem then
for _, ppstem in ipairs(rsplit(past_part_stem, ",")) do
append_participles(forms, ppstem, nil, {}, {}, {}, "ший", "ши", {})
end
else
iterate_over_prop(forms, args, "past_m", function(ru, tr, note)
append_participles(forms, ru, tr, {}, {}, {}, "ший", "ши", {}, note)
end)
end
return forms
end
conjugations["10a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"+p", "7"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "оть")
no_stray_args(args, 2)
forms["infinitive"] = stem .. "оть"
-- These verbs are perfective-only, no present participles
append_participles(forms, stem, nil, "-", "-", "-", "овший", "овши", "ов")
set_moving_ppp(forms, data)
present_je(forms, stem, nil, "a")
append_imper(forms, stem, nil, "и", "ите")
set_past(forms, stem .. "ол", nil, "", "а", "о", "и")
return forms
end
conjugations["10c"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"+p", "7"})
local inf_stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
-- present tense stressed stem "моло́ть" - ме́лет
local pres_stem = get_opt_stressed_arg(args, 3)
no_stray_args(args, 3)
local default_pres_stem =
com.make_ending_stressed(com.strip_ending(inf_stem, nil, "о́"))
pres_stem = pres_stem or default_pres_stem
-- remove accent for some forms
local pres_stem_noa = com.remove_accents(pres_stem)
local pres_note = pres_stem ~= default_pres_stem and IRREG
forms["infinitive"] = inf_stem .. "ть"
-- default for pres_pasv_part is blank
append_participles_2stem(forms, pres_stem, nil, inf_stem, nil,
"ющий", "-", "я́", "вший", "вши", "в", pres_note)
set_moving_ppp(forms, data)
present_je(forms, pres_stem, nil, "c", nil, pres_note)
append_imper(forms, pres_stem_noa, nil, "и́", "и́те", pres_note)
set_past(forms, inf_stem .. "л", nil, "", "а", "о", "и")
return forms
end
conjugations["11a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ить")
no_stray_args(args, 2)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem .. "и")
forms["infinitive"] = stem .. "ить"
-- perfective only
append_participles(forms, stem, nil, "-", "-", "-", "ивший", "ивши", "ив")
present_je(forms, stem .. "ь", nil, "a")
append_imper(forms, stem .. "ей", nil, "", "те")
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["11b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p", "*"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "и́ть")
local pres_stem = get_opt_unstressed_arg(args, 3)
no_stray_args(args, 3)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem .. "и́", nil, "single_cons_base")
local default_pres_stem =
data.star and construct_long_prefix_variant(prefix) .. rsub(base, "и́$", "") or
stem
pres_stem = pres_stem or default_pres_stem
local pres_note = pres_stem ~= default_pres_stem and IRREG
forms["infinitive"] = stem .. "и́ть"
append_participles_2stem(forms, pres_stem, nil, stem, nil,
"ью́щий", "-", "ья́", "и́вший", "и́вши", "и́в", pres_note)
present_je(forms, pres_stem .. "ь", nil, "b", nil, pres_note)
append_imper(forms, stem .. "е́й", nil, "", "те")
-- e.g. пила́, лила́
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["12a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
local pres_stem = get_opt_stressed_arg(args, 3)
no_stray_args(args, 3)
local default_pres_stem = stem
pres_stem = pres_stem or default_pres_stem
local pres_note = pres_stem ~= default_pres_stem and IRREG
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
forms["infinitive"] = stem .. "ть"
append_participles_2stem(forms, pres_stem, nil, stem, nil,
"ющий", "емый", "я", "вший", "вши", "в", pres_note)
present_je(forms, pres_stem, nil, "a", nil, pres_note)
append_imper(forms, pres_stem .. "й", nil, "", "те", pres_note)
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["12b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
local pres_stem = get_opt_unstressed_arg(args, 3)
no_stray_args(args, 3)
local default_pres_stem = com.make_unstressed_once(stem)
pres_stem = pres_stem or default_pres_stem
local pres_note = pres_stem ~= default_pres_stem and IRREG
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
forms["infinitive"] = stem .. "ть"
-- no pres_pasv_part
append_participles_2stem(forms, pres_stem, nil, stem, nil,
"ю́щий", "-", "я́", "вший", "вши", "в", pres_note)
present_je(forms, pres_stem, nil, "b", nil, pres_note)
-- the preceding vowel is stressed
append_imper(forms, pres_stem .. "́й", nil, "", "те", pres_note)
-- e.g. гнила́ but пе́ла
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["13b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
local pres_stem = com.strip_ending(stem, nil, "ва́")
no_stray_args(args, 2)
forms["infinitive"] = stem .. "ть"
-- tricky to use append_participles_2stem() because only pres_actv_part
-- uses pres_stem, not all present participles
forms["pres_actv_part"] = pres_stem .. "ю́щий"
forms["pres_pasv_part"] = stem .. "емый"
forms["pres_adv_part"] = stem .. "я"
forms["past_actv_part"] = stem .. "вший"
forms["past_adv_part"] = stem .. "вши"
forms["past_adv_part_short"] = stem .. "в"
set_moving_ppp(forms, data)
present_je(forms, pres_stem, nil, "b")
forms["impr_sg"] = stem .. "й"
forms["impr_pl"] = stem .. "йте"
set_past(forms, stem .. "л", nil, "", "а", "о", "и")
return forms
end
conjugations["14a"] = function(args, data)
-- only one verb: вы́жать
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
local pres_stem = get_stressed_arg(args, 3)
no_stray_args(args, 3)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
forms["infinitive"] = stem .. "ть"
-- perfective only
append_participles(forms, stem, nil, "-", "-", "-", "вший", "вши", "в")
present_e_a(forms, pres_stem)
forms["impr_sg"] = pres_stem .. "и"
forms["impr_pl"] = pres_stem .. "ите"
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["14b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
local pres_stem = get_unstressed_arg(args, 3)
no_stray_args(args, 3)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
forms["infinitive"] = stem .. "ть"
-- no pres_pasv_part
append_participles_2stem(forms, pres_stem, nil, stem, nil,
"у́щий", "-", "я́", "вший", "вши", "в")
present_e_b(forms, pres_stem)
forms["impr_sg"] = pres_stem .. "и́"
forms["impr_pl"] = pres_stem .. "и́те"
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["14c"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
local pres_stem = get_stressed_arg(args, 3)
local pres_stem_noa = com.make_unstressed(pres_stem)
no_stray_args(args, 3)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
forms["infinitive"] = stem .. "ть"
-- no pres_pasv_part
append_participles_2stem(forms, pres_stem, nil, stem, nil,
"у́щий", "-", "я́", "вший", "вши", "в")
present_e_c(forms, pres_stem)
forms["impr_sg"] = pres_stem_noa .. "и́"
forms["impr_pl"] = pres_stem_noa .. "и́те"
--two forms for past_m: при́нялся, приня́лся
--изъя́ла but приняла́
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["15a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
no_stray_args(args, 2)
forms["infinitive"] = stem .. "ть"
-- no pres_pasv_part
-- no pres_adv_part
append_participles(forms, stem, nil, "нущий", "-", "-", "вший", "вши", "в")
present_e_a(forms, stem .. "н")
forms["impr_sg"] = stem .. "нь"
forms["impr_pl"] = stem .. "ньте"
set_past(forms, stem .. "л", nil, "", "а", "о", "и")
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["16a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
no_stray_args(args, 2)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
forms["infinitive"] = stem .. "ть"
-- no pres_pasv_part
-- no pres_adv_part
append_participles(forms, stem, nil, "ву́щий", "-", "-", "вший", "вши", "в")
present_e_a(forms, stem .. "в")
forms["impr_sg"] = stem .. "ви"
forms["impr_pl"] = stem .. "вите"
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["16b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
local stem_noa = com.make_unstressed(stem)
no_stray_args(args, 2)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
forms["infinitive"] = stem .. "ть"
-- no pres_pasv_part
append_participles(forms, stem, nil, "ву́щий", "-", "вя́", "вший", "вши", "в")
present_e_b(forms, stem_noa .. "в")
forms["impr_sg"] = stem_noa .. "ви́"
forms["impr_pl"] = stem_noa .. "ви́те"
-- e.g. прижило́сь, прижи́лось
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["irreg"] = function(args, data)
local main = select(3, split_known_main_verb(get_stressed_arg(args, 2),
-- честь must go before есть
{"бежа́ть", "бѣжа́ть", "хоте́ть", "хотѣ́ть", "да́ть", "че́сть",
"е́сть", "ѣ́сть", "сы́пать", "лга́ть", "мо́чь", "идти́", "йти́",
"е́хать", "ѣ́хать", "мину́ть", "живописа́ть", "ле́чь",
"зи́ждить", "зы́бить", "кля́сть", "стели́ть", "бы́ть", "сса́ть", "сца́ть",
"чти́ть", "шиби́ть", "реве́ть", "има́ть", "вня́ть", "обя́зывать"}))
main = com.make_unstressed_once(main)
if not conjugations["irreg-" .. main] then
error("Strange, can't find conjugation for main verb " .. main)
end
return conjugations["irreg-" .. main](args, data)
end
conjugations["irreg-бежать"] = function(args, data)
-- irregular, only for verbs derived from бежать with the same stress pattern
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2),
{"бежа́ть", "бѣжа́ть"})
data.title = com.is_stressed(prefix) and "5a" or "5b"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "бежа́ть"
append_participles_2stem(forms, "бег", nil, "бежа́", nil,
"у́щий", "-", "-", "вший", "вши", "в", IRREG)
append_imper(forms, "беги́", nil, "", "те", IRREG)
append_pres_futr(forms, "бе", nil,
"гу́" .. IRREG, "жи́шь", "жи́т", "жи́м", "жи́те", "гу́т" .. IRREG)
set_past(forms, "бежа́л", nil, "", "а", "о", "и")
if data.old then
rsub_forms(forms, "^бе", "бѣ")
end
prepend_prefix(forms, prefix)
-- no PPP's for any derivatives of бежать
return forms
end
conjugations["irreg-бѣжать"] = conjugations["irreg-бежать"]
conjugations["irreg-хотеть"] = function(args, data)
-- irregular, only for verbs derived from хотеть with the same stress pattern
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2),
{"хоте́ть", "хотѣ́ть"})
data.title = "5c'"
data.cat_conj_types = {"5c"} -- no class for 5c', no point in creating for just this verb
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "хоте́ть"
append_participles_2stem(forms, "хот", nil, "хоте́", nil,
"я́щий", "-", "я́", "вший", "вши", "в")
append_imper(forms, "хоти́", nil, "", "те")
append_pres_futr(forms, "", nil,
"хочу́", "хо́чешь" .. IRREG, "хо́чет" .. IRREG, "хоти́м", "хоти́те", "хотя́т")
set_past(forms, "хоте́л", nil, "", "а", "о", "и")
if data.old then
rsub_forms(forms, "^хоте", "хотѣ")
end
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-хотѣть"] = conjugations["irreg-хотеть"]
conjugations["irreg-дать"] = function(args, data)
-- irregular, only for verbs derived from дать with the same stress pattern and вы́дать
local forms = {}
--for this type, it's important to distinguish if it's reflexive to set some stress patterns
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "да́ть")
data.title = com.is_stressed(prefix) and "irreg-a" or "irreg-b"
parse_variants(data, args[1], {"past", "+p"})
no_stray_args(args, 2)
forms["infinitive"] = "да́ть"
-- no pres_pasv_part
-- no pres_adv_part
append_participles(forms, "", nil, "даю́щий", "-", "-",
"да́вший", "да́вши", "да́в")
append_imper(forms, "да́й", nil, "", "те")
append_pres_futr(forms, "", nil,
"да́м", "да́шь", "да́ст", "дади́м", "дади́те", "даду́т")
prepend_prefix(forms, prefix)
set_past_by_stress(forms, data.past_stress, prefix, nil, "да́", nil,
args, data)
if data.ppp then
if prefix == "пере" then
set_ppp(forms, "", nil, "пе́реданный")
elseif prefix == "раз" then
set_ppp(forms, "", nil, "ро́зданный")
else
set_moving_ppp(forms, data)
end
end
return forms
end
conjugations["irreg-есть"] = function(args, data)
-- irregular, only for verbs derived from есть
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2),
{"е́сть", "ѣ́сть"})
data.title = com.is_stressed(prefix) and "irreg-a" or "irreg-b"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "е́сть"
append_participles_2stem(forms, "ед", nil, "е́", nil,
"я́щий", "о́мый", "я́", "вший", "вши", "в")
if data.ppp then
set_ppp(forms, "е́д", nil, "енный")
end
append_imper(forms, "е́шь", nil, "", "те")
append_pres_futr(forms, "е́", nil,
"м", "шь", "ст", "ди́м", "ди́те", "дя́т")
set_past(forms, "е́л", nil, "", "а", "о", "и")
if data.old then
rsub_forms(forms, "^е", "ѣ")
end
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-ѣсть"] = conjugations["irreg-есть"]
conjugations["irreg-сыпать"] = function(args, data)
-- irregular, only for verbs derived from сыпать
local forms = {}
--for this type, it's important to distinguish if it's reflexive for вы́сыпаться vs. вы́сыпать imperative
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "сы́пать")
data.title = "6a"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "сы́пать"
append_participles(forms, "сы́п", nil,
"лющий", "лемый", {"ля", "я" .. IRREG}, "авший", "авши", "ав")
append_imper(forms, "сы́п", nil,
-- вы́сыпать (but not вы́сыпаться) has two imperative singulars
com.is_stressed(prefix) and not data.refl and {"и", "ь"} or "ь", "ьте", IRREG)
present_je(forms, "сы́пл", nil, "a")
append_pres_futr(forms, "сы́п", nil,
{}, "ешь", "ет", "ем", "ете", {}, IRREG)
set_past(forms, "сы́пал", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
set_moving_ppp(forms, data)
return forms
end
conjugations["irreg-лгать"] = function(args, data)
-- irregular, only for verbs derived from лгать with the same stress pattern
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "лга́ть")
data.title = "6°b/c"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "лга́ть"
-- no pres_pasv_part
-- no pres_adv_part
append_participles(forms, "лг", nil,
"у́щий", "-", "-", "а́вший", "а́вши", "а́в")
append_imper(forms, "лги́", nil, "", "те")
append_pres_futr(forms, "", nil,
"лгу́", "лжёшь" .. IRREG, "лжёт" .. IRREG, "лжём" .. IRREG, "лжёте" .. IRREG, "лгу́т")
set_past(forms, "лга́л", nil, "", "а́", "о", "и")
prepend_prefix(forms, prefix)
set_moving_ppp(forms, data)
return forms
end
conjugations["irreg-мочь"] = function(args, data)
-- irregular, only for verbs derived from мочь with the same stress pattern
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "мо́чь")
data.title = "8c/b"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "мо́чь"
-- no passive or adverbial participles
append_participles(forms, "мо́г", nil,
"у́щий", "-", "-", "ший", "-", "-")
append_imper(forms, "моги́", nil, "", "те")
append_pres_futr(forms, "", nil,
"могу́", "мо́жешь", "мо́жет", "мо́жем", "мо́жете", "мо́гут")
set_past(forms, "мо́г", nil, "", "ла́", "ло́", "ли́")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-идти"] = function(args, data)
-- irregular, only for verbs derived from идти, including прийти́ and в́ыйти
local forms = {}
local prefix = args[2] == "идти́" and "" or
split_known_main_verb(get_stressed_arg(args, 2), "йти́")
data.title = com.is_stressed(prefix) and "irreg-a" or "irreg-b/b"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
-- no pres_pasv_part
if prefix == "" then
-- only идти, present imperfective
forms["infinitive"] = "идти́"
append_imper(forms, "иди́", nil, "", "те")
present_e_b(forms, "ид")
-- no past_adv_part_short
append_participles(forms, "", nil,
"иду́щий", "-", "идя́", "ше́дший", "ше́дши", "-")
elseif rfind(prefix, "и$") then -- при
forms["infinitive"] = "йти́"
append_imper(forms, "ди́", nil, "", "те")
present_e_b(forms, "д")
append_participles(forms, "", nil,
"-", "-", "-", "ше́дший", "ше́дши", "дя́")
else
forms["infinitive"] = "йти́"
append_imper(forms, "йди́", nil, "", "те")
present_e_b(forms, "йд")
append_participles(forms, "", nil,
"-", "-", "-", "ше́дший", "ше́дши", "йдя́")
end
set_past(forms, "", nil, "шёл", "шла́", "шло́", "шли́")
prepend_prefix(forms, prefix)
if data.ppp then
if prefix == "на" or prefix == "про" then
-- найти́ and пройти́ exceptionally have the stress on the prefix
set_ppp(forms, prefix, nil, "́йденный")
else
-- вы́йти and прийти́ are intransitive so we don't have to worry about them
set_ppp(forms, prefix, nil, "йдённый")
end
end
return forms
end
conjugations["irreg-йти"] = conjugations["irreg-идти"]
conjugations["irreg-ехать"] = function(args, data)
-- irregular, only for verbs derived from ехать
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2),
{"е́хать", "ѣ́хать"})
data.title = "irreg-a"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "е́хать"
-- no pres_pasv_part
-- no pres_adv_part
append_participles_2stem(forms, "е́д", nil, "е́х", nil,
"ущий", "-", "-", "авший", "авши", "ав")
present_e_a(forms, "е́д")
set_past(forms, "е́хал", nil, "", "а", "о", "и")
if data.old then
rsub_forms(forms, "^е", "ѣ")
end
prepend_prefix(forms, prefix)
--special-case the imperative
--literary (special) imperative forms for ехать are поезжа́й, поезжа́йте
local impstem = data.old and "ѣзжа́й" or "езжа́й"
if prefix == "" then
append_imper(forms, "по" .. impstem, nil, "", "те")
append_imper(forms, impstem, nil, "", "те")
elseif com.is_stressed(prefix) then
append_imper(forms, com.make_unstressed_once(prefix) .. impstem, nil, "", "те")
else
append_imper(forms, prefix .. impstem, nil, "", "те")
end
return forms
end
conjugations["irreg-ѣхать"] = conjugations["irreg-ехать"]
conjugations["irreg-минуть"] = function(args, data)
-- for the irregular verb "мину́ть"
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "мину́ть")
data.title = "3c"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "мину́ть"
-- no pres_pasv_part
-- no pres_adv_part
append_participles(forms, "ми́н", nil,
"у́щий", "-", "-", "у́вший", "у́вши", "у́в")
present_e_c(forms, "ми́н")
forms["pres_futr_1sg"] = "-" -- no futr 1sg
-- no imperative
-- two possible variants, one with root-only stress, the other with
-- either root or suffix stress.
if not args["root_past_stress"] then
append_past(forms, "мину́л", nil, "", "а", "о", "и")
end
append_past(forms, "ми́нул", nil, "", "а", "о", "и", IRREG)
prepend_prefix(forms, prefix)
set_moving_ppp(forms, data)
return forms
end
conjugations["irreg-живописать"] = function(args, data)
-- for irregular verb "живописа́ть", mixture of types 1 and 2
local forms = {}
local inf = get_stressed_arg(args, 2)
data.title = "1a"
parse_variants(data, args[1], {"+p"})
local inf_stem = com.strip_ending(inf, nil, "ть")
local pres_stem = rfind(inf_stem, "а́$") and rsub(inf_stem, "а́$", "у́")
or error("Unexpected infinitive " .. inf)
no_stray_args(args, 2)
forms["infinitive"] = inf_stem .. "ть"
-- no pres_pasv_part
append_participles_2stem(forms, pres_stem, nil, inf_stem, nil,
"ющий", "-", "я", "вший", "вши", "в", IRREG)
set_moving_ppp(forms, data)
present_je(forms, pres_stem, nil, "a", nil, IRREG)
append_imper(forms, pres_stem .. "й", nil, "", "те", IRREG)
set_past(forms, inf_stem .. "л", nil, "", "а", "о", "и")
return forms
end
conjugations["irreg-лечь"] = function(args, data)
-- irregular, only for verbs derived from лечь with the same stress pattern
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "ле́чь")
data.title = "8a/b"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "ле́чь"
-- no pres parts because always perfective
-- no past_adv_part_short
append_participles(forms, "лёг", nil,
"-", "-", "-", "ший", "ши", "-")
append_imper(forms, "ля́г", nil, "", "те", IRREG)
append_pres_futr(forms, "ля́", nil,
"гу", "жешь", "жет", "жем", "жете", "гут", IRREG)
set_past(forms, "", nil, "лёг", "легла́", "легло́", "легли́")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-честь"] = function(args, data)
-- irregular, only for verbs derived from идти, including прийти́ and в́ыйти
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "че́сть")
local pre_two_cons_prefix =
prefix == "об" and "обо" or
prefix == "с" and "со" or
prefix == "рас" and "разо" or
prefix
data.title = prefix == "" and "7b/b" or com.is_stressed(prefix) and "7a⑨" or
pre_two_cons_prefix ~= prefix and "7*b/b⑨" or "7b/b⑨"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
-- no pres_pasv_part
forms["infinitive"] = "че́сть"
append_imper(forms, "чти́", nil, "", "те", IRREG)
present_e_b(forms, "чт", nil, IRREG)
if prefix == "" then
append_participles(forms, "", nil,
"чту́щий", "-", "чтя́", "чти́вший", "чти́вши", "чти́в", IRREG)
elseif com.is_stressed(prefix) then
append_participles(forms, "", nil,
"-", "-", "-", "-", "чтя́", "-", IRREG)
else
append_participles(forms, "", nil,
"-", "-", "-", "-", {"чтя́" .. IRREG, "чётши*"}, "-")
m_table.insertIfNot(data.internal_notes, "* Dated.")
end
if data.ppp then
set_ppp(forms, "", nil, "чтённый" .. IRREG)
end
set_past(forms, "", nil, "чёл", "чла́" .. IRREG, "чло́" .. IRREG, "чли́" .. IRREG)
prepend_prefix(forms, prefix, pre_two_cons_prefix)
return forms
end
conjugations["irreg-зиждить"] = function(args, data)
-- irregular, only for verbs derived from зиждить(ся) with the same stress pattern
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "зи́ждить")
data.title = "irreg-a"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "зи́ждить"
append_participles(forms, "зи́жд", nil,
"ущий", "емый", "я", "ивший", "ивши", "ив")
if data.ppp then
set_ppp(forms, "зи́жд", nil, "енный")
end
append_imper(forms, "зи́жди", nil, "", "те")
present_e_a(forms, "зи́жд")
set_past(forms, "зи́ждил", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-зыбить"] = function(args, data)
-- irregular, only for verbs derived from зыбить
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "зы́бить")
data.title = "irreg-a"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "зы́бить"
append_participles(forms, "зы́б", nil,
"лющий", "лемый", "ля", "ивший", "ивши", "ив")
append_imper(forms, "зы́бли", nil, "", "те")
present_je(forms, "зы́б", nil, "a")
set_past(forms, "зы́бил", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-клясть"] = function(args, data)
-- irregular, only for verbs derived from клясть with the same stress pattern
local forms = {}
--for this type, it's important to distinguish if it's reflexive to set some stress patterns
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "кля́сть")
data.title = "irreg-b"
parse_variants(data, args[1], {"past", "+p"})
no_stray_args(args, 2)
forms["infinitive"] = "кля́сть"
append_participles_2stem(forms, "клян", nil, "кля́", nil,
"у́щий", "и́мый", "я́", "вший", "вши", "в")
append_imper(forms, "кляни́", nil, "", "те")
present_e_b(forms, "клян")
prepend_prefix(forms, prefix)
set_past_by_stress(forms, data.past_stress, prefix, nil, "кля́", nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["irreg-стелить"] = function(args, data)
-- irregular, only for verbs derived from стелить
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "стели́ть")
data.title = com.is_stressed(prefix) and "4a" or "4c"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "стели́ть"
append_participles(forms, "сте́л", nil,
"ющий" .. IRREG, "и́мый", "я́", "и́вший", "и́вши", "и́в")
set_class_4_ppp(forms, data, "сте́л", nil, data.title)
append_imper(forms, "стели́", nil, "", "те")
append_pres_futr(forms, "сте́л", nil, "ю́", {}, {}, {}, {}, {})
append_pres_futr(forms, "сте́л", nil, {}, "ешь", "ет", "ем", "ете", "ют", IRREG)
set_past(forms, "стели́л", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-быть"] = function(args, data)
-- irregular, only for verbs derived from быть with various stress patterns, the actual verb быть different from its derivatives
local forms = {}
--for this type, it's important to distinguish if it's reflexive to set some stress patterns
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "бы́ть")
data.title = "irreg-a"
parse_variants(data, args[1], {"past", "+p"})
no_stray_args(args, 2)
forms["infinitive"] = "бы́ть"
-- no pres_pasv_part
append_participles(forms, "", nil, "су́щий", "-", "бу́дучи",
"бы́вший", "бы́вши", "бы́в")
append_imper(forms, "бу́дь", nil, "", "те")
prepend_prefix(forms, prefix)
-- only for "бы́ть", some forms are archaic
if forms["infinitive"] == "бы́ть" then
append_pres_futr(forms, "", nil, "есть", "есть", "есть", "есть", "есть", "есть")
elseif com.is_stressed(prefix) then
-- if the prefix is stressed, e.g. "вы́быть"
present_e_a(forms, prefix .. "буд")
else
present_e_a(forms, prefix .. "бу́д")
end
set_past_by_stress(forms, data.past_stress, prefix, nil, "бы́", nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["irreg-ссать-сцать"] = function(args, data)
-- irregular, only for verbs derived from ссать and сцать (both vulgar!)
local forms = {}
local prefix, _, stem = split_known_main_verb(get_stressed_arg(args, 2),
{"сса́ть", "сца́ть"})
data.title = com.is_stressed(prefix) and "irreg-a" or "irreg-b"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
stem = com.strip_ending(stem, nil, "ть")
local pres_stem = rsub(stem, "а́?$", "")
no_stray_args(args, 2)
forms["infinitive"] = stem .. "ть"
-- no pres_pasv_part
-- no pres_adv_part
append_participles(forms, pres_stem, nil, "у́щий", "-", "-",
"а́вший", "а́вши", "а́в")
append_imper(forms, pres_stem, nil, "ы́", "ы́те")
append_pres_futr(forms, pres_stem, nil,
"у́", "ы́шь", "ы́т", "ы́м", "ы́те", "у́т")
set_past(forms, stem .. "л", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-ссать"] = conjugations["irreg-ссать-сцать"]
conjugations["irreg-сцать"] = conjugations["irreg-ссать-сцать"]
conjugations["irreg-чтить"] = function(args, data)
-- irregular, only for verbs derived from чтить
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "чти́ть")
data.title = "4b"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "чти́ть"
append_participles_2stem(forms, "чт", nil, "чти́", nil,
{"я́щий", "у́щий" .. IRREG}, "и́мый", "я́", "вший", "вши", "в")
if data.ppp then
set_ppp(forms, "чт", nil, "ённый")
end
append_imper(forms, "чти́", nil, "", "те")
append_pres_futr(forms, "чт", nil,
"у́" .. IRREG, "и́шь", "и́т", "и́м", "и́те", {"я́т", "у́т" .. IRREG})
set_past(forms, "чти́л", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-шибить"] = function(args, data)
-- irregular, only for verbs in -шибить(ся)
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "шиби́ть")
data.title = com.is_stressed(prefix) and "irreg-a" or "irreg-b"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
-- no present participles
forms["infinitive"] = "шиби́ть"
append_participles(forms, "шиби́", nil,
"-", "-", "-", "вший", "вши", "в")
if data.ppp then
set_ppp(forms, "ши́бл", nil, "енный")
end
append_imper(forms, "шиби́", nil, "", "те")
present_e_b(forms, "шиб")
set_past(forms, "ши́б", nil, "", "ла", "ло", "ли")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-реветь"] = function(args, data)
-- irregular, only for verbs derived from "реветь"
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "реве́ть")
data.title = "irreg-b"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "реве́ть"
-- no pres_pasv_part
append_participles_2stem(forms, "рев", nil, "реве́", nil,
"у́щий", "-", "я́", "вший", "вши", "в")
present_e_b(forms, "рев")
append_imper(forms, "реви́", nil, "", "те")
set_past(forms, "реве́л", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-имать"] = function(args, data)
-- irregular, only for внимать and certain archaic verbs (e.g. имать as
-- conjugated in the 18th century, отъимать)
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "има́ть")
data.title = "1a // 6a"
data.cat_conj_types = {"1a", "6a"}
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "има́ть"
-- handle внемл- forms
append_participles(forms, "е́мл", nil,
"ющий", "емый", {"я", "я́"}, {}, {}, {})
-- handle внима́- forms
append_participles(forms, "има́", nil,
"ющий", "емый", "я", "вший", "вши", "в")
if data.ppp then
-- FIXME, do class-1a-type ppp's (e.g. вни́манный) exist?
-- ruwikt marks them with a *
set_ppp(forms, "е́мл", nil, "енный")
end
append_imper(forms, "", nil, {"е́мли", "емли́", "има́й"},
{"е́млите", "емли́те", "има́йте"})
present_je(forms, "е́мл", nil, "a")
-- Both вне́млю and внемлю́ are possible
append_pres_futr(forms, "емл", nil, "ю́", {}, {}, {}, {}, {})
present_je(forms, "има́", nil, "a")
set_past(forms, "има́л", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-внять"] = function(args, data)
-- irregular, only for внять
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "вня́ть")
data.title = "14c/c"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "вня́ть"
-- perfective only; no present participles
append_participles(forms, "вня́", nil,
"-", "-", "-", "вший", "вши", "в")
append_imper(forms, "вними́", nil, "", "те")
append_imper(forms, "вонми́", nil, "", "те")
present_e_c(forms, "вни́м")
present_e_c(forms, "во́нм")
set_past(forms, "вня́л", nil, "", "а́", "о", "и")
set_ppp_from_past_m(forms, args, data)
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-обязывать"] = function(args, data)
-- irregular, only for обязывать and обязываться
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "обя́зывать")
data.title = "1a"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "обя́зывать"
append_participles_2stem(forms, "обя́з", nil, "обя́зыва", nil,
{"ывающий", "у́ющий"}, {"ываемый", "у́емый"}, {"ывая", "у́я"}, "вший", "вши", "в")
append_imper(forms, "обя́зывай", nil, "", "те")
append_imper(forms, "обязу́й", nil, "", "те")
present_je(forms, "обя́зыва", nil, "a")
present_je(forms, "обязу́", nil, "a")
set_past(forms, "обя́зывал", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
--[=[
Partial conjugation functions
]=]
-- Present forms with -e-, no j-vowels.
present_e_a = function(forms, stem, tr, note)
append_pres_futr(forms, stem, tr, "у", "ешь", "ет", "ем", "ете", "ут", note)
end
present_e_b = function(forms, stem, tr, note)
append_pres_futr(forms, stem, tr, "у́", "ёшь", "ёт", "ём", "ёте", "у́т", note)
end
present_e_c = function(forms, stem, tr, note)
append_pres_futr(forms, stem, tr, "у́", "ешь", "ет", "ем", "ете", "ут", note)
end
-- Present forms with -e- and iotated stem. ABC = "a", "b" or "c", indicating
-- the accent pattern. If SHCH is set, iotate final т as щ, not ч. If NOTE
-- is given, add it to each form.
present_je = function(forms, stem, tr, abc, shch, note)
local iotated_stem, iotated_tr = com.iotation(stem, tr, shch)
assert(abc == "a" or abc == "b" or abc == "c")
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(iotated_stem, "[шщжч]$") -- or no_iotation
local ending_1sg =
hushing and (abc == "a" and "у" or "у́") or
not hushing and (abc == "a" and "ю" or "ю́")
if abc == "b" then
append_pres_futr(forms, iotated_stem, iotated_tr,
{}, "ёшь", "ёт", "ём", "ёте", (hushing and "у́т" or "ю́т"), note)
else
append_pres_futr(forms, iotated_stem, iotated_tr,
{}, "ешь", "ет", "ем", "ете", (hushing and "ут" or "ют"), note)
end
append_pres_futr(forms, iotated_stem, iotated_tr,
ending_1sg, {}, {}, {}, {}, {}, note)
end
-- Present forms with -i- (and iotated stem in the 1sg). ABC = "a", "b" or "c",
-- indicating the accent pattern. If SHCH is set, iotate final т as щ, not ч.
-- If NOTE is given, add it to each form.
present_i = function(forms, stem, tr, abc, shch, note)
local iotated_stem, iotated_tr = com.iotation(stem, tr, shch)
assert(abc == "a" or abc == "b" or abc == "c")
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local iotated_hushing = rfind(iotated_stem, "[шщжч]$")
local hushing = rfind(stem, "[шщжч]$")
local ending_1sg =
iotated_hushing and (abc == "a" and "у" or "у́") or
not iotated_hushing and (abc == "a" and "ю" or "ю́")
if abc == "b" then
append_pres_futr(forms, stem, tr,
{}, "и́шь", "и́т", "и́м", "и́те", hushing and "а́т" or "я́т", note)
else
append_pres_futr(forms, stem, tr,
{}, "ишь", "ит", "им", "ите", hushing and "ат" or "ят", note)
end
append_pres_futr(forms, iotated_stem, iotated_tr,
ending_1sg, {}, {}, {}, {}, {}, note)
end
-- Add the reflexive particle to all verb forms
make_reflexive = function(forms, reflex_stress)
for key, form in pairs(forms) do
local ru, tr = extract_russian_tr(form)
-- check for empty string, dashes and nil's
if ru and ru ~= "" and ru ~= "-" then
local ruentry, runotes = m_table_tools.separate_notes(ru)
local trentry, trnotes
if tr then
trentry, trnotes = m_table_tools.separate_notes(tr)
end
if is_vowel_stem(ruentry) then
forms[key] = {ruentry .. "сь" .. runotes, trentry and trentry .. "sʹ" .. trnotes}
-- if a past_m form doesn't contain a stress, add a stressed
-- particle "ся́" if called for
elseif reflex_stress and com.is_unstressed(ruentry) and rfind(key, "^past_m") then
forms[key] = {ruentry .. "ся́" .. runotes, trentry and trentry .. "sja" .. AC .. trnotes}
else
forms[key] = {ruentry .. "ся" .. runotes, trentry and trentry .. "sja" .. trnotes}
end
end
end
end
-- Convert verb forms to pre-reform style by adding ъ to consonant-final
-- forms (excluding those ending in й and ь) and converting -ий to -ій and
-- -ийся to -ійся
make_pre_reform = function(forms)
for key, form in pairs(forms) do
local ru, tr = extract_russian_tr(form)
-- check for empty string, dashes and nil's
if ru and ru ~= "" and ru ~= "-" then
local ruentry, runotes = m_table_tools.separate_notes(ru)
if rfind(ruentry, "[бцдфгчклмнпрствшхзжщ]$") then
forms[key] = {ruentry .. "ъ" .. runotes, tr}
else
forms[key] = {rsub(rsub(ruentry, "ий$", "ій"), "ийся$", "ійся") .. runotes, tr}
end
end
end
end
local function setup_pres_futr(forms, perf, old)
-- Copy the main form FROMFORM to the main form TOFORM, and copy all
-- associated alternative forms.
local function copy_form(fromform, toform)
local fromforms = main_to_all_verb_forms[fromform]
local toforms = main_to_all_verb_forms[toform]
local numforms = #fromforms
assert(#toforms == numforms)
for i=1,numforms do
forms[toforms[i]] = forms[fromforms[i]]
end
end
-- Copy pres_futr_* to pres_* (imperfective) or futr_* (perfective).
if perf then
copy_form("pres_futr_1sg", "futr_1sg")
copy_form("pres_futr_2sg", "futr_2sg")
copy_form("pres_futr_3sg", "futr_3sg")
copy_form("pres_futr_1pl", "futr_1pl")
copy_form("pres_futr_2pl", "futr_2pl")
copy_form("pres_futr_3pl", "futr_3pl")
else
copy_form("pres_futr_1sg", "pres_1sg")
copy_form("pres_futr_2sg", "pres_2sg")
copy_form("pres_futr_3sg", "pres_3sg")
copy_form("pres_futr_1pl", "pres_1pl")
copy_form("pres_futr_2pl", "pres_2pl")
copy_form("pres_futr_3pl", "pres_3pl")
end
local futr_data = {
{"futr_1sg", "бу́ду", "búdu"},
{"futr_2sg", "бу́дешь", "búdešʹ"},
{"futr_3sg", "бу́дет" .. (old and "ъ" or ""), "búdet"},
{"futr_1pl", "бу́дем" .. (old and "ъ" or ""), "búdem"},
{"futr_2pl", "бу́дете", "búdete"},
{"futr_3pl", "бу́дут" .. (old and "ъ" or ""), "búdut"}
}
local function insert_future(inf, inf_tr)
for _, fut in ipairs(futr_data) do
append_to_arg_chain(forms, fut[1], fut[1],
{fut[2] .. inf, inf_tr and fut[3] .. inf_tr})
end
end
-- Insert future, if required (there may conceivably be multiple infitives).
for _, form in ipairs(main_to_all_verb_forms["infinitive"]) do
local infinitive = forms[form]
if infinitive then
local inf, inf_tr = extract_russian_tr(forms[form])
-- only for "бы́ть" the future forms are бу́ду, бу́дешь, etc.
if inf == "бы́ть" then
insert_future("", nil)
elseif not perf then
insert_future(" " .. inf, inf_tr and " " .. inf_tr)
end
end
end
end
parse_and_stress_override = function(form, val, existing, all_existing)
if rfind(form, "^pres_futr") then
error("Overrides of pres_futr* are illegal, use pres_* or futr_*")
end
local allow_unaccented
val, allow_unaccented = rsubb(val, "^%*", "")
local ru, tr = com.split_russian_tr(val)
-- past_m can be unaccented in connection with reflex_stress=ся́
if not allow_unaccented and not rfind(form, "^past_m") then
if tr and com.is_unstressed(ru) ~= com.is_unstressed(tr) then
error("Override " .. form .. "=" .. ru .. " and translit " .. tr .. " must have same accent pattern")
end
if com.is_monosyllabic(ru) then
ru, tr = com.make_ending_stressed(ru, tr)
elseif com.needs_accents(ru) then
error("Override " .. form .. "=" .. ru .. " requires an accent")
end
end
if rfind(ru, "%+") then
-- If either the existing or override has manual translit, the resulting
-- form should have manual translit. We specify ALWAYS_TRANSLIT if
-- the override has manual translit, so that we can substitute the
-- existing translit into the override translit.
local existing_ru, existing_tr = extract_russian_tr(existing, not not tr)
-- used especially for present participles; substitute existing form,
-- minus any "awkward-" or "none-" prefixes.
ru = rsub(ru, "%+", strip_arg_status_prefix(existing_ru))
-- If there's existing translit but not in the override, make sure it's
-- carried along.
if existing_tr and not tr then
tr = com.translit(ru)
end
tr = tr and rsub(tr, "%+", strip_arg_status_prefix(existing_tr))
end
-- If there's an override and it doesn't match an existing form, it's
-- irregular and indicate it using the IRREG marker. We don't do this if
-- the override simply removes a form. We do do this if there aren't any
-- existing forms, on the theory that the presence of a form when none is
-- normally called for is an irregularity. When comparing against the
-- existing forms, strip any status prefix (e.g. 'awkward-').
if all_existing then
local all_existing_stripped = {}
for _, ae in ipairs(all_existing) do
local existing_ru, existing_tr = extract_russian_tr(ae)
existing_ru = strip_arg_status_prefix(existing_ru)
existing_tr = existing_tr and strip_arg_status_prefix(existing_tr)
table.insert(all_existing_stripped, {existing_ru, existing_tr})
end
if ru ~= "-" and not contains_form(all_existing_stripped, {ru, tr}) then
ru = ru .. IRREG
tr = tr and tr .. IRREG
end
end
return {ru, tr}
end
-- Set up pres_* or futr_*; handle *sym/*tail/*tailall notes and overrides.
handle_forms_and_overrides = function(args, forms, data)
setup_pres_futr(forms, data.perf, data.old)
--handle overrides (formerly we only had past_pasv_part as a
--general override, plus scattered main-form overrides in particular
--conjugation classes)
for _, all_forms in pairs(main_to_all_verb_forms) do
local i = 0
local orig_forms = {}
for _, form in ipairs(all_forms) do
if forms[form] then
table.insert(orig_forms, forms[form])
end
end
for _, form in ipairs(all_forms) do
i = i + 1
-- If we auto-generated the past passive participle in order to
-- check for irregular overrides, make sure to erase any such
-- participles that weren't overridden. This happens for example
-- in обнять, where there are two automatically generated past
-- passive participles but a single ppp=о́внятый override.
local override = args[form] or (
data.ppp_auto_generated and rfind(form, "^past_pasv_part") and "-"
)
if override then
forms[form] = parse_and_stress_override(form, override,
forms[form], orig_forms)
elseif i == 1 then
forms[form] = forms[form] or ""
end
end
end
local function append_value(forms, prop, value)
if forms[prop] and forms[prop] ~= "" and forms[prop] ~= "-" then
value = com.split_russian_tr(value, "dopair")
local curval = forms[prop]
if type(curval) == "string" then
curval = {curval}
end
forms[prop] = com.concat_paired_russian_tr(curval, value)
end
end
local function append_note_all(forms, proplist, value)
for _, prop in ipairs(proplist) do
append_value(forms, prop, value)
end
end
local function append_note_last(forms, proplist, value, gt_one)
local numprops = 0
local lastprop
-- Find the last property in the series with a value
for _, prop in ipairs(proplist) do
if forms[prop] and forms[prop] ~= "" and forms[prop] ~= "-" then
numprops = numprops + 1
lastprop = prop
end
end
if numprops > (gt_one and 1 or 0) then
append_value(forms, lastprop, value)
end
end
for _, proplist in ipairs(all_verb_forms) do
-- Handle PROP_sym, which applies to all overridable properties, including
-- alternative forms, and applies to exactly that property.
for _, prop in ipairs(proplist) do
if args[prop .. "_sym"] then
append_value(forms, prop, args[prop .. "_sym"])
end
end
local propname = proplist[1]
-- Handle PROP_tail, which applies to a series of properties (e.g. past_m,
-- past_m2, ...) and appends to the last one.
if args[propname .. "_tail"] then
append_note_last(forms, proplist, args[propname .. "_tail"])
end
-- Handle PROP_tailall, which applies to a series of properties and
-- appends to all.
if args[propname .. "_tailall"] then
append_note_all(forms, proplist, args[propname .. "_tailall"])
end
end
-- Now handle pasttail, pasttailall, prestail, prestailall, etc.
-- Table listing tail-arg prefix and corresponding verb forms.
local tailargs = {
{"past", past_verb_forms},
{"pres", pres_verb_forms},
{"futr", futr_verb_forms},
{"impr", impr_verb_forms},
{"part", part_verb_forms},
{"prespart", pres_part_verb_forms},
{"pastpart", past_part_verb_forms},
{"", all_main_verb_forms}
}
for _, tailspec in ipairs(tailargs) do
local tailforms = tailspec[2]
-- Handle the ...tail variants.
local tailarg = tailspec[1] .. "tail"
if args[tailarg] then
track(tailarg)
for _, prop in ipairs(tailforms) do
append_note_last(forms, main_to_all_verb_forms[prop], args[tailarg], ">1")
end
end
-- Handle the ...tailall variants.
local tailallarg = tailspec[1] .. "tailall"
if args[tailallarg] then
track(tailallarg)
for _, prop in ipairs(tailforms) do
append_note_all(forms, main_to_all_verb_forms[prop], args[tailallarg])
end
end
end
end
-- Finish generating the forms; primarily, clear out unused forms.
finish_generating_forms = function(forms, data)
-- Convert any main form that's nil (meaning no forms at all corresponding
-- to this main form) to the empty string.
for main_form, _ in pairs(main_to_all_verb_forms) do
if not forms[main_form] then
forms[main_form] = ""
end
end
-- Set the main form FORM to the empty string, and corresponding alt forms
-- to nil.
local function clear_form(form)
local i = 0
for _, altform in ipairs(main_to_all_verb_forms[form]) do
i = i + 1
if i == 1 then
forms[altform] = ""
else
forms[altform] = nil
end
end
end
-- Intransitive and reflexive verbs have no passive participles
-- (unless has_prpp=y and/or has_ppp=y).
if data.intr or data.refl then
if not data.has_prpp then
clear_form("pres_pasv_part")
end
if not data.has_ppp then
clear_form("past_pasv_part")
end
end
if data.refl then
-- no past_adv_part_short for reflexive verbs
clear_form("past_adv_part_short")
end
-- Impersonal verbs normally have no passive participles, but allow them
-- if there's specifically an override. We only do this for the present
-- passive participle because the past passive participle isn't inserted
-- by default, and we still want +p to work, which doesn't currently set
-- data.ppp_override.
if data.impers and not data.prpp_override then
clear_form("pres_pasv_part")
end
if data.impers then
clear_form("pres_1sg")
clear_form("pres_2sg")
clear_form("pres_1pl")
clear_form("pres_2pl")
clear_form("pres_3pl")
clear_form("futr_1sg")
clear_form("futr_2sg")
clear_form("futr_1pl")
clear_form("futr_2pl")
clear_form("futr_3pl")
clear_form("past_m")
clear_form("past_f")
clear_form("past_pl")
clear_form("past_m_short")
clear_form("past_f_short")
clear_form("past_pl_short")
clear_form("pres_actv_part")
clear_form("past_actv_part")
clear_form("pres_adv_part")
clear_form("past_adv_part")
clear_form("past_adv_part_short")
clear_form("impr_sg")
clear_form("impr_pl")
end
-- Perfective and iterative verbs have no present forms, as well as
-- verbs marked nopres=1.
if data.perf or data.iter or data.nopres then
clear_form("pres_actv_part")
clear_form("pres_pasv_part")
clear_form("pres_adv_part")
clear_form("pres_1sg")
clear_form("pres_2sg")
clear_form("pres_3sg")
clear_form("pres_1pl")
clear_form("pres_2pl")
clear_form("pres_3pl")
end
-- Some verbs (e.g. грясти́, густи́) have no past
if data.nopast then
clear_form("past_m")
clear_form("past_f")
clear_form("past_n")
clear_form("past_pl")
clear_form("past_m_short")
clear_form("past_f_short")
clear_form("past_n_short")
clear_form("past_pl_short")
clear_form("past_actv_part")
clear_form("past_pasv_part")
clear_form("past_adv_part")
clear_form("past_adv_part_short")
end
-- Iterative verbs and verbs marked noimpr=1 have no imperative forms.
if data.iter or data.noimpr then
clear_form("impr_sg")
clear_form("impr_pl")
end
-- Iterative verbs and verbs marked nofutr=1 have no future forms.
if data.iter or data.nofutr then
clear_form("futr_1sg")
clear_form("futr_2sg")
clear_form("futr_3sg")
clear_form("futr_1pl")
clear_form("futr_2pl")
clear_form("futr_3pl")
end
--handle "none-" and "awkward-" prefixes (used especially for pres_pasv_part)
local footnote_sym = nil
for _, all_forms in pairs(main_to_all_verb_forms) do
local i = 0
for _, form in ipairs(all_forms) do
i = i + 1
if forms[form] then
local formru, formtr = extract_russian_tr(forms[form])
if rfind(formru, "^none%-") then
if i == 1 then
forms[form] = ""
else
forms[form] = nil
end
elseif rfind(formru, "^awkward%-") then
if not footnote_sym then
footnote_sym = next_note_symbol(data)
m_table.insertIfNot(data.internal_notes, footnote_sym .. " Hiếm và ngượng nghịu.")
end
forms[form] = {rsub(formru, "^awkward%-", "") .. footnote_sym,
formtr and rsub(formtr, "^awkward%-", "") .. footnote_sym}
end
end
end
end
--Insert footnote for IRREG symbol if present.
for _, all_forms in pairs(main_to_all_verb_forms) do
for _, form in ipairs(all_forms) do
if forms[form] then
local formru = extract_russian_tr(forms[form])
if rfind(formru, IRREG) then
m_table.insertIfNot(data.internal_notes, IRREG .. " Irregular.")
end
end
end
end
end
local accel_forms = {
-- present tense
pres_1sg = "1|s|pres|ind",
pres_2sg = "2|s|pres|ind",
pres_3sg = "3|s|pres|ind",
pres_1pl = "1|p|pres|ind",
pres_2pl = "2|p|pres|ind",
pres_3pl = "3|p|pres|ind",
-- future tense
futr_1sg = "1|s|fut|ind",
futr_2sg = "2|s|fut|ind",
futr_3sg = "3|s|fut|ind",
futr_1pl = "1|p|fut|ind",
futr_2pl = "2|p|fut|ind",
futr_3pl = "3|p|fut|ind",
-- imperative
impr_sg = "2|s|imp",
impr_pl = "2|p|imp",
-- past
past_m = "m|s|past|ind",
past_f = "f|s|past|ind",
past_n = "n|s|past|ind",
past_pl = "p|past|ind",
past_m_short = "short|m|s|past|ind",
past_f_short = "short|f|s|past|ind",
past_n_short = "short|n|s|past|ind",
past_pl_short = "short|p|past|ind",
-- active participles
pres_actv_part = "pres|act|part",
past_actv_part = "past|act|part",
-- passive participles
pres_pasv_part = "pres|pass|part",
past_pasv_part = "past|pass|part",
-- adverbial participles
pres_adv_part = "pres|adv|part",
past_adv_part = "past|adv|part",
past_adv_part_short = "short|past|adv|part",
-- infinitive
infinitive = "inf",
}
-- Make the table
make_table = function(forms, title, perf, intr, impers, notes, internal_notes, old)
local infinitives = {}
for _, form in ipairs(main_to_all_verb_forms["infinitive"]) do
local infinitive = forms[form]
if infinitive then
local inf = extract_russian_tr(forms[form])
if inf ~= "-" then
m_table.insertIfNot(infinitives, inf)
end
end
end
-- Group forms together for a given key and combine adjacent forms with the same
-- Russian (they should always have different translits). Take care not to introduce
-- manual translit unnecessarily.
local grouped_forms = {}
for dispform, sourceforms in pairs(disp_verb_form_map) do
local entry = {}
for _, form in ipairs(sourceforms) do
local ru, tr = extract_russian_tr(forms[form])
-- check for empty strings, dashes and nil's
if ru and ru ~= "" and ru ~= "-" and ru ~= "—" then
if #entry > 0 then
local lastru, lasttr = extract_russian_tr(entry[#entry])
if lastru == ru then
if not lasttr and not tr or lasttr == tr then
error("Russian form " .. ru .. " is duplicated, probably due to a duplicative override")
end
lasttr = lasttr or com.translit(lastru)
tr = tr or com.translit(ru)
entry[#entry] = {ru, lasttr .. " ''or'' " .. tr}
else
table.insert(entry, {ru, tr})
end
else
table.insert(entry, {ru, tr})
end
end
end
grouped_forms[dispform] = entry
end
local title = (old and "Bảng chia động từ trước cải cách" or "Bảng chia động từ") .. (#infinitives == 0 and "" or
" của <span lang=\"ru\" class=\"Cyrl\">''" .. table.concat(infinitives, ", ") .. "''</span>") ..
(title and " (" .. title .. ")" or "")
local function add_links(ru, rusuf, runotes, tr, trnotes, accel)
local ruspan
ruspan = m_links.full_link({lang = lang, term = ru, accel = accel, tr = "-"})
if rusuf ~= "" then
rusuf = "<span lang=\"ru\" class=\"Cyrl\">" .. rusuf .. "</span>"
end
return ruspan .. rusuf .. runotes .. "<br/>" .. require("Module:script utilities").tag_translit(tr .. trnotes, lang, "default", 'style="color:#888;"')
end
-- NOTE: No need to check for multiple infinitives because the accel system
-- doesn't support multiple lemmas.
local lemma, lemmatr = extract_russian_tr(forms["infinitive"])
-- check for empty strings, dashes and nil's
if lemma and lemma ~= "" and lemma ~= "-" and lemma ~= "—" then
lemma = m_table_tools.separate_notes(lemma)
if lemmatr then
lemmatr = m_table_tools.separate_notes(lemmatr)
end
else
-- In case the lemma is an empty string or dash, set to nil so we don't
-- set a lemma in the accelerator and fall back to the page name.
lemma = nil
lemmatr = nil
end
-- Convert to displayed form
local disp = {}
for key, entry in pairs(grouped_forms) do
for i, form in ipairs(entry) do
local ru, origtr = extract_russian_tr(form)
local tr = origtr or ru and com.translit(ru)
local ruentry, runotes = m_table_tools.separate_and_superscript_notes(ru)
local trentry, trnotes = m_table_tools.separate_and_superscript_notes(tr)
local accel_form = accel_forms[key]
if not accel_form then
error("Unrecognized key " .. key .. " when looking up accelerator form")
end
local accel
if origtr and origtr:find(" ''or'' ") then
-- Multiple translits for a given Russian term.
-- FIXME! Support this.
accel = nil
else
accel = { form = accel_form, translit = origtr,
lemma = lemma, lemma_translit = lemmatr}
end
if rfind(key, "^futr") then
-- Add link to first word (form of 'to be')
local tobe, inf = rmatch(ruentry, "^([^ ]*) ([^ ]*)$")
if tobe then
-- No accelerators for imperfective future, as it's just the future of "to be"
-- plus the infinitive.
entry[i] = add_links(tobe, " " .. inf, runotes, trentry, trnotes, nil)
else
entry[i] = add_links(ruentry, "", runotes, trentry, trnotes, accel)
end
else
entry[i] = add_links(ruentry, "", runotes, trentry, trnotes, accel)
end
end
disp[key] = table.concat(entry, ",<br/>")
if disp[key] == "" then
disp[key] = "—"
end
end
local all_notes = {}
for _, note in ipairs(internal_notes) do
local symbol, entry = m_table_tools.get_initial_notes(note)
table.insert(all_notes, symbol .. entry)
end
for _, note in ipairs(notes) do
local symbol, entry = m_table_tools.get_initial_notes(note)
table.insert(all_notes, symbol .. entry)
end
local notes_text
table.insert(all_notes, 1,
"Lưu ý: Đối với biến cách của phân từ, xem các mục tương ứng của chúng. Phân từ trạng ngữ không biến cách.")
notes_text = table.concat(all_notes, "<br />") .. "\n"
return [=[<div class="NavFrame" style="max-width:49.6em;">
<div class="NavHead" style="text-align:left; background:var(--wikt-palette-lightindigo, #e9e9ff);color:inherit;">]=] .. title .. [=[</div>
<div class="NavContent">
{| class="inflection inflection-ru inflection-verb inflection-table"
|+ ]=] .. notes_text .. [=[
|- class="rowgroup"
! colspan="3" | ]=] .. (perf and [=[[[совершенный вид|thể hoàn thành]]]=] or [=[[[несовершенный вид|thể chưa hoàn thành]]]=]) .. [=[
|-
! [[неопределённая форма|nguyên mẫu]]
| colspan="2" | ]=] .. disp.infinitive .. [=[
|- class="rowgroup"
! style="width:15em" | [[причастие|phân từ]]
! [[настоящее время|thì hiện tại]]
! [[прошедшее время|thì quá khứ]]
|-
! [[действительный залог|chủ động]]
| ]=] .. disp.pres_actv_part .. [=[ || ]=] .. disp.past_actv_part .. [=[
|-
! [[страдательный залог|bị động]]
| ]=] .. disp.pres_pasv_part .. [=[ || ]=] .. disp.past_pasv_part .. [=[
|-
! [[деепричастие|trạng động từ]]
| ]=] .. disp.pres_adv_part .. [=[ || ]=] .. disp.past_adv_part .. [=[
|- class="rowgroup"
!
! [[настоящее время|thì hiện tại]]
! [[будущее время|thì tương lai]]
|-
! [[первое лицо|ngôi thứ nhất]] [[единственное число|số ít]] (<span lang="ru" class="Cyrl">я</span>)
| ]=] .. disp.pres_1sg .. [=[ || ]=] .. disp.futr_1sg .. [=[
|-
! [[второе лицо|ngôi thứ hai]] [[единственное число|số ít]] (<span lang="ru" class="Cyrl">ты</span>)
| ]=] .. disp.pres_2sg .. [=[ || ]=] .. disp.futr_2sg .. [=[
|-
! [[третье лицо|ngôi thứ ba]] [[единственное число|số ít]] (<span lang="ru" class="Cyrl">он/она́/оно́</span>)
| ]=] .. disp.pres_3sg .. [=[ || ]=] .. disp.futr_3sg .. [=[
|-
! [[первое лицо|ngôi thứ nhất]] [[множественное число|số nhiều]] (<span lang="ru" class="Cyrl">мы</span>)
| ]=] .. disp.pres_1pl .. [=[ || ]=] .. disp.futr_1pl .. [=[
|-
! [[второе лицо|ngôi thứ hai]] [[множественное число|số nhiều]] (<span lang="ru" class="Cyrl">вы</span>)
| ]=] .. disp.pres_2pl .. [=[ || ]=] .. disp.futr_2pl .. [=[
|-
! [[третье лицо|ngôi thứ ba]] [[множественное число|số nhiều]] (<span lang="ru" class="Cyrl">они́</span>)
| ]=] .. disp.pres_3pl .. [=[ || ]=] .. disp.futr_3pl .. [=[
|- class="rowgroup"
! [[повелительное наклонение|thức mệnh lệnh]]
! [[единственное число|số ít]]
! [[множественное число|số nhiều]]
|-
!
| ]=] .. disp.impr_sg .. [=[ || ]=] .. disp.impr_pl .. [=[
|- class="rowgroup"
! [[прошедшее время|thì quá khứ]]
! [[единственное число|số ít]]
! [[множественное число|số nhiều]]<br/>(<span lang="ru" class="Cyrl">мы/вы/они́</span>)
|-
! [[мужской род|giống đực]] (<span lang="ru" class="Cyrl">я/ты/он</span>)
| ]=] .. disp.past_m .. [=[ || rowspan="3" | ]=] .. disp.past_pl .. [=[
|-
! [[женский род|giống cái]] (<span lang="ru" class="Cyrl">я/ты/она́</span>)
| ]=] .. disp.past_f .. [=[
|-
! [[средний род|giống trung]] (<span lang="ru" class="Cyrl">оно́</span>)
| ]=] .. disp.past_n .. [=[
|}
</div>
</div>]=]
end
return export
kwrpxcx9z5gku9pyqmkfu1g0hqaw86p
2570057
2570056
2026-10-13T04:03:55Z
Hiyuune
50834
2570057
Scribunto
text/plain
--[=[
This module contains functions for creating inflection tables for Russian
verbs.
Author: Benwing, rewritten from early version by Atitarev, earliest version by CodeCat
NOTE: This module is partly converted to support manual translit, in the
form CYRILLIC//LATIN (i.e. with a // separating the Cyrillic and Latin
parts). All the general infrastructure supports manual translit; the
only thing that doesn't is some of the specific verb conjugation functions.
In particular, all of the class 1, 2, 3 and 4 conjugation functions support
manual translit, and the rest don't. To convert another, follow the
model of one of the already-converted functions.
Note that an individual form (an entry in the 'forms' table) can be
either a string (no special manual translit; generally this originates
from the portion of the code that doesn't support manual translit), or
a one-element list {CYRILLIC} (no special manual translit), or a
two-element list {CYRILLIC, LATIN} with manual translit specified.
The code is careful only to generate manual translit when it's needed,
to avoid penalizing the majority of cases where manual transit isn't
needed.
]=]
local m_str_utils = require("Module:string utilities")
local m_utilities = require("Module:utilities")
local m_table = require("Module:table")
local m_links = require("Module:links")
local com = require("Module:ru-common")
local m_debug = require("Module:debug")
local m_table_tools = require("Module:table tools")
-- If enabled, compare this module with new version of module to make
-- sure all conjugations are the same.
local test_new_ru_verb_module = false
local export = {}
-- Within this module, conjugations are the functions that do the actual
-- conjugating by creating the forms of a basic verb.
-- They are defined further down.
local conjugations = {}
local lang = require("Module:languages").getByCode("ru")
local u = m_str_utils.char
local rfind = m_str_utils.find
local rsubn = m_str_utils.gsub
local rmatch = m_str_utils.match
local rsplit = m_str_utils.split
local usub = m_str_utils.sub
local AC = u(0x0301) -- acute = ́
local DIA = u(0x0308) -- diaeresis = ̈
local PSEUDOCONS = u(0xFFF2) -- pseudoconsonant placeholder, matching ru-common
local IRREG = "△"
-- version of rsubn() that discards all but the first return value
local function rsub(term, foo, bar)
local retval = rsubn(term, foo, bar)
return retval
end
-- version of rsubn() that returns a 2nd argument boolean indicating whether
-- a substitution was made.
local function rsubb(term, foo, bar)
local retval, nsubs = rsubn(term, foo, bar)
return retval, nsubs > 0
end
-- Fancy version of ine() (if-not-empty). Converts empty string to nil,
-- but also strips leading/trailing space and then single or double quotes,
-- to allow for embedded spaces.
local function ine(arg)
if not arg then return nil end
arg = rsub(arg, "^%s*(.-)%s*$", "%1")
if arg == "" then return nil end
local inside_quotes = rmatch(arg, '^"(.*)"$')
if inside_quotes then
return inside_quotes
end
inside_quotes = rmatch(arg, "^'(.*)'$")
if inside_quotes then
return inside_quotes
end
return arg
end
local function is_vowel_stem(stem)
return rfind(stem, "[" .. com.vowel .. AC .. DIA .. "]$")
end
-- Return the next number to use as an internal note symbol, starting at 1.
-- We look at existing internal notes to see if the symbol is already used.
local function next_note_symbol(data)
local nextsym = 1
while true do
local sym_already_seen = false
for _, note in ipairs(data.internal_notes) do
if rfind(note, "^" .. nextsym .. " ") then
sym_already_seen = true
break
end
end
if sym_already_seen then
nextsym = nextsym + 1
else
break
end
end
return nextsym
end
-- FIXME: Move to utils
-- Iterate over a chain of parameters, FIRST then PREF2, PREF3, ...,
-- inserting into LIST (newly created if omitted). Return LIST.
local function get_arg_chain(args, first, pref, list)
if not list then
list = {}
end
local val = args[first]
local i = 2
while val do
table.insert(list, val)
val = args[pref .. i]
i = i + 1
end
return list
end
-- FIXME: Move to utils
-- Set a chain of parameters, FIRST then PREF2, PREF3, ..., from LIST.
local function set_arg_chain(args, first, pref, list)
local param = first
local i = 2
for _, val in ipairs(list) do
args[param] = val
param = pref .. i
i = i + 1
end
end
local function normalize_form(form)
if type(form) == "table" and m_table.length(form) == 1 then
return form[1]
end
return form
end
-- For a given form in a conjugation table, we allow either strings or
-- two-element lists {RUSSIAN, TRANSLIT}, where TRANSLIT can be nil
-- (equivalent to a one-element list). When comparing them, we have to take
-- this into account.
local function forms_equal(form1, form2)
return m_table.deepEquals(normalize_form(form1), normalize_form(form2))
end
local function contains_form(forms, form)
for _, f in ipairs(forms) do
if forms_equal(f, form) then
return true
end
end
return false
end
-- FIXME: Move to utils
-- Append to the end of a chain of parameters, FIRST then PREF2, PREF3, ...,
-- if the value isn't already present.
local function append_to_arg_chain(args, first, pref, newval)
local nextarg = first
local i = 2
if newval == "" then
error("Internal error: attempt to insert blank value into arg chain")
end
while true do
if not args[nextarg] then break end
if forms_equal(args[nextarg], newval) then
return nil
end
nextarg = pref .. i
i = i + 1
end
args[nextarg] = newval
return nextarg
end
local function get_true_arg(arg, not_off_by_1)
-- We normally move all params down by one because the first param is the
-- verb type; so reflect this correctly if the arg is numeric and
-- not_off_by_1 isn't given
return (not_off_by_1 or type(arg) ~= "number") and arg or arg + 1
end
local function getarg(args, arg, default, paramdesc, not_off_by_1)
paramdesc = paramdesc or "Parameter " .. get_true_arg(arg, not_off_by_1)
default = default or "-"
--PAGENAME = mw.title.getCurrentTitle().text
local NAMESPACE = mw.title.getCurrentTitle().nsText
return args[arg] or (NAMESPACE == "Template" and default) or error(paramdesc .. " has not been provided")
end
local function check_stressed_arg(val, arg)
-- don't consider suffixes
if not rfind(val, "^%-") and not com.is_nonsyllabic(val) and not com.is_stressed(val) then
error("Argument value " .. val .. " (parameter " .. get_true_arg(arg) .. ") must be stressed")
end
return val
end
local function get_stressed_arg(args, arg, default, paramdesc)
local retval = getarg(args, arg, default, paramdesc)
check_stressed_arg(retval, arg)
return retval
end
local function get_opt_stressed_arg(args, arg)
return args[arg] and get_stressed_arg(args, arg) or nil
end
local function check_unstressed_arg(val, arg)
if com.is_stressed(val) then
error("Argument value " .. val .. " (parameter " .. get_true_arg(arg) .. ") should not be stressed")
end
return val
end
local function get_unstressed_arg(args, arg, default, paramdesc)
local retval = getarg(args, arg, default, paramdesc)
check_unstressed_arg(retval, arg)
return retval
end
local function get_opt_unstressed_arg(args, arg)
return args[arg] and get_unstressed_arg(args, arg) or nil
end
local function no_stray_args(args, maxarg)
for i=(maxarg + 1), 20 do
if args[i] then
error("Value for argument " .. get_true_arg(i) .. " not allowed ("
.. args[i] .. " supplied)")
end
end
end
-- Extract a form spec (either a single string or a two-element table {RU, TR}
-- into the component Russian and transliterated components. Normally, if
-- an explicit manual translit wasn't given, the resulting translit will be
-- nil; but if ALWAYS_TRANSLIT is given, it will be auto-transliterated from
-- the Russian as needed.
local function extract_russian_tr(form, always_translit)
local ru, tr
if type(form) == "table" then
ru, tr = form[1], form[2]
else
ru = form
end
if not tr and always_translit then
tr = ru and com.translit(ru)
end
return ru, tr
end
local function strip_arg_status_prefix(arg)
if not arg then
return arg, ""
end
local subbed
arg, subbed = rsubb(arg, "^awkward%-", "")
if subbed then
return arg, "awkward-"
end
arg, subbed = rsubb(arg, "^none%-", "")
if subbed then
return arg, "none-"
end
return arg, ""
end
local function track(page)
m_debug.track("ru-verb/" .. page)
return true
end
-- Forward functions
local present_e_a
local present_e_b
local present_e_c
local present_je
local present_i
local make_reflexive
local make_pre_reform
local parse_and_stress_override
local handle_forms_and_overrides
local finish_generating_forms
local make_table
local all_verb_types = {
"pf", "pf-intr", "pf-refl",
"pf-impers", "pf-intr-impers", "pf-refl-impers",
"impf", "impf-intr", "impf-refl",
"impf-impers", "impf-intr-impers", "impf-refl-impers"}
-- Examples of alternatives in use:
-- past_m2: со́здал/созда́л, пе́редал/переда́л, о́тдал/отда́л, при́нялся/принялся́
-- past_m3: for verbs with three past masculine sg forms: за́нялся, заня́лся, занялс́я (заня́ться)
-- past_n2: да́ло, дал́о; вз́яло, взяло́
-- past_pl2: разобрали́сь (разобрали́)
-- past_m_short: short forms in 3a (исчез, сох, etc.)
-- past_f_short: short forms in 3a (исчезла, сохла, etc.)
-- past_n_short: short forms in 3a (исчезло, сохло, etc.)
-- past_pl_short: short forms in 3a (исчезли, сохли, etc.)
-- past_adv_parts:
-- тереть: тере́вши, тёрши, short: тере́в
-- умереть: умере́вши, у́мерши, short: умере́в
-- pres_adv_part: сыпля, сыпя, лёжа (лежать)
-- pres_2sg2: сыплешь, сыпешь
-- pres_3sg2: сыплет, сыпет
-- pres_1pl2: сыплем, сыпем
-- pres_2pl2: сыплете, сыпете
-- pres_3pl2: сыплют, сыпют
-- futr_2sg2: насыплешь, насыпешь
-- futr_3sg2: насыплет, насыпет
-- futr_1pl2: насыплем, насыпем
-- futr_2pl2: насыплете, насыпете
-- futr_3pl2: насыплют, насыпют
-- List of all main verb forms. Short forms (those ending in "_short")
-- must be listed after the corresponding non-short forms.
local all_main_verb_forms = {
-- present tense
"pres_1sg", "pres_2sg", "pres_3sg", "pres_1pl", "pres_2pl", "pres_3pl",
-- future tense
"futr_1sg", "futr_2sg", "futr_3sg", "futr_1pl", "futr_2pl", "futr_3pl",
-- present-future tense. The conjugation functions generate the
-- "present-future" tense instead of either the present or future tense,
-- since the same forms are used in the present imperfect and future
-- perfect. These forms are later copied into the present or future in
-- finish_generating_forms().
"pres_futr_1sg", "pres_futr_2sg", "pres_futr_3sg", "pres_futr_1pl", "pres_futr_2pl", "pres_futr_3pl",
-- imperative
"impr_sg", "impr_pl",
-- past
"past_m", "past_f", "past_n", "past_pl",
"past_m_short", "past_f_short", "past_n_short", "past_pl_short",
-- active participles
"pres_actv_part", "past_actv_part",
-- passive participles
"pres_pasv_part", "past_pasv_part",
-- adverbial participles
"pres_adv_part", "past_adv_part", "past_adv_part_short",
-- infinitive
"infinitive"
}
-- List of all verb forms. Each element is a list, where the first element
-- is the "main" form and the remainder are alternatives. The following
-- *MUST* hold:
-- 1. Forms must be given in the order they will appear in the outputted
-- table.
-- 2. Short forms (those ending in "_short") must be listed after the
-- corresponding non-short forms.
-- 3. For each person, e.g. '2sg', there must be the same number of
-- futr_PERSON, pres_PERSON and pres_futr_PERSON forms, and the alternative
-- forms must be listed in the same order.
--
-- FIXME!!! We should fix things so we no longer need to compute this table.
local all_verb_forms = {}
-- Compile all_verb_forms
for _, mainform in ipairs(all_main_verb_forms) do
local entry = {}
table.insert(entry, mainform)
for i=2,9 do
table.insert(entry, mainform .. i)
end
table.insert(all_verb_forms, entry)
end
local prop_aliases = {
pap="past_actv_part",
paptail="past_actv_part_tail",
paptailall="past_actv_part_tailall",
ppp="past_pasv_part",
ppptail="past_pasv_part_tail",
ppptailall="past_pasv_part_tailall",
prap="pres_actv_part",
praptail="pres_actv_part_tail",
praptailall="pres_actv_part_tailall",
prpp="pres_pasv_part",
prpptail="pres_pasv_part_tail",
prpptailall="pres_pasv_part_tailall",
padp="past_adv_part",
padptail="past_adv_part_tail",
padptailall="past_adv_part_tailall",
padp_short="past_adv_part_short",
padp_shorttail="past_adv_part_short_tail",
padp_shorttailall="past_adv_part_short_tailall",
pradp="pres_adv_part",
pradptail="pres_adv_part_tail",
pradptailall="pres_adv_part_tailall",
}
-- Table mapping "main" to the list of all forms in the series (e.g.
-- past_m, past_m2, past_m3, etc.). If a main form (e.g. past_m) is missing,
-- it needs to end up with a value of "", whereas the alternatives
-- (e.g. past_m2, past_m3) need to end up with a value of nil.
local main_to_all_verb_forms = {}
-- List of the main verb forms for the past.
local past_verb_forms = {"past_m", "past_f", "past_n", "past_pl"}
-- List of the main verb forms for the present.
local pres_verb_forms = {"pres_1sg", "pres_2sg", "pres_3sg",
"pres_1pl", "pres_2pl", "pres_3pl"}
-- List of the main verb forms for the future.
local futr_verb_forms = {"futr_1sg", "futr_2sg", "futr_3sg",
"futr_1pl", "futr_2pl", "futr_3pl"}
-- List of the main verb forms for the imperative.
local impr_verb_forms = {"impr_sg", "impr_pl"}
-- List of the main verb forms for participles.
local part_verb_forms = {"pres_actv_part", "past_actv_part",
"pres_pasv_part", "past_pasv_part",
"pres_adv_part", "past_adv_part", "past_adv_part_short"}
-- List of the main verb forms for present participles.
local pres_part_verb_forms = {"pres_actv_part", "pres_pasv_part",
"pres_adv_part"}
-- List of the main verb forms for past participles.
local past_part_verb_forms = {"past_actv_part", "past_pasv_part",
"past_adv_part", "past_adv_part_short"}
-- Compile main_to_all_verb_forms.
for _, proplist in ipairs(all_verb_forms) do
main_to_all_verb_forms[proplist[1]] = proplist
end
-- Map listing the forms to be displayed, and the verb forms used to generate
-- the displayed form, in order. For example, under past_m will be found
-- {"past_m_short", "past_m", "past_m2", "past_m3"} because those forms in
-- that order are displayed in the table under "masculine singular past".
local disp_verb_form_map = {}
for _, proplist in ipairs(all_verb_forms) do
local key = proplist[1]
-- if we find short forms, insert them at the beginning of the list for
-- the corresponding full forms. This requires that short forms are
-- listed in all_verb_forms after the corresponding full forms.
if rfind(key, "_short$") then
local full_key = rsub(key, "_short$", "")
-- short forms should occur in list after full forms
assert(#(disp_verb_form_map[full_key]) > 0)
-- build entry for full form, consisting first of the short forms,
-- in order, then the full forms, in order.
local new_entry = {}
for _, form in ipairs(proplist) do
table.insert(new_entry, form)
end
for _, form in ipairs(disp_verb_form_map[full_key]) do
table.insert(new_entry, form)
end
disp_verb_form_map[full_key] = new_entry
elseif rfind(key, "^pres_futr") then
-- skip these forms, not displayed
else
disp_verb_form_map[key] = mw.clone(proplist)
end
end
local all_verb_props = mw.clone(all_verb_forms)
local non_form_props = {"title", "perf", "intr", "impers", "categories", "notes", "internal_notes"}
for _, prop in ipairs(non_form_props) do
table.insert(all_verb_props, {prop})
end
-- Clone parent's args while also assigning nil to empty strings and splitting
-- arg sets (numeric args separated by "or"), assigning named args to
-- all all sets. Handle aliases in the process. Extract conjugation type
-- from the first arg of the arg set (for the initial arg set, this will be
-- arg 2 because arg 1 is the verb type), assigning to '.conj_type' of the
-- arg set. Return arg sets.
local function split_args_handle_aliases(frame)
local args = frame:getParent().args
local arg_sets = {}
local arg_set = {}
-- Verb type, e.g. impf, pf, impf-intr, pf-intr, impf-refl, pf-refl, etc.
-- Default to impf on the template page so that there is no script error.
local verb_type = getarg(args, 1, "impf", "Verb type (first parameter)")
local offset = 1
-- Find maximum-numbered arg, allowing for holes.
local max_arg = 1 -- needs to be 1 not 0 so template pages display ok
for pname in pairs(args) do
if type(pname) == "number" and pname > max_arg then
max_arg = pname
end
end
-- Now gather the numbered arguments.
for i=2,(max_arg + 1) do
local end_arg_set = false
if i == max_arg + 1 or args[i] == "or" then
end_arg_set = true
end
if end_arg_set then
table.insert(arg_sets, arg_set)
arg_set = {}
offset = i
else
arg_set[i - offset] = ine(args[i])
end
end
-- Insert named arguments into all arg sets, mapping aliases appropriately.
for pname, param in pairs(args) do
if type(pname) == "string" then
local argval = ine(param)
local mainprop, num = rmatch(pname, "^([a-z_]+)([0-9]*)$")
for i=1,#arg_sets do
if not mainprop then
arg_sets[i][pname] = argval
else
mainprop = prop_aliases[mainprop] or mainprop
arg_sets[i][mainprop .. num] = argval
end
end
end
end
-- If we're conjugating a suffix, insert a pseudoconsonant at the beginning
-- of all forms, so they get conjugated as if ending in a consonant.
-- We remove the pseudoconsonant later.
for i=1,#arg_sets do
local asif_prefix = (arg_sets[i]["asif_prefix"] or
arg_sets[i][2] and rfind(arg_sets[i][2], "^%-") and PSEUDOCONS)
if asif_prefix then
for k, v in pairs(arg_sets[i]) do
arg_sets[i][k] = rsub(v, "^%-", "-" .. asif_prefix)
end
end
end
-- Frob conjugation type.
for i=1,#arg_sets do
local arg1 = arg_sets[i][1]
local conj_type
if arg1 then
local orig_arg1 = arg1
-- This complex spec matches matches 3°a, 3oa, 4a1a, 6c1a,
-- 1a6a, 6a1as13, 6a1as14, 11*b, etc.
conj_type = rmatch(arg1, "^([0-9]+[*°o0-9abc]*[abc]s?1?[34]?)")
arg1 = rsub(arg1, "^[0-9]+[*°o0-9abc]*[abc]s?1?[34]?", "")
if not conj_type then
if rfind(arg1, "^irreg") then
conj_type = "irreg"
arg1 = rsub(arg1, "^irreg", "")
end
if not conj_type then
-- Check for Cyrillic, a common mistake (esp. Cyrillic а)
if rfind(orig_arg1, "[абцдеѣфгчийклмнопярстувшхызёюжэщьъ]") then
error("Unrecognized conjugation type (WARNING, has Cyrillic in it): " .. orig_arg1)
else
error("Unrecognized conjugation type: " .. orig_arg1)
end
end
end
-- The * variant is conventionally written e.g. 11*b; if found in
-- the conj_type, move it to the beginning of the remainder
if rfind(conj_type, "%*") then
conj_type = rsub(conj_type, "%*", "")
arg1 = "*" .. arg1
end
arg_sets[i][1] = arg1
else
local NAMESPACE = mw.title.getCurrentTitle().nsText
if NAMESPACE == "Template" and i == 1 then
conj_type = "1a"
else
error("Must specify argument 2 (conjugation type)")
end
end
arg_sets[i]["conj_type"] = conj_type
end
return arg_sets, verb_type
end
function export.do_generate_forms(arg_sets, verb_type, old)
local set1 = arg_sets[1]
local notes = get_arg_chain(set1, "notes", "notes")
local forms = {}
local categories = {}
if not m_table.contains(all_verb_types, verb_type) then
error("Invalid verb type " .. verb_type)
end
local data = {}
data.verb_type = verb_type
--impersonal
data.impers = rfind(verb_type, "impers")
data.intr = rfind(verb_type, "intr")
data.perf = rfind(verb_type, "^pf")
data.iter = set1["iter"]
data.nopres = set1["nopres"]
data.nopast = set1["nopast"]
data.nofutr = set1["nofutr"]
data.noimpr = set1["noimpr"]
if data.iter and data.perf then
error("Iterative verbs must be imperfective")
end
data.old = old
data.has_ppp = set1["has_ppp"]
data.has_prpp = set1["has_prpp"]
data.ppp_override = false
data.prpp_override = false
for _, form in ipairs(main_to_all_verb_forms["past_pasv_part"]) do
if set1[form] then
data.ppp_override = true
break
end
end
data.main_ppp_override = not not set1["past_pasv_part"]
for _, form in ipairs(main_to_all_verb_forms["pres_pasv_part"]) do
if set1[form] then
data.prpp_override = true
break
end
end
data.internal_notes = {}
local titles = {}
for i=1,#arg_sets do
local args = arg_sets[i]
local conj_type = args.conj_type
-- Support e.g. 3oa in place of 3°a
conj_type = rsub(conj_type, "o", "°")
track("conj-" .. conj_type) -- FIXME, convert to regular category
track("conj-" .. conj_type .. "/" .. verb_type) -- FIXME, convert to regular category
data.conj_type = conj_type
data.cat_conj_types = {conj_type}
if conj_type == "irreg" then
data.title = "irregular"
else
data.title = conj_type
end
if not conjugations[conj_type] then
error("Unknown conjugation type '" .. conj_type .. "'")
end
if args[2] then
local inf, tr = com.split_russian_tr(args[2])
if rfind(inf, "[тч]ься$") then
inf = rsub(inf, "ся$", "")
tr = com.strip_tr_ending(tr, "ся")
data.refl = true
elseif rfind(inf, "ти́?сь$") then
-- 7a (вы́вестись), 7b (вести́сь) or derivative of -йти́ (разойти́сь)
inf = rsub(inf, "сь$", "")
tr = com.strip_tr_ending(tr, "сь")
data.refl = true
elseif rfind(inf, "[тч]ь$") then
-- Allow monosyllabic infinitives to be specified without stress
if com.is_monosyllabic(inf) and not rfind(inf, "^%-") then
inf, tr = com.make_ending_stressed(inf, tr)
end
end
if tr then
args[2] = inf .. "//" .. tr
else
args[2] = inf
end
end
if data.refl and data.intr then
error("Can't specify -intr with reflexive verbs")
end
if data.has_ppp or data.has_prpp then
if data.refl then
error("Can't specify has_ppp=y or has_prpp=y with reflexive verbs")
end
if not data.intr then
error("Can only specify has_ppp=y or has_prpp=y with intransitive verbs")
end
end
data.shouldnt_have_ppp = data.refl or not data.has_ppp and data.intr
data.shouldnt_have_prpp = data.refl or not data.has_prpp and data.intr
if data.ppp_override and data.shouldnt_have_ppp then
error("Shouldn't specify past passive participle with reflexive or intransitive verbs, if it's needed use has_ppp=y")
elseif data.perf and not data.shouldnt_have_ppp and not data.ppp_override then
-- possible omissions
track("perfective-no-ppp")
end
if data.prpp_override and data.shouldnt_have_prpp then
error("Shouldn't specify present passive participle with reflexive or intransitive verbs, if it's needed use has_prpp=y")
end
-- Call conjugation function. It will return a table of forms
-- as if it's the first arg set. If it is in fact the first
-- arg set, we just use the table directly (we may destructively
-- modify it if there are later arg sets, but this is OK because
-- no one else but us uses the table). Otherwise we need to
-- append the values from the table to those of the previous
-- arg sets.
local arg_set_forms = conjugations[conj_type](args, data)
if i == 1 then
forms = arg_set_forms
else
for _, all_forms in pairs(main_to_all_verb_forms) do
for _, form in ipairs(all_forms) do
if arg_set_forms[form] then
append_to_arg_chain(forms, all_forms[1], all_forms[1],
arg_set_forms[form])
end
end
end
end
m_table.insertIfNot(titles, data.title)
if conj_type == "irreg" then
table.insert(categories, "Russian irregular verbs")
end
-- For irregular verbs, if the verb didn't set a specific cat_conj_type,
-- it will be the same as the conj_type and be "irreg". In that case,
-- replace it with the title, which might be a proper conjugation type
-- like 4a or 8c/b (and remove anything starting with a slash, to
-- account for cases like 8c/b). After doing this, the cat_conj_type
-- might still begin with "irreg" (for sufficiently irregular verbs that
-- they can't be assigned to any of the normal classes), in which case
-- we don't create a class for the verb beyond "Russian irregular verbs"
-- (set above).
if data.cat_conj_types[1] == "irreg" then
data.cat_conj_types = {rsub(rsub(data.title, "/.*", ""), "[*⑨]", "")}
end
for _, cat_conj_type in ipairs(data.cat_conj_types) do
if not rmatch(cat_conj_type, "^irreg") then
local class_num = rmatch(cat_conj_type, "^([0-9]+)")
assert(class_num and class_num ~= "")
table.insert(categories, "Động từ lớp " .. class_num .. " tiếng Nga")
table.insert(categories, "Động từ lớp " .. cat_conj_type .. " tiếng Nga")
end
end
end
data.title = "lớp " .. table.concat(titles, " // ") ..
(data.perf and ", thể hoàn thành" or ", thể chưa hoàn thành") ..
(data.refl and " phản thân" or data.intr and ", nội động từ" or ", ngoại động từ") ..
(data.impers and " không ngôi" or "") ..
(data.iter and " lặp lại" or "")
-- Perfective/imperfective
if data.perf then
table.insert(categories, "Động từ hoàn thành tiếng Nga")
else
table.insert(categories, "Động từ chưa hoàn thành tiếng Nga")
end
handle_forms_and_overrides(set1, forms, data)
local function remove_pseudo(str)
local toremove = set1["asif_prefix"] or PSEUDOCONS
if str == nil then
return str
end
str = rsub(str, "^%-" .. toremove, "-")
-- also handle prefix after space, e.g. in futures
str = rsub(str, " %-" .. toremove, " -")
return str
end
-- Remove pseudoconsonant we may have inserted; if no ending, insert
-- "(no suffix)".
for k in pairs(forms) do
if forms[k] == "-" .. PSEUDOCONS or type(forms[k] == "table") and forms[k][1] == "-" .. PSEUDOCONS then
-- Make the translit empty.
forms[k] = {"(no suffix)", ""}
else
if type(forms[k]) == "table" then
forms[k][1] = remove_pseudo(forms[k][1])
forms[k][2] = remove_pseudo(forms[k][2])
else
forms[k] = remove_pseudo(forms[k])
end
end
end
-- Catch errors in verb arguments that lead to the infinitive not matching
-- page title, but only in the main namespace.
local NAMESPACE = mw.title.getCurrentTitle().nsText
if NAMESPACE == "" then
local PAGENAME = mw.title.getCurrentTitle().text
for _, form in ipairs(main_to_all_verb_forms["infinitive"]) do
local inf = extract_russian_tr(forms[form])
if inf then
inf, _ = m_table_tools.separate_notes(inf) -- remove any footnote symbols (e.g. грясти́)
local inf_noaccent = com.remove_accents(inf)
if inf ~= "-" then
if data.refl then
if rfind(inf_noaccent, "и$") then
inf_noaccent = inf_noaccent .. "сь"
inf = inf .. "сь"
else
inf_noaccent = inf_noaccent .. "ся"
inf = inf .. "ся"
end
end
if inf_noaccent ~= PAGENAME then
error("Infinitive " .. inf .. " doesn't match pagename " ..
PAGENAME)
end
end
end
end
end
-- Reflexive/intransitive/transitive
if set1["reflex_stress"] then
track("reflex-stress")
end
if data.refl then
local reflex_stress = set1["reflex_stress"] or data.default_reflex_stress -- "ся́"
make_reflexive(forms, reflex_stress and reflex_stress ~= "n" and
reflex_stress ~= "no")
table.insert(categories, "Động từ phản thân tiếng Nga")
elseif data.intr then
table.insert(categories, "Nội động từ tiếng Nga")
else
table.insert(categories, "Ngoại động từ tiếng Nga")
end
-- Impersonal
if data.impers then
table.insert(categories, "Động từ không ngôi tiếng Nga")
end
-- Iterative
if data.iter then
table.insert(categories, "Động từ lặp lại tiếng Nga")
end
if data.old then
make_pre_reform(forms)
end
finish_generating_forms(forms, data)
return forms, data.title, data.perf, data.intr or data.refl, data.impers, categories, notes, data.internal_notes
end
local function fetch_forms(forms)
local function fetch_one_form(form)
local val = forms[form]
local ru, tr
if type(val) == "table" then
ru, tr = val[1], val[2]
elseif type(val) == "string" and val ~= "" and val ~= "-" then
ru = val
end
if not ru then
return nil
end
local ruentry = m_table_tools.separate_and_superscript_notes(ru)
local trentry, trnotes
if tr then
trentry, trnotes = m_table_tools.separate_and_superscript_notes(tr)
end
-- There shouldn't be any links.
-- ruentry = m_links.remove_links(ruentry)
-- There shouldn't be any vertical bars.
-- ruentry = rsub(ruentry, "|", "<!>")
-- if trentry then
-- trentry = rsub(trentry, "|", "<!>")
-- end
return trentry and ruentry .. "//" .. trentry or ruentry
end
local vals = {}
for _, proplist in ipairs(all_verb_forms) do
local vallist = {}
local propname = proplist[1]
if not rfind(propname, "^pres_futr") then
for _, prop in ipairs(proplist) do
local val = fetch_one_form(prop)
if val then
table.insert(vallist, val)
end
end
if #vallist > 0 then
table.insert(vals, propname .. "=" .. table.concat(vallist, ","))
end
end
end
return table.concat(vals, "|")
end
function export.generate_forms(frame)
local arg_sets, verb_type = split_args_handle_aliases(frame)
local old = frame.args["old"] or arg_sets[1]["old"]
local forms = export.do_generate_forms(arg_sets, verb_type, old)
return fetch_forms(forms)
end
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
local arg_sets, verb_type = split_args_handle_aliases(frame)
local old = frame.args["old"] or arg_sets[1]["old"]
local arg_sets_clone
if test_new_ru_verb_module then
-- arg_sets may be modified by do_generate_forms()
arg_sets_clone = mw.clone(arg_sets)
end
local forms, title, perf, intr, impers, categories, notes, internal_notes =
export.do_generate_forms(arg_sets, verb_type, old)
-- Test code to compare existing module to new one.
if test_new_ru_verb_module then
local m_new_ru_verb = require("Module:User:Benwing2/ru-verb")
local newforms, newtitle, newperf, newintr, newimpers, newcategories, newnotes, newinternal_notes =
m_new_ru_verb.do_generate_forms(arg_sets_clone, verb_type, old)
local vals = mw.clone(forms)
vals.title = title
vals.perf = perf
vals.intr = intr
vals.impers = impers
vals.categories = categories
vals.notes = notes
vals.internal_notes = internal_notes
local newvals = mw.clone(newforms)
newvals.title = newtitle
newvals.perf = newperf
newvals.intr = newintr
newvals.impers = newimpers
newvals.categories = newcategories
newvals.notes = newnotes
newvals.internal_notes = newinternal_notes
local difconj = false
for _, proplist in ipairs(all_verb_props) do
for _, prop in ipairs(proplist) do
local val = vals[prop]
local newval = newvals[prop]
-- deal with impedance mismatch between old style (plain string)
-- and new style (Russian/translit array), and empty string vs. nil
if not m_table.contains(non_form_props, prop) then
if type(val) == "string" then val = {val} end
if val and val[1] == "" then val = nil end
if type(newval) == "string" then newval = {newval} end
if newval and newval[1] == "" then newval = nil end
end
-- Ignore changes in pres_futr_*, which aren't displayed
if not forms_equal(val, newval) and not rfind(prop, "^pres_futr") then
-- Uncomment this to display the particular case and
-- differing forms.
--error(prop .. " " .. (val and concat_vals(val) or "nil") .. " || " .. (newval and concat_vals(newval) or "nil"))
difconj = true
break
end
end
end
track(difconj and "different-conj" or "same-conj")
end
return make_table(forms, title, perf, intr, impers, notes, internal_notes, old) .. m_utilities.format_categories(categories, lang)
end
--[=[
Functions for working with stems, paradigms, Russian/translit
]=]
-- Combine a stem with optional translit with an ending and possibly a foonote
-- symbol (which may be a tuple {RUNOTES, TRNOTES}), returning a tuple
-- {RUSSIAN, TR}.
local function combine(stem, tr, ending, note)
if not ending or ending == "-" then
return nil
end
local arg_status
ending, arg_status = strip_arg_status_prefix(ending)
if stem ~= "" and com.is_stressed(ending) then
stem, tr = com.make_unstressed_once(stem, tr)
end
stem = arg_status .. stem
if not note then
return com.concat_russian_tr(stem, tr, ending, nil, "dopair")
else
local runotes, trnotes = extract_russian_tr(note)
local ruending, trending = com.concat_russian_tr(ending, nil, runotes, trnotes)
return com.concat_russian_tr(stem, tr, ruending, trending, "dopair")
end
end
-- Set an individual form PARAM in FORMS with value based on stem STEM (with
-- optional translit TR), ENDINGS (either a single string or a list of strings)
-- and NOTE (nil, a string, or a tuple {RUSSIAN, TR}). If there are multiple
-- endings listed, they will go successively into PARAM, PARAM2, etc.
-- (e.g. past_m, past_m2, etc.).
local function set_form(forms, param, stem, tr, endings, note)
if type(endings) ~= "table" then
endings = {endings}
end
local entries = {}
for _, val in ipairs(endings) do
m_table.insertIfNot(entries, combine(stem, tr, val, note))
end
set_arg_chain(forms, param, param, entries)
end
-- Append to an individual form PARAM in FORMS with value based on stem STEM
-- (with optional translit TR), ENDINGS (either a single string or a list of
-- strings) and NOTE (nil, a string, or a tuple {RUSSIAN, TR}). If there are
-- multiple endings listed, they will go successively into PARAM, PARAM2, etc.
-- (e.g. past_m, past_m2, etc.), provided there are no existing forms already
-- present. Duplicate forms aren't inserted.
local function append_form(forms, param, stem, tr, endings, note)
if type(endings) ~= "table" then
endings = {endings}
end
for _, val in ipairs(endings) do
append_to_arg_chain(forms, param, param, combine(stem, tr, val, note))
end
end
local function append_pres_futr(forms, stem, tr,
sg1, sg2, sg3, pl1, pl2, pl3, note)
append_form(forms, "pres_futr_1sg", stem, tr, sg1, note)
append_form(forms, "pres_futr_2sg", stem, tr, sg2, note)
append_form(forms, "pres_futr_3sg", stem, tr, sg3, note)
append_form(forms, "pres_futr_1pl", stem, tr, pl1, note)
append_form(forms, "pres_futr_2pl", stem, tr, pl2, note)
append_form(forms, "pres_futr_3pl", stem, tr, pl3, note)
end
local function append_participles_2stem(forms,
pres_stem, pres_tr, past_stem, past_tr,
pres_actv, pres_pasv, pres_adv, past_actv, past_adv, past_adv_short,
pres_note, past_note)
append_form(forms, "pres_actv_part", pres_stem, pres_tr, pres_actv, pres_note)
append_form(forms, "pres_pasv_part", pres_stem, pres_tr, pres_pasv, pres_note)
append_form(forms, "pres_adv_part", pres_stem, pres_tr, pres_adv, pres_note)
append_form(forms, "past_actv_part", past_stem, past_tr, past_actv, past_note)
append_form(forms, "past_adv_part", past_stem, past_tr, past_adv, past_note)
append_form(forms, "past_adv_part_short", past_stem, past_tr, past_adv_short, past_note)
end
local function append_participles(forms, stem, tr,
pres_actv, pres_pasv, pres_adv, past_actv, past_adv, past_adv_short, note)
append_participles_2stem(forms, stem, tr, stem, tr,
pres_actv, pres_pasv, pres_adv, past_actv, past_adv, past_adv_short, note, note)
end
local function set_ppp(forms, stem, tr, ending, note)
set_form(forms, "past_pasv_part", stem, tr, ending, note)
end
local function append_ppp(forms, stem, tr, ending, note)
append_form(forms, "past_pasv_part", stem, tr, ending, note)
end
local function append_imper(forms, stem, tr, sg, pl, note)
append_form(forms, "impr_sg", stem, tr, sg, note)
append_form(forms, "impr_pl", stem, tr, pl, note)
end
local function set_past(forms, stem, tr, m, f, n, pl, note)
set_form(forms, "past_m", stem, tr, m, note)
set_form(forms, "past_f", stem, tr, f, note)
set_form(forms, "past_n", stem, tr, n, note)
set_form(forms, "past_pl", stem, tr, pl, note)
end
local function append_past(forms, stem, tr, m, f, n, pl, note)
append_form(forms, "past_m", stem, tr, m, note)
append_form(forms, "past_f", stem, tr, f, note)
append_form(forms, "past_n", stem, tr, n, note)
append_form(forms, "past_pl", stem, tr, pl, note)
end
-- Prepend a possibly-stressed prefix to all forms; if prefix is stressed,
-- destress the forms before prepending. FIXME: Should support explicit
-- manual translit.
local function prepend_prefix(forms, prefix, pre_two_cons_prefix)
pre_two_cons_prefix = pre_two_cons_prefix or prefix
local stressed_prefix = com.is_stressed(prefix)
for key, form in pairs(forms) do
local ru, tr = extract_russian_tr(form)
if tr then
error("Explicit manual translit not yet supported")
end
-- check for empty string, dashes and nil's
if ru and ru ~= "" and ru ~= "-" then
if stressed_prefix then
ru = com.make_unstressed(ru)
end
if rfind(ru, "^[" .. com.cons .. "][" .. com.cons .. "]") then
forms[key] = pre_two_cons_prefix .. ru
else
forms[key] = prefix .. ru
end
end
end
end
-- Apply regex substitution FROM -> TO to all forms. FIXME: Should support
-- explicit manual translit.
local function rsub_forms(forms, from, to)
for key, form in pairs(forms) do
local ru, tr = extract_russian_tr(form)
if tr then
error("Explicit manual translit not yet supported")
end
-- check for empty string, dashes and nil's
if ru and ru ~= "" and ru ~= "-" then
forms[key] = rsub(ru, from, to)
end
end
end
local variant_to_title = {
["[(2)]"] = "[②]",
["(2)"] = "②",
["[(3)]"] = "[③]",
["(3)"] = "③",
["[(4)]"] = "[④]",
["(4)"] = "④",
["[(5)]"] = "[⑤]",
["(5)"] = "⑤",
["[(6)]"] = "[⑥]",
["(6)"] = "⑥",
["[(7)]"] = "[⑦]",
["(7)"] = "⑦",
["[(8)]"] = "[⑧]",
["(8)"] = "⑧",
["(9)"] = "⑨",
["щ"] = "(-щ-)",
["ё"] = "(-ё-)",
["о"] = "(-о-)",
["жд"] = "(-жд-)",
}
local function prepare_past_stress_indicator(past_stress)
if not past_stress or past_stress == "a" then
return ""
end
past_stress = rsub(past_stress, "%(1%)", "①")
past_stress = rsub(past_stress, "(.),%1①", "%1[①]")
past_stress = rsub(past_stress, "(.)①,%1", "%1[①]")
past_stress = rsub(past_stress, "''", "''")
past_stress = rsub(past_stress, "-nd", "")
past_stress = rsub(past_stress, "-bd", "")
return "/" .. past_stress
end
local function parse_variants(data, variants, allowed)
-- Need to set these to nil in case of multiple arg sets
data.imper_variant = nil
data.var4 = nil
data.var5 = nil
data.var6 = nil
data.ppp = nil
data.var9 = nil
data.shch = nil
data.yo = nil
data.o = nil
data.zhd = nil
data.star = nil
variants = variants or ""
local variant_title = ""
if variants ~= "" then -- short-circuit the most common case
-- Only recognize * variant for long-variant prefix at the beginning
-- of the variant code block (where it gets moved if it's in the
-- middle of the conjugation type, as it normally is) because a *
-- also occurs in b*, a past stress variant code.
if rfind(variants, "^%*") then
-- Specify that the present/future tense has extra -о in the prefix:
-- types 9*b (e.g. растере́ть, futr_1sg разотру́) and 11*b (e.g. изли́ть,
-- futr_1sg изолью́). It can also occur with type 7*b (in -че́сть,
-- e.g. счесть, сочту́; расче́сть, разочту́) and type 8*b (in -же́чь, e.g.
-- сжечь, сожгу́) but these are always irregular and require the
-- present tense to be specified explicitly. It can also occur
-- with type 14*b (e.g. размя́ть, разомну́; сжать, сожну́; подожа́ть, подожму́),
-- but for these verbs the present tense is unpredictable and
-- must be specified explicitly.
--
-- This can also occur where the extra -о occurs in the infinitive
-- and past, but not the present tense: type 5*c (in -гна́ть, e.g.
-- согна́ть, сгоню́; разогна́ться, разгоню́сь), type 6*c (in -стла́ть, e.g.
-- подостла́ть, подстелю́; разостла́ть, расстелю́), type 6°*c
-- (in -зва́ть, -бра́ть, -дра́ть, e.g. подозва́ть, подзову́; разобра́ться, разберу́сь);
-- but these are always irregular and require the present tense
-- to be specified explicitly.
if not m_table.contains(allowed, "*") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.star = true
variants = rsub(variants, "^*", "")
end
-- Allow brackets around both 5 and 6, e.g. [(5)(6)]
variants = rsub(variants, "%[(%([56]%))(%([56]%))%]", "[%1][%2]")
-- Handle all remaining variants. We do this using an rsub() function,
-- where we pull out, parse and remove each variant in turn.
variants = rsub(variants, "(%[?%(?[23456789ёощийьж+][дp]?%)?%]?)", function(var)
if m_table.contains({"(2)", "[(2)]", "(3)", "[(3)]", "и", "й", "ь"}, var) then
if data.imper_variant then
error("Saw two imperative variants " .. data.imper_variant ..
" and " .. var)
end
local is_23 = m_table.contains({"(2)", "[(2)]", "(3)", "[(3)]"}, var)
if is_23 and not m_table.contains(allowed, "23") or
not is_23 and not m_table.contains(allowed, "и") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.imper_variant = var
elseif m_table.contains({"(4)", "[(4)]"}, var) then
if data.var4 then
error("Saw two variant-4 specs " .. data.var4 .. " and " .. var)
end
if not m_table.contains(allowed, "4") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.var4 = var == "(4)" and "req" or "opt"
elseif m_table.contains({"(5)", "[(5)]"}, var) then
if data.var5 then
error("Saw two variant-5 specs " .. data.var5 .. " and " .. var)
end
if not m_table.contains(allowed, "5") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.var5 = var == "(5)" and "req" or "opt"
elseif m_table.contains({"(6)", "[(6)]"}, var) then
if data.var6 then
error("Saw two variant-6 specs " .. data.var6 .. " and " .. var)
end
if not m_table.contains(allowed, "6") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.var6 = var == "(6)" and "req" or "opt"
elseif m_table.contains({"(7)", "[(7)]", "(8)", "[(8)]", "+p"}, var) then
if data.shouldnt_have_ppp then
error("Shouldn't specify past passive participle with reflexive or intransitive verbs, if it's needed use has_ppp=y")
end
if data.ppp then
error("Saw two past passive participle specs " .. data.ppp .. " and " .. var)
end
if m_table.contains({"(7)", "[(7)]"}, var) and not m_table.contains(allowed, "7") or
m_table.contains({"(8)", "[(8)]"}, var) and not m_table.contains(allowed, "8") or
var == "+p" and not m_table.contains(allowed, "+p") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.ppp = var
elseif var == "(9)" then
if data.var9 then
error("Saw (9) twice")
end
if not m_table.contains(allowed, "9") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.var9 = true
elseif var == "щ" then
-- specify that the 1sg pres/futr and past passive participle
-- of class 4/5/6 verbs iotate -т to -щ instead of -ч; cf.
-- похи́тить (похи́щу) (4a), защити́ть (защищу́) (4b),
-- поглоти́ть (поглощу́) (4c), клевета́ть (клевещу́) (6c)
if data.shch then
error("Saw щ twice")
end
if not m_table.contains(allowed, "щ") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.shch = "щ"
elseif var == "ё" then
-- specify that the past passive participle has ё instead of е
if data.yo then
error("Saw ё twice")
end
if not m_table.contains(allowed, "ё") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.yo = true
elseif var == "о" then
-- specify that the past passive participle has о instead of е
-- NOTE: Not currently allowed as a user-specifiable variant
if data.o then
error("Saw о twice")
end
if not m_table.contains(allowed, "о") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.o = true
elseif var == "жд" then
-- specify that the past passive participle of class 4/5/6 verbs
-- iotates -д to -жд instead of -ж
if data.zhd then
error("Saw жд twice")
end
if not m_table.contains(allowed, "жд") then
error("Variant " .. var .. " not allowed for this verb class")
end
data.zhd = true
else
error("Unrecognized variant spec: " .. var)
end
variant_title = variant_title .. (variant_to_title[var] or "")
return ""
end)
variant_title = rsub(variant_title, "%[⑤%]%[⑥%]", "[⑤⑥]")
end
if variants ~= "" and not m_table.contains(allowed, "past") then
error("Past stress " .. variants .. " not allowed for this verb class")
end
if data.yo and not data.ppp then
error("Variant ё specified without calling for past passive participle")
end
if data.o and not data.ppp then
error("Variant о specified without calling for past passive participle")
end
if data.zhd and not data.ppp then
error("Variant жд specified without calling for past passive participle")
end
if data.perf and not data.ppp and not data.ppp_override and not data.shouldnt_have_ppp and not data.impers then
error("For perfective transitive verbs, need to specify past passive participle by variant or override; use |ppp=- if no such participle")
end
data.past_stress = variants == "" and "a" or rsub(variants, "/", "")
data.title = data.title ..
prepare_past_stress_indicator(data.past_stress) ..
variant_title
if data.star then
data.title = rsub(data.title, "^([0-9]+°?)", "%1*")
end
-- If there's an override of past_pasv_part, generate the normal participle
-- so we can determine whether the override is irregular. But set a flag
-- so we erase any automatically generated past passive participles that
-- aren't overridden. This happens for example in обнять, where there are
-- two automatically generated past passive participles but a single
-- ppp=о́внятый override.
if not data.ppp and data.main_ppp_override then
data.ppp = "+p"
data.ppp_auto_generated = true
end
end
local function set_past_by_stress(forms, past_stresses, prefix, prefixtr, base,
basetr, args, data, no_pastml, note)
-- If there isn't manual translit for the prefix, we need to supply it
-- if there's manual translit for the base, because we often concatenate
-- prefix to the base.
local prefixtr = prefixtr or basetr and com.translit(prefix)
for _, past_stress in ipairs(rsplit(past_stresses, ",")) do
local pastml = no_pastml and "" or "л"
local stressed_prefix, stressed_prefixtr
if prefix == "пере" then
stressed_prefix = "пе́ре"
stressed_prefixtr = "pe" .. AC .. "re"
elseif prefix == "раз" then
stressed_prefix = "ро́з"
stressed_prefixtr = "ro" .. AC .. "z"
elseif prefix == "рас" then
-- Does this ever occur?
stressed_prefix = "ро́с"
stressed_prefixtr = "ro" .. AC .. "s"
elseif prefix == "ра" and rfind(base, "^[сз]") then
-- Type 9/11/14/16 with automatically split prefix; may never happen.
stressed_prefix = "ро́"
stressed_prefixtr = "ro" .. AC
else
stressed_prefix, stressed_prefixtr =
com.make_ending_stressed(prefix, prefixtr)
end
-- Normally the base is stressed and the prefix isn't, but it could
-- be the other way around, e.g. in запереть and запереться, where
-- the stress on the prefix is used to get prefix-stressed participles.
-- To deal with this, we usually combine base and prefix unchanged,
-- but in combination with stressed_prefix we always want an unstressed
-- base, and when a stressed -ся́ is called for, we want both of them
-- unstressed.
local ubase, ubasetr = com.make_unstressed(base, basetr)
local uprefix, uprefixtr = com.make_unstressed(prefix, prefixtr)
-- If the prefix is stressed (вы́-), we need to use the unstressed base to avoid getting double stress.
local prefixbase = com.is_stressed(prefix) and prefix .. ubase or prefix .. base
local prefixbasetr = basetr and (com.is_stressed(prefix) and prefixtr .. ubasetr or prefixtr .. basetr)
local stressed_prefix_ubase = stressed_prefix .. ubase
local stressed_prefix_ubasetr = ubasetr and stressed_prefixtr .. ubasetr
local uprefixubase = uprefix .. ubase
local uprefixubasetr = ubasetr and uprefixtr .. ubasetr
if past_stress == "a" then
-- (/под/пере/при/по)забы́ть, раздобы́ть, (/пере/по)забы́ться
append_past(forms, prefixbase, prefixbasetr, pastml,
"ла", "ло", "ли", note)
elseif past_stress == "a(1)" then
-- вы́дать, вы́быть, etc.; also проби́ть with the meaning
-- "to strike (of a clock)" (which is a(1),a or similar)
append_past(forms, stressed_prefix_ubase,
stressed_prefix_ubasetr, pastml, {}, "ло", "ли", note)
-- Retraction to prefix doesn't happen in feminine singular, see the
-- bottom of page 81 of Zaliznyak's 1980 grammar.
append_past(forms, prefixbase, prefixbasetr, {}, "ла", {}, {}, note)
elseif past_stress == "b" then
append_past(forms, prefixbase, prefixbasetr, pastml,
"ла́", "ло́", "ли́", note)
elseif past_stress == "b*" then
if not data.refl then
error("Only reflexive verbs can take past stress variant " .. past_stress)
end
-- See comment in type c''. We want to see whether we actually
-- added an argument, and if so, where.
local argset = append_to_arg_chain(forms, "past_m", "past_m",
combine(uprefixubase, uprefixubasetr, pastml .. (note or "")))
if argset and not args[argset] and not data.impers then
data.default_reflex_stress = "ся́"
end
append_past(forms, prefixbase, prefixbasetr, {}, "ла́", "ло́", "ли́", note)
elseif past_stress == "c" then
-- изда́ть, возда́ть, сдать, пересозда́ть, воссозда́ть, надда́ть, наподда́ть, etc.
-- быть, избы́ть, сбыть
-- клясть, закля́сть
append_past(forms, prefixbase, prefixbasetr, pastml, "ла́", "ло", "ли", note)
elseif past_stress == "c(1)" then
-- прибы́ть, убы́ть
-- прокля́сть
-- also, c(1),c:
-- зада́ть, обда́ть, отда́ть, подда́ть, переда́ть (пе́редал), преда́ть, прода́ть, разда́ть (ро́здал), созда́ть, etc.
-- отбы́ть, побы́ть, пробы́ть
-- also, c,c(1):
-- добы́ть
-- Because the prefix may vary depending on stress (esp. for
-- раздать [ро́здал/раздала́]), we need to separate the endings that
-- take the stressed prefix and those that take the unstressed
-- prefix with stressed ending.
append_past(forms, stressed_prefix_ubase, stressed_prefix_ubasetr,
pastml, {}, "ло", "ли", note)
append_past(forms, prefixbase, prefixbasetr, {}, "ла́", {}, {}, note)
elseif past_stress == "c'" then
-- дать
--same with "взять"
append_past(forms, prefixbase, prefixbasetr,
pastml, "ла́", {"ло", "ло́"}, "ли", note)
elseif past_stress == "c''" or past_stress == "c''-nd" or past_stress == "c''-bd" then
if not data.refl then
error("Only reflexive verbs can take past stress variant " .. past_stress)
end
-- c'' (-ся́ dated): all verbs in -да́ться; избы́ться, сбы́ться; all verbs in -кля́сться
-- c''-nd (-ся́ not dated): various verbs in -ня́ться per Zaliznyak
-- c''-bd (-ся́ becoming dated): various verbs in -ня́ться per ruwikt
local note_symbol = past_stress == "c''-nd" and "" or
next_note_symbol(data)
append_past(forms, prefixbase, prefixbasetr,
pastml, "ла́", {"ло́", "ло"}, {"ли́", "ли"})
-- We want to see whether we actually added an argument, and if
-- so, where.
local argset = append_to_arg_chain(forms, "past_m", "past_m",
combine(uprefixubase, uprefixubasetr, pastml .. note_symbol .. (note or "")))
-- Only display the internal note and set the default reflex
-- stress if the form with the note will be displayed (i.e. not
-- impersonal, and no override of this form). FIXME: We should
-- have a more general mechanism to check for this.
if not args[argset] and not data.impers then
local note = past_stress == "c''" and note_symbol .. " Dated." or
past_stress == "c''-bd" and note_symbol .. " Becoming dated." or
nil
if note then
m_table.insertIfNot(data.internal_notes, note)
end
data.default_reflex_stress = "ся́"
end
elseif past_stress == "c''(1)" then
-- запере́ться
-- See comment in type c''. We want to see whether we actually
-- added an argument, and if so, where.
local argset = append_to_arg_chain(forms, "past_m", "past_m",
combine(uprefixubase, uprefixubasetr, pastml .. (note or "")))
if argset and not args[argset] and not data.impers then
data.default_reflex_stress = "ся́"
end
append_past(forms, prefixbase, prefixbasetr, {}, "ла́", "ло́", "ли́", note)
append_past(forms, stressed_prefix_ubase, stressed_prefix_ubasetr,
pastml, {}, "ло", "ли", note)
else
error("Unrecognized past-stress value " .. past_stress .. ", should be a, a(1), b, b*, c, c(1), c', c'', c''-nd, c''-bd, c''(1) or comma-separated list")
end
end
end
-- Split a verb stem into a possibly multisyllabic prefix (пере-, переиз-,
-- воссоз-, повы́-, etc.) and a single-syllable main verb (-тер-, -ли́-, -гре́-,
-- etc.). Normally the splitting is done simply by looking for alternating
-- vowel/consonant sequences, meaning that e.g. разгре́ will be split as
-- ра + згре́ and растер will be split as ра + стер. For most purposes, this
-- doesn't matter, but for the * variant it does; in that case, if it is
-- known that the main verb base always begins with a single consonant,
-- specify SINGLE_CONS_BASE and then e.g. растер will be split as рас + тер.
local function split_monosyllabic_main_verb(ru, tr, single_cons_base)
local rusyl, trsyl = com.split_syllables(ru, tr)
local last_ru = rusyl[#rusyl]
local last_tr = trsyl and trsyl[#trsyl]
table.remove(rusyl, #rusyl)
local prefix_ru = table.concat(rusyl, "")
local prefix_tr
if trsyl then
table.remove(trsyl, #trsyl)
prefix_tr = table.concat(trsyl, "")
end
if single_cons_base then
local cons_to_move, rest = rmatch(last_ru, "^([" .. com.cons .. "]+)([" .. com.cons .. "].*)$")
if cons_to_move then
prefix_ru = prefix_ru .. cons_to_move
last_ru = rest
end
if last_tr then
cons_to_move, rest = rmatch(last_tr, "^([" .. com.tr_cons .. "]+)([" .. com.tr_cons .. "].*)$")
if cons_to_move then
prefix_tr = prefix_tr .. cons_to_move
last_tr = rest
end
end
end
return prefix_ru, prefix_tr, last_ru, last_tr
end
local function split_known_main_verb(arg, mains)
-- Given an argument (which may be RUSSIAN//TR), split the prefix from
-- the main verb, which should be one of the verbs in MAINS (which can be
-- a -- single verb or a list of verbs, but in either case all verbs
-- need to be stressed). This correctly handles stressed and unstressed
-- prefixes.
local stem, tr = com.split_russian_tr(arg)
if type(mains) ~= "table" then
mains = {mains}
end
for _, main in ipairs(mains) do
assert(com.is_stressed(main))
if rfind(stem, main .. "$") then
stem, tr = com.strip_ending(stem, tr, main)
if com.is_stressed(stem) then
error("Two stresses in " .. arg)
end
return stem, tr, main, nil
end
main = com.make_unstressed_once(main)
if rfind(stem, main .. "$") then
stem, tr = com.strip_ending(stem, tr, main)
if com.is_unstressed(stem) then
error("No stresses in " .. arg)
end
return stem, tr, main, nil
end
end
if #mains == 1 then
error("Argument " .. arg .. " doesn't end in " .. mains[1])
else
error("Argument " .. arg .. " doesn't end in any of " .. table.concat(mains, ","))
end
end
local function construct_long_prefix_variant(prefix)
if rfind(prefix, "рас$") then
return rsub(prefix, "рас$", "разо")
end
if rfind(prefix, "ис$") then
return rsub(prefix, "ис$", "изо")
end
if rfind(prefix, "вс$") then
return rsub(prefix, "вс$", "взо")
end
return prefix .. "о"
end
local function append_imper_by_variant(forms, stem, tr, variant, verbclass, note)
local vowel_stem = is_vowel_stem(stem)
local stress = rmatch(verbclass, "([abc])$")
if not stress then
error("Unrecognized verb class '" .. verbclass .. "', should end with a, b or c")
end
local longend = stress == "a" and "и" or "и́"
local shortend = vowel_stem and (com.is_unstressed(stem) and "́й" -- accent on previous vowel
or "й") or "ь"
local function append_short_imper()
append_imper(forms, stem, tr, shortend, shortend .. "те", note)
end
local function append_long_imper()
append_imper(forms, stem, tr, longend, longend .. "те", note)
end
if variant and variant ~= "" then
track("explicit-imper")
track("explicit-imper/" .. verbclass)
end
if variant == "(2)" then
-- use short variants with вы́- (for these verbs, long is expected)
if not rfind(stem, "^вы́-") then
error("Should only specify imperative variant (2) with verbs in вы́-, not " .. stem)
end
append_short_imper()
elseif variant == "[(2)]" then
-- use both long and short variants
append_long_imper()
append_short_imper()
elseif variant == "(3)" then
-- long in singular, short in plural
append_imper(forms, stem, tr, longend, shortend .. "те", note)
elseif variant == "[(3)]" then
-- long and short in singular, short in plural
append_imper(forms, stem, tr, {longend, shortend}, shortend .. "те", note)
elseif variant == "ь" or variant == "й" then
-- short variants wanted
append_short_imper()
elseif variant == "и" then
-- long variants wanted
append_long_imper()
else
assert(not variant or variant == "")
if vowel_stem then
if verbclass == "4b" or verbclass == "4c" or (
verbclass == "4a" and rfind(stem, "^вы́-")) then
append_long_imper()
else
append_short_imper()
end
else -- consonant stem
if stress == "b" or stress == "c" then
append_long_imper()
else
assert(stress == "a")
-- "и" after вы́-, e.g. вы́садить
-- "и" after final щ, e.g. тара́щиться (although this particular
-- verb has a [(3)] spec attached to it)
if rfind(stem, "^вы́-") or rfind(stem, "щ$") or
-- "и" after two consonants in a row (мо́рщить, зафре́ндить)
rfind(stem, "[бвгджзклмнпрстфхцчшщь][бвгджзклмнпрстфхцчшщ]$") then
append_long_imper()
else
-- "ь" after a single consonant (бре́дить)
append_short_imper()
end
end
end
end
end
-- Compute the past passive participle stem for verbs that require it to be
-- iotated (class 4, and class 5 in -еть).
local function iotated_ppp(data, stem, tr)
local iotated_stem, iotated_tr
if data.zhd then
local subbed
iotated_stem, subbed = rsubb(stem, "з?д$", "жд")
if not subbed then
error("Variant -жд- specified but stem " .. stem .. " doesn't end in -д")
end
if tr then
iotated_tr, subbed = rsubb(tr, "z?d$", "žd")
if not subbed then
error("Variant -жд- specified but translit " .. tr .. " doesn't end in -d")
end
end
else
iotated_stem, iotated_tr = com.iotation(stem, tr, data.shch)
end
return iotated_stem, iotated_tr
end
-- Set the past passive participle of verbs where the stress is moved left
-- from the ending by one syllable (if possible) if the ending is stressed,
-- otherwise left as-is (except class 1a in -е́ть, which has ending-stressed
-- -ённый). This applies to classes 1, 2, 3, 5, 6, 10 and 13. The stem comes
-- from the infinitive, iotated in class 5 -еть/-ѣть verbs. The participle
-- ending is -анный/-янный for verbs in -ать/-ять, -енный/-ённый for verbs in -еть,
-- -ѣнный/-ѣ̈нный for verbs in -ѣть, otherwise -тый.
local function set_moving_ppp(forms, data)
if not data.ppp then
return
end
-- NOTE: No need to check for multiple infinitives because no verbs have
-- them normally, and we probably don't want to check for overrides here
-- (e.g. it would break достичь and related verbs, which have participles
-- based on the infinitive достигнуть).
local infinitive, infinitivetr = extract_russian_tr(forms["infinitive"])
local stem, ending = rmatch(infinitive, "^(.*)([аеѣоуя]́?ть)$")
if not stem then
error("Strange infinitive " .. infinitive .. " when trying to create participle")
end
local tr, endingtr
if infinitivetr then
if ending == "ять" or ending == "я́ть" then
tr, endingtr = rmatch(infinitivetr, "^(.*)(ja" .. AC .. "?tʹ)$")
else
tr, endingtr = rmatch(infinitivetr, "^(.*)([aeěou]" .. AC .. "?tʹ)$")
end
if not tr then
error("Translit " .. infinitivetr .. " doesn't match Cyrillic " ..
infinitive)
end
end
local ending_vowel = usub(ending, 1, 1)
local ppptype = data.ppp
if com.is_nonsyllabic(stem) then
-- e.g. 3b гну́ть (гну́тый); but not -нуть (type 3a, as a suffix)
ppptype = "(7)"
end
if m_table.contains({"5a", "5b", "5c"}, data.conj_type) and
(ending_vowel == "е" or ending_vowel == "ѣ") then
stem, tr = iotated_ppp(data, stem, tr)
end
if not com.is_stressed(stem) then
stem, tr = com.make_ending_stressed(stem, tr)
end
if data.o then
-- цев -> цо́в, e.g. (об)лицева́ть -> (об)лицо́ванный
stem = rsub(stem, "е́", "о́") -- Cyrillic
if tr then
tr = rsub(tr, "e" .. AC, "o" .. AC) -- Latin
end
elseif data.yo then
-- ё occurs with e.g. 1a наверста́ть (навёрстанный)
-- ё occurs with e.g. 3b поверну́ть (повёрнутый)
-- ё occurs with e.g. 5b лежа́ть (лёжанный) but not with 5c держа́ть
-- (де́ржанный)
-- ё occurs always with class 2 in -ева́ть, e.g.
-- (за)тушева́ть ((за)тушёванный) and (за)клева́ть ((за)клёванный)
local subbed
stem, subbed = rsubb(stem, "е́", "ё") -- Cyrillic
if not subbed and data.old then
stem, subbed = rsub(stem, "ѣ́", "ѣ̈")
end
if not subbed then
error("No stressed е" .. (data.old and " or ѣ" or "") ..
" in stem " .. stem ..
" to replace with ё" .. (data.old and " or ѣ̈" or "") ..
" when trying to create participle")
end
if tr then
tr, subbed = rsub(tr, "j[eě]" .. AC, "jo" .. AC) -- Latin
if not subbed then
tr, subbed = rsub(tr, "[eě]" .. AC, "jo" .. AC) -- Latin
end
if not subbed then
error("No stressed е in translit " .. tr .. " to replace with jo when trying to create participle")
end
end
end
if data.conj_type == "1a" and ending_vowel == "е" then
-- 1a, only одоле́ть, преодоле́ть, verbs in -печатле́ть
set_ppp(forms, stem, tr, "ённый")
elseif data.conj_type == "1a" and ending_vowel == "ѣ" then
set_ppp(forms, stem, tr, "ѣ̈нный")
else
local stressed_ending, unstressed_ending
if ending_vowel == "е" then
stressed_ending = "ённый"
unstressed_ending = "енный"
elseif ending_vowel == "ѣ" then
stressed_ending = "ѣ̈нный"
unstressed_ending = "ѣнный"
else
local ppp_ending =
(ending_vowel == "а" or ending_vowel == "я") and "нный" or "тый"
stressed_ending = ending_vowel .. AC .. ppp_ending
unstressed_ending = ending_vowel .. ppp_ending
end
set_ppp(forms, stem, tr,
-- (7) occurs with 1a обуя́ть (обуя́нный)
ppptype == "(7)" and stressed_ending or
-- [(7)] -- when does it occur? may only occur in class 4
ppptype == "[(7)]" and {unstressed_ending, stressed_ending} or
unstressed_ending)
end
end
-- Iterate over the values of a property (e.g. past_m, past_f), handling
-- overrides properly. Call FN on each one, passing in RU, TR, NOTE.
local function iterate_over_prop(forms, args, prop, fn)
for _, form in ipairs(main_to_all_verb_forms[prop]) do
local ru, tr
if args[form] then
local orig_forms = {}
for _, form2 in ipairs(main_to_all_verb_forms[prop]) do
if forms[form2] then
table.insert(orig_forms, forms[form2])
end
end
local override = parse_and_stress_override(form, args[form], forms[form], orig_forms)
ru, tr = extract_russian_tr(override)
end
if (not ru or ru == "" or ru == "-") and forms[form] then
ru, tr = extract_russian_tr(forms[form])
end
-- skip unstressed forms (may occur in the past_m when a stressed
-- reflexive -ся́ should occur; these occur only in запереться and
-- опереться, where they're used to generate the past active part
-- and past adverbial part, and end-stressed forms shouldn't be
-- generated)
if ru and ru ~= "" and ru ~= "-" and not com.is_unstressed(ru) then
local ruentry, runotes = m_table_tools.separate_notes(ru)
local trentry, trnotes
if tr then
trentry, trnotes = m_table_tools.separate_notes(tr)
end
fn(ruentry, trentry, {runotes, trnotes})
end
end
end
-- Set the past passive participle for those classes where it is derived
-- from the past tense masculine singular (9, 11, 12, 14, 15, 16). We need
-- to apply any relevant overrides.
local function set_ppp_from_past_m(forms, args, data)
if not data.ppp then
return
end
iterate_over_prop(forms, args, "past_m", function(ru, tr, note)
if rfind(ru, "л$") then
ru = rsub(ru, "л$", "")
if tr then
tr = rsub(tr, "l$", "")
end
end
append_ppp(forms, ru, tr, "тый", note)
end)
end
-- Set the past passive participle for class-4 verbs.
local function set_class_4_ppp(forms, data, stem, tr, vclass)
if not data.ppp then
return
end
local iotated_stem, iotated_tr = iotated_ppp(data, stem, tr)
vclass = vclass or data.conj_type
if vclass == "4b" then
local stressed_iotated_stem, stressed_iotated_tr =
com.make_ending_stressed(iotated_stem, iotated_tr)
set_ppp(forms, stressed_iotated_stem, stressed_iotated_tr,
-- (8) occurs with 4b скрои́ть (скро́енный)
data.ppp == "(8)" and "енный" or
-- [(8)] occurs with 4b разгроми́ть (разгромлённый, разгро́мленный)
data.ppp == "[(8)]" and {"ённый", "енный"} or "ённый")
else
set_ppp(forms, iotated_stem, iotated_tr,
-- (7) occurs with 4c раздели́ть (разделённый)
data.ppp == "(7)" and "ённый" or
-- [(7)] occurs with 4a осве́домить (осве́домленный, осведомлённый)
-- [(7)] occurs with 4c иссуши́ть (иссу́шенный, иссушённый)
data.ppp == "[(7)]" and {"енный", "ённый"} or "енный")
end
end
-- Set the past passive participle for class-7 and class-8 verbs. These
-- form the PPP by adding to the base of the 3sg pres/futr (i.e. minus
-- -ет/-ёт). The stress follows the stress of the past singular feminine.
-- Only types a, a(1) and b exist, meaning that if the past singular feminine
-- is ending-stressed then the PPP ending is -ённый, otherwise it is -енный
-- with the stress of the 3sg pres/futr base preserved (and added to the
-- last syllable if the base has no stress, as in 7b укра́сть, 3sg украдёт,
-- fem sg past укра́ла, PPP укра́денный).
local function set_class_7_8_ppp(forms, args, data)
if not data.ppp then
return
end
local sg3_bases = {}
-- Extract 3sg bases. There may be more than one possible form, e.g. in
-- обокра́сть, so support this.
-- FIXME: We don't support checking for overrides here; doing so isn't
-- overly hard but is a bit tricky because the overrides will be either
-- pres_3sg or futr_3sg, depending on the aspect of the verb.
-- FIXME: We don't support manual translit here, because neither 7 nor 8
-- support it elsewhere.
for _, form in ipairs(main_to_all_verb_forms["pres_futr_3sg"]) do
local ru, tr
if forms[form] then
ru, tr = extract_russian_tr(forms[form])
end
if ru and ru ~= "" and ru ~= "-" then
local ruentry, runotes = m_table_tools.separate_notes(ru)
ruentry = rsub(ruentry, "[её]т$", "")
if com.is_unstressed(ruentry) then
ruentry = com.make_ending_stressed(ruentry)
end
m_table.insertIfNot(sg3_bases, {ruentry, runotes})
end
end
-- Here we do the same rigmarole as in set_ppp_from_past_m(), to respect
-- any past_f overrides that might have been set. It's unlikely that
-- there is more than one possible form but we support it.
iterate_over_prop(forms, args, "past_f", function(ru, tr, note)
for _, base_and_notes in ipairs(sg3_bases) do
local base, notes = base_and_notes[1], base_and_notes[2]
append_ppp(forms, base, nil,
-- check if past_f is ending-stressed
rfind(ru, AC .. "$") and "ённый" or "енный", notes)
end
end)
end
--[=[
Conjugation functions
]=]
conjugations["1a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"+p", "7", "ё"})
local stem, tr = com.split_russian_tr(get_stressed_arg(args, 2))
if stem == "-" and not tr then
-- Template space; leave it
else
stem, tr = com.strip_ending(stem, tr, "ть")
end
no_stray_args(args, 2)
forms["infinitive"] = combine(stem, tr, "ть")
append_participles(forms, stem, tr, "ющий", "емый", "я", "вший", "вши", "в")
set_moving_ppp(forms, data)
present_je(forms, stem, tr, "a")
append_imper(forms, stem, tr, "й", "йте")
set_past(forms, stem, tr, "л", "ла", "ло", "ли")
return forms
end
local function guts_of_2(args, data)
local forms = {}
local inf_stem, inf_tr = com.split_russian_tr(get_stressed_arg(args, 2))
inf_stem, inf_tr = com.strip_ending(inf_stem, inf_tr, "ть")
no_stray_args(args, 2)
local pres_stem, pres_tr = inf_stem, inf_tr
local variants = args[1] or ""
parse_variants(data, variants, {"+p", "7"})
-- If stem ends in -ева́ть and a past passive participle is called for
-- with stress on the -е-, automatically set -о- or -ё- as required.
if data.ppp and data.ppp ~= "(7)" then
if rfind(inf_stem, "цева́") then
if data.ppp == "[(7)]" then
-- FIXME. Theoretically we should support this but there
-- aren't any verbs requiring it. It won't work properly
-- currently because we need the о to appear only when
-- stressed.
error("Variant [(7)] not supported for class 2")
end
-- цев -> цо́в, e.g. (об)лицева́ть -> (об)лицо́ванный
data.o = true
data.title = data.title .. "(-о-)"
elseif rfind(inf_stem, "ева́") then
data.yo = true
data.title = data.title .. "(-ё-)"
end
end
-- all -ова- change to -у-
pres_stem = rsub(pres_stem, "о(́?)ва(́?)$", "у%1%2")
pres_tr = pres_tr and rsub(pres_tr, "o(́?)va(́?)$", "u%1%2")
-- -ева- change to -ю- after most consonants and vowels, to -у- after hissing sounds and ц
if rfind(pres_stem, "[бвгдзклмнпрстфхь" .. com.vowel .. AC .. "]е(́?)ва(́?)$") then
pres_stem = rsub(pres_stem, "е(́?)ва(́?)$", "ю%1%2")
pres_tr = pres_tr and rsub(pres_tr, "e(́?)va(́?)$", "ju%1%2")
elseif rfind(pres_stem, "[жцчшщ]е(́?)ва(́?)$") then
pres_stem = rsub(pres_stem, "е(́?)ва(́?)$", "у%1%2")
pres_tr = pres_tr and rsub(pres_tr, "e(́?)va(́?)$", "u%1%2")
end
forms["infinitive"] = combine(inf_stem, inf_tr, "ть")
if data.conj_type == "2a" then
append_participles_2stem(forms, pres_stem, pres_tr, inf_stem, inf_tr,
"ющий", "емый", "я", "вший", "вши", "в")
present_je(forms, pres_stem, pres_tr, "a")
else
append_participles_2stem(forms, pres_stem, pres_tr, inf_stem, inf_tr,
"ю́щий", "-", "я́", "вший", "вши", "в")
present_je(forms, pres_stem, pres_tr, "b")
end
set_moving_ppp(forms, data)
append_imper(forms, pres_stem, pres_tr, "й", "йте")
set_past(forms, inf_stem, inf_tr, "л", "ла", "ло", "ли")
return forms
end
conjugations["2a"] = function(args, data)
return guts_of_2(args, data)
end
conjugations["2b"] = function(args, data)
return guts_of_2(args, data)
end
conjugations["3°a"] = function(args, data)
local forms = {}
-- (5), [(6)] or similar; imperative indicators
parse_variants(data, args[1], {"5", "6", "23", "и", "+p", "7", "ё"})
local stem, tr = com.split_russian_tr(get_stressed_arg(args, 2))
stem, tr = com.strip_ending(stem, tr, "нуть")
local vowel_stem = is_vowel_stem(stem)
no_stray_args(args, 2)
forms["infinitive"] = combine(stem, tr, "нуть")
append_participles(forms, stem, tr,
-- default is blank for pres passive and adverbial
"нущий", "-", "-",
data.var6 == "req" and "нувший" or
data.var6 == "opt" and (vowel_stem and {"вший", "нувший"} or {"ший", "нувший"}) or
vowel_stem and "вший" or "ший",
data.var6 == "req" and "нувши" or
data.var6 == "opt" and (vowel_stem and {"вши", "нувши"} or {"ши", "нувши"}) or
vowel_stem and "вши" or "ши",
data.var6 == "req" and "нув" or
data.var6 == "opt" and (vowel_stem and {"в", "нув"} or "нув") or
vowel_stem and "в" or "-")
set_moving_ppp(forms, data)
present_e_a(forms, stem .. "н", tr and tr .. "n")
append_imper_by_variant(forms, stem .. "н", tr and tr .. "n", data.imper_variant, "3°a")
forms["past_m"] = data.var5 and combine(stem, tr, "нул") or "-"
forms["past_m_short"] = data.var5 ~= "req" and combine(stem, tr, (vowel_stem and "л" or "")) or nil
forms["past_f_short"] = combine(stem, tr, "ла")
forms["past_n_short"] = combine(stem, tr, "ло")
forms["past_pl_short"] = combine(stem, tr, "ли")
return forms
end
conjugations["3a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"23", "и", "+p", "7", "ё"})
local stem, tr = com.split_russian_tr(get_stressed_arg(args, 2))
-- make sure we can strip нуть from the stem and any translit;
com.strip_ending(stem, tr, "нуть")
-- but then just strip the -уть and leave the н
stem, tr = com.strip_ending(stem, tr, "уть")
no_stray_args(args, 2)
forms["infinitive"] = combine(stem, tr, "уть")
append_participles(forms, stem, tr,
-- default is blank for pres passive and adverbial
"ущий", "-", "-", "увший", "увши", "ув")
set_moving_ppp(forms, data)
present_e_a(forms, stem, tr)
append_imper_by_variant(forms, stem, tr, data.imper_variant, "3a")
set_past(forms, stem .. "ул", tr and tr .. "ul", "", "а", "о", "и")
return forms
end
local function guts_of_3b_3c(args, data, vclass)
local forms = {}
parse_variants(data, args[1], {"+p", "7", "ё"})
local stem, tr = com.split_russian_tr(get_stressed_arg(args, 2))
-- make sure we can strip нуть from the stem and any translit;
com.strip_ending(stem, tr, "ну́ть")
-- but then just strip the -у́ть and leave the н
stem, tr = com.strip_ending(stem, tr, "у́ть")
no_stray_args(args, 2)
forms["infinitive"] = combine(stem, tr, "у́ть")
append_participles(forms, stem, tr,
-- default is blank for pres passive and adverbial
"у́щий", "-", "-", "у́вший", "у́вши", "у́в")
set_moving_ppp(forms, data)
append_imper(forms, stem, tr, "и́", "и́те")
set_past(forms, stem, tr, "у́л", "у́ла", "у́ло", "у́ли")
if data.conj_type == "3b" then
present_e_b(forms, stem, tr)
else
stem, tr = com.make_ending_stressed(stem, tr)
present_e_c(forms, stem, tr)
end
return forms
end
conjugations["3b"] = function(args, data)
return guts_of_3b_3c(args, data)
end
conjugations["3c"] = function(args, data)
return guts_of_3b_3c(args, data)
end
conjugations["4a"] = function(args, data)
local forms = {}
-- imperative variants, also щ, used for verbs like похитить (похи́щу) (4a),
-- защитить (защищу́) (4b), поглотить (поглощу́) (4c) with a different
-- iotation (т -> щ, not ч)
parse_variants(data, args[1], {"23", "и", "щ", "past", "+p", "7", "жд"})
local stem, tr = com.split_russian_tr(get_stressed_arg(args, 2))
stem, tr = com.strip_ending(stem, tr, "ить")
no_stray_args(args, 2)
forms["infinitive"] = combine(stem, tr, "ить")
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(stem, "[шщжч]$")
append_participles(forms, stem, tr, hushing and "ащий" or "ящий",
"awkward-имый", hushing and "а" or "я", "ивший", "ивши", "ив")
set_class_4_ppp(forms, data, stem, tr)
present_i(forms, stem, tr, "a", data.shch)
append_imper_by_variant(forms, stem, tr, data.imper_variant, "4a")
-- set prefix to "" as past stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil, stem .. "и",
tr and tr .. "i", args, data)
return forms
end
conjugations["4a1a"] = function(args, data)
local forms = {}
data.title = "4a // 1a"
data.cat_conj_types = {"1a", "4a"}
-- imperative variants, also щ, used for verbs like похитить (похи́щу) (4a),
-- защитить (защищу́) (4b), поглотить (поглощу́) (4c) with a different
-- iotation (т -> щ, not ч)
parse_variants(data, args[1], {"23", "и", "щ", "past", "+p", "7", "жд"})
local stem4, tr4 = com.split_russian_tr(get_stressed_arg(args, 2))
stem4, tr4 = com.strip_ending(stem4, tr4, "ить")
local hushing = rfind(stem4, "[шщжч]$")
local stem1, tr1
if hushing then
stem1 = stem4 .. "а"
tr1 = tr4 and tr4 .. "a"
else
stem1 = stem4 .. "я"
tr1 = tr4 and tr4 .. "ja"
end
no_stray_args(args, 2)
forms["infinitive"] = combine(stem4, tr4, "ить")
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
append_participles(forms, stem4, tr4, hushing and "ащий" or "ящий",
"awkward-имый", hushing and "а" or "я", "ивший", "ивши", "ив")
append_participles(forms, stem1, tr1, "ющий", "емый", "я", {}, {}, {})
set_class_4_ppp(forms, data, stem4, tr4)
present_i(forms, stem4, tr4, "a", data.shch)
present_je(forms, stem1, tr1, "a", data.shch)
append_imper_by_variant(forms, stem4, tr4, data.imper_variant, "4a")
append_imper(forms, stem1, tr1, "й", "йте")
-- set prefix to "" as past stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil, stem4 .. "и",
tr4 and tr4 .. "i", args, data)
return forms
end
conjugations["4b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"щ", "past", "+p", "8", "жд"})
local stem, tr = com.split_russian_tr(get_stressed_arg(args, 2))
stem, tr = com.strip_ending(stem, tr, "и́ть")
no_stray_args(args, 2)
forms["infinitive"] = combine(stem, tr, "и́ть")
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(stem, "[шщжч]$")
append_participles(forms, stem, tr, hushing and "а́щий" or "я́щий",
"awkward-и́мый", hushing and "а́" or "я́", "и́вший", "и́вши", "и́в")
set_class_4_ppp(forms, data, stem, tr)
present_i(forms, stem, tr, "b", data.shch)
append_imper(forms, stem, tr, "и́", "и́те")
-- set prefix to "" as past stem may vary in length and no (1) variants
local stem_noa, tr_noa = com.make_unstressed_once(stem, tr)
set_past_by_stress(forms, data.past_stress, "", nil, stem_noa .. "и́",
tr_noa and tr_noa .. "i" .. AC, args, data)
return forms
end
conjugations["4c"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"щ", "4", "past", "+p", "7", "жд"})
local stem, tr = com.split_russian_tr(get_stressed_arg(args, 2))
stem, tr = com.strip_ending(stem, tr, "и́ть")
stem, tr = com.make_ending_stressed(stem, tr)
no_stray_args(args, 2)
forms["infinitive"] = combine(stem, tr, "и́ть")
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(stem, "[шщжч]$")
local prap_end_stressed = hushing and "а́щий" or "я́щий"
local prap_stem_stressed = hushing and "ащий" or "ящий"
append_participles(forms, stem, tr, data.var4 == "req" and prap_stem_stressed
or data.var4 == "opt" and {prap_end_stressed, prap_stem_stressed}
or prap_end_stressed,
"awkward-и́мый", hushing and "а́" or "я́", "и́вший", "и́вши", "и́в")
set_class_4_ppp(forms, data, stem, tr)
present_i(forms, stem, tr, "c", data.shch)
append_imper(forms, stem, tr, "и́", "и́те")
local stem_noa, tr_noa = com.make_unstressed_once(stem, tr)
set_past_by_stress(forms, data.past_stress, "", nil, stem_noa .. "и́",
tr_noa and tr_noa .. "i" .. AC, args, data)
return forms
end
-- Combined class 5. But there's enough conditional code that it might make
-- more sense to separate them again.
local function guts_of_5(args, data)
local forms = {}
local is5a = data.conj_type == "5a"
local is5b = data.conj_type == "5b"
-- imperative ending (выгнать - выгони) and past stress; imperative is
-- "й" after any vowel (e.g. выстоять), with or without an acute accent,
-- otherwise ь or и
if is5a or is5b then
parse_variants(data, args[1], {"23", "и", "past", "+p", "7", "ё"})
else
parse_variants(data, args[1], {"23", "и", "past", "+p", "7", "ё", "4"})
end
local inf = get_stressed_arg(args, 2)
local past_stem = com.strip_ending(inf, nil, "ть")
local stem = is5b and get_opt_unstressed_arg(args, 3) or get_opt_stressed_arg(args, 3)
local default_stem = rmatch(past_stem, "^(.*)[еѣая]́?$")
if not default_stem then
error("Argument " .. inf .. " doesn't end in еть, ѣть, ать or ять")
end
if not is5a and not is5b then
default_stem = com.make_ending_stressed(default_stem)
end
stem = stem or default_stem
local pres_note = stem ~= default_stem and IRREG
no_stray_args(args, 3)
forms["infinitive"] = past_stem .. "ть"
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(stem, "[шщжч]$")
if is5a then
append_participles_2stem(forms, stem, nil, past_stem, nil,
hushing and "ащий" or "ящий", "имый", hushing and "а" or "я",
"вший", "вши", "в", pres_note)
elseif is5b then
append_participles_2stem(forms, stem, nil, past_stem, nil,
hushing and "а́щий" or "я́щий", "и́мый", hushing and "а́" or "я́",
"вший", "вши", "в", pres_note)
else
-- var4 occurs with at least терпре́ть and дыша́ть
local prap_end_stressed = hushing and "а́щий" or "я́щий"
local prap_stem_stressed = hushing and "ащий" or "ящий"
append_participles_2stem(forms, stem, nil, past_stem, nil,
data.var4 == "req" and prap_stem_stressed
or data.var4 == "opt" and {prap_end_stressed, prap_stem_stressed}
or prap_end_stressed,
"и́мый", hushing and "а́" or "я́", "вший", "вши", "в", pres_note)
end
set_moving_ppp(forms, data)
present_i(forms, stem, nil, is5a and "a" or is5b and "b" or "c", nil, pres_note)
append_imper_by_variant(forms, stem, nil, data.imper_variant, data.conj_type, pres_note)
-- set prefix to "" as past stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil, past_stem, nil,
args, data)
return forms
end
conjugations["5a"] = function(args, data)
return guts_of_5(args, data)
end
conjugations["5b"] = function(args, data)
return guts_of_5(args, data)
end
conjugations["5c"] = function(args, data)
return guts_of_5(args, data)
end
-- Implement 6a, 6°a, 6a1as13, 6a1as14, and 1a6a.
local function guts_of_6a(args, data, vclass)
local forms = {}
-- Type 6a1a, section 13:
-- Forms of both 6a and 1a can occur. They are the same in the infinitive
-- and past. In the present active participle and the present/future, the
-- type 6 forms are preferred and the type 1a forms are colloquial. In the
-- remaining present forms and the imperative, both are equally preferred
-- (we put the type-6 forms first because Zaliznyak lists them first).
-- Type 6a1a section 14, type 1a6a:
-- Forms of both 6a and 1a can occur. They are the same in the infinitive
-- and past. In the present adverbial participle and the imperative, the
-- type 1a forms are preferred and the type 6a forms are dated. In the
-- remaining present forms, one or the other is slightly preferred (type
-- 6a for 6a1a, type 1a for 1a6a).
if vclass == "6a1as13" or vclass == "6a1as14" then
data.title = "6a // 1a"
data.cat_conj_types = {"1a", "6a"}
elseif vclass == "1a6a" then
data.title = "1a // 6a"
data.cat_conj_types = {"1a", "6a"}
end
parse_variants(data, args[1], {"23", "и", "past", "+p", "7", "ё"})
local inf = get_stressed_arg(args, 2)
local inf_past_stem = com.strip_ending(inf, nil, "ть")
local stem = rmatch(inf_past_stem, "^(.*)[ая]́?$")
if not stem then
error("Argument " .. inf .. " doesn't end in ать or ять")
end
if com.is_unstressed(stem) then
-- колыха́ть, колеба́ть, etc.
stem = com.make_ending_stressed(stem)
end
-- вызвать - вы́зову (в́ызов)
local pres_stem = get_opt_stressed_arg(args, 3) or stem
no_stray_args(args, 3)
local pres_note = pres_stem ~= stem and IRREG
-- no iotation, e.g. вырвать - вы́рву
local no_iotation = vclass == "6°a"
-- replace consonants for 1st person singular present/future
local iotated_stem = no_iotation and pres_stem or com.iotation(pres_stem)
forms["infinitive"] = inf_past_stem .. "ть"
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(iotated_stem, "[шщжч]$") or no_iotation
-- Participles
-- pres_pasv_part is normal if infinitive ends in -ять, nonexistent except
-- with certain lexical exceptions (колеба́ть, колыха́ть, глаго́лать,
-- дви́гать with exceptional form дви́жимый) if infinitive ends in -ать
local prpp_status = rfind(inf_past_stem, "я́?$") and "" or "none-"
if vclass == "6a" or vclass == "6°a" or vclass == "6a1as13" then
append_participles_2stem(forms, iotated_stem, nil, inf_past_stem, nil,
hushing and "ущий" or "ющий", prpp_status .. "емый", hushing and "а" or "я",
"вший", "вши", "в", pres_note)
if vclass == "6a1as13" then
-- then all the type 1a forms (both are the same in the past)
append_participles(forms, inf_past_stem, nil, "ющий*", prpp_status .. "емый", "я")
end
elseif vclass == "6a1as14" then
-- first the preferred type 6a present active/passive participles
append_participles(forms, iotated_stem, nil,
hushing and "ущий" or "ющий", prpp_status .. "емый", {}, {}, {}, {}, pres_note)
-- then all the type 1a forms (both are the same in the past)
append_participles(forms, inf_past_stem, nil, "ющий", "емый", "я",
"вший", "вши", "в")
-- then the dated type 6a present adverbial participle
append_participles(forms, iotated_stem, nil,
{}, {}, hushing and "а*" or "я*", {}, {}, {}, pres_note)
else -- type 1a6a
-- first the preferred type 1a forms (both are the same in the past)
append_participles(forms, inf_past_stem, nil, "ющий", "емый", "я",
"вший", "вши", "в")
-- then the type 6a forms (dated in present adverbial participle)
append_participles(forms, iotated_stem, nil,
hushing and "ущий" or "ющий", prpp_status .. "емый", hushing and "а*" or "я*",
{}, {}, {}, pres_note)
end
set_moving_ppp(forms, data)
-- Present/future tense
local function class_6_present()
if no_iotation then
present_e_a(forms, pres_stem, nil, pres_note)
else
present_je(forms, pres_stem, nil, "a", nil, pres_note)
end
end
if vclass == "6a" or vclass == "6°a" then
class_6_present()
elseif vclass == "1a6a" then
-- Do type 1a forms
present_je(forms, inf_past_stem, nil, "a")
class_6_present()
elseif vclass == "6a1as14" then
class_6_present()
-- Do type 1a forms
present_je(forms, inf_past_stem, nil, "a")
else
-- 6a1as13
class_6_present()
-- Do type 1a forms
present_je(forms, inf_past_stem, nil, "a", nil, "*")
end
-- Imperative forms; if 1a6a or 6a1as14, type 6a forms are dated;
-- if 6a1as13, type 6a forms go first.
local function class_1_impr()
append_imper(forms, inf_past_stem, nil, "й", "йте")
end
local function class_6_impr()
local dated_note = ((vclass == "6a1as14" or vclass == "1a6a") and "*" or "") ..
(pres_note or "")
append_imper_by_variant(forms, iotated_stem, nil, data.imper_variant,
"6a", dated_note)
end
if vclass == "6a1as14" or vclass == "1a6a" then
class_1_impr()
class_6_impr()
elseif vclass == "6a1as13" then
class_6_impr()
class_1_impr()
else
class_6_impr()
end
-- set prefix to "" as past stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil, inf_past_stem, nil,
args, data)
if vclass == "6a1as14" or vclass == "1a6a" then
m_table.insertIfNot(data.internal_notes, "* Dated.")
elseif vclass == "6a1as13" then
m_table.insertIfNot(data.internal_notes, "* Colloquial; type-6 forms preferred.")
end
return forms
end
conjugations["6a"] = function(args, data)
return guts_of_6a(args, data, "6a")
end
conjugations["6°a"] = function(args, data)
return guts_of_6a(args, data, "6°a")
end
conjugations["6a1as13"] = function(args, data)
return guts_of_6a(args, data, "6a1as13")
end
conjugations["6a1as14"] = function(args, data)
return guts_of_6a(args, data, "6a1as14")
end
conjugations["1a6a"] = function(args, data)
return guts_of_6a(args, data, "1a6a")
end
-- implement 6b, 6°b
local function guts_of_6b(args, data, vclass)
local forms = {}
parse_variants(data, args[1], {"past", "+p", "7", "ё"})
local inf = get_stressed_arg(args, 2)
local stem = rmatch(inf, "^(.*)[ая]́ть$")
if not stem then
error("Argument " .. inf .. " doesn't end in ать or ять")
end
-- звать - зов, драть - дер
local pres_stem = get_opt_unstressed_arg(args, 3) or stem
no_stray_args(args, 3)
-- no iotation, e.g. рвать - рву
local no_iotation = vclass == "6°b"
local vowel_end_stem = is_vowel_stem(stem)
local pres_note = pres_stem ~= stem and IRREG
if no_iotation then
present_e_b(forms, pres_stem, nil, pres_note)
else
present_je(forms, pres_stem, nil, "b", nil, pres_note)
end
local impr_end = vowel_end_stem and "́й" -- accent on the preceding vowel
or "и́"
append_imper(forms, pres_stem, nil, impr_end, impr_end .. "те", pres_note)
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(pres_stem, "[шщжч]$")
-- no pres_pasv_part
local past_stem_with_vowel = stem .. (vowel_end_stem and "я́" or "а́")
append_participles_2stem(
forms, pres_stem, nil, past_stem_with_vowel, nil,
((hushing or no_iotation) and "у́щий" or "ю́щий"), {}, (hushing and "а́" or "я́"),
"вший", "вши", "в", pres_note)
forms["infinitive"] = combine(past_stem_with_vowel, nil, "ть")
set_moving_ppp(forms, data)
-- past_f for ждала́, подождала́ now handled through general mechanism
--for разобрало́сь, past_n2 разобрало́ now handled through general mechanism
--for разобрали́сь, past_pl2 разобрали́ now handled through general mechanism
-- set prefix to "" as past stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil,
stem .. (vowel_end_stem and "я́" or "а́"), nil, args, data)
return forms
end
conjugations["6b"] = function(args, data)
return guts_of_6b(args, data, "6b")
end
conjugations["6°b"] = function(args, data)
return guts_of_6b(args, data, "6°b")
end
-- Implement 6c, 6°c and 6c1a.
local function guts_of_6c(args, data, vclass)
local forms = {}
-- In type 6c1a, forms of both 6c and 1a can occur. They are
-- the same in the infinitive and past. In the present active participle
-- and the present/future, the type 6c forms are preferred and the type 1a
-- forms are colloquial. In the remaining present forms and the imperative,
-- both are equally preferred (we put the 6c forms first because Zaliznyak
-- lists 6c first).
if vclass == "6c1a" then
data.title = "6c // 1a"
data.cat_conj_types = {"1a", "6c"}
end
-- optional щ parameter for verbs like клеветать (клевещу́), past stress
parse_variants(data, args[1], {"щ", "past", "+p", "7", "ё"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "а́ть")
stem = com.make_ending_stressed(stem)
-- разостла́ть - расстелю́, рассте́лешь
local pres_stem = get_opt_stressed_arg(args, 3) or stem
no_stray_args(args, 3)
local pres_note = pres_stem ~= stem and IRREG
-- remove accent for some forms
local stem_noa = com.make_unstressed(stem)
-- applies only to стона́ть, застона́ть, простона́ть
local no_iotation = vclass == "6°c"
-- iotate the stem
local iotated_stem =
no_iotation and pres_stem or com.iotation(pres_stem, nil, data.shch)
local stem1a = stem_noa .. "а́"
forms["infinitive"] = stem_noa .. "а́ть"
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(iotated_stem, "[шщжч]$")
-- Participles
append_participles_2stem(forms, iotated_stem, nil, stem_noa, nil,
(hushing or no_iotation) and "ущий" or "ющий", {},
hushing and "а́" or "я́", "а́вший", "а́вши", "а́в", pres_note)
if vclass == "6c1a" then
-- then all the type 1a forms (both are the same in the past)
append_participles(forms, stem1a, nil, "ющий*", "емый", "я")
end
set_moving_ppp(forms, data)
if no_iotation then
present_e_c(forms, pres_stem, nil, pres_note)
else
present_je(forms, pres_stem, nil, "c", data.shch, pres_note)
end
append_imper(forms, iotated_stem, nil, "и́", "и́те", pres_note)
if vclass == "6c1a" then
present_je(forms, stem1a, nil, "a", nil, "*")
append_imper(forms, stem1a, nil, "й", "йте")
end
-- set prefix to "" as past stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil, stem_noa .. "а́", nil,
args, data)
if vclass == "6c1a" then
m_table.insertIfNot(data.internal_notes, "* Colloquial; type-6 forms preferred.")
end
return forms
end
conjugations["6c"] = function(args, data)
return guts_of_6c(args, data, "6c")
end
conjugations["6°c"] = function(args, data)
return guts_of_6c(args, data, "6°c")
end
conjugations["6c1a"] = function(args, data)
return guts_of_6c(args, data, "6c1a")
end
local function convert_last_e_to_yo(form)
return rsub(form,
"([еѣ])[́̀̈]*([^" .. com.vowel .. "]*)$",
function(e, nonvowels)
return (e == "е" and "ё" or "ѣ̈") .. nonvowels
end)
end
local function guts_of_7(args, data, forms)
local is7b = data.conj_type == "7b"
local full_inf = get_stressed_arg(args, 2)
local pres_stems = is7b and get_unstressed_arg(args, 3) or get_stressed_arg(args, 3)
pres_stems = rsplit(pres_stems, ",")
local past_stem
if past_stem ~= "ёе" then
past_stem = get_opt_stressed_arg(args, 4)
end
local past_stem_vowel_alt = past_stem == "ёе"
if past_stem_vowel_alt then
past_stem = nil
end
no_stray_args(args, 4)
forms["infinitive"] = full_inf
-- Construct the default past and present stem by a combination of
-- infinitive and present final consonant.
-- (1) Deduce the final consonant.
local final_cons
for _, pres_stem in ipairs(pres_stems) do
-- Final cons is -ст if pres stem ends in vowel + ст, else
-- single final cons [дтсзбп] (no actual examples of final п).
-- Note that final -з can occur after a consonant (e.g. ползти́).
local this_final_cons = rmatch(pres_stem,
"[" .. com.vowel .. "]" .. AC .. "?(ст)$")
if not this_final_cons then
this_final_cons = rmatch(pres_stem, "([дтсзбп])$")
end
if not this_final_cons then
error("Unable to determine final consonant from present stem " .. pres_stem)
end
if final_cons and this_final_cons ~= final_cons then
error("Present stems with conflicting final consonants specified: " ..
table.concat(pres_stems, ","))
end
final_cons = this_final_cons
end
-- (2) Find the infinitive minus the termination.
local prefix = rmatch(full_inf, "^(.*)[сз]т[иь]" .. AC .."?$")
if not prefix then
error("Strange infinitive " .. full_inf .. "in class 7")
end
-- (3) Combine infinitive with final consonant.
local default_pres_stem = prefix .. final_cons
if is7b then
default_pres_stem = com.make_unstressed(default_pres_stem)
end
local default_past_stem = default_pres_stem
if com.is_unstressed(default_past_stem) then
default_past_stem = com.make_ending_stressed(default_past_stem)
end
-- (4) Past stems ending in -д and -т when the infinitive ends in -сть (but not -сти or -сти́)
-- lose this consonant (page 85 of Zaliznyak, see also footnote 2 on that page).
if rfind(full_inf, "сть$") then
default_past_stem = rsub(default_past_stem, "[дт]$", "")
end
-- (5) If 7b and the past stem wasn't originally specified as ёе, the past stem gets
-- ё in place of е.
if is7b and not past_stem_vowel_alt then
default_past_stem = convert_last_e_to_yo(default_past_stem)
end
for _, pres_stem in ipairs(pres_stems) do
local pres_note = pres_stem ~= default_pres_stem and IRREG
if is7b then
present_e_b(forms, pres_stem, nil, pres_note)
append_imper(forms, pres_stem, nil, "и́", "и́те", pres_note)
else
present_e_a(forms, pres_stem, nil, pres_note)
append_imper_by_variant(forms, pres_stem, nil, data.imper_variant,
"7a", pres_note)
end
end
-- Construct the past stem if not specified. Note that we then derive a separate
-- past-tense stem from this stem, and this stem as such ends up applying only
-- to the past active and adverbial participles.
if not past_stem then
past_stem = default_past_stem
end
local past_note = past_stem ~= default_past_stem and IRREG
-- Derive the past tense stem from the past stem derived above. This has ё instead of е
-- in 7b verbs; it also loses д and т in all cases, when the past stem derived above only loses
-- these consonants in some cases.
local past_tense_stem = past_stem
if is7b then
past_tense_stem = convert_last_e_to_yo(past_tense_stem)
end
past_tense_stem = rsub(past_tense_stem, "[дт]$", "")
local vowel_pp = is_vowel_stem(past_stem)
local pap = vowel_pp and "вши" or "ши"
local var9_note_symbol = next_note_symbol(data)
for _, pres_stem in ipairs(pres_stems) do
local pres_note = pres_stem ~= default_pres_stem and IRREG
append_participles_2stem(forms, pres_stem, nil, past_stem, nil,
is7b and "у́щий" or "ущий", "-", is7b and "я́" or "я",
vowel_pp and "вший" or "ший",
data.var9 and {is7b and "я́" or "я", pap .. var9_note_symbol} or pap,
vowel_pp and not data.var9 and "в" or "-", pres_note, past_note)
end
if data.var9 then
m_table.insertIfNot(data.internal_notes, var9_note_symbol .. " Dated.")
end
-- set prefix to "" as past stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil, past_tense_stem, nil,
args, data,
-- 0 ending if the past stem ends in a consonant
not is_vowel_stem(past_tense_stem) and "no-pastml", past_note)
-- set PPP; must be done after both present 3sg and past fem have been set
set_class_7_8_ppp(forms, args, data)
end
conjugations["7a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"23", "и", "9","past", "+p"})
-- лезть - ле́зши - non-existent past_actv_part handled through general mechanism
guts_of_7(args, data, forms)
return forms
end
conjugations["7b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"9", "past", "+p"})
guts_of_7(args, data, forms)
return forms
end
local function class_8a_stem_to_infinitive(stem)
-- map e.g. вы́сек back to высе́чь
return rsub(stem, "[гк]$", "чь")
end
local function class_8b_stem_to_infinitive(stem)
-- map e.g. отвлёк back to отвле́чь
-- map e.g. зажёг back to заже́чь
return com.make_ending_stressed(rsub(rsub(rsub(stem, "ё", "е"), "ѣ̈", "ѣ"), "[гк]$", "чь"))
end
conjugations["8a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local full_inf = get_stressed_arg(args, 2)
local stem = get_stressed_arg(args, 3)
local stressed_past_stem = get_opt_stressed_arg(args, 4) or stem
no_stray_args(args, 4)
forms["infinitive"] = full_inf
local pres_note = class_8a_stem_to_infinitive(stem) ~= full_inf and IRREG
local stressed_past_note =
class_8a_stem_to_infinitive(stressed_past_stem) ~= full_inf and IRREG
-- default for pres_pasv_part is blank
append_participles_2stem(forms, stem, nil, stressed_past_stem, nil,
"ущий", "-", "-", "ший", "ши", "-", pres_note, stressed_past_note)
local iotated_stem = com.iotation(stem)
append_pres_futr(forms, iotated_stem, nil, {}, "ешь", "ет", "ем", "ете", {}, pres_note)
append_pres_futr(forms, stem, nil, "у", {}, {}, {}, {}, "ут", pres_note)
append_imper(forms, stem, nil, "и", "ите", pres_note)
-- set prefix to "" as stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil, stem, nil, args, data,
"no-pastml", pres_note)
forms["past_m"] = stressed_past_stem .. (stressed_past_note or "")
-- set PPP; must be done after both present 3sg and past fem have been set
set_class_7_8_ppp(forms, args, data)
return forms
end
conjugations["8b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local full_inf = get_stressed_arg(args, 2)
local stem = get_unstressed_arg(args, 3)
local stressed_past_stems = rsplit(args[4] or "ё", ",")
for _, stressed_past_stem in ipairs(stressed_past_stems) do
if stressed_past_stem ~= "е" then
check_stressed_arg(stressed_past_stem, 4)
end
end
no_stray_args(args, 4)
forms["infinitive"] = full_inf
local pres_note = class_8b_stem_to_infinitive(stem) ~= full_inf and IRREG
local iotated_stem = com.iotation(stem)
append_pres_futr(forms, iotated_stem, nil, {}, "ёшь", "ёт", "ём", "ёте", {}, pres_note)
append_pres_futr(forms, stem, nil, "у́", {}, {}, {}, {}, "у́т", pres_note)
append_imper(forms, stem, nil, "и́", "и́те", pres_note)
-- set prefix to "" as stem may vary in length and no (1) variants
set_past_by_stress(forms, data.past_stress, "", nil,
com.make_ending_stressed(stem), nil, args, data, "no-pastml", pres_note)
forms["past_m"] = nil
for _, stressed_past_stem in ipairs(stressed_past_stems) do
local pastm_stem, past_part_stem
if stressed_past_stem == "е" then
past_part_stem = com.make_ending_stressed(stem)
pastm_stem = past_part_stem
elseif stressed_past_stem == "ё" then
past_part_stem = convert_last_e_to_yo(com.make_ending_stressed(stem))
pastm_stem = past_part_stem
elseif stressed_past_stem == "ёе" then
past_part_stem = com.make_ending_stressed(stem)
pastm_stem = convert_last_e_to_yo(past_part_stem)
else
pastm_stem = stressed_past_stem
past_part_stem = stressed_past_stem
end
local past_note =
class_8b_stem_to_infinitive(pastm_stem) ~= full_inf and IRREG
-- default for pres_pasv_part is blank; влечь -> влеко́мый handled through
-- general override mechanism
append_participles_2stem(forms, stem, nil, past_part_stem, nil,
"у́щий", "-", "-", "ший", "ши", "-", pres_note, past_note)
append_form(forms, "past_m", pastm_stem, nil, "", past_note)
end
-- set PPP; must be done after both present 3sg and past fem have been set
set_class_7_8_ppp(forms, args, data)
return forms
end
conjugations["9a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "еть")
local pres_stem = get_opt_stressed_arg(args, 3)
no_stray_args(args, 3)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
local default_pres_stem = prefix .. rsub(base, "е", "")
pres_stem = pres_stem or default_pres_stem
local pres_note = pres_stem ~= default_pres_stem and IRREG
forms["infinitive"] = stem .. "еть"
-- perfective only
append_participles(forms, stem, nil, "-", "-", "-", "ший", "ши", "ев")
present_e_a(forms, pres_stem, nil, pres_note)
append_imper(forms, pres_stem, nil, "и", "ите", pres_note)
-- past_m doesn't end in л
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data, "no-pastml")
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["9b"] = function(args, data)
local forms = {}
--for this type, it's important to distinguish impf and pf
local impf = rfind(data.verb_type, "^impf")
parse_variants(data, args[1], {"past", "+p", "*"})
local stem_noa = com.strip_ending(get_stressed_arg(args, 2), nil, "е́ть")
local stem = rsub(stem_noa, "(.*)е", "%1ё")
local pres_stem = get_opt_unstressed_arg(args, 3)
-- stem used for past active and adverbial participles; defaults to past_m
local past_part_stem = get_opt_stressed_arg(args, 4)
no_stray_args(args, 4)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem, nil, "single_cons_base")
local default_pres_stem =
data.star and construct_long_prefix_variant(prefix) .. rsub(base, "[её]", "") or
prefix .. rsub(base, "[её]", "")
pres_stem = pres_stem or default_pres_stem
local pres_note = pres_stem ~= default_pres_stem and IRREG
forms["infinitive"] = stem_noa .. "е́ть"
present_e_b(forms, pres_stem, nil, pres_note)
append_imper(forms, pres_stem, nil, "и́", "и́те", pres_note)
-- past_m doesn't end in л
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data, "no-pastml")
set_ppp_from_past_m(forms, args, data)
append_participles_2stem(forms, pres_stem, nil, stem, nil, "у́щий", {}, {},
-- impf: тереть -> тёрши
-- pf: растереть -> растёрши, растере́в
-- we handle (рас)тёрши down below because the stress depends on the
-- past_m: запереть -> за́пер, за́перши(й)
{}, {}, impf and {} or "е́в", pres_note)
if past_part_stem then
for _, ppstem in ipairs(rsplit(past_part_stem, ",")) do
append_participles(forms, ppstem, nil, {}, {}, {}, "ший", "ши", {})
end
else
iterate_over_prop(forms, args, "past_m", function(ru, tr, note)
append_participles(forms, ru, tr, {}, {}, {}, "ший", "ши", {}, note)
end)
end
return forms
end
conjugations["10a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"+p", "7"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "оть")
no_stray_args(args, 2)
forms["infinitive"] = stem .. "оть"
-- These verbs are perfective-only, no present participles
append_participles(forms, stem, nil, "-", "-", "-", "овший", "овши", "ов")
set_moving_ppp(forms, data)
present_je(forms, stem, nil, "a")
append_imper(forms, stem, nil, "и", "ите")
set_past(forms, stem .. "ол", nil, "", "а", "о", "и")
return forms
end
conjugations["10c"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"+p", "7"})
local inf_stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
-- present tense stressed stem "моло́ть" - ме́лет
local pres_stem = get_opt_stressed_arg(args, 3)
no_stray_args(args, 3)
local default_pres_stem =
com.make_ending_stressed(com.strip_ending(inf_stem, nil, "о́"))
pres_stem = pres_stem or default_pres_stem
-- remove accent for some forms
local pres_stem_noa = com.remove_accents(pres_stem)
local pres_note = pres_stem ~= default_pres_stem and IRREG
forms["infinitive"] = inf_stem .. "ть"
-- default for pres_pasv_part is blank
append_participles_2stem(forms, pres_stem, nil, inf_stem, nil,
"ющий", "-", "я́", "вший", "вши", "в", pres_note)
set_moving_ppp(forms, data)
present_je(forms, pres_stem, nil, "c", nil, pres_note)
append_imper(forms, pres_stem_noa, nil, "и́", "и́те", pres_note)
set_past(forms, inf_stem .. "л", nil, "", "а", "о", "и")
return forms
end
conjugations["11a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ить")
no_stray_args(args, 2)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem .. "и")
forms["infinitive"] = stem .. "ить"
-- perfective only
append_participles(forms, stem, nil, "-", "-", "-", "ивший", "ивши", "ив")
present_je(forms, stem .. "ь", nil, "a")
append_imper(forms, stem .. "ей", nil, "", "те")
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["11b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p", "*"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "и́ть")
local pres_stem = get_opt_unstressed_arg(args, 3)
no_stray_args(args, 3)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem .. "и́", nil, "single_cons_base")
local default_pres_stem =
data.star and construct_long_prefix_variant(prefix) .. rsub(base, "и́$", "") or
stem
pres_stem = pres_stem or default_pres_stem
local pres_note = pres_stem ~= default_pres_stem and IRREG
forms["infinitive"] = stem .. "и́ть"
append_participles_2stem(forms, pres_stem, nil, stem, nil,
"ью́щий", "-", "ья́", "и́вший", "и́вши", "и́в", pres_note)
present_je(forms, pres_stem .. "ь", nil, "b", nil, pres_note)
append_imper(forms, stem .. "е́й", nil, "", "те")
-- e.g. пила́, лила́
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["12a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
local pres_stem = get_opt_stressed_arg(args, 3)
no_stray_args(args, 3)
local default_pres_stem = stem
pres_stem = pres_stem or default_pres_stem
local pres_note = pres_stem ~= default_pres_stem and IRREG
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
forms["infinitive"] = stem .. "ть"
append_participles_2stem(forms, pres_stem, nil, stem, nil,
"ющий", "емый", "я", "вший", "вши", "в", pres_note)
present_je(forms, pres_stem, nil, "a", nil, pres_note)
append_imper(forms, pres_stem .. "й", nil, "", "те", pres_note)
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["12b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
local pres_stem = get_opt_unstressed_arg(args, 3)
no_stray_args(args, 3)
local default_pres_stem = com.make_unstressed_once(stem)
pres_stem = pres_stem or default_pres_stem
local pres_note = pres_stem ~= default_pres_stem and IRREG
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
forms["infinitive"] = stem .. "ть"
-- no pres_pasv_part
append_participles_2stem(forms, pres_stem, nil, stem, nil,
"ю́щий", "-", "я́", "вший", "вши", "в", pres_note)
present_je(forms, pres_stem, nil, "b", nil, pres_note)
-- the preceding vowel is stressed
append_imper(forms, pres_stem .. "́й", nil, "", "те", pres_note)
-- e.g. гнила́ but пе́ла
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["13b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
local pres_stem = com.strip_ending(stem, nil, "ва́")
no_stray_args(args, 2)
forms["infinitive"] = stem .. "ть"
-- tricky to use append_participles_2stem() because only pres_actv_part
-- uses pres_stem, not all present participles
forms["pres_actv_part"] = pres_stem .. "ю́щий"
forms["pres_pasv_part"] = stem .. "емый"
forms["pres_adv_part"] = stem .. "я"
forms["past_actv_part"] = stem .. "вший"
forms["past_adv_part"] = stem .. "вши"
forms["past_adv_part_short"] = stem .. "в"
set_moving_ppp(forms, data)
present_je(forms, pres_stem, nil, "b")
forms["impr_sg"] = stem .. "й"
forms["impr_pl"] = stem .. "йте"
set_past(forms, stem .. "л", nil, "", "а", "о", "и")
return forms
end
conjugations["14a"] = function(args, data)
-- only one verb: вы́жать
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
local pres_stem = get_stressed_arg(args, 3)
no_stray_args(args, 3)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
forms["infinitive"] = stem .. "ть"
-- perfective only
append_participles(forms, stem, nil, "-", "-", "-", "вший", "вши", "в")
present_e_a(forms, pres_stem)
forms["impr_sg"] = pres_stem .. "и"
forms["impr_pl"] = pres_stem .. "ите"
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["14b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
local pres_stem = get_unstressed_arg(args, 3)
no_stray_args(args, 3)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
forms["infinitive"] = stem .. "ть"
-- no pres_pasv_part
append_participles_2stem(forms, pres_stem, nil, stem, nil,
"у́щий", "-", "я́", "вший", "вши", "в")
present_e_b(forms, pres_stem)
forms["impr_sg"] = pres_stem .. "и́"
forms["impr_pl"] = pres_stem .. "и́те"
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["14c"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
local pres_stem = get_stressed_arg(args, 3)
local pres_stem_noa = com.make_unstressed(pres_stem)
no_stray_args(args, 3)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
forms["infinitive"] = stem .. "ть"
-- no pres_pasv_part
append_participles_2stem(forms, pres_stem, nil, stem, nil,
"у́щий", "-", "я́", "вший", "вши", "в")
present_e_c(forms, pres_stem)
forms["impr_sg"] = pres_stem_noa .. "и́"
forms["impr_pl"] = pres_stem_noa .. "и́те"
--two forms for past_m: при́нялся, приня́лся
--изъя́ла but приняла́
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["15a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
no_stray_args(args, 2)
forms["infinitive"] = stem .. "ть"
-- no pres_pasv_part
-- no pres_adv_part
append_participles(forms, stem, nil, "нущий", "-", "-", "вший", "вши", "в")
present_e_a(forms, stem .. "н")
forms["impr_sg"] = stem .. "нь"
forms["impr_pl"] = stem .. "ньте"
set_past(forms, stem .. "л", nil, "", "а", "о", "и")
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["16a"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
no_stray_args(args, 2)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
forms["infinitive"] = stem .. "ть"
-- no pres_pasv_part
-- no pres_adv_part
append_participles(forms, stem, nil, "ву́щий", "-", "-", "вший", "вши", "в")
present_e_a(forms, stem .. "в")
forms["impr_sg"] = stem .. "ви"
forms["impr_pl"] = stem .. "вите"
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["16b"] = function(args, data)
local forms = {}
parse_variants(data, args[1], {"past", "+p"})
local stem = com.strip_ending(get_stressed_arg(args, 2), nil, "ть")
local stem_noa = com.make_unstressed(stem)
no_stray_args(args, 2)
local prefix, _, base, _ = split_monosyllabic_main_verb(stem)
forms["infinitive"] = stem .. "ть"
-- no pres_pasv_part
append_participles(forms, stem, nil, "ву́щий", "-", "вя́", "вший", "вши", "в")
present_e_b(forms, stem_noa .. "в")
forms["impr_sg"] = stem_noa .. "ви́"
forms["impr_pl"] = stem_noa .. "ви́те"
-- e.g. прижило́сь, прижи́лось
set_past_by_stress(forms, data.past_stress, prefix, nil, base, nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["irreg"] = function(args, data)
local main = select(3, split_known_main_verb(get_stressed_arg(args, 2),
-- честь must go before есть
{"бежа́ть", "бѣжа́ть", "хоте́ть", "хотѣ́ть", "да́ть", "че́сть",
"е́сть", "ѣ́сть", "сы́пать", "лга́ть", "мо́чь", "идти́", "йти́",
"е́хать", "ѣ́хать", "мину́ть", "живописа́ть", "ле́чь",
"зи́ждить", "зы́бить", "кля́сть", "стели́ть", "бы́ть", "сса́ть", "сца́ть",
"чти́ть", "шиби́ть", "реве́ть", "има́ть", "вня́ть", "обя́зывать"}))
main = com.make_unstressed_once(main)
if not conjugations["irreg-" .. main] then
error("Strange, can't find conjugation for main verb " .. main)
end
return conjugations["irreg-" .. main](args, data)
end
conjugations["irreg-бежать"] = function(args, data)
-- irregular, only for verbs derived from бежать with the same stress pattern
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2),
{"бежа́ть", "бѣжа́ть"})
data.title = com.is_stressed(prefix) and "5a" or "5b"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "бежа́ть"
append_participles_2stem(forms, "бег", nil, "бежа́", nil,
"у́щий", "-", "-", "вший", "вши", "в", IRREG)
append_imper(forms, "беги́", nil, "", "те", IRREG)
append_pres_futr(forms, "бе", nil,
"гу́" .. IRREG, "жи́шь", "жи́т", "жи́м", "жи́те", "гу́т" .. IRREG)
set_past(forms, "бежа́л", nil, "", "а", "о", "и")
if data.old then
rsub_forms(forms, "^бе", "бѣ")
end
prepend_prefix(forms, prefix)
-- no PPP's for any derivatives of бежать
return forms
end
conjugations["irreg-бѣжать"] = conjugations["irreg-бежать"]
conjugations["irreg-хотеть"] = function(args, data)
-- irregular, only for verbs derived from хотеть with the same stress pattern
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2),
{"хоте́ть", "хотѣ́ть"})
data.title = "5c'"
data.cat_conj_types = {"5c"} -- no class for 5c', no point in creating for just this verb
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "хоте́ть"
append_participles_2stem(forms, "хот", nil, "хоте́", nil,
"я́щий", "-", "я́", "вший", "вши", "в")
append_imper(forms, "хоти́", nil, "", "те")
append_pres_futr(forms, "", nil,
"хочу́", "хо́чешь" .. IRREG, "хо́чет" .. IRREG, "хоти́м", "хоти́те", "хотя́т")
set_past(forms, "хоте́л", nil, "", "а", "о", "и")
if data.old then
rsub_forms(forms, "^хоте", "хотѣ")
end
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-хотѣть"] = conjugations["irreg-хотеть"]
conjugations["irreg-дать"] = function(args, data)
-- irregular, only for verbs derived from дать with the same stress pattern and вы́дать
local forms = {}
--for this type, it's important to distinguish if it's reflexive to set some stress patterns
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "да́ть")
data.title = com.is_stressed(prefix) and "irreg-a" or "irreg-b"
parse_variants(data, args[1], {"past", "+p"})
no_stray_args(args, 2)
forms["infinitive"] = "да́ть"
-- no pres_pasv_part
-- no pres_adv_part
append_participles(forms, "", nil, "даю́щий", "-", "-",
"да́вший", "да́вши", "да́в")
append_imper(forms, "да́й", nil, "", "те")
append_pres_futr(forms, "", nil,
"да́м", "да́шь", "да́ст", "дади́м", "дади́те", "даду́т")
prepend_prefix(forms, prefix)
set_past_by_stress(forms, data.past_stress, prefix, nil, "да́", nil,
args, data)
if data.ppp then
if prefix == "пере" then
set_ppp(forms, "", nil, "пе́реданный")
elseif prefix == "раз" then
set_ppp(forms, "", nil, "ро́зданный")
else
set_moving_ppp(forms, data)
end
end
return forms
end
conjugations["irreg-есть"] = function(args, data)
-- irregular, only for verbs derived from есть
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2),
{"е́сть", "ѣ́сть"})
data.title = com.is_stressed(prefix) and "irreg-a" or "irreg-b"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "е́сть"
append_participles_2stem(forms, "ед", nil, "е́", nil,
"я́щий", "о́мый", "я́", "вший", "вши", "в")
if data.ppp then
set_ppp(forms, "е́д", nil, "енный")
end
append_imper(forms, "е́шь", nil, "", "те")
append_pres_futr(forms, "е́", nil,
"м", "шь", "ст", "ди́м", "ди́те", "дя́т")
set_past(forms, "е́л", nil, "", "а", "о", "и")
if data.old then
rsub_forms(forms, "^е", "ѣ")
end
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-ѣсть"] = conjugations["irreg-есть"]
conjugations["irreg-сыпать"] = function(args, data)
-- irregular, only for verbs derived from сыпать
local forms = {}
--for this type, it's important to distinguish if it's reflexive for вы́сыпаться vs. вы́сыпать imperative
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "сы́пать")
data.title = "6a"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "сы́пать"
append_participles(forms, "сы́п", nil,
"лющий", "лемый", {"ля", "я" .. IRREG}, "авший", "авши", "ав")
append_imper(forms, "сы́п", nil,
-- вы́сыпать (but not вы́сыпаться) has two imperative singulars
com.is_stressed(prefix) and not data.refl and {"и", "ь"} or "ь", "ьте", IRREG)
present_je(forms, "сы́пл", nil, "a")
append_pres_futr(forms, "сы́п", nil,
{}, "ешь", "ет", "ем", "ете", {}, IRREG)
set_past(forms, "сы́пал", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
set_moving_ppp(forms, data)
return forms
end
conjugations["irreg-лгать"] = function(args, data)
-- irregular, only for verbs derived from лгать with the same stress pattern
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "лга́ть")
data.title = "6°b/c"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "лга́ть"
-- no pres_pasv_part
-- no pres_adv_part
append_participles(forms, "лг", nil,
"у́щий", "-", "-", "а́вший", "а́вши", "а́в")
append_imper(forms, "лги́", nil, "", "те")
append_pres_futr(forms, "", nil,
"лгу́", "лжёшь" .. IRREG, "лжёт" .. IRREG, "лжём" .. IRREG, "лжёте" .. IRREG, "лгу́т")
set_past(forms, "лга́л", nil, "", "а́", "о", "и")
prepend_prefix(forms, prefix)
set_moving_ppp(forms, data)
return forms
end
conjugations["irreg-мочь"] = function(args, data)
-- irregular, only for verbs derived from мочь with the same stress pattern
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "мо́чь")
data.title = "8c/b"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "мо́чь"
-- no passive or adverbial participles
append_participles(forms, "мо́г", nil,
"у́щий", "-", "-", "ший", "-", "-")
append_imper(forms, "моги́", nil, "", "те")
append_pres_futr(forms, "", nil,
"могу́", "мо́жешь", "мо́жет", "мо́жем", "мо́жете", "мо́гут")
set_past(forms, "мо́г", nil, "", "ла́", "ло́", "ли́")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-идти"] = function(args, data)
-- irregular, only for verbs derived from идти, including прийти́ and в́ыйти
local forms = {}
local prefix = args[2] == "идти́" and "" or
split_known_main_verb(get_stressed_arg(args, 2), "йти́")
data.title = com.is_stressed(prefix) and "irreg-a" or "irreg-b/b"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
-- no pres_pasv_part
if prefix == "" then
-- only идти, present imperfective
forms["infinitive"] = "идти́"
append_imper(forms, "иди́", nil, "", "те")
present_e_b(forms, "ид")
-- no past_adv_part_short
append_participles(forms, "", nil,
"иду́щий", "-", "идя́", "ше́дший", "ше́дши", "-")
elseif rfind(prefix, "и$") then -- при
forms["infinitive"] = "йти́"
append_imper(forms, "ди́", nil, "", "те")
present_e_b(forms, "д")
append_participles(forms, "", nil,
"-", "-", "-", "ше́дший", "ше́дши", "дя́")
else
forms["infinitive"] = "йти́"
append_imper(forms, "йди́", nil, "", "те")
present_e_b(forms, "йд")
append_participles(forms, "", nil,
"-", "-", "-", "ше́дший", "ше́дши", "йдя́")
end
set_past(forms, "", nil, "шёл", "шла́", "шло́", "шли́")
prepend_prefix(forms, prefix)
if data.ppp then
if prefix == "на" or prefix == "про" then
-- найти́ and пройти́ exceptionally have the stress on the prefix
set_ppp(forms, prefix, nil, "́йденный")
else
-- вы́йти and прийти́ are intransitive so we don't have to worry about them
set_ppp(forms, prefix, nil, "йдённый")
end
end
return forms
end
conjugations["irreg-йти"] = conjugations["irreg-идти"]
conjugations["irreg-ехать"] = function(args, data)
-- irregular, only for verbs derived from ехать
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2),
{"е́хать", "ѣ́хать"})
data.title = "irreg-a"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "е́хать"
-- no pres_pasv_part
-- no pres_adv_part
append_participles_2stem(forms, "е́д", nil, "е́х", nil,
"ущий", "-", "-", "авший", "авши", "ав")
present_e_a(forms, "е́д")
set_past(forms, "е́хал", nil, "", "а", "о", "и")
if data.old then
rsub_forms(forms, "^е", "ѣ")
end
prepend_prefix(forms, prefix)
--special-case the imperative
--literary (special) imperative forms for ехать are поезжа́й, поезжа́йте
local impstem = data.old and "ѣзжа́й" or "езжа́й"
if prefix == "" then
append_imper(forms, "по" .. impstem, nil, "", "те")
append_imper(forms, impstem, nil, "", "те")
elseif com.is_stressed(prefix) then
append_imper(forms, com.make_unstressed_once(prefix) .. impstem, nil, "", "те")
else
append_imper(forms, prefix .. impstem, nil, "", "те")
end
return forms
end
conjugations["irreg-ѣхать"] = conjugations["irreg-ехать"]
conjugations["irreg-минуть"] = function(args, data)
-- for the irregular verb "мину́ть"
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "мину́ть")
data.title = "3c"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "мину́ть"
-- no pres_pasv_part
-- no pres_adv_part
append_participles(forms, "ми́н", nil,
"у́щий", "-", "-", "у́вший", "у́вши", "у́в")
present_e_c(forms, "ми́н")
forms["pres_futr_1sg"] = "-" -- no futr 1sg
-- no imperative
-- two possible variants, one with root-only stress, the other with
-- either root or suffix stress.
if not args["root_past_stress"] then
append_past(forms, "мину́л", nil, "", "а", "о", "и")
end
append_past(forms, "ми́нул", nil, "", "а", "о", "и", IRREG)
prepend_prefix(forms, prefix)
set_moving_ppp(forms, data)
return forms
end
conjugations["irreg-живописать"] = function(args, data)
-- for irregular verb "живописа́ть", mixture of types 1 and 2
local forms = {}
local inf = get_stressed_arg(args, 2)
data.title = "1a"
parse_variants(data, args[1], {"+p"})
local inf_stem = com.strip_ending(inf, nil, "ть")
local pres_stem = rfind(inf_stem, "а́$") and rsub(inf_stem, "а́$", "у́")
or error("Unexpected infinitive " .. inf)
no_stray_args(args, 2)
forms["infinitive"] = inf_stem .. "ть"
-- no pres_pasv_part
append_participles_2stem(forms, pres_stem, nil, inf_stem, nil,
"ющий", "-", "я", "вший", "вши", "в", IRREG)
set_moving_ppp(forms, data)
present_je(forms, pres_stem, nil, "a", nil, IRREG)
append_imper(forms, pres_stem .. "й", nil, "", "те", IRREG)
set_past(forms, inf_stem .. "л", nil, "", "а", "о", "и")
return forms
end
conjugations["irreg-лечь"] = function(args, data)
-- irregular, only for verbs derived from лечь with the same stress pattern
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "ле́чь")
data.title = "8a/b"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "ле́чь"
-- no pres parts because always perfective
-- no past_adv_part_short
append_participles(forms, "лёг", nil,
"-", "-", "-", "ший", "ши", "-")
append_imper(forms, "ля́г", nil, "", "те", IRREG)
append_pres_futr(forms, "ля́", nil,
"гу", "жешь", "жет", "жем", "жете", "гут", IRREG)
set_past(forms, "", nil, "лёг", "легла́", "легло́", "легли́")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-честь"] = function(args, data)
-- irregular, only for verbs derived from идти, including прийти́ and в́ыйти
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "че́сть")
local pre_two_cons_prefix =
prefix == "об" and "обо" or
prefix == "с" and "со" or
prefix == "рас" and "разо" or
prefix
data.title = prefix == "" and "7b/b" or com.is_stressed(prefix) and "7a⑨" or
pre_two_cons_prefix ~= prefix and "7*b/b⑨" or "7b/b⑨"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
-- no pres_pasv_part
forms["infinitive"] = "че́сть"
append_imper(forms, "чти́", nil, "", "те", IRREG)
present_e_b(forms, "чт", nil, IRREG)
if prefix == "" then
append_participles(forms, "", nil,
"чту́щий", "-", "чтя́", "чти́вший", "чти́вши", "чти́в", IRREG)
elseif com.is_stressed(prefix) then
append_participles(forms, "", nil,
"-", "-", "-", "-", "чтя́", "-", IRREG)
else
append_participles(forms, "", nil,
"-", "-", "-", "-", {"чтя́" .. IRREG, "чётши*"}, "-")
m_table.insertIfNot(data.internal_notes, "* Dated.")
end
if data.ppp then
set_ppp(forms, "", nil, "чтённый" .. IRREG)
end
set_past(forms, "", nil, "чёл", "чла́" .. IRREG, "чло́" .. IRREG, "чли́" .. IRREG)
prepend_prefix(forms, prefix, pre_two_cons_prefix)
return forms
end
conjugations["irreg-зиждить"] = function(args, data)
-- irregular, only for verbs derived from зиждить(ся) with the same stress pattern
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "зи́ждить")
data.title = "irreg-a"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "зи́ждить"
append_participles(forms, "зи́жд", nil,
"ущий", "емый", "я", "ивший", "ивши", "ив")
if data.ppp then
set_ppp(forms, "зи́жд", nil, "енный")
end
append_imper(forms, "зи́жди", nil, "", "те")
present_e_a(forms, "зи́жд")
set_past(forms, "зи́ждил", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-зыбить"] = function(args, data)
-- irregular, only for verbs derived from зыбить
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "зы́бить")
data.title = "irreg-a"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "зы́бить"
append_participles(forms, "зы́б", nil,
"лющий", "лемый", "ля", "ивший", "ивши", "ив")
append_imper(forms, "зы́бли", nil, "", "те")
present_je(forms, "зы́б", nil, "a")
set_past(forms, "зы́бил", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-клясть"] = function(args, data)
-- irregular, only for verbs derived from клясть with the same stress pattern
local forms = {}
--for this type, it's important to distinguish if it's reflexive to set some stress patterns
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "кля́сть")
data.title = "irreg-b"
parse_variants(data, args[1], {"past", "+p"})
no_stray_args(args, 2)
forms["infinitive"] = "кля́сть"
append_participles_2stem(forms, "клян", nil, "кля́", nil,
"у́щий", "и́мый", "я́", "вший", "вши", "в")
append_imper(forms, "кляни́", nil, "", "те")
present_e_b(forms, "клян")
prepend_prefix(forms, prefix)
set_past_by_stress(forms, data.past_stress, prefix, nil, "кля́", nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["irreg-стелить"] = function(args, data)
-- irregular, only for verbs derived from стелить
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "стели́ть")
data.title = com.is_stressed(prefix) and "4a" or "4c"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "стели́ть"
append_participles(forms, "сте́л", nil,
"ющий" .. IRREG, "и́мый", "я́", "и́вший", "и́вши", "и́в")
set_class_4_ppp(forms, data, "сте́л", nil, data.title)
append_imper(forms, "стели́", nil, "", "те")
append_pres_futr(forms, "сте́л", nil, "ю́", {}, {}, {}, {}, {})
append_pres_futr(forms, "сте́л", nil, {}, "ешь", "ет", "ем", "ете", "ют", IRREG)
set_past(forms, "стели́л", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-быть"] = function(args, data)
-- irregular, only for verbs derived from быть with various stress patterns, the actual verb быть different from its derivatives
local forms = {}
--for this type, it's important to distinguish if it's reflexive to set some stress patterns
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "бы́ть")
data.title = "irreg-a"
parse_variants(data, args[1], {"past", "+p"})
no_stray_args(args, 2)
forms["infinitive"] = "бы́ть"
-- no pres_pasv_part
append_participles(forms, "", nil, "су́щий", "-", "бу́дучи",
"бы́вший", "бы́вши", "бы́в")
append_imper(forms, "бу́дь", nil, "", "те")
prepend_prefix(forms, prefix)
-- only for "бы́ть", some forms are archaic
if forms["infinitive"] == "бы́ть" then
append_pres_futr(forms, "", nil, "есть", "есть", "есть", "есть", "есть", "есть")
elseif com.is_stressed(prefix) then
-- if the prefix is stressed, e.g. "вы́быть"
present_e_a(forms, prefix .. "буд")
else
present_e_a(forms, prefix .. "бу́д")
end
set_past_by_stress(forms, data.past_stress, prefix, nil, "бы́", nil,
args, data)
set_ppp_from_past_m(forms, args, data)
return forms
end
conjugations["irreg-ссать-сцать"] = function(args, data)
-- irregular, only for verbs derived from ссать and сцать (both vulgar!)
local forms = {}
local prefix, _, stem = split_known_main_verb(get_stressed_arg(args, 2),
{"сса́ть", "сца́ть"})
data.title = com.is_stressed(prefix) and "irreg-a" or "irreg-b"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
stem = com.strip_ending(stem, nil, "ть")
local pres_stem = rsub(stem, "а́?$", "")
no_stray_args(args, 2)
forms["infinitive"] = stem .. "ть"
-- no pres_pasv_part
-- no pres_adv_part
append_participles(forms, pres_stem, nil, "у́щий", "-", "-",
"а́вший", "а́вши", "а́в")
append_imper(forms, pres_stem, nil, "ы́", "ы́те")
append_pres_futr(forms, pres_stem, nil,
"у́", "ы́шь", "ы́т", "ы́м", "ы́те", "у́т")
set_past(forms, stem .. "л", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-ссать"] = conjugations["irreg-ссать-сцать"]
conjugations["irreg-сцать"] = conjugations["irreg-ссать-сцать"]
conjugations["irreg-чтить"] = function(args, data)
-- irregular, only for verbs derived from чтить
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "чти́ть")
data.title = "4b"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "чти́ть"
append_participles_2stem(forms, "чт", nil, "чти́", nil,
{"я́щий", "у́щий" .. IRREG}, "и́мый", "я́", "вший", "вши", "в")
if data.ppp then
set_ppp(forms, "чт", nil, "ённый")
end
append_imper(forms, "чти́", nil, "", "те")
append_pres_futr(forms, "чт", nil,
"у́" .. IRREG, "и́шь", "и́т", "и́м", "и́те", {"я́т", "у́т" .. IRREG})
set_past(forms, "чти́л", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-шибить"] = function(args, data)
-- irregular, only for verbs in -шибить(ся)
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "шиби́ть")
data.title = com.is_stressed(prefix) and "irreg-a" or "irreg-b"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
-- no present participles
forms["infinitive"] = "шиби́ть"
append_participles(forms, "шиби́", nil,
"-", "-", "-", "вший", "вши", "в")
if data.ppp then
set_ppp(forms, "ши́бл", nil, "енный")
end
append_imper(forms, "шиби́", nil, "", "те")
present_e_b(forms, "шиб")
set_past(forms, "ши́б", nil, "", "ла", "ло", "ли")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-реветь"] = function(args, data)
-- irregular, only for verbs derived from "реветь"
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "реве́ть")
data.title = "irreg-b"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "реве́ть"
-- no pres_pasv_part
append_participles_2stem(forms, "рев", nil, "реве́", nil,
"у́щий", "-", "я́", "вший", "вши", "в")
present_e_b(forms, "рев")
append_imper(forms, "реви́", nil, "", "те")
set_past(forms, "реве́л", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-имать"] = function(args, data)
-- irregular, only for внимать and certain archaic verbs (e.g. имать as
-- conjugated in the 18th century, отъимать)
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "има́ть")
data.title = "1a // 6a"
data.cat_conj_types = {"1a", "6a"}
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "има́ть"
-- handle внемл- forms
append_participles(forms, "е́мл", nil,
"ющий", "емый", {"я", "я́"}, {}, {}, {})
-- handle внима́- forms
append_participles(forms, "има́", nil,
"ющий", "емый", "я", "вший", "вши", "в")
if data.ppp then
-- FIXME, do class-1a-type ppp's (e.g. вни́манный) exist?
-- ruwikt marks them with a *
set_ppp(forms, "е́мл", nil, "енный")
end
append_imper(forms, "", nil, {"е́мли", "емли́", "има́й"},
{"е́млите", "емли́те", "има́йте"})
present_je(forms, "е́мл", nil, "a")
-- Both вне́млю and внемлю́ are possible
append_pres_futr(forms, "емл", nil, "ю́", {}, {}, {}, {}, {})
present_je(forms, "има́", nil, "a")
set_past(forms, "има́л", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-внять"] = function(args, data)
-- irregular, only for внять
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "вня́ть")
data.title = "14c/c"
parse_variants(data, args[1], {"+p"})
no_stray_args(args, 2)
forms["infinitive"] = "вня́ть"
-- perfective only; no present participles
append_participles(forms, "вня́", nil,
"-", "-", "-", "вший", "вши", "в")
append_imper(forms, "вними́", nil, "", "те")
append_imper(forms, "вонми́", nil, "", "те")
present_e_c(forms, "вни́м")
present_e_c(forms, "во́нм")
set_past(forms, "вня́л", nil, "", "а́", "о", "и")
set_ppp_from_past_m(forms, args, data)
prepend_prefix(forms, prefix)
return forms
end
conjugations["irreg-обязывать"] = function(args, data)
-- irregular, only for обязывать and обязываться
local forms = {}
local prefix = split_known_main_verb(get_stressed_arg(args, 2), "обя́зывать")
data.title = "1a"
-- no past passive participles of any verbs of this type
parse_variants(data, args[1], {})
no_stray_args(args, 2)
forms["infinitive"] = "обя́зывать"
append_participles_2stem(forms, "обя́з", nil, "обя́зыва", nil,
{"ывающий", "у́ющий"}, {"ываемый", "у́емый"}, {"ывая", "у́я"}, "вший", "вши", "в")
append_imper(forms, "обя́зывай", nil, "", "те")
append_imper(forms, "обязу́й", nil, "", "те")
present_je(forms, "обя́зыва", nil, "a")
present_je(forms, "обязу́", nil, "a")
set_past(forms, "обя́зывал", nil, "", "а", "о", "и")
prepend_prefix(forms, prefix)
return forms
end
--[=[
Partial conjugation functions
]=]
-- Present forms with -e-, no j-vowels.
present_e_a = function(forms, stem, tr, note)
append_pres_futr(forms, stem, tr, "у", "ешь", "ет", "ем", "ете", "ут", note)
end
present_e_b = function(forms, stem, tr, note)
append_pres_futr(forms, stem, tr, "у́", "ёшь", "ёт", "ём", "ёте", "у́т", note)
end
present_e_c = function(forms, stem, tr, note)
append_pres_futr(forms, stem, tr, "у́", "ешь", "ет", "ем", "ете", "ут", note)
end
-- Present forms with -e- and iotated stem. ABC = "a", "b" or "c", indicating
-- the accent pattern. If SHCH is set, iotate final т as щ, not ч. If NOTE
-- is given, add it to each form.
present_je = function(forms, stem, tr, abc, shch, note)
local iotated_stem, iotated_tr = com.iotation(stem, tr, shch)
assert(abc == "a" or abc == "b" or abc == "c")
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local hushing = rfind(iotated_stem, "[шщжч]$") -- or no_iotation
local ending_1sg =
hushing and (abc == "a" and "у" or "у́") or
not hushing and (abc == "a" and "ю" or "ю́")
if abc == "b" then
append_pres_futr(forms, iotated_stem, iotated_tr,
{}, "ёшь", "ёт", "ём", "ёте", (hushing and "у́т" or "ю́т"), note)
else
append_pres_futr(forms, iotated_stem, iotated_tr,
{}, "ешь", "ет", "ем", "ете", (hushing and "ут" or "ют"), note)
end
append_pres_futr(forms, iotated_stem, iotated_tr,
ending_1sg, {}, {}, {}, {}, {}, note)
end
-- Present forms with -i- (and iotated stem in the 1sg). ABC = "a", "b" or "c",
-- indicating the accent pattern. If SHCH is set, iotate final т as щ, not ч.
-- If NOTE is given, add it to each form.
present_i = function(forms, stem, tr, abc, shch, note)
local iotated_stem, iotated_tr = com.iotation(stem, tr, shch)
assert(abc == "a" or abc == "b" or abc == "c")
-- Verbs ending in a hushing consonant do not get j-vowels in the endings.
local iotated_hushing = rfind(iotated_stem, "[шщжч]$")
local hushing = rfind(stem, "[шщжч]$")
local ending_1sg =
iotated_hushing and (abc == "a" and "у" or "у́") or
not iotated_hushing and (abc == "a" and "ю" or "ю́")
if abc == "b" then
append_pres_futr(forms, stem, tr,
{}, "и́шь", "и́т", "и́м", "и́те", hushing and "а́т" or "я́т", note)
else
append_pres_futr(forms, stem, tr,
{}, "ишь", "ит", "им", "ите", hushing and "ат" or "ят", note)
end
append_pres_futr(forms, iotated_stem, iotated_tr,
ending_1sg, {}, {}, {}, {}, {}, note)
end
-- Add the reflexive particle to all verb forms
make_reflexive = function(forms, reflex_stress)
for key, form in pairs(forms) do
local ru, tr = extract_russian_tr(form)
-- check for empty string, dashes and nil's
if ru and ru ~= "" and ru ~= "-" then
local ruentry, runotes = m_table_tools.separate_notes(ru)
local trentry, trnotes
if tr then
trentry, trnotes = m_table_tools.separate_notes(tr)
end
if is_vowel_stem(ruentry) then
forms[key] = {ruentry .. "сь" .. runotes, trentry and trentry .. "sʹ" .. trnotes}
-- if a past_m form doesn't contain a stress, add a stressed
-- particle "ся́" if called for
elseif reflex_stress and com.is_unstressed(ruentry) and rfind(key, "^past_m") then
forms[key] = {ruentry .. "ся́" .. runotes, trentry and trentry .. "sja" .. AC .. trnotes}
else
forms[key] = {ruentry .. "ся" .. runotes, trentry and trentry .. "sja" .. trnotes}
end
end
end
end
-- Convert verb forms to pre-reform style by adding ъ to consonant-final
-- forms (excluding those ending in й and ь) and converting -ий to -ій and
-- -ийся to -ійся
make_pre_reform = function(forms)
for key, form in pairs(forms) do
local ru, tr = extract_russian_tr(form)
-- check for empty string, dashes and nil's
if ru and ru ~= "" and ru ~= "-" then
local ruentry, runotes = m_table_tools.separate_notes(ru)
if rfind(ruentry, "[бцдфгчклмнпрствшхзжщ]$") then
forms[key] = {ruentry .. "ъ" .. runotes, tr}
else
forms[key] = {rsub(rsub(ruentry, "ий$", "ій"), "ийся$", "ійся") .. runotes, tr}
end
end
end
end
local function setup_pres_futr(forms, perf, old)
-- Copy the main form FROMFORM to the main form TOFORM, and copy all
-- associated alternative forms.
local function copy_form(fromform, toform)
local fromforms = main_to_all_verb_forms[fromform]
local toforms = main_to_all_verb_forms[toform]
local numforms = #fromforms
assert(#toforms == numforms)
for i=1,numforms do
forms[toforms[i]] = forms[fromforms[i]]
end
end
-- Copy pres_futr_* to pres_* (imperfective) or futr_* (perfective).
if perf then
copy_form("pres_futr_1sg", "futr_1sg")
copy_form("pres_futr_2sg", "futr_2sg")
copy_form("pres_futr_3sg", "futr_3sg")
copy_form("pres_futr_1pl", "futr_1pl")
copy_form("pres_futr_2pl", "futr_2pl")
copy_form("pres_futr_3pl", "futr_3pl")
else
copy_form("pres_futr_1sg", "pres_1sg")
copy_form("pres_futr_2sg", "pres_2sg")
copy_form("pres_futr_3sg", "pres_3sg")
copy_form("pres_futr_1pl", "pres_1pl")
copy_form("pres_futr_2pl", "pres_2pl")
copy_form("pres_futr_3pl", "pres_3pl")
end
local futr_data = {
{"futr_1sg", "бу́ду", "búdu"},
{"futr_2sg", "бу́дешь", "búdešʹ"},
{"futr_3sg", "бу́дет" .. (old and "ъ" or ""), "búdet"},
{"futr_1pl", "бу́дем" .. (old and "ъ" or ""), "búdem"},
{"futr_2pl", "бу́дете", "búdete"},
{"futr_3pl", "бу́дут" .. (old and "ъ" or ""), "búdut"}
}
local function insert_future(inf, inf_tr)
for _, fut in ipairs(futr_data) do
append_to_arg_chain(forms, fut[1], fut[1],
{fut[2] .. inf, inf_tr and fut[3] .. inf_tr})
end
end
-- Insert future, if required (there may conceivably be multiple infitives).
for _, form in ipairs(main_to_all_verb_forms["infinitive"]) do
local infinitive = forms[form]
if infinitive then
local inf, inf_tr = extract_russian_tr(forms[form])
-- only for "бы́ть" the future forms are бу́ду, бу́дешь, etc.
if inf == "бы́ть" then
insert_future("", nil)
elseif not perf then
insert_future(" " .. inf, inf_tr and " " .. inf_tr)
end
end
end
end
parse_and_stress_override = function(form, val, existing, all_existing)
if rfind(form, "^pres_futr") then
error("Overrides of pres_futr* are illegal, use pres_* or futr_*")
end
local allow_unaccented
val, allow_unaccented = rsubb(val, "^%*", "")
local ru, tr = com.split_russian_tr(val)
-- past_m can be unaccented in connection with reflex_stress=ся́
if not allow_unaccented and not rfind(form, "^past_m") then
if tr and com.is_unstressed(ru) ~= com.is_unstressed(tr) then
error("Override " .. form .. "=" .. ru .. " and translit " .. tr .. " must have same accent pattern")
end
if com.is_monosyllabic(ru) then
ru, tr = com.make_ending_stressed(ru, tr)
elseif com.needs_accents(ru) then
error("Override " .. form .. "=" .. ru .. " requires an accent")
end
end
if rfind(ru, "%+") then
-- If either the existing or override has manual translit, the resulting
-- form should have manual translit. We specify ALWAYS_TRANSLIT if
-- the override has manual translit, so that we can substitute the
-- existing translit into the override translit.
local existing_ru, existing_tr = extract_russian_tr(existing, not not tr)
-- used especially for present participles; substitute existing form,
-- minus any "awkward-" or "none-" prefixes.
ru = rsub(ru, "%+", strip_arg_status_prefix(existing_ru))
-- If there's existing translit but not in the override, make sure it's
-- carried along.
if existing_tr and not tr then
tr = com.translit(ru)
end
tr = tr and rsub(tr, "%+", strip_arg_status_prefix(existing_tr))
end
-- If there's an override and it doesn't match an existing form, it's
-- irregular and indicate it using the IRREG marker. We don't do this if
-- the override simply removes a form. We do do this if there aren't any
-- existing forms, on the theory that the presence of a form when none is
-- normally called for is an irregularity. When comparing against the
-- existing forms, strip any status prefix (e.g. 'awkward-').
if all_existing then
local all_existing_stripped = {}
for _, ae in ipairs(all_existing) do
local existing_ru, existing_tr = extract_russian_tr(ae)
existing_ru = strip_arg_status_prefix(existing_ru)
existing_tr = existing_tr and strip_arg_status_prefix(existing_tr)
table.insert(all_existing_stripped, {existing_ru, existing_tr})
end
if ru ~= "-" and not contains_form(all_existing_stripped, {ru, tr}) then
ru = ru .. IRREG
tr = tr and tr .. IRREG
end
end
return {ru, tr}
end
-- Set up pres_* or futr_*; handle *sym/*tail/*tailall notes and overrides.
handle_forms_and_overrides = function(args, forms, data)
setup_pres_futr(forms, data.perf, data.old)
--handle overrides (formerly we only had past_pasv_part as a
--general override, plus scattered main-form overrides in particular
--conjugation classes)
for _, all_forms in pairs(main_to_all_verb_forms) do
local i = 0
local orig_forms = {}
for _, form in ipairs(all_forms) do
if forms[form] then
table.insert(orig_forms, forms[form])
end
end
for _, form in ipairs(all_forms) do
i = i + 1
-- If we auto-generated the past passive participle in order to
-- check for irregular overrides, make sure to erase any such
-- participles that weren't overridden. This happens for example
-- in обнять, where there are two automatically generated past
-- passive participles but a single ppp=о́внятый override.
local override = args[form] or (
data.ppp_auto_generated and rfind(form, "^past_pasv_part") and "-"
)
if override then
forms[form] = parse_and_stress_override(form, override,
forms[form], orig_forms)
elseif i == 1 then
forms[form] = forms[form] or ""
end
end
end
local function append_value(forms, prop, value)
if forms[prop] and forms[prop] ~= "" and forms[prop] ~= "-" then
value = com.split_russian_tr(value, "dopair")
local curval = forms[prop]
if type(curval) == "string" then
curval = {curval}
end
forms[prop] = com.concat_paired_russian_tr(curval, value)
end
end
local function append_note_all(forms, proplist, value)
for _, prop in ipairs(proplist) do
append_value(forms, prop, value)
end
end
local function append_note_last(forms, proplist, value, gt_one)
local numprops = 0
local lastprop
-- Find the last property in the series with a value
for _, prop in ipairs(proplist) do
if forms[prop] and forms[prop] ~= "" and forms[prop] ~= "-" then
numprops = numprops + 1
lastprop = prop
end
end
if numprops > (gt_one and 1 or 0) then
append_value(forms, lastprop, value)
end
end
for _, proplist in ipairs(all_verb_forms) do
-- Handle PROP_sym, which applies to all overridable properties, including
-- alternative forms, and applies to exactly that property.
for _, prop in ipairs(proplist) do
if args[prop .. "_sym"] then
append_value(forms, prop, args[prop .. "_sym"])
end
end
local propname = proplist[1]
-- Handle PROP_tail, which applies to a series of properties (e.g. past_m,
-- past_m2, ...) and appends to the last one.
if args[propname .. "_tail"] then
append_note_last(forms, proplist, args[propname .. "_tail"])
end
-- Handle PROP_tailall, which applies to a series of properties and
-- appends to all.
if args[propname .. "_tailall"] then
append_note_all(forms, proplist, args[propname .. "_tailall"])
end
end
-- Now handle pasttail, pasttailall, prestail, prestailall, etc.
-- Table listing tail-arg prefix and corresponding verb forms.
local tailargs = {
{"past", past_verb_forms},
{"pres", pres_verb_forms},
{"futr", futr_verb_forms},
{"impr", impr_verb_forms},
{"part", part_verb_forms},
{"prespart", pres_part_verb_forms},
{"pastpart", past_part_verb_forms},
{"", all_main_verb_forms}
}
for _, tailspec in ipairs(tailargs) do
local tailforms = tailspec[2]
-- Handle the ...tail variants.
local tailarg = tailspec[1] .. "tail"
if args[tailarg] then
track(tailarg)
for _, prop in ipairs(tailforms) do
append_note_last(forms, main_to_all_verb_forms[prop], args[tailarg], ">1")
end
end
-- Handle the ...tailall variants.
local tailallarg = tailspec[1] .. "tailall"
if args[tailallarg] then
track(tailallarg)
for _, prop in ipairs(tailforms) do
append_note_all(forms, main_to_all_verb_forms[prop], args[tailallarg])
end
end
end
end
-- Finish generating the forms; primarily, clear out unused forms.
finish_generating_forms = function(forms, data)
-- Convert any main form that's nil (meaning no forms at all corresponding
-- to this main form) to the empty string.
for main_form, _ in pairs(main_to_all_verb_forms) do
if not forms[main_form] then
forms[main_form] = ""
end
end
-- Set the main form FORM to the empty string, and corresponding alt forms
-- to nil.
local function clear_form(form)
local i = 0
for _, altform in ipairs(main_to_all_verb_forms[form]) do
i = i + 1
if i == 1 then
forms[altform] = ""
else
forms[altform] = nil
end
end
end
-- Intransitive and reflexive verbs have no passive participles
-- (unless has_prpp=y and/or has_ppp=y).
if data.intr or data.refl then
if not data.has_prpp then
clear_form("pres_pasv_part")
end
if not data.has_ppp then
clear_form("past_pasv_part")
end
end
if data.refl then
-- no past_adv_part_short for reflexive verbs
clear_form("past_adv_part_short")
end
-- Impersonal verbs normally have no passive participles, but allow them
-- if there's specifically an override. We only do this for the present
-- passive participle because the past passive participle isn't inserted
-- by default, and we still want +p to work, which doesn't currently set
-- data.ppp_override.
if data.impers and not data.prpp_override then
clear_form("pres_pasv_part")
end
if data.impers then
clear_form("pres_1sg")
clear_form("pres_2sg")
clear_form("pres_1pl")
clear_form("pres_2pl")
clear_form("pres_3pl")
clear_form("futr_1sg")
clear_form("futr_2sg")
clear_form("futr_1pl")
clear_form("futr_2pl")
clear_form("futr_3pl")
clear_form("past_m")
clear_form("past_f")
clear_form("past_pl")
clear_form("past_m_short")
clear_form("past_f_short")
clear_form("past_pl_short")
clear_form("pres_actv_part")
clear_form("past_actv_part")
clear_form("pres_adv_part")
clear_form("past_adv_part")
clear_form("past_adv_part_short")
clear_form("impr_sg")
clear_form("impr_pl")
end
-- Perfective and iterative verbs have no present forms, as well as
-- verbs marked nopres=1.
if data.perf or data.iter or data.nopres then
clear_form("pres_actv_part")
clear_form("pres_pasv_part")
clear_form("pres_adv_part")
clear_form("pres_1sg")
clear_form("pres_2sg")
clear_form("pres_3sg")
clear_form("pres_1pl")
clear_form("pres_2pl")
clear_form("pres_3pl")
end
-- Some verbs (e.g. грясти́, густи́) have no past
if data.nopast then
clear_form("past_m")
clear_form("past_f")
clear_form("past_n")
clear_form("past_pl")
clear_form("past_m_short")
clear_form("past_f_short")
clear_form("past_n_short")
clear_form("past_pl_short")
clear_form("past_actv_part")
clear_form("past_pasv_part")
clear_form("past_adv_part")
clear_form("past_adv_part_short")
end
-- Iterative verbs and verbs marked noimpr=1 have no imperative forms.
if data.iter or data.noimpr then
clear_form("impr_sg")
clear_form("impr_pl")
end
-- Iterative verbs and verbs marked nofutr=1 have no future forms.
if data.iter or data.nofutr then
clear_form("futr_1sg")
clear_form("futr_2sg")
clear_form("futr_3sg")
clear_form("futr_1pl")
clear_form("futr_2pl")
clear_form("futr_3pl")
end
--handle "none-" and "awkward-" prefixes (used especially for pres_pasv_part)
local footnote_sym = nil
for _, all_forms in pairs(main_to_all_verb_forms) do
local i = 0
for _, form in ipairs(all_forms) do
i = i + 1
if forms[form] then
local formru, formtr = extract_russian_tr(forms[form])
if rfind(formru, "^none%-") then
if i == 1 then
forms[form] = ""
else
forms[form] = nil
end
elseif rfind(formru, "^awkward%-") then
if not footnote_sym then
footnote_sym = next_note_symbol(data)
m_table.insertIfNot(data.internal_notes, footnote_sym .. " Hiếm và ngượng nghịu.")
end
forms[form] = {rsub(formru, "^awkward%-", "") .. footnote_sym,
formtr and rsub(formtr, "^awkward%-", "") .. footnote_sym}
end
end
end
end
--Insert footnote for IRREG symbol if present.
for _, all_forms in pairs(main_to_all_verb_forms) do
for _, form in ipairs(all_forms) do
if forms[form] then
local formru = extract_russian_tr(forms[form])
if rfind(formru, IRREG) then
m_table.insertIfNot(data.internal_notes, IRREG .. " Irregular.")
end
end
end
end
end
local accel_forms = {
-- present tense
pres_1sg = "1|s|pres|ind",
pres_2sg = "2|s|pres|ind",
pres_3sg = "3|s|pres|ind",
pres_1pl = "1|p|pres|ind",
pres_2pl = "2|p|pres|ind",
pres_3pl = "3|p|pres|ind",
-- future tense
futr_1sg = "1|s|fut|ind",
futr_2sg = "2|s|fut|ind",
futr_3sg = "3|s|fut|ind",
futr_1pl = "1|p|fut|ind",
futr_2pl = "2|p|fut|ind",
futr_3pl = "3|p|fut|ind",
-- imperative
impr_sg = "2|s|imp",
impr_pl = "2|p|imp",
-- past
past_m = "m|s|past|ind",
past_f = "f|s|past|ind",
past_n = "n|s|past|ind",
past_pl = "p|past|ind",
past_m_short = "short|m|s|past|ind",
past_f_short = "short|f|s|past|ind",
past_n_short = "short|n|s|past|ind",
past_pl_short = "short|p|past|ind",
-- active participles
pres_actv_part = "pres|act|part",
past_actv_part = "past|act|part",
-- passive participles
pres_pasv_part = "pres|pass|part",
past_pasv_part = "past|pass|part",
-- adverbial participles
pres_adv_part = "pres|adv|part",
past_adv_part = "past|adv|part",
past_adv_part_short = "short|past|adv|part",
-- infinitive
infinitive = "inf",
}
-- Make the table
make_table = function(forms, title, perf, intr, impers, notes, internal_notes, old)
local infinitives = {}
for _, form in ipairs(main_to_all_verb_forms["infinitive"]) do
local infinitive = forms[form]
if infinitive then
local inf = extract_russian_tr(forms[form])
if inf ~= "-" then
m_table.insertIfNot(infinitives, inf)
end
end
end
-- Group forms together for a given key and combine adjacent forms with the same
-- Russian (they should always have different translits). Take care not to introduce
-- manual translit unnecessarily.
local grouped_forms = {}
for dispform, sourceforms in pairs(disp_verb_form_map) do
local entry = {}
for _, form in ipairs(sourceforms) do
local ru, tr = extract_russian_tr(forms[form])
-- check for empty strings, dashes and nil's
if ru and ru ~= "" and ru ~= "-" and ru ~= "—" then
if #entry > 0 then
local lastru, lasttr = extract_russian_tr(entry[#entry])
if lastru == ru then
if not lasttr and not tr or lasttr == tr then
error("Russian form " .. ru .. " is duplicated, probably due to a duplicative override")
end
lasttr = lasttr or com.translit(lastru)
tr = tr or com.translit(ru)
entry[#entry] = {ru, lasttr .. " ''or'' " .. tr}
else
table.insert(entry, {ru, tr})
end
else
table.insert(entry, {ru, tr})
end
end
end
grouped_forms[dispform] = entry
end
local title = (old and "Bảng chia động từ trước cải cách" or "Bảng chia động từ") .. (#infinitives == 0 and "" or
" của <span lang=\"ru\" class=\"Cyrl\">''" .. table.concat(infinitives, ", ") .. "''</span>") ..
(title and " (" .. title .. ")" or "")
local function add_links(ru, rusuf, runotes, tr, trnotes, accel)
local ruspan
ruspan = m_links.full_link({lang = lang, term = ru, accel = accel, tr = "-"})
if rusuf ~= "" then
rusuf = "<span lang=\"ru\" class=\"Cyrl\">" .. rusuf .. "</span>"
end
return ruspan .. rusuf .. runotes .. "<br/>" .. require("Module:script utilities").tag_translit(tr .. trnotes, lang, "default", 'style="color:#888;"')
end
-- NOTE: No need to check for multiple infinitives because the accel system
-- doesn't support multiple lemmas.
local lemma, lemmatr = extract_russian_tr(forms["infinitive"])
-- check for empty strings, dashes and nil's
if lemma and lemma ~= "" and lemma ~= "-" and lemma ~= "—" then
lemma = m_table_tools.separate_notes(lemma)
if lemmatr then
lemmatr = m_table_tools.separate_notes(lemmatr)
end
else
-- In case the lemma is an empty string or dash, set to nil so we don't
-- set a lemma in the accelerator and fall back to the page name.
lemma = nil
lemmatr = nil
end
-- Convert to displayed form
local disp = {}
for key, entry in pairs(grouped_forms) do
for i, form in ipairs(entry) do
local ru, origtr = extract_russian_tr(form)
local tr = origtr or ru and com.translit(ru)
local ruentry, runotes = m_table_tools.separate_and_superscript_notes(ru)
local trentry, trnotes = m_table_tools.separate_and_superscript_notes(tr)
local accel_form = accel_forms[key]
if not accel_form then
error("Unrecognized key " .. key .. " when looking up accelerator form")
end
local accel
if origtr and origtr:find(" ''or'' ") then
-- Multiple translits for a given Russian term.
-- FIXME! Support this.
accel = nil
else
accel = { form = accel_form, translit = origtr,
lemma = lemma, lemma_translit = lemmatr}
end
if rfind(key, "^futr") then
-- Add link to first word (form of 'to be')
local tobe, inf = rmatch(ruentry, "^([^ ]*) ([^ ]*)$")
if tobe then
-- No accelerators for imperfective future, as it's just the future of "to be"
-- plus the infinitive.
entry[i] = add_links(tobe, " " .. inf, runotes, trentry, trnotes, nil)
else
entry[i] = add_links(ruentry, "", runotes, trentry, trnotes, accel)
end
else
entry[i] = add_links(ruentry, "", runotes, trentry, trnotes, accel)
end
end
disp[key] = table.concat(entry, ",<br/>")
if disp[key] == "" then
disp[key] = "—"
end
end
local all_notes = {}
for _, note in ipairs(internal_notes) do
local symbol, entry = m_table_tools.get_initial_notes(note)
table.insert(all_notes, symbol .. entry)
end
for _, note in ipairs(notes) do
local symbol, entry = m_table_tools.get_initial_notes(note)
table.insert(all_notes, symbol .. entry)
end
local notes_text
table.insert(all_notes, 1,
"Lưu ý: Đối với biến cách của phân từ, xem các mục tương ứng của chúng. Phân từ trạng ngữ không biến cách.")
notes_text = table.concat(all_notes, "<br />") .. "\n"
return [=[<div class="NavFrame" style="max-width:49.6em;">
<div class="NavHead" style="text-align:left; background:var(--wikt-palette-lightindigo, #e9e9ff);color:inherit;">]=] .. title .. [=[</div>
<div class="NavContent">
{| class="inflection inflection-ru inflection-verb inflection-table"
|+ ]=] .. notes_text .. [=[
|- class="rowgroup"
! colspan="3" | ]=] .. (perf and [=[[[совершенный вид|thể hoàn thành]]]=] or [=[[[несовершенный вид|thể chưa hoàn thành]]]=]) .. [=[
|-
! [[неопределённая форма|nguyên mẫu]]
| colspan="2" | ]=] .. disp.infinitive .. [=[
|- class="rowgroup"
! style="width:15em" | [[причастие|phân từ]]
! [[настоящее время|thì hiện tại]]
! [[прошедшее время|thì quá khứ]]
|-
! [[действительный залог|chủ động]]
| ]=] .. disp.pres_actv_part .. [=[ || ]=] .. disp.past_actv_part .. [=[
|-
! [[страдательный залог|bị động]]
| ]=] .. disp.pres_pasv_part .. [=[ || ]=] .. disp.past_pasv_part .. [=[
|-
! [[деепричастие|trạng động từ]]
| ]=] .. disp.pres_adv_part .. [=[ || ]=] .. disp.past_adv_part .. [=[
|- class="rowgroup"
!
! [[настоящее время|thì hiện tại]]
! [[будущее время|thì tương lai]]
|-
! [[первое лицо|ngôi thứ nhất]] [[единственное число|số ít]] (<span lang="ru" class="Cyrl">я</span>)
| ]=] .. disp.pres_1sg .. [=[ || ]=] .. disp.futr_1sg .. [=[
|-
! [[второе лицо|ngôi thứ hai]] [[единственное число|số ít]] (<span lang="ru" class="Cyrl">ты</span>)
| ]=] .. disp.pres_2sg .. [=[ || ]=] .. disp.futr_2sg .. [=[
|-
! [[третье лицо|ngôi thứ ba]] [[единственное число|số ít]] (<span lang="ru" class="Cyrl">он/она́/оно́</span>)
| ]=] .. disp.pres_3sg .. [=[ || ]=] .. disp.futr_3sg .. [=[
|-
! [[первое лицо|ngôi thứ nhất]] [[множественное число|số nhiều]] (<span lang="ru" class="Cyrl">мы</span>)
| ]=] .. disp.pres_1pl .. [=[ || ]=] .. disp.futr_1pl .. [=[
|-
! [[второе лицо|ngôi thứ hai]] [[множественное число|số nhiều]] (<span lang="ru" class="Cyrl">вы</span>)
| ]=] .. disp.pres_2pl .. [=[ || ]=] .. disp.futr_2pl .. [=[
|-
! [[третье лицо|ngôi thứ ba]] [[множественное число|số nhiều]] (<span lang="ru" class="Cyrl">они́</span>)
| ]=] .. disp.pres_3pl .. [=[ || ]=] .. disp.futr_3pl .. [=[
|- class="rowgroup"
! [[повелительное наклонение|thức mệnh lệnh]]
! [[единственное число|số ít]]
! [[множественное число|số nhiều]]
|-
!
| ]=] .. disp.impr_sg .. [=[ || ]=] .. disp.impr_pl .. [=[
|- class="rowgroup"
! [[прошедшее время|thì quá khứ]]
! [[единственное число|số ít]]
! [[множественное число|số nhiều]]<br/>(<span lang="ru" class="Cyrl">мы/вы/они́</span>)
|-
! [[мужской род|giống đực]] (<span lang="ru" class="Cyrl">я/ты/он</span>)
| ]=] .. disp.past_m .. [=[ || rowspan="3" | ]=] .. disp.past_pl .. [=[
|-
! [[женский род|giống cái]] (<span lang="ru" class="Cyrl">я/ты/она́</span>)
| ]=] .. disp.past_f .. [=[
|-
! [[средний род|giống trung]] (<span lang="ru" class="Cyrl">оно́</span>)
| ]=] .. disp.past_n .. [=[
|}
</div>
</div>]=]
end
return export
8jzwqrmo9rat7lrx03tkw3l5x0s8zuf
phiêu linh
0
287222
2570136
2115037
2026-10-13T09:00:38Z
Hiyuune
50834
2570136
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|adj}}===
{{vi-adj}}
# Lênh đênh, [[trôi nổi]] không cố định.
#: {{ux|vi|Cuộc đời '''phiêu linh'''.}}
d7iudeqtbwjp3nqzk64h9g8bnawk3ec
Phụ lục:Tiếng Talossa/deþüdriçarh
100
287892
2570149
2116429
2026-10-13T09:18:33Z
Hiyuune
50834
2570149
wikitext
text/x-wiki
=={{langname|tzl}}==
==={{section|verb}}===
{{head|tzl|Động từ}}
# [[mất|Mất]] [[nước]].
dcuahos3fhd291guyzuwkua3be0mept
Thể loại:Động từ tiếng Talossa
14
287893
2570147
2116363
2026-10-13T09:16:57Z
Hiyuune
50834
2570147
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Phụ lục:Tiếng Talossa/dencidarh
100
287894
2570148
2116430
2026-10-13T09:17:19Z
Hiyuune
50834
2570148
wikitext
text/x-wiki
=={{langname|tzl}}==
==={{section|verb}}===
{{head|tzl|Động từ}}
# [[đâm|Đâm]] (bằng dao).
iuvoda5lnxaaap2f1xkmvhvo20v1ud7
Phụ lục:Tiếng Talossa/aucidarh
100
287895
2570146
2116431
2026-10-13T09:16:10Z
Hiyuune
50834
2570146
wikitext
text/x-wiki
=={{langname|tzl}}==
==={{section|verb}}===
{{head|tzl|Động từ}}
# [[giết|Giết]].
1hh8zsamkjzl7x3rp3ex67brszy9a9r
Phụ lục:Tiếng Talossa/entaglharh
100
287896
2570150
2116432
2026-10-13T09:18:48Z
Hiyuune
50834
2570150
wikitext
text/x-wiki
=={{langname|tzl}}==
==={{section|verb}}===
{{head|tzl|Động từ}}
# [[cắt|Cắt]].
oqv31g2m95cu5e1xge0cdpl9ouoq47l
Phụ lục:Tiếng Talossa/estarh
100
287897
2570151
2116433
2026-10-13T09:18:55Z
Hiyuune
50834
2570151
wikitext
text/x-wiki
=={{langname|tzl}}==
==={{section|verb}}===
{{head|tzl|Động từ}}
# [[là|Là]].
f5n98t3oyap936ks1bxu7thzgd72gpr
Phụ lục:Tiếng Talossa/parlarh
100
287898
2570152
2116434
2026-10-13T09:19:15Z
Hiyuune
50834
2570152
wikitext
text/x-wiki
=={{langname|tzl}}==
==={{section|verb}}===
{{head|tzl|Động từ}}
# [[nói|Nói]].
lfmvilhk7zd2xybmkfjb03ciquy6w58
Phụ lục:Tiếng Talossa/xhetarh
100
287899
2570153
2116435
2026-10-13T09:19:20Z
Hiyuune
50834
2570153
wikitext
text/x-wiki
=={{langname|tzl}}==
==={{section|verb}}===
{{head|tzl|Động từ}}
# [[ném|Ném]].
kc4xijbnma9cc37nts79fjun9kg6v7k
astronavt
0
291229
2570143
2127074
2026-10-13T09:12:08Z
Hiyuune
50834
2570143
wikitext
text/x-wiki
=={{langname|az}}==
{{wp|az:}}
{{az-variant|астронавт|}}
==={{section|etym}}===
{{bor+|az|ru|астрона́вт}}.
==={{section|pron}}===
* {{az-IPA|astronaft|astranaft}}
* {{hyph|az|as|tro|navt}}
==={{section|n}}===
{{az-noun}}
# [[phi hành gia]].
===={{section|decl}}====
{{az-decl-noun|a|c}}
==={{section|ref}}===
* {{R:az:ADIL|page=149}}
* {{R:az:Azleks}}
=={{langname|uz}}==
==={{section|etym}}===
{{bor+|uz|ru|астронавт}}.
==={{section|n}}===
{{uz-noun}}
# [[phi hành gia]].
#: {{syn|uz|kosmonavt}}
nbqvfv3eemjousv5b8cfca9w6gz095o
belceer
0
294914
2569951
2136941
2026-10-12T15:01:36Z
WhoAlone
40420
2569951
wikitext
text/x-wiki
{{-yuy-}}
{{-etym-}}
{{inh+|yuy|xgn-pro|*belcixer}}.
{{-noun-}}
{{head|yuy|Danh từ}}
# [[đồng cỏ]] (để [[chăn nuôi]] [[gia súc]]).
{{c|yuy|Chăn nuôi}}
em3ld23niv9f5t2l3xugvlnd4vjzthn
belcir
0
294915
2569948
2136942
2026-10-12T15:00:20Z
WhoAlone
40420
2569948
wikitext
text/x-wiki
{{-yuy-}}
{{-etym-}}
{{inh+|yuy|xgn-pro|*belcir}}.
{{-noun-}}
{{head|yuy|Danh từ}}
# [[châu thổ]].
{{c|yuy|Địa mạo}}
avg1ux55gur55b3x8iyqb4x18kllfii
beejin
0
294916
2569953
2136952
2026-10-12T15:01:54Z
WhoAlone
40420
2569953
wikitext
text/x-wiki
{{-yuy-}}
{{-etym-}}
{{inh+|yuy|xgn-pro|*becin}}.
{{-noun-}}
{{head|yuy|Danh từ}}
# [[khỉ]].
{{c|yuy|Bộ Linh trưởng}}
c5p5e2z9kc6666gzxjdosht7x1dhl33
baris
0
294917
2569959
2261078
2026-10-12T15:02:27Z
WhoAlone
40420
2569959
wikitext
text/x-wiki
{{-yuy-}}
{{-etym-}}
{{inh+|yuy|xgn-pro|*bars}}.
{{-noun-}}
{{head|yuy|Danh từ}}
# [[hổ]].
{{c|yuy|Họ Mèo}}
=={{langname|ckv}}==
==={{ĐM|noun}}===
{{head|ckv|Danh từ}}
# Cái [[đinh]].
hunlt7yzo3d1q8bl6wispgm8n08vqsr
balghasin
0
294919
2569968
2149042
2026-10-12T15:06:51Z
WhoAlone
40420
2569968
wikitext
text/x-wiki
{{-yuy-}}
{{-etym-}}
{{inh+|yuy|xgn-pro|*bal(a)gasun}}.
{{-pron-}}
* {{IPA4|yuy|/balʁasən/}}
{{-noun-}}
{{head|yuy|Danh từ}}
# [[tường]] [[thành]], [[đô thị]] [[cổ]].
{{c|yuy|Kiến trúc}}
jjlkx86hncr03x6o71tidctv4acuaoi
2569981
2569968
2026-10-12T15:18:27Z
Hiyuune
50834
2569981
wikitext
text/x-wiki
=={{langname|yuy}}==
==={{section|pron}}===
{{inh+|yuy|xgn-pro|*bal(a)gasun}}.
==={{section|pron}}===
* {{IPA|yuy|/balʁasən/}}
==={{section|noun}}===
{{head|yuy|Danh từ}}
# [[tường]] [[thành]], [[đô thị]] [[cổ]].
{{c|yuy|Kiến trúc}}
l6zzijqtzv9l0qorzb6hfp0irnyuy8z
2569982
2569981
2026-10-12T15:18:35Z
Hiyuune
50834
2569982
wikitext
text/x-wiki
=={{langname|yuy}}==
==={{section|etym}}===
{{inh+|yuy|xgn-pro|*bal(a)gasun}}.
==={{section|pron}}===
* {{IPA|yuy|/balʁasən/}}
==={{section|noun}}===
{{head|yuy|Danh từ}}
# [[tường]] [[thành]], [[đô thị]] [[cổ]].
{{c|yuy|Kiến trúc}}
3i0442m9tma1x8u0m28m8vrz1reib1m
baatir
0
294921
2569973
2330004
2026-10-12T15:07:53Z
WhoAlone
40420
2569973
wikitext
text/x-wiki
=={{langname|yuy}}==
==={{section|etym}}===
{{inh+|yuy|xgn-pro|*baxatur}}.
==={{section|n}}===
{{head|yuy|Danh từ}}
# [[anh hùng|Anh hùng]].
{{c|yuy|Mọi người}}
5o55ukr8nuvq1z8f15nrspi3vonkxzd
Bản mẫu:sc-noun
10
295551
2570078
2138224
2026-10-13T06:28:58Z
Hiyuune
50834
Hiyuune đã đổi [[Bản mẫu:srd-noun]] thành [[Bản mẫu:sc-noun]] qua đổi hướng
2138224
wikitext
text/x-wiki
{{head|sc|Danh từ|head={{{head|}}}<!--
-->|g={{#switch: {{{1|{{{g|}}}}}} <!--
-->| m = m<!--
-->| mf = m<!--
-->| f = f<!--
-->| #default = ?<!--
-->}}<!--
-->|g2={{#switch: {{{1|{{{g|}}}}}} <!--
-->| mf = f<!--
-->| {{{g2|}}}<!--
-->}}<!--
-->|{{#switch: {{{2|{{{pl|x}}}}}}<!--
-->| - = [[Phụ lục:Từ điển thuật ngữ#bất biến|bất biến]]<!--
-->| ~ = [[Phụ lục:Từ điển thuật ngữ#không đếm được|không đếm được]]<includeonly>[[Thể loại:Danh từ tiếng Sardegna không đếm được]]</includeonly><!--
-->| x = {{rfinfl-lite|sc}}<!--
-->| pt = chỉ có số nhiều<!--
-->| số nhiều <!--
-->}}<!--
-->|{{#switch: {{{2|{{{pl|x}}}}}}<!--
-->| - = <!--
-->| ~ = <!--
-->| x = <!--
-->| pt = <!--
-->| {{{2|{{{pl|}}}}}}<!--
-->}}<!--
-->|{{#if: {{{f|}}} | giống cái}}|{{{f|}}}<!--
-->|{{#if: {{{fpl|}}} | giống cái số nhiều}}|{{{fpl|}}}<!--
-->}}<noinclude>{{documentation}}[[Thể loại:Bản mẫu dòng tên mục từ tiếng Sardegna|noun]]</noinclude>
am2mfoao83pbpmxe2vtpa4vji49zhby
asuk
0
298392
2570154
2144258
2026-10-13T09:22:37Z
Hiyuune
50834
2570154
wikitext
text/x-wiki
=={{langname|ibh}}==
==={{section|n}}===
{{head|ibh|Danh từ}}
# [[sườn]].
==={{section|ref}}===
* Tam Thi Minh Nguyen, ''A grammar of Bih ''(2013)
=={{langname|kmk}}==
==={{section|etym}}===
{{ety|kmk|:inh|poz-pro:*qasəb<ety:inh<map-pro:*qasəb>>|text=2|tree=1}}
==={{section|n}}===
{{head|kmk|Danh từ|head=asúk}}
# [[khói]].
=={{langname|ms}}==
==={{section|pron}}===
* {{q|Ketapang}} {{IPA|ms|[asuʔ]}}
==={{section|n}}===
{{ms-noun}}
# {{lb|ms|Ketapang}} [[chó]].
===={{section|syn}}====
* {{l|ms|asu}}
{{C|ms|Chó|Lớp Thú}}
7ubqnb82h7fr2lovu7bxh7zq0f71t8n
astronautti
0
301284
2570138
2302425
2026-10-13T09:06:44Z
Hiyuune
50834
2570138
wikitext
text/x-wiki
=={{langname|fi}}==
==={{section|etym}}===
Vay mượn từ {{bor|fi|en|astronaut}}.
==={{section|pron}}===
{{fi-pronunciation|astro-nautti}}
==={{section|n}}===
{{fi-noun}}
# [[phi hành gia|Phi hành gia]].
===={{section|decl}}====
{{fi-decl-risti|astronau|tt|t|a}}
===={{section|drv}}====
{{col|fi|title=từ ghép
|sukkula-astronautti
}}
==={{section|see}}===
{{col|fi|avaruuslentäjä|kosmonautti|taikonautti}}
==={{section|further}}===
* {{R:fi:KTSK|accessdate=2023-07-02}}
==={{section|ana}}===
* {{anagrams|fi|a=aainorstttu|astronautit}}
8vdu4a0friygi7ox4znnomio4rz85xl
mỳ tôm
0
304895
2569996
2159557
2026-10-12T16:10:51Z
TheHighFighter2
42988
/* */
2569996
wikitext
text/x-wiki
=={{langname|vi}}==
==={{ĐM|noun}}===
{{vi-noun}}
# {{vi-alt sp|vi|mì tôm}}
fh635d8hlefk944ssn78ddxszvdoeov
mì tôm
0
304896
2569999
2569859
2026-10-12T16:14:23Z
TheHighFighter2
42988
/* */
2569999
wikitext
text/x-wiki
=={{langname|vi}}==
==={{ĐM|alt}}===
* {{alt|vi|mỳ tôm}}
==={{ĐM|pron}}===
{{vi-pron}}
==={{ĐM|noun}}===
{{vi-noun}}
# {{syn of|vi|mì ăn liền}}.
{{c|vi|Thực phẩm}}
qopx2gp4o0luj3ldagdxwnife0qr3pg
2570023
2569999
2026-10-12T16:47:01Z
TheHighFighter2
42988
/* Danh từ */
2570023
wikitext
text/x-wiki
=={{langname|vi}}==
==={{ĐM|alt}}===
* {{alt|vi|mỳ tôm}}
==={{ĐM|pron}}===
{{vi-pron}}
==={{ĐM|noun}}===
{{vi-noun}}
# {{syn of|vi|mì ăn liền}}.
#: {{ux|vi|Úp '''mì tôm'''.}}
{{c|vi|Thực phẩm}}
ppouunkp071fj44j4t5zu77iv13vt9x
mỳ ăn liền
0
304897
2569988
2159559
2026-10-12T15:49:23Z
TheHighFighter2
42988
/* */
2569988
wikitext
text/x-wiki
=={{langname|vi}}==
==={{ĐM|noun}}===
{{vi-noun}}
# {{vi-alt sp|mì ăn liền}}
6sw4q3fdocv6o1snxidz83dwvqqwa2j
mì ăn liền
0
304898
2569987
2569858
2026-10-12T15:48:20Z
TheHighFighter2
42988
/* */
2569987
wikitext
text/x-wiki
=={{langname|vi}}==
{{wp}}
==={{ĐM|alt}}===
* {{alt|vi|mỳ ăn liền}}
==={{ĐM|etym}}===
Từ {{ghép|vi|mì|ăn|liền}}.
==={{ĐM|pron}}===
{{vi-pron}}
==={{ĐM|noun}}===
{{vi-noun}}
# Loại sợi mì được [[chế biến]] sẵn bằng cách chiên qua [[dầu ăn]] sau đó [[sấy]] [[khô]], thường được nhúng nước sôi vài phút trước khi ăn.
#: {{syn|vi|mì gói|mì tôm}}
#: {{ux|vi|'''Mì ăn liền''' Hảo Hảo.}}
===={{ĐM|trans}}====
{{trans-top|Loại sợi mì}}
* {{langname|en}}: {{t+|en|instant noodle}}
{{trans-bottom}}
{{C|vi|Thực phẩm}}
t0mk630huecym6d0frmfbrmj6l78loq
tàu hũ
0
305359
2570021
2569866
2026-10-12T16:44:42Z
TheHighFighter2
42988
/* */
2570021
wikitext
text/x-wiki
=={{langname|vi}}==
==={{ĐM|pron}}===
{{vi-pron}}
==={{ĐM|noun}}===
{{vi-noun}}
# {{syn of|vi|tào phớ}}.
{{C|vi|Thực phẩm}}
eoos5y9d3qs2r98nykd630cfma88kek
កាង៉ាន
0
308574
2569903
2461947
2026-10-12T14:25:55Z
WhoAlone
40420
2569903
wikitext
text/x-wiki
{{-tpu-}}
{{-pron-}}
* {{IPA4|tpu|/kaŋaːn/}}
{{-noun-}}
{{head|tpu|Danh từ}}
# [[ngỗng]].
{{-reference-}}
* [https://web.archive.org/web/20250207062711/https://www.webonary.org/tampuan-english/ ''Từ điển Tampuan - Anh''] tại Webonary.
{{c|tpu|Họ Vịt}}
qqcimfzr4evw4768bjj7yokr792kksw
កាជន
0
308607
2569910
2461948
2026-10-12T14:29:47Z
WhoAlone
40420
2569910
wikitext
text/x-wiki
{{-tpu-}}
{{-pron-}}
* {{IPA4|tpu|/kacɔːn/}}
{{-noun-}}
{{head|tpu|Danh từ}}
# [[khuyên tai]].
{{-reference-}}
* [https://web.archive.org/web/20250207062711/https://www.webonary.org/tampuan-english/ ''Từ điển Tampuan - Anh''] tại Webonary.
{{c|tpu|Trang phục}}
0lzyg26gpiuv5zeqyhacqgsbcja9p1k
កា អង់លន
0
308640
2569906
2461944
2026-10-12T14:27:14Z
WhoAlone
40420
2569906
wikitext
text/x-wiki
{{-tpu-}}
{{-pron-}}
* {{IPA4|tpu|/kaː ʔŋlɔːn/}}
{{-noun-}}
{{head|tpu|Danh từ}}
# [[cá lóc]] [[đồng]].
{{-reference-}}
* [https://web.archive.org/web/20250207062711/https://www.webonary.org/tampuan-english/ ''Từ điển Tampuan - Anh''] tại Webonary.
{{c|tpu|Cá}}
ikllvcy8sr2b1i43g9hccmvcfsamom4
កាកគ់
0
308641
2569905
2461945
2026-10-12T14:27:02Z
WhoAlone
40420
2569905
wikitext
text/x-wiki
{{-tpu-}}
{{-pron-}}
* {{IPA4|tpu|/kakɒʔ/}}
{{-noun-}}
{{head|tpu|Danh từ}}
# [[vật]] [[chứa]] làm từ [[tre]].
{{-reference-}}
* [https://web.archive.org/web/20250207062711/https://www.webonary.org/tampuan-english/ ''Từ điển Tampuan - Anh''] tại Webonary.
{{c|tpu|Dụng cụ}}
hvnd72jg672m62xr8o4htmaimragmi3
កា សំឡាង
0
308642
2569914
2461941
2026-10-12T14:31:00Z
WhoAlone
40420
2569914
wikitext
text/x-wiki
{{-tpu-}}
{{-pron-}}
* {{IPA4|tpu|/kaː sɒmlaːŋ/}}
{{-noun-}}
{{head|tpu|Danh từ}}
# [[cá thiểu mẫu]] (''Paralaubuca typus'')
{{-reference-}}
* [https://web.archive.org/web/20250207062711/https://www.webonary.org/tampuan-english/ ''Từ điển Tampuan - Anh''] tại Webonary.
{{c|tpu|Cá}}
t8dp1poxsonny7okk36vk61fa3q9n0q
កា សាំងវ៉ាញ់
0
308643
2569912
2461940
2026-10-12T14:30:49Z
WhoAlone
40420
2569912
wikitext
text/x-wiki
{{-tpu-}}
{{-pron-}}
* {{IPA4|tpu|/kaː saŋkaɲ/}}
{{-noun-}}
{{head|tpu|Danh từ}}
# [[cá]] [[nhỏ]].
{{-reference-}}
* [https://web.archive.org/web/20250207062711/https://www.webonary.org/tampuan-english/ ''Từ điển Tampuan - Anh''] tại Webonary.
{{c|tpu|Cá}}
pawed9f98npek5lua0putleuy9ysiaj
Thành viên:Hiyuune
2
308782
2570013
2568364
2026-10-12T16:33:43Z
Hiyuune
50834
2570013
wikitext
text/x-wiki
{{#switch:{{FULLPAGENAME}}
|Thành viên:Hiyuune|Thảo luận Thành viên:Hiyuune= {{DISPLAYTITLE:<span style="font-size:0;color:transparent;">{{NAMESPACE}}:</span><span style="font-weight:bold;font-family: Segoe UI Light;background-image:linear-gradient(90deg,#FFB3AE,#FFF7AD);color:transparent;background-clip:text;-webkit-background-clip:text">{{ROOTPAGENAME}}</span>}}
|#default = {{DISPLAYTITLE:<span style="font-size:0;font-family: Segoe UI Light;color:transparent;">{{NAMESPACE}}:</span><span style="font-weight:bold;background-image:linear-gradient(90deg,#FFB3AE,#FFF7AD);color:transparent;background-clip:text;-webkit-background-clip:text">{{BASEPAGENAME}}/{{SUBPAGENAME}}</span>}}
}}
<b style="font-family:Segoe UI Light;color:#DE5D83;letter-spacing:">You're still here? That's quite unexpected.</b>
</div>
</div>
{{Babel|vi-4|la-3|ca-3|ga-2|tl-2|gd-2|en-1|ain-1|zh-1|ja-1}}
Xem thêm: [[User:Hiyuune/Task|Task]], [[User:Hiyuune/Quicknote|Quicknote]].
[[Special:RandomInCategory/Trang có đề mục ngôn ngữ|Nhấn vào đây để xem mục từ bất kỳ]].
Gadget nhập từ Wiktionary tiếng Anh (test):
*[[User:Hiyuune/Gadget-EditHere.js|Gadget-EditHere.js]].
*[[User:Hiyuune/Gadget-popups.js|Gadget-popups.js]].
*[[User:Hiyuune/Gadget-PagePreviews.js|Gadget-PagePreviews.js]].
*[[User:Hiyuune/Gadget-JumpToError.js|Gadget-JumpToError.js]].
95qilzm4y5izjbf4hazqxm2k3rso72q
kơi
0
313291
2569919
2180056
2026-10-12T14:38:43Z
WhoAlone
40420
2569919
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/kəːj/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} [[lưng]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
{{-aav-tam-}}
{{-noun-}}
{{head|aav-tam|Danh từ}}
# Nửa trên của [[lưng]].
{{-ref-}}
* Phan Trần Công (2017). Tương ứng từ vựng và mối quan hệ giữa các ngôn ngữ trong nhóm Bahnar Nam. Tạp chí Phát triển Khoa học và Công nghệ: Chuyên san Khoa học xã hội và Nhân văn, tập 1, số 4, 2017.
3b2uki9uqc07l1eyn9p3z7mh3urgfw2
Thành viên:TienMinh-mun6xnChing/Các mục từ đã tạo
2
317919
2570007
2569878
2026-10-12T16:20:41Z
TienMinh-mun6xnChing
57893
/* */
2570007
wikitext
text/x-wiki
Có thể xem: https://xtools.wmflabs.org/pages/vi.wiktionary.org/DefenderTienMinh07/all?uselang=vi (223 mục từ)
#tinh linh
#ấn triện
#phong ấn
#phỏng tác
#hiến tế
#tấu sớ
#cố tổng
#mơ mẩn
#trí huệ
#huyền thuật
#ấn chương
#vệ úy
#biến âm
#bồ chính
#đại họa
#Lạc dân
#Lạc tướng
#(c)ương ngạnh
#cối tẩu
#lai hóa
#sứ đồ
#lai hóa
#xuất nguồn
#hồi tỵ
#kỹ trị
#uổng công
#bình thủy
#mất mật
#bươn trải
#ế độ (từ lóng)
#gượng sống
#đồ họa
#chính ủy
#ma pháp
#huyền thuật
#lùm xùm
#thủy quái
#bêu rếu
#thủy tổ
#đại tướng
#đại (trùng) tu
#Lạc dân
#uyên thúy
#chia trí
#công đạo
#hưng cảm
#xị mặt
#miễn thị thực
#miễn nhiễm
#tia số
#trục số
#bén rễ
#đại siêu thị
#tạm ngừng
#tạm hoãn
#chấp điếu
#cúng điếu
#song tiện
#cạn phước
#phước đức
#phước báu
#công đức vô lượng
#tích đức
#khăn tang
#lễ tang
#kết trái
#ươm mầm
#hưu miên
#tùy miên
#kỳ án
#tạo phước
#phước lành
#trai tân
#xì trây (từ lóng)
#dương hoà
#ngồng tỏi
#nhân tướng học
#bá khí
#miễn tội
#miễn truy tố
#miễn tố
#lãnh án
#lĩnh án
#tép tỏi
#búp măng
#đại thánh
#độ lớn
#tam giác vuông cân
#đun sôi
#trại ca
#tót vót
#song ca
#hòa ca
#khúc ca
#khúc nhạc
#điệp từ
#điệp cấu trúc
#tốc độ căn quân phương
#hoạt náo
#làm công ăn lương
#gầm cầu
#trụ cầu
#phạt nóng
#phạt nguội
#tin nóng
#đại án
#lực lượng chức năng
#người lính
#hình thoi
#vị thần
#đại nhân
#viên quan
#lương sư
#hưng quốc
#quy án
#láo liếng
#trật khớp
#khuỷu tay
#khớp gối
#khuỷu chân
#chia hết
#nhân tử
#ước (số) chung lớn nhất
#bội (số) chung nhỏ nhất
#gia tốc trọng trường
#mu bàn tay
#mu bàn chân
#lòng bàn chân
#lòng se điếu
#viêm da cơ địa
#chàm thể tạng
#bù giờ
#ngũ vị hương
#diệt khẩu
#cửu vĩ hồ
#tụ đề
#tụ ngậm
#cường kinh
#thống kinh
#bế kinh
#mạng nội bộ
#toàn thư
#biên độ dao động
#độ lệch chuẩn
#độ lệch tiêu chuẩn
#tân sinh viên
#mất tiêu
#láo lường
#phông bạt
#khẩu ước
#kiếm sĩ
#máy kiểm kho
#nợ công
#vốn mồi
#mồi xả
#kim bài
#xá lị
#người đồng mình
#đại đội
#phó đại đội trưởng
#đại đội phó
#thăng cấp
#truyền chức
#loa phóng thanh
#loa phát thanh
#áng văn
#thiên cổ kỳ bút
#áng thiên cổ kỳ bút
#thiên cổ hùng văn
#phòng vệ chính đáng
#tình thế cấp thiết
#dân quân tự vệ
#dân quân thường trực
#xung đột lợi ích
#cảm tử quân
#quyết tử quân
#quân cảm tử
#trại giáo dưỡng
#trại cải tạo
#khu đô thị
#chủ đầu tư
#ngân lượng
#quỹ mở
#quỹ đóng
#nhà đầu tư
#cục nợ (từ lóng)
#gánh nặng
#xoáy thuận
#xoáy tụ
#giông lốc
#giông tố
#xì nách
#mỳ gói
#cá viên (xem nhật trình [https://vi.wiktionary.org/w/index.php?title=%C4%90%E1%BA%B7c_bi%E1%BB%87t:Nh%E1%BA%ADt_tr%C3%ACnh&logid=362987 này])
mvb6z16bnf3v9r1v42f40npvc0a1gjl
2570030
2570007
2026-10-12T17:03:15Z
TienMinh-mun6xnChing
57893
/* */
2570030
wikitext
text/x-wiki
Có thể xem: https://xtools.wmflabs.org/pages/vi.wiktionary.org/DefenderTienMinh07/all?uselang=vi (223 mục từ)
#tinh linh
#ấn triện
#phong ấn
#phỏng tác
#hiến tế
#tấu sớ
#cố tổng
#mơ mẩn
#trí huệ
#huyền thuật
#ấn chương
#vệ úy
#biến âm
#bồ chính
#đại họa
#Lạc dân
#Lạc tướng
#(c)ương ngạnh
#cối tẩu
#lai hóa
#sứ đồ
#lai hóa
#xuất nguồn
#hồi tỵ
#kỹ trị
#uổng công
#bình thủy
#mất mật
#bươn trải
#ế độ (từ lóng)
#gượng sống
#đồ họa
#chính ủy
#ma pháp
#huyền thuật
#lùm xùm
#thủy quái
#bêu rếu
#thủy tổ
#đại tướng
#đại (trùng) tu
#Lạc dân
#uyên thúy
#chia trí
#công đạo
#hưng cảm
#xị mặt
#miễn thị thực
#miễn nhiễm
#tia số
#trục số
#bén rễ
#đại siêu thị
#tạm ngừng
#tạm hoãn
#chấp điếu
#cúng điếu
#song tiện
#cạn phước
#phước đức
#phước báu
#công đức vô lượng
#tích đức
#khăn tang
#lễ tang
#kết trái
#ươm mầm
#hưu miên
#tùy miên
#kỳ án
#tạo phước
#phước lành
#trai tân
#xì trây (từ lóng)
#dương hoà
#ngồng tỏi
#nhân tướng học
#bá khí
#miễn tội
#miễn truy tố
#miễn tố
#lãnh án
#lĩnh án
#tép tỏi
#búp măng
#đại thánh
#độ lớn
#tam giác vuông cân
#đun sôi
#trại ca
#tót vót
#song ca
#hòa ca
#khúc ca
#khúc nhạc
#điệp từ
#điệp cấu trúc
#tốc độ căn quân phương
#hoạt náo
#làm công ăn lương
#gầm cầu
#trụ cầu
#phạt nóng
#phạt nguội
#tin nóng
#đại án
#lực lượng chức năng
#người lính
#hình thoi
#vị thần
#đại nhân
#viên quan
#lương sư
#hưng quốc
#quy án
#láo liếng
#trật khớp
#khuỷu tay
#khớp gối
#khuỷu chân
#chia hết
#nhân tử
#ước (số) chung lớn nhất
#bội (số) chung nhỏ nhất
#gia tốc trọng trường
#mu bàn tay
#mu bàn chân
#lòng bàn chân
#lòng se điếu
#viêm da cơ địa
#chàm thể tạng
#bù giờ
#ngũ vị hương
#diệt khẩu
#cửu vĩ hồ
#tụ đề
#tụ ngậm
#cường kinh
#thống kinh
#bế kinh
#mạng nội bộ
#toàn thư
#biên độ dao động
#độ lệch chuẩn
#độ lệch tiêu chuẩn
#tân sinh viên
#mất tiêu
#láo lường
#phông bạt
#khẩu ước
#kiếm sĩ
#máy kiểm kho
#nợ công
#vốn mồi
#mồi xả
#kim bài
#xá lị
#người đồng mình
#đại đội
#phó đại đội trưởng
#đại đội phó
#thăng cấp
#truyền chức
#loa phóng thanh
#loa phát thanh
#áng văn
#thiên cổ kỳ bút
#áng thiên cổ kỳ bút
#thiên cổ hùng văn
#phòng vệ chính đáng
#tình thế cấp thiết
#dân quân tự vệ
#dân quân thường trực
#xung đột lợi ích
#cảm tử quân
#quyết tử quân
#quân cảm tử
#trại giáo dưỡng
#trại cải tạo
#khu đô thị
#chủ đầu tư
#ngân lượng
#quỹ mở
#quỹ đóng
#nhà đầu tư
#cục nợ (từ lóng)
#gánh nặng
#xoáy thuận
#xoáy tụ
#giông lốc
#giông tố
#xì nách
#mỳ gói
#cá viên
#hằng đẳng thức
k11b76egwqzd76hctwlc7wes7jqrxfg
2570093
2570030
2026-10-13T07:11:54Z
TienMinh-mun6xnChing
57893
/* */
2570093
wikitext
text/x-wiki
Có thể xem: https://xtools.wmflabs.org/pages/vi.wiktionary.org/DefenderTienMinh07/all?uselang=vi (223 mục từ)
#tinh linh
#ấn triện
#phong ấn
#phỏng tác
#hiến tế
#tấu sớ
#cố tổng
#mơ mẩn
#trí huệ
#huyền thuật
#ấn chương
#vệ úy
#biến âm
#bồ chính
#đại họa
#Lạc dân
#Lạc tướng
#(c)ương ngạnh
#cối tẩu
#lai hóa
#sứ đồ
#lai hóa
#xuất nguồn
#hồi tỵ
#kỹ trị
#uổng công
#bình thủy
#mất mật
#bươn trải
#ế độ (từ lóng)
#gượng sống
#đồ họa
#chính ủy
#ma pháp
#huyền thuật
#lùm xùm
#thủy quái
#bêu rếu
#thủy tổ
#đại tướng
#đại (trùng) tu
#Lạc dân
#uyên thúy
#chia trí
#công đạo
#hưng cảm
#xị mặt
#miễn thị thực
#miễn nhiễm
#tia số
#trục số
#bén rễ
#đại siêu thị
#tạm ngừng
#tạm hoãn
#chấp điếu
#cúng điếu
#song tiện
#cạn phước
#phước đức
#phước báu
#công đức vô lượng
#tích đức
#khăn tang
#lễ tang
#kết trái
#ươm mầm
#hưu miên
#tùy miên
#kỳ án
#tạo phước
#phước lành
#trai tân
#xì trây (từ lóng)
#dương hoà
#ngồng tỏi
#nhân tướng học
#bá khí
#miễn tội
#miễn truy tố
#miễn tố
#lãnh án
#lĩnh án
#tép tỏi
#búp măng
#đại thánh
#độ lớn
#tam giác vuông cân
#đun sôi
#trại ca
#tót vót
#song ca
#hòa ca
#khúc ca
#khúc nhạc
#điệp từ
#điệp cấu trúc
#tốc độ căn quân phương
#hoạt náo
#làm công ăn lương
#gầm cầu
#trụ cầu
#phạt nóng
#phạt nguội
#tin nóng
#đại án
#lực lượng chức năng
#người lính
#hình thoi
#vị thần
#đại nhân
#viên quan
#lương sư
#hưng quốc
#quy án
#láo liếng
#trật khớp
#khuỷu tay
#khớp gối
#khuỷu chân
#chia hết
#nhân tử
#ước (số) chung lớn nhất
#bội (số) chung nhỏ nhất
#gia tốc trọng trường
#mu bàn tay
#mu bàn chân
#lòng bàn chân
#lòng se điếu
#viêm da cơ địa
#chàm thể tạng
#bù giờ
#ngũ vị hương
#diệt khẩu
#cửu vĩ hồ
#tụ đề
#tụ ngậm
#cường kinh
#thống kinh
#bế kinh
#mạng nội bộ
#toàn thư
#biên độ dao động
#độ lệch chuẩn
#độ lệch tiêu chuẩn
#tân sinh viên
#mất tiêu
#láo lường
#phông bạt
#khẩu ước
#kiếm sĩ
#máy kiểm kho
#nợ công
#vốn mồi
#mồi xả
#kim bài
#xá lị
#người đồng mình
#đại đội
#phó đại đội trưởng
#đại đội phó
#thăng cấp
#truyền chức
#loa phóng thanh
#loa phát thanh
#áng văn
#thiên cổ kỳ bút
#áng thiên cổ kỳ bút
#thiên cổ hùng văn
#phòng vệ chính đáng
#tình thế cấp thiết
#dân quân tự vệ
#dân quân thường trực
#xung đột lợi ích
#cảm tử quân
#quyết tử quân
#quân cảm tử
#trại giáo dưỡng
#trại cải tạo
#khu đô thị
#chủ đầu tư
#ngân lượng
#quỹ mở
#quỹ đóng
#nhà đầu tư
#cục nợ (từ lóng)
#gánh nặng
#xoáy thuận
#xoáy tụ
#giông lốc
#giông tố
#xì nách
#mỳ gói
#cá viên
#hằng đẳng thức
#báo đời (thông tục)
#mắng yêu
kaesgwiybaxf65p7lcxpl7bpw0l0551
2570112
2570093
2026-10-13T07:43:59Z
TienMinh-mun6xnChing
57893
/* */
2570112
wikitext
text/x-wiki
Có thể xem: https://xtools.wmflabs.org/pages/vi.wiktionary.org/DefenderTienMinh07/all?uselang=vi (223 mục từ)
#tinh linh
#ấn triện
#phong ấn
#phỏng tác
#hiến tế
#tấu sớ
#cố tổng
#mơ mẩn
#trí huệ
#huyền thuật
#ấn chương
#vệ úy
#biến âm
#bồ chính
#đại họa
#Lạc dân
#Lạc tướng
#(c)ương ngạnh
#cối tẩu
#lai hóa
#sứ đồ
#lai hóa
#xuất nguồn
#hồi tỵ
#kỹ trị
#uổng công
#bình thủy
#mất mật
#bươn trải
#ế độ (từ lóng)
#gượng sống
#đồ họa
#chính ủy
#ma pháp
#huyền thuật
#lùm xùm
#thủy quái
#bêu rếu
#thủy tổ
#đại tướng
#đại (trùng) tu
#Lạc dân
#uyên thúy
#chia trí
#công đạo
#hưng cảm
#xị mặt
#miễn thị thực
#miễn nhiễm
#tia số
#trục số
#bén rễ
#đại siêu thị
#tạm ngừng
#tạm hoãn
#chấp điếu
#cúng điếu
#song tiện
#cạn phước
#phước đức
#phước báu
#công đức vô lượng
#tích đức
#khăn tang
#lễ tang
#kết trái
#ươm mầm
#hưu miên
#tùy miên
#kỳ án
#tạo phước
#phước lành
#trai tân
#xì trây (từ lóng)
#dương hoà
#ngồng tỏi
#nhân tướng học
#bá khí
#miễn tội
#miễn truy tố
#miễn tố
#lãnh án
#lĩnh án
#tép tỏi
#búp măng
#đại thánh
#độ lớn
#tam giác vuông cân
#đun sôi
#trại ca
#tót vót
#song ca
#hòa ca
#khúc ca
#khúc nhạc
#điệp từ
#điệp cấu trúc
#tốc độ căn quân phương
#hoạt náo
#làm công ăn lương
#gầm cầu
#trụ cầu
#phạt nóng
#phạt nguội
#tin nóng
#đại án
#lực lượng chức năng
#người lính
#hình thoi
#vị thần
#đại nhân
#viên quan
#lương sư
#hưng quốc
#quy án
#láo liếng
#trật khớp
#khuỷu tay
#khớp gối
#khuỷu chân
#chia hết
#nhân tử
#ước (số) chung lớn nhất
#bội (số) chung nhỏ nhất
#gia tốc trọng trường
#mu bàn tay
#mu bàn chân
#lòng bàn chân
#lòng se điếu
#viêm da cơ địa
#chàm thể tạng
#bù giờ
#ngũ vị hương
#diệt khẩu
#cửu vĩ hồ
#tụ đề
#tụ ngậm
#cường kinh
#thống kinh
#bế kinh
#mạng nội bộ
#toàn thư
#biên độ dao động
#độ lệch chuẩn
#độ lệch tiêu chuẩn
#tân sinh viên
#mất tiêu
#láo lường
#phông bạt
#khẩu ước
#kiếm sĩ
#máy kiểm kho
#nợ công
#vốn mồi
#mồi xả
#kim bài
#xá lị
#người đồng mình
#đại đội
#phó đại đội trưởng
#đại đội phó
#thăng cấp
#truyền chức
#loa phóng thanh
#loa phát thanh
#áng văn
#thiên cổ kỳ bút
#áng thiên cổ kỳ bút
#thiên cổ hùng văn
#phòng vệ chính đáng
#tình thế cấp thiết
#dân quân tự vệ
#dân quân thường trực
#xung đột lợi ích
#cảm tử quân
#quyết tử quân
#quân cảm tử
#trại giáo dưỡng
#trại cải tạo
#khu đô thị
#chủ đầu tư
#ngân lượng
#quỹ mở
#quỹ đóng
#nhà đầu tư
#cục nợ (từ lóng)
#gánh nặng
#xoáy thuận
#xoáy tụ
#giông lốc
#giông tố
#xì nách
#mỳ gói
#cá viên
#hằng đẳng thức
#báo đời (thông tục)
#mắng yêu
#khinh công
#chân ái
#đa nhân cách
#vĩ cuồng
58gc6cmh9j57ld8htnj5ma7d4jc0v7t
2570113
2570112
2026-10-13T07:44:49Z
TienMinh-mun6xnChing
57893
/* */
2570113
wikitext
text/x-wiki
Có thể xem: https://xtools.wmflabs.org/pages/vi.wiktionary.org/DefenderTienMinh07/all?uselang=vi (223 mục từ)
#tinh linh
#ấn triện
#phong ấn
#phỏng tác
#hiến tế
#tấu sớ
#cố tổng
#mơ mẩn
#trí huệ
#huyền thuật
#ấn chương
#vệ úy
#ái kỷ (bệnh lý)
#biến âm
#bồ chính
#đại họa
#Lạc dân
#Lạc tướng
#(c)ương ngạnh
#cối tẩu
#lai hóa
#sứ đồ
#lai hóa
#xuất nguồn
#hồi tỵ
#kỹ trị
#uổng công
#bình thủy
#mất mật
#bươn trải
#ế độ (từ lóng)
#gượng sống
#đồ họa
#chính ủy
#ma pháp
#huyền thuật
#lùm xùm
#thủy quái
#bêu rếu
#thủy tổ
#đại tướng
#đại (trùng) tu
#Lạc dân
#uyên thúy
#chia trí
#công đạo
#hưng cảm
#xị mặt
#miễn thị thực
#miễn nhiễm
#tia số
#trục số
#bén rễ
#đại siêu thị
#tạm ngừng
#tạm hoãn
#chấp điếu
#cúng điếu
#song tiện
#cạn phước
#phước đức
#phước báu
#công đức vô lượng
#tích đức
#khăn tang
#lễ tang
#kết trái
#ươm mầm
#hưu miên
#tùy miên
#kỳ án
#tạo phước
#phước lành
#trai tân
#xì trây (từ lóng)
#dương hoà
#ngồng tỏi
#nhân tướng học
#bá khí
#miễn tội
#miễn truy tố
#miễn tố
#lãnh án
#lĩnh án
#tép tỏi
#búp măng
#đại thánh
#độ lớn
#tam giác vuông cân
#đun sôi
#trại ca
#tót vót
#song ca
#hòa ca
#khúc ca
#khúc nhạc
#điệp từ
#điệp cấu trúc
#tốc độ căn quân phương
#hoạt náo
#làm công ăn lương
#gầm cầu
#trụ cầu
#phạt nóng
#phạt nguội
#tin nóng
#đại án
#lực lượng chức năng
#người lính
#hình thoi
#vị thần
#đại nhân
#viên quan
#lương sư
#hưng quốc
#quy án
#láo liếng
#trật khớp
#khuỷu tay
#khớp gối
#khuỷu chân
#chia hết
#nhân tử
#ước (số) chung lớn nhất
#bội (số) chung nhỏ nhất
#gia tốc trọng trường
#mu bàn tay
#mu bàn chân
#lòng bàn chân
#lòng se điếu
#viêm da cơ địa
#chàm thể tạng
#bù giờ
#ngũ vị hương
#diệt khẩu
#cửu vĩ hồ
#tụ đề
#tụ ngậm
#cường kinh
#thống kinh
#bế kinh
#mạng nội bộ
#toàn thư
#biên độ dao động
#độ lệch chuẩn
#độ lệch tiêu chuẩn
#tân sinh viên
#mất tiêu
#láo lường
#phông bạt
#khẩu ước
#kiếm sĩ
#máy kiểm kho
#nợ công
#vốn mồi
#mồi xả
#kim bài
#xá lị
#người đồng mình
#đại đội
#phó đại đội trưởng
#đại đội phó
#thăng cấp
#truyền chức
#loa phóng thanh
#loa phát thanh
#áng văn
#thiên cổ kỳ bút
#áng thiên cổ kỳ bút
#thiên cổ hùng văn
#phòng vệ chính đáng
#tình thế cấp thiết
#dân quân tự vệ
#dân quân thường trực
#xung đột lợi ích
#cảm tử quân
#quyết tử quân
#quân cảm tử
#trại giáo dưỡng
#trại cải tạo
#khu đô thị
#chủ đầu tư
#ngân lượng
#quỹ mở
#quỹ đóng
#nhà đầu tư
#cục nợ (từ lóng)
#gánh nặng
#xoáy thuận
#xoáy tụ
#giông lốc
#giông tố
#xì nách
#mỳ gói
#cá viên
#hằng đẳng thức
#báo đời (thông tục)
#mắng yêu
#khinh công
#chân ái
#đa nhân cách
#vĩ cuồng
#ái nhi (bệnh lý)
9tlt2dyafg1mbibeata8vb3zf3trw6t
2570125
2570113
2026-10-13T08:00:21Z
TienMinh-mun6xnChing
57893
/* */
2570125
wikitext
text/x-wiki
Có thể xem: https://xtools.wmflabs.org/pages/vi.wiktionary.org/DefenderTienMinh07/all?uselang=vi (223 mục từ)
#tinh linh
#ấn triện
#phong ấn
#phỏng tác
#hiến tế
#tấu sớ
#cố tổng
#mơ mẩn
#trí huệ
#huyền thuật
#ấn chương
#vệ úy
#ái kỷ (bệnh lý)
#biến âm
#bồ chính
#đại họa
#Lạc dân
#Lạc tướng
#(c)ương ngạnh
#cối tẩu
#lai hóa
#sứ đồ
#lai hóa
#xuất nguồn
#hồi tỵ
#kỹ trị
#uổng công
#bình thủy
#mất mật
#bươn trải
#ế độ (từ lóng)
#gượng sống
#đồ họa
#chính ủy
#ma pháp
#huyền thuật
#lùm xùm
#thủy quái
#bêu rếu
#thủy tổ
#đại tướng
#đại (trùng) tu
#Lạc dân
#uyên thúy
#chia trí
#công đạo
#hưng cảm
#xị mặt
#miễn thị thực
#miễn nhiễm
#tia số
#trục số
#bén rễ
#đại siêu thị
#tạm ngừng
#tạm hoãn
#chấp điếu
#cúng điếu
#song tiện
#cạn phước
#phước đức
#phước báu
#công đức vô lượng
#tích đức
#khăn tang
#lễ tang
#kết trái
#ươm mầm
#hưu miên
#tùy miên
#kỳ án
#tạo phước
#phước lành
#trai tân
#xì trây (từ lóng)
#dương hoà
#ngồng tỏi
#nhân tướng học
#bá khí
#miễn tội
#miễn truy tố
#miễn tố
#lãnh án
#lĩnh án
#tép tỏi
#búp măng
#đại thánh
#độ lớn
#tam giác vuông cân
#đun sôi
#trại ca
#tót vót
#song ca
#hòa ca
#khúc ca
#khúc nhạc
#điệp từ
#điệp cấu trúc
#tốc độ căn quân phương
#hoạt náo
#làm công ăn lương
#gầm cầu
#trụ cầu
#phạt nóng
#phạt nguội
#tin nóng
#đại án
#lực lượng chức năng
#người lính
#hình thoi
#vị thần
#đại nhân
#viên quan
#lương sư
#hưng quốc
#quy án
#láo liếng
#trật khớp
#khuỷu tay
#khớp gối
#khuỷu chân
#chia hết
#nhân tử
#ước (số) chung lớn nhất
#bội (số) chung nhỏ nhất
#gia tốc trọng trường
#mu bàn tay
#mu bàn chân
#lòng bàn chân
#lòng se điếu
#viêm da cơ địa
#chàm thể tạng
#bù giờ
#ngũ vị hương
#diệt khẩu
#cửu vĩ hồ
#tụ đề
#tụ ngậm
#cường kinh
#thống kinh
#bế kinh
#mạng nội bộ
#toàn thư
#biên độ dao động
#độ lệch chuẩn
#độ lệch tiêu chuẩn
#tân sinh viên
#mất tiêu
#láo lường
#phông bạt
#khẩu ước
#kiếm sĩ
#máy kiểm kho
#nợ công
#vốn mồi
#mồi xả
#kim bài
#xá lị
#người đồng mình
#đại đội
#phó đại đội trưởng
#đại đội phó
#thăng cấp
#truyền chức
#loa phóng thanh
#loa phát thanh
#áng văn
#thiên cổ kỳ bút
#áng thiên cổ kỳ bút
#thiên cổ hùng văn
#phòng vệ chính đáng
#tình thế cấp thiết
#dân quân tự vệ
#dân quân thường trực
#xung đột lợi ích
#cảm tử quân
#quyết tử quân
#quân cảm tử
#trại giáo dưỡng
#trại cải tạo
#khu đô thị
#chủ đầu tư
#ngân lượng
#quỹ mở
#quỹ đóng
#nhà đầu tư
#cục nợ (từ lóng)
#gánh nặng
#xoáy thuận
#xoáy tụ
#giông lốc
#giông tố
#xì nách
#mỳ gói
#cá viên
#hằng đẳng thức
#báo đời (thông tục)
#mắng yêu
#khinh công
#chân ái
#đa nhân cách
#vĩ cuồng
#ái nhi (bệnh lý)
#siêu liên kết
tgfivurdsbby1pa9b5wxdf1gm386vw3
2570127
2570125
2026-10-13T08:03:09Z
TienMinh-mun6xnChing
57893
Đã lùi lại sửa đổi [[Special:Diff/2570125|2570125]] của [[Special:Contributions/TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[User talk:TienMinh-mun6xnChing|thảo luận]])
2570127
wikitext
text/x-wiki
Có thể xem: https://xtools.wmflabs.org/pages/vi.wiktionary.org/DefenderTienMinh07/all?uselang=vi (223 mục từ)
#tinh linh
#ấn triện
#phong ấn
#phỏng tác
#hiến tế
#tấu sớ
#cố tổng
#mơ mẩn
#trí huệ
#huyền thuật
#ấn chương
#vệ úy
#ái kỷ (bệnh lý)
#biến âm
#bồ chính
#đại họa
#Lạc dân
#Lạc tướng
#(c)ương ngạnh
#cối tẩu
#lai hóa
#sứ đồ
#lai hóa
#xuất nguồn
#hồi tỵ
#kỹ trị
#uổng công
#bình thủy
#mất mật
#bươn trải
#ế độ (từ lóng)
#gượng sống
#đồ họa
#chính ủy
#ma pháp
#huyền thuật
#lùm xùm
#thủy quái
#bêu rếu
#thủy tổ
#đại tướng
#đại (trùng) tu
#Lạc dân
#uyên thúy
#chia trí
#công đạo
#hưng cảm
#xị mặt
#miễn thị thực
#miễn nhiễm
#tia số
#trục số
#bén rễ
#đại siêu thị
#tạm ngừng
#tạm hoãn
#chấp điếu
#cúng điếu
#song tiện
#cạn phước
#phước đức
#phước báu
#công đức vô lượng
#tích đức
#khăn tang
#lễ tang
#kết trái
#ươm mầm
#hưu miên
#tùy miên
#kỳ án
#tạo phước
#phước lành
#trai tân
#xì trây (từ lóng)
#dương hoà
#ngồng tỏi
#nhân tướng học
#bá khí
#miễn tội
#miễn truy tố
#miễn tố
#lãnh án
#lĩnh án
#tép tỏi
#búp măng
#đại thánh
#độ lớn
#tam giác vuông cân
#đun sôi
#trại ca
#tót vót
#song ca
#hòa ca
#khúc ca
#khúc nhạc
#điệp từ
#điệp cấu trúc
#tốc độ căn quân phương
#hoạt náo
#làm công ăn lương
#gầm cầu
#trụ cầu
#phạt nóng
#phạt nguội
#tin nóng
#đại án
#lực lượng chức năng
#người lính
#hình thoi
#vị thần
#đại nhân
#viên quan
#lương sư
#hưng quốc
#quy án
#láo liếng
#trật khớp
#khuỷu tay
#khớp gối
#khuỷu chân
#chia hết
#nhân tử
#ước (số) chung lớn nhất
#bội (số) chung nhỏ nhất
#gia tốc trọng trường
#mu bàn tay
#mu bàn chân
#lòng bàn chân
#lòng se điếu
#viêm da cơ địa
#chàm thể tạng
#bù giờ
#ngũ vị hương
#diệt khẩu
#cửu vĩ hồ
#tụ đề
#tụ ngậm
#cường kinh
#thống kinh
#bế kinh
#mạng nội bộ
#toàn thư
#biên độ dao động
#độ lệch chuẩn
#độ lệch tiêu chuẩn
#tân sinh viên
#mất tiêu
#láo lường
#phông bạt
#khẩu ước
#kiếm sĩ
#máy kiểm kho
#nợ công
#vốn mồi
#mồi xả
#kim bài
#xá lị
#người đồng mình
#đại đội
#phó đại đội trưởng
#đại đội phó
#thăng cấp
#truyền chức
#loa phóng thanh
#loa phát thanh
#áng văn
#thiên cổ kỳ bút
#áng thiên cổ kỳ bút
#thiên cổ hùng văn
#phòng vệ chính đáng
#tình thế cấp thiết
#dân quân tự vệ
#dân quân thường trực
#xung đột lợi ích
#cảm tử quân
#quyết tử quân
#quân cảm tử
#trại giáo dưỡng
#trại cải tạo
#khu đô thị
#chủ đầu tư
#ngân lượng
#quỹ mở
#quỹ đóng
#nhà đầu tư
#cục nợ (từ lóng)
#gánh nặng
#xoáy thuận
#xoáy tụ
#giông lốc
#giông tố
#xì nách
#mỳ gói
#cá viên
#hằng đẳng thức
#báo đời (thông tục)
#mắng yêu
#khinh công
#chân ái
#đa nhân cách
#vĩ cuồng
#ái nhi (bệnh lý)
9tlt2dyafg1mbibeata8vb3zf3trw6t
cá viên
0
318614
2569917
2569877
2026-10-12T14:37:16Z
TheHighFighter2
42988
/* Tiếng Việt */
2569917
wikitext
text/x-wiki
=={{langname|vi}}==
{{wikipedia}}
==={{section|etym}}===
Từ {{ghép|vi|cá|viên}}.
==={{section|pron}}===
{{vi-pron}}
==={{section|n}}===
{{vi-noun}}
# Đồ ăn vặt phổ biến được làm từ cá đã tách xương, [[xay nhuyễn]] và vo tròn lại thành viên.
#: {{ux|vi|'''Cá viên''' chiên.}}
===={{section|trans}}====
{{trans-top|Đồ ăn}}
* {{langname|en}}: {{t+|en|fishball}}
{{trans-bottom}}
{{C|vi|Thực phẩm}}
cm949fjcnl1yhmu83lr5ecrcgvkygvb
Mô đun:frp-headword
828
328351
2570076
2210727
2026-10-13T06:24:59Z
Hiyuune
50834
2570076
Scribunto
text/plain
-- Slight modification of Module:fr-headword
local export = {}
local pos_functions = {}
local concat = table.concat
local insert = table.insert
local remove = table.remove
local sort = table.sort
local lang = require("Module:languages").getByCode("frp")
local langname = lang:getCanonicalName()
local boolean = {type = "boolean"}
local list = {list = true}
local list_allow_holes = {list = true, allow_holes = true}
local suffix_categories = {
["adjectives"] = true,
["adverbs"] = true,
["nouns"] = true,
["verbs"] = true,
["prepositional phrases"] = true,
}
local function track(page)
require("Module:debug").track("frp-headword/" .. page)
return true
end
local function glossary_link(entry, text)
text = text or entry
return "[[Phụ lục:Từ điển thuật ngữ#" .. entry .. "|" .. text .. "]]"
end
-- mw.title.new() returns nil if there are weird chars in the pagename.
local function exists(pagename)
local title = mw.title.new(pagename)
return title and title.exists
end
local function check_exists(forms, cats, pos)
for _, form in ipairs(forms) do
if type(form) == "table" then
form = form.term
end
if not exists(form) then
insert(cats, pos .. " có liên kết đỏ trong dòng tên mục từ " .. langname)
return false
end
end
return true
end
local function make_plural(form, special)
local retval = require("Module:romance utilities").handle_multiword(form, special, make_plural)
if retval then
if #retval > 1 then
error("Lỗi nội bộ: Got multiple plurals from handle_multiword(): " .. concat(retval))
end
return retval[1]
end
if form:match("[sx]$") then
return form
elseif form:match("a$") then
return (form:gsub("a$", "es"))
else
return form .. "s"
end
end
local function make_feminine(form, special)
local retval = require("Module:romance utilities").handle_multiword(form, special, make_feminine)
if retval then
if #retval > 1 then
error("Lỗi nội bộ: Got multiple feminines from handle_multiword(): " .. concat(retval))
end
return retval[1]
end
if form:match("a$") then
return form
elseif form:match("o$") then
return (form:gsub("o$", "a"))
elseif form:match("êt$") then
return form .. "a"
elseif form:match("èt$") then
return form .. "a"
elseif form:match("ox$") then
return (form:gsub("ox$", "osa"))
end
return form .. "a"
end
-- For bot use
function export.make_feminine(frame)
local masc = frame.args[1] or error("bắt buộc phải có tham số đầu tiên (đối với giống đực).")
local special = frame.args[2]
return make_feminine(masc, special)
end
local function add_suffix(list, suffix, special)
local newlist = {}
for _, form in ipairs(list) do
if suffix == "s" then
form = make_plural(form, special)
elseif suffix == "e" then
form = make_feminine(form, special)
else
error("Lỗi nội bộ: Không rõ hậu tố '" .. suffix .. "'")
end
insert(newlist, form)
end
return newlist
end
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
local poscat = frame.args[1] or error("Từ loại không được chỉ rõ. Vui lòng cho qua tham số đầu tiên để gọi mô đun.")
local params = {
["head"] = list,
["splithyph"] = boolean,
["nolinkhead"] = boolean,
["pagename"] = true, -- for testing
}
local pos_data, param1_is_head, pos_func = pos_functions[poscat]
if pos_data then
local pos_params = pos_data.params
if pos_params then
for key, val in pairs(pos_params) do
params[key] = val
end
end
param1_is_head, pos_func = pos_data.param1_is_head, pos_data.func
end
local parargs = frame:getParent().args
local args = require("Module:parameters").process(parargs, params)
local subpage = args.pagename or mw.loadData("Module:headword/data").pagename
local heads = args["head"]
if param1_is_head and args[1] then
insert(heads, 1, args[1])
end
if args.nolinkhead then
if #heads == 0 then
heads = {subpage}
end
else
local auto_linked_head = require("Module:romance utilities").add_links_to_multiword_term(
subpage, args.splithyph)
if #heads == 0 then
heads = {auto_linked_head}
else
for _, head in ipairs(heads) do
if head == auto_linked_head then
track("redundant-head")
end
end
end
end
local data = {
lang = lang,
pos_category = poscat,
categories = {},
heads = heads,
no_redundant_head_cat = #args.head == 0,
genders = {},
inflections = {},
categories = {},
pagename = args.pagename,
subpage = subpage
}
if subpage:find("^%-") and suffix_categories[poscat] then
data.pos_category = "Hậu tố"
local singular_poscat = poscat:gsub("s$", "")
insert(data.categories, "Dạng hậu tố " .. singular_poscat .. " " .. langname)
end
if pos_func then
pos_func(args, data)
end
return require("Module:headword").full_headword(data)
end
local allowed_genders = {
["m"] = true,
["f"] = true,
["mf"] = true,
["mfbysense"] = true,
["mfequiv"] = true,
["gneut"] = true,
["m-p"] = true,
["f-p"] = true,
["mf-p"] = true,
["mfbysense-p"] = true,
["mfequiv-p"] = true,
["gneut-p"] = true,
}
local additional_allowed_pronoun_genders = {
["m-s"] = true,
["f-s"] = true,
["mf-s"] = true,
["p"] = true, -- mf-p doesn't make sense for e.g. [[iels]]/[[ielles]]
}
local function get_noun_pos(pos)
return {
params = {
[1] = true,
["g"] = list,
[2] = list,
["pqual"] = list_allow_holes,
["f"] = list,
["fqual"] = list_allow_holes,
["m"] = list,
["mqual"] = list_allow_holes,
["dim"] = list,
["dimqual"] = list_allow_holes,
},
func = function(args, data)
local lemma = data.subpage
local is_proper = pos == "Danh từ riêng"
if pos == "Danh từ số đếm" then
pos = "Số từ"
data.pos_category = "Số từ"
insert(data.categories, 1, "Số đếm " .. langname)
end
-- Gather genders
insert(data.genders, args[1])
for _, g in ipairs(args.g) do
insert(data.genders, g)
end
local function process_inflection(label, infls, quals)
infls.label = label
for i, infl in ipairs(infls) do
if quals[i] then
infls[i] = {term = infl, q = {quals[i]}}
end
end
end
-- Gather all the plural parameters from the numbered parameters.
local plurals = args[2]
-- Add categories for genders
if #data.genders == 0 then
insert(data.genders, "?")
end
local mode = nil
for _, g in ipairs(data.genders) do
if g == "m-p" or g == "f-p" or g =="mf-p" or g == "mfbysense-p" then
mode = "p"
end
if g == "?" and (is_proper or mw.title.getCurrentTitle().nsText == "Bản_mẫu") then
-- allow unknown gender in template example and proper nouns,
-- since there are currently so many proper nouns with
-- unspecified gender
elseif g and g ~= "" and not allowed_genders[g] then
error("Không rõ giống " .. langname .. ": " .. g)
end
end
-- Decide how to show the plurals
mode = mode or plurals[1]
local function insert_countable_cat()
insert(data.categories, pos .. " đếm được " .. langname)
end
local function insert_uncountable_cat()
-- Most proper nouns are uncountable, so don't create a category for them
if not is_proper then
insert(data.categories, pos .. " không đếm được " .. langname)
end
end
if mode == "!" then
-- Plural is not attested
insert(data.inflections, {label = "số nhiều chưa được chứng thực"})
insert(data.categories, pos .. " số nhiều chưa được chứng thực " .. langname)
elseif mode == "p" then
-- Plural-only noun, doesn't have a plural
insert(data.inflections, {label = "chỉ có số nhiều"})
insert(data.categories, "Danh từ chỉ có số nhiều " .. langname)
else
if mode == "?" then
-- Plural is unknown
remove(plurals, 1) -- Remove the mode parameter
elseif mode == "-" then
-- Uncountable noun; may occasionally have a plural
remove(plurals, 1) -- Remove the mode parameter
insert_uncountable_cat()
-- If plural forms were given explicitly, then show "usually"
if #plurals > 0 then
track("count-uncount")
insert(data.inflections, {label = "thường " .. glossary_link("không đếm được")})
insert_countable_cat()
else
insert(data.inflections, {label = glossary_link("không đếm được")})
end
elseif mode == "~" then
-- Mixed countable/uncountable noun, always has a plural
remove(plurals, 1) -- Remove the mode parameter
insert(data.inflections, {label = glossary_link("đếm được") .. " và " .. glossary_link("không đếm được")})
insert_uncountable_cat()
insert_countable_cat()
-- If no plural was given, add a default one now
if #plurals == 0 then
plurals = {"+"}
end
elseif is_proper then
-- Default proper noun; uncountable unless plural(s) specified
if #plurals > 0 then
insert_countable_cat()
else
insert_uncountable_cat()
end
else
-- The default, always has a plural
insert_countable_cat()
-- If no plural was given, add a default one now
if #plurals == 0 then
plurals = {"+"}
end
end
-- Gather plurals, handling requests for default plurals
for i, pl in ipairs(plurals) do
if pl == "#" then
pl = lemma
elseif pl == "s" or pl == "x" then
pl = lemma .. pl
elseif pl == "+" then
pl = make_plural(lemma)
elseif pl:find("^%+") then
pl = require("Module:romance utilities").get_special_indicator(pl)
pl = make_plural(lemma, pl)
end
if not exists(pl) then
insert(data.categories, pos .. " có liên kết đỏ trong dòng tên mục từ " .. langname)
end
plurals[i] = pl
end
process_inflection("số nhiều", plurals, args["pqual"])
plurals.accel = {form = "p"}
plurals.request = true
-- Add the plural forms; do this in some cases even if no plurals
-- specified so we get a "please provide plural" message.
if mode ~= "-" and (not is_proper or mode) or #plurals > 0 then
insert(data.inflections, plurals)
end
end
local function insert_inflection(label, arg, process_arg)
local forms = args[arg]
if process_arg then
for i, form in ipairs(forms) do
forms[i] = process_arg(form)
end
end
process_inflection(label, forms, args[arg .. "qual"])
if #forms > 0 then
insert(data.inflections, forms)
check_exists(forms, data.categories, pos)
end
return forms
end
-- Add the feminine forms
local fems = insert_inflection("giống cái", "f", function(form)
-- Allow '#', 'e', '+', '+first', etc. for feminine.
if form == "#" then
return lemma
elseif form == "e" then
return lemma .. form
elseif form == "+" then
return make_feminine(lemma)
elseif form:find("^%+") then
form = require("Module:romance utilities").get_special_indicator(form)
return make_feminine(lemma, form)
else
return form
end
end)
fems.accel = {form = "f"}
-- Add the masculine forms
insert_inflection("giống đực", "m")
-- Add the diminutives
local dims = insert_inflection("giảm nhẹ nghĩa", "dim")
dims.accel = {form = "diminutive"}
end,
}
end
for _, noun_pos in ipairs { "Danh từ", "Danh từ riêng", "Danh từ số đếm" } do
pos_functions[noun_pos] = get_noun_pos(noun_pos)
end
local function get_pronoun_pos()
return {
params = {
["head"] = list,
[1] = {alias_of = "g", list = false},
["g"] = list,
["f"] = list,
["fqual"] = list_allow_holes,
["m"] = list,
["mqual"] = list_allow_holes,
["mv"] = list,
["mvqual"] = list_allow_holes,
["fp"] = list,
["fpqual"] = list_allow_holes,
["mp"] = list,
["mpqual"] = list_allow_holes,
["p"] = list,
["pqual"] = list_allow_holes,
["type"] = list,
},
func = function(args, data)
-- Gather genders
data.genders = args.g
local function process_inflection(label, infls, quals)
infls.label = label
for i, infl in ipairs(infls) do
if quals[i] then
infls[i] = {term = infl, q = {quals[i]}}
end
end
end
-- Validate/canonicalize genders
for _, g in ipairs(data.genders) do
if g == "?" and mw.title.getCurrentTitle().nsText == "Bản_mẫu" then
-- allow unknown gender in template example
elseif g == "?" then
-- FIXME, remove this branch once we’ve added the required genders
track("missing-pron-gender")
elseif g and not allowed_genders[g] and not additional_allowed_pronoun_genders[g] then
error("Không rõ giống " .. langname .. ": " .. g)
end
end
-- Gather all inflections.
process_inflection("giống đực", args["m"], args["mqual"])
process_inflection("giống đực số ít đứng trước nguyên âm", args["mv"], args["mvqual"])
process_inflection("giống cái", args["f"], args["fqual"])
process_inflection("giống đực số nhiều", args["mp"], args["mpqual"])
process_inflection("giống cái số nhiều", args["fp"], args["fpqual"])
process_inflection("số nhiều", args["p"], args["pqual"])
-- Add the inflections
if #args["m"] > 0 then
insert(data.inflections, args["m"])
end
if #args["f"] > 0 then
insert(data.inflections, args["f"])
end
if #args["mp"] > 0 then
insert(data.inflections, args["mp"])
end
if #args["fp"] > 0 then
insert(data.inflections, args["fp"])
end
if #args["p"] > 0 then
insert(data.inflections, args["p"])
end
-- Categorize by "type"
local pos = "Đại từ"
for _, ty in ipairs(args.type) do
local category
if ty == "indefinite" then
category = "bất định"
elseif ty == "interrogative" then
category = "nghi vấn"
elseif ty == "personal" then
category = "nhân xưng"
elseif ty == "possessive" then
category = "sở hữu"
elseif ty == "reflexive" then
category = "phản thân"
elseif ty == "relative" then
category = "quan hệ"
end
if category then
if type(category) == "table" then
for _, cat in ipairs(category) do
insert(data.categories, pos .. " " .. cat .. " " .. langname)
end
else
insert(data.categories, pos .. " " .. category .. " " .. langname)
end
end
end
end,
}
end
pos_functions["Đại từ"] = get_pronoun_pos(true)
pos_functions["Từ hạn định"] = get_pronoun_pos(true)
local function get_misc_pos()
return {
param1_is_head = true,
params = {
[1] = true,
},
func = function(args, data)
end,
}
end
pos_functions["Phó từ"] = get_misc_pos()
pos_functions["Giới từ"] = get_misc_pos()
pos_functions["Cụm từ"] = get_misc_pos()
pos_functions["Cụm giới từ"] = get_misc_pos()
pos_functions["Tục ngữ"] = get_misc_pos()
pos_functions["Dấu câu"] = get_misc_pos()
pos_functions["Dấu phụ"] = get_misc_pos()
pos_functions["Thán từ"] = get_misc_pos()
pos_functions["Tiền tố"] = get_misc_pos()
pos_functions["Từ viết tắt"] = get_misc_pos()
local function do_adjective(pos)
return {
params = {
[1] = true,
["inv"] = boolean,
["sp"] = true, -- special indicator: "first", "first-last", etc.
["onlyg"] = true,
["m"] = list,
["mqual"] = list,
["mv"] = list,
["mvqual"] = list,
["f"] = list,
["fqual"] = list,
["mp"] = list,
["mpqual"] = list,
["fp"] = list,
["fpqual"] = list,
["p"] = list,
["pqual"] = list,
["current"] = list,
["comp"] = list,
["compqual"] = list,
["sup"] = list,
["supqual"] = list,
["intr"] = boolean,
},
func = function(args, data)
local lemma = data.subpage
if pos == "Tính từ số đếm" then
pos = "Số từ"
data.pos_category = "Số từ"
insert(data.categories, 1, "Số đếm " .. langname)
end
if pos ~= "Số từ" then
if args.onlyg == "p" or args.onlyg == "m-p" or args.onlyg == "f-p" then
insert(data.categories, "Danh từ chỉ có số nhiều " .. langname)
end
if args.onlyg == "s" or args.onlyg == "f-s" or args.onlyg == "f-s" then
insert(data.categories, "Danh từ chỉ có số ít " .. langname)
end
if args.onlyg then
insert(data.categories, pos .. " khiếm khuyết " .. langname)
end
end
local function process_inflection(label, arg, accel, get_default, explicit_default_only)
local default_val
local function default()
if default_val == nil then
if get_default then
default_val = get_default()
else
default_val = false
end
end
return default_val
end
local orig_infls = #args[arg] > 0 and args[arg] or explicit_default_only and {} or default() or {}
local infls = {}
if #orig_infls > 0 then
infls.label = label
infls.accel = accel and {form = accel} or nil
local quals = args[arg .. "qual"]
for i, infl in ipairs(orig_infls) do
if infl == "#" then
infl = lemma
elseif infl == "e" or infl == "s" or infl == "x" then
infl = lemma .. infl
elseif infl == "+" then
infl = default()
if not infl then
error("Can't use '+' with " .. arg .. "=; no default available")
end
end
if type(infl) == "table" then
for _, inf in ipairs(infl) do
if quals[i] then
insert(infls, {term = inf, q = {quals[i]}})
else
insert(infls, inf)
end
end
elseif quals[i] then
insert(infls, {term = infl, q = {quals[i]}})
else
insert(infls, infl)
end
end
insert(data.inflections, infls)
end
return infls
end
if args.sp and not require("Module:romance utilities").allowed_special_indicators[args.sp] then
local indicators = {}
for indic, _ in pairs(require("Module:romance utilities").allowed_special_indicators) do
insert(indicators, "'" .. indic .. "'")
end
sort(indicators)
error("Special inflection indicator beginning can only be " ..
mw.text.listToText(indicators) .. ": " .. args.sp)
end
local function get_current()
return #args.current > 0 and args.current or {data.subpage}
end
if args.onlyg == "p" then
insert(data.inflections, {label = "chỉ có số nhiều"})
if args[1] ~= "mf" then
-- Handle feminine plurals
process_inflection("giống cái số nhiều", "fp", "f|p")
end
elseif args.onlyg == "s" then
insert(data.inflections, {label = "chỉ có số ít"})
if not (args[1] == "mf" or #args.f == 0 and data.subpage:match("e$")) then
-- Handle feminines
process_inflection("giống cái số ít", "f", "f", function()
return add_suffix(get_current(), "e", args.sp)
end)
end
elseif args.onlyg == "m" then
insert(data.genders, "m")
insert(data.inflections, {label = "chỉ có giống đực"})
-- Handle masculine plurals
process_inflection("giống đực số nhiều", "mp", "m|p", function()
return add_suffix(get_current(), "s", args.sp)
end)
elseif args.onlyg == "f" then
insert(data.genders, "f")
insert(data.inflections, {label = "chỉ có giống cái"})
-- Handle feminine plurals
process_inflection("giống cái số nhiều", "fp", "f|p", function()
return add_suffix(get_current(), "s", args.sp)
end)
elseif args.onlyg then
insert(data.genders, args.onlyg)
insert(data.inflections, {label = "khiếm khuyết"})
else
-- Gather genders
local gender = args[1]
-- Default to mf if base form ends in -e and no feminine,
-- feminine plural or gender specified
if not gender and #args.f == 0 and #args.fp == 0 and data.subpage:match("e$")
and not data.subpage:find(" ", nil, true) then
gender = "mf"
end
if #args.current > 0 then
track("adj-current")
end
if args.intr then
insert(data.inflections, {label = glossary_link("nội động từ")})
insert(data.inflections, {label = "thường " .. glossary_link("không biến đổi")})
args.inv = true
elseif args.inv then
insert(data.inflections, {label = glossary_link("không biến đổi")})
end
-- Handle plurals of mf adjectives
if not args.inv and gender == "mf" then
process_inflection("số nhiều", "p", "p", function()
return add_suffix(get_current(), "s", args.sp)
end)
end
if not args.inv and gender ~= "mf" then
-- Handle masculine form if not same as lemma; e.g. [[sûr de soi]] with m=+, m2=sûr de lui
process_inflection("giống đực số ít", "m", "m|s",
function() return {data.subpage} end, "explicit default only")
-- Handle case of special masculine singular before vowel
process_inflection("giống đực số ít đứng trước nguyên âm", "mv", "m|s")
-- Handle feminines
local feminines = process_inflection("giống đực", "f", "f|s", function()
return add_suffix(get_current(), "e", args.sp)
end)
-- Handle masculine plurals
process_inflection("giống đực số nhiều", "mp", "m|p", function()
return add_suffix(get_current(), "s", args.sp)
end)
-- Handle feminine plurals
process_inflection("giống cái số nhiều", "fp", "f|p", function()
return add_suffix(feminines, "s", args.sp)
end)
end
end
-- Handle comparatives
process_inflection("comparative", "comp", "so sánh hơn")
-- Handle superlatives
process_inflection("superlative", "sup", "so sánh nhất")
-- Check existence
for _, infls in pairs(data.inflections) do
if not check_exists(infls, data.categories, pos) then
break
end
end
end,
}
end
pos_functions["Tính từ"] = do_adjective("Tính từ")
pos_functions["Phân từ quá khứ"] = do_adjective("Phân từ")
pos_functions["Tính từ số đếm"] = do_adjective("Tính từ số đếm")
pos_functions["Động từ"] = {
param1_is_head = true,
params = {
[1] = true,
["type"] = list,
},
func = function(args, data)
local pos = "Động từ"
for _, ty in ipairs(args.type) do
local category, label
if ty == "auxiliary" then
category = "trợ động từ"
elseif ty == "defective" then
category = "khiếm khuyết"
label = glossary_link("khiếm khuyết")
elseif ty == "impersonal" then
category = "phi nhân xưng"
label = glossary_link("phi nhân xưng")
elseif ty == "modal" then
category = "khiếm khuyết"
elseif ty == "reflexive" then
category = "phản thân"
-- elseif ty == "transitive" then
-- label = glossary_link("transitive")
-- category = "transitive"
-- elseif ty == "intransitive" then
-- label = glossary_link("intransitive")
-- category = "intransitive"
-- elseif ty == "ambitransitive" or ty == "ambi" then
-- category = {"transitive", "intransitive"}
-- label = glossary_link("transitive") .. " and " .. glossary_link("intransitive")
end
if category then
if type(category) == "table" then
for _, cat in ipairs(category) do
insert(data.categories, pos .. " " .. cat .. " " .. langname)
end
else
insert(data.categories, pos .. " " .. category .. " " .. langname)
end
end
if label then
insert(data.inflections, {label = label})
end
end
end,
}
pos_functions["Số từ không biến cách"] = {
params = {},
func = function(args, data)
data.pos_category = "Số từ"
insert(data.categories, "Số đếm " .. langname)
insert(data.categories, "Số từ không biến cách " .. langname)
insert(data.inflections, {label = glossary_link("không biến cách")})
end,
}
return export
at4km1h9ailylc9m6sfn3qi3a2470wo
កា សាឡាំង
0
330530
2569909
2461939
2026-10-12T14:29:30Z
WhoAlone
40420
2569909
wikitext
text/x-wiki
=={{langname|tpu}}==
==={{ĐM|pron}}===
* {{IPA4|tpu|/kaː salaŋ/}}
==={{ĐM|noun}}===
{{head|tpu|Danh từ}}
# [[cá]] [[lớn]] [[màu]] [[vàng]].
==={{ĐM|ref}}===
* [https://web.archive.org/web/20250207062711/https://www.webonary.org/tampuan-english/ ''Từ điển Tampuan - Anh''] tại Webonary.
{{c|tpu|Cá}}
8sa6j4xd9gbmuiulwt0qbgipn3gnbp4
កា តាបាគ់ អំហ្មោ
0
330531
2569913
2461938
2026-10-12T14:30:56Z
WhoAlone
40420
2569913
wikitext
text/x-wiki
=={{langname|tpu}}==
==={{ĐM|pron}}===
* {{IPA4|tpu|/kaː tapa̤ʔ ʔmhmao/}}
==={{ĐM|noun}}===
{{head|tpu|Danh từ}}
# Một loại [[cá]].
==={{ĐM|ref}}===
* [https://web.archive.org/web/20250207062711/https://www.webonary.org/tampuan-english/ ''Từ điển Tampuan - Anh''] tại Webonary.
{{c|tpu|Cá}}
eod2ai0jxlx06lacw6kzmvh0lliez6k
កា ហ្រឺម
0
330532
2569908
2461942
2026-10-12T14:29:26Z
WhoAlone
40420
2569908
wikitext
text/x-wiki
=={{langname|tpu}}==
==={{ĐM|pron}}===
* {{IPA4|tpu|/kaː hrəɨm/}}
==={{ĐM|noun}}===
{{head|tpu|Danh từ}}
# [[cá]] [[gai]].
==={{ĐM|ref}}===
* [https://web.archive.org/web/20250207062711/https://www.webonary.org/tampuan-english/ ''Từ điển Tampuan - Anh''] tại Webonary.
{{c|tpu|Cá}}
ow4bjlbcrmah28gt8fmo6ruz1s7d789
កា ហ្លា ជ្រី
0
330533
2569907
2461943
2026-10-12T14:27:22Z
WhoAlone
40420
2569907
wikitext
text/x-wiki
=={{langname|tpu}}==
==={{ĐM|pron}}===
* {{IPA4|tpu|/kaː hlaː cri̤ː/}}
==={{ĐM|noun}}===
{{head|tpu|Danh từ}}
# [[cá]] [[đỏ]].
==={{ĐM|ref}}===
* [https://web.archive.org/web/20250207062711/https://www.webonary.org/tampuan-english/ ''Từ điển Tampuan - Anh''] tại Webonary.
{{c|tpu|Cá}}
lluwezys1pak6j1g0f4b9iqpeuuf4q5
nyic
0
336540
2570041
2223752
2026-10-13T03:12:57Z
Hiyuune
50834
/* Cách phát âm */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2570041
wikitext
text/x-wiki
=={{langname|mji}}==
==={{ĐM|pron}}===
* {{IPA|mji|/n̠ʲi⁴²/}}
==={{ĐM|num}}===
{{head|mji|Số}}
# [[bảy]].
#:{{synonym|mji|kyĕtd}}
==={{ĐM|ref}}===
* {{R:mji:Linguaevum}}
7j7mpml4cjgc1xkm0w2ozzb6obc74tm
2570042
2570041
2026-10-13T03:13:09Z
Hiyuune
50834
/* Số từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2570042
wikitext
text/x-wiki
=={{langname|mji}}==
==={{ĐM|pron}}===
* {{IPA|mji|/n̠ʲi⁴²/}}
==={{ĐM|num}}===
{{head|mji|Số từ}}
# [[bảy]].
#:{{synonym|mji|kyĕtd}}
==={{ĐM|ref}}===
* {{R:mji:Linguaevum}}
twgbu9igt9zyislbrb4kwmn5fy29y89
sah
0
341203
2569916
2289213
2026-10-12T14:35:08Z
WhoAlone
40420
2569916
wikitext
text/x-wiki
=={{langname|lvi}}==
==={{ĐM|adj}}===
{{head|lvi|adj}}
# [[xong]].
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/sah/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} [[gùi]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
=={{langname|ren}}==
==={{ĐM|verb}}===
{{head|ren|Động từ}}
# [[cắt]].
#:{{synonym|ren|kĕt|chit|pŏt}}
j27xblt5rrygz68xkrcq945xi5ue5n3
Bản mẫu:Babel/style.css
10
342550
2570031
2325929
2026-10-13T02:51:20Z
Hiyuune
50834
2570031
sanitized-css
text/css
.babel-box {
float: left;
box-sizing: border-box;
border-style: solid;
border-width: 1px;
margin: 1px;
}
.babel-box-wrapper .babel-box {
width: calc(100% - 2px); /* subtract horizontal margin */
}
.babel-box table {
border-spacing: 0; /* replacement for cellspacing="0" */
}
.babel-box .babel-content {
width: 100%;
min-width: 238px;
height: 100%;
margin: 0;
}
.babel-box .babel-code {
width: 45px;
height: 45px;
text-align: center;
}
.babel-box .babel-text {
font-size: 8pt;
padding: 4pt;
line-height: 1.25em;
}
/* might consider palettizing at some point, but that will also change the appearance quite a bit. -- Surjection 2025-09-27 */
.babel-box.babel-0 { border-color: #FFB3B3; }
.babel-box.babel-0 .babel-content { background-color: #FFE0E8; }
.babel-box.babel-0 .babel-code { background-color: #FFB3B3; }
.babel-box.babel-1 { border-color: #C0C8FF; }
.babel-box.babel-1 .babel-content { background-color: #F0F8FF; }
.babel-box.babel-1 .babel-code { background-color: #C0C8FF; }
.babel-box.babel-2 { border-color: #77E0E8; }
.babel-box.babel-2 .babel-content { background-color: #D0F8FF; }
.babel-box.babel-2 .babel-code { background-color: #77E0E8; }
.babel-box.babel-3 { border-color: #99B3FF; }
.babel-box.babel-3 .babel-content { background-color: #E0E8FF; }
.babel-box.babel-3 .babel-code { background-color: #99B3FF; }
.babel-box.babel-4 { border-color: #FFFF00; }
.babel-box.babel-4 .babel-content { background-color: #FFFF99; }
.babel-box.babel-4 .babel-code { background-color: #FFFF00; }
.babel-box.babel-5 { border-color: #D6A6F0; }
.babel-box.babel-5 .babel-content { background-color: #F3E4FA; }
.babel-box.babel-5 .babel-code { background-color: #D6A6F0; }
.babel-box.babel-N { border-color: #6EF7A7; }
.babel-box.babel-N .babel-content { background-color: #C5FCDC; }
.babel-box.babel-N .babel-code { background-color: #6EF7A7; }
/* dark mode colors; styles need to be duplicated exactly between these two media blocks */
@media screen {
html.skin-theme-clientpref-night .babel-box .babel-code a { color: #3366EE; }
html.skin-theme-clientpref-night .babel-box.babel-0 { border-color: #FFB3B3; }
html.skin-theme-clientpref-night .babel-box.babel-0 .babel-content { background-color: #45212B; }
html.skin-theme-clientpref-night .babel-box.babel-0 .babel-code { color: #000000; }
html.skin-theme-clientpref-night .babel-box.babel-1 { border-color: #505BA6; }
html.skin-theme-clientpref-night .babel-box.babel-1 .babel-content { background-color: #1F2C38; }
html.skin-theme-clientpref-night .babel-box.babel-1 .babel-code { color: #000000; }
html.skin-theme-clientpref-night .babel-box.babel-2 { border-color: #489DA3; }
html.skin-theme-clientpref-night .babel-box.babel-2 .babel-content { background-color: #193439; }
html.skin-theme-clientpref-night .babel-box.babel-2 .babel-code { color: #000000; }
html.skin-theme-clientpref-night .babel-box.babel-3 { border-color: #405BA8; }
html.skin-theme-clientpref-night .babel-box.babel-3 .babel-content { background-color: #131D3A; }
html.skin-theme-clientpref-night .babel-box.babel-3 .babel-code { color: #000000; }
html.skin-theme-clientpref-night .babel-box.babel-4 { border-color: #666600; }
html.skin-theme-clientpref-night .babel-box.babel-4 .babel-content { background-color: #222200; }
html.skin-theme-clientpref-night .babel-box.babel-4 .babel-code { color: #000000; }
html.skin-theme-clientpref-night .babel-box.babel-5 { border-color: #D6A6F0; }
html.skin-theme-clientpref-night .babel-box.babel-5 .babel-content { background-color: #20062D; }
html.skin-theme-clientpref-night .babel-box.babel-5 .babel-code { color: #000000; }
html.skin-theme-clientpref-night .babel-box.babel-N { border-color: #33A161; }
html.skin-theme-clientpref-night .babel-box.babel-N .babel-content { background-color: #153222; }
html.skin-theme-clientpref-night .babel-box.babel-N .babel-code { color: #000000; }
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .babel-box .babel-code a { color: #3366EE; }
html.skin-theme-clientpref-os .babel-box.babel-0 { border-color: #FFB3B3; }
html.skin-theme-clientpref-os .babel-box.babel-0 .babel-content { background-color: #45212B; }
html.skin-theme-clientpref-os .babel-box.babel-0 .babel-code { color: #000000; }
html.skin-theme-clientpref-os .babel-box.babel-1 { border-color: #505BA6; }
html.skin-theme-clientpref-os .babel-box.babel-1 .babel-content { background-color: #1F2C38; }
html.skin-theme-clientpref-os .babel-box.babel-1 .babel-code { color: #000000; }
html.skin-theme-clientpref-os .babel-box.babel-2 { border-color: #489DA3; }
html.skin-theme-clientpref-os .babel-box.babel-2 .babel-content { background-color: #193439; }
html.skin-theme-clientpref-os .babel-box.babel-2 .babel-code { color: #000000; }
html.skin-theme-clientpref-os .babel-box.babel-3 { border-color: #405BA8; }
html.skin-theme-clientpref-os .babel-box.babel-3 .babel-content { background-color: #131D3A; }
html.skin-theme-clientpref-os .babel-box.babel-3 .babel-code { color: #000000; }
html.skin-theme-clientpref-os .babel-box.babel-4 { border-color: #666600; }
html.skin-theme-clientpref-os .babel-box.babel-4 .babel-content { background-color: #222200; }
html.skin-theme-clientpref-os .babel-box.babel-4 .babel-code { color: #000000; }
html.skin-theme-clientpref-os .babel-box.babel-5 { border-color: #D6A6F0; }
html.skin-theme-clientpref-os .babel-box.babel-5 .babel-content { background-color: #20062D; }
html.skin-theme-clientpref-os .babel-box.babel-5 .babel-code { color: #000000; }
html.skin-theme-clientpref-os .babel-box.babel-N { border-color: #33A161; }
html.skin-theme-clientpref-os .babel-box.babel-N .babel-content { background-color: #153222; }
html.skin-theme-clientpref-os .babel-box.babel-N .babel-code { color: #000000; }
}
h1bc5jldofsse17967e6run3kowvkos
Mô đun:Babel
828
358514
2570037
2280216
2026-10-13T03:05:45Z
Hiyuune
50834
cập nhật
2570037
Scribunto
text/plain
local export = {}
--[==[ intro: This module implements {{tl|Babel}}, using [[Module:Babel/data]]
and [[Special:PrefixIndex/Module:Babel/data/|its subpages]]
to store translated text. Further usage can be found at the
documentation page of {{tl|Babel}}. ]==]
local M = require("Module:module loader").init({
require = {
families = "Module:families",
languages = "Module:languages",
load = "Module:load",
pages = "Module:pages",
parameters = "Module:parameters",
scripts = "Module:scripts",
script_utilities = "Module:script utilities",
string_utilities = "Module:string utilities",
track = "Module:debug/track",
typing = "Module:type guard",
},
loadData = {
data = "Module:Babel/data",
},
})
local function is_userpage()
local title = mw.title.getCurrentTitle()
return title:inNamespace("User") and title.text == title.rootText
end
local function soft_error(key, message)
if is_userpage() then
M.track("Babel/" .. key)
end
return tostring(mw.html.create("span"):addClass("error"):wikitext(message))
end
local Code = M.typing.class "Code" {
lang = "string",
proficiency = "string",
script = "string?",
}
-- declaration is like that to hide from {{module documentation}}
Code.from = function(s)
local lang = s:gsub("-[023145N]$", "")
local proficiency = s:match("-([012345N])$") or "N"
local script = lang:match("-(%u%l+)$")
if script then
lang = lang:gsub("-%u%l+$", "")
end
return Code {
lang = lang,
proficiency = proficiency,
script = script,
}
end
Code.get_type = function(self)
local otype, object = next {
language = M.languages.getByCode(self.lang, nil, true) or
M.data.custom_codes[self.lang],
family = M.families.getByCode(self.lang),
programming = M.data.proglangs[M.string_utilities.title_case(self.lang)],
}
if object and object.fallback then
object = M.languages.getByCode(object.fallback)
end
if otype == "language" and object and object:inFamily("sgn") then
otype = "sign_language"
end
return otype, object
end
Code.get_fallback = function(self, object)
if not object.getFullCode then
return
end
local fallback = object:getFullCode()
if fallback ~= self.lang then
return Code.from(fallback)
end
end
Code.get_categories = function(self, otype)
local function cats(codes, plural)
-- meow
local ret = {}
for _, code in ipairs(codes) do
table.insert(ret, ("Thể loại:Thành viên%s %s-%s"):format(plural and "" or "", code, self.proficiency))
table.insert(ret, ("Thể loại:Thành viên%s %s"):format(plural and "" or "", code))
end
return ret
end
if self.script then
-- for example, ko-Kore should categorise as ko, ko-Kore, Kore
return cats { self.lang .. "-" .. self.script, self.lang, self.script }
elseif otype == "programming" then
return cats({ "who know " .. self.lang }, true)
else
return cats { self.lang }
end
end
Code.get_message = function(self, otype)
if otype == "language" or otype == "sign_language" then
local subpage = M.load.load_data("Module:Babel/data/" .. self.lang:sub(1, 1))
local code =
self.script
and ("%s-%s-%s"):format(self.lang, self.script, self.proficiency)
or ("%s-%s"):format(self.lang, self.proficiency)
local message = subpage[code]
if message then
local is_translated = true
return message, is_translated
end
elseif otype == "script" then
local message = M.data.script_messages[self.lang .. "-" .. self.proficiency]
if message then
return message
end
end
return M.data[otype .. "_proficiencies"][self.proficiency]
or soft_error("invalid proficiency", "Invalid proficiency: " .. self.proficiency)
end
local function format_message(m, params)
m = m:gsub("%$(%d)", function(n)
return params[tonumber(n)]
end)
return m
end
local function gender_message(m)
if m:find("{") then
m = m:gsub("{[^}]-}", function(arg)
local parts = {}
for part in arg:gmatch("[^/{}]+") do
table.insert(parts, part)
end
if not parts[1] then
return soft_error("malformed gender switch",
("Malformed gender switch in message: %s"):format(arg)
)
end
return mw.language.getContentLanguage()
:gender(mw.title.getCurrentTitle().rootText, parts)
end)
end
return m
end
local function special_table(code)
if not code then
return tostring(mw.html.create("div")
:css("text-align", "center")
:css("font-style", "italic")
:wikitext("Bạn chưa chỉ định ngôn ngữ. "
.. "Vui lòng xem [[Wiktionary:Ngôn ngữ sử dụng]] để biết thông tin."))
elseif code == "-" then
local div = mw.html.create("div"):css("float", "left"):css("margin", "2px")
local tbl = div:tag("table"):attr("cellspacing", "0"):css("width", "238px")
local row = tbl:tag("tr")
row:tag("td"):css("width", "45px"):css("height", "45px"):wikitext(" ")
row:tag("td"):css("font-size", "8pt"):css("padding", "4pt"):css("line-height", "1.25em"):wikitext(" ")
return tostring(div)
elseif code == "----" then
return tostring(mw.html.create("div")
:css("clear", "both")
:css("padding", "0.25em 0")
:tag("hr"))
else
error(code .. " is not a recognised feature; please see [[Template:"
.. "Babel/documentation]] for a list of these.")
end
end
local BoxData = M.typing.class "BoxData" {
text = "string",
lang = "string",
proficiency = "string?",
is_translated = "boolean?",
direction = "string?",
}
export.BoxData = BoxData
--[==[
Generate a generic box. For a script box, use {ScriptBoxData:generate_box}.
`BoxData` may have the following properties:
* `text` (string)
* `lang` (string)
* `proficiency` (string, optional): Defaults to N.
* `is_translated` (boolean, optional): Set to {true} to get proper fonts for languages other than English.
* `direction` (string, optional): {"left"} or {"right"}. Anything else will be ignored. Defaults to left.
```
local m_babel = require("Module:Babel")
local data = m_babel.BoxData {
text = "This will display on the right side.",
lang = "left",
}
local box = data:generate_box()
```
]==]
function BoxData:generate_box()
local text = self.text
local direction = self.direction or "left"
local proficiency = self.proficiency or "N"
local left = ("%s-%s"):format(self.lang, proficiency)
local root = mw.html.create("div")
:addClass("babel-box")
:addClass("babel-" .. proficiency)
local tbl = root:tag("table"):addClass("babel-content")
local row = tbl:tag("tr")
if self.is_translated then
local obj = M.languages.getByCode(self.lang)
local tagged = {}
-- Split, because some languages need multiple scripts. nan-hbl has two lines,
-- one Hant and one Hans, for example.
for i in self.text:gsub("<[hb]r>", "\n"):gmatch("[^\n]+") do
table.insert(tagged, M.script_utilities.tag_text(i, obj))
end
text = table.concat(tagged, text:match("<[hb]r>"))
end
local td_code = mw.html.create("td"):addClass("babel-code"):css("font-size", "14pt")
td_code:tag("b"):wikitext(left)
local td_text = mw.html.create("td")
:addClass("babel-text")
:css("text-align", direction)
:wikitext(text)
row:node(td_code):node(td_text)
return tostring(root)
end
BoxData.generate_box = M.typing.guard(BoxData.generate_box, {"BoxData"})
local ScriptBoxData = M.typing.class "ScriptBoxData" {
script = "string",
proficiency = "string?",
glyph = "string?",
text = "string",
}
export.ScriptBoxData = ScriptBoxData
--[==[
Generate a script box.
`ScriptBoxData` may have the following properties:
* `script` (string): Must be a valid script code.
* `proficiency` (string, optional): Defaults to N.
* `glyph` (string, optional): Defaults to A.
* `text` (string)
```
local m_babel = require("Module:Babel")
local data = m_babel.ScriptBoxData {
text = "This will display on the right side.",
script = "Hant",
glyph = "繁",
}
local box = data:generate_box()
```
]==]
function ScriptBoxData:generate_box()
local script = self.script
local glyph = self.glyph or "A"
local proficiency = self.proficiency or "N"
local left = ("%s-%s"):format(script, proficiency)
local root = mw.html.create("div")
:addClass("babel-box")
:addClass("babel-" .. proficiency)
local tbl = root:tag("table"):addClass("babel-content")
local row = tbl:tag("tr")
if script ~= "Latn" then
if not script:find("^[IU]PA$") then
glyph = M.script_utilities.tag_text(glyph, M.scripts.getByCode())
else
glyph = tostring(mw.html.create("span"):addClass("IPA"):wikitext(self.glyph))
end
end
local td_code = mw.html.create("td"):addClass("babel-code")
:css("font-size", "9pt")
:css("line-height", "100%")
td_code:tag("span")
:css("font-size", "14pt")
:css("line-height", "130%")
:wikitext(glyph)
td_code:tag("br")
td_code:tag("b"):wikitext(left)
local td_text = mw.html.create("td"):addClass("babel-text"):wikitext(self.text)
row:node(td_code):node(td_text)
return tostring(root)
end
ScriptBoxData.generate_box = M.typing.guard(ScriptBoxData.generate_box, {"ScriptBoxData"})
local function make_table(code, inactive)
if not code or code:find("^[-]+$") then
return special_table(code)
elseif code:find("UNIQ") then
error("Vui lòng xem [[Wiktionary:Ngôn ngữ sử dụng]].")
end
code = Code.from(code)
local otype, object = code:get_type()
if not otype then
return soft_error("mã ngôn ngữ không hợp lệ",
("Mã ngôn ngữ không hợp lệ: %s"):format(code.lang)
)
end
local message, is_translated = code:get_message(otype)
local cats
local fallback = code:get_fallback(object)
if fallback then
cats = fallback:get_categories(otype)
elseif otype == "programming" then
local catcode = ("%s-%s"):format(
object.cat and object.cat or M.string_utilities.title_case(code.lang),
code.proficiency
)
local cat = Code.from(catcode)
cats = cat:get_categories(otype)
else
cats = code:get_categories(otype)
end
local data
if otype ~= "script" then
local direction
local name
local display
if otype == "language" or otype == "sign_language" then
direction =
(object:findBestScript(message):getDirection() == "rtl")
and "right"
or "left"
name = object:getCanonicalName()
message = gender_message(message)
display = ("[[w:ISO 639:%s|%s]]"):format(code.lang, code.lang)
elseif otype == "programming" then
name = object.display or code.lang
display = ("[[%s|%s]]"):format(
object.link,
object.display_code or code.lang
)
elseif otype == "family" then
name = object:getCanonicalName()
display = ("[[w:ISO 639:%s|%s]]"):format(code.lang, code.lang)
end
message = format_message(message, {
":" .. cats[1],
":" .. cats[2],
name,
})
data = BoxData {
lang = display,
proficiency = code.proficiency,
text = message,
is_translated = is_translated,
direction = direction,
object = object,
}
else
local name =
type(object) ~= "table" -- do we have a custom code?
and object
or object:getCanonicalName()
message = format_message(message, {
":" .. cats[1],
":" .. cats[2],
name,
})
local glyph = M.data.script_glyphs[code.lang]
data = ScriptBoxData {
text = message,
script = code.lang,
proficiency = code.proficiency,
glyph = glyph
}
end
local ret = data:generate_box()
if cats and is_userpage() and code.proficiency ~= "0" then
if not inactive then
ret = ret .. "[[" .. table.concat(cats, "]][[") .. "]]"
else
for i = 1, #cats do
ret = ret .. "[[" .. cats[i] .. " (không hoạt động)]]"
end
end
end
return ret
end
--[==[ Entry point for {{tl|Babel userbox}}. ]==]
function export.t_userbox(frame)
local args = M.parameters.process(frame:getParent().args, {
[1] = true,
["inactive"] = true,
})
return make_table(args[1], args["inactive"])
end
--[==[ Main entry point, for {{tl|Babel}}. ]==]
function export.show(frame)
local args = M.parameters.process(frame:getParent().args, {
[1] = { list = true },
["inactive"] = { type = "boolean" },
["float"] = { set = { "left", "right", "none", "center" }, default = "right" },
["align"] = { alias_of = "float" },
["margin_left"] = { default = "1em" },
["margin_right"] = { default = "0em" },
["margin_bottom"] = { default = "0.5em" },
["width"] = { default = "248px" },
["border_color"] = { default = "var(--wikt-palette-blue-5, #99B3FF)" },
["header"] = { default = "[[Wiktionary:Ngôn ngữ sử dụng]]" },
["color"] = { default = "inherit" },
["footer"] = {
default = "Tìm kiếm [[:Thể loại:Thành viên Wiktionary theo ngôn ngữ|"
.. "thành viên theo ngôn ngữ]] hoặc [[:Thể loại:Thành viên Wiktionary theo hệ chữ viết|hệ chữ viết]]"
},
["border"] = { alias_of = "border_color" },
["bordercolor"] = { alias_of = "border_color" },
["gender"] = true,
["g"] = { alias_of = "gender" },
["no-table"] = { boolean = true },
})
local column_parts = { {} }
local current_column = 1
local has_box = false
if not args[1][1] then
local box = make_table()
column_parts[1][1] = box
has_box = true
else
for i = 1, #args[1] do
local code = args[1][i]
if code == "!" then
if #column_parts[current_column] > 0 then
current_column = current_column + 1
column_parts[current_column] = {}
end
else
local box = make_table(code, args["inactive"])
column_parts[current_column][#column_parts[current_column] + 1] = box
has_box = true
end
end
end
if not has_box then
column_parts = { { make_table() } }
end
local column_contents = {}
for i = 1, #column_parts do
local content = table.concat(column_parts[i], "")
if content ~= "" then
column_contents[#column_contents + 1] = content
end
end
if args["no-table"] then
return table.concat(column_contents, "")
end
local colspan = #column_contents
if args["inactive"] then
local inactive_span = mw.html.create("span")
:attr("title", "Thành viên không sửa đổi hơn 2 hoặc nhiều năm.")
:wikitext("(không hoạt động)")
args["header"] = args["header"] .. " " .. tostring(inactive_span)
end
if args["gender"] and M.pages.is_preview() then
local gender_span = mw.html.create("span")
:addClass("error")
:css("font-size", "75%")
:wikitext("Gender is automatically grabbed from your preferences.\nYou can remove the gender parameter.")
args["header"] = args["header"] .. "\n" .. tostring(gender_span)
end
if args["float"] == "center" then
args["float"] = "none"
args["margin_left"] = "auto"
args["margin_right"] = "auto"
end
local tbl = mw.html.create("table")
:addClass("babel-box-wrapper")
:addClass("userboxes")
:attr("name", "userboxes")
:css("float", args["float"])
:css("margin-left", args["margin_left"])
:css("margin-right", args["margin_right"])
:css("margin-bottom", args["margin_bottom"])
:css("width", args["width"])
:css("border", args["border_color"] .. " solid 1px")
:css("clear", args["float"])
local header_row = mw.html.create("tr")
header_row:tag("th")
:attr("colspan", colspan)
:css("background-color", args["color"])
:css("text-align", "center")
:wikitext(args["header"])
local content_row = mw.html.create("tr"):css("vertical-align", "top")
for i = 1, #column_contents do
content_row:tag("td"):wikitext(column_contents[i])
end
local footer_row = mw.html.create("tr")
footer_row:tag("td")
:attr("colspan", colspan)
:css("background-color", args["color:inherit"])
:css("text-align", "center")
:wikitext(args["footer"])
tbl:node(header_row):node(content_row):node(footer_row)
return tostring(tbl)
end
return export
c48mqth3stbiqzxdevh99pzh21uu9f4
Mô đun:Babel/data/f
828
362591
2570063
2280204
2026-10-13T04:11:40Z
Hiyuune
50834
2570063
Scribunto
text/plain
return {
-------------------------- fa --------------------------
["fa-0"] = "این کاربر '''[[$2|فارسی]]''' را '''نمیفهمد''' (یا بهسختی میفهمد).",
["fa-1"] = "این کاربر '''[[$2|فارسی]]''' را در حد '''[[$1|مقدماتی]]''' میفهمد.",
["fa-2"] = "این کاربر '''[[$2|فارسی]]''' را در حد '''[[$1|متوسط]]''' میفهمد.",
["fa-3"] = "این کاربر '''[[$2|فارسی]]''' را در حد '''[[$1|پیشرفته]]''' میفهمد.",
["fa-4"] = "این کاربر '''[[$2|فارسی]]''' را در حد '''[[$1|نزدیک به زبان مادری]]''' میفهمد.",
["fa-5"] = "این کاربر '''[[$2|فارسی]]''' را در حد '''[[$1|حرفهای]]''' میفهمد.",
["fa-N"] = "این کاربر '''[[$2|فارسی]]''' را در حد '''[[$1|زبان مادری]]''' میفهمد.",
-------------------------- fat --------------------------
["fat-0"] = "Dɛm dwumadzinyi yi '''nnyi [[$2|Mfantse]]''' ho nyimdzee (anaa ne ntseasee yɛ no dzen).",
["fat-1"] = "Dɔm dwumadzinyi yi wɔ '''[[$1|ahyɛase]]''' nyimdzee wɔ '''[[$2|Mfantse]]'''.",
["fat-2"] = "Dɛm dwumadzinyi yi wɔ '''[[$1|egyinantamu]]''' nyimdzee wɔ '''[[$2|Mfantse]]'''.",
["fat-3"] = "Dɛm dwumadzinyi yi wɔ '''[[$1|kankɔ]]''' nyimdzee wɔ '''[[$2|Mfantse]]'''.",
["fat-4"] = "Dɛm dwumadzinyi yi wɔ '''[[$1|kurowmanyi nyimdzee]]''' wɔ '''[[$2|Mfantse]]'''.",
["fat-5"] = "Dɛm dwumadzinyi yi wɔ '''[[$1|nyimdzee mapa]]''' wɔ '''[[$2|Mfantse]]'''.",
["fat-N"] = "Dɛm dwumadzinyi yi wɔ '''[[$1|kurowmanyi]]''' ntseasee wɔ '''[[$2|Mfantse]]'''.",
-------------------------- fax --------------------------
["fax-0"] = "{Esti ushuariu/Esta ushuaria} '''nun intendi [[$2|a fala]]''' (u a intendi cun mutas dificultais).",
["fax-1"] = "{Esti ushuariu/Esta ushuaria} poi cuntribuil cun un nivel '''[[$1|básicu]]''' na '''[[$2|fala]]'''.",
-------------------------- fi --------------------------
["fi-0"] = "Tämä käyttäjä osaa '''hyvin vähän tai ei lainkaan [[$2|suomea]]'''.",
["fi-1"] = "Tämä käyttäjä osaa '''[[$2|suomea]] [[$1|vähän]]'''.",
["fi-2"] = "Tämä käyttäjä osaa '''[[$2|suomea]] [[$1|kohtalaisesti]]'''.",
["fi-3"] = "Tämä käyttäjä osaa '''[[$2|suomea]] [[$1|erinomaisesti]]'''.",
["fi-4"] = "Tämä käyttäjä osaa '''[[$2|suomea]] [[$1|melkein äidinkielen tavoin]]'''.",
["fi-5"] = "Tämä käyttäjä osaa '''[[$2|suomea]] [[$1|ammattimaisesti]]'''.",
["fi-N"] = "Tämän käyttäjän '''[[$1|äidinkieli]]''' on '''[[$2|suomi]]'''.",
-------------------------- fit --------------------------
["fit-0"] = "Tämä käyttäjä ossaa '''hyvin vähän tai ei lainkhaan [[$2|meänkieltä]]'''.",
["fit-1"] = "Tämä käyttäjä ossaa '''[[$2|meänkieltä]] [[$1|vähän]]'''.",
["fit-2"] = "Tämä käyttäjä ossaa '''[[$2|meänkieltä]] [[$1|kohtalaisesti]]'''.",
["fit-3"] = "Tämä käyttäjä ossaa '''[[$2|meänkieltä]] [[$1|erinomaisesti]]'''.",
["fit-4"] = "Tämä käyttäjä ossaa '''[[$2|meänkieltä]] [[$1|melkein äidinkielen tavoin]]'''.",
["fit-5"] = "Tämä käyttäjä ossaa '''[[$2|meänkieltä]] [[$1|ammattimaisesti]]'''.",
["fit-N"] = "Tämän käyttäjän '''[[$1|äitinkieli]]''' oon '''[[$2|meänkieli]]'''.",
-------------------------- fj --------------------------
["fj-1"] = "Au kila '''[[$1|vaka lailai]]''' na '''[[$2|Vosa Vaka Viti]]'''",
-------------------------- fo --------------------------
["fo-0"] = "Hesin brúkarin hevur '''onga''' vitan um '''[[$2|føroyskt]]''' (ella skilur tað eitt sindur við stórum trupulleikum).",
["fo-1"] = "Hesin brúkarin hevur '''[[$1|grundleggjandi]]''' vitan um '''[[$2|føroyskt]]'''.",
["fo-2"] = "Hesin brúkari hevur '''[[$1|miðal góðan]]''' kunnleika til '''[[$2|føroyskt]]'''.",
["fo-3"] = "Hesin brúkarin hevur kunnleika á '''[[$1|hástigi]]''' til '''[[$2|føroyskt]]'''.",
["fo-4"] = "Hesin brúkari hevur '''[[$1|nærum móðurmáls]]''' kunnleika til '''[[$2|føroyskt]]'''.",
["fo-5"] = "Hesin brúkari hevur '''[[$1|professionellan]]''' kunnleika til '''[[$2|føroyskt]]'''.",
["fo-N"] = "Hesin brúkarin hevur '''[[$2|føroyskt]]''' sum '''[[$1|móðurmál]]'''.",
-------------------------- fr --------------------------
["fr-0"] = "{Cet utilisateur/Cette utilisatrice} n’a '''aucune''' connaissance en '''[[$2|français]]''' (ou le comprend avec de grandes difficultés).",
["fr-1"] = "{Cet utilisateur/Cette utilisatrice} dispose de connaissances '''[[$1|de base]]''' en '''[[$2|français]]'''.",
["fr-2"] = "{Cet utilisateur/Cette utilisatrice} dispose de connaissances '''[[$1|intermédiaires]]''' en '''[[$2|français]]'''.",
["fr-3"] = "{Cet utilisateur/Cette utilisatrice} dispose de connaissances '''[[$1|avancées]]''' en '''[[$2|français]]'''.",
["fr-4"] = "{Cet utilisateur/Cette utilisatrice} dispose de connaissances '''[[$1|proches de la langue maternelle]]''' en '''[[$2|français]]'''.",
["fr-5"] = "{Cet utilisateur/Cette utilisatrice} dispose de connaissances '''[[$1|professionnelles]]''' en '''[[$2|français]]'''.",
["fr-N"] = "{Cet utilisateur/Cette utilisatrice} a pour '''[[$1|langue maternelle]]''' le '''[[$2|français]]'''.",
-------------------------- frk --------------------------
["frk-1"] = "{These niotāri/Thius niotāra} havet '''[[$1|luttila]]''' kunst thera '''[[$2|Frankiskun sprāka]]'''.",
-------------------------- frm --------------------------
["frm-1"] = "Cet useur peult contribuer avec un niveaul '''[[$1|elementaire]] de [[$2|françois]]'''.",
["frm-2"] = "Cet useur peult contribuer avec un niveaul '''[[$1|intermediaire]] de [[$2|françois]]'''.",
["frm-3"] = "Cet useur peult contribuer avec un niveaul '''[[$1|avancé]] de [[$2|françois]]'''.",
["frm-4"] = "Cet useur parle '''[[$2|françois]]''' à un niveaul '''[[$1|comparable à la langue maternelle]]'''.",
-------------------------- fro --------------------------
["fro-1"] = "Cil usere puet contribuir avoec un nivel '''[[$1|elementatif]] de [[$2|françois]]'''.",
["fro-2"] = "Cel usere puet contribuir avoec un nivel '''[[$1|intermediare]]''' de '''[[$2|françois]]'''.",
-------------------------- frp --------------------------
["frp-0"] = "Cet’utilisat{or/rice/or} at '''gins''' de cognessence en '''[[$2|arpetan]]''' (ou ben lo comprend avouéc de grôsses dificultâts).",
["frp-1"] = "Cet’utilisat{or/rice/or} at des cognessences '''[[$1|totes simples]]''' en '''[[$2|arpetan]]'''.",
["frp-2"] = "Cet’utilisat{or/rice/or} at des cognessences '''[[$1|moyenes]]''' en '''[[$2|arpetan]]'''.",
["frp-3"] = "Cet’utilisat{or/rice/or} at des cognessences '''[[$1|avanciêes]]''' en '''[[$2|arpetan]]'''.",
["frp-4"] = "Cet’utilisat{or/rice/or} at des cognessences prôches de la '''[[$1|lengoua matèrnâla]]''' en '''[[$2|arpetan]]'''.",
["frp-5"] = "Cet’utilisat{or/rice/or} at des cognessences '''[[$1|profèssionèles]]''' en '''[[$2|arpetan]]'''.",
["frp-N"] = "Cet’utilisat{or/rice/or} at por '''[[$1|lengoua matèrnâla]]''' l’'''[[$2|arpetan]]'''.",
-------------------------- frr --------------------------
["frr-0"] = "Didiar brüker hää '''nian''' weden faan '''[[$2|Nordfriisk]]''' (of ferstäänt det man jüst so).",
["frr-1"] = "Didiar brüker hää '''[[$1|en betj]]''' weden faan '''[[$2|Nordfriisk]]'''.",
["frr-2"] = "Didiar brüker koon '''[[$1|en betj]]''' lees an skriiw üüb '''[[$2|Nordfriisk]]'''.",
["frr-3"] = "Didiar brüker koon '''[[$1|gud]]''' lees an skriiw üüb '''[[$2|Nordfriisk]]'''.",
["frr-4"] = "Didiar brüker snaaket '''[[$2|Nordfriisk]]''', bal üs wan't sin '''[[$1|mamenspriak]]''' wiar.",
["frr-5"] = "Didiar brüker hää en '''[[$1|auer a miaten]]''' gud weden faan '''[[$2|Nordfriisk]]'''.",
["frr-N"] = "Didiar brüker snaaket '''[[$2|Nordfriisk]]''' üs '''[[$1|mamenspriak]]'''.",
-------------------------- fur --------------------------
["fur-0"] = "Chest utent '''nol cognos''' il '''[[$2|furlan]]''' (o lu capìs cuntun grum di dificoltât).",
["fur-1"] = "Chest utent al à une cognossince '''[[$1|elementâr]]''' dal '''[[$2|furlan]]'''.",
["fur-2"] = "Chest utent al à une cognossince '''[[$1|mezane]]''' dal '''[[$2|furlan]]'''.",
["fur-3"] = "Chest utent al à une cognossince '''[[$1|avanzade]]''' dal '''[[$2|furlan]]'''.",
["fur-4"] = "Chest utent al à une cognossince '''[[$1|cuasi di marilenghe]]''' dal '''[[$2|furlan]]'''.",
["fur-5"] = "Chest utent al à une cognossince '''[[$1|professionâl]]''' dal '''[[$2|furlan]]'''.",
["fur-N"] = "Chest utent al è di '''[[$1|marilenghe]] [[$2|furlane]]'''.",
-------------------------- fy --------------------------
["fy-0"] = "Dizze {meidogger/meidochster} hat '''gjin''' kennis fan it '''[[$2|Frysk]]''' (of ferstiet it allinnich mei in soad tûkelteammen).",
["fy-1"] = "It '''[[$2|Frysk]]''' fan dizze {meidogger/meidochster} is '''[[$1|minimaal]]'''.",
["fy-2"] = "It '''[[$2|Frysk]]''' fan dizze {meidogger/meidochster} is '''[[$1|ridlik]]'''.",
["fy-3"] = "It '''[[$2|Frysk]]''' fan dizze {meidogger/meidochster} is '''[[$1|treflik]]'''.",
["fy-4"] = "It '''[[$2|Frysk]]''' is benei de '''[[$1|memmetaal]]''' fan dizze {meidogger/meidochster}.",
["fy-5"] = "It '''[[$2|Frysk]]''' fan dizze {meidogger/meidochster} is '''[[$1|beropsmjittich]]'''.",
["fy-N"] = "It '''[[$2|Frysk]]''' is de '''[[$1|memmetaal]]''' fan dizze {meidogger/meidochster}.",
}
6c1m28bzme0a7yioci4vlpkamsww3j8
ओसेल
0
373262
2570074
2307346
2026-10-13T05:57:12Z
Hiyuune
50834
/* Tiếng Kharia */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2570074
wikitext
text/x-wiki
=={{langname|khr}}==
==={{ĐM|pron}}===
* {{IPA|khr|[osel]}}
==={{ĐM|adj}}===
{{head|khr|Tính từ}}
# {{label|khr|Dhelki/Dudh}} [[trắng|Trắng]].
==={{ĐM|ref}}===
* [https://livingdictionaries.app/kharia/entries/list Từ điển tiếng Kharia] tại Living Dictionaries.
{{C|khr|Màu sắc}}
mirsc8g9dk2re5qdp0t575cwiuowy3z
Mô đun:ja-acc-table
828
387687
2570053
2335410
2026-10-13T03:57:30Z
Hiyuune
50834
2570053
Scribunto
text/plain
-- This module implements the template {{ja-acc-table}}.
-- Author: [[User:Shlyst]]
-- To-do: Counter suffixes, 個, 匹, 枚, etc.
local export = {}
local match = mw.ustring.match
local m_str_utils = require("Module:string utilities")
local find = m_str_utils.find
local usub = m_str_utils.sub
local ulen = m_str_utils.len
local gmatch = m_str_utils.gmatch
local gsub = m_str_utils.gsub
local gsplit = m_str_utils.gsplit
local m_ja_pron = require("Module:ja-pron")
local range = mw.loadData("Module:ja/data/range")
local a_kana = range.vowels.a
local i_kana = range.vowels.i
local u_kana = range.vowels.u
local e_kana = range.vowels.e
local o_kana = range.vowels.o
local n_kana = range.vowels.n
local submoraic_kana = range.submoraic_kana
local morae_negative_pattern = "[" .. submoraic_kana .. "%. ]"
local function count_morae(kana)
return ulen(kana) - select(2, gsub(kana, morae_negative_pattern, ""))
end
local inflection_types = {
{
id = "verb-godan",
style = {verb=true, godan=true},
doc = "Godan verbs."
},
{
id = "verb-ichidan",
style = {verb=true, ichidan=true},
doc = "Ichidan verbs."
},
{
id = "verb-aru",
style = {verb=true, godan=true, aru=true},
doc = "The verb {{m|ja|ある|t=to exist}}, and any derivatives that end in it."
},
{
id = "verb-iku",
style = {verb=true, godan=true, iku=true},
doc = "The verb {{m|ja|いく|t=to go}}, and any derivatives that end in it. It has an irregular {{m|ja||て}}-form."
},
{
id = "verb-honorific",
style = {verb=true, godan=true, honorific=true},
doc = "Honorific-type verbs, such as {{m|ja|いらっしゃる}}, {{m|ja|くださる}}, which are godan verbs whose continuative forms don't end in the stem consonant, but rather directly append {{m|ja||い}} (e.g. {{m|ja|ございます}} as opposed to {{m|ja|ござります}})."
},
{
id = "verb-koute-toute",
style = {verb=true, godan=true, koute_toute=true},
doc = "The verbs {{m|ja|乞う}}, {{m|ja|問う}}, and any derivatives, whose {{m|ja||て}}-forms exhibit a long {{m|ja||う}} ''onbin'', as opposed to {{m|ja||っ}} (''sokuon'') ''onbin'' (namely, as {{m|ja||こうて}}, {{m|ja||とうて}} as opposed to {{m|ja||こって}}, {{m|ja||とって}})."
},
{
id = "verb-kureru",
style = {verb=true, ichidan=true, kureru=true},
doc = "Động từ {{m|ja|くれる}}."
},
{
id = "verb-suru",
style = {verb=true, suru=true},
doc = "Động từ {{m|ja|する}}."
},
{
id = "verb-suru-zuru",
style = {verb=true, suru_zuru=true},
doc = "Verbs with a partially-lexicalized {{m|ja|する}} or {{m|ja|ずる}}, such as {{m|ja|値する}}, some of whose forms behave differently to usual {{m|ja||する}} verbs, e.g. {{m|ja||あたいさない}} also being possible in addition to {{m|ja||あたいしない}}."
},
{
id = "verb-kuru",
style = {verb=true, kuru=true},
doc = "Động từ {{m|ja|来る}} và dạng phái sinh."
},
{
id = "adj-i",
style = {adjective = true},
doc = "Tính từ い."
},
{
id = "adj-yoku",
style = {adjective = true, yoku=true},
doc = "The adjective いい, or adjectives ending in it, which use the stem よ instead of い (e.g. よく instead of いく)."
}
}
local function get_inflection_type(type_id)
for _, inflection_type in ipairs(inflection_types) do
if type_id == inflection_type.id then
return inflection_type
end
end
end
function export.document_inflection_types(frame)
local wikitext = {}
for i, inflection_type in ipairs(inflection_types) do
table.insert(wikitext, "; ")
table.insert(wikitext, inflection_type.id)
table.insert(wikitext, "\n: ")
table.insert(wikitext, inflection_type.doc)
if i ~= #inflection_types then
table.insert(wikitext, "\n")
end
end
return frame:preprocess(table.concat(wikitext))
end
local function inflect(lemma, kana, style, accs, te_form_accs)
local kanji = lemma
local lemma_kana = kana
kana = gsub(kana, "[%. ]+$", "")
local kana_morae_str = gsub(kana, "[%. ]", "")
local kana_morae_str_without_submoraic = gsub(kana_morae_str, morae_negative_pattern, "")
local n_morae = count_morae(kana)
for _, acc in ipairs(accs) do
if acc > n_morae then error("Accent is larger than kana") end
end
if style.verb or style.adjective then
kana = usub(kana, 1, ulen(kana) - 1) .. "." .. usub(kana, ulen(kana), ulen(kana) + 1)
if usub(lemma, ulen(lemma), ulen(lemma) + 1) ~= usub(kana_morae_str, ulen(kana_morae_str), ulen(kana_morae_str) + 1) then
error("Lemma and kana do not have the same ending: " .. lemma .. " " .. lemma_kana)
end
if n_morae < 2 then error("Kana tối thiểu là 2 mora") end
for _, acc in ipairs(accs) do
if acc == n_morae then error("Trọng âm không thể là Odaka") end
end
local function add_infl(infl_table, kanji, kana, acc)
for _, infl in ipairs(infl_table) do
if infl.kanji == kanji and infl.kana == kana and infl.acc == acc then
return
end
end
table.insert(infl_table, {kanji=kanji, kana=kana, acc=acc})
end
local penultimate_jiritsuhaku_pos
local consecutive_penultimate_jiritsuhaku
if n_morae > 2 then
penultimate_jiritsuhaku_pos = 1
consecutive_penultimate_jiritsuhaku = 0
for i = 2, ulen(kana_morae_str_without_submoraic) - 1 do
local mora = usub(kana_morae_str_without_submoraic, i, i)
local mora_is_jiritsuhaku = not find(mora, "^[あいうえおをゑゐアイウエオヲヱヰんっンッー]$")
if mora_is_jiritsuhaku then
penultimate_jiritsuhaku_pos = i
consecutive_penultimate_jiritsuhaku = 0
else
consecutive_penultimate_jiritsuhaku = consecutive_penultimate_jiritsuhaku + 1
end
end
end
local function acc_is_deep(acc)
return penultimate_jiritsuhaku_pos
and acc > 0
and (acc < penultimate_jiritsuhaku_pos
or (acc == penultimate_jiritsuhaku_pos and consecutive_penultimate_jiritsuhaku >= 2))
end
if style.verb then
local plain = {}
local te = {}
local nai = {}
local ba = {}
local imperative = {}
local volitional = {}
local desiderative = {}
local masu = {}
local renyokei = {}
local zu = {}
local passive = {}
local causative = {}
local potential = {}
local function add_infl_te_forms(te_form_kanji, te_form_kana)
for _, te_form_acc in ipairs(te_form_accs) do
add_infl(te, te_form_kanji, te_form_kana, te_form_acc)
end
end
local function add_infl_func(infl_table, kanji, kana, func)
for _, acc in ipairs(accs) do
if acc_is_deep(acc) then
add_infl(infl_table, kanji, kana, acc)
else
add_infl(infl_table, kanji, kana, func(acc))
end
end
end
local function add_infl_func_heibangata_ifelse(infl_table, kanji, kana, true_func, false_func)
for _, acc in ipairs(accs) do
if acc == 0 then
add_infl(infl_table, kanji, kana, true_func(acc))
elseif acc_is_deep(acc) then
add_infl(infl_table, kanji, kana, acc)
else
add_infl(infl_table, kanji, kana, false_func(acc))
end
end
end
local function add_infl_func_heibangata_ifelse_te(infl_table, kanji, kana, func)
for _, acc in ipairs(accs) do
if acc == 0 then
add_infl(infl_table, kanji, kana, func(acc))
elseif acc_is_deep(acc) then
add_infl(infl_table, kanji, kana, acc)
else
for _, te_form_acc in ipairs(te_form_accs) do
if te_form_acc == 0 then
add_infl(infl_table, kanji, kana, func(0))
else
add_infl(infl_table, kanji, kana, te_form_acc)
end
end
end
end
end
if style.godan then
local kanji_prefix = usub(kanji, 1, ulen(kanji) - 1)
local kana_prefix = usub(kana, 1, ulen(kana) - 1)
local aru_is_kanji
local aru_kanji_prefix
local aru_kana_prefix
if style.aru then
if find(kanji, "あ[ ]*る$") then
aru_kanji_prefix = gsub(kanji, "あ[ ]*る$", "")
elseif find(kanji, "有[ ]*る$") then
aru_kanji_prefix = gsub(kanji, "有[ ]*る$", "")
aru_is_kanji = true
elseif find(kanji, "在[ ]*る$") then
aru_kanji_prefix = gsub(kanji, "在[ ]*る$", "")
aru_is_kanji = true
else
error("Invalid ある verb lemma " .. kanji)
end
if not find(kana, "あ[%. ]*る$") then
error("Invalid ある verb kana " .. lemma_kana)
end
aru_kana_prefix = gsub(kana, "あ[%. ]*る$", "")
kana_prefix = aru_kana_prefix .. ".あ."
end
local te_form_kanji
local te_form_kana
local xi, xa, xe, xo
local last_char = usub(kana, ulen(kana), ulen(kana) + 1)
if last_char == "う" then
if style.koute_toute then
te_form_kanji = kanji_prefix .. "うて"
te_form_kana = gsub(kana_prefix, "%.*$", "") .. "うて"
else
te_form_kanji = kanji_prefix .. "って"
te_form_kana = kana_prefix .. "って"
end
xi = "い" xa ="わ" xe = "え" xo = "お"
elseif last_char == "く" then
if style.iku then
te_form_kanji = kanji_prefix .. "って"
te_form_kana = kana_prefix .. "って"
else
te_form_kanji = kanji_prefix .. "いて"
te_form_kana = kana_prefix .. "いて"
end
xi = "き" xa ="か" xe = "け" xo = "こ"
elseif last_char == "ぐ" then
te_form_kanji = kanji_prefix .. "いで"
te_form_kana = kana_prefix .. "いで"
xi = "ぎ" xa ="が" xe = "げ" xo = "ご"
elseif last_char == "す" then
te_form_kanji = kanji_prefix .. "して"
te_form_kana = kana_prefix .. "して"
xi = "し" xa ="さ" xe = "せ" xo = "そ"
elseif last_char == "つ" then
te_form_kanji = kanji_prefix .. "って"
te_form_kana = kana_prefix .. "って"
xi = "ち" xa ="た" xe = "て" xo = "と"
elseif last_char == "ぬ" then
te_form_kanji = kanji_prefix .. "んで"
te_form_kana = kana_prefix .. "んで"
xi = "に" xa ="な" xe = "ね" xo = "の"
elseif last_char == "ぶ" then
te_form_kanji = kanji_prefix .. "んで"
te_form_kana = kana_prefix .. "んで"
xi = "び" xa ="ば" xe = "べ" xo = "ぼ"
elseif last_char == "む" then
te_form_kanji = kanji_prefix .. "んで"
te_form_kana = kana_prefix .. "んで"
xi = "み" xa ="ま" xe = "め" xo = "も"
elseif last_char == "る" then
te_form_kanji = kanji_prefix .. "って"
te_form_kana = kana_prefix .. "って"
xi = "り" xa ="ら" xe = "れ" xo = "ろ"
else
error("Unknown godan verb ending " .. kanji)
end
add_infl_te_forms(te_form_kanji, te_form_kana)
add_infl_func(plain, kanji_prefix .. last_char, kana_prefix .. last_char, function(acc) return acc end)
add_infl_func_heibangata_ifelse(ba, kanji_prefix .. xe .. "ば", kana_prefix .. xe .. "ば", function(acc) return n_morae end, function(acc) return acc end)
add_infl_func(volitional, kanji_prefix .. xo .. "う", kana_prefix .. xo .. "う", function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(desiderative, kanji_prefix .. xi .. "たい", kana_prefix .. xi .. "たい", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func(renyokei, kanji_prefix .. xi, kana_prefix .. xi, function(acc) return acc end)
add_infl_func_heibangata_ifelse(passive, kanji_prefix .. xa .. "れる", kana_prefix .. xa .. "れる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(causative, kanji_prefix .. xa .. "せる", kana_prefix .. xa .. "せる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(causative, kanji_prefix .. xa .. "す", kana_prefix .. xa .. "す", function(acc) return 0 end, function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(potential, kanji_prefix .. xe .. "る", kana_prefix .. xe .. "る", function(acc) return 0 end, function(acc) return n_morae end)
if style.aru then
if aru_is_kanji then
add_infl_func(nai, aru_kanji_prefix .. "無い", aru_kana_prefix .. "ない", function(acc) return acc end)
else
add_infl_func(nai, aru_kanji_prefix .. "ない", aru_kana_prefix .. "ない", function(acc) return acc end)
end
else
add_infl_func_heibangata_ifelse(nai, kanji_prefix .. xa .. "ない", kana_prefix .. xa .. "ない", function(acc) return 0 end, function(acc) return n_morae end)
end
if style.honorific then
add_infl_func(imperative, kanji_prefix .. "い", kana_prefix .. "い", function(acc) return acc end)
add_infl_func(masu, kanji_prefix .. "います", kana_prefix .. "います", function(acc) return n_morae + 1 end)
else
add_infl_func(imperative, kanji_prefix .. xe, kana_prefix .. xe, function(acc) return acc end)
add_infl_func(masu, kanji_prefix .. xi .. "ます", kana_prefix .. xi .. "ます", function(acc) return n_morae + 1 end)
end
if style.koute_toute then
add_infl_func_heibangata_ifelse(zu, kanji_prefix .. xa .. "ず", kana_prefix .. xa .. "ず", function(acc) return 0 end, function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(zu, kanji_prefix .. xa .. "ず", kana_prefix .. xa .. "ず", function(acc) return 0 end, function(acc) return n_morae end)
else
add_infl_func_heibangata_ifelse(zu, kanji_prefix .. xa .. "ず", kana_prefix .. xa .. "ず", function(acc) return 0 end, function(acc) return n_morae end)
end
elseif style.ichidan then
if not find(kana, "[" .. e_kana .. i_kana .. "][%. ]*る$") then
error("Invalid ichidan verb kana " .. lemma_kana)
end
local kana_prefix = gsub(kana, "([" .. e_kana .. i_kana .. "])[%. ]*る$", ".%1.")
local kanji_prefix = usub(kanji, 1, ulen(kanji) - 1)
local te_form_kanji = kanji_prefix .. "て"
local te_form_kana = kana_prefix .. "て"
add_infl_te_forms(te_form_kanji, te_form_kana)
add_infl_func(plain, kanji_prefix .. "る", kana_prefix .. "る", function(acc) return acc end)
add_infl_func_heibangata_ifelse(nai, kanji_prefix .. "ない", kana_prefix .. "ない", function(acc) return 0 end, function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(ba, kanji_prefix .. "れば", kana_prefix .. "れば", function(acc) return n_morae end, function(acc) return acc end)
add_infl_func(volitional, kanji_prefix .. "よう", kana_prefix .. "よう", function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(desiderative, kanji_prefix .. "たい", kana_prefix .. "たい", function(acc) return 0 end, function(acc) return n_morae end)
add_infl_func(masu, kanji_prefix .. "ます", kana_prefix .. "ます", function(acc) return n_morae end)
add_infl_func_heibangata_ifelse_te(renyokei, kanji_prefix, kana_prefix, function(acc) return 0 end)
add_infl_func_heibangata_ifelse(zu, kanji_prefix .. "ず", kana_prefix .. "ず", function(acc) return 0 end, function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(passive, kanji_prefix .. "られる", kana_prefix .. "られる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(causative, kanji_prefix .. "させる", kana_prefix .. "させる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(causative, kanji_prefix .. "さす", kana_prefix .. "さす", function(acc) return 0 end, function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(potential, kanji_prefix .. "られる", kana_prefix .. "られる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(potential, kanji_prefix .. "れる", kana_prefix .. "れる", function(acc) return 0 end, function(acc) return n_morae end)
if style.kureru then
add_infl_func(imperative, kanji_prefix, kana_prefix, function(acc) return acc end)
else
add_infl_func(imperative, kanji_prefix .. "ろ", kana_prefix .. "ろ", function(acc) return acc end)
end
add_infl_func_heibangata_ifelse(imperative, kanji_prefix .. "よ", kana_prefix .. "よ", function(acc) return n_morae - 1 end, function(acc) return acc end)
elseif style.suru then
local kanji_prefix
local kana_prefix
local su_kanji
if find(kanji, "す[ ]*る$") then
kanji_prefix = gsub(kanji, "す[ ]*る$", "")
elseif find(kanji, "為[ ]*る$") then
kanji_prefix = gsub(kanji, "為[ ]*る$", "")
su_kanji = "為"
else
error("Invalid suru verb lemma " .. kanji)
end
if not find(kana, "す[%. ]*る$") then
error("Invalid suru verb kana " .. lemma_kana)
end
kana_prefix = gsub(kana, "す[%. ]*る$", "") .. "."
add_infl_te_forms(kanji_prefix .. (su_kanji or "し") .. "て", kana_prefix .. "して")
add_infl_func(plain, kanji_prefix .. (su_kanji or "す") .. "る", kana_prefix .. "する", function(acc) return acc end)
add_infl_func_heibangata_ifelse(nai, kanji_prefix .. (su_kanji or "し") .. "ない", kana_prefix .. "しない", function(acc) return 0 end, function (acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(ba, kanji_prefix .. (su_kanji or "す") .. "れば", kana_prefix .. "すれば", function(acc) return n_morae end, function (acc) return acc end)
add_infl_func(imperative, kanji_prefix .. (su_kanji or "し") .. "ろ", kana_prefix .. "しろ", function (acc) return acc end)
add_infl_func(imperative, kanji_prefix .. (su_kanji or "せ") .. "よ", kana_prefix .. "せよ", function (acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(volitional, kanji_prefix .. (su_kanji or "し") .. "よう", kana_prefix .. "しよう", function(acc) return n_morae end, function (acc) return n_morae end)
add_infl_func_heibangata_ifelse(desiderative, kanji_prefix .. (su_kanji or "し") .. "たい", kana_prefix .. "したい", function(acc) return 0 end, function (acc) return n_morae end)
add_infl_func(masu, kanji_prefix .. (su_kanji or "し") .. "ます", kana_prefix .. "します", function(acc) return n_morae end)
add_infl_func_heibangata_ifelse_te(renyokei, kanji_prefix .. (su_kanji or "し"), kana_prefix .. "し", function (acc) return 0 end)
add_infl_func(zu, kanji_prefix .. (su_kanji or "せ") .. "ず", kana_prefix .. "せず", function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(passive, kanji_prefix .. (su_kanji or "さ") .. "れる", kana_prefix .. "される", function(acc) return 0 end, function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(causative, kanji_prefix .. (su_kanji or "さ") .. "せる", kana_prefix .. "させる", function(acc) return 0 end, function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(causative, kanji_prefix .. (su_kanji or "さ") .. "す", kana_prefix .. "さす", function(acc) return 0 end, function(acc) return n_morae - 1 end)
add_infl_func(potential, kanji_prefix .. (su_kanji and "出来" or "でき") .. "る", kana_prefix .. "できる", function(acc) return n_morae end)
elseif style.suru_zuru then
if find(kana, "っ[%. ]*す[%. ]*る$") then
local kana_prefix = gsub(kana, "っ[%. ]*す[%. ]*る$", "") .. "."
if not find(kanji, "す[ ]*る$") then
error("Invalid する verb lemma " .. lemma)
end
local kanji_prefix = gsub(kanji, "す[ ]*る$", "")
add_infl_te_forms(kanji_prefix .. "して", kana_prefix .. "っして")
add_infl_func(plain, kanji_prefix .. "する", kana_prefix .. "っする", function(acc) return acc end)
add_infl_func_heibangata_ifelse(nai, kanji_prefix .. "しない", kana_prefix .. "っしない", function(acc) return 0 end, function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(ba, kanji_prefix .. "すれば", kana_prefix .. "っすれば", function(acc) return n_morae end, function(acc) return acc end)
add_infl_func(imperative, kanji_prefix .. "しろ", kana_prefix .. "っしろ", function(acc) return acc end)
add_infl_func(imperative, kanji_prefix .. "せよ", kana_prefix .. "っせよ", function(acc) return n_morae - 1 end)
add_infl_func(volitional, kanji_prefix .. "しよう", kana_prefix .. "っしよう", function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(desiderative, kanji_prefix .. "したい", kana_prefix .. "っしたい", function(acc) return 0 end, function(acc) return n_morae end)
add_infl_func(masu, kanji_prefix .. "します", kana_prefix .. "っします", function(acc) return n_morae end)
add_infl_func_heibangata_ifelse_te(renyokei, kanji_prefix .. "し", kana_prefix .. "っし", function(acc) return 0 end)
add_infl_func(zu, kanji_prefix .. "せず", kana_prefix .. "っせず", function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(passive, kanji_prefix .. "せられる", kana_prefix .. "っせられる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(passive, kanji_prefix .. "しられる", kana_prefix .. "っしられる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(causative, kanji_prefix .. "しさせる", kana_prefix .. "っしさせる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(causative, kanji_prefix .. "しさす", kana_prefix .. "っしさす", function(acc) return 0 end, function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(potential, kanji_prefix .. "せられる", kana_prefix .. "っせられる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(potential, kanji_prefix .. "しられる", kana_prefix .. "っしられる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
elseif find(kanji, "す[ ]*る$") then
local kanji_prefix = gsub(kanji, "す[ ]*る$", "")
if not find(kana, "す[%. ]*る$") then
error("Invalid する verb kana " .. lemma_kana)
end
local kana_prefix = gsub(kana, "す[%. ]*る$", "") .. "."
add_infl_te_forms(kanji_prefix .. "して", kana_prefix .. "して")
add_infl_func(plain, kanji_prefix .. "する", kana_prefix .. "する", function(acc) return acc end)
add_infl_func_heibangata_ifelse(nai, kanji_prefix .. "さない", kana_prefix .. "さない", function(acc) return 0 end, function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(nai, kanji_prefix .. "しない", kana_prefix .. "しない", function(acc) return 0 end, function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(ba, kanji_prefix .. "すれば", kana_prefix .. "すれば", function(acc) return n_morae end, function(acc) return acc end)
add_infl_func_heibangata_ifelse_te(ba, kanji_prefix .. "せば", kana_prefix .. "せば", function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse_te(imperative, kanji_prefix .. "せ", kana_prefix .. "せ", function(acc) return acc end)
add_infl_func(imperative, kanji_prefix .. "しろ", kana_prefix .. "しろ", function(acc) return acc end)
add_infl_func_heibangata_ifelse_te(imperative, kanji_prefix .. "せよ", kana_prefix .. "せよ", function(acc) return n_morae - 1 end)
add_infl_func(volitional, kanji_prefix .. "そう", kana_prefix .. "そう", function(acc) return n_morae - 1 end)
add_infl_func(volitional, kanji_prefix .. "しよう", kana_prefix .. "しよう", function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(desiderative, kanji_prefix .. "したい", kana_prefix .. "したい", function(acc) return 0 end, function(acc) return n_morae end)
add_infl_func(masu, kanji_prefix .. "します", kana_prefix .. "します", function(acc) return n_morae end)
add_infl_func_heibangata_ifelse_te(renyokei, kanji_prefix .. "し", kana_prefix .. "し", function(acc) return acc end)
add_infl_func_heibangata_ifelse(zu, kanji_prefix .. "さず", kana_prefix .. "さず", function(acc) return 0 end, function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(passive, kanji_prefix .. "される", kana_prefix .. "される", function(acc) return 0 end, function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(causative, kanji_prefix .. "させる", kana_prefix .. "させる", function(acc) return 0 end, function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(causative, kanji_prefix .. "さす", kana_prefix .. "さす", function(acc) return 0 end, function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(potential, kanji_prefix .. "せる", kana_prefix .. "せる", function(acc) return 0 end, function(acc) return n_morae - 1 end)
elseif find(kanji, "ず[ ]*る$") then
local kanji_prefix = gsub(kanji, "ず[ ]*る$", "")
if not find(kana, "ず[%. ]*る$") then
error("Invalid ずる verb kana " .. lemma_kana)
end
local kana_prefix = gsub(kana, "ず[%. ]*る$", "") .. "."
add_infl_te_forms(kanji_prefix .. "じて", kana_prefix .. "じて")
add_infl_func(plain, kanji_prefix .. "ずる", kana_prefix .. "ずる", function(acc) return acc end)
add_infl_func_heibangata_ifelse(nai, kanji_prefix .. "じない", kana_prefix .. "じない", function(acc) return 0 end, function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(ba, kanji_prefix .. "ずれば", kana_prefix .. "ずれば", function(acc) return n_morae end, function(acc) return acc end)
add_infl_func(imperative, kanji_prefix .. "じろ", kana_prefix .. "じろ", function(acc) return acc end)
add_infl_func(imperative, kanji_prefix .. "ぜよ", kana_prefix .. "ぜよ", function(acc) return n_morae - 1 end)
add_infl_func(volitional, kanji_prefix .. "じよう", kana_prefix .. "じよう", function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(desiderative, kanji_prefix .. "じたい", kana_prefix .. "じたい", function(acc) return 0 end, function(acc) return n_morae end)
add_infl_func(masu, kanji_prefix .. "じます", kana_prefix .. "じます", function(acc) return n_morae end)
add_infl_func_heibangata_ifelse_te(renyokei, kanji_prefix .. "じ", kana_prefix .. "じ", function(acc) return acc end)
add_infl_func(zu, kanji_prefix .. "ぜず", kana_prefix .. "ぜず", function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(passive, kanji_prefix .. "じられる", kana_prefix .. "じられる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(passive, kanji_prefix .. "ぜられる", kana_prefix .. "ぜられる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(causative, kanji_prefix .. "じさせる", kana_prefix .. "じさせる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(causative, kanji_prefix .. "じさす", kana_prefix .. "じさす", function(acc) return 0 end, function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(potential, kanji_prefix .. "じられる", kana_prefix .. "じられる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(potential, kanji_prefix .. "ぜられる", kana_prefix .. "ぜられる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
else
error("Invalid する or ずる verb kana " .. lemma_kana)
end
elseif style.kuru then
local kanji_prefix
local kana_prefix
local ku_kanji
if find(kanji, "く[ ]*る$") then
kanji_prefix = gsub(kanji, "く[ ]*る$", "")
elseif find(kanji, "来[ ]*る$") then
kanji_prefix = gsub(kanji, "来[ ]*る$", "")
ku_kanji = "来"
else
error("Invalid kuru verb lemma " .. kanji)
end
if not find(kana, "く[%. ]*る$") then
error("Invalid kuru verb kana " .. lemma_kana)
end
kana_prefix = gsub(kana, "く[%. ]*る$", "") .. "."
add_infl_te_forms(kanji_prefix .. (ku_kanji or "き") .. "て", kana_prefix .. "きて")
add_infl_func(plain, kanji_prefix .. (ku_kanji or "く") .. "る", kana_prefix .. "くる", function(acc) return acc end)
add_infl_func_heibangata_ifelse(nai, kanji_prefix .. (ku_kanji or "こ") .. "ない", kana_prefix .. "こない", function(acc) return 0 end, function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(ba, kanji_prefix .. (ku_kanji or "く") .. "れば", kana_prefix .. "くれば", function(acc) return n_morae end, function(acc) return acc end)
add_infl_func(imperative, kanji_prefix .. (ku_kanji or "こ") .. "い", kana_prefix .. "こい", function(acc) return acc end)
add_infl_func(volitional, kanji_prefix .. (ku_kanji or "こ") .. "よう", kana_prefix .. "こよう", function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(desiderative, kanji_prefix .. (ku_kanji or "き") .. "たい", kana_prefix .. "きたい", function(acc) return 0 end, function(acc) return n_morae end)
add_infl_func(masu, kanji_prefix .. (ku_kanji or "き") .. "ます", kana_prefix .. "きます", function(acc) return n_morae end)
add_infl_func_heibangata_ifelse_te(renyokei, kanji_prefix .. (ku_kanji or "き"), kana_prefix .. "き", function(acc) return acc end)
add_infl_func_heibangata_ifelse(zu, kanji_prefix .. (ku_kanji or "こ") .. "ず", kana_prefix .. "こず", function(acc) return acc end, function(acc) return n_morae - 1 end)
add_infl_func_heibangata_ifelse(passive, kanji_prefix .. (ku_kanji or "こ") .. "られる", kana_prefix .. "こられる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(causative, kanji_prefix .. (ku_kanji or "こ") .. "させる", kana_prefix .. "こさせる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
add_infl_func_heibangata_ifelse(causative, kanji_prefix .. (ku_kanji or "こ") .. "さす", kana_prefix .. "こさす", function(acc) return 0 end, function(acc) return n_morae end)
add_infl_func_heibangata_ifelse(potential, kanji_prefix .. (ku_kanji or "こ") .. "られる", kana_prefix .. "こられる", function(acc) return 0 end, function(acc) return n_morae + 1 end)
end
for _, infl in ipairs(te) do
local te_form_acc = infl.acc
local te_form_n_morae = count_morae(infl.kana)
if te_form_acc == te_form_n_morae then error("て-form accent cannot be Odaka") end
if te_form_acc > te_form_n_morae then error("て-form accent is larger than kana") end
end
local ta = {}
for _, infl in ipairs(te) do
if usub(infl.kanji, ulen(infl.kanji), ulen(infl.kanji) + 1) == "で" then
for _, infl in ipairs(te) do
add_infl(ta, usub(infl.kanji, 1, ulen(infl.kanji) - 1) .. "だ", usub(infl.kana, 1, ulen(infl.kana) - 1) .. "だ", infl.acc)
end
else
for _, infl in ipairs(te) do
add_infl(ta, usub(infl.kanji, 1, ulen(infl.kanji) - 1) .. "た", usub(infl.kana, 1, ulen(infl.kana) - 1) .. "た", infl.acc)
end
end
end
local nakatta = {}
for _, infl in ipairs(nai) do
local nakatta_kanji = usub(infl.kanji, 1, ulen(infl.kanji) - 1) .. "かった"
local nakatta_kana = usub(infl.kana, 1, ulen(infl.kana) - 1) .. "かった"
local nakatta_acc
if infl.acc == 0 then
nakatta_acc = count_morae(nakatta_kana) - 3
else
nakatta_acc = infl.acc
end
add_infl(nakatta, nakatta_kanji, nakatta_kana, nakatta_acc)
end
local tara = {}
for _, infl in ipairs(ta) do
local tara_acc
if infl.acc == 0 then
tara_acc = count_morae(infl.kana)
else
tara_acc = infl.acc
end
add_infl(tara, infl.kanji .. "ら", infl.kana .. "ら", tara_acc)
end
local masen = {}
local mashou = {}
local mashita = {}
for _, infl in ipairs(masu) do
add_infl(mashita, usub(infl.kanji, 1, ulen(infl.kanji) - 1) .. "した", usub(infl.kana, 1, ulen(infl.kana) - 1) .. "した", infl.acc)
local masen_mashou_acc
if acc_is_deep(infl.acc) then
masen_mashou_acc = infl.acc
else
masen_mashou_acc = infl.acc + 1
end
add_infl(masen, usub(infl.kanji, 1, ulen(infl.kanji) - 1) .. "せん", usub(infl.kana, 1, ulen(infl.kana) - 1) .. "せん", masen_mashou_acc)
add_infl(mashou, usub(infl.kanji, 1, ulen(infl.kanji) - 1) .. "しょう", usub(infl.kana, 1, ulen(infl.kana) - 1) .. "しょう", masen_mashou_acc)
end
local continuative = {}
for _, infl in ipairs(renyokei) do
add_infl(continuative, infl.kanji, infl.kana, infl.acc)
end
for _, infl in ipairs(renyokei) do
add_infl(continuative, infl.kanji .. "に", infl.kana .. " に", infl.acc)
end
local negative_continuative = {}
for _, infl in ipairs(zu) do
add_infl(negative_continuative, infl.kanji, infl.kana, infl.acc)
end
for _, infl in ipairs(zu) do
add_infl(negative_continuative, infl.kanji .. "に", infl.kana .. " に", infl.acc)
end
return { plain = plain, te = te, ta = ta, nai = nai, nakatta = nakatta, ba = ba, tara = tara,
imperative = imperative, volitional = volitional, desiderative = desiderative, masu = masu, masen = masen, mashou = mashou, mashita = mashita,
continuative = continuative, negative_continuative = negative_continuative, passive = passive, causative = causative, potential = potential }
elseif style.adjective then
local kute_form_accs = te_form_accs
do
local contained = {}
for _, acc in ipairs(accs) do
contained[acc] = true
end
local buf = { [1] = {} }
for i = 1, #kute_form_accs do
if contained[kute_form_accs[i]] and (not ((i > 1) and (kute_form_accs[i] > kute_form_accs[i - 1]) and (not contained[kute_form_accs[i - 1]]))) then
local last_buf = buf[#buf]
if last_buf then
local any_contained = false
for _, b_acc in ipairs(last_buf) do
if contained[b_acc] then
any_contained = true
end
end
if any_contained then
table.insert(buf, {})
end
else
table.insert(buf, {})
end
end
table.insert(buf[#buf], kute_form_accs[i])
end
local reordered_kute_form_accs = {}
for _, b in ipairs(buf) do
for _, b_acc in ipairs(b) do
if contained[b_acc] then
table.insert(reordered_kute_form_accs, b_acc)
end
end
for _, b_acc in ipairs(b) do
if not contained[b_acc] then
table.insert(reordered_kute_form_accs, b_acc)
end
end
end
kute_form_accs = reordered_kute_form_accs
end
local plain = {}
local terminal = {}
local kute = {}
local ku = {}
local kunai = {}
local katta = {}
local kunakatta = {}
local kereba = {}
local desu = {}
local function add_infl_kute_forms(kute_form_kanji, kute_form_kana)
for _, kute_form_acc in ipairs(kute_form_accs) do
add_infl(kute, kute_form_kanji, kute_form_kana, kute_form_acc)
end
end
local function add_infl_func(infl_table, kanji, kana, func)
for _, acc in ipairs(accs) do
if acc_is_deep(acc) then
add_infl(infl_table, kanji, kana, acc)
else
add_infl(infl_table, kanji, kana, func(acc))
end
end
end
local function add_infl_func_heibangata_ifelse(infl_table, kanji, kana, true_func, false_func)
for _, acc in ipairs(accs) do
if acc == 0 then
add_infl(infl_table, kanji, kana, true_func(acc))
elseif acc_is_deep(acc) then
add_infl(infl_table, kanji, kana, acc)
else
add_infl(infl_table, kanji, kana, false_func(acc))
end
end
end
local function add_infl_func_heibangata_ifelse_kute(infl_table, kanji, kana, func)
for _, acc in ipairs(accs) do
if acc == 0 then
add_infl(infl_table, kanji, kana, func(acc))
elseif acc_is_deep(acc) then
add_infl(infl_table, kanji, kana, acc)
else
for _, kute_form_acc in ipairs(kute_form_accs) do
if kute_form_acc == 0 then
add_infl(infl_table, kanji, kana, func(0))
else
add_infl(infl_table, kanji, kana, kute_form_acc)
end
end
end
end
end
if not find(kana, "い$") then
error("Invalid い-adjective kana " .. lemma_kana)
end
local kanji_prefix = usub(kanji, 1, ulen(kanji) - 1)
local kana_prefix = usub(kana, 1, ulen(kana) - 1)
local kanji_ku_prefix
local kana_ku_prefix
if style.yoku then
if find(kanji, "い[ ]*い$") then
kanji_ku_prefix = gsub(kanji, "い[ ]*い$", "よ")
elseif find(kanji, "[良好善佳吉宜][ ]*い$") then
kanji_ku_prefix = kanji_prefix
else
error("Invalid いい adjective lemma " .. kanji)
end
if not find(kana, "い[%. ]*い$") then
error("Invalid いい adjective kana " .. lemma_kana)
end
kana_ku_prefix = gsub(kana, "い[%. ]*い$", "") .. "よ"
else
kanji_ku_prefix = kanji_prefix
kana_ku_prefix = kana_prefix
end
add_infl_kute_forms(kanji_ku_prefix .. "くて", kana_ku_prefix .. "くて")
add_infl_func(plain, kanji_prefix .. "い", kana_prefix .. "い", function(acc) return acc end)
add_infl_func(terminal, kanji_prefix .. "い", kana_prefix .. "い", function(acc) return acc end)
add_infl_func_heibangata_ifelse(terminal, kanji_prefix .. "い", kana_prefix .. "い", function(acc) return n_morae - 1 end, function(acc) return acc end)
add_infl_func_heibangata_ifelse_kute(ku, kanji_ku_prefix .. "く", kana_ku_prefix .. "く", function(acc) return acc end)
add_infl_func_heibangata_ifelse(desu, kanji_prefix .. "いです", kana_prefix .. "い です", function(acc) return n_morae - 1 end, function(acc) return acc end)
for _, infl in ipairs(kute) do
local kute_form_acc = infl.acc
local kute_form_n_morae = count_morae(infl.kana)
if kute_form_acc == 0 then error("くて-form accent cannot be Heiban") end
if kute_form_acc == kute_form_n_morae then error("くて-form accent cannot be Odaka") end
if kute_form_acc == kute_form_n_morae - 1 then error("くて-form accent cannot have accent at く") end
if kute_form_acc > kute_form_n_morae then error("くて-form accent is larger than kana") end
add_infl(katta, kanji_ku_prefix .. "かった", kana_ku_prefix .. "かった", kute_form_acc)
add_infl(kereba, kanji_ku_prefix .. "ければ", kana_ku_prefix .. "ければ", kute_form_acc)
end
for _, infl in ipairs(ku) do
if infl.acc == 0 then
add_infl(kunai, kanji_ku_prefix .. "くない", kana_ku_prefix .. "く ない", n_morae + 1)
add_infl(kunakatta, kanji_ku_prefix .. "くなかった", kana_ku_prefix .. "く なかった", n_morae + 1)
else
add_infl(kunai, kanji_ku_prefix .. "くない", kana_ku_prefix .. "く ない", kana_ku_prefix .. "く+ない" .. infl.acc .. "+1")
add_infl(kunakatta, kanji_ku_prefix .. "くなかった", kana_ku_prefix .. "く なかった", kana_ku_prefix .. "く+なかった" .. infl.acc .. "+1")
end
end
return { plain = plain, kute = kute, ku = ku, kunai = kunai, katta = katta,
kunakatta = kunakatta, kereba = kereba, terminal = terminal, desu = desu }
end
end
end
local function inflections_to_wikitext(output_table, lemma, is_verb)
local wikitext_stringbuffer = {}
table.insert(wikitext_stringbuffer, '<div class="vsSwitcher" data-toggle-category="accent">\n<div style="display: inline-block;">\n* Trọng âm âm vực Tokyo theo ')
if is_verb then
table.insert(wikitext_stringbuffer, "chia động từ")
else
table.insert(wikitext_stringbuffer, "biến tố")
end
table.insert(wikitext_stringbuffer, ' của <span lang="ja" class="Jpan">')
table.insert(wikitext_stringbuffer, lemma)
table.insert(wikitext_stringbuffer, '</span><span class="vsToggleElement" style="margin-left: 1em;"></span></div>\n<div class="vsHide">\n{| class="wikitable" style="white-space: nowrap;"\n')
for _, v in ipairs(output_table) do
local label = v[1]
local infl_table = v[2]
table.insert(wikitext_stringbuffer, '! ')
table.insert(wikitext_stringbuffer, label)
table.insert(wikitext_stringbuffer, '\n| ')
local kanji = {}
local ja_pron_accs = {}
local ja_pron_romajis = {}
local kanji_duplicate = {}
local kana_acc_duplicate = {}
for _, infl in ipairs(infl_table) do
if not kanji_duplicate[infl.kanji] then
table.insert(kanji, infl.kanji)
kanji_duplicate[infl.kanji] = true
end
local kana_acc_duplicate_key = infl.kana .. " " .. infl.acc
if not kana_acc_duplicate[kana_acc_duplicate_key] then
local ja_pron_acc, ja_pron_romaji = match(m_ja_pron.accent(infl.kana, infl.acc), '(<span lang="ja" class="Jpan">.-) (<span class="Latn"><samp>.-</samp></span>)')
table.insert(ja_pron_accs, ja_pron_acc)
table.insert(ja_pron_romajis, ja_pron_romaji)
kana_acc_duplicate[kana_acc_duplicate_key] = true
end
end
if #kanji == 0 then
table.insert(wikitext_stringbuffer, '-')
else
for i, k in ipairs(kanji) do
table.insert(wikitext_stringbuffer, '<span class="Jpan" lang="ja">')
table.insert(wikitext_stringbuffer, k)
table.insert(wikitext_stringbuffer, '</span>')
if i ~= #kanji then
table.insert(wikitext_stringbuffer, '<br>')
end
end
end
table.insert(wikitext_stringbuffer, '\n| ')
if #ja_pron_accs == 0 then
table.insert(wikitext_stringbuffer, '-')
else
for i, ja_pron_acc in ipairs(ja_pron_accs) do
table.insert(wikitext_stringbuffer, ja_pron_acc)
if i ~= #ja_pron_accs then
table.insert(wikitext_stringbuffer, '<br>')
end
end
end
table.insert(wikitext_stringbuffer, '\n| ')
if #ja_pron_romajis == 0 then
table.insert(wikitext_stringbuffer, '-')
else
for i, ja_pron_romaji in ipairs(ja_pron_romajis) do
table.insert(wikitext_stringbuffer, ja_pron_romaji)
if i ~= #ja_pron_romajis then
table.insert(wikitext_stringbuffer, '<br>')
end
end
end
table.insert(wikitext_stringbuffer, '\n|-\n')
end
table.insert(wikitext_stringbuffer, '|}</div></div>')
return table.concat(wikitext_stringbuffer)
end
local function sub_complex_acc(output_table, format_str)
local complex_sub_kana, complex_sub_accs = match(format_str, "^%s*(.-)%s*=%s*(.-)%s*$")
if (not (complex_sub_kana and complex_sub_accs))
or (not match(complex_sub_kana, "kana"))
or (match(complex_sub_kana, "acc")) then
error("Format")
end
local new_table = {}
for complex_sub_acc in gsplit(complex_sub_accs, ",") do
complex_sub_acc = gsub(complex_sub_acc, "^%s*(.-)%s*$", "%1")
if (not match(complex_sub_acc, "kana"))
or (not match(complex_sub_acc, "acc")) then
error("Format")
end
for key, infl_table in pairs(output_table) do
local new_infl_table = new_table[key] or {}
for _, infl in ipairs(infl_table) do
local new_kana = gsub(complex_sub_kana, "kana", infl.kana)
local new_acc
if match(infl.acc, "+") then
local kana_part, acc_part = match(infl.acc, "^([^A-Za-z0-9]+)(.+)$")
if not (kana_part and acc_part) then
error("Format")
end
new_acc = gsub(gsub(complex_sub_acc, "kana", kana_part), "acc", acc_part)
else
new_acc = gsub(gsub(complex_sub_acc, "kana", infl.kana), "acc", infl.acc)
end
table.insert(new_infl_table, {kanji = infl.kanji, kana = new_kana, acc = new_acc})
end
new_table[key] = new_infl_table
end
end
return new_table
end
function export.verb_conjugations_to_wikitext(verb_conjugations)
return inflections_to_wikitext({
{"Đơn giản", verb_conjugations.plain},
{"Liên từ", verb_conjugations.te},
{"Hoàn thành", verb_conjugations.ta},
{"Phủ định", verb_conjugations.nai},
{"Hoàn thành phủ định", verb_conjugations.nakatta},
{"Điều kiện giả định", verb_conjugations.ba},
{"Điều kiện quá khứ", verb_conjugations.tara},
{"Mệnh lệnh", verb_conjugations.imperative},
{"ý chí", verb_conjugations.volitional},
{"Mong muốn", verb_conjugations.desiderative},
{"Trang trọng", verb_conjugations.masu},
{"Trang trọng phủ định", verb_conjugations.masen},
{"Trang trọng ý chí", verb_conjugations.mashou},
{"Trang trọng hoàn thành", verb_conjugations.mashita},
{"Tiếp diễn", verb_conjugations.continuative},
{"Tiếp diễn phủ định", verb_conjugations.negative_continuative},
{"Bị động", verb_conjugations.passive},
{"Sai khiến", verb_conjugations.causative},
{"Khả năng", verb_conjugations.potential}
}, verb_conjugations.plain[1].kanji, true)
end
function export.adjective_inflections_to_wikitext(adjective_inflections)
return inflections_to_wikitext({
{"Đơn giản", adjective_inflections.plain},
{"Liên từ", adjective_inflections.kute},
{"Tiếp diễn", adjective_inflections.ku},
{"Phủ định", adjective_inflections.kunai},
{"Quá khứ", adjective_inflections.katta},
{"Quá khứ phủ định", adjective_inflections.kunakatta},
{"Điều kiện", adjective_inflections.kereba},
{"Kết thúc", adjective_inflections.terminal},
{"Trang trọng", adjective_inflections.desu}
}, adjective_inflections.plain[1].kanji, false)
end
function export.conjugate_verb(lemma, kana, conjugation_type_id, accs, te_form_accs)
local inflection_type = get_inflection_type(conjugation_type_id)
if not inflection_type or not inflection_type.style.verb then
error("Không rõ loại động từ " .. conjugation_type_id)
end
return inflect(lemma, kana, inflection_type.style, accs, te_form_accs)
end
function export.inflect_adjective(lemma, kana, inflection_type_id, accs, kute_form_accs)
local inflection_type = get_inflection_type(inflection_type_id)
if not inflection_type or not inflection_type.style.adjective then
error("Không rõ loại tính từ " .. inflection_type_id)
end
return inflect(lemma, kana, inflection_type.style, accs, kute_form_accs)
end
local function string_to_positive_integer(str)
if not string.match(str, "^%d+$") then
error("String \"" .. str .. "\" is not a positive integer")
end
return tonumber(str)
end
local function string_list_to_positive_integer_list(str_list)
local result = {}
for _, str in ipairs(str_list) do
local i = string_to_positive_integer(str)
table.insert(result, i)
end
return result
end
function export.show(frame)
local args = frame:getParent().args
local type_id = args[1]
if not type_id then
error("Bắt buộc phải có tham số đầu tiên")
end
type_id = gsub(type_id, "^%s*(.-)%s*$", "%1")
local inflection_type = get_inflection_type(type_id)
if not inflection_type then
error("Không rõ loại " .. type_id)
end
if inflection_type.style.verb then
local params = {
[1] = {required=true},
[2] = {required=true},
["acc"] = {sublist=true, required=true},
["て-form-acc"] = {sublist=true, required=true},
["lemma"] = {},
["complex"] = {}
}
local pargs = require("Module:parameters").process(args, params)
local verb_conjugations = export.conjugate_verb(
pargs["lemma"] or mw.loadData("Module:headword/data").pagename,
pargs[2],
pargs[1],
string_list_to_positive_integer_list(pargs["acc"]),
string_list_to_positive_integer_list(pargs["て-form-acc"]))
if pargs["complex"] then
verb_conjugations = sub_complex_acc(verb_conjugations, pargs["complex"])
end
return export.verb_conjugations_to_wikitext(verb_conjugations)
elseif inflection_type.style.adjective then
local params = {
[1] = {required=true},
[2] = {required=true},
["acc"] = {sublist=true, required=true},
["くて-form-acc"] = {sublist=true, required=true},
["lemma"] = {},
["complex"] = {}
}
local pargs = require("Module:parameters").process(args, params)
local adjective_inflections = export.inflect_adjective(
pargs["lemma"] or mw.loadData("Module:headword/data").pagename,
pargs[2],
pargs[1],
string_list_to_positive_integer_list(pargs["acc"]),
string_list_to_positive_integer_list(pargs["くて-form-acc"]))
if pargs["complex"] then
adjective_inflections = sub_complex_acc(adjective_inflections, pargs["complex"])
end
return export.adjective_inflections_to_wikitext(adjective_inflections)
end
end
function export.acc_counter_table(frame)
local params = {
[1] = { required=true, allow_empty=true, list=true },
["lemma"] = { },
["kana"] = { }
}
local args = require("Module:parameters").process(frame.args, params)
local counter_lemma = args["lemma"]
local counter_kana = args["kana"]
local content = args[1]
local c_table = require("Module:ja-counter-table").acc_counter_table(counter_lemma, counter_kana, content)
return '<div class="vsSwitcher" data-toggle-category="accent">\n<div style="display: inline-block;">\n* Biến thể trọng âm âm vực Tokyo của <span lang="ja" class="Jpan">'
.. counter_lemma .. '</span><span class="vsToggleElement" style="margin-left: 1em;"></span></div>\n<div class="vsHide">'
.. c_table .. '</div></div>'
end
return export
d25bnlbxtrby3xhmufh0i12cunv8tcd
Mô đun:gmh-pronunciation
828
389968
2570039
2339357
2026-10-13T03:10:43Z
Hiyuune
50834
2570039
Scribunto
text/plain
local export = {}
local m_IPA = require("Module:IPA")
local m_table = require("Module:table")
local lang = require("Module:languages").getByCode("gmh")
local rsub = mw.ustring.gsub
local rlower = mw.ustring.lower
local rfind = mw.ustring.find
local consonants = "bpmwfdtznɲrlkɡhvxjsʋʃs̄s̠"
local C = "[" .. consonants .. "]"
local vowels = "aeɛiouæøyə"
local function track(page)
require("Module:debug").track("gmh-IPA/" .. page)
return true
end
local function rsub_repeatedly(term, foo, bar)
while true do
local new_term = rsub(term, foo, bar)
if new_term == term then
return term
end
term = new_term
end
end
local trigraphs = {
["sch"] = "ʃ",
}
local digraphs = {
["iu"] = "yː",
["ei"] = "ei̯",
["ęi"] = "ei̯",
["ẹi"] = "ei̯",
["ie"] = "iə̯",
["ou"] = "ou̯",
["uo"] = "uo̯",
["öu"] = "øy̯",
["eu"] = "eu̯",
["üu"] = "yu̯", --for non-normalised/dialectal pronunciations
["üe"] = "yə̯",
["pf"] = "p͡f",
["ph"] = "p͡f",
["ch"] = "x",
["qu"] = "kw",
["ht"] = "xt",
["hs"] = "xs",
["lh"] = "lx",
["kh"] = "k͡x", --for non-normalised/dialectal pronunciations
["rh"] = "rx",
["ss"] = "s̠ː",
["pp"] = "pː",
["bb"] = "bː",
["tt"] = "tː",
["dd"] = "dː",
["ck"] = "kː",
["gg"] = "gː",
["ff"] = "fː",
["mm"] = "mː",
["nn"] = "nː",
["ll"] = "lː",
["rr"] = "rː",
["tz"] = "zː",
["ȥȥ"] = "ȥː",
}
local function flatmap(items, fun)
local new = {}
for _, item in ipairs(items) do
local results = fun(item)
mw.logObject(results, "results")
for _, result in ipairs(results) do
table.insert(new, result)
end
mw.logObject(new, "new")
end
return new
end
local phon = {
["a"] = "a",
["ā"] = "aː",
["â"] = "aː",
["ä"] = "æ",
["æ"] = "æː",
["ə"] = "ə",
["e"] = "e",
["ę"] = "e",
["ẹ"] = "e",
["ë"] = "ɛ",
["ē"] = "eː",
["ê"] = "eː",
["i"] = "i",
["ī"] = "iː",
["î"] = "iː",
["o"] = "o",
["ō"] = "oː",
["ô"] = "oː",
["u"] = "u",
["ū"] = "uː",
["û"] = "uː",
["ö"] = "ø",
["œ"] = "øː",
["ü"] = "y",
["b"] = "b",
["p"] = "p",
["m"] = "m",
["w"] = "w",
["v"] = "v",
["d"] = "d",
["t"] = "t",
["s"] = "s̠",
["ȥ"] = "s",
["ß"] = "s",
["z"] = "t͡s",
["n"] = "n",
["r"] = "r",
["l"] = "l",
["c"] = "k",
["k"] = "k",
["g"] = "ɡ",
["h"] = "h",
[":"] = "ː",
["?"] = "ʔ"
}
function export.phonemic(text, post)
text = rlower(text)
text = rsub(text, " | ", "# | #")
text = "##" .. rsub(text, " ", "# #") .. "##"
-- basic phonology
for digraph, replacement in pairs(digraphs) do
text = rsub(text, digraph, replacement)
end
text = rsub(text, ".", phon)
text = rsub(text, "^ˈ%-", "-")
if not rfind(text, "'") then
text = rsub(text, text, "ˈ" .. text)
end
text = rsub(text, "'", "ˈ")
text = rsub(text, "-", "");
text = rsub(text, "(e)(" .. C .. ")", "ə%2")
text = rsub(text, "(e)ˈ", "əˈ")
text = rsub(text, "(e)#", "ə#")
text = rsub(text, "(ˈ" .. C .. "*)(ə)", "%1e")
text = rsub(text, "(ˈ##" .. C .. "*)(ə)", "%1e")
-- suffixes
local variants = {text}
local function flatmap_and_sub_pre(from, to1, to2)
variants =
flatmap(
variants,
function(item)
if rfind(item, from) then
local retval = {rsub_repeatedly(item, from, to1)}
if to2 then
m_table.insertIfNot(retval, rsub_repeatedly(item, from, to2))
end
return retval
else
return {item}
end
end
)
end
flatmap_and_sub_pre("v", "v", "f")
flatmap_and_sub_pre("#", "")
return variants
end
function export.IPA(frame)
local terms = {}
args = frame:getParent().args
local currentTitle = mw.loadData("Module:headword/data").pagename
for _, term in ipairs(args) do
if term == currentTitle then track("redundant") end
table.insert(terms, term)
end
if #terms == 0 then
terms = {currentTitle}
end
local results = {}
for _, term in ipairs(terms) do
local phonemic = export.phonemic(term)
for _, variant in ipairs(phonemic) do
table.insert(results, {pron = "/" .. variant .. "/"})
end
end
results[1].q = {"trước TK 13"}
return "*" .. m_IPA.format_IPA_full { lang = lang, items = results }
end
return export
6ao2xpkbc9gvdsjc8wwpbrcxz23dvvv
កាង៉ាច
0
393163
2569904
2461946
2026-10-12T14:26:05Z
WhoAlone
40420
2569904
wikitext
text/x-wiki
=={{langname|tpu}}==
==={{ĐM|pron}}===
* {{IPA4|tpu|/kaŋaːc/}}
==={{ĐM|noun}}===
{{head|tpu|Danh từ}}
# [[buổi chiều]], [[tối]].
#:{{ux|tpu|'''កាង៉ាច '''ទៀ អាញ់ ចឹង ឡាំ ចាចាក ប៉ាគ់ ហី អីស។ |'''Chiều''' nay tôi sẽ đi thăm nhà bạn.}}
==={{ĐM|ref}}===
* [https://web.archive.org/web/20250207062711/https://www.webonary.org/tampuan-english/ ''Từ điển Tampuan - Anh''] tại Webonary.
{{c|tpu|Thời gian}}
ccfmgtpdzfnyltnasm3w4veuafjzej7
trục số
0
415837
2570094
2562487
2026-10-13T07:15:14Z
Hiyuune
50834
/* Tiếng Việt */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2570094
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|etym}}===
{{af|vi|trục|số}}
==={{section|pron}}===
{{vi-pron}}
* {{audio|vi|LL-Q9199 (vie)-Penn Zero MSSJ-trục số.wav|a=Hanoi}}
==={{section|noun}}===
{{vi-noun}}
# {{lb|vi|toán học}} [[đường thẳng|Đường thẳng]] nằm ngang biểu diễn các số.
==={{section|see}}===
* {{l|vi|tia số}}
0v5amjlpb74plwzu5pfa8epcz63rftz
quân cảm tử
0
419848
2569946
2569767
2026-10-12T15:00:08Z
TheHighFighter2
42988
2569946
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|n}}===
{{vi-noun}}
# {{lb|vi|quân sự}} {{syn of|vi|cảm tử quân}}.
4xft7iqy6hgmlax0ia89m49hl5avxgm
2569965
2569946
2026-10-12T15:05:33Z
TheHighFighter2
42988
2569965
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|n}}===
{{vi-noun|head=[[quân]] [[cảm tử]]}}
# {{lb|vi|quân sự}} {{syn of|vi|cảm tử quân}}.
r3wl96wwnuuu21xuyhf2d24hup5fft1
trại cải tạo
0
419852
2569980
2569775
2026-10-12T15:14:51Z
TheHighFighter2
42988
/* Tiếng Việt */
2569980
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|etym}}===
Từ {{ghép|vi|trại|cải tạo}}.
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun|head=[[trại]] [[cải tạo]]}}
# Trại quản lí tập trung một số loại người [[xấu]] trong xã hội để buộc phải [[lao động]], [[học tập]] và [[rèn luyện]] nhằm cải tạo thành người tốt, người [[lương thiện]].
==={{section|ref}}===
* {{R:Tratu}}
8stc5tw5wtv7urwqb7bbel6u7c65rwn
chủ đầu tư
0
419859
2569898
2569806
2026-10-12T12:56:46Z
TheHighFighter2
42988
/* Tiếng Việt */
2569898
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun|head=[[chủ]] [[đầu tư]]}}
# Tổ chức, cá nhân sở hữu [[vốn]] hoặc được giao quản lý, trực tiếp tổ chức thực hiện dự án đầu tư, nhất là trong [[xây dựng]].
==={{section|see}}===
* {{l|vi|nhà đầu tư}}
==={{section|ref}}===
* {{Chú thích web|date=28-07-2026|title=Phân biệt nhà đầu tư và chủ đầu tư theo quy định mới nhất|work=Trang thông tin điện tử phổ biến giáo dục pháp luật tỉnh Cao Bằng|url=https://pbgdpl.caobang.gov.vn/ho-tro-phap-ly-cho-doanh-nghiep-nho-va-vua/phan-biet-nha-dau-tu-va-chu-dau-tu-theo-quy-dinh-moi-nhat-1066398}}
sr1mq6p3pyahb79oro857rc3pmq5r59
gánh nặng
0
419861
2569888
2569811
2026-10-12T12:03:11Z
TheHighFighter2
42988
/* Tiếng Việt */
2569888
wikitext
text/x-wiki
=={{langname|vi}}==
==={{ĐM|etym}}===
Từ {{ghép|vi|gánh|nặng}}.
==={{section|pron}}===
{{vi-pron}}
==={{section|n}}===
{{vi-noun}}
# {{nhãn|vi|nghĩa bóng}} [[trách nhiệm|Trách nhiệm]], [[khó khăn]] hoặc nỗi [[lo toan]], [[áp lực]] lớn phải [[gánh vác]].
#: {{ux|vi|'''Gánh nặng''' gia đình.}}
==={{section|ana}}===
* {{anagrams|vi|nặng gánh}}
okh8q37y883ti0zujngndsnd2gej5fy
2569891
2569888
2026-10-12T12:07:46Z
TheHighFighter2
42988
/* Tiếng Việt */
2569891
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|etym}}===
Từ {{ghép|vi|gánh|nặng}}.
==={{section|pron}}===
{{vi-pron}}
==={{section|n}}===
{{vi-noun}}
# {{nhãn|vi|nghĩa bóng}} [[trách nhiệm|Trách nhiệm]], [[khó khăn]] hoặc nỗi [[lo toan]], [[áp lực]] lớn phải [[gánh vác]].
#: {{ux|vi|'''Gánh nặng''' gia đình.}}
===={{section|trans}}====
{{trans-top|Trách nhiệm, khó khăn hoặc nỗi lo toan, áp lực lớn phải gánh vác}}
* {{langname|en}}: {{t+|en|burden}}
{{trans-bottom}}
==={{section|ana}}===
* {{anagrams|vi|nặng gánh}}
0x8gurntutxo4ud39j1vvgr8cme28pg
xoáy tụ
0
419869
2569990
2569826
2026-10-12T16:02:06Z
TheHighFighter2
42988
Gắn biển {{[[Bản mẫu:cần kiểm tra|cần kiểm tra]]}}, vui lòng cung cấp thêm thông tin chứng thực
2569990
wikitext
text/x-wiki
{{cần kiểm tra}}
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# {{syn of|vi|xoáy thuận}}.
qygqz1mud54facg3kxbk4xfdhz20i9c
2570002
2569990
2026-10-12T16:18:23Z
TienMinh-mun6xnChing
57893
TienMinh-mun6xnChing đã đổi [[xoáy tố]] thành [[xoáy tụ]]: sai chính tả
2569990
wikitext
text/x-wiki
{{cần kiểm tra}}
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# {{syn of|vi|xoáy thuận}}.
qygqz1mud54facg3kxbk4xfdhz20i9c
2570005
2570002
2026-10-12T16:18:51Z
TienMinh-mun6xnChing
57893
/* */ tôi đã thêm thông tin chứng thực hẹ hẹ
2570005
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# {{syn of|vi|xoáy thuận}}.
3w8hfrbs46rvswj8kpmzx6dx61e4h6x
xì nách
0
419873
2569983
2569851
2026-10-12T15:19:26Z
TheHighFighter2
42988
/* Tiếng Việt */
2569983
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|etym}}===
Từ {{borrowed|vi|en|snack}}.
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# {{lb|vi|miền Nam}} {{syn of|vi|bim bim}}.
ha0i79xvd31e1rtb4924hav9l41rln9
mỳ gói
0
419874
2569984
2569862
2026-10-12T15:24:59Z
TheHighFighter2
42988
/* Tiếng Việt */
2569984
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|noun}}===
{{vi-noun}}
# {{vi-alt sp|mì gói}}
7elnk5ltbzuo4fuuyt8uf9h0nygl1cm
ăn chực
0
419875
2569921
2569857
2026-10-12T14:39:50Z
TheHighFighter2
42988
2569921
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|etym}}===
Từ {{ghép|vi|ăn|chực}}.
==={{section|pron}}===
{{vi-pron}}
==={{section|v}}===
{{vi-verb}}
# Ăn nhờ vào phần của người khác.
#: {{ux|vi|Ăn mày đòi xôi gấc, '''ăn chực''' đòi bánh chưng.|q=thành ngữ}}
===={{section|ref}}====
{{R:Tratu}}
2cxhsb2vz1wfrqzs3fu6od81al9bz7j
mì gói
0
419876
2569985
2569861
2026-10-12T15:27:43Z
TheHighFighter2
42988
/* */
2569985
wikitext
text/x-wiki
=={{langname|vi}}==
==={{ĐM|etym}}===
Từ {{com|vi|mì|gói}}.
==={{ĐM|pron}}===
{{vi-IPA}}
==={{ĐM|noun}}===
{{vi-noun}}
# {{lb|vi|miền Nam|colloquial}} {{syn of|vi|mì ăn liền}}.
{{C|vi|Thực phẩm}}
6eqwvl2dk8npuqyi1prqcm06mh80cnh
2569986
2569985
2026-10-12T15:29:21Z
TheHighFighter2
42988
/* Tiếng Việt */
2569986
wikitext
text/x-wiki
=={{langname|vi}}==
==={{ĐM|alt}}===
* {{alt|vi|mỳ gói}}
==={{ĐM|etym}}===
Từ {{com|vi|mì|gói}}.
==={{ĐM|pron}}===
{{vi-IPA}}
==={{ĐM|noun}}===
{{vi-noun}}
# {{lb|vi|miền Nam|colloquial}} {{syn of|vi|mì ăn liền}}.
{{C|vi|Thực phẩm}}
olhbcnm61e1ubhgzndljon0h7quzool
hướng ngoại
0
419878
2569892
2569874
2026-10-12T12:19:01Z
TienMinh-mun6xnChing
57893
/* Động từ */
2569892
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|verb}}===
{{vi-verb}}
# Hướng ra bên ngoài bản thân mình.
#: {{ux|vi|Xu thế '''hướng ngoại'''.}}
#: {{ux|vi|Tính '''hướng ngoại'''.}}
#: {{ant|vi|hướng nội}}
# Hướng ra [[nước ngoài]], coi trọng việc [[quan hệ]], [[buôn bán]] với nước ngoài hơn trong nước.
#: {{ux|vi|Thị trường '''hướng ngoại'''.}}
#: {{ux|vi|Nền kinh tế mở và '''hướng ngoại'''.}}
==={{section|ref}}===
{{R:Tratu}}
dvlx3jdiqi7b3m5kbwlc0cw94k2a3ba
2569902
2569892
2026-10-12T14:24:52Z
TheHighFighter2
42988
/* Tiếng Việt */
2569902
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|etym}}===
{{vi-etym-sino|向外}}.
==={{section|pron}}===
{{vi-pron}}
==={{section|verb}}===
{{vi-verb}}
# Hướng ra bên ngoài bản thân mình.
#: {{ux|vi|Xu thế '''hướng ngoại'''.}}
#: {{ux|vi|Tính '''hướng ngoại'''.}}
# Hướng ra [[nước ngoài]], coi trọng việc [[quan hệ]], [[buôn bán]] với nước ngoài hơn trong nước.
#: {{ux|vi|Thị trường '''hướng ngoại'''.}}
#: {{ux|vi|Nền kinh tế mở và '''hướng ngoại'''.}}
===={{section|ant}}====
* {{l|vi|hướng nội}}
==={{section|ref}}===
{{R:Tratu}}
qzg9xytf2qeglgdqtpzg61z7dxbz2hx
hướng nội
0
419880
2569893
2026-10-12T12:21:00Z
TienMinh-mun6xnChing
57893
Trang mới: “=={{langname|vi}}== ==={{section|pron}}=== {{vi-pron}} ==={{section|verb}}=== {{vi-verb}} # Hướng vào bên trong của bản thân mình. #: {{ux|vi|Sống '''hướng nội'''.}}. #: {{ant|vi|hướng ngoại}} # Hướng vào trong nước, coi trọng việc phát triển trong nước hơn việc quan hệ, buôn bán với nước ngoài. #: {{ux|vi|Chính sách '''hướng nội'''.}} #: {{ux|vi|Kêu gọi các nhà đầu tư '''hướng nội'''.}} ===={{s…”
2569893
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|verb}}===
{{vi-verb}}
# Hướng vào bên trong của bản thân mình.
#: {{ux|vi|Sống '''hướng nội'''.}}.
#: {{ant|vi|hướng ngoại}}
# Hướng vào trong nước, coi trọng việc phát triển trong nước hơn việc quan hệ, buôn bán với nước ngoài.
#: {{ux|vi|Chính sách '''hướng nội'''.}}
#: {{ux|vi|Kêu gọi các nhà đầu tư '''hướng nội'''.}}
===={{section|ref}}====
{{R:Tratu}}
ssagmeq95p0zzp503cg3o2isevbwws4
2569894
2569893
2026-10-12T12:21:09Z
TienMinh-mun6xnChing
57893
2569894
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|verb}}===
{{vi-verb}}
# Hướng vào bên trong của bản thân mình.
#: {{ux|vi|Sống '''hướng nội'''.}}
#: {{ant|vi|hướng ngoại}}
# Hướng vào trong nước, coi trọng việc phát triển trong nước hơn việc quan hệ, buôn bán với nước ngoài.
#: {{ux|vi|Chính sách '''hướng nội'''.}}
#: {{ux|vi|Kêu gọi các nhà đầu tư '''hướng nội'''.}}
===={{section|ref}}====
{{R:Tratu}}
s6w914vus4i230a8kv1p2l12hsr6vlo
2569901
2569894
2026-10-12T14:21:35Z
TheHighFighter2
42988
/* Tiếng Việt */
2569901
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|etym}}===
{{vi-etym-sino|向內}}.
==={{section|pron}}===
{{vi-pron}}
==={{section|verb}}===
{{vi-verb}}
# Hướng vào bên trong của bản thân mình.
#: {{ux|vi|Sống '''hướng nội'''.}}
# Hướng vào trong nước, coi trọng việc phát triển trong nước hơn việc quan hệ, buôn bán với nước ngoài.
#: {{ux|vi|Chính sách '''hướng nội'''.}}
#: {{ux|vi|Kêu gọi các nhà đầu tư '''hướng nội'''.}}
===={{section|ant}}====
* {{l|vi|hướng ngoại}}
==={{section|ref}}===
{{R:Tratu}}
r2b8k9h6xvxvu4t0wrrmeds6nisbjk4
ᚊᚏᚔᚋᚔᚈᚔᚏ
0
419881
2569899
2026-10-12T13:00:44Z
Hiyuune
50834
/* */ + pgl
2569899
wikitext
text/x-wiki
=={{langname|pgl}}==
==={{section|etym}}===
Vay mượn từ {{bor|pgl|owl|primter}}, từ {{der|pgl|la-lat|presbyter}}.
==={{section|n}}===
{{head|pgl|Danh từ|g=m}}
# [[mục sư]], [[linh mục]].
===={{section|desc}}====
* {{desctree|sga|cruimther}}
{{C|pgl|Nghề nghiệp|Tôn giáo}}
lgrk42hx9hlhlbo3g1kg91say8oprd1
ᚉᚐᚈᚈᚒ
0
419882
2569900
2026-10-12T13:04:56Z
Hiyuune
50834
/* */
2569900
wikitext
text/x-wiki
=={{langname|pgl}}==
==={{section|etym}}===
{{root|pgl|ine-pro|*keh₃-}}
Từ {{inh|pgl|cel-pro|*katus}} (so sánh với {{cog|cy|cad}}).
==={{section|n}}===
{{head|pgl|Danh từ|g=m}}
# [[trận đánh]].
===={{section|drv}}====
{{col|pgl
|ᚉᚐᚈᚐᚁᚐᚏ
|ᚏᚑᚉᚐᚈᚑᚄ
}}
===={{section|desc}}====
* {{desctree|sga|cath}}
54myo91o7obpqyq5xezpmyx1mpdyhir
Thể loại:tpu:Trang phục
14
419883
2569911
2026-10-12T14:30:41Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569911
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
kưr dôn
0
419884
2569918
2026-10-12T14:38:19Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/kɨːr doːn/}} ==={{ĐM|noun}}=== {{head|mng|Danh từ}} # {{label|mng|Rơlơm}} [[xương sống]]. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569918
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/kɨːr doːn/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} [[xương sống]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
13fa1dtnh1v5d87d3i2nwujqnvfcsb3
êh
0
419885
2569920
2026-10-12T14:39:41Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/ʔeh/}} ==={{ĐM|noun}}=== {{head|mng|Danh từ}} # {{label|mng|Rơlơm}} [[mùi]] [[cơm]] [[hư]]. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569920
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/ʔeh/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} [[mùi]] [[cơm]] [[hư]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
e717c7i4vkcfrepozunqxgdodw2pcnq
drông
0
419886
2569922
2026-10-12T14:40:08Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/droːŋ/}} ==={{ĐM|noun}}=== {{head|mng|Danh từ}} # {{label|mng|Rơlơm}} [[mùi]] [[hôi]]. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569922
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/droːŋ/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} [[mùi]] [[hôi]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
des80qse4k9abrvfrlrgbk13amuakpi
ngưr
0
419887
2569923
2026-10-12T14:40:31Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/ŋɨːr/}} ==={{ĐM|noun}}=== {{head|mng|Danh từ}} # {{label|mng|Rơlơm}} [[mùi]] [[hôi]]. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569923
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/ŋɨːr/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} [[mùi]] [[hôi]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
o8zq85pcse3zrowhuwyghjpts6gtc7j
nhêt
0
419888
2569924
2026-10-12T14:41:20Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/ŋɨːr/}} ==={{ĐM|noun}}=== {{head|mng|Danh từ}} # {{label|mng|Rơlơm}} [[mùi]] [[hôi]]. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569924
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/ŋɨːr/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} [[mùi]] [[hôi]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
o8zq85pcse3zrowhuwyghjpts6gtc7j
2569925
2569924
2026-10-12T14:41:27Z
WhoAlone
40420
2569925
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/nheːt/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} [[mùi]] [[hôi]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
6oc4p8655uqkc15f9dyxemqjpxvonne
čal u
0
419889
2569926
2026-10-12T14:42:01Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/caːl ʔuː/}} ==={{ĐM|noun}}=== {{head|mng|Danh từ}} # {{label|mng|Rơlơm}} [[gió]] [[bão]] [[dữ dội]]. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569926
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/caːl ʔuː/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} [[gió]] [[bão]] [[dữ dội]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
gttz1reql0bryercw1c96o2h6w27hoz
hiêk
0
419890
2569927
2026-10-12T14:42:38Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/hiek/}} ==={{ĐM|noun}}=== {{head|mng|Danh từ}} # {{label|mng|Rơlơm}} [[rượu]] có [[vị]] dở. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569927
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/hiek/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} [[rượu]] có [[vị]] dở.
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
g8sm7b8tmjedfv8uuf5rnatq5v9zmku
trôk dăñ măñ djoh
0
419891
2569928
2026-10-12T14:43:50Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/troːk daɲ maɲ ʄɔh/}} ==={{ĐM|noun}}=== {{head|mng|Danh từ}} # {{label|mng|Rơlơm}} [[thời tiết]] xấu gây ra [[bệnh tật]]. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer. {{c|mng|Thời tiết|Bệnh}}”
2569928
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/troːk daɲ maɲ ʄɔh/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} [[thời tiết]] xấu gây ra [[bệnh tật]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
{{c|mng|Thời tiết|Bệnh}}
3y4vw4sc89zrdgew5w9y978kkw4jjy9
Thể loại:mng:Thời tiết
14
419892
2569929
2026-10-12T14:45:28Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569929
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:mng:Bệnh
14
419893
2569930
2026-10-12T14:45:38Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569930
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:mng:Khí quyển
14
419894
2569931
2026-10-12T14:45:40Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569931
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:mng:Sức khỏe
14
419895
2569932
2026-10-12T14:45:53Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569932
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
djoh
0
419896
2569933
2026-10-12T14:47:21Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/ʄɔh/}} ==={{ĐM|adj}}=== {{head|mng|Tính từ}} # {{label|mng|Rơlơm}} [[xấu]], [[bẩn]]. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569933
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/ʄɔh/}}
==={{ĐM|adj}}===
{{head|mng|Tính từ}}
# {{label|mng|Rơlơm}} [[xấu]], [[bẩn]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
tbwkhrbrmr1c7lbqbcy1qbva7m7jjih
djơh
0
419897
2569934
2026-10-12T14:48:04Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/ʄəh/}} ==={{ĐM|adj}}=== {{head|mng|Tính từ}} # {{label|mng|Rơlơm}} [[xấu]], [[bẩn]]. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569934
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/ʄəh/}}
==={{ĐM|adj}}===
{{head|mng|Tính từ}}
# {{label|mng|Rơlơm}} [[xấu]], [[bẩn]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
3p3a1nh97hcdpa4hvycafex5fdchevx
tă-tăn
0
419898
2569935
2026-10-12T14:50:08Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/taʔ-tan/}} ==={{ĐM|adj}}=== {{head|mng|Tính từ}} # {{label|mng|Rơlơm}} [[xấu xa]], [[tục tĩu]]. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569935
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/taʔ-tan/}}
==={{ĐM|adj}}===
{{head|mng|Tính từ}}
# {{label|mng|Rơlơm}} [[xấu xa]], [[tục tĩu]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
qdq17iqehgn1l3obd8ycjay1isvw6wg
ƀap
0
419899
2569936
2026-10-12T14:52:48Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/ɓaːp/}} ==={{ĐM|noun}}=== {{head|mng|Danh từ}} # {{label|mng|Rơlơm}} [[túi]] đựng [[tiền]]. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569936
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/ɓaːp/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} [[túi]] đựng [[tiền]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
6tky12olicdbzap9s90pnv7g7o67u79
ƀalong
0
419900
2569937
2026-10-12T14:53:18Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/ɓalɔːŋ/}} ==={{ĐM|noun}}=== {{head|mng|Danh từ}} # {{label|mng|Rơlơm}} Quả [[bóng]]. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569937
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/ɓalɔːŋ/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} Quả [[bóng]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
bhvo9krhv8wu1jfzoxwpnh73f34v9vm
boh đung
0
419901
2569938
2026-10-12T14:53:37Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/bɔh ɗuːŋ/}} ==={{ĐM|noun}}=== {{head|mng|Danh từ}} # {{label|mng|Rơlơm}} Quả [[bóng]] để [[chơi]]. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569938
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/bɔh ɗuːŋ/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} Quả [[bóng]] để [[chơi]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
rvp3uqg1cyjp7htbwztbw4qg1ka2xpe
tuôl
0
419902
2569939
2026-10-12T14:53:56Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/tuol/}} ==={{ĐM|noun}}=== {{head|mng|Danh từ}} # {{label|mng|Rơlơm}} Cục nhớt. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569939
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/tuol/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} Cục nhớt.
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
ee9ncouj4a7gn9ja4syfljep1n69bw0
klŏ
0
419903
2569940
2026-10-12T14:54:52Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/klɔʔ/}} ==={{ĐM|noun}}=== {{head|mng|Danh từ}} # {{label|mng|Rơlơm}} Cục bụi bẩn. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569940
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/klɔʔ/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} Cục bụi bẩn.
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
29ge0518jen6fspmsy647arfhr8001f
ple čưng
0
419904
2569941
2026-10-12T14:56:01Z
WhoAlone
40420
Trang mới: “=={{langname|mng}}== ==={{ĐM|pron}}=== * {{IPA4|mng|/plɛː cɨːŋ/}} ==={{ĐM|noun}}=== {{head|mng|Danh từ}} # {{label|mng|Rơlơm}} Quả [[bóng]]. ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.”
2569941
wikitext
text/x-wiki
=={{langname|mng}}==
==={{ĐM|pron}}===
* {{IPA4|mng|/plɛː cɨːŋ/}}
==={{ĐM|noun}}===
{{head|mng|Danh từ}}
# {{label|mng|Rơlơm}} Quả [[bóng]].
==={{ĐM|ref}}===
* [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Mnong&sort=gloss&format=html Tiếng M'Nông] tại Cơ sở Dữ liệu Môn-Khmer.
sgnsag654ljsvn329mg3zekahelhy7g
Thể loại:yuy:Hàng gia dụng
14
419905
2569945
2026-10-12T15:00:02Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569945
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Chỗ ở
14
419906
2569949
2026-10-12T15:01:22Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569949
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Máy móc
14
419907
2569950
2026-10-12T15:01:24Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569950
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Chăn nuôi
14
419908
2569952
2026-10-12T15:01:43Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569952
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Khoa học xã hội môi trường
14
419909
2569954
2026-10-12T15:02:05Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569954
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Tiêu khiển
14
419910
2569955
2026-10-12T15:02:07Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569955
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Động vật học
14
419911
2569956
2026-10-12T15:02:09Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569956
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Sinh hoạt
14
419912
2569957
2026-10-12T15:02:10Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569957
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Nhân loại học
14
419913
2569958
2026-10-12T15:02:13Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569958
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Khoa học xã hội
14
419914
2569960
2026-10-12T15:02:36Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569960
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Môi trường
14
419915
2569961
2026-10-12T15:02:39Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569961
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Khoa học môi trường
14
419916
2569962
2026-10-12T15:02:41Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569962
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Bộ Linh trưởng
14
419917
2569963
2026-10-12T15:02:57Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569963
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Họ Mèo
14
419918
2569964
2026-10-12T15:03:04Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569964
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
ụ̃
0
419919
2569967
2026-10-12T15:06:51Z
Lcsnes
40261
Trang mới: “{{-Latn-}} ==={{ĐM|desction}}=== {{mul-letter}} # [[chữ cái|Chữ cái]] '''[[u]] viết thường''' với dấu ngã [[◌̃]] ([[tilde]]) và dấu nặng [[◌̣]] (dấu chấm dưới). ==={{ĐM|see}}=== {{Latn-script}} =={{langname|luc}}== ==={{ĐM|pron}}=== *{{IPA|luc|[u˨]}} ==={{ĐM|letter}}=== {{letter|luc}} #Chữ cái '''{{l|luc|ụ}} viết thường''' với thanh trầm ([[◌̃]]). #:{{ux|luc|Rụ́t'''ụ̃'''|[[s:Ru-tơ|Ru-tơ]]|inline=1}} ==={{ĐM…”
2569967
wikitext
text/x-wiki
{{-Latn-}}
==={{ĐM|desction}}===
{{mul-letter}}
# [[chữ cái|Chữ cái]] '''[[u]] viết thường''' với dấu ngã [[◌̃]] ([[tilde]]) và dấu nặng [[◌̣]] (dấu chấm dưới).
==={{ĐM|see}}===
{{Latn-script}}
=={{langname|luc}}==
==={{ĐM|pron}}===
*{{IPA|luc|[u˨]}}
==={{ĐM|letter}}===
{{letter|luc}}
#Chữ cái '''{{l|luc|ụ}} viết thường''' với thanh trầm ([[◌̃]]).
#:{{ux|luc|Rụ́t'''ụ̃'''|[[s:Ru-tơ|Ru-tơ]]|inline=1}}
==={{ĐM|see}}===
*{{letters|lang=luc|sc=Latn|qual=Bảng chữ cái Latinh tiếng Aringa|Aa|Bb|’B/’b|Cc|Dd|Dr/dr|’D/’d|Ee|Ẹẹ|Ff|Gg|Gb/gb|Hh|Ii|Ịị|Jj|Kk|Kp/kp|Ll|Mm|Mb/mb|Mgb/mgb|Mv/mv|Nn|Nd/nd|Ndr/ndr|Ng/ng|Nj/nj|Ny/ny|Ŋŋ|Ŋm/ŋm|Oo|Ọọ|Pp|Rr|Ss|Tt|Tr/tr|Uu|Ụụ|Vv|Ww|’W/’w|Yy|’Y/’y|Zz|’}}
==={{ĐM|ref}}===
*{{Chú thích web|luc|work=Bĩbĩliyã Ị́jọ́ Úꞌdí rĩ drị̂ ãzíla bụ́kụ̃ ãzí Ị́jọ́ Ụ̃kụ rĩ agá rĩ kí abe|author=Wycliffe Bible Translators, Inc. |year=2025|entryurl=https://www.bible.com/bible/4377/RUT.1.ARINGA|entry=Rụ́tụ̃ 1}}
=={{langname|kbo}}==
==={{ĐM|letter}}===
{{letter|kbo}}
#Chữ cái '''{{l|kbo|ụ}} viết thường''' với thanh trầm ([[◌̃]]).
#:{{ux|kbo|W'''ụ̃'''ngárá|[[s:Xuất Ê-díp-tô Ký|Xuất Ê-díp-tô Ký]]|inline=1}}
==={{ĐM|see}}===
*{{letters|lang=kbo|sc=Latn|qual=Bảng chữ cái Latinh tiếng Keliko|Aa|Bb|’B/’b|Cc|Dd|Dr/dr|’D/’d|Ee|Ẹẹ|Ff|Gg|Gb/gb|Hh|Ii|Ịị|Jj|Kk|Kp/kp|Ll|Mm|Mb/mb|Mgb/mgb|Mv/mv|Nn|Nd/nd|Ndr/ndr|Ng/ng|Nj/nj|Ny/ny|Ŋŋ|Ŋm/ŋm|Oo|Ọọ|Pp|Rr|Ss|Tt|Tr/tr|Uu|Ụụ|Vv|Ww|’W/’w|Yy|’Y/’y|Zz|’}}
==={{ĐM|ref}}===
*{{Chú thích web|kbo|work=Keliko|author=Wycliffe Bible Translators, Inc. |year=2017|entryurl=https://www.bible.com/bible/2052/EXO.1.KBO|entry=Wụ̃ngárá 1}}
i2hsdhf74qebuim3slyzix5okunlezx
Thể loại:yuy:Kiến trúc
14
419920
2569970
2026-10-12T15:07:15Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569970
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Họ Chồn
14
419921
2569971
2026-10-12T15:07:28Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569971
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Trứng
14
419922
2569974
2026-10-12T15:07:57Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569974
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Thực phẩm
14
419923
2569975
2026-10-12T15:08:06Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569975
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Sinh sản
14
419924
2569976
2026-10-12T15:08:15Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569976
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Ăn
14
419925
2569977
2026-10-12T15:08:17Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569977
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Ăn uống
14
419926
2569978
2026-10-12T15:08:19Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569978
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:yuy:Lớp Chim
14
419927
2569979
2026-10-12T15:10:17Z
WhoAlone
40420
Trang mới: “{{auto cat}}”
2569979
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
ìjí
0
419928
2569994
2026-10-12T16:09:55Z
Hiyuune
50834
Trang mới: “{{also|iji}} =={{langname|luc}}== ==={{section|n}}=== {{head|luc|Danh từ}} # [[nước]]. ==={{section|further}}=== * Douglas Boone, Richard Watson, ''[http://www.sil.org/silesr/1999/001/mmsurvey-w97.pdf Moru–Ma’di Survey Report]'' (1999), ''SIL Electronic Survey Reports'' (SILESR 1999-001), tr. A-81”
2569994
wikitext
text/x-wiki
{{also|iji}}
=={{langname|luc}}==
==={{section|n}}===
{{head|luc|Danh từ}}
# [[nước]].
==={{section|further}}===
* Douglas Boone, Richard Watson, ''[http://www.sil.org/silesr/1999/001/mmsurvey-w97.pdf Moru–Ma’di Survey Report]'' (1999), ''SIL Electronic Survey Reports'' (SILESR 1999-001), tr. A-81
dfumfu6cp02yhpdjugawk2oq91iec9v
Thể loại:Danh từ tiếng Aringa
14
419929
2569995
2026-10-12T16:10:18Z
Hiyuune
50834
Trang mới: “{{auto cat}}”
2569995
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:Mục từ tiếng Aringa
14
419930
2569997
2026-10-12T16:11:30Z
Hiyuune
50834
Trang mới: “{{auto cat}}”
2569997
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:Tiếng Aringa
14
419931
2569998
2026-10-12T16:12:12Z
Hiyuune
50834
Trang mới: “{{auto cat|Uganda}}”
2569998
wikitext
text/x-wiki
{{auto cat|Uganda}}
sqjfx4jjom6vrg46sff9o1f1g7bqz3l
Bản mẫu:non-decl-adj-oen
10
419933
2570008
2026-10-12T16:24:24Z
Hiyuune
50834
Trang mới: “{{#invoke:checkparams|error}}<!-- Validate template parameters -->{{inflection-table-block| {{non-decl-adj-base<!-- -->|mode=str<!-- -->|title=Biến cách mạnh của {{#if:{{{title|}}}|{{{title}}}|{{m|non||{{pagename}}}}}}<!-- -->|nsm={{{nsm|{{{5|{{{1}}}ʀ}}}, {{{5|{{{1}}}r}}}}}}<!-- -->|asm={{{asm|{{{1a|{{{3|{{{1}}}}}}a}}}n{{#if:{{{3a|}}}|, {{{3a}}}an}}}}}<!-- -->|dsm={{{dsm|{{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u}}}m{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}um}}}}}…”
2570008
wikitext
text/x-wiki
{{#invoke:checkparams|error}}<!-- Validate template parameters
-->{{inflection-table-block|
{{non-decl-adj-base<!--
-->|mode=str<!--
-->|title=Biến cách mạnh của {{#if:{{{title|}}}|{{{title}}}|{{m|non||{{pagename}}}}}}<!--
-->|nsm={{{nsm|{{{5|{{{1}}}ʀ}}}, {{{5|{{{1}}}r}}}}}}<!--
-->|asm={{{asm|{{{1a|{{{3|{{{1}}}}}}a}}}n{{#if:{{{3a|}}}|, {{{3a}}}an}}}}}<!--
-->|dsm={{{dsm|{{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u}}}m{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}um}}}}}<!--
-->|gsm={{{gsm|{{{1}}}s}}}<!--
-->|nsf={{{nsf|{{{2|{{{1}}}}}}}}}<!--
-->|asf={{{asf|{{{1a|{{{3|{{{1}}}}}}a{{#if:{{{3a|}}}|, {{{3a}}}a}}}}}}}}<!--
-->|dsf={{{gpf|{{{5|{{{1}}}ʀ}}}i, {{{5|{{{1}}}r}}}i}}}<!--
-->|gsf={{{gpf|{{{5|{{{1}}}r}}}aʀ, {{{5|{{{1}}}r}}}ar}}}<!--
-->|nsn={{{nsn|{{{1}}}t}}}<!--
-->|asn={{{nsn|{{{1}}}t}}}<!--
-->|dsn={{{dsn|{{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}u}}}}}}}}<!--
-->|gsn={{{gsn|{{{1}}}s}}}<!--
-->|npm={{{npm|{{{1i|{{{3|{{{1}}}}}}i}}}ʀ, {{{1i|{{{3|{{{1}}}}}}i}}}r}}}<!--
-->|apm={{{apm|{{{1a|{{{3|{{{1}}}}}}a{{#if:{{{3a|}}}|, {{{3a}}}a}}}}}}}}<!--
-->|dpm={{{dp|{{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u}}}m}}}<!--
-->|gpm={{{gp|{{{5|{{{1}}}ʀ}}}a, {{{5|{{{1}}}r}}}a}}}<!--
-->|npf={{{npf|{{{1a|{{{3|{{{1}}}}}}a}}}ʀ{{#if:{{{3a|}}}|, {{{3a}}}aʀ}}, {{{1a|{{{3|{{{1}}}}}}a}}}r{{#if:{{{3a|}}}|, {{{3a}}}ar}}}}}<!--
-->|apf={{{npf|{{{1a|{{{3|{{{1}}}}}}a}}}ʀ{{#if:{{{3a|}}}|, {{{3a}}}aʀ}}, {{{1a|{{{3|{{{1}}}}}}a}}}r{{#if:{{{3a|}}}|, {{{3a}}}ar}}}}}<!--
-->|dpf={{{dp|{{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u}}}m}}}<!--
-->|gpf={{{gp|{{{5|{{{1}}}ʀ}}}a, {{{5|{{{1}}}r}}}a}}}<!--
-->|npn={{{npn|{{{2|{{{1}}}}}}}}}<!--
-->|apn={{{npn|{{{2|{{{1}}}}}}}}}<!--
-->|dpn={{{dp|{{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u}}}m{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}um}}}}}<!--
-->|gpn={{{gp|{{{5|{{{1}}}ʀ}}}a, {{{5|{{{1}}}r}}}a}}}<!--
-->}}<!--
-->
{{non-decl-adj-base<!--
-->|mode=wk<!--
-->|title=Biến cách yếu của {{#if:{{{title|}}}|{{{title}}}|{{m|non||{{pagename}}}}}}<!--
-->|nsm={{{1i|{{{3|{{{1}}}}}}i{{#if:{{{3a|}}}|, {{{3a}}}i}}}}}<!--
-->|asm={{{1a|{{{3|{{{1}}}}}}a{{#if:{{{3a|}}}|, {{{3a}}}a}}}}}<!--
-->|dsm={{{1a|{{{3|{{{1}}}}}}a{{#if:{{{3a|}}}|, {{{3a}}}a}}}}}<!--
-->|gsm={{{1a|{{{3|{{{1}}}}}}a{{#if:{{{3a|}}}|, {{{3a}}}a}}}}}<!--
-->|nsf={{{1a|{{{3|{{{1}}}}}}a{{#if:{{{3a|}}}|, {{{3a}}}a}}}}}<!--
-->|asf={{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}u}}}}}<!--
-->|dsf={{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}u}}}}}<!--
-->|gsf={{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}u}}}}}<!--
-->|nsn={{{1a|{{{3|{{{1}}}}}}a{{#if:{{{3a|}}}|, {{{3a}}}a}}}}}<!--
-->|asn={{{1a|{{{3|{{{1}}}}}}a{{#if:{{{3a|}}}|, {{{3a}}}a}}}}}<!--
-->|dsn={{{1a|{{{3|{{{1}}}}}}a{{#if:{{{3a|}}}|, {{{3a}}}a}}}}}<!--
-->|gsn={{{1a|{{{3|{{{1}}}}}}a{{#if:{{{3a|}}}|, {{{3a}}}a}}}}}<!--
-->|npm={{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}u}}}}}<!--
-->|apm={{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}u}}}}}<!--
-->|dpm={{{dp|{{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u}}}m{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}um}}}}}<!--
-->|gpm={{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}u}}}}}<!--
-->|npf={{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}u}}}}}<!--
-->|apf={{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}u}}}}}<!--
-->|dpf={{{dp|{{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u}}}m{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}um}}}}}<!--
-->|gpf={{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}u}}}}}<!--
-->|npn={{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}u}}}}}<!--
-->|apn={{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}u}}}}}<!--
-->|dpn={{{dp|{{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u}}}m{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}um}}}}}<!--
-->|gpn={{{1u|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}u{{#if:{{{4a|{{{3a|}}}}}}|, {{{4a|{{{3a}}}}}}u}}}}}<!--
-->}}<!--
-->
{{non-decl-adj-base<!--
-->|mode=comp<!--
-->|title=Biến cách so sánh hơn của {{#if:{{{title|}}}|{{{title}}}|{{m|non||{{pagename}}}}}}<!--
-->|nsm={{{comp|{{{3|{{{1}}}}}}aʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}ar}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}r}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<!--
-->|asm={{{comp|{{{3|{{{1}}}}}}aʀ}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}, {{{comp|{{{3|{{{1}}}}}}r}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}, {{{comp|{{{3|{{{1}}}}}}r}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}<!--
-->|dsm={{{comp|{{{3|{{{1}}}}}}aʀ}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}, {{{comp|{{{3|{{{1}}}}}}r}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}, {{{comp|{{{3|{{{1}}}}}}r}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}<!--
-->|gsm={{{comp|{{{3|{{{1}}}}}}aʀ}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}, {{{comp|{{{3|{{{1}}}}}}r}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}, {{{comp|{{{3|{{{1}}}}}}r}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}<!--
-->|nsf={{{comp|{{{3|{{{1}}}}}}aʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}ar}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}r}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<!--
-->|asf={{{comp|{{{3|{{{1}}}}}}aʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}ar}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}r}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<!--
-->|dsf={{{comp|{{{3|{{{1}}}}}}aʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}ar}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}r}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<!--
-->|gsf={{{comp|{{{3|{{{1}}}}}}aʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}ar}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}r}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<!--
-->|nsn={{{comp|{{{3|{{{1}}}}}}aʀ}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}, {{{comp|{{{3|{{{1}}}}}}r}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}, {{{comp|{{{3|{{{1}}}}}}r}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}<!--
-->|asn={{{comp|{{{3|{{{1}}}}}}aʀ}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}, {{{comp|{{{3|{{{1}}}}}}r}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}, {{{comp|{{{3|{{{1}}}}}}r}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}<!--
-->|dsn={{{comp|{{{3|{{{1}}}}}}aʀ}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}, {{{comp|{{{3|{{{1}}}}}}r}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}, {{{comp|{{{3|{{{1}}}}}}r}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}<!--
-->|gsn={{{comp|{{{3|{{{1}}}}}}aʀ}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}, {{{comp|{{{3|{{{1}}}}}}r}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}, {{{comp|{{{3|{{{1}}}}}}r}}}a{{#if:{{{comp2|}}}|, {{{comp2}}}a}}<!--
-->|npm={{{comp|{{{3|{{{1}}}}}}aʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}ar}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}r}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<!--
-->|apm={{{comp|{{{3|{{{1}}}}}}aʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}ar}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}r}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<!--
-->|dpm={{{compu|{{{comp|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ur}}}}}}um{{#if:{{{comp2|}}}|, {{{comp2}}}um}}<!--
-->|gpm={{{comp|{{{3|{{{1}}}}}}aʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}ar}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}r}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<!--
-->|npf={{{comp|{{{3|{{{1}}}}}}aʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}ar}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}r}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<!--
-->|apf={{{comp|{{{3|{{{1}}}}}}aʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}ar}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}r}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<!--
-->|dpf={{{compu|{{{comp|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ur}}}}}}um{{#if:{{{comp2|}}}|, {{{comp2}}}um}}<!--
-->|gpf={{{comp|{{{3|{{{1}}}}}}aʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}ar}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}r}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<!--
-->|npn={{{comp|{{{3|{{{1}}}}}}aʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}ar}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}r}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<!--
-->|apn={{{comp|{{{3|{{{1}}}}}}aʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}ar}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}r}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<!--
-->|dpn={{{compu|{{{comp|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ur}}}}}}um{{#if:{{{comp2|}}}|, {{{comp2}}}um}}<!--
-->|gpn={{{comp|{{{3|{{{1}}}}}}aʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}ar}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<br>{{{comp|{{{3|{{{1}}}}}}ʀ}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}, {{{comp|{{{3|{{{1}}}}}}r}}}i{{#if:{{{comp2|}}}|, {{{comp2}}}i}}<!--
-->}}<!--
-->{{non-decl-adj-base<!--
-->|mode=str_sup<!--
-->|title=Biến cách mạnh so sánh nhất của {{#if:{{{title|}}}|{{{title}}}|{{m|non||{{pagename}}}}}}<!--
-->|nsm={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}ʀ{{#if:{{{sup2|}}}|, {{{sup2}}}ʀ}}, {{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}r{{#if:{{{sup2|}}}|, {{{sup2}}}r}}<!--
-->|asm={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}an{{#if:{{{sup2|}}}|, {{{sup2}}}an}}<!--
-->|dsm={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}um{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}um}}<!--
-->|gsm={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}s{{#if:{{{sup2|}}}|, {{{sup2}}}s}}<!--
-->|nsf={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}}}<!--
-->|asf={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}a{{#if:{{{sup2|}}}|, {{{sup2}}}a}}<!--
-->|dsf={{{sup|{{{3|{{{1}}}}}}ast}}}ri{{#if:{{{sup2|}}}|, {{{sup2}}}ri}}<!--
-->|gsf={{{sup|{{{3|{{{1}}}}}}ast}}}raʀ{{#if:{{{sup2|}}}|, {{{sup2}}}raʀ}}, {{{sup|{{{3|{{{1}}}}}}ast}}}rar{{#if:{{{sup2|}}}|, {{{sup2}}}rar}}<!--
-->|nsn={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}{{#if:{{{sup2|}}}|, {{{sup2}}}}}<!--
-->|asn={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}{{#if:{{{sup2|}}}|, {{{sup2}}}}}<!--
-->|dsn={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}u{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}u}}<!--
-->|gsn={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}s{{#if:{{{sup2|}}}|, {{{sup2}}}s}}<!--
-->|npm={{{sup|{{{3|{{{1}}}}}}ast}}}iʀ{{#if:{{{sup2|}}}|, {{{sup2}}}iʀ}}, {{{sup|{{{3|{{{1}}}}}}ast}}}ir{{#if:{{{sup2|}}}|, {{{sup2}}}ir}}<!--
-->|apm={{{sup|{{{3|{{{1}}}}}}ast}}}a{{#if:{{{sup2|}}}|, {{{sup2}}}a}}<!--
-->|dpm={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}um{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}um}}<!--
-->|gpm={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}ra{{#if:{{{sup2|}}}|, {{{sup2}}}ra}}<!--
-->|npf={{{sup|{{{3|{{{1}}}}}}ast}}}aʀ{{#if:{{{sup2|}}}|, {{{sup2}}}aʀ}}, {{{sup|{{{3|{{{1}}}}}}ast}}}ar{{#if:{{{sup2|}}}|, {{{sup2}}}ar}}<!--
-->|apf={{{sup|{{{3|{{{1}}}}}}ast}}}aʀ{{#if:{{{sup2|}}}|, {{{sup2}}}aʀ}}, {{{sup|{{{3|{{{1}}}}}}ast}}}ar{{#if:{{{sup2|}}}|, {{{sup2}}}ar}}<!--
-->|dpf={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}um{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}um}}<!--
-->|gpf={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}ra{{#if:{{{sup2|}}}|, {{{sup2}}}ra}}<!--
-->|npn={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}}}<!--
-->|apn={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}}}<!--
-->|dpn={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}um{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}um}}<!--
-->|gpn={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}ra{{#if:{{{sup2|}}}|, {{{sup2}}}ra}}<!--
-->}}<!--
-->{{non-decl-adj-base<!--
-->|mode=wk_sup<!--
-->|title=Biến cách yếu so sánh nhất của {{#if:{{{title|}}}|{{{title}}}|{{m|non||{{pagename}}}}}}<!--
-->|nsm={{{sup|{{{3|{{{1}}}}}}ast}}}i{{#if:{{{sup2|}}}|, {{{sup2}}}i}}<!--
-->|asm={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}a{{#if:{{{sup2|}}}|, {{{sup2}}}a}}<!--
-->|dsm={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}a{{#if:{{{sup2|}}}|, {{{sup2}}}a}}<!--
-->|gsm={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}a{{#if:{{{sup2|}}}|, {{{sup2}}}a}}<!--
-->|nsf={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}a{{#if:{{{sup2|}}}|, {{{sup2}}}a}}<!--
-->|asf={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}u{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}u}}<!--
-->|dsf={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}u{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}u}}<!--
-->|gsf={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}u{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}u}}<!--
-->|nsn={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}a{{#if:{{{sup2|}}}|, {{{sup2}}}a}}<!--
-->|asn={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}a{{#if:{{{sup2|}}}|, {{{sup2}}}a}}<!--
-->|dsn={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}a{{#if:{{{sup2|}}}|, {{{sup2}}}a}}<!--
-->|gsn={{{sup1|{{{sup|{{{3|{{{1}}}}}}ast}}}}}}a{{#if:{{{sup2|}}}|, {{{sup2}}}a}}<!--
-->|npm={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}u{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}u}}<!--
-->|apm={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}u{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}u}}<!--
-->|dpm={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}um{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}um}}<!--
-->|gpm={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}u{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}u}}<!--
-->|npf={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}u{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}u}}<!--
-->|apf={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}u{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}u}}<!--
-->|dpf={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}um{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}um}}<!--
-->|gpf={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}u{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}u}}<!--
-->|npn={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}u{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}u}}<!--
-->|apn={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}u{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}u}}<!--
-->|dpn={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}um{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}um}}<!--
-->|gpn={{{sup1u|{{{sup1|{{{sup|{{{4|{{{3|{{{2|{{{1}}}}}}}}}}}}ust}}}}}}}}}u{{#if:{{{sup2|}}}|, {{{sup2u|{{{sup2}}}}}}u}}<!--
-->}}}}<!--
--><noinclude>{{documentation}}</noinclude>
26v5ls7sj4i1we3xfghn3i7demmrmoz
sniallr
0
419934
2570009
2026-10-12T16:25:17Z
Hiyuune
50834
Trang mới: “=={{langname|non}}== ==={{section|adj}}=== {{head|non|Tính từ}} # {{alternative form of|non|snjallr}} ===={{section|decl}}==== {{non-decl-adj-oen|sniall|sniæll}} ===={{section|drv}}==== * {{l|non|hugsniallr}}”
2570009
wikitext
text/x-wiki
=={{langname|non}}==
==={{section|adj}}===
{{head|non|Tính từ}}
# {{alternative form of|non|snjallr}}
===={{section|decl}}====
{{non-decl-adj-oen|sniall|sniæll}}
===={{section|drv}}====
* {{l|non|hugsniallr}}
4wbksdwugifxmy0bxi9gsmm1qrncrqj
xoáy nghịch
0
419935
2570010
2026-10-12T16:26:12Z
TienMinh-mun6xnChing
57893
/* */
2570010
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# Vùng áp cao có [[quỹ đạo]] [[chuyển động]] của [[gió]] thổi từ [[tâm]] [[bão]] ra xung quanh.
mhtotbgqeg4404o8yg3hbtktpd403zf
2570011
2570010
2026-10-12T16:28:41Z
TienMinh-mun6xnChing
57893
2570011
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# Vùng áp cao nơi [[quỹ đạo]] [[chuyển động]] của [[gió]] thổi từ [[tâm]] [[bão]] ra xung quanh.
q5r4puo15hgwgbu2pknv2a10plyeark
hằng đẳng thức
0
419936
2570012
2026-10-12T16:31:47Z
TienMinh-mun6xnChing
57893
/* */
2570012
wikitext
text/x-wiki
=={{langname|vi}}==
{{wikipedia}}
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# {{lb|vi|toán học}} [[đẳng thức|Đẳng thức]] đúng với mọi [[giá trị]] được thay vào từ các chữ trong [[biểu thức]] đó.
o4dtzu3vgcr0v98zqw3s1y7uq3oyk33
đồng biến
0
419937
2570014
2026-10-12T16:34:05Z
TienMinh-mun6xnChing
57893
/* */
2570014
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# {{lb|vi|toán học}} [[hàm số|Hàm số]] có đạo hàm luôn lớn hơn hoặc bằng 0.
gz8d4sihgq3tsh9sdvvgqca6eoj8nvv
2570017
2570014
2026-10-12T16:37:03Z
TienMinh-mun6xnChing
57893
/* Tiếng Việt */
2570017
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# {{lb|vi|toán học}} Chỉ sự biến thiên tăng dần của giá trị mà [[hàm số]] có đạo hàm luôn lớn hơn hoặc bằng 0.
ou6s6t0cne4l2pem0f7qjzun5d60038
2570018
2570017
2026-10-12T16:39:06Z
TienMinh-mun6xnChing
57893
2570018
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# {{lb|vi|toán học}} Chỉ sự [[biến thiên]] tăng dần đều của giá trị trong đó [[hàm số]] có đạo hàm luôn lớn hơn hoặc bằng 0.
mdt35tp3ef7dvphjnydlkdvphnlid65
2570022
2570018
2026-10-12T16:46:21Z
TienMinh-mun6xnChing
57893
2570022
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|adj}}===
{{vi-adj}}
# {{lb|vi|toán học}} Chỉ sự [[biến thiên]] tăng dần đều của giá trị trong đó [[hàm số]] có đạo hàm luôn lớn hơn hoặc bằng 0.
3hz009bf2o7aq78f1wa204ib9zo3set
Mô đun:Babel/data/a
828
419938
2570015
2026-10-12T16:34:24Z
Hiyuune
50834
Trang mới: “return { -------------------------- ab -------------------------- ["ab-0"] = "Ари алахәҩы еилыикааӡом '''ма аарла''' еилыикааоит '''[[$2|аԥсуа бызшәа]]'''.", ["ab-1"] = "Ари алахәҩы '''[[$2|аԥсшәа]] [[$1|хәҷык]]''' и(л)дыроит.", ["ab-2"] = "Ари алахәҩы '''[[$1|абжьаратәи аҳракыра]] [[$2|аԥсышәала]]''' дцәажәоит.", ["ab-3"] = "Ари алахә…”
2570015
Scribunto
text/plain
return {
-------------------------- ab --------------------------
["ab-0"] = "Ари алахәҩы еилыикааӡом '''ма аарла''' еилыикааоит '''[[$2|аԥсуа бызшәа]]'''.",
["ab-1"] = "Ари алахәҩы '''[[$2|аԥсшәа]] [[$1|хәҷык]]''' и(л)дыроит.",
["ab-2"] = "Ари алахәҩы '''[[$1|абжьаратәи аҳракыра]] [[$2|аԥсышәала]]''' дцәажәоит.",
["ab-3"] = "Ари алахәҩы '''[[$2|аԥсшәа]] [[$1|ибзианы]]''' и(л)дыроит.",
["ab-4"] = "Ари алахәҩы идыруеит '''[[$2|аԥсуа]] [[$1|ахатәы бызшәа еиԥш]]'''.",
["ab-N"] = "Ари алахәҩы и(л)зы '''[[$2|аԥсшәа]] [[$1|и(л)хатәы бызшәас]]''' иамоуп.",
-------------------------- ace --------------------------
["ace-0"] = "Ureueng nyoe '''hana meuphôm [[$2|basa Acèh]]''' (atawa meuphôm bacut that).",
["ace-1"] = "Ureueng ngui nyoe meuphôm '''[[$1|bacut]] [[$2|basa Acèh]]'''.",
["ace-2"] = "Ureueng nyoe meuphôm '''[[$1|le bacut]] [[$2|basa Acèh]]'''.",
["ace-3"] = "Ureueng nyoe '''[[$1|le meuphôm]] [[$2|basa Acèh]]'''.",
["ace-4"] = "Ureueng nyoe jeuet '''[[$2|basa Acèh]]''' karap lagèe '''[[$1|ureueng Acèh aseuli]]'''",
["ace-5"] = "Ureueng nyoe '''[[$1|utôih]]''' lam '''[[$2|basa Acèh]]'''.",
["ace-N"] = "Ureueng nyoe '''[[$1|geumarit]]''' lam '''[[$2|basa Acèh]]'''.",
-------------------------- acf --------------------------
["acf-0"] = "Sala moun konpwann pa '''[[$2|Patwá]]'''.",
["acf-1"] = "Sala moun sav '''[[$2|Patwá]] [[$1|senp]]'''.",
["acf-2"] = "Sala moun konpwann '''[[$1|adan di]] [[$2|Patwá]]'''.",
["acf-3"] = "Sala moun sav '''[[$2|Patwá]] [[$1|tou bon]]'''.",
["acf-4"] = "Sala moun sav '''[[$2|Patwá]] [[$1|pwèskè matènèl]]'''.",
["acf-N"] = "Sala moun sav '''[[$2|Patwá]] [[$1|matènèl]]'''.",
-------------------------- acm --------------------------
["acm-0"] = "هذا المستخدم '''ما يفتهم [[$2|عراقي]]''' (يمكن يفتهم شوية).",
["acm-1"] = "هذا المستخدم يفتهم '''[[$1|شوية]] [[$2|بالعراقي]]'''.",
["acm-2"] = "هذا المستخدم يفتهم '''[[$1|نص ونص]] [[$2|بالعراقي]]'''.",
["acm-3"] = "هذا المستخدم '''[[$1|متقدم]] [[$2|بالعراقي]]'''.",
["acm-4"] = "هذا المستخدم يفتهم '''[[$2|عراقي]] [[$1|بمستوى قريب من لغته]]'''.",
["acm-5"] = "هذا المستخدم '''[[$1|قوي]] [[$2|بالعراقي]]'''.",
["acm-N"] = "هذا المستخدم يفتهم '''[[$2|عراقي]] [[$1|حاله حال لغته الأساسية]]'''.",
-------------------------- ady --------------------------
["ady-1"] = "Мы нэбгырэм '''[[$1|макӏэу]] [[$2|адыгабзэ]]''' ешӏэ.",
-------------------------- ae --------------------------
["ae-N"] = "'''[[$2|𐬀𐬎𐬎𐬈𐬯𐬙𐬀𐬌𐬌𐬃𐬹]]''' 𐬵𐬌𐬰𐬎𐬎𐬀𐬌𐬌𐬂𐬹 '''[[$1|𐬨𐬁𐬚𐬭𐬋𐬹]]''' 𐬀𐬈𐬨𐬹 𐬬𐬀𐬭𐬆𐬰𐬋𐬹 𐬀𐬯𐬙𐬌𐬺",
-------------------------- af --------------------------
["af-0"] = "Hierdie gebruiker het '''geen''' kennis van '''[[$2|Afrikaans]]''' nie (of verstaan dit met groot moeite).",
["af-1"] = "Hierdie gebruiker het '''[[$1|basiese]]''' kennis van '''[[$2|Afrikaans]]'''.",
["af-2"] = "Hierdie gebruiker het '''[[$1|middelbare]]''' kennis van '''[[$2|Afrikaans]]'''.",
["af-3"] = "Hierdie gebruiker het '''[[$1|gevorderde]]''' kennis van '''[[$2|Afrikaans]]'''.",
["af-4"] = "Hierdie gebruiker het kennis van '''[[$2|Afrikaans]]''' op '''[[$1|byna-moedertaalvlak]]'''.",
["af-5"] = "Hierdie gebruiker het '''[[$1|professionele]]''' kennis van '''[[$2|Afrikaans]]'''.",
["af-N"] = "Hierdie gebruiker het kennis van '''[[$2|Afrikaans]]''' op '''[[$1|moedertaalvlak]]'''.",
-------------------------- aii --------------------------
["aii-1"] = "Awwa maplxana maṣe mṣawiṯ '''[[$2|Suriṯ]] [[$1|qorba d-lišana d-yimmeh]]'''.",
-------------------------- ain --------------------------
["ain-0"] = "タン イエイワンケキクㇽ '''[[$2|アイヌイタㇰ]] イタㇰコヤイクㇲ''' カ エラムアンアイカㇷ゚。",
["ain-1"] = "タン イエイワンケキクㇽ '''[[$1|ポンノ]] [[$2|アイヌイタㇰ]] エラムアン''' ワ イヌイェ イエプリウェンハウケ。",
["ain-2"] = "タン イエイワンケキクㇽ '''[[$1|ルピㇼカノ]] [[$2|アイヌイタㇰ]] エラムアン''' ワ イヌイェ イエプリウェンハウケ。",
["ain-3"] = "タン イエイワンケキクㇽ '''[[$1|ピㇼカノ]] [[$2|アイヌイタㇰ]] エラムアン''' ワ イヌイェ イエプリウェンエアㇲカイ。",
["ain-4"] = "タン イエイワンケキクㇽ '''[[$1|ソンノピㇼカノ]] [[$2|アイヌイタㇰ]] エラムアン''' ワ イヌイェ イエプリウェンエアㇲカイ。",
["ain-5"] = "タン イエイワンケキクㇽ '''[[$1|イタㇰカンピキクㇽネノ]] [[$2|アイヌイタㇰ]] エラムアン''' ワ イヌイェ イエプリウェンエアㇲカイ。",
["ain-N"] = "タン イエイワンケキクㇽ '''[[$1|アイヌネノ]] [[$2|アイヌイタㇰ]] エラムアン''' ワ イヌイェ イエプリウェンエアㇲカイ。",
-------------------------- ajp --------------------------
["ajp-0"] = "{هالمستخدمة بتفهمش ولا إشي من '''[[$2|الشامي]]'''./هالمستخدم بفهمش ولا إشي من '''[[$2|الشامي]]'''.}<small>(فلسطين والأردن)</small>",
["ajp-1"] = "{هالمستخدم بحكي '''[[$1|شوية]] [[$2|شامي]]''' بس/هالمستخدمة بتحكي '''[[$1|شوية]] [[$2|شامي]]''' بس}<small>(فلسطين والأردن)</small>",
["ajp-2"] = "{هاد المستخدم بحكي '''[[$2|شامي]]''' عمستوى '''[[$1|متوسط]]'''./هادي المستخدمة بتحكي '''[[$2|شامي]]''' عمستوى '''[[$1|متوسط]]'''.}<small>(فلسطين والأردن)</small>",
["ajp-3"] = "{هالمستخدم بحكي '''[[$2|شامي]] [[$1|كويس]]'''./هالمستخدمة بتحكي '''[[$2|شامي]] [[$1|كويس]]'''.}<small>(فلسطين والأردن)</small>",
["ajp-4"] = "{'''[[$1|قوي كتير]]''' هالمستخدم ب'''[[$2|الشامي]]'''./'''[[$1|قوية كتير]]''' هالمستخدمة ب'''[[$2|الشامي]]'''.}<small>(فلسطين والأردن)</small>",
["ajp-N"] = "{'''[[$1|اللغة الأم]]''' تبعيت هاد المستخدم هي '''[[$2|الشامي]]'''./'''[[$1|اللغة الأم]]''' تبعيت هادي المستخدمة هي '''[[$2|الشامي]]'''.}<small>(فلسطين والأردن)</small>",
-------------------------- aln --------------------------
["aln-0"] = "Ky përdorues '''nuk ka''' njohuni në '''[[$2|Gegnisht]]''' (apo e kupton me shumë fshtirësi).",
["aln-1"] = "Ky përdorues ka njohuni '''[[$1|themelore]]''' në '''[[$2|Gegnisht]]'''.",
["aln-2"] = "Ky përdorues ka njohuni '''[[$1|mesatare]]''' në '''[[$2|Gegnisht]]'''.",
["aln-3"] = "Ky përdorues ka njohuni '''[[$1|të përparueme]]''' në '''[[$2|Gegnisht]]'''.",
["aln-4"] = "Ky përdorues ka njohuni '''[[$1|të afërta me nji folës amtar]]''' në '''[[$2|Gegnisht]]'''.",
["aln-5"] = "Ky përdorues ka njohuni '''[[$1|profesionale]]''' në '''[[$2|Gegnisht]]'''.",
["aln-N"] = "Ky përdorues e kupton '''[[$2|Gegnisht]]'''en si gjuhë '''[[$1|amtare]]'''.",
-------------------------- am --------------------------
["am-0"] = "{ይህ/ይች} አባል '''[[$2|አማርኛ]] ምንም''' አይችሉም።",
["am-1"] = "{ይህ/ይች} አባል '''[[$1|በቀላል]]''' ደረጃ '''[[$2|አማርኛ]]''' ማቀነባበር ይችላሉ።",
["am-2"] = "{ይህ/ይች} አባል '''[[$1|በመካከለኛ]]''' ደረጃ '''[[$2|አማርኛ]]''' ማቀነባበር ይችላሉ።",
["am-3"] = "{ይህ/ይች} አባል '''[[$1|በከፍተኛ]]''' ደረጃ '''[[$2|አማርኛ]]''' ማቀነባበር ይችላሉ።",
["am-4"] = "{ይህ/ይች} አባል '''[[$2|አማርኛ]]''' የሚናገሩት '''[[$1|የልደት ቋንቋ ያህል]]''' ነው።",
["am-N"] = "'''[[$2|አማርኛ]]''' የዚህ/ች አባል '''[[$1|ልደት ቋንቋ]]''' ነው።",
-------------------------- amf --------------------------
["amf-1"] = "Káa éedi '''[[$2|hámar aapóɗan]] [[$1|shíiti]]''' ɗalqínta dandaimé.",
-------------------------- an --------------------------
["an-0"] = "Iste usuario '''no''' conoixe brenca l''''[[$2|aragonés]]''' (u lo entiende malament)",
["an-1"] = "Iste usuario conoixe l''''[[$2|aragonés]]''' con un libel '''[[$1|basico]]'''.",
["an-2"] = "Iste usuario conoixe l''''[[$2|aragonés]]''' con un libel '''[[$1|meyo]]'''.",
["an-3"] = "Iste usuario conoixe l''''[[$2|aragonés]]''' con un libel '''[[$1|abanzato]]'''.",
["an-4"] = "Iste usuario conoixe l''''[[$2|aragonés]]''' con un libel '''[[$1|quasi nativo]]'''.",
["an-5"] = "Iste usuario conoixe l''''[[$2|aragonés]]''' con un libel '''[[$1|profesional]]'''.",
["an-N"] = "Iste usuario conoixe l''''[[$2|aragonés]]''' con o libel d'un fablador '''[[$1|patrimonial]]'''.",
-------------------------- ang --------------------------
["ang-0"] = "{Þes brucere/Þeos bruceren}'''ne''' understent '''[[$2|Ænglisc geþeode]]''' (oþþe understent hit sƿiðe heardlice).",
["ang-1"] = "{Þes brucere/Þeos bruceren} understent '''[[$2|Ænglisc geþeode]] [[$1|na micele]]'''.",
["ang-2"] = "{Þes brucere/Þeos bruceren} understent '''[[$2|Ænglisc geþeode]] [[$1|gemetlice]]'''.",
["ang-3"] = "{Þes brucere/Þeos bruceren} understent '''[[$2|Ænglisc geþeode]] [[$1|forneah cræftiglice]]'''.",
["ang-4"] = "{Þes brucere/Þeos bruceren} understent '''[[$2|Ænglisc geþeode]] [[$1|forneah sƿa inlenda]]'''.",
["ang-5"] = "{Þes brucere/Þeos bruceren} understent '''[[$2|Ænglisc geþeode]] [[$1|sƿiðe cræftiglice]]'''.",
["ang-N"] = "'''[[$2|Ænglisc geþeode]]''' bið '''[[$1|inlendisc geþeode]]''' {þisses bruceres/þisse brucerenes}.",
-------------------------- ann --------------------------
["ann-0"] = "Òsikwaan̄ yi '''ìkariọọn̄''' usem '''[[$2|Obolo]]''' (sà ìre îkiyọt enenen ọmọ igogobo itet).",
["ann-1"] = "Òsikwaan̄ yi îriọọn̄ '''[[$2|Obolo]] [[$1|sọnja]]'''.",
["ann-2"] = "Òsikwaan̄ yi îriọọn̄ usem '''[[$2|Obolo]]''' sọn̄ '''[[$1|oke-oke]]'''.",
["ann-3"] = "Òsikwaan̄ yi îriọọn̄ '''[[$2|Obolo]] [[$1|idọk sọnja]]'''.",
["ann-4"] = "Òsikwaan̄ yi îriọọn̄ '''[[$2|Obolo]] [[$1|igbet bọn-owot]]'''.",
["ann-5"] = "Òsikwaan̄ yi îriọọn̄ '''[[$2|Obolo]]''' kire ebi '''[[$1|usọ]]''' usem.",
["ann-N"] = "Òsikwaan̄ yi îriọọn̄ '''[[$2|Obolo]]''' kire '''[[$1|bọn-owot]]'''.",
-------------------------- anp --------------------------
["anp-0"] = "इ सदस्य क '''[[$2|अंगिका]]''' केरौ ज्ञान '''नै''' छै (या समझै लेली बहुत प्रयास करै ल पड़ै छै)।",
["anp-1"] = "इ सदस्य क '''[[$2|अंगिका]]''' केरौ '''[[$1|प्राथमिक]]''' ज्ञान छै।",
["anp-2"] = "इ सदस्य क '''[[$2|अंगिका]]''' केरौ '''[[$1|मध्यम स्तर]]''' के ज्ञान छै।",
["anp-3"] = "इ सदस्य क '''[[$2|अंगिका]]''' केरौ '''[[$1|उच्च स्तर]]''' के ज्ञान छै।",
["anp-4"] = "इस सदस्य क '''[[$2|अगिका]]''' केरौ '''[[$1|अति-उच्च स्तर]]''' के ज्ञान छै।",
["anp-5"] = "इ सदस्य क '''[[$2|अंगिका]]''' केरौ '''[[$1|व्यावसायिक स्तर]]''' के ज्ञान छै।",
["anp-N"] = "इ सदस्य क '''[[$2|अंगिका]]''' केरौ '''[[$1|स्थानिक स्तर]]''' के ज्ञान छै।",
-------------------------- apc --------------------------
["apc-0"] = ".هيدا المستخدم '''ما بيفهم [[$2|شامي <small>(سوريا ولبنان)</small>]]''' أبداً",
["apc-1"] = ".هيدا المستخدم بس بيحكي '''[[$1|شوية]] [[$2|شامي <small>(سوريا ولبنان)</small>]]'''",
["apc-2"] = ".هيدا المستخدم '''[[$1|متوسط]] [[$2|بالشامي <small>(سوريا ولبنان)</small>]]'''",
["apc-3"] = ".هيدا المستخدم بيحكي '''[[$2|شامي <small>(سوريا ولبنان)</small>]] [[$1|منيح]]'''",
["apc-4"] = ".هيدا المستخدم '''[[$1|متقن]] [[$2|الشامي <small>(سوريا ولبنان)</small>]]'''",
["apc-5"] = ".هيدا المستخدم بيقدر يساهم '''[[$2|بالشامي <small>(سوريا ولبنان)</small>]]''' بشكل '''[[$1|بروفيسيونال]]'''",
["apc-N"] = ".'''[[$1|لغة الأم]]''' تبع هيدا المستخدم هي اللهجة '''[[$2|الشامية <small>(سوريا ولبنان)</small>]]'''",
-------------------------- ar --------------------------
["ar-0"] = "{هذا المستخدم/هذه المستخدمة}''' ليس '''{لديه/لديها} معرفة ب'''[[$2|العربية]]''' (أو {يفهمها/تفهمها} بصعوبة بالغة).",
["ar-1"] = "{هذا المستخدم/هذه المستخدمة} {لديه/لديها} معرفة '''[[$1|أساسية]]''' ب'''[[$2|العربية]]'''.",
["ar-2"] = "{هذا المستخدم لديه/هذه المستخدمة لديها} معرفة '''[[$1|متوسطة]]''' ب'''[[$2|العربية]]'''.",
["ar-3"] = "{هذا المستخدم لديه/هذه المستخدمة لديها} معرفة '''[[$1|متقدمة]]''' ب'''[[$2|العربية]]'''.",
["ar-4"] = "{هذا المستخدم لديه/هذه المستخدمة لديها} معرفة '''[[$1|تقترب من مستوى اللغة الأم]]''' ب'''[[$2|العربية]]'''.",
["ar-5"] = "{هذا المستخدم لديه/هذه المستخدمة لديها} معرفة '''[[$1|احترافية]]''' ب'''[[$2|العربية]]'''.",
["ar-N"] = "{هذا المستخدم/هذه المستخدمة}''' [[$1|{لغته/لغتها} الأم]]''' هي '''[[$2|العربية]]'''.",
-------------------------- arc --------------------------
["arc-0"] = "ܗܢܐ ܡܦܠܚܢܐ '''ܠܐ ܝܕܥ [[$2|ܣܘܪܝܝܐ]]''' (ܐܘ ܝܕܥ ܠܗ ܒܥܣܩܘܬܐ)",
["arc-1"] = "ܗܢܐ ܡܦܠܚܢܐ ܐܝܬ ܠܗ ܝܕܥܬܐ '''[[$1|ܪܫܝܬܐ]]''' ܒ'''[[$2|ܣܘܪܝܝܐ]]'''",
["arc-2"] = "ܗܢܐ ܡܦܠܚܢܐ ܐܝܬ ܠܗ ܝܕܥܬܐ '''[[$1|ܡܨܥܝܬܐ]]''' ܒ'''[[$2|ܣܘܪܝܝܐ]]'''",
["arc-3"] = "ܗܢܐ ܡܦܠܚܢܐ ܐܝܬ ܠܗ ܝܕܥܬܐ '''[[$1|ܡܬܩܕܡܢܝܬܐ]]''' ܒ'''[[$2|ܣܘܪܝܝܐ]]'''",
["arc-4"] = "ܗܢܐ ܡܦܠܚܢܐ ܐܝܬ ܠܗ ܝܕܥܬܐ '''[[$1|ܩܪܝܒܬܐ ܡܢ ܠܫܢܗ ܐܡܗܝܐ]]''' ܒ'''[[$2|ܣܘܪܝܝܐ]]'''",
["arc-5"] = "ܗܢܐ ܡܦܠܚܢܐ ܐܝܬ ܠܗ ܝܕܥܬܐ '''[[$1|ܚܪܝܦܬܐ]]''' ܒ'''[[$2|ܣܘܪܝܝܐ]]'''",
["arc-N"] = "ܗܢܐ ܡܦܠܚܢܐ ܐܝܬ ܠܗ ܝܕܥܬܐ '''[[$1|ܐܝܟ ܠܫܢܗ ܐܡܗܝܐ]]''' ܒ'''[[$2|ܣܘܪܝܝܐ]]'''",
-------------------------- arn --------------------------
["arn-0"] = "Tvfaci pvnekelu '''cemnorume [[$2|kim mapuzugulay]]'''.",
["arn-1"] = "Tvfaci pvnekelu '''[[$1|pvci]] [[$2|kimmapudunguy]]'''.",
["arn-2"] = "Tvfaci pvnekelu '''[[$1|eja]] [[$2|kim mapuzuguy]]'''.",
["arn-3"] = "Tvfaci pvnekelu '''[[$1|kvme]] [[$2|kim mapuzuguy]]'''.",
["arn-4"] = "Faci pvnekelu '''[[$1|azvmniefi]]''' ti '''[[$2|mapuzugun]]'''.",
["arn-5"] = "Faci kvzawfe ta '''[[$1|gvnezuamkefi]] [[$2|Mapuzugun]]'''.",
["arn-N"] = "Tvfaci ce ñi '''[[$1|wvnen zugun]]''' ta '''[[$2|mapuzugun]]'''.",
-------------------------- aro --------------------------
["aro-0"] = "Ma-e '''tsa-aita mahue eje''' jejeme '''[[$2|araona]]''' poi (o pitsatuda taisi mahue).",
["aro-1"] = "Ma-e '''[[$1|cuatsa-isi]]''' jejeme '''[[$2|araona]]''' poi.",
["aro-2"] = "Ma-e '''[[$1|tsata pezohue eje]]''' jejeme '''[[$2|araona]]''' poi.",
-------------------------- ars --------------------------
["ars-0"] = "ما {هو/هي} لم '''[[$2|النجدية]]''' (أو باليا الله {يجمع/تجمع}) ",
["ars-1"] = "'''[[$2|نجديته]] [[$1|تمشي الحال]]'''",
["ars-2"] = "'''[[$2|نجديته]] [[$1|زوينة]]'''",
["ars-3"] = "'''[[$2|نجديته]] [[$1|زينة]]'''",
["ars-4"] = "'''[[$2|نجديته]] [[$1|مضبوطة ݭنه لهجته]]'''",
["ars-5"] = "'''[[$2|نجديته]]''' نجدية '''[[$1|نجدي]]'''",
["ars-N"] = "'''[[$1|لهجته ]] [[$2|نجدية]]'''",
-------------------------- ary --------------------------
["ary-0"] = "{هاد المستخدم/هاد المستخدمة} {ما كيفهمش/ما كتفهمش} '''[[$2|المغربية]]'''.",
["ary-1"] = "{هاد المستخدم/هاد المستخدمة} {كيتكلم/كتتكلم} [[$1|شوية]] ب'''[[$2|المغربية]]'''.",
["ary-2"] = "{هاد المستخدم/هاد المستخدمة} {كيتكلم/كتتكلم} ب'''[[$2|المغربية]]''' [[$1|على قد الحال]].",
["ary-3"] = "{هاد المستخدم/هاد المستخدمة} {كيتكلم/كتتكلم} ب'''[[$2|المغربية]]''' [[$1|مزيان]].",
["ary-4"] = "{هاد المستخدم/هاد المستخدمة} {كيتكلم/كتتكلم} ب'''[[$2|المغربية]]''' [[$1|بحال شي {مغربي/مغربية}]] .",
["ary-N"] = "'''[[$1|اللغة الأم]]''' د {هاد المستخدم/هاد المستخدمة} هي '''[[$2|المغربية]]'''",
-------------------------- arz --------------------------
["arz-0"] = "اليوزر ده '''ما عندوش''' معرفه باللغه ال'''[[$2|مصرى]]''' (او بيفهمها بصعوبه كبيره).",
["arz-1"] = "اليوزر ده عنده معرفه '''[[$1|اساسيه]]''' باللغه ال'''[[$2|مصرى]]'''.",
["arz-2"] = "اليوزر ده يقدر '''[[$1|يتفاهم]]''' باللغه ال'''[[$2|مصرى]]'''.",
["arz-3"] = "اليوزر ده عنده معرفه '''[[$1|متقدمه]]''' باللغه ال'''[[$2|مصرى]]'''.",
["arz-4"] = "اليوزر ده عنده معرفه '''[[$1|قريبه من لغته الاصليه]]''' بال'''[[$2|مصرى]]'''.",
["arz-5"] = "اليوزر ده '''[[$1|حرّيف]]''' فى اللغه ال'''[[$2|مصرى]]'''.",
["arz-N"] = "'''[[$1|اللغه الاصليه]]''' بتاعة اليوزر ده '''[[$2|مصرى]]'''.",
-------------------------- as --------------------------
["as-0"] = "এই ব্যবহাৰকাৰীৰ '''[[$2|অসমীয়া]]'''ৰ ওপৰত কোনো জ্ঞান '''নাই''' (অথবা অশেষ কষ্টৰেহে বুজিব পাৰে)।",
["as-1"] = "এই ব্যবহাৰকাৰীৰ '''[[$2|অসমীয়া]]'''ৰ ওপৰত '''[[$1|প্ৰাথমিক]]''' জ্ঞান আছে ।",
["as-2"] = "এই ব্যবহাৰকাৰীৰ '''[[$2|অসমীয়া]]'''ৰ ওপৰত '''[[$1|মাধ্যমিক]]''' জ্ঞান আছে ।",
["as-3"] = "এই ব্যবহাৰকাৰীৰ '''[[$2|অসমীয়া]]'''ৰ ওপৰত '''[[$1|ভাল]]''' জ্ঞান আছে ।",
["as-4"] = "এই ব্যবহাৰকাৰীৰ '''[[$2|অসমীয়া]]'''ৰ ওপৰত '''[[$1|প্ৰায় মাতৃভাষাৰ সমকক্ষ]]''' জ্ঞান আছে।",
["as-5"] = "এই ব্যবহাৰকাৰীৰ '''[[$2|অসমীয়া]]'''ৰ ওপৰত '''[[$1|বৃত্তিধাৰী]]''' জ্ঞান আছে ।",
["as-N"] = "এই ব্যবহাৰকাৰীৰ '''[[$2|অসমীয়া]]'''ৰ ওপৰত '''[[$1|মাতৃভাষাৰ সমকক্ষ]]''' জ্ঞান আছে।",
-------------------------- ast --------------------------
["ast-0"] = "{Esti usuariu/Esta usuaria} '''nun''' tien conocimientos d''''[[$2|asturianu]]''' (o entiendelo con gran dificultá).",
["ast-1"] = "{Esti usuariu/Esta usuaria} tien un conocimientu '''[[$1|básicu]]''' d''''[[$2|asturianu]]'''.",
["ast-2"] = "{Esti usuariu/Esta usuaria} tien un conocimientu '''[[$1|intermediu]]''' d''''[[$2|asturianu]]'''.",
["ast-3"] = "{Esti usuariu/Esta usuaria} tien un conocimientu '''[[$1|avanzáu]]''' d''''[[$2|asturianu]]'''.",
["ast-4"] = "{Esti usuariu/Esta usuaria} tien un conocimientu '''[[$1|cuasi nativu]]''' d''''[[$2|asturianu]]'''.",
["ast-5"] = "{Esti usuariu/Esta usuaria} tien un conocimientu '''[[$1|profesional]]''' d''''[[$2|asturianu]]'''.",
["ast-N"] = "{Esti usuariu/Esta usuaria} ye {un/una} falante '''[[$1|{nativu/nativa}]]''' d''''[[$2|asturianu]]'''.",
-------------------------- av --------------------------
["av-0"] = "{Гьав гӀахьалчиясда/Гьай гӀахьалчӀужуялда} '''лъаларо [[$2|Авар мацӀ]]''' (яги бакӀго бичӀчӀула).",
["av-1"] = "{Гьав гӀахьалчиясда/Гьай гӀахьалчӀужуялда} '''[[$2|Авар мацӀ]]''' лъалеб буго '''[[$1|байбихьул даражаялда]]'''.",
["av-2"] = "{Гьав гӀахьалчиясда/Гьай гӀахьалчӀужуялда} '''[[$2|Авар мацӀ]]''' лъалеб буго '''[[$1|гьоркьохъеб даражаялда]]'''.",
["av-3"] = "{Гьав гӀахьалчиясда/Гьай гӀахьалчӀужуялда} '''[[$2|Авар мацӀ]]''' лъалеб буго '''[[$1|лъикӀ]]'''.",
["av-4"] = "{Гьав гӀахьалчиясда/Гьай гӀахьалчӀужуялда} '''[[$2|Авар мацӀ]]''' лъалеб буго '''[[$1|рахьдалаб гӀадин]]'''.",
["av-5"] = "{Гьав гӀахьалчиясда/Гьай гӀахьалчӀужуялда} '''[[$2|Авар мацӀ]]''' лъалеб буго '''[[$1|профессионалаб даражаялда]]'''.",
["av-N"] = "{Гьав гӀахьалчиясе/Гьай гӀахьалчӀужуялъе} '''[[$2|Авар мацӀ]]''' буго '''[[$1|рахьдалаблъун]]'''.",
-------------------------- avk --------------------------
["avk-0"] = "Bat webesik kan '''[[$2|Kotava]] me''' grugoler ( oke wavdapon gildar ).",
["avk-1"] = "Bat webesik kan '''[[$2|Kotava]] [[$1|omekon]]''' grugoler.",
["avk-2"] = "Bat webesik kan '''[[$2|Kotava]] [[$1|mialukekon]]''' grugoler.",
["avk-3"] = "Bat webesik kan '''[[$2|Kotava]] [[$1|ontinekon]]''' grugoler.",
["avk-4"] = "Bat webesik kan '''[[$2|Kotava]]''' ton '''[[$1|nazbokavusik]]''' lewe grugoler.",
["avk-5"] = "Bat webesik kan '''[[$2|Kotava]] [[$1|ebekon]]''' grugoler.",
["avk-N"] = "Bat webesik kan '''[[$2|Kotava]]''' ton '''[[$1|nazbokavusik]]''' grugoler.",
-------------------------- awa --------------------------
["awa-0"] = "इ सदस्य कय '''[[$2|अवधी]]''' कय ज्ञान '''नाँई''' है (या समझय में बहुत परेशानी होत है)।",
["awa-1"] = "इ सदस्य कय '''[[$2|अवधी]]''' कय '''[[$1|प्राथमिक]]''' ज्ञान है।",
["awa-2"] = "इ सदस्य कय '''[[$2|अवधी]]''' कय '''[[$1|मध्यम स्तर]]''' कय ज्ञान है।",
["awa-3"] = "इ सदस्य कय '''[[$2|अवधी]]''' कय '''[[$1|बहुत बढिया]]''' ज्ञान है।",
["awa-4"] = "इ सदस्य कय '''[[$2|अवधी]]''' कय '''[[$1|लगभग मातृभाषी स्तर]]''' कय ज्ञान है।",
["awa-5"] = "इ सदस्य कय '''[[$2|अवधी]]''' कय '''[[$1|व्यावसायिक स्तर]]''' कय ज्ञान है।",
["awa-N"] = "इ सदस्य कय '''[[$1|मातृभाषा]] [[$2|अवधी]]''' होय ।",
-------------------------- ay --------------------------
["ay-0"] = "Jupaxa apnaqiri '''[[$2|Aymara aru]]'''xa '''jani''' yatiniwa (inasa ch'ama yattaniwa).",
["ay-1"] = "Jupaxa apnaqiri '''[[$2|Aymara aru]]'''xa '''[[$1|juk'a]]''' yatiniwa.",
["ay-2"] = "Jupaxa apnaqiri '''[[$2|Aymara aru]]'''xa '''[[$1|chika]]''' yatiniwa.",
["ay-3"] = "Jupaxa apnaqiri '''[[$2|Aymara aru]]'''xa '''[[$1|alluxa]]''' yatiniwa.",
["ay-4"] = "Jupaxa apnaqiri '''[[$2|Aymara aru]]'''xa '''[[$1|niyaki yurawita]]''' yatiniwa.",
["ay-5"] = "Jupaxa apnaqiri '''[[$2|Aymara aru]]'''xa '''[[$1|yatxatata]]''' yatiniwa.",
["ay-N"] = "Jupaxa apnaqiri '''[[$2|Aymara aru]]'''xa '''[[$1|yurawita]]''' yatiniwa.",
-------------------------- az --------------------------
["az-0"] = "Bu istifadəçi '''[[$2|Azərbaycan dilini]] heç''' bilmir (ya da çətinliklə anlayır).",
["az-1"] = "Bu istifadəçi '''[[$2|Azərbaycan dilini]] [[$1|zəif]]''' bilir.",
["az-2"] = "Bu istifadəçi '''[[$2|Azərbaycan dilini]] [[$1|orta səviyyədə]]''' bilir.",
["az-3"] = "Bu istifadəçi '''[[$2|Azərbaycan dilini]] [[$1|yaxşı]]''' bilir.",
["az-4"] = "Bu istifadəçi '''[[$2|Azərbaycan dilini]] [[$1|ana dili kimi]]''' bilir.",
["az-5"] = "Bu istifadəçi '''[[$2|Azərbaycan dilini]] [[$1|peşəkar səviyyədə]]''' bilir.",
["az-N"] = "'''[[$2|Azərbaycan dili]]''' bu istifadəçinin '''[[$1|ana dilidir]]'''.",
-------------------------- azb --------------------------
["azb-0"] = "بو ایستیفادهچی '''هئچ [[$2|تورکجه]]''' بیلمیر (یا دا چتین آنلاییر).",
["azb-1"] = "بو ایستیفادهچی '''[[$1|آزاراق]] [[$2|تورکجه]]''' بیلیر.",
["azb-2"] = "بو ایستیفادهچی '''[[$1|اورتاجا]] [[$2|تورکجه]]''' بیلیر.",
["azb-3"] = "بو ایستیفادهچی '''[[$1|یاخشی]] [[$2|تورکجه]]''' بیلیر.",
["azb-4"] = "بو ایستیفادهچی '''[[$1|آنا دیلی کیمی]] [[$2|تورکجه]]''' بیلیر.",
["azb-5"] = "بو ایستیفادهچی '''[[$1|چوخ یاخشی]] [[$2|تورکجه]]''' بیلیر.",
["azb-N"] = "بو ایشلدنین '''[[$1|آنادیلی]] [[$2|تورکجه]]'''دیر.",
}
1u2x2zshavaaaaac11epiri08y3coyi
Mô đun:Babel/data/c
828
419939
2570016
2026-10-12T16:35:08Z
Hiyuune
50834
Trang mới: “return { -------------------------- ca -------------------------- ["ca-0"] = "{Aquest usuari/Aquesta usuària/Aquesta persona} '''no''' té cap coneixement del '''[[$2|català]]''' (o l'entén amb molta dificultat).", ["ca-1"] = "{Aquest usuari/Aquesta usuària/Aquesta persona} té un coneixement '''[[$1|bàsic]]''' del '''[[$2|català]]'''.", ["ca-2"] = "{Aquest usuari/Aquesta usuària/Aquesta persona} té un coneixement '''[[$1|intermedi]]''' del '''[[$2|català]]''…”
2570016
Scribunto
text/plain
return {
-------------------------- ca --------------------------
["ca-0"] = "{Aquest usuari/Aquesta usuària/Aquesta persona} '''no''' té cap coneixement del '''[[$2|català]]''' (o l'entén amb molta dificultat).",
["ca-1"] = "{Aquest usuari/Aquesta usuària/Aquesta persona} té un coneixement '''[[$1|bàsic]]''' del '''[[$2|català]]'''.",
["ca-2"] = "{Aquest usuari/Aquesta usuària/Aquesta persona} té un coneixement '''[[$1|intermedi]]''' del '''[[$2|català]]'''.",
["ca-3"] = "{Aquest usuari/Aquesta usuària/Aquesta persona} té un coneixement '''[[$1|avançat]]''' del '''[[$2|català]]'''.",
["ca-4"] = "{Aquest usuari/Aquesta usuària/Aquesta persona} té un domini '''[[$1|gairebé natiu]]''' del '''[[$2|català]]'''.",
["ca-5"] = "{Aquest usuari/Aquesta usuària/Aquesta persona} té un domini '''[[$1|professional]]''' del '''[[$2|català]]'''.",
["ca-N"] = "{Aquest usuari/Aquesta usuària/Aquesta persona} té com a llengua '''[[$1|materna]]''' el '''[[$2|català]]'''.",
-------------------------- cak --------------------------
["cak-0"] = "Re okisanel '''man''' k’o ta etamab’äl pa ri '''[[$2|Kaqchikel]]'''.",
["cak-1"] = "Re okisanel k’o '''[[$1|ruxe’]]''' etamab’äl pa ri '''[[$2|Kaqchikel]]'''.",
["cak-2"] = "Re okisanel k’o '''[[$1|nik’aj]]''' etamab’äl pa ri '''[[$2|Kaqchikel]]'''.",
["cak-3"] = "Re okisanel k’o '''[[$1|ik’owinem]]''' etamab’äl pa ri '''[[$2|Kaqchikel]]'''.",
["cak-4"] = "Re okisanel k’o '''[[$1|chunaqaj alaxïk]]''' etamab’äl pa ri '''[[$2|Kaqchikel]]'''.",
["cak-5"] = "Re okisanel k’o '''[[$1|tijtijonem]]''' etamab’äl pa ri '''[[$2|Kaqchikel]]'''.",
["cak-N"] = "Re okisanel k’o '''[[$1|alaxïk]]''' etamab’äl pa ri '''[[$2|Kaqchikel]]'''.",
-------------------------- ccp --------------------------
["ccp-0"] = "𑄃𑄬 𑄣𑄢𑄴𑄌𑄢𑄴 𑄉𑄧𑄢𑄨𑄠𑄬𑄝𑄮𑄢𑄴 '''[[$2|𑄌𑄋𑄴𑄟𑄳𑄦 𑄞𑄏𑄧]]''' 𑄅𑄉𑄪𑄢𑄬 𑄇𑄧𑄚𑄧 𑄚𑄧𑄣𑄬𑄎𑄴 '''𑄚𑄬𑄭''' (𑄃𑅅 𑄥𑄨𑄠𑄚𑄴 𑄃𑄧𑄟𑄧𑄇𑄧𑄘𑄧 𑄇𑄧𑄌𑄴𑄑𑄧 𑄉𑄧𑄢𑄨 𑄝𑄪𑄏𑄨 𑄛𑄢𑄬)𑅁",
["ccp-1"] = "𑄃𑄬 𑄣𑄢𑄴𑄌𑄢𑄴 𑄉𑄧𑄢𑄨𑄠𑄬𑄝𑄮𑄢𑄴 '''[[$2|𑄌𑄋𑄴𑄟𑄳𑄦 𑄞𑄏𑄧𑄢𑄴]]''' 𑄅𑄉𑄪𑄢𑄬 '''[[$1|𑄃𑄬𑄇𑄴𑄳𑄦𑄅𑄇𑄴𑄮]]''' 𑄚𑄧𑄣𑄬𑄎𑄴 𑄃𑄊𑄬𑅁",
["ccp-2"] = "𑄃𑄬 𑄣𑄢𑄴𑄌𑄢𑄴 𑄉𑄧𑄢𑄨𑄠𑄬𑄝𑄮𑄢𑄴 '''[[$2|𑄌𑄋𑄴𑄟𑄳𑄦 𑄞𑄏𑄧𑄢𑄴]]''' 𑄅𑄉𑄪𑄢𑄬'''[[$1|𑄟𑄧𑄖𑄴𑄙𑄮𑄟𑄴 𑄉𑄪𑄎𑄧𑄢𑄧𑄢𑄴]]''' 𑄚𑄧𑄣𑄬𑄎𑄴 𑄃𑄊𑄬𑅁",
["ccp-3"] = "𑄃𑄬 𑄣𑄢𑄴𑄌𑄢𑄴 𑄉𑄧𑄢𑄨𑄠𑄬𑄝𑄮𑄢𑄴'''[[$2|𑄌𑄋𑄴𑄟𑄳𑄦 𑄞𑄏𑄧𑄢𑄴]]''' 𑄅𑄉𑄪𑄢𑄬 '''[[$1|𑄞𑄧𑄏𑄚𑄴 𑄉𑄧𑄟𑄴]]''' 𑄚𑄧𑄣𑄬𑄎𑄴 𑄃𑄊𑄬𑅁",
["ccp-4"] = "𑄃𑄬 𑄣𑄢𑄴𑄌𑄢𑄴 𑄉𑄧𑄢𑄨𑄠𑄬𑄝𑄮𑄢𑄴 '''[[$2|𑄌𑄋𑄴𑄟𑄳𑄦 𑄞𑄏𑄧𑄢𑄴]]''' 𑄅𑄉𑄪𑄢𑄬 '''[[$1| 𑄟 𑄞𑄏𑄧 𑄥𑅅𑄚𑄴]]''' 𑄚𑄧𑄣𑄬𑄎𑄴 𑄃𑄬𑄊𑅁",
["ccp-5"] = "𑄃𑄬 𑄣𑄢𑄴𑄌𑄴𑄢 𑄉𑄧𑄢𑄨𑄠𑄬𑄝𑄮𑄢𑄴 '''[[$2|𑄌𑄋𑄴𑄟𑄳𑄦 𑄞𑄏𑄧𑄢𑄴]]''' 𑄅𑄉𑄪𑄢𑄬 '''[[$1|𑄡𑄧𑄘𑄬𑄝𑄧𑄘𑄬 𑄉𑄧𑄟𑄴]]''' 𑄚𑄧𑄣𑄬𑄎𑄴 𑄃𑄊𑄬𑅁",
["ccp-N"] = "𑄃𑄬 𑄣𑄢𑄴𑄌𑄢𑄴 𑄉𑄧𑄢𑄨𑄠𑄬𑄝𑄮𑄢𑄴 '''[[$2|𑄌𑄋𑄴𑄟𑄳𑄦 𑄞𑄏𑄧𑄢𑄴]]''' 𑄅𑄉𑄪𑄢𑄬 '''[[$1|𑄟 𑄞𑄏𑄧 𑄙𑄮𑄇𑄴𑄬]]''' 𑄚𑄧𑄣𑄬𑄎𑄴 𑄃𑄊𑄬𑅁",
-------------------------- cdo --------------------------
["cdo-0"] = "Cī ciáh ê̤ṳng-hô uòng-ciòng ''mâ̤ huôi-é [[$2|Mìng-dĕ̤ng-ngṳ̄]]'''."
.. "茲隻用戶完全'''𣍐會意[[$2|閩東語]]'''。",
["cdo-1"] = "Cī ciáh ê̤ṳng-hô tĕ̤k-siā '''[[$2|Mìng-dĕ̤ng-ngṳ̄]]''' gì nèng-lĭk sê '''[[$1|chĕ̤-gék]]'''."
.. "茲隻用戶讀寫'''[[$2|閩東語]]'''其能力是'''[[$1|初級]]'''。",
["cdo-2"] = "Cī ciáh ê̤ṳng-hô tĕ̤k-siā '''[[$2|Mìng-dĕ̤ng-ngṳ̄]]''' gì nèng-lĭk '''[[$1|dṳ̆ng-dēng]]'''."
.. "茲隻用戶讀寫'''[[$2|閩東語]]'''其能力'''[[$1|中等]]'''。",
["cdo-3"] = "Cī ciáh ê̤ṳng-hô tĕ̤k-siā '''[[$2|Mìng-dĕ̤ng-ngṳ̄]]''' gì nèng-lĭk '''[[$1|gŏ̤-gék]]'''."
.. "茲隻用戶讀寫'''[[$2|閩東語]]'''其能力'''[[$1|高級]]'''。",
["cdo-4"] = "Cī ciáh ê̤ṳng-hô tĕ̤k-siā '''[[$2|Mìng-dĕ̤ng-ngṳ̄]]''' gì nèng-lĭk '''[[$1|ciék-gê̤ṳng mū-ngṳ̄]]'''."
.. "茲隻用戶讀寫'''[[$2|閩東語]]'''其能力'''[[$1|接近母語]]'''。",
["cdo-5"] = "Cī ciáh ê̤ṳng-hô tĕ̤k-siā '''[[$2|Mìng-dĕ̤ng-ngṳ̄]]''' gì nèng-lĭk '''[[$1|iā ciŏng-ngiĕk]]'''."
.. "茲隻用戶讀寫'''[[$2|閩東語]]'''其能力'''[[$1|野專業]]'''。",
["cdo-N"] = "Cī ciáh ê̤ṳng-hô gì '''[[$1|mū-ngṳ̄]]''' sê '''[[$2|Mìng-dĕ̤ng-ngṳ̄]]'''."
.. "茲隻用戶其'''[[$1|母語]]'''是'''[[$2|閩東語]]'''。",
-------------------------- ce --------------------------
["ce-0"] = "ХӀокху декъашхочунна '''[[$2|нохчийн мотт]] ца хаьа'''.",
["ce-1"] = "ХӀокху декъашхочунна '''[[$1|кӀеззиг]]''' бийца хаьа '''[[$2|нохчийн мотт]]'''.",
["ce-2"] = "ХӀокху декъашхочунна '''[[$2|нохчийн мотт]]''' хаа '''[[$1|йуккъерчу тӀегӀанехь]]'''.",
["ce-3"] = "ХӀокху декъашхочо '''[[$1|шера]]''' буьйцу '''[[$2|нохчийн мотт]]'''.",
["ce-4"] = "ХӀокху декъашхочо '''[[$2|нохчийн мотт]]''' шен '''[[$1|ненан]]''' мотт санна буьйцу.",
["ce-5"] = "ХIокху декъашхочо '''[[$1|чIогIа говза]]''' буьйцу '''[[$2|нохчийн мотт]]'''.",
["ce-N"] = "'''[[$2|Нохчийн мотт]]''' — хӀокху декъашхочуьнан '''[[$1|ненан]]''' мотт бу.",
-------------------------- ceb --------------------------
["ceb-0"] = "Kining maong gumagamit '''dili makasabot''' og '''[[$2|Binisayang Sinugboanon]]'''.",
["ceb-1"] = "Kining maong gumagamit makatampo og '''[[$1|taphaw]]''' nga matang sa '''[[$2|Sinugboanong Binisaya]]'''.",
["ceb-2"] = "Kining maong gumagamit makatampo og '''[[$1|tunga-tunga]]''' nga matang sa '''[[$2|Sinugboanong Binisaya]]'''.",
["ceb-3"] = "Kining maong gumagamit makatampo og '''[[$1|hataas]]''' nga matang sa '''[[$2|Sinugboanong Binisaya]]'''.",
["ceb-4"] = "Kining maong gumagamit makatampo og '''[[$1|daw-lumad]]''' nga matang sa '''[[$2|Sinugboanon]]'''.",
-------------------------- cel-pro --------------------------
["cel-pro-1"] = "{Ki ɸareberetos/Kē ɸarebereta} wéydtus '''[[$1|bunatos]] [[$2|kentukeltīka]]''' selwāti.",
-------------------------- ch --------------------------
["ch-N"] = "'''[[$1|Fumifino']] [[$2|CHamoru]]''' ini na taotao.",
-------------------------- chr --------------------------
["chr-0"] = "ᏗᎦᎴᏴᏗᏍᎩ '''ᎥᏝ Ᏹ''' ᎪᎵᏍᏗ '''[[$2|ᏣᎳᎩ]]'''.",
["chr-1"] = "'''[[$2|ᏣᎳᎩ]]''' ᏲᏁᎦ ᏗᏕᏠᏆᏍᏙᏗ '''[[$1|ᏲᏁᎦ]]'''.",
["chr-2"] = "'''[[$1|ᎤᏍᏗ]] [[$2|ᏣᎳᎩ]]''' ᎦᏬᏂᎭ.",
["chr-3"] = "'''[[$2|ᏣᎳᎩ]] [[$1|ᎣᏍᏓᏛ]]''' ᎦᏬᏂᎭ.",
["chr-4"] = "'''[[$2|ᏣᎳᎩ]] [[$1|ᎣᎯᏍᏗ]]''' ᎦᏬᏂᎭ.",
-------------------------- cic --------------------------
["cic-1"] = "'''[[$2|Chikashshanompa']] [[$1|chinofa’si]]''' yuuzi’at yappat anompoli.",
-------------------------- ckb --------------------------
["ckb-0"] = "ئەم بەکارھێنەرە ھیچ لە '''[[$2|کوردیی ناوەندی]] نازانێت''' (یان زۆر بەدژواری تێدەگات).",
["ckb-1"] = "ئەم بەکارھێنەرە زانینێکی '''[[$1|سەرەتایی]]'''ی لە '''[[$2|کوردیی ناوەندی]]'''دا ھەیە.",
["ckb-2"] = "ئەم بەکارھێنەرە زانینێکی '''[[$1|ناوەنجی]]''' لە '''[[$2|کوردیی ناوەندی]]'''دا ھەیە.",
["ckb-3"] = "ئەم بەکارھێنەرە زانینێکی '''[[$1|پێشکەوتوو]]'''ی لە '''[[$2|کوردیی ناوەندی]]'''دا ھەیە.",
["ckb-4"] = "ئەم بەکارھێنەرە '''[[$1|وەک زمانی دایکی]] [[$2|کوردیی ناوەندی]]''' دەزانێت.",
["ckb-5"] = "ئەم بەکارھێنەرە ئاگادارییەکی '''[[$1|پیشەیی]]'''ی لە '''[[$2|کوردیی ناوەندی]]'''دا ھەیە.",
["ckb-N"] = "'''[[$2|کوردیی ناوەندی]] [[$1|زمانی دایکی]]''' ئەم بەکارھێنەرەیە.",
-------------------------- cnr --------------------------
["cnr-0"] = "{Овај корисник/Ова корисница/Овај корисник} '''не''' зна '''[[$2|црногорски језик]]''' (или га разумије са знатним потешкоћама).",
["cnr-1"] = "{Овај корисник/Ова корисница/Овај корисник} има '''[[$1|основно]]''' знање '''[[$2|црногорскога језика]]'''.",
["cnr-2"] = "{Овај корисник/Ова корисница/Овај корисник} има '''[[$1|осредње]]''' знање '''[[$2|црногорскога језика]]'''.",
["cnr-3"] = "{Овај корисник/Ова корисница/Овај корисник} има '''[[$1|напредно]]''' знање '''[[$2|црногорскога језика]]'''.",
["cnr-4"] = "{Овај корисник/Ова корисница/Овај корисник} има '''[[$1|одлично]]''' знање '''[[$2|црногорскога језика]]'''.",
["cnr-5"] = "{Овај корисник/Ова корисница/Овај корисник} има '''[[$1|професионално]]''' знање '''[[$2|црногорскога језика]]'''.",
["cnr-N"] = "{Овом кориснику/Овој корисници/Овом кориснику} '''[[$2|црногорски]]''' је '''[[$1|матерњи језик]]'''.",
-------------------------- cnr-Latn --------------------------
["cnr-Latn-0"] = "{Ovaj korisnik/Ova korisnica/Ovaj korisnik} '''ne''' zna '''[[$2|crnogorski jezik]]''' (ili ga razumije sa znatnim poteškoćama).",
["cnr-Latn-1"] = "{Ovaj korisnik/Ova korisnica/Ovaj korisnik} ima '''[[$1|osnovno]]''' znanje '''[[$2|crnogorskoga jezika]]'''.",
["cnr-Latn-2"] = "{Ovaj korisnik/Ova korisnica/Ovaj korisnik} ima '''[[$1|osrednje]]''' znanje '''[[$2|crnogorskoga jezika]]'''.",
["cnr-Latn-3"] = "{Ovaj korisnik/Ova korisnica/Ovaj korisnik} ima '''[[$1|napredno]]''' znanje '''[[$2|crnogorskoga jezika]]'''.",
["cnr-Latn-4"] = "{Ovaj korisnik/Ova korisnica/Ovaj korisnik} ima '''[[$1|odlično]]''' znanje '''[[$2|crnogorskoga jezika]]'''.",
["cnr-Latn-5"] = "{Ovaj korisnik/Ova korisnica/Ovaj korisnik} ima '''[[$1|profesionalno]]''' znanje '''[[$2|crnogorskoga jezika]]'''.",
["cnr-Latn-N"] = "{Ovom korisniku/Ovoj korisnici/Ovom korisniku} '''[[$2|crnogorski]]''' je '''[[$1|maternji jezik]]'''.",
-------------------------- cmn --------------------------
["cmn-0"] = "這位用戶'''無法'''理解'''[[$2|官話]]'''。<br>"
.. "这位用户'''无法'''理解'''[[$2|官话]]'''。",
["cmn-1"] = "該用戶能以'''[[$1|基本]]'''的'''[[$2|官話]]'''進行交流。<br>"
.. "该用户能以'''[[$1|基本]]'''的'''[[$2|官话]]'''进行交流。",
["cmn-2"] = "該用戶能以'''[[$1|中級]]'''的'''[[$2|官話]]'''進行交流。<br>"
.. "该用户能以'''[[$1|中级]]'''的'''[[$2|官话]]'''进行交流。",
["cmn-3"] = "該用戶能以'''[[$1|熟練]]'''的'''[[$2|官話]]'''進行交流。<br>"
.. "该用户能以'''[[$1|熟练]]'''的'''[[$2|官话]]'''进行交流。",
["cmn-4"] = "該用戶能以'''[[$1|地道]]'''的'''[[$2|官話]]'''進行交流。<br>"
.. "该用户能以'''[[$1|地道]]'''的'''[[$2|官话]]'''进行交流。",
["cmn-N"] = "這個用戶的'''[[$1|母語]]'''是'''[[$2|官話]]'''。<br>"
.. "这个用户的'''[[$1|母语]]'''是'''[[$2|官话]]'''。",
-------------------------- cmn-Hant --------------------------
["cmn-Hant-0"] = "這位用戶'''無法'''理解'''[[$2|官話]]'''。",
["cmn-Hant-1"] = "該用戶能以'''[[$1|基本]]'''的'''[[$2|官話]]'''進行交流。",
["cmn-Hant-2"] = "該用戶能以'''[[$1|中級]]'''的'''[[$2|官話]]'''進行交流。",
["cmn-Hant-3"] = "該用戶能以'''[[$1|熟練]]'''的'''[[$2|官話]]'''進行交流。",
["cmn-Hant-4"] = "該用戶能以'''[[$1|地道]]'''的'''[[$2|官話]]'''進行交流。",
["cmn-Hant-N"] = "這個用戶的'''[[$1|母語]]'''是'''[[$2|官話]]'''。",
-------------------------- cmn-Hans --------------------------
["cmn-Hans-0"] = "这位用户'''无法'''理解'''[[$2|官话]]'''。",
["cmn-Hans-1"] = "该用户能以'''[[$1|基本]]'''的'''[[$2|官话]]'''进行交流。",
["cmn-Hans-2"] = "该用户能以'''[[$1|中级]]'''的'''[[$2|官话]]'''进行交流。",
["cmn-Hans-3"] = "该用户能以'''[[$1|熟练]]'''的'''[[$2|官话]]'''进行交流。",
["cmn-Hans-4"] = "该用户能以'''[[$1|地道]]'''的'''[[$2|官话]]'''进行交流。",
["cmn-Hans-N"] = "这个用户的'''[[$1|母语]]'''是'''[[$2|官话]]'''。",
-------------------------- co --------------------------
["co-0"] = "Stu utilizatore '''ùn capisce micca''' u '''[[$2|corsu]]'''.",
["co-1"] = "Stu participante pò cuntribuì cù un livellu '''[[$1|elementare]]''' di '''[[$2|corsu]]'''.",
["co-2"] = "Stu participante pò cuntribuì cù un livellu '''[[$1|mediu]]''' di '''[[$2|corsu]]'''.",
["co-3"] = "Stu participante pò cuntribuì cù un livellu '''[[$1|avanzatu]]''' di '''[[$2|corsu]]'''.",
["co-N"] = "Stu utilizatore parla u '''[[$2|corsu]]''' cum'è lingua '''[[$1|materna]]'''.",
-------------------------- cop --------------------------
["cop-1"] = "Ⲡⲁⲓⲣⲉϥⲉⲣϩⲱⲃ ̀ϣϫⲟⲙ ̀ⲉϯⲧⲟⲧⲥ ⲛⲉⲙ '''[[$1|ⲟⲩⲕⲟⲩϫⲓ]]''' ̀ⲛⲉⲙⲓ ̀ⲛⲧⲉ ϯⲁⲥⲡⲓ ̀ⲛ'''[[$2|ⲛⲓⲣⲉⲙ̀ⲛⲭⲏⲙⲓ]]'''.",
["cop-2"] = "Ⲡⲁⲓⲣⲉϥⲉⲣϩⲱⲃ ̀ϣϫⲟⲙ ̀ⲉϯⲧⲟⲧⲥ ⲛⲉⲙ '''[[$1|ⲟⲩⲫⲁϣⲓ]]''' ̀ⲛⲉⲙⲓ ̀ⲛⲧⲉ ϯⲁⲥⲡⲓ ̀ⲛ'''[[$2|ⲛⲓⲣⲉⲙ̀ⲛⲭⲏⲙⲓ]]'''.",
["cop-3"] = "Ⲡⲁⲓⲣⲉϥⲉⲣϩⲱⲃ ̀ϣϫⲟⲙ ̀ⲉϯⲧⲟⲧⲥ ⲛⲉⲙ '''[[$1|ⲟⲩⲙⲏϣ]]''' ̀ⲛⲉⲙⲓ ̀ⲛⲧⲉ ϯⲁⲥⲡⲓ ̀ⲛ'''[[$2|ⲛⲓⲣⲉⲙ̀ⲛⲭⲏⲙⲓ]]'''.",
["cop-4"] = "Ⲡⲁⲓⲣⲉϥⲉⲣϩⲱⲃ ̀ϣϫⲟⲙ ̀ⲉϯⲧⲟⲧⲥ ⲛⲉⲙ ⲡⲓⲉⲙⲓ ̀ⲛⲧⲉ ϯⲁⲥⲡⲓ ̀ⲛ'''[[$2|ⲛⲓⲣⲉⲙ̀ⲛⲭⲏⲙⲓ]]''' ̀ⲛ'''[[$1|ⲟⲩⲣⲉⲙⲛⲭⲏⲙⲓ]]''' ϧⲉⲛ ⲡⲓⲥⲏⲟⲩ ̀ⲛⲁⲡⲁⲥ.",
["cop-N"] = "Ϯⲁⲥⲡⲓ ̀ⲛ'''[[$2|ⲛⲓⲣⲉⲙ̀ⲛⲭⲏⲙⲓ]]''' ⲧⲉ '''[[$1|ϯⲁⲥⲡⲓ ̀ⲙⲙⲓⲥⲓ]]''' ̀ⲛⲧⲉ ⲡⲁⲓⲣⲉϥⲉⲣϩⲱⲃ... ⲓⲉ ⲙⲉⲑⲛⲟⲩϫ ⲡⲉ.",
-------------------------- cps --------------------------
["cps-0"] = "Ang mini nga manug-usar '''wala''' sang ka-alam sang '''[[$2|Capiceño]]''' (ukon nabudlayan mini mag-intyende).",
["cps-1"] = "Ang mini nga manug-usar may '''[[$1|gamay]]''' nga ka-alam sang '''[[$2|Capiceño]]'''.",
["cps-2"] = "Ang mini nga manug-usar may '''[[$1|katamtaman]]''' nga ka-alam sang '''[[$2|Capiceño]]'''.",
["cps-3"] = "Ang mini nga manug-usar may '''[[$1|abanse]]''' nga ka-alam sang '''[[$2|Capiceño]]'''.",
["cps-4"] = "Ang mini nga manug-usar may '''[[$1|malapit sa tumandok]]''' nga ka-alam sang '''[[$2|Capiceño]]'''.",
["cps-5"] = "Ang mini nga manug-usar may '''[[$1|propesyunal]]''' nga ka-alam sang '''[[$2|Capiceño]]'''.",
["cps-N"] = "Ang mini nga manug-usar may '''[[$1|tumandok]]''' nga ka-alam sang '''[[$2|Capiceño]]'''.",
-------------------------- cpx-Hant --------------------------
["cpx-Hant-0"] = "這用戶'''𣍐八'''寫'''[[$2|莆仙語(繁體)]]'''。",
["cpx-Hant-N"] = "這用戶兮'''[[$1|母語]]'''是'''[[$2|莆仙語(繁體)]]'''。",
-------------------------- cpx --------------------------
["cpx-0"] = "這用戶'''𣍐八'''講'''[[$2|莆仙語]]'''。",
["cpx-N"] = "這用戶兮'''[[$1|母語]]'''是'''[[$2|莆仙語]]'''。",
-------------------------- cr --------------------------
["cr-1"] = "ᐊᐘ ᐊᔨᓯᔨᓂᐤ '''[[$1|ᐊᐱᓯᐢ]] [[$2|ᓀᐦᐃᔭᐍᐤ]]'''",
-------------------------- crh-Cyrl --------------------------
["crh-Cyrl-0"] = "Бу къуланыджы '''[[$2|къырымтатар тилини]]''' я '''ич бильмей''' я да зар-зорнен анълай.",
["crh-Cyrl-1"] = "Бу къулланыджы '''[[$2|къырымтатар тилини]] [[$1|азчыкъ]]''' биле.",
["crh-Cyrl-2"] = "Бу къулланыджы '''[[$2|къырымтатар тилини]] [[$1|орта севиеде]]''' биле.",
["crh-Cyrl-3"] = "Бу къулланыджы '''[[$2|къырымтатар тилини]] [[$1|яхшы]]''' биле.",
["crh-Cyrl-4"] = "Бу къулланыджы '''[[$2|къырымтатар тилини]] [[$1|ана тили киби]]''' биле.",
["crh-Cyrl-5"] = "Бу къулланыджы '''[[$2|къырымтатар тилини]] [[$1|ихтисасий севиеде]]''' биле.",
["crh-Cyrl-N"] = "Бу къулланыджынынъ '''[[$1|ана тили]] [[$2|къырымтатар тили]]'''дир.",
-------------------------- crh-Latn --------------------------
["crh-Latn-0"] = "Bu qulanıcı '''[[$2|qırımtatar tilini]]''' ya '''iç bilmey''' ya da zar-zornen añlay.",
["crh-Latn-1"] = "Bu qullanıcı '''[[$2|qırımtatar tilini]] [[$1|azçıq]]''' bile.",
["crh-Latn-2"] = "Bu qullanıcı '''[[$2|qırımtatar tilini]] [[$1|orta seviyede]]''' bile.",
["crh-Latn-3"] = "Bu qullanıcı '''[[$2|qırımtatar tilini]] [[$1|yahşı]]''' bile.",
["crh-Latn-4"] = "Bu qullanıcı '''[[$2|qırımtatar tilini]] [[$1|ana tili kibi]]''' bile.",
["crh-Latn-5"] = "Bu qullanıcı '''[[$2|qırımtatar tilini]] [[$1|ihtisasiy seviyede]]''' bile.",
["crh-Latn-N"] = "Bu qullanıcınıñ '''[[$1|ana tili]] [[$2|qırımtatar tili]]'''dir.",
-------------------------- crh-RO --------------------------
["crh-RO-0"] = "Bo kullanuwşî '''maraza''' kademede '''[[$2|tatarşa]]''' <br>bíle (ya da katnaşuwda pek bír meşakkatlî).",
["crh-RO-1"] = "Bo kullanuwşî '''[[$1|hayatiy]]''' kademede '''[[$2|tatarşa]]''' bíle.",
["crh-RO-2"] = "Bo kullanuwşî '''[[$1|wasatiy]]''' kademede '''[[$2|tatarşa]]''' bíle.",
["crh-RO-3"] = "Bo kullanuwşî '''[[$1|múterakkiy]]''' kademede '''[[$2|tatarşa]]''' bíle.",
["crh-RO-4"] = "Bo kullanuwşî '''[[$1|anatílí kíbí]]''' kademede '''[[$2|tatarşa]]''' bíle.",
["crh-RO-5"] = "Bo kullanuwşî '''[[$1|meslekiy]]''' kademede '''[[$2|tatarşa]]''' bíle.",
["crh-RO-N"] = "Bo kullanuwşînîñ '''[[$1|anatílí]] [[$2|tatarşa]]'''.",
-------------------------- crp-rsn --------------------------
["crp-rsn-1"] = "Eta man sprækam '''[[$1|malenka]] [[$2|russenorsk]]'''.",
-------------------------- cs --------------------------
["cs-0"] = "{Tento uživatel/Tato uživatelka} '''nerozumí [[$2|česky]]''' (nebo rozumí se značnými problémy).",
["cs-1"] = "{Tento uživatel/Tato uživatelka} má '''[[$1|základní]]''' znalosti '''[[$2|češtiny]]'''.",
["cs-2"] = "{Tento uživatel/Tato uživatelka} má '''[[$1|střední]]''' znalosti '''[[$2|češtiny]]'''.",
["cs-3"] = "{Tento uživatel/Tato uživatelka} má '''[[$1|pokročilé]]''' znalosti '''[[$2|češtiny]]'''.",
["cs-4"] = "{Tento uživatel/Tato uživatelka} má znalosti '''[[$2|češtiny]] [[$1|téměř na úrovni rodilého mluvčího]]'''.",
["cs-5"] = "{Tento uživatel/Tato uživatelka} má '''[[$1|profesionální]]''' znalosti '''[[$2|češtiny]]'''.",
["cs-N"] = "{Tento uživatel/Tato uživatelka} je '''[[$1|{rodilý/rodilá} mluvčí]] [[$2|češtiny]]'''.",
-------------------------- csb --------------------------
["csb-0"] = "'''[[$2|Kaszëbsczi]]''' jãzëk '''nie je zrozmiałi''' dlô negò brëkòwnika (abò mô òn z nim stolemné problemë).",
["csb-1"] = "Nen brëkòwnik rozmieje '''[[$2|kaszëbsczi jãzëk]]''' w '''[[$1|spòdlowim]]''' gradze.",
["csb-2"] = "Nen brëkòwnik rozmieje '''[[$2|kaszëbsczi jãzëk]]''' w '''[[$1|strzédnoawansowónym]]''' gradze.",
["csb-3"] = "Nen brëkòwnik rozmieje '''[[$2|kaszëbsczi jãzëk]]''' w '''[[$1|awansowónym]]''' gradze.",
["csb-4"] = "Nen brëkòwnik rozmieje '''[[$2|kaszëbsczi jãzëk]]''' wnetka jakno '''[[$1|rodną mòwã]]'''.",
["csb-5"] = "Nen brëkòwnik rozmieje '''[[$2|kaszëbsczi jãzëk]]''' na równi z '''[[$1|rodną mòwą]]'''.",
["csb-N"] = "'''[[$2|Kaszëbsczi jãzëk]]''' je '''[[$1|rodną mòwą]]''' negò brëkòwnika.",
-------------------------- cu --------------------------
["cu-0"] = "сь польꙃєватєл҄ь '''нє''' раꙁоумѣѥтъ '''[[$2|словѣньскꙑ]]''' · или раꙁоумѣѥтъ съ вєликꙑ оусилии",
["cu-1"] = "сь польꙃєватєл҄ь глаголѥтъ '''[[$2|словѣньскꙑ]] [[$1|ꙁълѣ]]'''",
["cu-2"] = "сь польꙃєватєл҄ь глаголѥтъ '''[[$2|словѣньскꙑ]] [[$1|трьпимо]]'''",
["cu-3"] = "сь польꙃєватєл҄ь глаголѥтъ '''[[$2|словѣньскꙑ]] [[$1|добрѣ]]'''",
["cu-4"] = "сь польꙃєватєл҄ь глаголѥтъ '''[[$2|словѣньскꙑ]] [[$1|вєльми добрѣ]]'''",
["cu-N"] = "сѥмоу польꙃєватєл҄ю '''[[$2|словѣньскъ ѩꙁꙑкъ]]''' ꙗко '''[[$1|родьнъ]]''' ѥстъ",
-------------------------- cv --------------------------
["cv-0"] = "Ку хутшӑнакан '''[[$2|чӑваш чӗлхине]] пӗлмест''' (е ӑна чӗлхене ӑнланма йывӑр).",
["cv-1"] = "Ку хутшӑнакан '''[[$2|чӑваш чӗлхине]] [[$1|кӑштах]]''' пӗлет.",
["cv-2"] = "Ку хутшӑнакан '''[[$2|чӑвашла]] [[$1|вӑтам шайра]]''' пӗлет.",
["cv-3"] = "Ку хутшӑнакан '''[[$2|чӑваш чӗлхине]] [[$1|лайӑх]]''' пӗлет.",
["cv-4"] = "Ку хутшӑнакан '''[[$2|чӑвашла]] [[$1|тӑван чӗлхене пӗлнӗ пек]]''' пӗлет.",
["cv-5"] = "Ку хутшӑнакан '''[[$2|чӑваш чӗлхине]] [[$1|профессионал шайӗнче]]''' пӗлет.",
["cv-N"] = "Ку хутшӑнаканшӑн '''[[$2|чӑваш чӗлхи]] [[$1|тӑван чӗлхе]]''' шутланать.",
-------------------------- cy --------------------------
["cy-0"] = "'''Nid''' yw'r defnyddiwr hwn yn medru'r '''[[$2|Gymraeg]]''' (neu mae'n cael trafferth ei deall).",
["cy-1"] = "Mae'r defnyddiwr hwn yn medru'r '''[[$2|Gymraeg]]''' ar lefel '''[[$1|sylfaen]]'''.",
["cy-2"] = "Mae'r defnyddiwr hwn yn medru'r '''[[$2|Gymraeg]]''' ar lefel '''[[$1|canolradd]]'''.",
["cy-3"] = "Mae'r defnyddiwr hwn yn medru'r '''[[$2|Gymraeg]]''' ar lefel '''[[$1|uwch]]'''.",
["cy-4"] = "Mae'r defnyddiwr hwn yn medru'r '''[[$2|Gymraeg]]''' yn '''[[$1|rhugl]]'''.",
["cy-5"] = "Mae'r defnyddiwr hwn yn medru'r '''[[$2|Gymraeg]]''' ar lefel '''[[$1|broffesiynol]]'''.",
["cy-N"] = "Mae'r defnyddiwr hwn yn medru'r '''[[$2|Gymraeg]]''' fel '''[[$1|mamiaith]]'''.",
}
9go952h2dxeko2n1e6jzqda2023qaol
đồng phân
0
419940
2570019
2026-10-12T16:44:27Z
TienMinh-mun6xnChing
57893
/* */
2570019
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|adj}}===
{{vi-adj}}
# {{lb|vi|hóa học}} [[hợp chất|Hợp chất]] [[hữu cơ]] có [[cấu tạo]] [[khác nhau]] nhưng có cùng [[công thức]] [[phân tử]].
oa14gruij6ypluwbi194fji59zp9x4d
2570020
2570019
2026-10-12T16:44:38Z
TienMinh-mun6xnChing
57893
2570020
wikitext
text/x-wiki
=={{langname|vi}}==
{{wikipedia}}
==={{section|pron}}===
{{vi-pron}}
==={{section|adj}}===
{{vi-adj}}
# {{lb|vi|hóa học}} [[hợp chất|Hợp chất]] [[hữu cơ]] có [[cấu tạo]] [[khác nhau]] nhưng có cùng [[công thức]] [[phân tử]].
o2t4n6b1pun1t5q5zzlm2t97s6af7ho
vô nghiệm
0
419941
2570024
2026-10-12T16:48:43Z
TienMinh-mun6xnChing
57893
/* */
2570024
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|adj}}===
{{vi-adj}}
# Không có [[nghiệm]].
#: {{ux|vi|Phương trình '''vô nghiệm'''.}}
===={{section|ref}}====
{{R:Tratu}}
8egtn4v1040utq89o3itgi4lf55p1v4
2570025
2570024
2026-10-12T16:49:01Z
TienMinh-mun6xnChing
57893
2570025
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|adj}}===
{{vi-adj}}
# Không có [[nghiệm]].
#: {{ux|vi|Phương trình '''vô nghiệm'''.}}
==={{section|ref}}===
{{R:Tratu}}
0fvkns6oa48d7zmfoqqdeaivabixwde
chướng khí
0
419942
2570026
2026-10-12T16:56:47Z
TienMinh-mun6xnChing
57893
/* */
2570026
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# {{lb|vi|Từ cũ}} Khí ẩm, coi là độc, dễ sinh bệnh, bốc lên ở vùng rừng núi [[nhiệt đới]] và cận nhiệt đới.
#: {{ux|vi|Đề phòng '''chướng khí'''.}}
#: {{syn|vi|lam chướng|lam khí|lam sơn chướng khí|sơn lam chướng khí}}
rnf3tnxrfppb3p40puz72ntae9h7x0x
2570027
2570026
2026-10-12T16:57:16Z
TienMinh-mun6xnChing
57893
2570027
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# {{lb|vi|Từ cũ}} Khí ẩm, coi là độc, dễ sinh bệnh, bốc lên ở vùng rừng núi [[nhiệt đới]] và cận nhiệt đới.
#: {{ux|vi|Đề phòng '''chướng khí'''.}}
#: {{syn|vi|lam chướng|lam khí|lam sơn chướng khí|sơn lam chướng khí}}
==={{section|ref}}===
{{R:Tratu}}
9wptd01b1foju8mfolpt25iods4u7hr
cổ chướng
0
419943
2570028
2026-10-12T16:59:35Z
TienMinh-mun6xnChing
57893
/* */
2570028
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# Chứng bụng trướng to, thường do [[xơ gan]].
#: {{ux|vi|Xơ gan '''cổ trướng'''.}}
==={{section|ref}}===
{{R:Tratu}}
k4hadpebam8pigich1u6p37rrmt0354
xơ gan
0
419944
2570029
2026-10-12T17:01:59Z
TienMinh-mun6xnChing
57893
/* */
2570029
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# [[bệnh|Bệnh]] làm cho các [[tế bào]] [[gan]] bị [[phá hủy]] dần và mô [[liên kết]] (có nhiều xơ) tăng nhiều.
==={{section|ref}}===
{{R:Tratu}}
olpxmlyezdp4gsxnttni6x8z39ou652
Mô đun:Babel/data/check
828
419945
2570032
2026-10-13T02:53:29Z
Hiyuune
50834
Trang mới: “local export = {} --[=[ Prints out a wikitable with warnings for the following: - All-uppercased language codes (as GEZ and TI were, before the switch to module) - Whitespace in language codes (matches stuff like "User ojp" where there should be "ojp") - Invalid language codes (also checks whether defined in custom_codes) - Messages missing proper markup: bolding, category links ]=]-- local m_data = mw.loadData("Module:Babel/data") local Array = require("Module:array")…”
2570032
Scribunto
text/plain
local export = {}
--[=[
Prints out a wikitable with warnings for the following:
- All-uppercased language codes (as GEZ and TI were, before the switch to module)
- Whitespace in language codes (matches stuff like "User ojp" where there should be "ojp")
- Invalid language codes (also checks whether defined in custom_codes)
- Messages missing proper markup: bolding, category links
]=]--
local m_data = mw.loadData("Module:Babel/data")
local Array = require("Module:array")
local get_by_code = require("Module:languages").getByCode
local sc_get_by_code = require("Module:scripts").getByCode
local function get_subpage_warnings(warnings, letter)
local messages = mw.loadData("Module:Babel/data/" .. letter)
for lang, message in pairs(messages) do
local code = lang
local proficiency = lang:match("[012345N]$")
lang = lang:gsub("-[012345N]$", "")
local truncated = lang:gsub("-%u%l%l%l", "")
local checks = {
[mw.language.isKnownLanguageTag(lang:lower())
and (lang .. ": wikimedia language code not in WT:LOL")
or (lang .. ": invalid language code")]
= not get_by_code(truncated, false, true) and not m_data.custom_codes[truncated],
[lang .. ": uppercase language code"] = truncated:find("^[A-Z%-]+$"),
[lang .. ": space in language code"] = truncated:find("%s"),
[code .. ": missing $1 cat link"] = proficiency ~= "0" and not message:find("%[%[$1|[^]]+%]%]"),
[code .. ": has extraneous $1 cat link"] = proficiency == "0" and message:find("%[%[$1|[^]]+%]%]"),
[code .. ": missing $2 cat link"] = not message:find("%[%[$2|[^]]+%]%]"),
[code .. ": missing bolding"] = not message:find("'''") or message:find("%w%[%[$[12]|[^]]+%]%]%w"),
[code .. ": has adjacent bold tags"] = message:find("''' ?'''"),
[code .. ": missing lang name"] = message:find("$3"),
[code .. ": has raw category link"] = message:lower():find(":cat"),
}
for warning, cond in pairs(checks) do
if cond then
warnings:insert {
message = warning,
subpage = "Module:Babel/data/" .. letter,
}
end
end
end
end
local function get_warnings()
local warnings = Array()
for code, glyph in pairs(m_data.script_glyphs) do
if not sc_get_by_code(code) and not m_data.custom_scripts[code] then
warnings:insert {
message = code .. ": invalid script code",
subpage = "Module:Babel/data",
}
end
if glyph == "A" then
warnings:insert {
message = code .. ": redundant glyph A",
subpage = "Module:Babel/data",
}
end
end
for code, _ in pairs(m_data.custom_codes) do
if get_by_code(code, false, true) then
warnings:insert {
message = code .. ": redundant custom code",
subpage = "Module:Babel/data"
}
end
local has_message = false
local subpage = mw.loadData("Module:Babel/data/" .. code:sub(1, 1))
for _, i in ipairs {"0", "1", "2", "3", "4", "5", "N"} do
if subpage[code .. "-" .. i] then
has_message = true
break
end
end
if not has_message then
warnings:insert {
message = code .. ": custom code does not have any corresponding messages and should be removed",
subpage = "Module:Babel/data"
}
end
end
for _, content in pairs(m_data.proglangs) do
if not content.link then
warnings:insert {
message = content.code .. ": missing link",
subpage = "Module:Babel/data"
}
end
end
for i = 0, 25 do
local letter = string.char(string.byte "a" + i)
get_subpage_warnings(warnings, letter)
end
warnings:removeDuplicates()
return warnings
end
function export.show()
local warnings = get_warnings()
if #warnings == 0 then
return "; No warnings returned"
end
local wikitable = [[
{| class="wikitable"
! subpage
! warnings
|-
]]
for _, w in ipairs(warnings) do
wikitable = wikitable .. ([=[
| [[%s]]
| %s
|-
]=]):format(w.subpage, w.message)
end
wikitable = wikitable .. "|}"
local ret = ([[
; Number of warnings
: %d
%s
]]):format(#warnings, wikitable)
return ret
end
return export
ejhu360digeu7d5jve8mvn2i6h1tbpe
Mô đun:Babel/data/l
828
419946
2570033
2026-10-13T02:54:26Z
Hiyuune
50834
Trang mới: “return { -------------------------- la -------------------------- ["la-0"] = "{Hic usor/Haec ustrix} '''aut parum aut nihil [[$2|Latine]]''' scit.", ["la-1"] = "{Hic usor/Haec ustrix} '''[[$1|simplici]] [[$2|lingua Latina]]''' conferre potest.", ["la-2"] = "{Hic usor/Haec ustrix} '''[[$2|lingua Latina]] [[$1|mediae difficultatis]]''' conferre potest.", ["la-3"] = "{Hic usor/Haec ustrix} '''[[$1|probe]]''' ac '''[[$2|Latine]]''' conferre potest.", ["la-4"] = "{Hic us…”
2570033
Scribunto
text/plain
return {
-------------------------- la --------------------------
["la-0"] = "{Hic usor/Haec ustrix} '''aut parum aut nihil [[$2|Latine]]''' scit.",
["la-1"] = "{Hic usor/Haec ustrix} '''[[$1|simplici]] [[$2|lingua Latina]]''' conferre potest.",
["la-2"] = "{Hic usor/Haec ustrix} '''[[$2|lingua Latina]] [[$1|mediae difficultatis]]''' conferre potest.",
["la-3"] = "{Hic usor/Haec ustrix} '''[[$1|probe]]''' ac '''[[$2|Latine]]''' conferre potest.",
["la-4"] = "{Hic usor/Haec ustrix} '''[[$2|Latine]]''' similiter ac sermone patrio scit et '''[[$1|Latinissime]]''' conferre potest.",
["la-5"] = "{Hic usor/Haec ustrix} '''[[$1|artifex]]''' est '''[[$2|Latine scribendi]]'''.",
["la-N"] = "{Hic usor/Haec ustrix/Hic usor/Haec ustrix} '''[[$1|vere singularis]]''' est '''[[$2|orator Latinus]]''' … siquidem ei credimus.",
-------------------------- lad --------------------------
["lad-0"] = "Este usador '''no entiende''' el '''[[$2|Judeo-Espanyol]]''' <small>(o lo entiende con muncha difikultad)</small>.",
["lad-1"] = "Este usador tiene un nivel '''[[$1|elementario]]''' de '''[[$2|Judeo-Espanyol]]'''.",
["lad-2"] = "Este usador tiene un nivel '''[[$1|medio]]''' de '''[[$2|Judeo-Espanyol]]'''.",
["lad-3"] = "Este usador tiene un nivel '''[[$1|adelantado]]''' de '''[[$2|Judeo-Espanyol]]'''.",
["lad-4"] = "Este usador tiene un nivel '''[[$1|kaji-nativo]]''' de '''[[$2|Judeo-Espanyol]]'''.",
["lad-5"] = "Este usador tiene un nivel '''[[$1|profesyonal]]''' de '''[[$2|Judeo-Espanyol]]'''.",
["lad-N"] = "Este usador es un hablante '''[[$1|nativo]]''' de '''[[$2|Judeo-Espanyol]]'''.",
-------------------------- lb --------------------------
["lb-0"] = "{Dëse Benotzer/Dës Benotzerin} versteet '''kee [[$2|Lëtzebuergesch]]''' (oder versteet et just mat grousse Schwieregkeeten).",
["lb-1"] = "{Dëse Benotzer/Dës Benotzerin} huet '''[[$1|Grondkenntnisser]]''' am '''[[$2|Lëtzebuergeschen]]'''.",
["lb-2"] = "{Dëse Benotzer/Dës Benotzerin} huet '''[[$1|erweidert]]''' Kenntnisser am '''[[$2|Lëtzebuergeschen]]'''.",
["lb-3"] = "{Dëse Benotzer/Dës Benotzerin} huet '''[[$1|ganz gutt]]''' Kentnisser am '''[[$2|Lëtzebuergeschen]]'''.",
["lb-4"] = "{Dëse Benotzer/Dës Benotzerin} beherrscht '''[[$2|Lëtzebuergesch]] [[$1|bal wéi {seng/hir} Mammesprooch]]'''.",
["lb-5"] = "{Dëse Benotzer/Dës Benotzerin} huet '''[[$1|professionell]]''' Kenntnisser am '''[[$2|Lëtzebuergeschen]]'''.",
["lb-N"] = "{Dësem Benotzer seng/Dëser Benotzerin hir} '''[[$1|Mammesprooch]]''' ass '''[[$2|Lëtzebuergesch]]'''.",
-------------------------- lez --------------------------
["lez-0"] = "И уртахдиз '''[[$2|Лезги чIал]]''' гьич '''чизвач''' (ва я четиндиказ гъавурда гьатзава)",
["lez-1"] = "И уртахдиз '''[[$2|Лезги чIалан]] [[$1|сифтегьан]]''' чирвилер ава.",
["lez-2"] = "И уртахдиз '''[[$2|Лезги чӀалан]] [[$1|юкьван гьалдин]]''' чирвилер ава.",
["lez-3"] = "И уртахдиз '''[[$2|Лезги чIалан]] [[$1|хъсан]]''' чирвилер ава.",
["lez-4"] = "И уртахдиз '''[[$2|Лезги чӀал]] [[$1|хайи чӀал хьиз]]''' чизва.",
["lez-5"] = "И уртахдиз '''[[$2|Лезги чӀалан]] [[$1|пешекарвилин]]''' чирвилер ава.",
["lez-N"] = "'''[[$2|Лезги чӀал]]''' и уртахдин '''[[$1|хайи чӀал]]''' я.",
-------------------------- lfn --------------------------
["lfn-0"] = "Esta usor ave '''no capas''' de '''[[$2|Lingua Franca Nova]]'''.",
["lfn-1"] = "Esta usor es '''[[$1|poca capas]]''' de '''[[$2|Lingua Franca Nova]]'''.",
["lfn-2"] = "Esta usor es '''[[$1|medial capas]]''' de '''[[$2|Lingua Franca Nova]]'''.",
["lfn-3"] = "Esta usor es '''[[$1|bon capas]]''' de '''[[$2|Lingua Franca Nova]]'''.",
["lfn-4"] = "Esta usor es '''[[$1|la plu perfeta capas]]''' de '''[[$2|Lingua Franca Nova]]'''.",
["lfn-5"] = "Esta usor es '''[[$1|profesal capas]]''' de '''[[$2|Lingua Franca Nova]]'''.",
["lfn-N"] = "Esta usor ave '''[[$2|Lingua Franca Nova]]''' se '''[[$1|lingua propre]]'''.",
-------------------------- lg --------------------------
["lg-0"] = "Memba ono '''tamanyi [[$2|Luganda]]''' (oba alutegeerako kitono nyo).",
["lg-1"] = "Memba ono '''[[$2|Oluganda]]''' alumanyimu '''[[$1|ebitandikirwako]]'''.",
["lg-2"] = "Memba ono '''[[$2|Oluganda]]''' alumanyimu '''[[$1|olusaamusamu]]'''.",
["lg-3"] = "Memba ono '''[[$2|Oluganda]]''' alumanyi ku '''[[$1|ddaala erya waggulu]]'''.",
["lg-4"] = "Memba ono '''[[$2|Oluganda]]''' alumanyi '''[[$1|kumpi kwenkana ng'omuzaaliranwa]]'''.",
["lg-5"] = "Memba ono '''[[$2|Oluganda]]''' alumanyi '''[[$1|ku ddaala ery'ekikugu]]'''.",
["lg-N"] = "Memba ono '''[[$2|Oluganda]] [[$1|lwe luzaaliranwa]]'''.",
-------------------------- li --------------------------
["li-0"] = "Deze gebroeker haet '''gein''' kènnis van 't '''[[$2|Limburgs]]''' (of haet groete meujte 't te begriepe).",
["li-1"] = "Deze gebroeker haet 'n '''[[$1|elementair kènnis]]''' van 't '''[[$2|Limburgs]]'''.",
["li-2"] = "Deze gebroeker haet '''[[$1|gemiddelde]]''' kènnis van 't '''[[$2|Limburgs]]'''.",
["li-3"] = "Deze gebroeker haet 'n '''[[$1|gevörderde]]''' kènnis van 't '''[[$2|Limburgs]]'''.",
["li-4"] = "Deze gebroeker behiersj 't '''[[$2|Limburgs]]''' ofwen 't zien '''[[$1|moderspraok]]''' woor.",
["li-5"] = "Deze gebroeker haet 'n '''[[$1|perfesjeneel]]''' kènnis van 't '''[[$2|Limburgs]]'''.",
["li-N"] = "Deze gebroeker haet 't '''[[$2|Limburgs]]''' es zien '''[[$1|moderspraok]]'''.",
-------------------------- lij --------------------------
["lij-0"] = "St'uténte chi o '''no l'é in gràddo de comunicâ''' in '''[[$2|lìgure]]''' (ò o capìsce sôlo con tànta dificoltæ).",
["lij-1"] = "St'uténte chi o peu contriboî co-in livéllo '''[[$1|bâze]]''' in '''[[$2|lìgure]]'''.",
["lij-2"] = "St'uténte chi o peu contriboî co-in livéllo '''[[$1|de mêzo]]''' in '''[[$2|lìgure]]'''.",
["lij-3"] = "St'uténte chi o peu contriboî co-in livéllo '''[[$1|avansòu]]''' in '''[[$2|lìgure]]'''.",
["lij-4"] = "St'uténte chi o peu contriboî co-in livéllo '''[[$1|squæxi de léngoa moæ]]''' in '''[[$2|lìgure]]'''.",
["lij-5"] = "St'uténte chi o peu contriboî co-in livéllo '''[[$1|profescionâle]]''' in '''[[$2|lìgure]]'''.",
["lij-N"] = "St'uténte chi o peu contriboî co-in livéllo de '''[[$1|léngoa moæ]]''' in '''[[$2|lìgure]]'''.",
-------------------------- liv --------------------------
["liv-0"] = "Se kȭlbatiji '''äb mūošta [[$2|līvõ kīeldõ]]''' (agā mūoštab sūŗ vōjaks).",
["liv-1"] = "Se kȭlbatiji mūoštab '''[[$2|līvõ]]''' kīeldõ '''[[$1|īrgandõks]]''' astāmõs.",
["liv-2"] = "Se kȭlbatiji mūoštab '''[[$2|līvõ]]''' kīeldõ '''[[$1|sidāmist]]''' astāmõs.",
["liv-3"] = "Se kȭlbatiji mūoštab '''[[$2|līvõ kīeldõ]] [[$1|kuordist]]''' astāmõs.",
["liv-4"] = "Se kȭlbatiji mūoštab '''[[$2|līvõ kīeldõ]]''' pigātagā '''[[$1|nei ku sindikīeldõ]]'''.",
["liv-5"] = "Se kȭlbatiji mūoštab '''[[$2|līvõ]]''' kīeldõ '''[[$1|profesionālist]]''' astāmõs.",
["liv-N"] = "Sīen kȭlbatijizõn um '''[[$2|līvõ]]''' kēļ '''[[$1|sindikēļ]]'''.",
-------------------------- ljp --------------------------
["ljp-0"] = "Pumakay sinji '''mak ngedok''' pumahaman '''[[$2|Bahasa Lampung Api]]''' (atawa payah haga mahamini).",
["ljp-1"] = "Pumakay sinji ngedok pumahaman '''[[$1|dasar]] [[$2|Bahasa Lampung Api]]'''.",
["ljp-2"] = "Pumakay sinji ngedok pumahaman '''[[$1|nengah]] [[$2|Bahasa Lampung Api]]'''.",
["ljp-3"] = "Pumakay sinji ngedok pumahaman '''[[$1|tikkat lanjut]] [[$2|Bahasa Lampung Api]]'''.",
["ljp-4"] = "Pemakai hinji ngedok pumahaman '''[[$1|sai radu haga ngeredikko penotor asli]] [[$2|Basa Lampung Api]]'''.",
["ljp-5"] = "Pumakay sinji ngedok pumahaman '''[[$1|propésiyonal]] [[$2|Bahasa Lampung Api]]'''.",
["ljp-N"] = "Pumakay sinji yakdolah '''[[$1|penotogh asli]] [[$2|Bahasa Lampung Api]]'''.",
-------------------------- lki --------------------------
["lki-0"] = "ئێ کاربرە '''[[$2|لەکی]] نمەزانێ''' (یاگە سەخت مەزانێ).",
["lki-1"] = "ئێ کاربەرە'''[[$2|لەکی]]''' چنە '''[[$1|گەڵێ]]''' مەزانێ.",
["lki-2"] = "ئێ کاربرە '''[[$2|لەکی]]''' چنە '''[[$1|نیمچە(متوسط)]]''' مەزانێ.",
["lki-3"] = "ئێ کاربرە '''[[$2|لەکی]]''' چنە '''[[$1|ترەختی کِریا]]''' مەزانێ.",
["lki-4"] = "اێ کاربەرە '''[[$2|لەکی]]''' چنە '''[[$1|نەزیک زوون داڵکەئ]]''' مەزانێ.",
["lki-5"] = "ئێ کاربرە '''[[$2|لەکی]]''' چنە '''[[$1|فرە خوو]]''' مەزانێ.",
["lki-N"] = "ئێ کاربەرە '''[[$2|لەکی]]''' چنە '''[[$1|زوون داڵکەئ]]''' مەزانێ.",
-------------------------- lld --------------------------
["lld-1"] = "Chësc utënt possa contribuì cun n livel '''[[$1|bas]]''' de '''[[$2|ladin]]'''.",
["lld-2"] = "Chësc utënt possa contribuì cun n livel '''[[$1|mesan]]''' de '''[[$2|ladin]]'''.",
["lld-3"] = "Chësc utënt possa contribuì cun n livel '''[[$1|aut]]''' de '''[[$2|ladin]]'''.",
["lld-4"] = "Chësc utënt possa contribuì cun n livel '''[[$1|daujin ala rujeneda de l'oma]]''' de '''[[$2|ladin]]'''.",
["lld-N"] = "Chësc utënt possa contribuì cun n livel '''[[$1|de rujeneda de l'oma]]''' de '''[[$2|ladin]]'''.",
-------------------------- lmo --------------------------
["lmo-0"] = "Quell utent chì 'l conoss '''minga''' el '''[[$2|Lombard]]''' (o 'l le comprend con di gran dificoltà).",
["lmo-1"] = "Quell utent chì el gh'ha una conoscenza '''[[$1|fondamental]]''' del '''[[$2|Lombard]]'''.",
["lmo-2"] = "Quell utent chì el gh'ha una conoscenza '''[[$1|intermedia]]''' del '''[[$2|Lombard]]'''.",
["lmo-3"] = "Quell utent chì el gh'ha una conoscenza '''[[$1|vanzada]]''' del '''[[$2|Lombard]]'''.",
["lmo-4"] = "Quell utent chì el gh'ha una conoscenza '''[[$1|asquas madrelengua]]''' del '''[[$2|Lombard]]'''",
["lmo-5"] = "Quell utent chì el gh'ha una conoscenza '''[[$1|professional]]''' del '''[[$2|Lombard]]'''.",
["lmo-N"] = "Quell utent chì el gh'hà 'na conoscenza '''[[$1|madrelengua]]''' del '''[[$2|Lombard]]'''.",
-------------------------- ln --------------------------
["ln-0"] = "Moto óyo ayébí koloba '''[[$2|lingála]] tɛ̂''' (tǒ akokí koyóka na mpási).",
["ln-1"] = "Moto óyo ayébí koloba '''[[$2|lingála]] [[$1|mwâ mokɛ́]]'''.",
["ln-2"] = "Moto óyo ayébí koloba '''[[$2|lingála]] [[$1|mokɛ́]]'''.",
["ln-3"] = "Moto óyo ayébí koloba '''[[$2|lingála]] [[$1|malámu]]'''.",
["ln-4"] = "Moto óyo ayébí koloba '''[[$2|lingála]] [[$1|malámu mpenza]]'''.",
["ln-N"] = "Moto óyo ayébí koloba '''[[$2|lingála]] [[$1|bandá mbótama]]'''.",
-------------------------- lo --------------------------
["lo-0"] = "ຜູ້ໃຊ້ນີ້'''ບໍ່ມີ'''ຄວາມຮູ້'''[[$2|ພາສາລາວ]]''' (ຫລືອາດພິຈາລະນາວ່າເຂົ້າໃຈຍາກ).",
["lo-1"] = "ຜູ້ໃຊ້ນີ້ມີຄວາມຮູ້'''[[$2|ພາສາລາວ]][[$1|ລະດັບພື້ນຖານ]]'''.",
["lo-2"] = "ຜູ້ໃຊ້ນີ້ມີຄວາມຮູ້'''[[$2|ພາສາລາວ]][[$1|ລະດັບກາງ]]'''.",
["lo-3"] = "ຜູ້ໃຊ້ນີ້ມີຄວາມຮູ້'''[[$2|ພາສາລາວ]][[$1|ລະດັບສູງ]]'''.",
["lo-4"] = "ຜູ້ໃຊ້ນີ້ມີຄວາມຮູ້'''[[$2|ພາສາລາວ]][[$1|ເກືອບເທົ່າພາສາແມ່]]'''.",
["lo-5"] = "ຜູ້ໃຊ້ນີ້ມີຄວາມຮູ້'''[[$2|ພາສາລາວ]][[$1|ລະດັບມືອາຊີບ]]'''.",
["lo-N"] = "ຜູ້ໃຊ້ນີ້ມີຄວາມຮູ້'''[[$2|ພາສາລາວ]][[$1|ເທົ່າກັບພາສາແມ່]]'''.",
-------------------------- lrc --------------------------
["lrc-0"] = "اؽ کاریار '''هیچ''' دونسمنی د '''[[$2|لٛۏری مؽنجایی]]''' نارٱ (یا فٱرٱ کٱم لٛۏری ؽنجایی میٛ فٱمٱ)",
["lrc-1"] = "اؽ کاریار '''[[$1|کٱم ۉ کوتؽ]]''' دونسمنی د '''[[$2|لٛۏری مؽنجایی]]''' دارٱ.",
["lrc-2"] = "اؽ کاریار '''[[$1|چی ریتراز مؽونٱ]]''' دونسمنی د '''[[$2|لٛۏری مؽنجایی]]'''دارٱ.",
["lrc-3"] = "اؽ کاریار '''[[$1|فرٱ]] [[$2|لٛۏری مؽنجایی]]''' دونٱ.",
["lrc-4"] = "اؽ کاریار '''[[$1|چی یاٛ زڤون بلٱل]][[$2|لٛۏری مؽنجایی]]''' دونٱ.",
["lrc-5"] = "اؽ کاریار '''[[$1|فرٱ خۊ]] [[$2|لٛۏری مؽنجایی]]''' هالٛیش مۊئٱ.",
["lrc-N"] = "اؽ کاریار '''[[$1|زڤون داش]] [[$2|لٛۏری مؽنجایی]]''' ٱ.",
-------------------------- lt --------------------------
["lt-0"] = "{Šis naudotojas/Ši naudotoja} '''negali''' rašyti ir skaityti '''[[$2|lietuvių]]''' kalba (arba ją supranta labai sunkiai).",
["lt-1"] = "{Šis naudotojas/Ši naudotoja} gali rašyti ir skaityti '''[[$1|pradinio]]''' lygio '''[[$2|lietuvių]]''' kalba.",
["lt-2"] = "{Šis naudotojas/Ši naudotoja} gali rašyti ir skaityti '''[[$1|vidutinio]]''' lygio '''[[$2|lietuvių]]''' kalba.",
["lt-3"] = "{Šis naudotojas/Ši naudotoja} gali rašyti ir skaityti '''[[$1|aukšto]]''' lygio '''[[$2|lietuvių]]''' kalba.",
["lt-4"] = "{Šis naudotojas/Ši naudotoja} gali rašyti ir skaityti '''[[$2|lietuvių]]''' kalba '''[[$1|beveik kaip gimtąja]]'''.",
["lt-5"] = "{Šis naudotojas/Ši naudotoja} gali rašyti ir skaityti '''[[$1|profesionalia]] [[$2|lietuvių]]''' kalba.",
["lt-N"] = "{Šis naudotojas/Ši naudotoja} gali rašyti ir skaityti '''[[$1|gimtąja]] [[$2|lietuvių]]''' kalba.",
-------------------------- ltc --------------------------
["ltc-0"] = "此用者'''不'''解'''[[$2|中古漢語]]'''。",
["ltc-1"] = "此用者能以'''[[$1|基本]]'''之'''[[$2|中古漢語]]'''言。",
["ltc-2"] = "此用者能以'''[[$1|中級]]'''之'''[[$2|中古漢語]]'''言。",
["ltc-3"] = "此用者能以'''[[$1|熟練]]'''之'''[[$2|中古漢語]]'''言。",
["ltc-4"] = "此用者能以'''[[$1|流暢]]'''之'''[[$2|中古漢語]]'''言。",
["ltc-N"] = "此用者之'''[[$1|母語]]'''是'''[[$2|中古漢語]]'''。",
-------------------------- ltg --------------------------
["ltg-0"] = "Itys lītuotuojs '''[[$2|latgaļu volūdys]] namuok''' (ci saprūt ar lelim gryutumim).",
["ltg-1"] = "Itys lītuotuojs '''[[$2|latgaļu volūdu]]''' muok '''[[$1|suoku leidzīnī]]'''.",
["ltg-2"] = "Itys lītuotuojs '''[[$2|latgaļu volūdu]]''' muok '''[[$1|vydyskā leidzīnī]]'''.",
["ltg-3"] = "Itys lītuotuojs '''[[$2|latgaļu volūdu]]''' muok '''[[$1|gon lobā leidzīnī]]'''.",
["ltg-4"] = "Itys lītuotuojs '''[[$2|latgaļu volūdu]]''' muok '''[[$1|kūna kai dzymtū volūdu]]'''.",
["ltg-5"] = "Itys lītuotuojs '''[[$2|latgaļu volūdu]]''' muok '''[[$1|profesionalā leidzīnī]]'''.",
["ltg-N"] = "'''[[$2|Latgaļu volūda]]''' irā ituo lītuotuoja '''[[$1|dzymtuo volūda]]'''.",
-------------------------- lus --------------------------
["lus-0"] = "He hmangtu hian '''[[$2|mizo ṭawng]] pakhatmah''' a thiam lo (a ni ber e).",
["lus-1"] = "He hmangtu hian '''[[$2|mizo ṭawng]] [[$1|tlém]]''' a thiam.",
["lus-2"] = "He hmangtu hian '''[[$2|mizo ṭawng]]''' a thiam ve '''[[$1|pangngai]]'''.",
["lus-3"] = "He hmangtu hian '''[[$2|mizo ṭawng]]''' a '''[[$1|thiam näl fe]]'''.",
["lus-4"] = "He hmangtu hian '''[[$2|mizo ṭawng]]''' hi '''[[$1|pianpui ṭawng ang deuh thawin]]''' a thiam.",
["lus-5"] = "He hmangtu hian '''[[$2|mizo ṭawng]]''' hi '''[[$1|eizawnna tlâk]]''' a thiam.",
["lus-N"] = "He hmangtu hian '''[[$2|mizo ṭawng]]''' a '''[[$1|pianpui]]''' a ni.",
-------------------------- lut --------------------------
["lut-1"] = "ʔəsčəwat tiʔəʔ ʔaciɬtalbixʷ dxʷʔal kʷi '''[[$1|miʔman̓]] [[$2|gʷəsdxʷləšucidəbs]]'''",
["lut-2"] = "ʔəsčəwat tiʔəʔ ʔaciɬtalbixʷ dxʷʔal kʷi '''[[$1|ƛ̕ub]] [[$2|gʷəsdxʷləšucidəbs]]'''",
-------------------------- luz --------------------------
["luz-0"] = "ئی کارڤأر '''[[$2|دوٙمینی]]''' نە '''نیفأمأ''' (یا ڤە جأخت حالیش ئیڤا).",
["luz-1"] = "ئی کارڤأر '''[[$2|دوٙمینی]]''' نە د حأد '''[[$1|ئیبتیدایی]]''' ئیفأمە.",
["luz-2"] = "ئی کارڤأر '''[[$2|دوٙمینی]]''' نە د حأد '''[[$1|مینجاڤی]]''' ئیفأمە.",
["luz-3"] = "ئی کارڤأر '''[[$2|دوٙمینی]]''' نە د حأد '''[[$1|فأرھ]]''' ئیفأمە.",
["luz-4"] = "ئی کارڤأر '''[[$2|دوٙمینی]]''' نە د حأد '''[[$1|نأزیک ڤە زوٙوٙن دا]]''' ئیفأمە.",
["luz-5"] = "ئی کارڤأر '''[[$2|دوٙمینی]]''' نە '''[[$1|فأرھ]]''' ئیفأمە.",
["luz-N"] = "ئی کارڤأر '''[[$1|زوٙوٙن داس]] [[$2|دوٙمینی]]''' ھی.",
-------------------------- lv --------------------------
["lv-0"] = "Šis lietotājs '''[[$2|latviešu valodu]] neprot''' (vai saprot ar ievērojamām grūtībām).",
["lv-1"] = "Šis lietotājs '''[[$2|latviešu valodu]]''' prot '''[[$1|pamatlīmenī]]'''.",
["lv-2"] = "Šis lietotājs '''[[$2|latviešu valodu]]''' prot '''[[$1|vidējā]]''' līmenī.",
["lv-3"] = "Šis lietotājs '''[[$2|latviešu valodu]]''' prot '''[[$1|padziļinātā]]''' līmenī.",
["lv-4"] = "Šis lietotājs '''[[$2|latviešu valodu]]''' pārzina '''[[$1|gandrīz kā dzimto valodu]]'''.",
["lv-5"] = "Šis lietotājs '''[[$2|latviešu valodu]]''' pārzina '''[[$1|profesionālā]]''' līmenī.",
["lv-N"] = "Šim lietotājam '''[[$2|latviešu valoda]]''' ir '''[[$1|dzimtā valoda]]'''.",
-------------------------- lzh --------------------------
["lzh-0"] = "此君'''不通[[$2|文言]]'''也。",
["lzh-1"] = "此君'''[[$1|粗通]][[$2|文言]]'''也。",
["lzh-2"] = "此君'''[[$1|有志]][[$2|文言]]'''也。",
["lzh-3"] = "此君'''[[$1|工於]][[$2|文言]]'''也。",
["lzh-4"] = "此君'''[[$1|出口成文]]''',精於'''[[$2|文言]]'''之道也。",
["lzh-5"] = "此君'''[[$1|下筆如神]]''','''[[$2|文言]]'''之道,瞭然於心也。",
["lzh-N"] = "此君三歲能屬文,'''[[$2|文言]]'''無異'''[[$1|母語]]'''也。",
-------------------------- lzz --------------------------
["lzz-0"] = "Am maxmares '''çkar [[$2|Lazuri]]''' va uçkin (varna dido zorite oxo3'onaps).",
["lzz-1"] = "Am maxmares '''[[$1|am3ika]] [[$2|Lazuri]]''' uçkin.",
["lzz-2"] = "Am maxmares '''[[$1|normalurot]] [[$2|Lazuri]]''' uçkin.",
["lzz-3"] = "Am maxmares '''[[$1|k'ai]] [[$2|Lazuri]]''' uçkin.",
["lzz-4"] = "Am maxmarek '''[[$1|nananena-muşi steri]] [[$2|Lazuri]]''' ğarğalaps.",
["lzz-5"] = "Am maxmares '''[[$1|p'rofesyonelurot]] [[$2|Lazuri]]''' uçkin.",
["lzz-N"] = "Am maxmareşi '''[[$1|nananena]]'''-muşi '''[[$2|Lazuri]]''' ren.",
}
92ld31biogc5ogkac064hvo0cnqvi6h
Mô đun:Babel/data/g
828
419947
2570034
2026-10-13T02:55:35Z
Hiyuune
50834
Trang mới: “return { -------------------------- ga -------------------------- ["ga-0"] = "'''Níl aon [[$2|Ghaeilge]]''' ag an úsáideoir seo (nó is deacair leis an úsáideoir seo í a thuiscint).", ["ga-1"] = "Tá '''[[$1|buneolas]]''' ag an úsáideoir seo maidir le '''[[$2|Gaeilge]]'''.", ["ga-2"] = "Tá eolas '''[[$1|idirmheánach]]''' ag an úsáideoir seo maidir le '''[[$2|Gaeilge]]'''.", ["ga-3"] = "Tá '''[[$2|Gaeilge]] [[$1|mhaith]]''' ag an úsáideoir seo.", ["ga-…”
2570034
Scribunto
text/plain
return {
-------------------------- ga --------------------------
["ga-0"] = "'''Níl aon [[$2|Ghaeilge]]''' ag an úsáideoir seo (nó is deacair leis an úsáideoir seo í a thuiscint).",
["ga-1"] = "Tá '''[[$1|buneolas]]''' ag an úsáideoir seo maidir le '''[[$2|Gaeilge]]'''.",
["ga-2"] = "Tá eolas '''[[$1|idirmheánach]]''' ag an úsáideoir seo maidir le '''[[$2|Gaeilge]]'''.",
["ga-3"] = "Tá '''[[$2|Gaeilge]] [[$1|mhaith]]''' ag an úsáideoir seo.",
["ga-4"] = "Tá eolas '''[[$1|beagnach dúchasach]]''' ag an úsáideoir seo maidir le '''[[$2|Gaeilge]]'''.",
["ga-5"] = "Tá eolas '''[[$1|gairmiúil]]''' ag an úsáideoir seo maidir le '''[[$2|Gaeilge]]'''.",
["ga-N"] = "Tá '''[[$2|Gaeilge]]''' ag an úsáideoir seo '''[[$1|ó dhúchas]]'''.",
-------------------------- gag --------------------------
["gag-1"] = "Bu kullanıcı var nicä '''[[$1|saadä düzeydä]]''' lafetsin '''[[$2|Gagauz]]'''.",
["gag-2"] = "Bu kullanıcı var nicä '''[[$1|orta düzeydä]]''' lafetsin '''[[$2|Gagauz]]'''.",
["gag-3"] = "Bu kullanıcı var nicä '''[[$1|islää düzeydä]]''' lafetsin '''[[$2|Gagauz]]'''.",
["gag-4"] = "Bu kullanıcı var nicä '''[[$1|sansın ana dili]]''' lafetsin '''[[$2|Gagauz]]'''.",
["gag-N"] = "Bu kullanıcının '''[[$1|ana dili]] [[$2|Gagauz]]'''.",
-------------------------- gan-Hant --------------------------
["gan-Hant-0"] = "箇隻用戶'''冇滴子[[$2|贛語]]'''嗰水平(或者好艱難去聽轉佢)。",
["gan-Hant-1"] = "箇隻用戶有'''[[$1|滴把子]]'''嗰'''[[$2|贛語]]'''水平。",
["gan-Hant-2"] = "箇隻用戶有'''[[$1|一般子]]'''嗰'''[[$2|贛語]]'''水平。",
["gan-Hant-3"] = "箇隻用戶有'''[[$1|蠻靚]]'''嗰'''[[$2|贛語]]'''水平。",
["gan-Hant-4"] = "箇隻用戶有'''[[$1|好喫價]]'''嗰'''[[$2|贛語]]'''水平。",
["gan-Hant-5"] = "箇隻用戶有'''[[$1|專業]]'''嗰'''[[$2|贛語]]'''能力。",
["gan-Hant-N"] = "箇隻用戶曉得'''[[$2|贛語]]'''嗰'''[[$1|母語]]'''。",
-------------------------- gbz --------------------------
["gbz-0"] = "In karber '''[[$2|Dari-e Mazdeyasnā]]''' rā '''na''' pama yā došvār pama.",
["gbz-1"] = "In karber '''[[$2|Dari-e Mazdeyasnā]]''' rā '''[[$1|kem]]''' pama.",
["gbz-2"] = "In karber '''[[$2|Dari-e Mazdeyasnā]]''' rā '''[[$1|miāngin]]''' pama.",
["gbz-3"] = "In karber '''[[$2|Dari-e Mazdeyasnā]]''' rā '''[[$1|pišrapta]]''' pama.",
["gbz-4"] = "In karber '''[[$2|Dari-e Mazdeyasnā]]''' rā '''[[$1|dar nezdiki zebun māderi]]''' pama.",
["gbz-5"] = "In karber '''[[$2|Dari-e Mazdeyasnā]]''' rā '''[[$1|ziad]]''' pama.",
["gbz-N"] = "In karber '''[[$2|Dari-e Mazdeyasnā]]''' rā '''[[$1|māderzādi]]''' pama.",
-------------------------- gcr --------------------------
["gcr-0"] = "Sa itilizatò gen '''pyès''' konnésans an '''[[$2|Kriyòl Gwiyannen]]''' (oben ka konprann li ké rounlo difikilté).",
["gcr-1"] = "Sa itilizatò gangnen konnésans ki '''[[$1|bazik]]''' an '''[[$2|Kriyòl Gwiyannen]]'''.",
["gcr-2"] = "Sa itilizatò gangnen konnésans ki '''[[$1|entèrmédjèr]]''' an '''[[$2|Kriyòl Gwiyannen]]'''.",
["gcr-3"] = "Sa itilizatò gangnen konnésans ki '''[[$1|avansé]]''' an '''[[$2|Kriyòl Gwiyannen]]'''.",
["gcr-4"] = "Sa itilizatò gangnen konnésans ki pròch di '''[[$1|lanng matèrnèl-a]]''' an '''[[$2|Kriyòl Gwiyannen]]'''.",
["gcr-5"] = "Sa itilizatò gangnen konnésans kou '''[[$1|dòkò]]''' an '''[[$2|Kriyòl Gwiyannen]]'''.",
["gcr-N"] = "Sa itilizatò gen pou '''[[$1|lanng matèrnèl]] [[$2|Kriyòl Gwiyannen]]'''-an.",
-------------------------- gd --------------------------
["gd-0"] = "'''Cha tuig''' an cleachdaiche seo '''[[$2|Gàidhlig]]''' idir (no chan eil {e/i} 'ga tuigsinn ach air èiginn).",
["gd-1"] = "Tha comas labhairt '''[[$1|bunaiteach]]''' sa '''[[$2|Ghàidhlig]]''' aig a' chleachdaiche seo.",
["gd-2"] = "Tha comas labhairt '''[[$1|meadhanach]]''' aig a' chleachdaiche seo sa '''[[$2|Ghàidhlig]]'''.",
["gd-3"] = "Tha comas labhairt '''[[$1|adhartach]]''' aig a' chleachdaiche seo sa '''[[$2|Ghàidhlig]]'''.",
["gd-4"] = "Tha comas labhairt '''[[$1|cha mhòr mar cuideigin air ag bheil i on ghlùn]]''' aig a' chleachdaiche seo sa '''[[$2|Ghàidhlig]]'''.",
["gd-5"] = "Tha comas labhairt '''[[$1|proifeiseanta]]''' aig a' chleachdaiche seo sa '''[[$2|Ghàidhlig]]'''.",
["gd-N"] = "Tha '''[[$2|Gàidhlig]] [[$1|on ghlùn]]''' aig a' chleachdaiche seo.",
-------------------------- gem-pro --------------------------
["gem-pro-1"] = "{Hiz neutandz/Hijō neutandī} '''[[$1|fawą]]''' kunþiją '''[[$2|Þiudiskōniz tungōniz]]''' habaiþi.",
["gem-pro-2"] = "{Hiz neutandz/Hijō neutandī} '''[[$1|sumą]]''' kunþiją '''[[$2|Þiudiskōniz tungōniz]]''' habaiþi.",
["gem-pro-3"] = "{Hiz neutandz/Hijō neutandī} '''[[$1|mikilą]]''' kunþiją '''[[$2|Þiudiskōniz tungōniz]]''' habaiþi.",
-------------------------- gil --------------------------
["gil-1"] = "Te aomata aio e '''[[$1|rabakau teutana]]''' n taetae ni '''[[$2|Kiribati]]'''.",
["gil-2"] = "Te aomata aio e kona ni ibuobuoki n ae e '''[[$1|tau rabakauna]]''' n taetae ni '''[[$2|Kiribati]]'''.",
["gil-3"] = "Te aomata aio e kona ni ibuobuoki n ae e '''[[$1|rangi ni bwaati]]''' n taetae ni '''[[$2|Kiribati]]'''.",
["gil-4"] = "Te aomata aio e kona ni ibuobuoki n ae '''[[$1|ai bon te I-Kiribati ngaia]]''' n taetae ni '''[[$2|Kiribati]]'''.",
["gil-N"] = "Te aomata aio e kona ni ibuobuoki n ae '''[[$1|bon oin ana taetae]]''' te taetae ni '''[[$2|Kiribati]]'''.",
-------------------------- gl --------------------------
["gl-0"] = "{Este usuario/Esta usuaria} '''non''' ten ningún coñecemento de '''[[$2|galego]]''' (ou ten dificultades para entendelo).",
["gl-1"] = "{Este usuario/Esta usuaria} ten un coñecemento '''[[$1|básico]]''' de '''[[$2|galego]]'''.",
["gl-2"] = "{Este usuario/Esta usuaria} ten un coñecemento '''[[$1|intermedio]]''' de '''[[$2|galego]]'''.",
["gl-3"] = "{Este usuario/Esta usuaria} ten un coñecemento '''[[$1|avanzado]]''' de '''[[$2|galego]]'''.",
["gl-4"] = "{Este usuario/Esta usuaria} ten un coñecemento '''[[$1|similar ao dun nativo]]''' de '''[[$2|galego]]'''.",
["gl-5"] = "{Este usuario/Esta usuaria} ten un coñecemento '''[[$1|profesional]]''' de '''[[$2|galego]]'''.",
["gl-N"] = "{Este usuario/Esta usuaria} é {un/unha} falante '''[[$1|{nativo/nativa}]]''' de '''[[$2|galego]]'''.",
-------------------------- glk --------------------------
["glk-1"] = "اي کارگير, '''[[$2|گيلکي]]''' گب زأنˇ مئن '''[[$1|تازه کاره]]'''.",
["glk-2"] = "اي کارگيرˇ '''[[$2|گيلکي]]''', '''[[$1|بد نيه]]'''.",
["glk-3"] = "این کارگير '''[[$2|گيلکئه]] [[$1|خۊجير]]''' فأمنه.",
["glk-4"] = "اي کارگير, '''[[$2|گيلکئه]]''' خؤ '''[[$1|مأري زوانˇ مۊسؤن]]''' گب زئنه.",
["glk-N"] = "ای کارگيرˇ '''[[$1|مأري زوان،]] [[$2|گيلکي]]''' ايسه.",
-------------------------- gmh --------------------------
["gmh-1"] = "Dirre niezære hāt '''[[$1|übele]]''' künde dër '''[[$2|diutschen sprāche]]'''.",
-------------------------- gml --------------------------
["gml-3"] = "Dese brukere hevet '''[[$1|dappere]]''' kunst dere '''[[$2|sasseschen sprake]]'''.",
-------------------------- gmw-tsx --------------------------
["gmw-tsx-N"] = "'''[[$1|Mir]]''' riëden '''[[$2|Siweberjesch Såksesch]]''', esi wä es der Schnuëwel gewuëssen äs.",
-------------------------- goh --------------------------
["goh-1"] = "{Dese niozāri/Desiu niozāra} habēt '''[[$1|luzzila]]''' kunst dera '''[[$2|Diutiskūn sprahha]]'''.",
["goh-2"] = "{Dese niozāri/Desiu niozāra} habēt '''[[$1|māzīga]]''' kunst dera '''[[$2|Diutiskūn sprahha]]'''.",
["goh-3"] = "{Dese niozāri/Desiu niozāra} habēt '''[[$1|filu guota]]''' kunst dera '''[[$2|Diutiskūn sprahha]]'''.",
["goh-4"] = "{Dese niozāri/Desiu niozāra} sprihhit dia '''[[$1|Diutiskūn sprahha]] [[$2|samasō inboro]]'''.",
-------------------------- gor --------------------------
["gor-0"] = "Tiyo botiya '''ja motota''' mobisala '''[[$2|Hulontalo]]''' (meyalo bo mongarati ngo'idi).",
["gor-1"] = "Tiyo botiya mowali mobisala '''[[$1|lenggota bohuliyo]] [[$2|Hulontalo]]'''.",
["gor-2"] = "Tiyo botiya mowali mobisala '''[[$1|lenggota mongarati]] [[$2|Hulontalo]]'''.",
["gor-3"] = "Tiyo botiya mowali mobisala '''[[$1|lenggota motota]] [[$2|Hulontalo]]'''.",
["gor-4"] = "Tiyo botiya motota mobisala '''[[$1|mohumayawa mongotiyombu]] [[$2|Hulontalo]]'''.",
["gor-5"] = "Tito botiya '''[[$1|motota da'a]]''' mobisala '''[[$2|Hulontalo]]'''.",
["gor-N"] = "Tito botiya '''[[$1|motota]]''' wawu ahali '''[[$2|Hulontalo]]'''.",
-------------------------- got --------------------------
["got-0"] = "{𐍃𐌰 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐌳𐍃/𐍃𐍉 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐌳𐌹} '''𐌽𐌹''' 𐌷𐌰𐌱𐌰𐌹𐌸 𐌺𐌿𐌽𐌸𐌹 '''[[$2|𐌲𐌿𐍄𐌹𐍃𐌺𐌰𐌹𐌶𐍉𐍃]]''' 𐍂𐌰𐌶𐌳𐍉𐍃 (𐌸𐌰𐌿 𐍆𐍂𐌰𐌸𐌾𐌹𐌸 𐌸𐌹𐌶𐌰𐌹 𐌼𐌹𐌸 𐍆𐌹𐌻𐌿 𐌺𐌰𐌿𐍂𐌴𐌹𐌽).",
["got-1"] = "𐍃𐌰 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐍃 𐍂𐍉𐌳𐌴𐌹𐌸 '''[[$1|𐌿𐌱𐌹𐌻𐌰𐌱𐌰]] [[$2|𐌲𐌿𐍄𐍂𐌰𐌶𐌳𐌰𐌹]]'''.",
["got-2"] = "{𐍃𐌰 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐌳𐍃/𐍃𐍉 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐌳𐌹} 𐌷𐌰𐌱𐌰𐌹𐌸 '''[[$1|𐌲𐍉𐌳𐌰𐌹𐌼 𐌼𐌰𐌷𐍄𐌹𐌼]]''' 𐌺𐌿𐌽𐌸𐌹 '''[[$2|𐌲𐌿𐍄𐌹𐍃𐌺𐌰𐌹𐌶𐍉𐍃 𐍂𐌰𐌶𐌳𐍉𐍃]]'''.",
["got-3"] = "𐍃𐌰 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐍃 𐍂𐍉𐌳𐌴𐌹𐌸 '''[[$1|𐍅𐌰𐌹𐌻𐌰]] [[$2|𐌲𐌿𐍄𐍂𐌰𐌶𐌳𐌰𐌹]]'''.",
["got-4"] = "{𐍃𐌰 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐌳𐍃/𐍃𐍉 𐌱𐍂𐌿𐌺𐌾𐌰𐌽𐌳𐌹} 𐌷𐌰𐌱𐌰𐌹𐌸 𐌺𐌿𐌽𐌸𐌹 '''[[$1|𐌽𐌴𐍈𐌰 𐍃𐍅𐌰 𐌼𐌰𐌽𐍃 𐌸𐌰𐌹𐌴𐌹 𐍂𐍉𐌳𐌾𐌰𐌽𐌳 𐌹𐌽𐌿𐌷 𐌰𐌹𐍂𐌶𐌴𐌹𐌽𐍃]] [[$2|𐌲𐌿𐍄𐌹𐍃𐌺𐌰𐌹 𐍂𐌰𐌶𐌳𐌰𐌹]]'''.",
["got-N"] = "𐍃𐌰 𐌽𐌹𐌿𐍄𐌰𐌽𐌳𐍃 𐍂𐍉𐌳𐌴𐌹𐌸 '''[[$2|𐌲𐌿𐍄𐍂𐌰𐌶𐌳𐌰𐌹]]''' 𐍃𐍅𐌴 '''[[$1|𐍅𐌹𐍃𐌿𐌲𐌿𐍄𐌰]]'''.",
-------------------------- grc --------------------------
["grc-0"] = "Ὅδε ὁ χρώμενος '''οὐδὲν''' περὶ τῆς '''[[$2|ἀρχαίας ἑλληνικῆς]]''' γιγνώσκει (ἢ αὐτὴν μόλις καταλαμβάνει).",
["grc-1"] = "Ὅδε ὁ χρώμενος '''[[$1|στοιχειώδη]]''' γνῶσιν τῆς '''[[$2|ἀρχαίας ἑλληνικῆς]]''' ἔχει.",
["grc-2"] = "Ὅδε ὁ χρώμενος '''[[$1|μέσην]]''' γνῶσιν τῆς '''[[$2|ἀρχαίας ἑλληνικῆς]]''' ἔχει.",
["grc-3"] = "Ὅδε ὁ χρώμενος '''[[$1|ἀνωτέραν]]''' γνῶσιν τῆς '''[[$2|ἀρχαίας ἑλληνικῆς]]''' ἔχει.",
["grc-4"] = "Ὅδε ὁ χρώμενος '''[[$1|σχεδὸν ὡς μητρικὴν γλῶσσαν]]''' τὴν '''[[$2|ἀρχαίαν ἑλληνικὴν]]''' ἔχει.",
["grc-5"] = "Ὅδε ὁ χρώμενος '''[[$1|ἐπαγγελματικὴν]]''' γνῶσιν τῆς '''[[$2|ἀρχαίας ἑλληνικῆς]]''' ἔχει.",
["grc-N"] = "Ὅδε ὁ χρώμενος '''[[$1|αὐτόπρεμνον]]''' αἴσθησιν τῆς '''[[$2|ἀρχαίας ἑλληνικῆς]]''' ἔχει.",
-------------------------- grt --------------------------
["grt-1"] = "Ia jakkalgipa '''[[$1|chona]]''' uiatanichi '''[[$2|A·chik]]''' agana.",
["grt-2"] = "Ia jakkalgipa '''[[$1|ma·jatchigipa]]''' uiatanichi '''[[$2|A·chikku]]''' agana.",
-------------------------- gsw --------------------------
["gsw-0"] = "Dää Benutzer cha '''kei [[$2|Alemannisch]]''' (oder verstoht s nume mit greschte Schwirigkeite).",
["gsw-1"] = "Dää Benutzer cha '''[[$1|e bitzeli]] [[$2|Alemannisch]]'''.",
["gsw-2"] = "Dää Benutzer cha '''[[$2|Alemannisch]]''' uf '''[[$1|fortgschrittenem]]''' Niveau.",
["gsw-3"] = "Dää Benutzer cha '''[[$1|seli guet]] [[$2|Alemannisch]]'''.",
["gsw-4"] = "Dää Benutzer cha '''[[$2|Alemannisch]] [[$1|wie ne Muetterspröchler]]'''.",
["gsw-5"] = "Dää Benutzer cha '''[[$2|Alemannisch]]''' uf '''[[$1|professionällem]]''' Niveau.",
["gsw-N"] = "Däm Benutzer syyni '''[[$1|Muettersproch]]''' isch '''[[$2|Alemannisch]]'''.",
-------------------------- gu --------------------------
["gu-0"] = "આ સભ્યને '''[[$2|ગુજરાતી]]'''ની '''જરાપણ''' જાણકારી નથી (અથવા તે મહામુસીબતે સમજી શકે છે).",
["gu-1"] = "આ સભ્યને '''[[$2|ગુજરાતી]]'''નું '''[[$1|પ્રાથમિક કક્ષાનું]]''' જ્ઞાન છે.",
["gu-2"] = "આ સભ્યને '''[[$2|ગુજરાતી]]'''નું '''[[$1|થોડુંક]]''' જ્ઞાન છે.",
["gu-3"] = "આ સભ્યને '''[[$2|ગુજરાતી]]'''ની '''[[$1|ખૂબજ સારી]]''' જાણકારી છે.",
["gu-4"] = "'''[[$2|ગુજરાતી]]'''ની આ સભ્યને '''[[$1|માતૃભાષા]]''' જેટલી જાણકારી છે.",
["gu-5"] = "આ સભ્યને '''[[$2|ગુજરાતી]]''' ઉપર '''[[$1|પ્રભુત્વ]]''' છે.",
["gu-N"] = "'''[[$2|ગુજરાતી]]''' આ સભ્યની '''[[$1|માતૃભાષા]]''' છે.",
-------------------------- guc --------------------------
["guc-0"] = "Chi ka'yataayakalü '''nnojoruleesü''' naa'püin tü '''[[$2|wayuunaikika]]'''.",
["guc-1"] = "Chi ka'yataayakalü '''[[$1|eechonsu]]''' naa'püin tü '''[[$2|wayuunaikika]]'''.",
["guc-2"] = "Chi ka'yataayakalü '''[[$1|eesü naa'püin]]''' tü '''[[$2|wayuunaikika]]'''.",
["guc-3"] = "Chi ka'yataayakalü '''[[$1|anasü]]''' nünüiki '''[[$2|wayuunaikiru'u]]'''.",
["guc-4"] = "Chi ka'yataayakalü '''[[$1|anashaatasü]]''' nünüiki '''[[$2|wayuunaikiru'u]]'''.",
["guc-5"] = "Chi ka'yataayakalü '''[[$1|anale’esü ma'in]]''' nünüiki '''[[$2|wayuunaikiru'u]]'''.",
["guc-N"] = "Tü '''[[$2|wayuunaikika]] [[$1|shia]]''' nünüiki chi ka'yataayakalü.",
-------------------------- gn --------------------------
["gug-0"] = "Ko puruhára '''ndoñe'ẽkuaái ete [[$2|avañe'ẽ]]'''.",
["gug-1"] = "Ko puruhára '''[[$1|sa’i]]''' oñe’ẽkuaa '''[[$2|guaraníme]]'''.",
["gug-2"] = "Ko yvypóra ikatu oipytyvõ '''[[$2|avañe'ẽ]]'''-ri yvatekue '''[[$1|mbytepegua]]'''.",
["gug-3"] = "Ko puruhára '''[[$1|porã]]''' oñe’ẽkuaa '''[[$2|guaraníme]]'''.",
["gug-4"] = "Ko puruhára oñe’ẽkuaa '''[[$2|guaraníme]] [[$1|haimete iñe’ẽteerõguáicha]]'''.",
["gug-5"] = "Ko puruhára '''[[$1|sa’i]]''' oñe’ẽkuaa '''[[$2|guaraníme]]'''.",
["gug-N"] = "Ko puruhára oguereko '''[[$2|guarani ñe’ẽ]] [[$1|iñe’ẽteérõ]]'''.",
-------------------------- gur --------------------------
["gur-0"] = "Tuntuna kana ka tari '''no''' mi'ilum '''[[$2|farefare]]''' (bii bɔkerɛ n toi)",
["gur-1"] = "Tuntuna wa tarı la '''[[$1|pɔsega]]''' mi'ilum bɔna '''[[$2|farefare]]'''.",
["gur-2"] = "Tuntuna wa tarı la '''[[$1|tiŋasuka]]''' mi'ilum bɔna '''[[$2|farefare]]'''.",
["gur-3"] = "Tuntuna wa tarı la '''[[$1| Adeŋɛ te'ele]]''' mi'ilum bɔna '''[[$2|farefare]]'''.",
["gur-4"] = "Tuntuna wa tarı la '''[[$1| lɛm la tiŋa la puan nɛra]]''' mi'ilum bɔna '''[[$2|farefare]]'''.",
["gur-5"] = "Tuntuna wa tarı la '''[[$1|, baŋerɛ zo'e zo'e]]''' mi'ilum bɔna '''[[$2|farefare]]'''.",
["gur-N"] = "Tuntuna wa tarı la '''[[$1|tiŋa la puan]]''' bɔkerɛ bɔna '''[[$2|farefare]]'''.",
-------------------------- guw --------------------------
["guw-0"] = "Nuyizantọ ehe ma tindo oyọnẹn '''depope''' gando ogbè '''[[$2|Gungbe]]''' tọn go (Kavi tindo nukunnumojẹnumẹ vude poun gando e go).",
["guw-1"] = "Nuyizantọ ehe tindo oyọnẹn '''[[$1|dandan tọn lẹ]]''' gando '''[[$2|Gungbe]]''' go.",
["guw-2"] = "Nuyizantọ ehe tindo oyọnẹn '''[[$1|adà de]]''' gándo '''[[$2|Gungbe]]''' go.",
["guw-3"] = "Nuyizantọ ehe tindo oyọnẹn '''[[$1|yinukọn]]''' gando '''[[$2|Gungbe]]''' go.",
["guw-4"] = "Nuyizantọ ehe tindo oyọnẹn '''[[$1|sẹpọ vi-jiji akọ̀]] [[$2|Gungbe]]''' tọn go.",
["guw-5"] = "Nuyizantọ ehe tindo oyọnẹn he pegan nado '''[[$1|sọgan wazọ́n]]''' to '''[[$2|Gungbe]]''' mẹ.",
["guw-N"] = "Nuyizantọ ehe yin '''[[$1|ovi akọ̀]] [[$2|Gungbe]]''' tọn yin.",
-------------------------- gv --------------------------
["gv-0"] = "Cha nel '''[[$2|Gaelg]] erbee''' ec yn ymmydeyr shoh (ny s'feer doillee da toiggal ee).",
["gv-1"] = "Ta '''[[$2|Gaelg]] [[$1|veg]]''' ec yn ymmydeyr shoh.",
["gv-2"] = "Ta '''[[$2|Gaelg]] [[$1|veanagh]]''' ec yn ymmydeyr shoh.",
["gv-3"] = "Ta '''[[$2|Gaelg]] [[$1|vie]]''' ec yn ymmydeyr shoh.",
["gv-4"] = "Ta '''[[$2|Gaelg]] [[$1|feer vie]]''' ec yn ymmydeyr shoh.",
["gv-5"] = "Ta '''[[$2|Gaelg]] [[$1|cheirdey]]''' ec yn ymmydeyr shoh.",
["gv-N"] = "Ta '''[[$2|Gaelg]] [[$1|ghlen]]''' ec yn ymmydeyr shoh.",
}
njlkm4bfz0qztmhd7508yvxio3waenq
Mô đun:Babel/data/t
828
419948
2570035
2026-10-13T02:55:59Z
Hiyuune
50834
Trang mới: “return { -------------------------- ta -------------------------- ["ta-0"] = "இந்தப் பயனர் '''[[$2|தமிழில்]] பயிற்சி இல்லாதவர்''' (அல்லது கடினப்பாடுகளுடன் விளங்கிக் கொள்ளகிறார்).", ["ta-1"] = "இந்தப் பயனர் '''[[$2|தமிழில்]] [[$1|அடிப்படை அறிவைக்]]''' க…”
2570035
Scribunto
text/plain
return {
-------------------------- ta --------------------------
["ta-0"] = "இந்தப் பயனர் '''[[$2|தமிழில்]] பயிற்சி இல்லாதவர்''' (அல்லது கடினப்பாடுகளுடன் விளங்கிக் கொள்ளகிறார்).",
["ta-1"] = "இந்தப் பயனர் '''[[$2|தமிழில்]] [[$1|அடிப்படை அறிவைக்]]''' கொண்டவர்.",
["ta-2"] = "இந்தப் பயனர் '''[[$2|தமிழில்]] [[$1|இடைநிலை அறிவைக்]]''' கொண்டவர்.",
["ta-3"] = "இந்தப் பயனர் '''[[$2|தமிழில்]] [[$1|மேம்பட்ட அறிவைக்]]''' கொண்டவர்.",
["ta-4"] = "இந்தப் பயனர் '''[[$2|தமிழில்]] [[$1|தாய்மொழிக்குக் கிட்டிய அறிவைக்]]''' கொண்டவர்.",
["ta-5"] = "இந்தப் பயனர் '''[[$2|தமிழில்]] [[$1|தொழில் நெறிஞர் தரத்திலான அறிவைக்]]''' கொண்டவர்.",
["ta-N"] = "இந்தப் பயனர் '''[[$2|தமிழில்]] [[$1|toதாய்மொழி அறிவைக்]]''' கொண்டவர்.",
-------------------------- tcy --------------------------
["tcy-0"] = "ಈ ಬಳಕೆದಾರೆರ್ಗ್ '''[[$2|ತುಳು]]'''ತ ಬಗ್ಗೆ '''ಶೂನ್ಯ''' ಜ್ನಾನ ಉಂಡು (ಅತ್ತಂಡ ಭಾರಿ ಕಷ್ಟೊಡು ಅರ್ಥ ಮಲ್ತೊನ್ವೆರ್).",
["tcy-1"] = "ಈ ಬಳಕೆದಾರೆರ್ಗ್ '''[[$2|ತುಳು]]'''ತ ಬಗ್ಗೆ '''[[$1|ಪ್ರಾಥಮಿಕ]]''' ಜ್ನಾನ ಉಂಡು.",
["tcy-2"] = "ಈ ಬಳಕೆದಾರೆರ್ಗ್ '''[[$2|ತುಳು]]'''ತ ಬಗ್ಗೆ '''[[$1|ಮಧ್ಯಮ ಮಟ್ಟದ]]''' ಜ್ನಾನ ಉಂಡು.",
["tcy-3"] = "ಈ ಬಳಕೆದಾರೆರ್ಗ್ '''[[$2|ತುಳು]]'''ತ ಬಗ್ಗೆ '''[[$1|ಉನ್ನತ ಮಟ್ಟದ]]''' ಜ್ನಾನ ಉಂಡು.",
["tcy-4"] = "ಈ ಬಳಕೆದಾರೆರ್ಗ್ '''[[$2|ತುಳು]]'''ತ ಬಗ್ಗೆ '''[[$1|ಮೂಲಭಾಷಿಕೆರ್ನ ಮಟ್ಟದ]]''' ಜ್ನಾನ ಉಂಡು.",
["tcy-5"] = "ಈ ಬಳಕೆದಾರೆರ್ಗ್ '''[[$2|ತುಳು]]'''ತ ಬಗ್ಗೆ '''[[$1|ವೃತ್ತಿಪರೆರ್ನ]]''' ಜ್ನಾನ ಉಂಡು.",
["tcy-N"] = "ಈ ಬಳಕೆದಾರೆರ್ಗ್ '''[[$2|ತುಳು]]'''ತ ಬಗ್ಗೆ '''[[$1|ಮೂಲಭಾಷಿಕೆರ್ನ]]''' ಜ್ನಾನ ಉಂಡು.",
-------------------------- tdd --------------------------
["tdd-1"] = "ᥚᥧᥱ ᥓᥬᥳ ᥖᥪᥰ ᥐᥨᥝᥳ ᥘᥭᥳ ᥛᥤᥰ '''[[$1|ᥓᥢᥳ ᥙᥪᥢᥳ ᥗᥣᥢᥴ]]''' ᥙᥪᥢᥳ ᥞᥧᥳ ᥐᥥᥝᥱ ᥘᥨᥭ '''[[$2|ᥟᥤᥒᥰ ᥐᥣ ᥘᥥᥖᥳ]]'''.",
["tdd-2"] = "ᥚᥧᥱ ᥓᥬᥳ ᥖᥪᥰ ᥐᥨᥝᥳ ᥘᥭᥳ ᥛᥤᥰ '''[[$1|ᥓᥢᥳ ᥗᥣᥢ ᥐᥣᥒ]]''' ᥙᥪᥢᥳ ᥞᥧᥳ ᥐᥥᥝᥱ ᥘᥨᥭ '''[[$2|ᥟᥤᥒᥰ ᥐᥣ ᥘᥥᥖᥳ]]'''.",
["tdd-3"] = "ᥚᥧᥱ ᥓᥬᥳ ᥖᥪᥰ ᥐᥨᥝᥳ ᥘᥭᥳ ᥛᥤᥰ '''[[$1|ᥓᥢᥳ ᥙᥪᥢᥳ ᥗᥣᥢᥴ]]''' ᥙᥪᥢᥳ ᥞᥧᥳ ᥐᥥᥝᥱ ᥘᥨᥭ '''[[$2|ᥟᥤᥒᥰ ᥐᥣ ᥘᥥᥖᥳ]]'''.",
["tdd-4"] = "ᥚᥧᥱ ᥓᥬᥳ ᥖᥪᥰ ᥐᥨᥝᥳ ᥘᥭᥳ ᥛᥤᥰ '''[[$1|ᥓᥢᥳ ᥗᥣᥢ ᥐᥣᥒ]]''' ᥙᥪᥢᥳ ᥞᥧᥳ ᥐᥥᥝᥱ ᥘᥨᥭ '''[[$2|ᥟᥤᥒᥰ ᥐᥣ ᥘᥥᥖᥳ]]'''.",
["tdd-5"] = "ᥚᥧᥱ ᥓᥬᥳ ᥖᥪᥰ ᥐᥨᥝᥳ ᥘᥭᥳ ᥛᥤᥰ '''[[$1|ᥓᥢᥳ ᥗᥣᥢ ᥘᥨᥒᥳ ᥘᥦᥢᥱ]]''' ᥙᥪᥢᥳ ᥞᥧᥳ ᥑᥩᥒᥴ '''[[$2|ᥟᥤᥒᥰ ᥐᥣ ᥘᥥᥖᥳ]]'''.",
["tdd-N"] = "ᥚᥧᥱ ᥓᥬᥳ ᥖᥪᥰ ᥐᥨᥝᥳ ᥘᥭᥳ ᥛᥤᥰ '''[[$1|ᥓᥢᥳ ᥗᥣᥢ ᥘᥨᥒᥳ ᥘᥦᥢᥱ]]''' ᥙᥪᥢᥳ ᥞᥧᥳ ᥐᥥᥝᥱ ᥘᥨᥭ '''[[$2|ᥟᥤᥒᥰ ᥐᥣ ᥘᥥᥖᥳ]]'''.",
-------------------------- te --------------------------
["te-0"] = "ఈ వాడుకరికి '''[[$2|తెలుగు]]''' భాషపై ఎటువంటి పరిజ్ఞానం '''లేదు''' (లేదా అర్థంచేసుకోవడానికి చాలా కష్టపడతారు).",
["te-1"] = "ఈ వాడుకరికి '''[[$2|తెలుగు]]''' భాషపై '''[[$1|ప్రాధమిక]]''' అవగాహన ఉంది.",
["te-2"] = "ఈ వాడుకరికి '''[[$2|తెలుగు]]''' భాషపై '''[[$1|మధ్య స్థాయి]]''' అవగాహన ఉంది.",
["te-3"] = "ఈ వాడుకరికి '''[[$2|తెలుగు]]''' భాషపై '''[[$1|చాలా మంచి]]''' అవగాహన ఉంది.",
["te-4"] = "ఈ వాడుకరికి '''[[$2|తెలుగు]]''' భాషపై '''[[$1|మాతృభాషపై ఉన్నంత]]''' అవగాహన ఉంది.",
["te-5"] = "ఈ వాడుకరికి '''[[$2|తెలుగు]]''' భాషపై '''[[$1|వృత్తి నైపుణ్యం]]''' ఉంది.",
["te-N"] = "ఈ వాడుకరి '''[[$1|మాతృభాష]] [[$2|తెలుగు]]'''.",
-------------------------- tet --------------------------
["tet-0"] = "Uza-na'in ne'e '''la''' ko'alia '''[[$2|tetun]]''' nein musan ida la hatene lian '''[[$2|tetun]]''' (ka komprende uitoan de'it).",
["tet-1"] = "Uza-na'in ne'e bele kontribui ho nivel '''[[$1|báziku]]''' iha lian '''[[$2|tetun]]'''.",
["tet-2"] = "Uza-na'in ne'e bele kontribui ho nivel '''[[$1|maizumenus]]''' iha lian '''[[$2|tetun]]'''.",
["tet-3"] = "Uza-na'in ne'e bele kontribui ho nivel '''[[$1|aas]]''' iha lian '''[[$2|tetun]]'''.",
["tet-4"] = "Uza-na'in ne'e nia nivel '''[[$1|atu hanesan makdalen nativu]]''' iha lian '''[[$2|tetun]]'''.",
["tet-N"] = "Uza-na'in ne'e iha '''[[$2|tetun]]''' nu'udar '''[[$1|lian inan]]'''.",
-------------------------- tg-Cyrl --------------------------
["tg-Cyrl-0"] = "Корбари мазкур '''[[$2|забони тоҷикиро]] намефаҳмад''' (ё бо душворӣ мефаҳмад).",
["tg-Cyrl-1"] = "Корбари мазкур '''[[$1|дар сатҳи муқаддамоти]] [[$2|забони тоҷикиро]]''' медонад.",
["tg-Cyrl-2"] = "Корбари мазкур '''[[$2|тоҷикиро]] [[$1|хуб]]''' медонад.",
["tg-Cyrl-3"] = "Корбари мазкур дар '''[[$1|сатҳи пешрафта]] [[$2|тоҷикиро]]''' мефаҳмад.",
["tg-Cyrl-4"] = "Корбари мазкур '''[[$1|тоҷикиро]]''' чун '''[[$2|забони модариаш медонад]]'''.",
["tg-Cyrl-5"] = "Корбари мазкур дар сатҳи '''[[$1|олӣ]] [[$2|тоҷикиро]]''' мефаҳмад.",
["tg-Cyrl-N"] = "Забони '''[[$1|модарии]]''' ин корбар '''[[$2|тоҷикӣ]]''' аст.",
-------------------------- tg-Latn --------------------------
["tg-Latn-0"] = "In korbar '''[[$2|tojikī]]'''ro '''namefahmad''' (jo onro bo duşvorī mefahmad).",
["tg-Latn-1"] = "In korbar '''[[$2|tojikī]]'''ro dar sathi '''[[$1|muqaddamotī]]''' mefahmad.",
["tg-Latn-2"] = "In korbar '''[[$2|tojikī]]'''ro dar sathi '''[[$1|mijona]]''' mefahmad.",
["tg-Latn-4"] = "Korbari mazkur ba '''[[$2|tojikī]]''' dar sathi '''[[$1|xub]]''' monandi qarib zaboni modariaş medonad.",
-------------------------- th --------------------------
["th-0"] = "ผู้ใช้คนนี้'''ไม่มี'''ความรู้เกี่ยวกับ'''[[$2|ภาษาไทย]]''' (หรือเข้าใจได้ด้วยความยากลำบาก)",
["th-1"] = "ผู้ใช้คนนี้มีความรู้'''[[$1|พื้นฐาน]]'''เกี่ยวกับ'''[[$2|ภาษาไทย]]'''",
["th-2"] = "ผู้ใช้คนนี้มีความรู้'''[[$1|ระดับกลาง]]'''เกี่ยวกับ'''[[$2|ภาษาไทย]]'''",
["th-3"] = "ผู้ใช้คนนี้มีความรู้'''[[$1|ระดับสูง]]'''เกี่ยวกับ'''[[$2|ภาษาไทย]]'''",
["th-4"] = "ผู้ใช้คนนี้สามารถใช้'''[[$2|ภาษาไทย]]'''ได้เหมือน'''[[$1|ภาษาแม่]]'''",
["th-5"] = "ผู้ใช้คนนี้สามารถใช้'''[[$2|ภาษาไทย]]'''ได้อย่าง'''[[$1|เชี่ยวชาญ]]'''",
["th-N"] = "ผู้ใช้คนนี้ใช้'''[[$2|ภาษาไทย]]'''เป็น'''[[$1|ภาษาแม่]]'''",
-------------------------- ti --------------------------
["ti-0"] = "{እዚ ተጠቃሚ እዚ/እዛ ተጠቃሚት እዚኣ/እዚ ሰብ እዚ} ብዛዕባ '''[[$2|ትግርኛ]]''' ፍልጠት '''የብሉን''' (ወይ ድማ ብብርቱዕ ጸገም {ይርድኦ/ትርድኦ/ይርድኦ})።",
["ti-1"] = "{እዚ ተጠቃሚ እዚ/እዛ ተጠቃሚት እዚኣ/እዚ ሰብ እዚ} ብዛዕባ '''[[$2|ትግርኛ]] [[$1|መሰረታዊ]]''' ፍልጠት ኣለዎ።",
["ti-2"] = "{እዚ ተጠቃሚ እዚ/እዛ ተጠቃሚት እዚኣ/እዚ ሰብ እዚ} ብዛዕባ '''[[$2|ትግርኛ]] [[$1|ማእከላይ]]''' ፍልጠት ኣለዎ።",
["ti-3"] = "{እዚ ተጠቃሚ እዚ/እዛ ተጠቃሚት እዚኣ/እዚ ሰብ እዚ} ብዛዕባ '''[[$2|ትግርኛ]] [[$1|ምዕቡል]]''' ፍልጠት ኣለዎ።",
["ti-4"] = "{እዚ ተጠቃሚ እዚ/እዛ ተጠቃሚት እዚኣ/እዚ ሰብ እዚ} '''[[$1|ዳርጋ]]''' ናይ '''[[$2|ትግርኛ]]''' መበቆላዊ ፍልጠት ኣለዎ።",
["ti-5"] = "{እዚ ተጠቃሚ እዚ/እዛ ተጠቃሚት እዚኣ/እዚ ሰብ እዚ} ብዛዕባ '''[[$2|ትግርኛ]] [[$1|ሞያዊ]]''' ፍልጠት ኣለዎ።",
["ti-N"] = "{እዚ ተጠቃሚ እዚ/እዛ ተጠቃሚት እዚኣ/እዚ ሰብ እዚ} ብዛዕባ '''[[$2|ትግርኛ]] [[$1|መበቆላዊ]]''' ርድኢት ኣለዎ።",
-------------------------- tig --------------------------
["tig-0"] = "እሊ መትኔፍዐይ አምር ናይ '''[[$2|ትግሬ]]አለቡ''' (ወክ እንዴ ከብደዩ ለልፍህም).",
["tig-1"] = "እሊ መትኔፍዐይ '''[[$1|ምርኩስ]]''' ለግብአ አምር ናይ '''[[$2|ትግሬ]]''' ቡ.",
["tig-2"] = "እሊ መትኔፍዐይ '''[[$1|ምግባይ]]''' ለግብአ አምር ናይ '''[[$2|ትግሬ]]''' ቡ.",
["tig-3"] = "እሊ መትኔፍዐይ '''[[$1|ዉቁል]]''' ለግብአ አምር ናይ '''[[$2|ትግሬ]]''' ቡ.",
["tig-4"] = "እሊ መትኔፍዐይ '''[[$1|ንሳል እም ለመስል]]''' አምር ናይ '''[[$2|ትግሬ]]''' ቡ.",
["tig-5"] = "እሊ መትኔፍዐይ ናይ '''[[$1|ኤምራይ]]''' ለገብአ አምር ናይ '''[[$2|ትግሬ]]''' ቡ.",
["tig-N"] = "አሊ መትኔፍዐይ ናይ'''[[$1|ወድ ዐድ]]''' ፈሀም ናይ '''[[$2|ትግሬ]]''' ቡ.",
-------------------------- tk --------------------------
["tk-0"] = "Bu ulanyjy '''hiç hili [[$2|Türkmençe]]''' bilmeýär (ýa-da örän kynlyk bilen düşünýär).",
["tk-1"] = "Bu ulanyjy '''[[$1|başlangyç derejede]] [[$2|Türkmençe]]''' bilýär.",
["tk-2"] = "Bu ulanyjy '''[[$1|orta derejede]] [[$2|Türkmençe]]''' bilýär.",
["tk-3"] = "Bu ulanyjy '''[[$1|ýokary derejede]] [[$2|Türkmençe]]''' bilýär.",
["tk-4"] = "Bu ulanyjy '''[[$1|öz ene dili ýaly]] [[$2|Türkmençe]]''' bilýär.",
["tk-5"] = "Bu ulanyjy '''[[$1|professional derejede]] [[$2|Türkmençe]]''' bilýär.",
["tk-N"] = "Bu ulanyjynyň '''[[$1|öz ene dili]] [[$2|Türkmençe]]'''dir.",
-------------------------- tl --------------------------
["tl-0"] = "'''Walang''' alam ang tagagamit na ito sa '''[[$2|Tagalog]]''' (o di kaya'y nahihirapan siyang intindihin ito).",
["tl-1"] = "'''[[$1|Payak]]''' ang kaalaman ng tagagamit na ito sa '''[[$2|Tagalog]]'''.",
["tl-2"] = "'''[[$1|Medyo]]''' may alam ang tagagamit na ito sa '''[[$2|Tagalog]]'''.",
["tl-3"] = "'''[[$1|Malaki]]''' ang kaalaman ng tagagamit na ito sa '''[[$2|Tagalog]]'''.",
["tl-4"] = "'''[[$1|Mala-katutubo]]''' na ang kaalaman ng tagagamit na ito sa '''[[$2|Tagalog]]'''.",
["tl-5"] = "'''[[$1|Pampropesyonal]]''' na ang kaalaman ng tagagamit na ito sa '''[[$2|Tagalog]]'''.",
["tl-N"] = "'''[[$1|Katutubo]]''' ng '''[[$2|Tagalog]]''' ang tagagamit na ito.",
-------------------------- tlh --------------------------
["tlh-1"] = "'''[[$1|loQ]] [[$2|tlhIngan Hol]]''' jatlh lo'wI'vam.",
-------------------------- tly --------------------------
["tly-0"] = "Yn ištirokəkə '''zynejdəni [[$2|Tolyši]]''' (jaanki cətin dərəsejdə).",
["tly-1"] = "Yn ištirokəkə '''[[$1|zəif]]''' zynejdə '''[[$2|Tolyši]]'''.",
["tly-2"] = "Yn ištirokəkə '''[[$1|mijonə səvijədə]]''' zynejdə '''[[$2|Tolyšə zyvoni]]'''.",
["tly-3"] = "Yn ištirokəkə '''[[$1|cok]]''' zynejdə '''[[$2|Tolyšə zyvoni]]'''.",
["tly-4"] = "Yn ištirokəkə bənə '''[[$1|moə zyvoni]]''' zynejdə '''[[$2|Tolyšə zyvoni]]'''.",
["tly-5"] = "Yn ištirokəkə '''[[$1|pešəkor səvijədə]]''' zynejdə '''[[$2|Tolıyšə zyvoni]]'''.",
["tly-N"] = "Bo yn ištirokəkə '''[[$2|Tolyšə zyvon]] [[$1|moə zyvone]]'''.",
-------------------------- tok --------------------------
["tok-0"] = "mi '''sona ala''' e '''[[$2|toki pona]]'''.",
["tok-1"] = "mi '''[[$1|sona lili]]''' e '''[[$2|toki pona]]'''.",
["tok-2"] = "mi '''[[$1|sona pi ike ala]]''' e '''[[$2|toki pona]]'''.",
["tok-3"] = "mi '''[[$1|sona pona]]''' e '''[[$2|toki pona]]'''.",
["tok-4"] = "mi '''[[$1|sona pi pona wawa]]''' e '''[[$2|toki pona]]'''.",
["tok-5"] = "mi '''[[$1|ken pali]]''' kepeken '''[[$2|toki pona]]'''.",
["tok-N"] = "'''[[$1|toki mama]]''' mi li '''[[$2|toki pona]]'''.",
-------------------------- tpi --------------------------
["tpi-0"] = "Dispela yusa i '''no save''' long '''[[$2|Tok Pisin]]'''",
["tpi-1"] = "Dispela yusa i save '''[[$1|liklik tasol]]''' long '''[[$2|Tok Pisin]]'''.",
["tpi-2"] = "Dispela yusa i save '''[[$1|hap hap]]''' long '''[[$2|Tok Pisin]]'''.",
["tpi-3"] = "Dispela yusa i save '''[[$1|gut tru]]''' long '''[[$2|Tok Pisin]]'''.",
["tpi-4"] = "Dispela yusa i save long '''[[$2|Tok Pisin]] [[$1|kain klostu wanpela lokol]]'''.",
["tpi-5"] = "Dispela yusa i '''[[$1|man bilong]]''' save long '''[[$2|Tok Pisin]]'''.",
["tpi-N"] = "Dispela yusa i save long '''[[$2|Tok Pisin]] [[$1|kain olsem wanpela lokol]]'''.",
-------------------------- tr --------------------------
["tr-0"] = "Bu kullanıcı '''hiç [[$2|Türkçe]]''' bilmiyor (ya da bir hayli zor anlıyor).",
["tr-1"] = "Bu kullanıcı '''[[$1|temel düzeyde]] [[$2|Türkçe]]''' bilir.",
["tr-2"] = "Bu kullanıcı '''[[$1|orta düzeyde]] [[$2|Türkçe]]''' bilir.",
["tr-3"] = "Bu kullanıcı '''[[$1|ileri seviyede]] [[$2|Türkçe]]''' bilir.",
["tr-4"] = "Bu kullanıcı '''[[$1|anadili gibi]] [[$2|Türkçe]]''' konuşabilir.",
["tr-5"] = "Bu kullanıcı '''[[$1|profesyonel]] [[$2|Türkçe]]''' bilgisine sahiptir.",
["tr-N"] = "Bu kullanıcının '''[[$1|anadili]] [[$2|Türkçedir]]'''.",
-------------------------- ts --------------------------
["ts-0"] = "Mutirhisi loyi anga '''ri twisisi''' ririmi ra '''[[$2|Xitsonga]]''' (kumbe utwisisa switsanana).",
["ts-1"] = "Mutirhisi loyi wa '''[[$1|ri twisisanyana]]''' ririmi ra '''[[$2|Xitsonga]]'''.",
["ts-2"] = "Mutirhisi loyi wa '''[[$1|ri twisisa]]''' ririmi ra '''[[$2|Xitsonga]]'''.",
["ts-3"] = "Mutirhisi loyi wa '''[[$1|ri twisisa kahle]]''' ririmi ra '''[[$2|Xitsonga]]'''.",
["ts-4"] = "Mutirhisi loyi wa '''[[$1|ri twisisa hiku enta]]''' ririmi ra '''[[$2|Xitsonga]]'''.",
["ts-5"] = "Mutirhisi loyi u lo '''[[$1|ri dyondzela]]''' ririmi ra '''[[$2|Xitsonga]]'''.",
["ts-N"] = "Mutirhisi loyi ulo '''[[$1|ri mama]]''' ririmi ra '''[[$2|Xitsonga]]'''.",
-------------------------- tt-Cyrl --------------------------
["tt-Cyrl-0"] = "Бу кулланучы '''[[$2|татарча]] белми''' (яки бик начар аңлый).",
["tt-Cyrl-1"] = "Бу кулланучы '''[[$2|татарча]] [[$1|башлангыч дәрәҗәдә]]''' белә.",
["tt-Cyrl-2"] = "Бу кулланучы '''[[$2|татарча]] [[$1|уртача дәрәҗәдә]]''' белә.",
["tt-Cyrl-3"] = "Бу кулланучы '''[[$2|татарча]] [[$1|югары дәрәҗәдә]]''' белә.",
["tt-Cyrl-4"] = "Бу кулланучы '''[[$2|татарча]] [[$1|туган теле дәрәҗәсендә]]''' белә.",
["tt-Cyrl-5"] = "Бу кулланучы '''[[$2|татарча]] [[$1|һөнәри дәрәҗәдә]]''' белә.",
["tt-Cyrl-N"] = "Бу кулланучы өчен '''[[$2|татар теле]] [[$1|туган тел]]'''.",
-------------------------- ttj --------------------------
["ttj-0"] = "Onu omukozesa '''taine''' bumanyi bw''''[[$2|Orutooro]]''' (rundi ayetegereza n'obulemeezi muno).",
["ttj-1"] = "Onu omukozesa aine obumanyi bw''''[[$1|okwanguha]]''' bw''''[[$2|Orutooro]]'''.",
["ttj-2"] = "Onu omukozesa aine obumanyi bwa '''[[$1|hagati]]''' bw''''[[$2|Orutooro]]'''.",
["ttj-3"] = "Onu omukozesa aine obumanyi bw''''[[$1|okulemeera]]''' bw''''[[$2|Orutooro]]'''.",
["ttj-4"] = "Onu omukozesa aine obumanyi obuli '''[[$1|haihi n'obw'enzaarwa]]''' bw''''[[$2|Orutooro]]'''.",
["ttj-5"] = "Onu omukozesa aine obumanyi bw''''[[$1|amagezi]]''' bw''''[[$2|Orutooro]]'''.",
["ttj-N"] = "Onu omukozesa aine obumanyi bw''''[[$1|enzaarwa]]''' bw''''[[$2|Orutooro]]'''.",
-------------------------- ttt --------------------------
["ttt-0"] = "Va karwan nê zoni ya '''hêç''' nozone yonne '''[[$2|tojikī]]''' (fehem keron feqet vat nezonon).",
["ttt-1"] = "Va karwan '''[[$1|teynekon]] [[$2|Tatiki]]''' zonon.",
["ttt-2"] = "'''[[$2|Tatikiya]]''' va karwani '''[[$1|holon]]'''.",
["ttt-3"] = "Va karwan '''[[$1|voş]] [[$2|tatiki]]''' zonon.",
["ttt-4"] = "Va karwan '''[[$2|Tatiki]]''' zey '''[[$1|zoy zondo morda]]''' xo zonon.",
["ttt-5"] = "No karber sewiya '''[[$1|profesyonale]]''' dı '''[[$2|Tatiki]]''' zano.",
["ttt-N"] = "'''[[$1|Zone mordon]]''' va karwani '''[[$2|Tatikiyon]]'''.",
-------------------------- tum --------------------------
["tum-0"] = "Mgwiliski ntchito uyu '''wakumanya yayi''' za '''[[$2|chiTumbuka]]''' (panji wakupulika mwakusuzgikila).",
["tum-1"] = "Mgwiliski ntchito uyu wana zeru '''[[$1|zidoko]]''' za '''[[$2|chiTumbuka]]'''.",
["tum-2"] = "Mgwiliski ntchito uyu wana zeru '''[[$1|zapakati]]''' za '''[[$2|chiTumbuka]]'''.",
["tum-3"] = "Mgwiliski ntchito uyu wana zeru za '''[[$1|pachanya]]''' za '''[[$2|chiTumbuka]]'''.",
["tum-4"] = "Mgwiliski ntchito uyu wana zeru zapafufupi nga ni '''[[$1|lilimi lake]]''' la '''[[$2|chiTumbuka]]'''.",
["tum-5"] = "Mgwiliski ntchito uyu wana zeru '''[[$1|zapachanya]]''' za '''[[$2|chiTumbuka]]'''.",
["tum-N"] = "Mgwiliski ntchito uyu wana '''[[$1|lilimi]]''' la '''[[$2|chiTumbuka]]'''.",
-------------------------- txb --------------------------
["txb-1"] = "{se/sā/te} yaukkauca '''[[$2|kᵤśiññe kantwantse]] [[$1|salaññe]]''' aiśamñesa ekita yāmtsi campäṃ.",
["txb-2"] = "{se/sā/te} yaukkauca '''[[$2|kᵤśiññe kantwantse]] [[$1|ywārśkāññe]]''' aiśamñesa ekita yāmtsi campäṃ.",
-------------------------- tyv --------------------------
["tyv-0"] = "Ажыглакчы '''[[$2|тывалап]] билбес''' (азы арай деп билир).",
["tyv-1"] = "Ажыглакчының '''[[$2|тывалаары]] [[$1|эге деңнелдиг]]'''.",
["tyv-2"] = "Киржикчиниң '''[[$2|тывалаары]] [[$1|ортумак]]'''",
["tyv-3"] = "Киржикчи '''[[$1|хостуг]]'''.'''[[$2|тывалаар]]'''",
["tyv-4"] = "Киржикчиниң '''[[$2|тывалаары]] [[$1| төрээн чыгам]]'''.",
["tyv-5"] = "Киржикчи '''[[$1|профессионал]] [[$2|тывалаар]]'''",
["tyv-N"] = "Киржикчиге '''[[$2|Тыва дыл]]''' — '''[[$1|төрээн дыл]]'''.",
}
3fmw4n70lkhtv9q5nnnvw6lte7jrvi6
Mô đun:Babel/data/z
828
419949
2570036
2026-10-13T02:56:25Z
Hiyuune
50834
Trang mới: “return { -------------------------- zea -------------------------- ["zea-1"] = "Deêze gebruker praot en verstaet '''[[$1|'n bitje]] [[$2|Zeêuws]]'''.", ["zea-2"] = "Deêze gebruker praot en verstaet '''[[$1|aoreg]] [[$2|Zeêuws]]'''.", ["zea-3"] = "Deêze gebruker praot '''[[$1|vloeiend]] [[$2|Zeêuws]]'''.", ["zea-4"] = "Deêze gebruker praot '''[[$2|Zeêuws]] [[$1|asof't z'n moerstaele is]]'''.", ["zea-N"] = "Deêze gebruker eit '''[[$2|Zeêuws]]''' as '''[[$1|m…”
2570036
Scribunto
text/plain
return {
-------------------------- zea --------------------------
["zea-1"] = "Deêze gebruker praot en verstaet '''[[$1|'n bitje]] [[$2|Zeêuws]]'''.",
["zea-2"] = "Deêze gebruker praot en verstaet '''[[$1|aoreg]] [[$2|Zeêuws]]'''.",
["zea-3"] = "Deêze gebruker praot '''[[$1|vloeiend]] [[$2|Zeêuws]]'''.",
["zea-4"] = "Deêze gebruker praot '''[[$2|Zeêuws]] [[$1|asof't z'n moerstaele is]]'''.",
["zea-N"] = "Deêze gebruker eit '''[[$2|Zeêuws]]''' as '''[[$1|moerstaele]]'''.",
-------------------------- zgh --------------------------
["zgh-0"] = "{ⴰⵏⵙⵙⵎⵔⵙ/ⵜⴰⵏⵙⵙⵎⵔⵙⵜ} ⴰⴷ ⵓⵔ ⵖⵓⵔⵙ '''ⴰⴽⴽⵯ''' ⴽⵔⴰ ⵏ ⵜⵓⵙⵙⵏⵉⵡⵉⵏ ⴳ '''[[$2|ⵜⵎⴰⵣⵉⵖⵜ]]''' (ⵏⵖ ⴰⵔ ⵜⵜ ⵉⵜⵜⵔⵎⴰⵙ ⵙ ⵓⵏⵎⴰⵔ ⵉⴳⴳⵓⵜⵏ).",
["zgh-1"] = "{ⴰⵏⵙⵙⵎⵔⵙ/ⵜⴰⵏⵙⵙⵎⵔⵙⵜ} ⴰⴷ ⵖⵓⵔⵙ ⵜⵓⵙⵙⵏⴰ '''[[$1|ⵜⴰⵙⵉⵍⴰⵏⵜ]]''' ⴳ '''[[$2|ⵜⵎⴰⵣⵉⵖⵜ]]'''.",
["zgh-2"] = "{ⴰⵏⵙⵙⵎⵔⵙ/ⵜⴰⵏⵙⵙⵎⵔⵙⵜ} ⴰⴷ ⵖⵓⵔⵙ ⵜⵓⵙⵙⵏⴰ '''[[$1|ⵜⴰⵏⴳⵔⴰⵏⵜ]]''' ⴳ '''[[$2|ⵜⵎⴰⵣⵉⵖⵜ]]'''.",
["zgh-3"] = "{ⴰⵏⵙⵙⵎⵔⵙ/ⵜⴰⵏⵙⵙⵎⵔⵙⵜ} ⴰⴷ ⵖⵓⵔⵙ ⵜⵓⵙⵙⵏⴰ '''[[$1|ⵢⴰⵜⵜⵓⵢⵏ]]''' ⴳ '''[[$2|ⵜⵎⴰⵣⵉⵖⵜ]]'''.",
["zgh-4"] = "{ⴰⵏⵙⵙⵎⵔⵙ/ⵜⴰⵏⵙⵙⵎⵔⵙⵜ} ⴰⴷ ⵖⵓⵔⵙ ⵜⵓⵙⵙⵏⴰ '''[[$1|ⵢⴰⵥⵏ ⵉ ⵜⵉⵏ ⵓⵎⵙⵉⵡⵍ ⴰⵏⵚⵍⵉ]]''' ⴳ '''[[$2|ⵜⵎⴰⵣⵉⵖⵜ]]'''.",
["zgh-5"] = "{ⴰⵏⵙⵙⵎⵔⵙ/ⵜⴰⵏⵙⵙⵎⵔⵙⵜ} ⴰⴷ ⵖⵓⵔⵙ ⵜⵓⵙⵙⵏⴰ '''[[$1|ⵜⴰⵣⵣⵓⵍⴰⵏⵜ]]''' ⴳ '''[[$2|ⵜⵎⴰⵣⵉⵖⵜ]]'''.",
["zgh-N"] = "{ⴰⵏⵙⵙⵎⵔⵙ/ⵜⴰⵏⵙⵙⵎⵔⵙⵜ} ⴰⴷ ⵜⴳⴰ '''[[$1|ⵜⵓⵜⵍⴰⵢⵜ ⵜⴰⵢⵎⵎⴰⵜ]]''' ⵏⵙ '''[[$2|ⵜⵎⴰⵣⵉⵖⵜ]]'''.",
-------------------------- zh --------------------------
["zh-0"] = "這位用戶無法理解'''[[$2|中文]]'''。<br>这位用户无法理解'''[[$2|中文]]'''。",
["zh-1"] = "該用戶能以'''[[$1|基本]]'''的'''[[$2|中文]]'''進行交流。<br>该用户能以'''[[$1|基本]]'''的'''[[$2|中文]]'''进行交流。",
["zh-2"] = "該用戶能以'''[[$1|中級]]'''的'''[[$2|中文]]'''進行交流。<br>该用户能以'''[[$1|中级]]'''的'''[[$2|中文]]'''进行交流。",
["zh-3"] = "該用戶能以'''[[$1|熟練]]'''的'''[[$2|中文]]'''進行交流。<br>该用户能以'''[[$1|熟练]]'''的'''[[$2|中文]]'''进行交流。",
["zh-4"] = "該用戶能以'''[[$1|地道]]'''的'''[[$2|中文]]'''進行交流。<br>该用户能以'''[[$1|地道]]'''的'''[[$2|中文]]'''进行交流。",
-------------------------- zh-CN --------------------------
["zh-CN-0"] = "这位用户'''不懂'''或很难理解'''[[$2|陆式简体中文]]'''。",
["zh-CN-1"] = "这位用户的'''[[$2|陆式简体中文]]'''达到'''[[$1|初级水平]]'''。",
["zh-CN-2"] = "这位用户的'''[[$2|陆式简体中文]]'''达到'''[[$1|中级水平]]'''。",
["zh-CN-3"] = "这位用户的'''[[$2|陆式简体中文]]'''达到'''[[$1|高级]]'''水平。",
["zh-CN-4"] = "这位用户的'''[[$2|陆式简体中文]]'''达到'''[[$1|接近母语水平]]'''。",
["zh-CN-5"] = "这位用户的'''[[$2|陆式简体中文]]'''达到'''[[$1|专业水平]]'''。",
["zh-CN-N"] = "'''[[$2|陆式简体中文]]'''是这位用户的'''[[$1|母语]]'''。",
-------------------------- zh-Hans --------------------------
["zh-Hans-0"] = "这位用户'''不懂'''或很难理解'''[[$2|简体中文]]'''。",
["zh-Hans-1"] = "这位用户的'''[[$2|简体中文]]'''达到'''[[$1|初级水平]]'''。",
["zh-Hans-2"] = "这位用户的'''[[$2|简体中文]]'''达到'''[[$1|中级水平]]'''。",
["zh-Hans-3"] = "这位用户的'''[[$2|简体中文]]'''达到'''[[$1|高级]]'''水平。",
["zh-Hans-4"] = "这位用户的'''[[$2|简体中文]]'''达到'''[[$1|接近母语水平]]'''。",
["zh-Hans-5"] = "这位用户的'''[[$2|简体中文]]'''达到'''[[$1|专业水平]]'''。",
["zh-Hans-N"] = "'''[[$2|简体中文]]'''是这位用户的'''[[$1|母语]]'''。",
-------------------------- zh-Hant --------------------------
["zh-Hant-0"] = "這位使用者'''不瞭解'''(或在一定程度上難以理解)'''[[$2|繁體中文]]'''。",
["zh-Hant-1"] = "這位使用者有'''[[$1|基本]]'''水準的'''[[$2|繁體中文]]'''知識。",
["zh-Hant-2"] = "這位使用者有'''[[$1|中等]]'''水準的'''[[$2|繁體中文]]'''知識。",
["zh-Hant-3"] = "這位使用者有'''[[$1|進階]]'''水準的'''[[$2|繁體中文]]'''知識。",
["zh-Hant-4"] = "這位使用者有'''[[$1|接近母語使用者]]'''水準的'''[[$2|繁體中文]]'''知識。",
["zh-Hant-5"] = "這位使用者有'''[[$1|專業]]'''水準的'''[[$2|繁體中文]]'''知識。",
["zh-Hant-N"] = "'''[[$2|繁體中文]]'''是這位使用者的'''[[$1|母語]]'''。",
-------------------------- zh-HK --------------------------
["zh-HK-0"] = "這位用戶'''無[[$2|港式中文]]'''的知識(或很難地去明白它)。",
["zh-HK-1"] = "這位用戶有'''[[$1|基本]]'''的'''[[$2|港式中文]]'''知識。",
["zh-HK-2"] = "這位用戶有'''[[$1|中等]]'''的'''[[$2|港式中文]]'''知識。",
["zh-HK-3"] = "這位用戶有'''[[$1|高等]]'''的'''[[$2|港式中文]]'''知識。",
["zh-HK-4"] = "這位用戶有'''[[$1|接近母語講者]]'''的'''[[$2|港式中文]]'''知識。",
["zh-HK-5"] = "這位用戶有'''[[$1|專業]]'''的'''[[$2|港式中文]]'''知識。",
["zh-HK-N"] = "這位用戶明白以'''[[$1|母語]]'''為主的'''[[$2|港式中文]]'''。",
-------------------------- zh-SG --------------------------
["zh-SG-0"] = "这位用户'''不懂'''或很难理解'''[[$2|星式简体中文]]'''。",
["zh-SG-1"] = "这位用户的'''[[$2|星式简体中文]]'''达到'''[[$1|初级水平]]'''。",
["zh-SG-2"] = "这位用户的'''[[$2|星式简体中文]]'''达到'''[[$1|中级水平]]'''。",
["zh-SG-3"] = "这位用户的'''[[$2|星式简体中文]]'''达到'''[[$1|高级]]'''水平。",
["zh-SG-4"] = "这位用户的'''[[$2|星式简体中文]]'''达到'''[[$1|接近母语水平]]'''。",
["zh-SG-5"] = "这位用户的'''[[$2|星式简体中文]]'''达到'''[[$1|专业水平]]'''。",
["zh-SG-N"] = "'''[[$2|星式简体中文]]'''是这位用户的'''[[$1|母语]]'''。",
-------------------------- zh-TW --------------------------
["zh-TW-0"] = "這位使用者'''不瞭解'''(或在一定程度上難以理解)'''[[$2|臺式繁體中文]]'''。",
["zh-TW-1"] = "這位使用者有'''[[$1|基本]]'''水平的'''[[$2|臺式繁體中文]]'''知識。",
["zh-TW-2"] = "這位使用者有'''[[$1|中等]]'''水平的'''[[$2|臺式繁體中文]]'''知識。",
["zh-TW-3"] = "這位使用者有'''[[$1|進階]]'''水平的'''[[$2|臺式繁體中文]]'''知識。",
["zh-TW-4"] = "這位使用者有'''[[$1|接近母語使用者]]'''水平的'''[[$2|臺式繁體中文]]'''知識。",
["zh-TW-5"] = "這位使用者有'''[[$1|專業]]'''水平的'''[[$2|臺式繁體中文]]'''知識。",
["zh-TW-N"] = "'''[[$2|臺式繁體中文]]'''是這位使用者的'''[[$1|母語]]'''。",
-------------------------- zko --------------------------
["zko-1"] = "Ińu hit '''[[$1|mintuš]]''' anaŋaithāk '''[[$2|koth alūpō]]'''.",
-------------------------- zle-ort --------------------------
["zle-ort-0"] = "Сей уживачъ '''[[$2|рускую]]''' мову '''не вѣдає'''.",
["zle-ort-1"] = "Сей уживачъ '''[[$2|рускую]]''' мову '''[[$1|злѣ вѣдає]]'''.",
["zle-ort-2"] = "Сей уживачъ '''[[$2|рускую]]''' мову '''[[$1|вѣдає]]'''.",
["zle-ort-3"] = "Сей уживачъ '''[[$2|рускую]]''' мову '''[[$1|добро вѣдає]]'''.",
["zle-ort-4"] = "Сей уживачъ '''[[$2|рускую]]''' мову '''[[$1|вельми добро вѣдає]]'''.",
-------------------------- zlw-ocs --------------------------
["zlw-ocs-1"] = "Tento poživatel jmá '''[[$1|základnie]]''' poznánie o '''[[$2|stařiej češčině]]'''.",
["zlw-ocs-2"] = "Tento poživatel jmá '''[[$1|střědnie]]''' poznánie o '''[[$2|stařiej češčině]]'''.",
["zlw-ocs-3"] = "Tento poživatel jmá '''[[$1|dobré]]''' poznánie o '''[[$2|stařiej češčině]]'''.",
["zlw-ocs-4"] = "Tento poživatel jmá '''[[$1|velmi dobré]]''' poznánie o '''[[$2|stařiej češčině]]'''.",
-------------------------- zu --------------------------
["zu-0"] = "Lomsebenzisi '''akanalo noluncane''' ulwazi '''[[$2|lwesiNgisi]]''' (okanye kunzima kakhulu ukusiqondisisa).",
["zu-1"] = "Lomsebenzisi unolwazana '''[[$1|oluncane]] [[$2|ngesiZulu]]'''.",
["zu-2"] = "Lomsebenzisi unolwazi '''[[$1|olungengakanani]] [[$2|lwesiZulu]]'''.",
["zu-3"] = "Lomsebenzisi unolwazi '''[[$1|oluningi]] [[$2|lwesiZulu]]'''.",
["zu-4"] = "Lomsebenzisi unolwazi '''[[$1|olucishe lufane nelomuntu ozalwe ekhuluma]] [[$2|lwesiZulu]]'''.",
["zu-5"] = "Lomsebenzisi unolwazi '''[[$1|lwesemfundo eliphephile]] [[$2|lwesiZulu]]'''.",
["zu-N"] = "Lomsebenzisi '''[[$1|uzalwe]]''' ekhuluma '''[[$2|lwsiZulu]]'''.",
-------------------------- zza --------------------------
["zza-0"] = "{No karber/Na karbere} '''héç [[$2|Zazaki]]''' nézana (yana çetın fahm kena).",
["zza-1"] = "{No karber/Na karbere} '''[[$1|zayıf]]''' sewiya de '''[[$2|Zazaki]]''' zana.",
["zza-2"] = "{No karber/Na karbere} sewiya '''[[$1|miyanêne]]''' de '''[[$2|Zazaki]]''' zano.",
["zza-3"] = "{No karber/Na karbere} sewiya '''[[$1|aver]]'''i de '''[[$2|Zazaki]]''' zano/zana.",
["zza-4"] = "{No karber/Na karbere} '''[[$2|Zazaki]]''' zey '''[[$1|zıwanê ma u piyê xo]]''' fehm keno.",
["zza-5"] = "Karber '''[[$1|profesyonel]]''' sewiya de '''[[$2|Zazaki]]''' zano.",
["zza-N"] = "Zıwané '''[[$1|may u pér]]''' dê karberi '''[[$2|Zazaki]]''' yo.",
}
p0mrkcn2ozh7pbwmhgekwvftu9bzk45
ribest
0
419950
2570040
2026-10-13T03:11:49Z
Hiyuune
50834
+ gmh
2570040
wikitext
text/x-wiki
=={{langname|gmh}}==
==={{section|v}}===
{{head|gmh|Biến thể hình thái động từ}}
# {{infl of|gmh|rëben||pres|ở|2|s}}
o6g5wz4z8gad6sjiaj540h8uj4hre8p
orainsear
0
419951
2570043
2026-10-13T03:15:12Z
Hiyuune
50834
Trang mới: “=={{langname|gd}}== ==={{section|alt}}=== * {{l|gd|oraindsear}} ==={{section|etym}}=== {{bor+|gd|sco|oranger|t=quả cam}},<ref>“[https://faclair.ac.uk/orains-adj.php orainsear]” trong Faclair na Gàidhlig</ref> possibly from {{der|gd|fro|oranger|t=quả cam}}<ref>{{R:DSL|oranger}}</ref> ==={{section|pron}}=== * {{IPA|gd|/ˈɔɾəɲʃaɾ/|ref={{R:gd:Wentworth:2003|page=504}}}} ==={{section|n}}=== {{gd-noun|m|~|~an}} # [[quả|Quả]] [[cam]]. ===={{section|syn}}…”
2570043
wikitext
text/x-wiki
=={{langname|gd}}==
==={{section|alt}}===
* {{l|gd|oraindsear}}
==={{section|etym}}===
{{bor+|gd|sco|oranger|t=quả cam}},<ref>“[https://faclair.ac.uk/orains-adj.php orainsear]” trong Faclair na Gàidhlig</ref> possibly from {{der|gd|fro|oranger|t=quả cam}}<ref>{{R:DSL|oranger}}</ref>
==={{section|pron}}===
* {{IPA|gd|/ˈɔɾəɲʃaɾ/|ref={{R:gd:Wentworth:2003|page=504}}}}
==={{section|n}}===
{{gd-noun|m|~|~an}}
# [[quả|Quả]] [[cam]].
===={{section|syn}}====
* {{l|gd|òraist}}
* {{l|gd|òr-mheas}}
* {{l|gd|òr-ubhal}}
===={{section|rel}}====
* {{l|gd|orains||màu cam}}
* {{l|gd|òraisteach}}
==={{section|mut}}===
{{gd-mut-vowel}}
==={{section|ref}}===
{{reflist}}
09fc18bb2wlbox54ngngh1357c1hvw6
2570044
2570043
2026-10-13T03:15:30Z
Hiyuune
50834
/* Từ nguyên */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]])
2570044
wikitext
text/x-wiki
=={{langname|gd}}==
==={{section|alt}}===
* {{l|gd|oraindsear}}
==={{section|etym}}===
{{bor+|gd|sco|oranger|t=quả cam}},<ref>“[https://faclair.ac.uk/orains-adj.php orainsear]” trong Faclair na Gàidhlig</ref> có khả năng từ {{der|gd|fro|oranger|t=quả cam}}<ref>{{R:DSL|oranger}}</ref>
==={{section|pron}}===
* {{IPA|gd|/ˈɔɾəɲʃaɾ/|ref={{R:gd:Wentworth:2003|page=504}}}}
==={{section|n}}===
{{gd-noun|m|~|~an}}
# [[quả|Quả]] [[cam]].
===={{section|syn}}====
* {{l|gd|òraist}}
* {{l|gd|òr-mheas}}
* {{l|gd|òr-ubhal}}
===={{section|rel}}====
* {{l|gd|orains||màu cam}}
* {{l|gd|òraisteach}}
==={{section|mut}}===
{{gd-mut-vowel}}
==={{section|ref}}===
{{reflist}}
9yblpm1v4e2n6cbah9w0t42j3voqzm3
orainsearan
0
419952
2570045
2026-10-13T03:16:03Z
Hiyuune
50834
+ gd
2570045
wikitext
text/x-wiki
=={{langname|gd}}==
==={{section|n}}===
{{head|gd|Biến thể hình thái danh từ|g=m-p}}
# {{plural of|gd|orainsear}}
hyzs5oueye8hm533okd96xb8keltgqx
九野
0
419953
2570049
2026-10-13T03:43:32Z
Hiyuune
50834
Trang mới: “=={{langname|ja}}== {{ja-kanjitab|きゅう|の}} ==={{ĐM|pr-noun}}=== {{ja-pos|proper|きゅうの}} # {{surname|ja|sort=きゅうの}}”
2570049
wikitext
text/x-wiki
=={{langname|ja}}==
{{ja-kanjitab|きゅう|の}}
==={{ĐM|pr-noun}}===
{{ja-pos|proper|きゅうの}}
# {{surname|ja|sort=きゅうの}}
mj27oos0r1yjpq9mfzviw8h7mugchvk
сингапурлық
0
419954
2570050
2026-10-13T03:45:19Z
Hiyuune
50834
Trang mới: “=={{langname|kk}}== {{kk-alt}} ==={{section|etym}}=== {{suffix|kk|Сингапур|лық}}. ==={{section|adj}}=== {{kk-adj}} # Thuộc về hoặc liên quan đến [[Singapore]]. ==={{section|n}}=== {{kk-noun}} # Người [[Singapore]]. ===={{section|decl}}==== {{kk-noun-c|ы|қ}} {{C|kk|Tên gọi dân cư|Quốc tịch}}”
2570050
wikitext
text/x-wiki
=={{langname|kk}}==
{{kk-alt}}
==={{section|etym}}===
{{suffix|kk|Сингапур|лық}}.
==={{section|adj}}===
{{kk-adj}}
# Thuộc về hoặc liên quan đến [[Singapore]].
==={{section|n}}===
{{kk-noun}}
# Người [[Singapore]].
===={{section|decl}}====
{{kk-noun-c|ы|қ}}
{{C|kk|Tên gọi dân cư|Quốc tịch}}
3fp0aofb8rwo8u2vd0asl53wm66qcoj
Mô đun:zh/data/ltc-pron/𤴘
828
419955
2570051
2026-10-13T03:47:18Z
Hiyuune
50834
Trang mới: “return { "娘鹽三開 入尼輒-重鈕" }”
2570051
Scribunto
text/plain
return {
"娘鹽三開 入尼輒-重鈕"
}
ta7fhregvpacydqs4i8rvapfduruc7z
Bản mẫu:R:dra-okn:KSP
10
419956
2570054
2026-10-13T04:00:32Z
Hiyuune
50834
Trang mới: “{{#invoke:quote|call_template |template=cite-book |kn|title=kn:ಹಳಗನ್ನಡ ಪದಸಂಪದ|trans-title=Halagannada Padasampada|publisher=Kannada Sahitya Parishattu|year=2007|editor=Dr. P. V. Narayana|url=https://bharatavani.in/bharatavani//home/dictionarysurf/?did=64&language=Kannada|entry={{lang|dra-okn|{{{1|{{pagename}}}}}}} |allowparams=1 }}<noinclude>{{refcat}}</noinclude>”
2570054
wikitext
text/x-wiki
{{#invoke:quote|call_template
|template=cite-book
|kn|title=kn:ಹಳಗನ್ನಡ ಪದಸಂಪದ|trans-title=Halagannada Padasampada|publisher=Kannada Sahitya Parishattu|year=2007|editor=Dr. P. V. Narayana|url=https://bharatavani.in/bharatavani//home/dictionarysurf/?did=64&language=Kannada|entry={{lang|dra-okn|{{{1|{{pagename}}}}}}}
|allowparams=1
}}<noinclude>{{refcat}}</noinclude>
m4wzm8ukxl0lhakkfw2fehzexrai8qr
Mô đun:zh/data/dial-syn/行賄
828
419957
2570058
2026-10-13T04:05:21Z
Hiyuune
50834
Trang mới: “local export = {} export.list = { ["title"] = "", ["meaning"] = "hối lộ", ["note"] = "", ["Classical"] = { "行賕" }, --賄, 賂? ["Formal"] = { "行賄", "賄賂" }, ["Taxonomic"] = { "" }, ["Beijing"] = { "行賄" }, ["Beijing-PG"] = { "" }, ["Beijing-MY"] = { "" }, ["Beijing-HR"] = { "" }, ["Beijing-YQ"] = { "" }, ["Beijing-CP"] = { "" }, ["Beijing-MTG"] = { "" }, ["Beijing-FS"] = { "" }, ["Taiwan"…”
2570058
Scribunto
text/plain
local export = {}
export.list = {
["title"] = "",
["meaning"] = "hối lộ",
["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"] = { "行賄", "賄賂", "攄東子", "意思意思" }, --攄 written as 粗
["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"] = { "楔空", "楔後空", "楔錢", "下賂", "使賂", "窒喙空", "窒喙", "攝手路:dated" },
["Xiamen-HS"] = { "" },
["Tong'an"] = { "" },
["Quanzhou"] = { "楔空", "楔錢", "窒喙空", "窒喙" },
["Jinjiang"] = { "楔空" }, --written as 塞空
["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"] = { "[[屧]][[錢]][[予]][[人]]" }, --written as 塞錢予人
["Pingxi"] = { "" },
["Kaohsiung"] = { "烏西" },
["Cijin"] = { "" },
["Hongmaogang"] = { "" },
["Dalinpu"] = { "" },
["Tianliao"] = { "" },
["Yilan"] = { "烏西" },
["Luodong"] = { "" },
["Toucheng"] = { "" },
["Lukang"] = { "烏西" },
["Yongjing-MN"] = { "" },
["Taichung"] = { "烏西" },
["Wuqi"] = { "" },
["Tainan"] = { "烏西", "楔空", "楔後手" }, --楔 written as 揳
["Anping"] = { "" },
["Shanhua"] = { "" },
["Taitung"] = { "" },
["Green Island"] = { "烏西" },
["Hsinchu-MN"] = { "烏西" },
["Miaoli-MN"] = { "" },
["Mailiao"] = { "" },
["Chiayi"] = { "" },
["Chiayi-DS"] = { "" },
["Baoli"] = { "" },
["Liuqiu"] = { "烏西" },
["Kinmen"] = { "楗錢", "楗空" },
["Jinsha"] = { "" },
["Magong"] = { "東包", "烏西" },
["Pengnan"] = { "東包", "烏西" },
["Xiyu"] = { "東包", "烏西" },
["Huxi"] = { "東包" },
["Wangan"] = { "東包", "烏西" },
["Cimei"] = { "東包", "烏西" },
["Huayu"] = { "東包", "烏西" },
["Zhongtun"] = { "烏西" },
["Houliao"] = { "東包", "烏西" },
["Tongliang"] = { "東包", "烏西" },
["Jibei"] = { "東包", "烏西" },
["Malaysia-MN"] = { "[[予]][[咖啡鐳]]" },
["Melaka"] = { "" },
["Labuan"] = { "" },
["Klang"] = { "[[予]][[伊]][[食鐳]]", "[[予]][[咖啡鐳]]", "[[請]][[啉茶]]" },
["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"] = { "使楔", "楔錢", "點油", "杵" }, --楔? 楔 written as 侁
["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
gx1rjk9aa9dkxqvcuq3oyiihltbi2gd
2570062
2570058
2026-10-13T04:09:47Z
Hiyuune
50834
2570062
Scribunto
text/plain
local export = {}
export.list = {
["title"] = "",
["meaning"] = "hối lộ",
["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"] = { "行賄", "賄賂", "攄東子", "意思意思" }, --攄 written as 粗
["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"] = { "楔空", "楔後空", "楔錢", "下賂", "使賂", "窒喙空", "窒喙", "攝手路:lỗi thời" },
["Xiamen-HS"] = { "" },
["Tong'an"] = { "" },
["Quanzhou"] = { "楔空", "楔錢", "窒喙空", "窒喙" },
["Jinjiang"] = { "楔空" }, --written as 塞空
["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"] = { "[[屧]][[錢]][[予]][[人]]" }, --written as 塞錢予人
["Pingxi"] = { "" },
["Kaohsiung"] = { "烏西" },
["Cijin"] = { "" },
["Hongmaogang"] = { "" },
["Dalinpu"] = { "" },
["Tianliao"] = { "" },
["Yilan"] = { "烏西" },
["Luodong"] = { "" },
["Toucheng"] = { "" },
["Lukang"] = { "烏西" },
["Yongjing-MN"] = { "" },
["Taichung"] = { "烏西" },
["Wuqi"] = { "" },
["Tainan"] = { "烏西", "楔空", "楔後手" }, --楔 written as 揳
["Anping"] = { "" },
["Shanhua"] = { "" },
["Taitung"] = { "" },
["Green Island"] = { "烏西" },
["Hsinchu-MN"] = { "烏西" },
["Miaoli-MN"] = { "" },
["Mailiao"] = { "" },
["Chiayi"] = { "" },
["Chiayi-DS"] = { "" },
["Baoli"] = { "" },
["Liuqiu"] = { "烏西" },
["Kinmen"] = { "楗錢", "楗空" },
["Jinsha"] = { "" },
["Magong"] = { "東包", "烏西" },
["Pengnan"] = { "東包", "烏西" },
["Xiyu"] = { "東包", "烏西" },
["Huxi"] = { "東包" },
["Wangan"] = { "東包", "烏西" },
["Cimei"] = { "東包", "烏西" },
["Huayu"] = { "東包", "烏西" },
["Zhongtun"] = { "烏西" },
["Houliao"] = { "東包", "烏西" },
["Tongliang"] = { "東包", "烏西" },
["Jibei"] = { "東包", "烏西" },
["Malaysia-MN"] = { "[[予]][[咖啡鐳]]" },
["Melaka"] = { "" },
["Labuan"] = { "" },
["Klang"] = { "[[予]][[伊]][[食鐳]]", "[[予]][[咖啡鐳]]", "[[請]][[啉茶]]" },
["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"] = { "使楔", "楔錢", "點油", "杵" }, --楔? 楔 written as 侁
["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
hvi2vv7tgodegfhsrvi631guehm9kwq
行賄
0
419958
2570059
2026-10-13T04:07:20Z
Hiyuune
50834
Trang mới: “{{also|行贿}} =={{langname|zh}}== {{zh-forms|s=行贿}} ==={{section|pron}}=== {{zh-pron |m=xínghuì |c=hang4 kui2 |j=xing1 hui3 |mn=ml:hêng-hóe/tw:hêng-hòe |mn-t=gian5 iu6 |w=sh:6yin hue5,6ghan hue5 |w_note=<sup>6</sup>ghan-hue<sub>5</sub> - (Thượng Hải) hiện nay hiếm |cat=v }} ==={{section|v}}=== {{head|zh|Động từ}} # {{lb|zh|intransitive}} [[hối lộ]]. ===={{section|syn}}==== {{zh-dial}} ===={{section|see}}==== * {{zh-l|受賄}} {{cat|cmn|…”
2570059
wikitext
text/x-wiki
{{also|行贿}}
=={{langname|zh}}==
{{zh-forms|s=行贿}}
==={{section|pron}}===
{{zh-pron
|m=xínghuì
|c=hang4 kui2
|j=xing1 hui3
|mn=ml:hêng-hóe/tw:hêng-hòe
|mn-t=gian5 iu6
|w=sh:6yin hue5,6ghan hue5
|w_note=<sup>6</sup>ghan-hue<sub>5</sub> - (Thượng Hải) hiện nay hiếm
|cat=v
}}
==={{section|v}}===
{{head|zh|Động từ}}
# {{lb|zh|intransitive}} [[hối lộ]].
===={{section|syn}}====
{{zh-dial}}
===={{section|see}}====
* {{zh-l|受賄}}
{{cat|cmn|Tiếng Quan Thoại nâng cao}}
{{c|zh|Tham nhũng}}
3bnu2riknmv535j3ckzo1b7ccucm4g9
行贿
0
419959
2570060
2026-10-13T04:07:50Z
Hiyuune
50834
Trang mới: “{{also|行賄}} =={{langname|zh}}== {{zh-see|行賄}}”
2570060
wikitext
text/x-wiki
{{also|行賄}}
=={{langname|zh}}==
{{zh-see|行賄}}
8oolgkkzlox7zdv8nyfwqxcncbhlsp8
行賕
0
419960
2570061
2026-10-13T04:09:09Z
Hiyuune
50834
Trang mới: “=={{langname|zh}}== {{zh-forms|s=行赇}} ==={{section|pron}}=== {{zh-pron |m=xíngqiú |c=hang4 kau4 |cat=v }} ==={{section|v}}=== {{head|zh|Động từ}} # {{lb|zh|literary}} [[hối lộ]]. ===={{section|syn}}==== {{zh-dial|行賄}}”
2570061
wikitext
text/x-wiki
=={{langname|zh}}==
{{zh-forms|s=行赇}}
==={{section|pron}}===
{{zh-pron
|m=xíngqiú
|c=hang4 kau4
|cat=v
}}
==={{section|v}}===
{{head|zh|Động từ}}
# {{lb|zh|literary}} [[hối lộ]].
===={{section|syn}}====
{{zh-dial|行賄}}
rmbv5hmr8gxg84pu7345pqz2sj1v936
行赇
0
419961
2570065
2026-10-13T04:18:22Z
Hiyuune
50834
Trang mới: “{{also|行賕}} =={{langname|zh}}== {{zh-see|行賕}}”
2570065
wikitext
text/x-wiki
{{also|行賕}}
=={{langname|zh}}==
{{zh-see|行賕}}
3k0ff8h7fka63pw0bvtv16z2kkxcppj
賄賂
0
419962
2570066
2026-10-13T05:37:56Z
Hiyuune
50834
Trang mới: “{{also|贿赂}} =={{langname|vi}}== {{vi-hantutab}} ==={{section|n}}=== {{vi-noun|sc=Hani}} # {{vi-Han form of|hối lộ}} =={{langname|ja}}== {{ja-kanjitab|わい|ろ|yomi=o}} ==={{section|pron}}=== {{ja-pron|わいろ|acc=1|acc_ref=DJR}} ==={{section|n}}=== {{ja-noun|わいろ}} # [[hối lộ]]. ==={{section|ref}}=== {{reflist}} :* {{R:Kanjipedia Kotoba|0007414800}} {{C|ja|Tham nhũng}} =={{langname|ko}}== {{ko-hanjatab}} ==={{section|n}}=== {{ko-noun|hj|han…”
2570066
wikitext
text/x-wiki
{{also|贿赂}}
=={{langname|vi}}==
{{vi-hantutab}}
==={{section|n}}===
{{vi-noun|sc=Hani}}
# {{vi-Han form of|hối lộ}}
=={{langname|ja}}==
{{ja-kanjitab|わい|ろ|yomi=o}}
==={{section|pron}}===
{{ja-pron|わいろ|acc=1|acc_ref=DJR}}
==={{section|n}}===
{{ja-noun|わいろ}}
# [[hối lộ]].
==={{section|ref}}===
{{reflist}}
:* {{R:Kanjipedia Kotoba|0007414800}}
{{C|ja|Tham nhũng}}
=={{langname|ko}}==
{{ko-hanjatab}}
==={{section|n}}===
{{ko-noun|hj|hangeul=회뢰}}
# {{hanja form of|회뢰|[[hối lộ]]}}
=={{langname|zh}}==
{{zh-forms|s=贿赂}}
==={{section|pron}}===
{{zh-pron
|m=huìlù,tl=y
|c=kui2 lou6,fui2 lou6
|h=pfs=fi-lu;hrs=h:fuiˇ lu˖;gd=yu4 lu4
|j=hui3 lueh4
|md=uōi-lô
|mn=hóe-lō͘
|px=pt,xy:huei3 lou5
|w=sh:5hue lu
|ma=y
|cat=v,n
}}
==={{section|v}}===
{{head|zh|Động từ}}
# {{lb|zh|transitive}} [[hối lộ]].
===={{section|syn}}====
{{zh-dial|行賄}}
==={{section|n}}===
{{head|zh|noun}}
# [[hối lộ]].
===={{section|syn}}====
* {{q|Malaysia|Sigapore}} {{zh-l|咖啡錢}}
* {{q|Mân Tuyền Chương}} {{zh-l|咖啡鐳|tr=ko-pi-lui}}
===={{section|desc}}====
{{CJKV||わいろ|회뢰|hối lộ}}
===={{section|see}}====
* {{zh-l|受賄}}
{{cat|cmn|Tiếng Quan Thoại nâng cao}}
{{c|zh|Tham nhũng}}
44fo6iexcz7jd88k62w9lbc9dzl1fyf
贿赂
0
419963
2570067
2026-10-13T05:38:19Z
Hiyuune
50834
Trang mới: “{{also|賄賂}} =={{langname|zh}}== {{zh-see|賄賂}}”
2570067
wikitext
text/x-wiki
{{also|賄賂}}
=={{langname|zh}}==
{{zh-see|賄賂}}
15ls53ei7nv6u296yfrpqu4l7zhaszf
塞黑
0
419964
2570068
2026-10-13T05:39:39Z
Hiyuune
50834
Trang mới: “=={{langname|zh}}== {{zh-forms}} ==={{section|pron}}=== {{zh-pron |m=Sàihēi |cat=pn }} ==={{section|pr-noun}}=== {{head|zh|Danh từ riêng}} # {{zh-short|塞爾維亞和黑山}} {{C|zh|Nam Tư}}”
2570068
wikitext
text/x-wiki
=={{langname|zh}}==
{{zh-forms}}
==={{section|pron}}===
{{zh-pron
|m=Sàihēi
|cat=pn
}}
==={{section|pr-noun}}===
{{head|zh|Danh từ riêng}}
# {{zh-short|塞爾維亞和黑山}}
{{C|zh|Nam Tư}}
mypc8w7vxj64fbb4et955034ysfahue
塞爾維亞和黑山
0
419965
2570069
2026-10-13T05:41:21Z
Hiyuune
50834
Trang mới: “=={{langname|zh}}== {{zh-forms|s=塞尔维亚和黑山|type=412|Serbia|và|Montenegro}} {{wp|zh:}} ==={{section|pron}}=== {{zh-pron |m=Sài'ěrwéi亚 Hé Hēishān |cat=pn }} ==={{section|pr-noun}}=== {{head|zh|Danh từ riêng}} # {{lb|zh|Trung Quốc đại lục|Hồng Kông}} {{w|Serbia và Montenegro}}. ===={{section|syn}}==== * {{q|Đài Loan}} {{zh-l|塞爾維亞與蒙特內哥羅}}”
2570069
wikitext
text/x-wiki
=={{langname|zh}}==
{{zh-forms|s=塞尔维亚和黑山|type=412|Serbia|và|Montenegro}}
{{wp|zh:}}
==={{section|pron}}===
{{zh-pron
|m=Sài'ěrwéi亚 Hé Hēishān
|cat=pn
}}
==={{section|pr-noun}}===
{{head|zh|Danh từ riêng}}
# {{lb|zh|Trung Quốc đại lục|Hồng Kông}} {{w|Serbia và Montenegro}}.
===={{section|syn}}====
* {{q|Đài Loan}} {{zh-l|塞爾維亞與蒙特內哥羅}}
htz7c57n5qnwah44yjy3d0jyrt0ow37
塞尔维亚和黑山
0
419966
2570070
2026-10-13T05:41:45Z
Hiyuune
50834
Trang mới: “=={{langname|zh}}== {{zh-see|塞爾維亞和黑山}}”
2570070
wikitext
text/x-wiki
=={{langname|zh}}==
{{zh-see|塞爾維亞和黑山}}
sa6thgz823byxqpnt6j4tplfieazs3e
Bản mẫu:sn-infl-strong
10
419967
2570075
2026-10-13T05:59:28Z
Hiyuune
50834
Trang mới: “{{#invoke:checkparams|error}}<!-- Validate template parameters -->{{inflection-table-top|title=Biến tố của -''{{{1}}}''|palette=blue|tall=yes}} ! colspan=2 class="outer" | số ít ! colspan=2 class="outer" | số nhiều |- | ! lớp 1 | {{l|sn|{{{c1|mu{{{1}}}}}}}} ! lớp 2 | {{l|sn|{{{c2|va{{{1}}}}}}}} |- | ! lớp 3 | {{l|sn|{{{c3|mu{{{1}}}}}}}} ! lớp 4 | {{l|sn|{{{c4|mi{{{1}}}}}}}} |- | ! lớp 5 | {{l|sn|{{{c5|{{#switch:{{#invoke:string/templates|s…”
2570075
wikitext
text/x-wiki
{{#invoke:checkparams|error}}<!-- Validate template parameters
-->{{inflection-table-top|title=Biến tố của -''{{{1}}}''|palette=blue|tall=yes}}
! colspan=2 class="outer" | số ít
! colspan=2 class="outer" | số nhiều
|- |
! lớp 1
| {{l|sn|{{{c1|mu{{{1}}}}}}}}
! lớp 2
| {{l|sn|{{{c2|va{{{1}}}}}}}}
|- |
! lớp 3
| {{l|sn|{{{c3|mu{{{1}}}}}}}}
! lớp 4
| {{l|sn|{{{c4|mi{{{1}}}}}}}}
|- |
! lớp 5
| {{l|sn|{{{c5|{{#switch:{{#invoke:string/templates|sub|{{#switch:{{#invoke:string/templates|sub|{{{1}}}||2}}|ch=j|ts=dz|pf=pf|{{#invoke:string/templates|sub|{{{1}}}||2}}}}{{#invoke:string/templates|sub|{{{1}}}|3}}||1}}|t=d|k=g|p=b|{{#invoke:string/templates|sub|{{#switch:{{#invoke:string/templates|sub|{{{1}}}||2}}|ch=j|ts=dz|pf=pf|{{#invoke:string/templates|sub|{{{1}}}||2}}}}{{#invoke:string/templates|sub|{{{1}}}|3}}||1}}}}{{#invoke:string/templates|sub|{{#switch:{{#invoke:string/templates|sub|{{{1}}}||2}}|ch=j|ts=dz|pf=pf|{{#invoke:string/templates|sub|{{{1}}}||2}}}}{{#invoke:string/templates|sub|{{{1}}}|3}}|2}}}}}}}
! lớp 6
| {{l|sn|{{{c6|ma{{{1}}}}}}}}
|- |
! lớp 7
| {{l|sn|{{{c7|chi{{{1}}}}}}}}
! lớp 8
| {{l|sn|{{{c8|zvi{{{1}}}}}}}}
|- |
! lớp 9
| {{l|sn|{{{c9|{{#switch:{{#invoke:string/templates|sub|{{{1}}}||2}}|ts|pf={{{1}}}|{{#switch:{{#invoke:string/templates|sub|{{{1}}}||1}}|t=nh|k=h|d=nd|r=nd|p=mh|v=mb|{{#invoke:string/templates|sub|{{{1}}}||1}}}}{{#invoke:string/templates|sub|{{{1}}}|2}}}}}}}}}
! lớp 10
| {{l|sn|{{{c10|{{{c9|{{#switch:{{#invoke:string/templates|sub|{{{1}}}||2}}|ts|pf={{{1}}}|{{#switch:{{#invoke:string/templates|sub|{{{1}}}||1}}|t=nh|k=h|d=nd|r=nd|p=mh|v=mb|{{#invoke:string/templates|sub|{{{1}}}||1}}}}{{#invoke:string/templates|sub|{{{1}}}|2}}}}}}}}}}}}
|- |
! lớp 11
| {{l|sn|{{{c11|ru{{{1}}}}}}}}
!
|
|- |
! lớp 12
| {{l|sn|{{{c12|ka{{{1}}}}}}}}
! lớp 13
| {{l|sn|{{{c13|tu{{{1}}}}}}}}
|- |
! lớp 14
| {{l|sn|{{{c14|u{{{1}}}}}}}}
!
|
|- |
! lớp 15
| {{l|sn|{{{c15|ku{{{1}}}}}}}}
!
|
|-
| class="separator" colspan="3" |
| class="blank-end-row" rowspan="4" |
|-
! colspan=3 class="outer" | lớp định vị cách
|-
! colspan=1 | lớp 16
! colspan=1 | lớp 17
! colspan=1 | lớp 18
|-
| {{l|sn|{{{c16|pa{{{1}}}}}}}}
| {{l|sn|{{{c17|ku{{{1}}}}}}}}
| {{l|sn|{{{c18|mu{{{1}}}}}}}}
{{inflection-table-bottom}}<!--
--><noinclude>{{documentation}}{{tcat|adecl}}</noinclude>
puog28hu5u40fov0wmvqbag2l94m2ao
Bản mẫu:frp-noun
10
419968
2570077
2026-10-13T06:25:20Z
Hiyuune
50834
Trang mới: “{{#invoke:frp-headword|show|Danh từ}}<!-- --><noinclude>{{documentation}}{{tcat|hw}}</noinclude>”
2570077
wikitext
text/x-wiki
{{#invoke:frp-headword|show|Danh từ}}<!--
--><noinclude>{{documentation}}{{tcat|hw}}</noinclude>
9ht79yboayql1r3vsrz0s3l44ylc5n9
Bản mẫu:srd-noun
10
419969
2570079
2026-10-13T06:28:59Z
Hiyuune
50834
Hiyuune đã đổi [[Bản mẫu:srd-noun]] thành [[Bản mẫu:sc-noun]] qua đổi hướng
2570079
wikitext
text/x-wiki
#đổi [[Bản mẫu:sc-noun]]
mnd5xghljk93z8akcluo5gh5ml0xe0t
Bản mẫu:sn-adj
10
419970
2570080
2026-10-13T06:41:35Z
Hiyuune
50834
Trang mới: “<includeonly>{{head|sn|Tính từ|head=-{{#if:{{{1|}}}|{{{1}}}|{{pagename}}<sup title="thiếu thanh điệu">?</sup>{{categorize|sn|Yêu cầu thanh điệu mục từ tiếng Shona}}}}}}</includeonly><!-- --><noinclude>{{tcat|hw}}{{documentation}}</noinclude>”
2570080
wikitext
text/x-wiki
<includeonly>{{head|sn|Tính từ|head=-{{#if:{{{1|}}}|{{{1}}}|{{pagename}}<sup title="thiếu thanh điệu">?</sup>{{categorize|sn|Yêu cầu thanh điệu mục từ tiếng Shona}}}}}}</includeonly><!--
--><noinclude>{{tcat|hw}}{{documentation}}</noinclude>
6612q779a2w4ugu6dty1lrj9ma40m1k
chena
0
419971
2570081
2026-10-13T06:41:59Z
Hiyuune
50834
Trang mới: “{{also|Chena}} =={{langname|ccc}}== ==={{section|n}}=== {{head|ccc|Danh từ}} # [[đá]]. =={{langname|frp}}== ==={{section|n}}=== {{frp-noun|f}} {{tlb|frp|orbl}} # [[chó]] [[cái]]. #: {{syn|frp|cagne}} #: {{cot|frp|chin|g=m}} ==={{section|ref}}=== * {{R:frp:DFP|chienne}} * {{R:frp:LTA|14290}} ==={{section|further}}=== * {{R:roa:AIS|la cagna|1098}} * {{R:roa:ALF|279}} * {{R:FEW|2|192|canis}} =={{langname|nrf}}== ==={{section|etym}}=== {{rfe|nrf}} ==={{section…”
2570081
wikitext
text/x-wiki
{{also|Chena}}
=={{langname|ccc}}==
==={{section|n}}===
{{head|ccc|Danh từ}}
# [[đá]].
=={{langname|frp}}==
==={{section|n}}===
{{frp-noun|f}} {{tlb|frp|orbl}}
# [[chó]] [[cái]].
#: {{syn|frp|cagne}}
#: {{cot|frp|chin|g=m}}
==={{section|ref}}===
* {{R:frp:DFP|chienne}}
* {{R:frp:LTA|14290}}
==={{section|further}}===
* {{R:roa:AIS|la cagna|1098}}
* {{R:roa:ALF|279}}
* {{R:FEW|2|192|canis}}
=={{langname|nrf}}==
==={{section|etym}}===
{{rfe|nrf}}
==={{section|pronoun}}===
{{head|nrf|Đại từ}}
# {{lb|nrf|Guernsey}} [[là|Là]].
=={{langname|sc}}==
==={{section|etym}} 1===
Từ {{inh|sc|la|cena||bữa tối}}.
===={{section|pron}}====
* {{IPA|sc|/ˈkena/}}
===={{section|n}}====
{{sc-noun|f|chenas}}
# [[bữa tối]].
====={{section|drv}}=====
* {{l|sc|chenare}}
==={{section|etym}} 2===
Từ {{der|sc|el|κενά}}.
===={{section|preposition}}====
{{head|sc|Giới từ}}
# [[không có|Không có]].
#: {{syn|sc|sentza|chentza|sine|sene|chene|chentze|sena}}
=={{langname|sn}}==
==={{section|adj}}===
{{sn-adj|chená}}
# Màu [[trắng]].
===={{section|infl}}====
{{sn-infl-strong|chená}}
{{C|sn|Màu sắc}}
hnw0af8g6ngko4l5qqirw5zzj3t84oh
Thể loại:Danh từ đếm được tiếng Franco-Provençal
14
419972
2570082
2026-10-13T06:56:57Z
Hiyuune
50834
Trang mới: “{{auto cat}}”
2570082
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:Danh từ giống cái tiếng Franco-Provençal
14
419973
2570083
2026-10-13T06:57:49Z
Hiyuune
50834
Trang mới: “{{auto cat}}”
2570083
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Thể loại:Danh từ theo giống tiếng Franco-Provençal
14
419974
2570084
2026-10-13T06:58:29Z
Hiyuune
50834
Trang mới: “{{auto cat}}”
2570084
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
báo đời
0
419975
2570085
2026-10-13T06:58:58Z
TienMinh-mun6xnChing
57893
/* */
2570085
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|adj}}===
{{vi-adj}}
# {{lb|vi|thông tục}} Chỉ người có hành vi [[gây rối]], [[phá đám]] nơi công cộng.
==={{section|ref}}===
{{R:Tratu}}
nc8on1f0f0vgv6nq5rq80uqo8vt3huz
2570086
2570085
2026-10-13T06:59:06Z
TienMinh-mun6xnChing
57893
2570086
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|adj}}===
{{vi-adj}}
# {{lb|vi|thông tục}} Chỉ người có hành vi [[gây rối]], [[phá đám]] nơi công cộng.
909lm374ifsmwparuu1m8fmbkvjkyej
2570087
2570086
2026-10-13T07:00:45Z
TienMinh-mun6xnChing
57893
2570087
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|adj}}===
{{vi-adj}}
# {{lb|vi|thông tục}} Chỉ người có hành vi [[gây rối]], [[phá đám]] nơi công cộng.
#: {{syn|vi|báo thủ}}
7kpbv5jx3h9i3mgpcd44mceziot4ku7
mắng yêu
0
419976
2570088
2026-10-13T07:05:19Z
TienMinh-mun6xnChing
57893
/* */
2570088
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# {{lb|vi|thông tục}} Chỉ lời lẽ tuy là [[trách mắng]] nhưng mang lòng [[yêu thương]], thường là vì lo lắng hoặc muốn tốt.
==={{section|ref}}===
{{R:Tratu}}
ecgtbtr29wwc8mbynhwqd7krxpvnlum
2570089
2570088
2026-10-13T07:06:00Z
TienMinh-mun6xnChing
57893
2570089
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|verb}}===
{{vi-verb}}
# {{lb|vi|thông tục}} Chỉ lời lẽ tuy là [[trách mắng]] nhưng mang lòng [[yêu thương]], thường là vì lo lắng hoặc muốn tốt.
avd3zwg8bnzun2025t9jn7yxnkx8hyr
2570091
2570089
2026-10-13T07:06:31Z
TienMinh-mun6xnChing
57893
2570091
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|verb}}===
{{vi-verb}}
# {{lb|vi|thông tục}} Chỉ lời lẽ tuy là [[trách mắng]] nhưng mang lòng [[yêu thương]], thường là đến từ [[lo lắng]] hoặc vì muốn tốt hơn.
mno4gbrw9qvpveqi5psfucxgb98kdl2
câm nín
0
419977
2570092
2026-10-13T07:11:18Z
TienMinh-mun6xnChing
57893
/* */
2570092
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|adj}}===
{{vi-adj}}
# [[nín lặng|Nín lặng]], không nói một lời.
#: {{ux|vi|Ngồi '''câm nín'''.}}
==={{section|ref}}===
{{R:Tratu}}
kaxbpyayg5cmytg8o2l3l5veorciuxo
người trần thuật
0
419978
2570095
2026-10-13T07:17:21Z
TienMinh-mun6xnChing
57893
/* */
2570095
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# [[nhân vật|Nhân vật]], [[hình tượng]] do [[tác giả]] tạo dựng, có vai trò kể lại toàn bộ câu chuyện hoặc [[trực tiếp]] tham gia, góp mặt trong câu chuyện.
==={{section|ref}}===
{{R:Tratu}}
33b0gvw8go46xeu44cndmq99fcl6lku
2570096
2570095
2026-10-13T07:17:47Z
TienMinh-mun6xnChing
57893
2570096
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun|head=[[người]] [[trần thuật]]}}
# [[nhân vật|Nhân vật]], [[hình tượng]] do [[tác giả]] tạo dựng, có vai trò kể lại toàn bộ câu chuyện hoặc [[trực tiếp]] tham gia, góp mặt trong câu chuyện.
jykmlqbrjzdfjlka14u3ckz5yic9sgn
2570097
2570096
2026-10-13T07:18:43Z
TienMinh-mun6xnChing
57893
TienMinh-mun6xnChing đã đổi [[người trần thuật]] thành [[người kể chuyện]]: tạo trang mới
2570096
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun|head=[[người]] [[trần thuật]]}}
# [[nhân vật|Nhân vật]], [[hình tượng]] do [[tác giả]] tạo dựng, có vai trò kể lại toàn bộ câu chuyện hoặc [[trực tiếp]] tham gia, góp mặt trong câu chuyện.
jykmlqbrjzdfjlka14u3ckz5yic9sgn
2570099
2570097
2026-10-13T07:18:58Z
TienMinh-mun6xnChing
57893
TienMinh-mun6xnChing đã đổi [[người kể chuyện]] thành [[người trần thuật]] qua đổi hướng: Lùi lại
2570096
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun|head=[[người]] [[trần thuật]]}}
# [[nhân vật|Nhân vật]], [[hình tượng]] do [[tác giả]] tạo dựng, có vai trò kể lại toàn bộ câu chuyện hoặc [[trực tiếp]] tham gia, góp mặt trong câu chuyện.
jykmlqbrjzdfjlka14u3ckz5yic9sgn
người kể chuyện
0
419980
2570100
2026-10-13T07:18:58Z
TienMinh-mun6xnChing
57893
TienMinh-mun6xnChing đã đổi [[người kể chuyện]] thành [[người trần thuật]] qua đổi hướng: Lùi lại
2570100
wikitext
text/x-wiki
#đổi [[người trần thuật]]
2sew948neaa404g7mektp733r91kvs7
khinh công
0
419981
2570101
2026-10-13T07:25:07Z
TienMinh-mun6xnChing
57893
/* */
2570101
wikitext
text/x-wiki
=={{langname|vi}}==
{{wikipedia}}
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# {{lb|vi|võ thuật}} [[võ công|Võ công]] dựa vào [[sức bật]] [[nhảy]] của đôi [[chân]] để có [[khả năng]] bay lượn trên [[không trung]].
5yfzosbws7oxjsdckrs98lvhhtqq4gz
đa nhân cách
0
419982
2570103
2026-10-13T07:29:54Z
TienMinh-mun6xnChing
57893
/* */
2570103
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# [[bệnh lý|Bệnh lý]] [[rối loạn]] [[tâm thần]] nơi một người có nhiều [[nhân cách]], có dấu hiệu [[chuyển đổi]] [[nhân cách]] một cách [[bất chợt]], [[đột ngột]].
53pnws9wxd83b1v1feppfx8m14zllgd
vĩ cuồng
0
419983
2570104
2026-10-13T07:31:49Z
TienMinh-mun6xnChing
57893
/* */
2570104
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# [[bệnh lý|Bệnh lý]] [[rối loạn]] [[nhân cách]] [[ái kỷ]].
djyk1joi9o1y9ybb2ij8qa5aw73l7dn
2570105
2570104
2026-10-13T07:32:41Z
TienMinh-mun6xnChing
57893
2570105
wikitext
text/x-wiki
=={{langname|vi}}==
{{Wikipedia|Rối loạn nhân cách ái kỷ}}
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# [[bệnh lý|Bệnh lý]] [[rối loạn]] [[nhân cách]] [[ái kỷ]].
m62ei1elfbxd3hll2wba5lzst4fqmzc
ái kỷ
0
419984
2570106
2026-10-13T07:35:48Z
TienMinh-mun6xnChing
57893
Trang mới: “=={{langname|vi}}== ==={{section|pron}}=== {{vi-pron}} ==={{section|noun}}=== {{vi-noun}} # Tự [[yêu]] [[bản thân]] quá mức, thiếu [[cảm xúc]] về những người [[xung quanh]].”
2570106
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# Tự [[yêu]] [[bản thân]] quá mức, thiếu [[cảm xúc]] về những người [[xung quanh]].
7dezjktnuvtrrh11aasl12in83cvtoa
ái nhi
0
419985
2570107
2026-10-13T07:39:06Z
TienMinh-mun6xnChing
57893
/* */
2570107
wikitext
text/x-wiki
=={{langname|vi}}==
{{wikipedia)}
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# [[bệnh lý|Bệnh lý]] [[rối loạn]] [[tâm thần]] khi một [[người]] [[trưởng thành]] bị [[hấp dẫn]] bởi [[trẻ em]] trước [[tuổi]] [[dậy thì]].
60b34tsnux8wj1viba103fezoiaqj3c
2570108
2570107
2026-10-13T07:39:15Z
TienMinh-mun6xnChing
57893
2570108
wikitext
text/x-wiki
=={{langname|vi}}==
{{Wikipedia}}
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# [[bệnh lý|Bệnh lý]] [[rối loạn]] [[tâm thần]] khi một [[người]] [[trưởng thành]] bị [[hấp dẫn]] bởi [[trẻ em]] trước [[tuổi]] [[dậy thì]].
5d7rmtthnuk8fy51kj9zehadivwhrx7
chân ái
0
419986
2570110
2026-10-13T07:42:35Z
TienMinh-mun6xnChing
57893
/* */
2570110
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# [[thể hiện|Thể hiện]], [[bộc lộ]] [[tình cảm]], [[cảm xúc]] khi được [[yêu thương]] hết mình.
t8tbatj7azjs6wqkirtn1c4409zhazi
2570111
2570110
2026-10-13T07:42:59Z
TienMinh-mun6xnChing
57893
2570111
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# [[thể hiện|Thể hiện]], [[bộc lộ]] [[khoái cảm]], [[cảm xúc]] khi được [[yêu thương]] hết mình.
eavn4dwled7v4zk1n06g4ncm9gafv8u
Wiktionary:Main Page
4
419987
2570114
2026-10-13T07:48:18Z
TienMinh-mun6xnChing
57893
/* */
2570114
wikitext
text/x-wiki
#đổi [[Wiktionary:Trang Chính]]
fci93qegizmtq8hyc93r46mpa7nj435
Wiktionary:Trang chính
4
419988
2570115
2026-10-13T07:49:02Z
TienMinh-mun6xnChing
57893
/* */
2570115
wikitext
text/x-wiki
#đổi [[Wiktionary:Trang Chính]]
fci93qegizmtq8hyc93r46mpa7nj435
Wiktionary:Trang đầu
4
419990
2570119
2026-10-13T07:50:37Z
TienMinh-mun6xnChing
57893
TienMinh-mun6xnChing đã đổi [[Wiktionary:Trang đầu]] thành [[Trang đầu]] qua đổi hướng: Lùi lại
2570119
wikitext
text/x-wiki
#đổi [[Trang đầu]]
h7bg67sbl8eebjysntvjfw2qodxum9f
2570120
2570119
2026-10-13T07:51:05Z
TienMinh-mun6xnChing
57893
/* */
2570120
wikitext
text/x-wiki
#đổi [[Wiktionary:Trang Chính]]
fci93qegizmtq8hyc93r46mpa7nj435
trang chủ
0
419991
2570121
2026-10-13T07:54:18Z
TienMinh-mun6xnChing
57893
/* */
2570121
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# [[trang|Trang]] [[chính]] và là trang [[mở đầu]] của một website, thường [[giới thiệu]] [[tổng quan]] về [[toàn bộ]] [[nội dung]] [[chứa đựng]] trong website, và có các [[siêu liên kết]] [[cho phép]] [[kết nối]] với các [[tài liệu]] [[liên quan]].
==={{section|ref}}===
{{R:Tratu}}
llo8y19xe7qa73y0ueufkwzexrumaqq
பரப்பளவு
0
419992
2570122
2026-10-13T07:57:45Z
Hiyuune
50834
Trang mới: “=={{langname|ta}}== {{wp|ta:}} ==={{section|etym}}=== {{com+|ta|pos=danh từ|பரப்பு|அளவு}}. Cùng gốc với {{cog|ml|പരപ്പളവ്}}. ==={{section|pron}}=== {{ta-IPA}} * {{audio|ta|Ta-பரப்பளவு.ogg}} ==={{section|n}}=== {{ta-noun}} # [[diện tích|Diện tích]]. #: {{syn|ta|பரப்பு}} ===={{section|decl}}==== {{ta-decl}} ==={{section|ref}}=== * {{R:Cre-A 1992}}”
2570122
wikitext
text/x-wiki
=={{langname|ta}}==
{{wp|ta:}}
==={{section|etym}}===
{{com+|ta|pos=danh từ|பரப்பு|அளவு}}. Cùng gốc với {{cog|ml|പരപ്പളവ്}}.
==={{section|pron}}===
{{ta-IPA}}
* {{audio|ta|Ta-பரப்பளவு.ogg}}
==={{section|n}}===
{{ta-noun}}
# [[diện tích|Diện tích]].
#: {{syn|ta|பரப்பு}}
===={{section|decl}}====
{{ta-decl}}
==={{section|ref}}===
* {{R:Cre-A 1992}}
fdkzhihywzixgwb3oikt7du47qjv6nx
siêu liên kết
0
419993
2570123
2026-10-13T07:58:48Z
TienMinh-mun6xnChing
57893
Trang mới: “=={{langname|vi}}== ==={{section|pron}}=== {{vi-pron}} ==={{section|noun}}=== {{vi-noun}} # Đường [[liên kết]] [[chuyển hướng]] đến vị trí khác nhưng cùng trang đó hoặc trỏ đến một trang khác.”
2570123
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# Đường [[liên kết]] [[chuyển hướng]] đến vị trí khác nhưng cùng trang đó hoặc trỏ đến một trang khác.
74aiwns115i3wpaxaa4ucxdja5v4ob4
2570124
2570123
2026-10-13T07:59:40Z
TienMinh-mun6xnChing
57893
2570124
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# Đường [[liên kết]] [[chuyển hướng]] đến vị trí khác nhưng cùng trang đó hoặc trỏ đến một trang khác.
===={{section|trans}}====
{{trans-top|đường liên kết chuyển hướng}}
* {{langname|en}}: [[hyperlink]]
{{trans-bottom}}
pz1ahkcsa82fb6hse1q7x8f4q7jagsc
mầy mò
0
419994
2570126
2026-10-13T08:02:36Z
TienMinh-mun6xnChing
57893
/* */
2570126
wikitext
text/x-wiki
=={{langname|vi}}==
==={{section|pron}}===
{{vi-pron}}
==={{section|noun}}===
{{vi-noun}}
# {{lb|vi|Phương ngữ}} {{see-entry|mày mò}}.
===={{section|ref}}====
{{R:Tratu}}
j5ozvrg7dr6yg3q7udz8fx6y7p73its
Thảo luận Wiktionary:Thảo luận/Lưu 15
5
419995
2570130
2026-10-13T08:38:52Z
Hiyuune
50834
Lưu trữ
2570130
wikitext
text/x-wiki
== Upcoming Dark Mode user interface rollout for anonymous Wikimedia sites users ==
<div lang="en" dir="ltr">
{{int:Hello}} Wikimedians,
Apologies if this message is not in your language. {{int:please-translate}}.
The [[mw:Special:MyLanguage/Reading/Web|Reader Experience team]] will launch the Dark mode feature for anonymous users on all Wikimedia sites, including yours, on October 29, 2025.
[[:en:Special:MyLanguage/Light-on-dark color scheme|Dark mode]] is an option that allows users to view pages in light-coloured text, and icons on a dark background. Once it is available for anonymous users, they can enable it when using various devices. More information on ways to enable it can be found on [[:en:Special:MyLanguage/Wikipedia:Dark mode#Options for anyone|this page]].
Given many pages are still not compatible with dark mode this will be an opt-in feature and not automatically apply to pages.
Dark mode requires modifications to content pages and templates, and since our initial launch [https://diff.wikimedia.org/2024/07/17/dark-modes-bright-future-how-dark-mode-will-transform-wikipedias-accessibility/ in July 2024], we have been working with communities and helping them prepare for dark mode. Before the rollout, it is essential that template authors and technical contributors test dark mode and read [[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-04|this page]] to learn how to make pages Dark mode-ready and address any compatibility issues found in templates.
We will fix most color compatibility issues only on the most-viewed pages on projects with over 5 million monthly page views. Technical contributors with an account should opt into dark mode currently using preferences or settings and test pages and seek help before the release to ensure everything complies before the enablement.
If you have any questions or need help, please [[mw:Special:MyLanguage/Talk:Reading/Web/Accessibility for reading#|contact the Reader Experience team]] for support.
Thank you!
</div>
<bdi lang="en" dir="ltr">[[User:UOzurumba (WMF)|UOzurumba (WMF)]]</bdi> 02:08, ngày 30 tháng 9 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:UOzurumba_(WMF)/sandbox_Dark_mode_deployment_mass_message_list_(October_2025)&oldid=29358561 -->
== Bản tin Kỹ thuật: Tuần 41-2025 ==
<section begin="technews-2025-W41"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/41|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Help:Edit check#paste|Kiểm tra Nội dung Dán (Paste Check)]] là một tính năng Kiểm tra Sửa đổi mới để giúp phòng tránh và chống lại các hành vi vi phạm bản quyền. Khi biên tập viên dán văn bản vào bài viết, Kiểm tra Nội dung Dán sẽ nhắc họ xác nhận nguồn gốc và giấy phép của nội dung được dán đó. Bắt đầu từ thứ 4, ngày 8 tháng 10, [[phab:T403680|22 wiki sẽ thử nghiệm tính năng Kiểm tra Nội dung Dán]]. Kiểm tra Nội dung Dán sẽ giúp các tình nguyện viên mới hiểu và tuân theo các quy định và hướng dẫn cần thiết để thực hiện những đóng góp mang tính xây dựng cho các dự án Wikipedia.
'''Cập nhật cho biên tập viên'''
* Các thiết bị di động sẽ hiển thị các bài viết trên trang di động trực tiếp trên tên miền chuẩn (như <code>en.wikipedia.org</code>), thay vì thông qua việc đổi hướng tới tên miền "m" (như <code>en.m.wikipedia.org</code>). Thay đổi này nhằm cải thiện hiệu năng. Nó sẽ được kích hoạt trên các trang Wikipedia trong tuần này. Liên kết URL di động và tùy chọn "Phiên bản máy tính" vẫn sẽ tiếp tục khả dụng. [[mw:Requests for comment/Mobile domain sunsetting/2025 Announcement|Tìm hiểu thêm]]. [https://phabricator.wikimedia.org/T214998]
* [[mw:Special:MyLanguage/Help:CirrusSearch#creationdate and lasteditdate|Bộ lọc ngày]] mới, <code dir=ltr>creationdate:</code> và <code dir=ltr>lasteditdate:</code>, nay có sẵn trong bộ máy tìm kiếm của wiki. Những bộ lọc này cho phép người dùng lọc kết quả tìm kiếm theo bản sửa đổi đầu tiên hoặc cuối cùng của trang. Bộ lọc hỗ trợ các toán tử so sánh (v.d. <code dir=ltr>>2024</code>) và ngày dạng tương đối (v.d. <code dir=ltr>today-1d</code>), giúp việc tìm nội dung hoặc trang được cập nhật gần đây trong khoảng năm cụ thể trở nên dễ dàng hơn. [https://phabricator.wikimedia.org/T403593]
* [[f:|Wikifunctions]] nay hỗ trợ văn bản giàu tính chất (rich text) trong lời gọi hàm nhúng trên 150 wiki đã kích hoạt nó. Để giới thiệu tính năng này, nhóm đã tạo [[f:Z26333|bảng biến cách tiếng Latin]] mà biên tập viên Wiktionary có thể sử dụng để tự động tạo ra các dạng danh từ, nhằm tạo ra những kết quả rõ ràng và được định dạng — xem một [[f:Wikifunctions:Embedded function calls/Wiktionary tables demonstration|ví dụ đầu ra]] cụ thể. Nếu bạn cần hỗ trợ hay có bất kỳ phản hồi nào, vui lòng [[f:Wikifunctions:Project chat|liên hệ nhóm Wikifunctions]]. [https://phabricator.wikimedia.org/T397402]
* Một liên kết sửa đổi nay sẽ hiển thị trong hộp thể loại trên các trang bài viết đối với người dùng đã đăng nhập, khi nhấn vào sẽ khởi động trực tiếp hộp thoại thể loại bằng Trình Soạn thảo Trực quan (VisualEditor). [https://phabricator.wikimedia.org/T291691]
* [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:34}} {{PLURAL:34|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, tuần trước đã có vấn đề khi tải các tập tin pdf và hiện nó đã được giải quyết. [https://phabricator.wikimedia.org/T405957]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Trường <code dir=ltr>rev_sha1</code> trong bảng cơ sở dữ liệu bản sửa đổi đang chuẩn bị được loại bỏ để thay thế bằng trường <code dir=ltr>content_sha1</code> trong bảng cơ sở dữ liệu nội dung. Xem [https://lists.wikimedia.org/hyperkitty/list/cloud@lists.wikimedia.org/thread/2D2M3SP4WHR6BXXKTZ2PBLZQYR3EGQVR/ thông báo này] để biết thêm thông tin.
* [[mw:Special:MyLanguage/Reading/Web|Nhóm Trải nghiệm Người đọc]] sẽ triển khai giao diện người dùng [[w:en:Light-on-dark color scheme|Chế độ Tối]] trên tất cả các trang Wikimedia vào ngày 29 tháng 10 năm 2025. Tất cả thành viên vô danh trên các trang Wikimedia sẽ có tùy chọn kích hoạt bảng màu có văn bản màu sáng trên nền tối. Chế độ này được thiết kế để cung cấp trải nghiệm đọc thoải mái hơn, đặc biệt trong những trường hợp thiếu sáng. Tác giả bản mẫu và biên tập viên kỹ thuật được khuyến khích [[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-04|tìm hiểu cách chuẩn bị các trang để tương thích với Chế độ tối]] và giải quyết bất kỳ vấn đề tương thích nào xuất hiện trong các bản mẫu trên wiki của họ trước thời điểm kích hoạt. Vui lòng liên hệ nhóm Web nếu có bất kỳ câu hỏi hay cần sự trợ giúp nào trên [[mw:Talk:Reading/Web/Accessibility for reading#|trang thảo luận này]] trước ngày kích hoạt. [https://phabricator.wikimedia.org/T395628]
* Bắt đầu từ thứ 2, ngày 6 tháng 10, các điểm cuối API theo đường dẫn <code>rest.php</code> sẽ được định tuyến lại qua Cổng API nội bộ mới. Mỗi wiki sẽ được cập nhật dựa trên các nhóm phát hành tiêu chuẩn, với tổng lưu lượng truy cập tăng dần theo thời gian. Thay đổi này dự kiến không gây ra bất kỳ sự gián đoạn gì. Nếu phát hiện thấy có bất kỳ vấn đề nào, vui lòng tạo tác vụ Phabricator gửi lên [[phab:tag/serviceops/|bảng của nhóm Vận hành Dịch vụ]]. [https://phabricator.wikimedia.org/T400130]
* [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.22|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/41|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W41"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:23, ngày 6 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29400897 -->
== <span lang="en" dir="ltr">Have your say: vote for the 2025 Board of Trustees</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Hello all,
The voting period for the [[m:Special:MyLanguage/Wikimedia Foundation elections/2025|2025 Board of Trustees election]] is now open. Candidates are running for two (2) seats on the Board.
To check your voter eligibility, please visit the [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Voter eligibility guidelines|voter eligibility page]].
Learn more about them by [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Candidates|reading their application statements and watch their candidacy videos]].
When you are ready, go to the [[m:Special:SecurePoll/vote/405|SecurePoll voting page to vote]].
'''The vote is open from October 8 at 00:00 UTC to October 22 at 23:59 UTC.'''
Best regards,
Abhishek Suryawanshi<br />Chair, Elections Committee<section end="announcement-content" />
</div>
[[Thành viên:MediaWiki message delivery|MediaWiki message delivery]] ([[Thảo luận Thành viên:MediaWiki message delivery|thảo luận]]) 04:49, ngày 9 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:RamzyM (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29360896 -->
== Bản tin Kỹ thuật: Tuần 42-2025 ==
<section begin="technews-2025-W42"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/42|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Tuần trước, chúng tôi đã tiến hành triển khai những cải tiến về các tính năng bảo mật tài khoản và xác thực hai yếu tố (2FA) trên tất cả các wiki. Những thay đổi đó bao gồm cải tiến giao diện người dùng cho trang [https://auth.wikimedia.org/metawiki/wiki/Special:AccountSecurity Đặc biệt:Bảo mật tài khoản], hỗ trợ nhiều phương thức xác thực 2FA thông qua các ứng dụng xác thực và khóa bảo mật di động (trước đây người dùng chỉ có thể kích hoạt một phương thức xác thực), và mô đun Mã Khôi phục mới giúp giảm thiểu tình trạng khóa tài khoản do mất ứng dụng và thiết bị xác thực hai yếu tố. Là một phần của dự án [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]], quá trình này sẽ tiếp tục trong phần còn lại của năm 2025 để cải thiện nhiều hơn trải nghiệm người dùng, cùng việc thêm hỗ trợ cho mã khóa làm phương thức xác thực thứ hai thay thế.
'''Cập nhật cho biên tập viên'''
* Một phần khác của dự án Bảo mật tài khoản là cung cấp 2FA cho tất cả người dùng. Bên cạnh biên tập viên có quyền nâng cao, chẳng hạn như bảo quản viên và hành chính viên, 40% biên tập viên nay có quyền truy cập vào 2FA. Bạn có thể kiểm tra xem bạn có quyền truy cập đó không tại [https://auth.wikimedia.org/metawiki/wiki/Special:AccountSecurity Đặc biệt: Bảo mật tài khoản]. Hướng dẫn kích hoạt có trên trang được liên kết theo. Kế hoạch là tiếp tục tăng cường tính khả dụng nếu xác định rằng khả năng hỗ trợ người dùng có thể hỗ trợ việc sử dụng toàn cục của nó. [https://phabricator.wikimedia.org/T400579]
* Tuần này, người dùng trên các wiki mà mặc định đã có sẵn tính năng [[mw:Special:MyLanguage/Talk pages project/Usability|Cải tiến Khả năng Sử dụng]] trên trang thảo luận (tất cả ''trừ'' 12 wiki được liệt kê trong tác vụ [[phab:T379264|T379264]]) sẽ có được khả năng gửi lời cảm ơn bình luận trực tiếp trên trang thảo luận mà nó xuất hiện. Trước thay đổi này, việc cảm ơn chỉ có thể được thực hiện bằng cách truy cập lịch sử sửa đổi của trang thảo luận. Bạn có thể [[diffblog:2025/10/13/revolutionizing-gratitude-a-new-era-of-thanking-comments/|tìm hiểu thêm về thay đổi này]]. [https://phabricator.wikimedia.org/T366095]
* Người dùng chưa [[Special:Preferences#mw-prefsection-personal-email|xác thực địa chỉ email của mình]] sẽ sớm nhận thông báo hàng tháng nhắc họ làm điều này. Điều này là bởi vì người dùng đã xác thực email của họ có thể dễ dàng khôi phục tài khoản của mình hơn. Những lời nhắc này sẽ không được gửi nếu người dùng không hoạt động hoặc đã loại bỏ email chưa được xác thực khỏi tài khoản của mình. [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Email_confirmation][https://phabricator.wikimedia.org/T58074]
* [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, đã có một bản sửa lỗi nhằm giải quyết một lỗi thỉnh thoảng xảy ra khi lưu các đoạn đã được dịch trong công cụ Dịch Nội dung, cùng với đó các thông báo lỗi có liên quan giờ dễ nhìn hơn. [https://phabricator.wikimedia.org/T376531]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Nhóm Công cụ Không được Hỗ trợ đã chọn [[c:Special:MyLanguage/Commons:Video2commons|Video2Commons]] làm công cụ đầu tiên cho chu kỳ thí điểm của họ. Nhóm sẽ tìm hiểu cách để cải tiến và duy trì công cụ này trong những tháng tiếp theo. [[m:Special:MyLanguage/Product and Technology Advisory Council/Unsupported Tools Working Group|Tìm hiểu thêm trên Meta]].
* [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.23|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/42|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W42"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:59, ngày 13 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29434481 -->
== <span lang="en" dir="ltr">Help us decide the name of the new Abstract Wikipedia project</span> ==
<div lang="en" dir="ltr">
<section begin="function1"/>
{{int:Hello}}. Please help pick a name for the new Abstract Wikipedia wiki project. This project will be a wiki that will enable users to combine functions from [[:f:|Wikifunctions]] and data from Wikidata in order to generate natural language sentences in any supported languages. These sentences can then be used by any Wikipedia (or elsewhere).
There will be two rounds of voting, each followed by legal review of candidates, with votes beginning on 20 October and 17 November 2025. Our goal is to have a final project name selected on mid-December 2025. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki.
{{Int:Feedback-thanks-title}}
<section end="function1"/>
</div>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 11:44, ngày 20 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:Sannita (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29432175 -->
== Bản tin Kỹ thuật: Tuần 43-2025 ==
<section begin="technews-2025-W43"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/43|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Để tối ưu hóa cách dữ liệu người dùng được lưu trong cơ sở dữ liệu của chúng tôi, các tùy chọn được lưu của người dùng chưa đăng nhập trong vòng hơn 5 năm và có ít hơn 100 sửa đổi sẽ bị xóa. Khi những người dùng đó quay lại, tùy chọn mặc định sẽ được áp dụng. [https://phabricator.wikimedia.org/T406724]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:20}} {{PLURAL:20|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, đã có một liên kết hỏng từ thông điệp giao diện Đóng góp toàn cục đến trang Đóng góp toàn cục trên XTools mà hiện đã được giải quyết. [https://phabricator.wikimedia.org/T406415]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Việc định tuyến lại toàn bộ lưu lượng đến các điểm cuối API theo cổng <code dir=ltr><nowiki>rest.php</nowiki></code> thông qua một cổng API chung hiện đã hoàn tất. Nếu phát hiện bất kỳ vấn đề nào, vui lòng gửi tác vụ phabricator lên [[phab:tag/serviceops/|bảng tác vụ của nhóm Vận hành Dịch vụ]].
* Các sửa đổi đối với chú thích hoặc từ hạn định Wikidata nay sẽ ít hiển thị thường xuyên hơn trên các mục Thay đổi gần đây và Danh sách theo dõi trên các wiki khác, nhằm giảm bớt các thông báo không cần thiết. Thay đổi này sẽ giảm tổng số lượng các khoản mục 'gây nhiễu'. Bản thân các trang Wikidata sẽ không có sự thay đổi nào. [https://phabricator.wikimedia.org/T401290]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.24|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/43|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W43"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:36, ngày 20 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29478670 -->
== Bản tin Kỹ thuật: Tuần 44-2025 ==
<section begin="technews-2025-W44"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/44|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Ứng dụng Wikipedia dành cho iOS đã ra mắt thử nghiệm A/B/C nhằm cải tiến tính năng duyệt theo thẻ cho một số khu vực và ngôn ngữ nhất định. Thử nghiệm mang tên “Nhiều thẻ động hơn” này sẽ khám phá trải nghiệm trên thẻ mới cùng với việc bổ sung đề xuất bài viết ở mục “Bạn có biết” và “Vì bạn đã đọc”. Bạn có thể [[mw:Special:MyLanguage/Wikimedia Apps/Team/iOS/Tabbed Browsing (Tabs)/New Tab Experience and Recommendations Experiment|đọc thêm thông tin trên trang dự án này]].
* Thành viên tự xác nhận trên các wiki [[gitiles:operations/mediawiki-config/+/a2d2aaab9ace84280dd2f4c70a33bb69cd73850f/dblists/small.dblist|nhỏ]] và [[gitiles:operations/mediawiki-config/+/a2d2aaab9ace84280dd2f4c70a33bb69cd73850f/dblists/medium.dblist|vừa]] đã triển khai phần mở rộng CampaignEvents nay có thể sử dụng công cụ [[m:Special:MyLanguage/Event Center/Registration|Đăng ký Sự kiện]] mà không cần quyền Người tổ chức Sự kiện. Tính năng này cho phép người tổ chức kích hoạt việc đăng ký, quản lý người tham gia, và cho phép các thành viên đăng ký chỉ với một cú nhấp chuột thay vì phải ký vào trang sự kiện.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:31}} {{PLURAL:31|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, vấn đề về màu sắc nhấp nháy khi giữ hoặc nhấn phím mũi tên trong phần cài đặt chế độ tối của giao diện Vector 2022 nay đã được giải quyết. [https://phabricator.wikimedia.org/T402285]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Phần mở rộng CampaignEvents sẽ được triển khai trên tất cả những wiki còn lại trong tuần từ ngày 17 tháng 11 năm 2025. Phần mở rộng này hiện bao gồm ba tính năng: Đăng ký Sự kiện, Danh sách Cộng tác, và Danh sách Mời. Trong đợt triển khai này, Danh sách Lời mời sẽ không được kích hoạt cho Wikifunctions và MediaWiki cho đến khi những cộng đồng này yêu cầu kích hoạt. [[m:Special:MyLanguage/CampaignEvents/Deployment status|Truy cập trang thông tin triển khai để biết thêm thông tin]].
* Trải nghiệm chỗ thử REST dựa trên SwaggerUI nay đã có mặt trên tất cả các dự án wiki. Chỗ thử này có thể truy cập được thông qua trang [[{{#special:RestSandbox}}]]. Vui lòng báo cáo bất kỳ vấn đề nào lên bảng tin của nhóm Giao diện MediaWiki, hoặc tham gia thảo luận trên trang [[mw:Special:MyLanguage/MediaWiki Interfaces Team/Feature Feedback/REST Sandbox|khởi động dự án]] này. [https://phabricator.wikimedia.org/project/board/6931/]
* Những điểm cuối chuyển đổi với đường dẫn kết thúc bằng dấu gạch chéo trong REST API của MediaWiki hiện đang được đánh dấu là lỗi thời. Chúng vẫn sẽ tiếp tục hoạt động trong thời gian này, tuy nhiên dự kiến chúng sẽ bị loại bỏ vào cuối tháng 1 năm 2026. Toàn bộ người dùng API đang gọi chúng được khuyến khích chuyển sang bản đường dẫn không kết thúc bằng dấu gạch chéo. Cả hai biến thể điểm cuối này đều có thể tìm thấy và thử được sử dụng [https://test.wikipedia.org/w/index.php?api=mw-extra&title=Special%3ARestSandbox Chỗ thử REST]. Xem trang [[mw:API/Deprecation|Ngừng hỗ trợ với REST API MediaWiki]] để biết thêm thông tin chi tiết về các chính sách và thủ tục trong việc ngừng hỗ trợ API.
* [[mw:API:REST API/Changelog|Nhật trình thay đổi chuyên biệt nay đã có sẵn cho REST API của MediaWiki]]. Nhật trình thay đổi này cung cấp tổng quan về những thay đổi này, giúp các nhà phát triển dễ dàng theo dõi những cải tiến và lần lặp lại của chúng. Mọi thông báo cũng sẽ tiếp tục được gửi thông qua các kênh truyền thông chính, bao gồm Bản tin Kỹ thuật và danh sách phân phối qua thư điện tử, nhưng nay có thể dễ dàng tham khảo hơn từ một vị trí trung tâm. Nếu bạn có bất kỳ phản hồi nào về định dạng, cấu trúc, hoặc nội dung về nhật trình thay đổi này, vui lòng [[mw:API talk:REST API/Changelog|tham gia thảo luận tại đây]].
* Bảo quản viên nay có thể xóa thể loại theo dõi mà trước đây được thêm bởi phần mở rộng JsonConfig, do nó không còn được sử dụng. Xem các thể loại được liên kết từ [[d:Q130635582#sitelinks-wikipedia|Q130635582]]. Việc vẫn còn trang được liệt kê trên thể loại này là bình thường vì nó chỉ là vấn đề về bộ nhớ đệm, và chúng sẽ tự động được xóa khi các trang đó được sửa đổi trong lần tiếp theo. [https://phabricator.wikimedia.org/T378352]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.25|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/44|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W44"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:31, ngày 27 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29513638 -->
== <span lang="en" dir="ltr">Seeking volunteers to join several of the movement’s committees</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Each year, typically from October through December, several of the movement’s committees seek new volunteers.
Read more about the committees on their Meta-wiki pages:
* [[m:Special:MyLanguage/Affiliations Committee|Affiliations Committee (AffCom)]]
* [[m:Special:MyLanguage/Ombuds commission|Ombuds commission (OC)]]
* [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Community Resilience and Sustainability/Trust and Safety/Case Review Committee|Case Review Committee (CRC)]]
Applications for the committees open on October 30, 2025. Applications for the Affiliations Committee, Ombuds commission and the Case Review Committee close on December 11, 2025. Learn how to apply by [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Committee appointments|visiting the appointment page on Meta-wiki]]. Post to the talk page or email cst[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org with any questions you may have.
For the Committee Support team,
<section end="announcement-content" />
</div>
-[[m:User:MKaur (WMF)| MKaur (WMF)]] 14:14, ngày 30 tháng 10 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:MKaur (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29517125 -->
== Bản tin Kỹ thuật: Tuần 45-2025 ==
<section begin="technews-2025-W45"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/45|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Các bảo quản viên giờ đây sẽ thấy rằng [[{{#special:MergeHistory}}]] đã trở nên linh hoạt hơn đáng kể trong việc hợp nhất. Nó có thể hợp nhất các phần được lấy từ giữa lịch sử của trang nguồn (thay vì chỉ từ phần đầu), và chèn các phiên bản vào bất kỳ vị trí nào trong lịch sử của trang đích (thay vì chỉ ở phần đầu). [https://phabricator.wikimedia.org/T382958]
* Đối với những người dùng đã kích hoạt "{{int:discussiontools-preference-autotopicsub}}" [[Special:Preferences#mw-prefsection-editing|trong tùy chọn của họ]], việc bắt đầu một chủ đề mới hoặc thêm một phản hồi vào một chủ đề hiện có giờ đây sẽ tự động đăng ký họ theo dõi các phản hồi mới trong chủ đề đó. Trước đây, điều này chỉ xảy ra nếu người dùng sử dụng tiện ích "{{int:Skin-action-addsection}}" hoặc "{{int:Discussiontools-replybutton}}" của DiscussionTools. Khi DiscussionTools mới được ra mắt, các tài khoản hiện có không được tự động bật tính năng theo dõi chủ đề, vì vậy thay đổi này chủ yếu sẽ ảnh hưởng đến các tài khoản mới hơn và những người dùng đã chủ động thay đổi tùy chọn của mình kể từ thời điểm đó. [https://phabricator.wikimedia.org/T290778]
* Các mô đun Scribunto giờ đây có thể được dùng để [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#SVG library|tạo ảnh SVG]]. Tính năng này cho phép tạo biểu đồ, đồ họa và các hình minh họa khác một cách linh hoạt thông qua Lua, giúp giảm nhu cầu phải tạo chúng bên ngoài rồi tải lên dưới dạng tập tin. [https://phabricator.wikimedia.org/T405861]
* Các trang web của Wikimedia giờ đây sẽ cung cấp cho tất cả người dùng ẩn danh tùy chọn bật chế độ tối, với giao diện chữ sáng trên nền tối. Cải tiến này nhằm mang lại trải nghiệm đọc dễ chịu hơn, đặc biệt là trong môi trường thiếu sáng. [https://phabricator.wikimedia.org/T395628]
* Những người dùng có danh sách theo dõi lớn từ lâu đã gặp lỗi quá thời gian khi chỉnh sửa [[Special:EditWatchlist|Special:EditWatchlist]]. Trang này nay sẽ tải các mục theo từng phần nhỏ thay vì tải toàn bộ cùng lúc nhờ bản cập nhật phân trang, giúp mọi người có thể chỉnh sửa danh sách theo dõi mượt mà hơn. Trong quá trình cập nhật cơ sở dữ liệu, tính năng sắp xếp theo thời hạn đã bị loại bỏ vì chậm hơn hơn 100 lần so với sắp xếp theo tên trang. Một [https://meta.wikimedia.org/wiki/Community_Wishlist/W454 yêu cầu từ cộng đồng] đã được tạo để tìm các cách thay thế nhằm khôi phục tính năng sắp xếp theo thời hạn. Nếu bạn thấy tính năng này quan trọng, hãy ủng hộ yêu cầu đó! [https://phabricator.wikimedia.org/T41510]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:31}} {{PLURAL:31|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, việc khắc phục lỗi tô sáng vẫn còn hiển thị sau khi sử dụng tính năng tìm và thay thế của VisualEditor trong quá trình tìm kiếm. [https://phabricator.wikimedia.org/T407318]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Từ năm 2019, [[m:Special:MyLanguage/Wikimedia URL Shortener|Trình rút gọn URL của Wikimedia]] tại https://w.wiki đã có sẵn cho tất cả các wiki của Wikimedia để tạo liên kết ngắn đến bài viết, liên kết cố định, bản so sánh, v.v. Tính năng này có trong thanh bên với tên "Lấy URL rút gọn". Hiện có 30 wiki vẫn đang sử dụng tiện ích mở rộng cũ "ShortUrl". Tiện ích cũ này sẽ sớm bị gỡ bỏ. Điều này có nghĩa là các URL dạng <code>/s/</code> sẽ không còn được hiển thị dưới tiêu đề bài viết thông qua thẻ HTML <code dir=ltr>class="title-shortlink"</code>. Tuy nhiên, các URL dạng <code>/s/</code> vẫn sẽ tiếp tục hoạt động. [https://phabricator.wikimedia.org/T107188]
* Vào thứ Năm, ngày 30 tháng 10, các nhóm [[:mw:Special:MyLanguage/MediaWiki Interfaces Team|Giao diện MediaWiki]] và [[:mw:Special:MyLanguage/Wikimedia Site Reliability Engineering|Vận hành Dịch vụ SRE]] đã bắt đầu chuyển hướng lưu lượng của Action API thông qua một cổng API chung. Các wiki riêng lẻ sẽ được cập nhật theo từng nhóm phát hành tiêu chuẩn, với tổng lưu lượng được tăng dần theo thời gian. Thay đổi này được kỳ vọng sẽ không gây ra lỗi hoặc gián đoạn. Nếu bạn phát hiện bất kỳ sự cố nào, vui lòng gửi báo cáo trên bảng [https://phabricator.wikimedia.org/tag/serviceops/ của nhóm Vận hành Dịch vụ].
* Việc triển khai MediaWiki Train sẽ tạm dừng trong hai tuần cuối cùng của năm 2025: ngày 22 và 29 tháng 12. Các khung thời gian backport cũng sẽ tạm ngưng từ thứ Hai, ngày 22 tháng 12 năm 2025 đến thứ Năm, ngày 2 tháng 1 năm 2026. "Backport window" là khoảng thời gian được lên lịch để bổ sung các nội dung như bản vá lỗi và thay đổi cấu hình. Hiện vẫn còn bảy đợt triển khai MediaWiki Train nữa trong năm 2025. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/SMWTEAES4SDLDUSK4HMWNBSKNCXZAWYN/]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.26|MediaWiki]]
'''Chuyên sâu'''
* Năm 2025, Quỹ Wikimedia báo cáo rằng các hệ thống AI và công cụ tìm kiếm ngày càng sử dụng nội dung từ Wikipedia mà không dẫn người dùng quay lại trang, góp phần khiến lượng lượt xem từ người dùng thực giảm 8% so với năm 2024. Sau khi phát hiện các bot giả dạng người dùng thật, Wikimedia đã cập nhật dữ liệu truy cập để phản ánh sự thay đổi này. Bạn có thể đọc thêm về xu hướng người dùng hiện nay trên Wikipedia trong [[diffblog:2025/10/17/new-user-trends-on-wikipedia/|bài viết trên blog Diff]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/45|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W45"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:34, ngày 3 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29552512 -->
== Bản tin Kỹ thuật: Tuần 46-2025 ==
<section begin="technews-2025-W46"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/46|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
[[File:Talk pages default look (April 2023).jpg|thumb|alt=Hình chụp những thay đổi về mặt trực quan được thực hiện trên trang thảo luận|Ví dụ về trang thảo luận với thiết kế mới, bằng tiếng Pháp.]]
* Kể từ ngày 12 tháng 11, người dùng sẽ nhận thấy sự thay đổi về [[m:Special:MyLanguage/Talk pages project/Feature summary#Usability improvements|giao diện của các trang thảo luận]] trên [[Phab:T379264|một số trang Wikipedia]]. Hầu hết [[phab:T392121|toàn bộ các wiki]] đã có được thay đổi về mặt thiết kế này; những thay đổi này sẽ được thực hiện sau trên [[phab:T409297|Wikipedia tiếng Anh]]. Bạn có thể đọc thêm [[diffblog:2024/05/02/making-talk-pages-better-for-everyone/|trên ''Diff'']]. Người dùng có thể chọn không thực hiện thay đổi này [[Special:Preferences#mw-prefsection-editing|trong tùy chọn người dùng của mình]] ở tùy chọn "{{int:discussiontools-preference-visualenhancements}}". [https://phabricator.wikimedia.org/T379264]
* MediaWiki nay có thể hiển thị [[mw:Special:MyLanguage/Help:Protection indicators|chỉ báo trên trang]] tự động khi một trang bị khóa. Tính năng này được tắt theo mặc định. Nó có thể được bật theo [[m:Special:MyLanguage/Requesting wiki configuration changes|yêu cầu của cộng đồng]]. [https://phabricator.wikimedia.org/T12347]
* Việc sử dụng các nút "{{int:showpreview}}" hoặc "{{int:showdiff}}" trong trình soạn thảo mã nguồn nay sẽ đi kèm một số tham số URL nhất định như '[[mw:Special:MyLanguage/Manual:Parameters to index.php#useskin|useskin]]', '[[mw:Special:MyLanguage/Manual:Parameters to index.php#uselang|uselang]]' và '[[mw:Special:MyLanguage/Help:Section#Editing sections|section]]'. Bản cập nhật này đồng thời cũng sửa một vấn đề mà, nếu trình duyệt bị sập khi đang xem trước sửa đổi một đề mục duy nhất, việc lưu sửa đổi này có thể ghi đè toàn bộ trang chỉ bằng nội dung của đề mục đó. [https://phabricator.wikimedia.org/T62744][https://phabricator.wikimedia.org/T24029][https://phabricator.wikimedia.org/T155097]
* Các wiki Wikivoyage có thể dùng [[mw:Special:MyLanguage/Help:Extension:Kartographer#Markers and counters|điểm đánh dấu bản đồ bằng màu trong nội dung văn bản của bài viết]]. Nội dung văn bản của những điểm đánh dấu đó nay sẽ được hiển thị bằng màu đen hoặc trắng tương phản, thay vì luôn luôn là màu trắng. Cộng đồng có thể loại bỏ các phương pháp giải quyết cục bộ cho vấn đề này. [https://phabricator.wikimedia.org/T369454]
* Tab Hoạt động trên ứng dụng Wikipedia dành cho Android nay có sẵn cho tất cả người dùng. Tab mới này cung cấp thông tin chuyên sâu được cá nhân hóa về hoạt động đọc, sửa đổi, và quyên góp, đồng thời đơn giản hóa việc điều hướng và giúp cho việc sử dụng ứng dụng trở nên hấp dẫn hơn. [https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/Android/Activity_Tab_Experiment]
* Nhóm Phát triển Độc giả (Reader Growth) chuẩn bị khởi động thử nghiệm mang tên "Duyệt hình ảnh" để kiểm tra cách giúp người đọc dễ dàng duyệt và khám phá hình ảnh trên các bài viết Wikipedia hơn. Thử nghiệm này, một thử nghiệm A/B dành riêng cho thiết bị di động, sẽ bắt đầu được thực hiện vào tuần từ ngày 17 tháng 11 và sẽ kéo dài trong bốn tuần, ảnh hưởng đến 0,05% người dùng trên wiki tiếng Anh. Thử nghiệm này đã bắt đầu vào ngày 3 tháng 11 trên các wiki tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Indonesia và tiếng Việt, ảnh hưởng đến tối đa 10% người dùng trên những wiki này. [https://www.mediawiki.org/wiki/Readers/Reader_Growth/WE3.1.3_Image_Browsing]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ như đã khắc phục việc không thể khóa tài khoản trên trang web dành cho di động. [https://phabricator.wikimedia.org/T256185]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[wikitech:Help talk:Toolforge/Toolforge standards committee#November 2025 committee nominations|Wikitech đang mở đề cử]] chọn thành viên mới của [[wikitech:Help:Toolforge/Toolforge standards committee|Ủy ban tiêu chuẩn của Toolforge]]. Ủy ban này giám sát [[wikitech:Help:Toolforge/Right to fork policy|Chính sách quyền sử dụng bản sao]] và [[wikitech:Help:Toolforge/Abandoned tool policy|Chính sách cho công cụ bị bỏ rơi]] của Toolforge cùng nhiều nhiệm vụ khác. Đề cử sẽ tiếp tục mở đến hết ngày 28 tháng 11 năm 2025.
* [[w:JSON Web Token#Standard fields|Trường bên cung cấp JWT]] trong [[mw:Special:MyLanguage/OAuth/For Developers#OAuth 2|mã truy cập OAuth 2]] dành cho [[m:Special:MyLanguage/Help:Unified login|wiki SUL]] (đăng nhập trung ương) đã được thay đổi thành <code><nowiki>https://meta.wikimedia.org</nowiki></code>. Các mã truy cập cũ vẫn sẽ hoạt động. [https://phabricator.wikimedia.org/T399199]
* [[w:JSON Web Token#Standard fields|Trường chủ đề JWT]] trong [[mw:Special:MyLanguage/OAuth/For Developers#OAuth 2|mã truy cập OAuth 2]] sẽ sớm thay đổi từ <code><user id></code> sang <code dir=ltr style="white-space:nowrap">mw:<identity type>:<user id></code>, trong đó <code><identity type></code> thường là <code dir=ltr>CentralAuth:</code><!-- not a typo --> (đối với [[m:Special:MyLanguage/Help:Unified login|wiki SUL]]) hoặc <code dir=ltr style="white-space:nowrap">local:<wiki id></code> (đối với các wiki khác). Điều này là nhằm tránh xung đột giữa các loại ID người dùng khác nhau, và để mã truy cập OAuth 2 và cookie <code>sessionJwt</code> trở nên giống nhau hơn. Các mã truy cập cũ vẫn sẽ hoạt động. [https://phabricator.wikimedia.org/T399199]
* Các thông điệp cấm của MediaWiki ([[MediaWiki:Blockedtext|blockedtext]], [[MediaWiki:Blockedtext-partial|blockedtext-partial]], [[MediaWiki:Autoblockedtext|autoblockedtext]], [[MediaWiki:Systemblockedtext|systemblockedtext]], [[MediaWiki:Blockedtext-tempuser|blockedtext-tempuser]], [[MediaWiki:Autoblockedtext-tempuser|autoblockedtext-tempuser]]) nay hỗ trợ thêm các tham số bổ sung nhằm chỉ ra xem người dùng đó có bị cấm sửa đổi trang thảo luận của mình <code><nowiki>$9</nowiki></code> hoặc gửi thư điện tử cho người dùng khác <code><nowiki>$</nowiki><nowiki>10</nowiki></code> hay không. [https://phabricator.wikimedia.org/T285612]
* Nhánh <code>REL1_45</code> cho lõi MediaWiki và từng phần mở rộng cùng giao diện trong git của Wikimedia đã được tạo. Đây là bước đầu tiên trong quá trình phát hành phiên bản MediaWiki 1.45.0, được lên kế hoạch triển khai vào cuối tháng 11 năm 2025. Nếu bạn đang thực hiện việc khắc phục lỗi nghiêm trọng hoặc thực hiện tính năng mới, bạn có thể cần phải lưu ý thay đổi này. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/ZUY7TY3Z6XPZWZVAZV63OPO5OW52Q6GE/]
* Quy trình tạo bản dump CirrusSearch đã được cập nhật do hiệu suất bị chậm. Nếu bạn gặp bất kỳ sự cố nào khi chuyển sang bản dump thay thế, vui lòng liên hệ với Nhóm Nền tảng Tìm kiếm để được hỗ trợ. [https://phabricator.wikimedia.org/T366248][https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/3KQPOR6ACVN6OVLMLZPIBXQSWQKW4E3K/]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.2|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/46|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W46"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:38, ngày 10 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29606150 -->
== Bản tin Kỹ thuật: Tuần 47-2025 ==
<section begin="technews-2025-W47"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/47|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đang thử nghiệm tính năng [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4_Reading lists|danh sách đọc trên trang di động]], cho phép người đọc đã đăng nhập chưa thực hiện sửa đổi nào có thể lưu danh sách bài viết riêng tư để đọc sau. Thử nghiệm đang được thực hiện trên các Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Indonesia, và tiếng Việt kể từ tuần ngày 10 tháng 11, và sẽ bắt đầu trên Wikipedia tiếng Anh trong tuần ngày 17 tháng 11.
* Người dùng không thể nhận được mã xác nhận qua thư điện tử khi đăng nhập nay có thể nhờ hỗ trợ bằng cách gửi biểu mẫu trên trang đặc biệt mới. Cập nhật này là một phần của sáng kiến [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]]. Nếu tài khoản của bạn có địa chỉ thư điện tử, hãy đảm bảo rằng bạn vẫn có quyền truy cập vào nó. Trong quá trình đăng nhập từ thiết bị hoặc địa điểm mới mà không có 2FA, bạn có thể được yêu cầu nhập mã 6 ký tự được gửi từ thư điện tử để hoàn tất đăng nhập. [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security#Why are you requiring me to enter a code from my email to log in? Can I opt out of this?|Tìm hiểu thêm]].
* Một wiki mới đã được tạo ra: {{int:project-localized-name-group-wikisource}} tiếng [[d:Q13324|Minangkabau]] ([[s:min:|<code>s:min:</code>]]) [https://phabricator.wikimedia.org/T408317]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Là một phần của dự án [[mw:Special:MyLanguage/Parsoid/Parser Unification|Hợp nhất Trình Phân tích Cú pháp]], Nhóm Chuyển đổi Nội dung đã triển khai Parsoid làm trình phân tích cú pháp mặc định cho nhiều trang Wikipedia có lưu lượng truy cập thấp và đang chuẩn bị tiếp tục bước tiếp theo để triển khai đến những trang có lưu lượng truy cập cao. Tin nhắn này là lời mời cho bạn tham gia vào Parsoid, như được miêu tả trong tài liệu [[mw:Special:MyLanguage/Help:Extension:ParserMigration|Extension:ParserMigration]], và tìm ra bất kỳ vấn đề nào mà bạn có thể gặp phải với quy trình làm việc của mình khi sử dụng bot, tiện ích hoặc đoạn mã người dùng. Hãy cho chúng tôi biết thông qua liên kết ''"Báo cáo lỗi hiển thị"'' trên thanh bên Công cụ hoặc tạo một tác vụ phab và gắn thẻ [[phab:project/view/5846|Nhóm Chuyển đổi Nội dung trên Phabricator]].
* Dự án Công cụ Không được Hỗ trợ: Một vài vấn đề với [[:c:Special:MyLanguage/Commons:Video2commons|Video2Commons]] đã được giải quyết, bao gồm lỗi tải lên liên quan đến tên tập tin, nhập video bị đen, và xử lý việc thử lại. Hỗ trợ cho AV1 cũng đã được thêm vào. Những công việc đang được tiến hành tập trung vào tính ổn định của backend, lỗi ffmpeg, nhập phụ đề, xử lý siêu dữ liệu, và tải lên danh sách phát. Để theo dõi các tác vụ cụ thể, hãy kiểm tra [[phab:tag/video2commons/|bảng tác vụ trên Phabricator]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.3|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* Hãy lưu lịch ngay cho Hackathon Wikimedia tiếp theo sẽ diễn ra tại Milan, Ý từ ngày 1–3 tháng 5 năm 2026. Cổng đăng ký sẽ được mở vào tháng 1 năm 2026. [https://pretix.eu/wikimedia/Hackathon-2026/ Đơn đăng ký nhận học bổng hiện đang được mở], và sẽ đóng vào ngày 28 tháng 11 năm 2025. Nếu bạn có bất kỳ câu hỏi nào, vui lòng gửi thư đến <bdi lang="en" dir="ltr">hackathon@wikimedia.org</bdi>.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/47|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W47"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:26, ngày 17 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29627455 -->
== <span lang="en" dir="ltr">Reminder: Help us decide the name of the new Abstract Wikipedia project</span> ==
<div lang="en" dir="ltr">
<section begin="function2"/>
{{int:Hello}}. Reminder: Please help to choose name for the new Abstract Wikipedia wiki project. The finalist vote starts today. The finalists for the name are: <span lang="en" dir="ltr" class="mw-content-ltr">Abstract Wikipedia, Multilingual Wikipedia, Wikiabstracts, Wikigenerator, Proto-Wiki</span>. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki.
{{Int:Feedback-thanks-title}}
<section end="function2"/>
</div>
-- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 14:23, ngày 20 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:Sannita (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29583860 -->
== Bản tin Kỹ thuật: Tuần 48-2025 ==
<section begin="technews-2025-W48"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/48|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tuần trước, [[mw:Special:MyLanguage/Wikimedia Search Platform|Nhóm Tìm kiếm Wikimedia]] đã tạo lại chức năng của tiện ích "DWIM" (Do What I Mean - Làm những gì bạn muốn) trên máy chủ, cho Wikipedia tiếng Nga và tiếng Do Thái. Tính năng này bổ sung gợi ý đa bàn phím vào gợi ý trên hộp tìm kiếm tiêu chuẩn. Ví dụ, khi tìm kiếm ''<span lang="und" dir="ltr">cxfcnmt</span>'' trên Wikipedia tiếng Nga giờ đây sẽ bổ sung thêm gợi ý cho ''<span lang="ru" dir="ltr">счастье</span>'' ("sự hạnh phúc") mà người dùng có thể có ý định tìm tới. Họ dự kiến sẽ kích hoạt tính năng này trên các wiki khác bằng tiếng Nga và tiếng Do Thái trong tuần này. [https://phabricator.wikimedia.org/T408734]
* Cuối tuần này, người dùng [[Special:Preferences#mw-prefsection-betafeatures|tính năng beta]] "{{int:codemirror-beta-feature-title}}" sẽ có thể sử dụng tính năng tô màu cú pháp trong [[mw:Special:MyLanguage/Help:DiscussionTools|Công cụ Thảo luận]]. Điều này yêu cầu phải thiết lập tùy chọn "{{int:discussiontools-preference-sourcemodetoolbar}}". [https://phabricator.wikimedia.org/T407918]
* [[mw:Special:MyLanguage/Help:Extension:CampaignEvents|Phần mở rộng chiến dịch sự kiện]] – một bộ công cụ để phối hợp tổ chức sự kiện và các hoạt động cộng tác khác trên wiki nay đã được triển khai tới tất cả các wiki của Wikimedia. Một tính năng mới được gọi là [[m:Special:MyLanguage/CampaignEvents/Collaborative contributions|Đóng góp cộng tác]] cũng đã được thêm vào để giúp những người tổ chức và người tham gia thấy được tác động của những hoạt động đó. Hãy tham gia [[m:Special:MyLanguage/Event:Connection learning session 3|buổi học sắp tới]] để xem tính năng mới đó hoạt động thực tế như thế nào và chia sẻ phản hồi của bạn.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:24}} {{PLURAL:24|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho CodeReviewBot ngừng hoạt động hiện đã được giải quyết. [https://phabricator.wikimedia.org/T410417]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Người dùng API của Wikimedia có thể tham gia nghiên cứu khả năng sử dụng để giúp xác thực thiết kế mới dành cho chỗ thử REST API của Wikimedia. Những người có hứng thú tham gia cần điền vào [https://wikimediafoundation.limesurvey.net/487662 biểu mẫu khảo sát tham gia] này. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/IREJRRWTZTGCYWQHDMSNJFTQAEPOOAE3/]
* Nhóm Giao diện MediaWiki đang trong quá trình ngừng hỗ trợ các bảng định dạng (stylesheet) kiểu XSLT trong Action API. Hỗ trợ cho <code dir=ltr>format=xml'''&xlst={stylesheet}'''</code> sẽ bị loại bỏ khỏi các dự án Wikimedia vào cuối tháng 11 năm 2025. Ngoài ra, nó sẽ sớm mặc định bị vô hiệu hóa trong các phiên bản phát hành của MediaWiki: v1.43 (LTS), v1.44, và v1.45. Hỗ trợ cho các bảng định dạng kiểu XSLT sẽ bị loại bỏ hoàn toàn khỏi MediaWiki v1.46 (dự kiến phát hành vào khoảng thời gian từ tháng 4 đến tháng 5 năm 2026). [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/5AX7UWAVVUNUSBOIRHMNOKWOZ5EZI3JX/]
* Điểm cuối kế thừa của WDQS ([https://query-legacy-full.wikidata.org/ query-legacy-full.wikidata.org]) sẽ ngừng hoạt động vào cuối tháng 12 năm 2025, và sẽ chính thức bị vô hiệu hóa vào ngày 7 tháng 1 năm 2026. Sau ngày này, người dùng sẽ nhận thấy những yêu cầu đến query.wikidata.org mà yêu cầu toàn bộ biểu đồ bị lỗi hoặc trả về kết quả không hợp lệ nếu chúng không được viết lại để sử dụng liên kết SPARQL. Nhóm khuyên người dùng cần đảm bảo các công cụ và quy trình làm việc sử dụng các điểm cuối WDQS được hỗ trợ (<span dir=ltr><nowiki>https://query.wikidata.org/</nowiki></span> - Biểu đồ chính hoặc <span dir=ltr><nowiki>https://query-scholarly.wikidata.org/</nowiki></span> - Biểu đồ học thuật). Để được hỗ trợ chuyển đổi các trường hợp sử dụng (use case), vui lòng xem lại các trang [[d:Special:MyLanguage/Wikidata:Data_access|Truy cập Dữ liệu]] và [[d:Wikidata:Request_a_query|Yêu cầu Truy vấn]] để biết thêm thông tin và được hỗ trợ về các phương thức truy cập thay thế.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.4|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/48|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W48"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:56, ngày 24 tháng 11 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29702226 -->
== Bản tin Kỹ thuật: Tuần 49-2025 ==
<section begin="technews-2025-W49"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/49|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Bảng Nhìn lại Một Năm Wikipedia 2025 sẽ có mặt vào ngày 2 tháng 12 dành cho người dùng ứng dụng Wikipedia trên iOS và Android, gồm thông tin chuyên sâu được cá nhân hóa, những điểm nổi bật để đọc được cập nhật, cùng thiết kế đã được làm mới. Tìm hiểu thêm trên [[mw:Special:MyLanguage/Wikimedia Apps/Team/Wikipedia Year in Review/Updates|trang dự án]] của tính năng nhìn lại này.
* Nhóm Tăng trưởng đang nỗ lực cải thiện nội dung và cách trình bày của Email Xác minh được gửi tới người dùng mới để chúng trở nên thân thiện, hữu ích và có thêm nhiều thông tin hơn. Một số văn bản mới đã được soạn thảo cho thử nghiệm A/B và bạn có thể giúp đỡ bằng cách dịch chúng. Xem [[phab:T396155|Phabricator]].
* Tính năng [[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|Thêm liên kết]] nay sẽ được triển khai tới Wikipedia tiếng Nhật, tiếng Urdu và tiếng Trung vào ngày 2 tháng 12. Thêm liên kết được dựa trên mô hình dự đoán nhằm gợi ý liên kết cần được thêm vào bài viết. Trong khi tính năng này đã có mặt trên hầu hết các trang Wikipedia, mô hình dự đoán đó không thể hỗ trợ một số ngôn ngữ nhất định. Một mô hình mới đã được phát triển để xử lý những ngôn ngữ này, và mô hình đó sẽ dần được triển khai sang các trang Wikipedia khác theo thời gian. Nếu bạn muốn được biết thêm thông tin, vui lòng liên hệ [[mw:user:Trizek (WMF)|Trizek (WMF)]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:34}} {{PLURAL:34|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà hộp tìm kiếm trên một số trang Commons không hiển thị kết quả nào do việc chuyển đổi từ SpecialSearch sang MediaSearch, hiện đã được giải quyết. [https://phabricator.wikimedia.org/T399476]
* Hai wiki mới đã được tạo ra:
** {{int:project-localized-name-group-wikipedia}} tiếng [[d:Q36846|Toki Pona]] ([[w:tok:|<code>w:tok:</code>]]) [https://phabricator.wikimedia.org/T404457]
** {{int:project-localized-name-group-wikiquote}} tiếng [[d:Q33655|Pidgin Nigeria]] ([[q:pcm:|<code>q:pcm:</code>]]) [https://phabricator.wikimedia.org/T408318]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.5|MediaWiki]]
'''Chuyên sâu'''
* Quỹ Wikimedia đang trong giai đoạn đầu của việc khám phá các phương pháp tiếp cận cho '''Chỉ dẫn bài viết'''. Sáng kiến này nhằm mục đích xác định các phương pháp can thiệp có thể giúp các biên tập viên mới dễ dàng hiểu và áp dụng các quy tắc và chính sách hiện hành của Wikipedia khi tạo bài viết. Dự án đang trong giai đoạn khám phá và thiết kế thử nghiệm giai đoạn đầu. Tất cả các thành viên cộng đồng được khuyến khích [[mw:Special:MyLanguage/Article guidance|tìm hiểu thêm]] về dự án, và chia sẻ suy nghĩ của họ trên [[mw:Special:MyLanguage/Talk:Article guidance|trang thảo luận này]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/49|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W49"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:58, ngày 1 tháng 12 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29732328 -->
== Bản tin Kỹ thuật: Tuần 50-2025 ==
<section begin="technews-2025-W50"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/50|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Bất kỳ ai muốn bảo mật tài khoản người dùng của mình nay có thể sử dụng tính năng [[m:Special:MyLanguage/Help:Two-factor authentication|xác thực hai yếu tố]] (2FA). Tính năng này có sẵn cho tất cả người dùng của toàn bộ các dự án Wikimedia. Đây là một phần của sáng kiến [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]]. Sau này, 2FA sẽ được yêu cầu đối với tất cả người dùng có thể thực hiện các hành động mang tính nhạy cảm về bảo mật hoặc quyền riêng tư.
'''Cập nhật cho biên tập viên'''
* Tiếp nối đợt triển khai lần trước, tính năng [[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|Thêm liên kết]], một tính năng cho phép biên tập viên thêm liên kết được đề xuất trong quá trình sửa đổi, sẽ có mặt trên [[Phab:T410469|33 trang Wikipedia]] kể từ ngày 9 tháng 12. Việc mở rộng này có được nhờ mô hình dự đoán mới nay hỗ trợ tất cả các ngôn ngữ, kể cả những ngôn ngữ mà chưa được đề cập trước đây. Dù tính năng này đã có mặt trên hầu hết các trang Wikipedia được một thời gian, nhưng lần triển khai này sẽ giúp chúng tôi tiến gần hơn đến việc sử dụng mô hình được cải tiến này ở mọi nơi. Nếu bạn có bất kỳ câu hỏi nào hoặc muốn được biết thêm thông tin chi tiết vui lòng liên hệ với [[mw:user:Trizek (WMF)|Trizek (WMF)]].
* Tuần trước, [[mw:Special:MyLanguage/Wikimedia Search Platform|nhóm Nền tảng Tìm kiếm]] đã thêm gợi ý tìm kiếm [[w:vi:Chuyển tự|được chuyển tự]] khi bạn nhập tới các wiki bằng tiếng Georgia. Nếu chỉ có một vài gợi ý tìm kiếm thông thường, thì các truy vấn bằng chữ Latinh hoặc Kirin [[phab:T127003|nay sẽ được viết lại thành chữ Georgia]] để có thể tìm kiếm được nhiều kết quả trùng khớp hơn. Ví dụ, tìm kiếm <bdi lang="ka-Latn" dir="ltr">''bedniereba''</bdi> hoặc <bdi lang="ka-Cyrl" dir="ltr">''бедниереба''</bdi> nay sẽ gợi ý bài viết hiện có về <bdi lang="ka" dir="ltr">ბედნიერება</bdi> ("sự hạnh phúc"). Bạn có thể đề xuất những ngôn ngữ khác mà việc gợi ý được chuyển tự có thể hữu ích [[phab:T375215|trên Phabricator]] để dùng cho quá trình phát triển sau này.
* Cuối tuần này, một thử nghiệm có kiểm soát sẽ bắt đầu dành cho các biên tập viên trên 100 trang Wikipedia lớn nhất khi đang thực hiện sửa đổi một đề mục bằng trình soạn thảo trực quan trên trang web di động. 50% số biên tập viên đó sẽ nhận thấy nút "Sửa đổi toàn bộ trang" mới cho phép họ mở rộng phiên sửa đổi của mình lên toàn bộ trang đó. Tính năng này nhằm mục đích giúp người dùng trên trang web di động sửa đổi bất kỳ đề mục nào trong bài viết một cách dễ dàng hơn, bất kể việc họ chạm vào biểu tượng sửa đề mục nào để bắt đầu sửa đổi. Thử nghiệm này sẽ kéo dài khoảng 4 tuần. Bạn có thể tìm hiểu [[phab:T409112|thêm thông tin]] về dự án này.
* Cuối tuần này, [[mw:Special:MyLanguage/Readers/Reader Growth|nhóm Tăng trưởng Độc giả]] sẽ khởi động [[mw:Special:MyLanguage/Readers/Reader Growth/WE3.1.14 Expanded Mobile Sections|thử nghiệm trên trang web di động]] để mở rộng tất cả đề mục bài viết theo mặc định (hiện giờ chúng được mặc định thu gọn lại) và ghim tiêu đề của đề mục mà người dùng hiện đang đọc lên đầu trang. Thử nghiệm này sẽ ảnh hưởng tới 10% người dùng trên Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Indonesia và tiếng Việt. [https://phabricator.wikimedia.org/T409485]
* [[mw:Special:MyLanguage/Wikimedia Apps/Team/Wikipedia Year in Review/2025 Year in Review|Tổng kết Một Năm Wikipedia 2025]], một tính năng trong ứng dụng Wikipedia dành cho thiết bị di động (iOS và Android) nhằm cung cấp cho người dùng bản tóm tắt được cá nhân hóa về mức độ tương tác của họ với Wikipedia xuyên suốt trong một năm, nay đã có mặt trên ứng dụng iOS và Android. Phiên bản này bao gồm những thông tin chuyên sâu được mở rộng và cá nhân hóa, cải thiện những điểm nổi bật trong quá trình đọc, thông điệp mới cho nhà quyên góp, cùng thiết kế được cập nhật. Hãy mở ứng dụng để xem chuyên mục Tổng kết Năm và khám phá hành trình đọc của bạn trong năm 2025 nhé.
* Một lỗi phần mềm xảy ra gần đây khiến cho các sửa đổi được thực hiện bằng Trình Soạn thảo Trực quan thực hiện những thay đổi không mong muốn với mã nguồn wiki, trong đó có việc loại bỏ khoảng trắng và thay thế các dấu cách bằng dấu gạch dưới trong các liên kết wiki bên trong chú thích. Vấn đề này đã được giải quyết một phần vào tuần trước, và việc giải quyết vấn đề vẫn đang tiếp tục được thực hiện. Các biên tập viên sử dụng Trình Soạn thảo Trực quan trong các ngày từ 28 tháng 11 đến 2 tháng 12 nên kiểm tra lại sửa đổi của mình để tìm ra những thay đổi ngoài ý muốn. [https://phabricator.wikimedia.org/T411238]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, vấn đề về việc xử lý không đúng các đường dẫn URL được sao chép từ thanh địa chỉ của người dùng Microsoft Edge đã được giải quyết. [https://phabricator.wikimedia.org/T341281]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Bắt đầu từ tuần này, người dùng [[Special:Preferences#mw-prefsection-betafeatures|tính năng beta]] "{{int:codemirror-beta-feature-title}}" sẽ sử dụng [[mw:Special:MyLanguage/Help:Extension:CodeMirror|CodeMirror]] làm trình sửa đổi dành cho các kiểu nội dung Lua, JavaScript, CSS, JSON và Vue, thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]]. Với thay đổi này, [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Linting|các linter]] sẽ được nâng cấp. Đây là một phần trong nỗ lực lớn hơn nhằm thay thế CodeEditor và mang tới trải nghiệm sửa đổi mã nguồn một cách nhất quán. [https://phabricator.wikimedia.org/T373711]
* Các nhà phát triển được khuyến khích tham gia [https://wikimediafoundation.limesurvey.net/552643 Khảo sát Mức độ Hài lòng của Nhà phát triển năm 2025], hiện vẫn đang được mở đến hết ngày 5 tháng 1 năm 2026. Nếu bạn tham gia vào việc xây dựng phần mềm cho hệ sinh thái Wikimedia và muốn chia sẻ kinh nghiệm hoặc phản hồi của mình, thì chúng tôi sẽ rất trân trọng sự tham gia của bạn. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/W4WBKO6Q55UWWCCSFWQATKEXBEHP3QNR/]
* Tuần này không có phiên bản MediaWiki mới nào.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/50|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W50"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:45, ngày 8 tháng 12 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29738112 -->
== Bản tin Kỹ thuật: Tuần 51-2025 ==
<section begin="technews-2025-W51"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/51|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:18}} {{PLURAL:18|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một trong số đó là việc giải quyết vấn đề khi tài khoản tạm thời chèn liên kết URL ngoài, việc này kích hoạt yêu cầu hCaptcha trong nhiều trường hợp hơn so với dự định, và không hiển thị popup cần thiết trong lần thử xuất bản sửa đổi đầu tiên. [https://phabricator.wikimedia.org/T411927]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* <span class="mw-translate-fuzzy">Để cải thiện hiệu suất cho cơ sở dữ liệu và trang web, các liên kết ngoài tới các dự án Wikimedia sẽ không còn được lưu trữ trong cơ sở dữ liệu. Điều này có nghĩa là chúng sẽ không thể được tìm thấy trong [[{{#special:LinkSearch}}]], sẽ không được kiểm tra bởi Danh sách đen về spam hoặc Bộ lọc Sai phạm dưới dạng liên kết mới, và sẽ không có trong bảng <code dir=ltr>externallinks</code> trên các bản sao cơ sở dữ liệu. Trong tương lai nó có thể được mở rộng sang những trang web khác đáng tin cậy được liên kết nhiều trên cơ sở từng wiki, chẳng hạn như liên kết Creative Commons trên Wikimedia Commons.</span> [https://phabricator.wikimedia.org/T405005]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.7|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/51|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W51"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:03, ngày 15 tháng 12 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29796010 -->
== Bản tin Kỹ thuật: Tuần 52-2025 ==
<section begin="technews-2025-W52"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/52|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Kể từ tháng 1, các bộ lọc sai phạm [[mw:Special:MyLanguage/Extension:AbuseFilter/Access flags|có thể được thiết lập]] để tự động loại bỏ chi tiết bộ lọc chẳng hạn như quy tắc và danh sách các sửa đổi và tác vụ thực hiện được ghi lại. Điều này sẽ giúp người giám sát sử dụng các bộ lọc sai phạm để ngăn chặn doxxing hoặc nội dung khác có thể bị loại bỏ. [https://phabricator.wikimedia.org/T290324]
* Số tiếp theo của Bản tin Kỹ thuật sẽ được phát hành vào ngày 12 tháng 1 năm 2026 do trùng vào kỳ nghỉ cuối năm. Xin cảm ơn tất cả các biên dịch viên cùng những người đã gửi nội dung hoặc phản hồi trong năm nay.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:16}} {{PLURAL:16|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, sự cố xảy ra khiến cho ứng dụng bị sập khi chạm vào mục "Bước Đầu tiên" trong mục Nhìn lại Một năm trên ứng dụng Wikipedia dành cho Android nay đã được giải quyết, và tính năng này được mở như mong đợi. [https://phabricator.wikimedia.org/T411546]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Những thành phần giao diện như khác biệt giữa các phiên bản và thể loại được tạo bởi MediaWiki từng có thuộc tính <code dir=ltr>data-mw="interface"</code> để phân biệt với nội dung wiki. Thuộc tính này đã được thay thế bằng <code dir=ltr>data-mw-interface=""</code>, nhằm tránh khả năng gây xung đột với những thuộc tính <code dir=ltr>data-mw</code> khác được tạo bởi Parsoid. [https://phabricator.wikimedia.org/T409187]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Không có phiên bản MediaWiki mới nào trong tuần này hoặc tuần tới.
'''Các cuộc họp và sự kiện'''
* [[mw:Wikimedia Hackathon Northwestern Europe 2026|Wikimedia Hackathon Tây Bắc Âu năm 2026]] sẽ diễn ra vào các ngày 13-14 tháng 3 năm 2026 tại Arnhem, Hà Lan. Đơn đăng ký vừa được mở vào giữa tháng 12 và sẽ đóng vào giữa tháng 1 hoặc có thể đóng sớm hơn nếu hết chỗ. Do sự kiện giới hạn khoảng 100 người tham gia, chúng tôi khuyến khích bạn đăng ký thật sớm.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2025/52|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2025-W52"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:45, ngày 22 tháng 12 năm 2025 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29831856 -->
plqmv3kfgq8apfbum7eyw9nnxr7a9yp
Thảo luận Wiktionary:Thảo luận/Lưu 16
5
419996
2570132
2026-10-13T08:42:18Z
Hiyuune
50834
Trang mới: “== 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…”
2570132
wikitext
text/x-wiki
== Bản tin Kỹ thuật: Tuần 03-2026 ==
<section begin="technews-2026-W03"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/03|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Quỹ Wikimedia đã chia sẻ một số câu hỏi định hướng cho Kế hoạch Thường niên giai đoạn tháng 7 năm 2026–tháng 6 năm 2027 trên [[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2026-2027/Product & Technology OKRs|Meta]] và ''[[diffblog:2025/12/10/shaping-wikimedia-foundations-2026-2027-annual-goals-key-questions-for-the-wikimedia-movement/|Diff]]''. Những câu hỏi này tập trung vào những xu hướng toàn cầu, những thử nghiệm nhanh và hiệu quả hơn, hỗ trợ tốt hơn cho người mới, tăng cường năng lực cho biên tập viên và người dùng có quyền nâng cao, cải thiện sự cộng tác giữa các dự án, cũng như phát triển và duy trì lượng người đọc. Mọi phản hồi và ý kiến đóng góp đều được hoan nghênh trên [[m:Talk:Wikimedia Foundation Annual Plan/2026-2027|trang thảo luận]].
'''Cập nhật cho biên tập viên'''
* Là một phần của công việc hiện do nhóm Công nghệ Cộng đồng thực hênj xoay quanh dự án [[m:Special:MyLanguage/Community Wishlist/W372|Nhiều danh sách theo dõi]] (Multiple watchlists), việc hiển thị của tính năng [[Special:EditWatchlist|Sửa đổi Danh sách theo dõi]] (EditWatchlist) sẽ được cập nhật làm bước đầu tiên hướng tới việc có được nhiều danh sách theo dõi. Ngoài ra, việc phân trang của trang [[Special:Search|Tìm kiếm]] cũng sẽ được cập nhật như là một phần của công việc liên quan đến mong muốn [[m:Special:MyLanguage/Community Wishlist/W186|Cải tiến phân trang / điều hướng trang]]. [https://phabricator.wikimedia.org/T411596]
* [[m:Special:GlobalWatchlist|Danh sách theo dõi toàn cục]] là [[mw:Special:MyLanguage/Extension:GlobalWatchlist|phần mở rộng]] của MediaWiki cho phép bạn xem danh sách theo dõi của bạn từ các wiki khác nhau trên cùng một trang. Danh sách này gần đây đã được cập nhật để trông giống như [[Special:Watchlist|Danh sách theo dõi]] thông thường hơn, chẳng hạn như tiền xử lý các tài khoản tạm thời để che giấu địa chỉ IP (trong đó có việc chuyển hướng liên kết người dùng đến các trang đóng góp), in đậm tiêu đề trang, và mở các liên kết trong phần tóm lược sửa đổi và thẻ trong tab trình duyệt mới. [https://phabricator.wikimedia.org/T398361][https://phabricator.wikimedia.org/T298919][https://phabricator.wikimedia.org/T273526][https://phabricator.wikimedia.org/T286309]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, vấn đề mà việc cấm tài khoản toàn cục không có tùy chọn cấm gửi thư điện tử, nay đã được giải quyết, và sẽ có thể sử dụng kể từ tuần ngày 13 tháng 1. [https://phabricator.wikimedia.org/T401293]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[mw:Special:MyLanguage/VisualEditor/Citation tool|Công cụ chú thích của Soạn thảo Trực quan]] và [[mw:Special:MyLanguage/Help:Reference Previews|Xem trước Chú thích]] nay hỗ trợ kiểu chú thích dạng "bản đồ". [https://phabricator.wikimedia.org/T411083]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.10|MediaWiki]]/[[mw:MediaWiki 1.46/wmf.11|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/03|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W03"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:33, ngày 12 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29907192 -->
== Thank You for Last Year – Join Wiki Loves Ramadan 2026 ==
Dear Wikimedia communities,
We hope you are doing well, and we wish you a happy New Year.
''Last year, we captured light. This year, we’ll capture legacy.''
In 2025, communities around the world shared the glow of Ramadan nights and the warmth of collective iftars. In 2026, ''Wiki Loves Ramadan'' is expanding, bringing more stories, more cultures, and deeper global connections across Wikimedia projects.
We invite you to explore the ''Wiki Loves Ramadan 2026'' [[m:Special:MyLanguage/Wiki Loves Ramadan 2026|Meta page]] to learn how you can participate and [[m:Special:MyLanguage/Wiki Loves Ramadan 2026/Participating communities|sign up]] your community.
📷 ''Photo campaign on '' [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan 2026|Wikimedia Commons]]
If you have questions about the project, please refer to the FAQs:
* [[m:Special:MyLanguage/Wiki Loves Ramadan/FAQ/|Meta-Wiki]]
* [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan/FAQ|Wikimedia Commons]]
''Early registration for updates is now open via the '''[[m:Special:RegisterForEvent/2710|Event page]]'''''
''Stay connected and receive updates:''
* [https://lists.wikimedia.org/postorius/lists/wikilovesramadan.lists.wikimedia.org/ Mailing list]
We look forward to collaborating with you and your community.
'''The Wiki Loves Ramadan 2026 Organizing Team''' 19:45, ngày 16 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:ZI Jony@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29879549 -->
== Bản tin Kỹ thuật: Tuần 04-2026 ==
<section begin="technews-2026-W04"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/04|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Khay được hiển thị trên [[Special:Diff|Đặc biệt:Khác]] trong chế độ xem di động đã được thiết kế lại. Giờ đây nó mặc định được thu gọn, đồng thời tích hợp một liên kết để lùi lại sửa đổi đang được hiển thị trên màn hình, giúp các biên tập viên và người duyệt bài trên điện thoại di động dễ dàng thực hiện tác vụ mà vẫn giữ giao diện thật gọn gàng. [https://phabricator.wikimedia.org/T402297]
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi từ nhiều wiki khác nhau trên cùng một trang. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] này tiếp tục được cải thiện — nay nó có thể tự động xác định hướng văn bản (nhằm đảm bảo việc hiển thị chính xác các trang web mà có tên miền bất thường) và hiển thị chi tiết phần miêu tả cho các tác vụ được lưu trong nhật trình. Cuối tuần này, một liên kết thường trực mới cho các tác vụ tạo trang cùng các lớp CSS cho từng mục nhập sẽ được thêm vào. [https://phabricator.wikimedia.org/T412505][https://phabricator.wikimedia.org/T287929][https://phabricator.wikimedia.org/T262768][https://phabricator.wikimedia.org/T414135]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:32}} {{PLURAL:32|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà được ghi nhận trước đây trong giao diện Vector 2022 mà các liên kết anchor đích bị che khuất bởi tiêu đề cố định nay đã được giải quyết. [https://phabricator.wikimedia.org/T406114]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Như đã đề cập trong [[m:Special:MyLanguage/Tech/News/2025/44|thông báo ngừng hỗ trợ vào tháng 10 năm 2025]], nhóm Giao diện MediaWiki sẽ bắt đầu loại bỏ toàn bộ điểm cuối chuyển đổi có dấu gạch chéo ở cuối khỏi API REST của MediaWiki vào tuần từ ngày 26 tháng 1. Những thay đổi này dự kiến sẽ được triển khai tới tất cả các wiki chậm nhất vào ngày 30 tháng 1. Tất cả người dùng API đang gọi những điểm cuối này được khuyên chuyển đổi sang những phiên bản không có dấu gạch chéo ở cuối. Cả hai loại biến thể điểm cuối này đều có thể được tìm thấy, so sánh và kiểm tra sử dụng [https://test.wikipedia.org/wiki/Special:RestSandbox Chỗ thử REST]. Nếu bạn có thắc mắc hay gặp bất kỳ sự cố nào, hãy gửi yêu cầu bằng cách tạo một tác vụ trong Phabricator gửi tới [https://phabricator.wikimedia.org/project/view/6931/ bảng tin #MW-Interfaces-Team].
* Tài liệu tham khảo trực quan cho [[mw:Special:MyLanguage/Wikimedia REST API|API REST của Wikimedia]] đã được chuyển. Những yêu cầu đến các tài liệu API trước đây được lưu trữ thông qua [[mw:Special:MyLanguage/RESTBase|RESTBase]] (v.d.: <code dir=ltr>https://en.wikipedia.org/api/rest_v1/</code>) nay được chuyển hướng tới [[w:en:Special:RestSandbox|Chỗ thử REST]].
* [[mw:Special:MyLanguage/Wikidata Platform|Nhóm Nền tảng Wikidata của WMF]] (WDP) đã phát hành [[d:Special:MyLanguage/Wikidata:Wikidata Platform team/Newsletter|bản tin tháng 1 năm 2026]]. Bản tin bao gồm những cập nhật về việc ngừng hoạt động điểm cuối biểu đồ đầy đủ (full-graph) cũ, thay đổi về chính sách User-Agent, thời gian làm việc hàng tháng của kế hoạch chuyển đổi sang Blazegraph, cùng những nỗ lực nhằm giảm thiểu những lỗi hồi quy gây ra bởi việc ngừng điểm cuối cũ. Xin nhắc lại rằng bạn có thể [[m:Special:MyLanguage/Global message delivery/Targets/WDP team updates|đăng ký nhận bản tin WDP đó]]!
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.12|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* [[mw:Wikimedia Hackathon Northwestern Europe 2026|Cuộc thi Hackathon Wikimedia khu vực Tây Bắc Châu Âu năm 2026]] sẽ diễn ra vào ngày 13-14 tháng 3 năm 2026 tại Arnhem, Hà Lan. Cổng đăng ký đã được mở vào giữa tháng 12 và sẽ sớm đóng lại hoặc đóng ngay khi đã đủ số lượng người tham gia. Đây là cuộc thi hackathon kéo dài hai ngày, tập trung vào mảng kỹ thuật và quy tụ các thành viên Wikimedia từ khắp khu vực. Hy vọng sẽ gặp lại bạn tại đó!
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/04|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W04"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:29, ngày 19 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29943403 -->
== Rà soát thường niên Bộ Quy tắc Ứng xử Chung và Hướng dẫn Thực thi ==
<section begin="announcement-content" />
Tôi viết thư này để thông báo với bạn rằng thời gian xem xét hàng năm đối với Bộ Quy tắc Ứng xử và Hướng dẫn Thực thi hiện đã bắt đầu. Bạn có thể đưa ra các đề xuất thay đổi đến hết ngày 9 tháng 2 năm 2026. Đây là bước đầu tiên trong nhiều bước cần thực hiện cho quá trình xem xét hàng năm. [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Đọc thêm thông tin và tìm cuộc thảo luận để tham gia trên trang UCoC trên Meta]].
[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Ủy ban Điều phối Bộ Quy tắc Ứng xử Toàn cầu]] (U4C) là một nhóm toàn cầu chuyên trách việc thực hiện Bộ Quy tắc Ứng xử Toàn cầu một cách công bằng và nhất quán. Đánh giá thường niên này được lên kế hoạch và thực hiện bởi U4C. Để biết thêm thông tin và trách nhiệm của U4C, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|bạn có thể xem Hiến chương U4C]].
Vui lòng chia sẻ thông tin này với các thành viên khác trong cộng đồng của bạn ở bất cứ nơi nào phù hợp.
-- Hợp tác với U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]])<section end="announcement-content" />
21:02, ngày 19 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Keegan (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 -->
== Bản tin Kỹ thuật: Tuần 05-2026 ==
<section begin="technews-2026-W05"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/05|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Quỹ Wikimedia mời mọi người đóng góp ý kiến cho [[m:Special:MyLanguage/Product and Technology Advisory Council/Year1 Reflections and Proposed Way Forward 2026 Update|đề xuất kế hoạch tương lai]] của [[:m:Special:MyLanguage/Product and Technology Advisory Council|Hội đồng Cố vấn Sản phẩm và Công nghệ]] chậm nhất ngày 28 tháng 2.
* Tất cả người dùng đã đăng ký tài khoản nay có thể sử dụng passkey (mã xác thực) cho việc [[m:Special:MyLanguage/Help:Two-factor authentication|xác thực hai yếu tố]] (2FA). Passkey là một cách đơn giản để đăng nhập mà không cần phải sử dụng thiết bị thứ hai. Chúng sẽ xác thực danh tính của người dùng sử dụng vân tay, nhận diện khuôn mặt, hoặc dùng mã PIN. Để thiết lập một passkey, đầu tiên hãy thiết lập phương thức xác thực 2FA thông thường. Hiện tại, để đăng nhập bằng passkey, người dùng cũng phải sử dụng cả mật khẩu. Vào cuối quý này, tính năng đăng nhập không cần mật khẩu sẽ cho phép người dùng đăng nhập chỉ bằng một cú nhấn chuột và passkey. Người dùng có quyền nâng cao cũng sẽ bắt buộc phải kích hoạt xác thực 2FA. Đây là một phần của dự án [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]].
* Những người đóng góp chưa đăng ký tài khoản trên các IP hoặc dải IP bị cấm nay có thể tương tác trên wiki để chống lại quyết định cấm trên trang thảo luận thành viên, trừ khi tùy chọn "ngăn người dùng này sửa đổi trang thảo luận của họ" được bật. Điều này giúp giải quyết vấn đề rằng người dùng chưa đăng nhập không thể sử dụng quy trình bỏ cấm mặc định thông qua trang thảo luận thành viên. [https://phabricator.wikimedia.org/T398673]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:20}} {{PLURAL:20|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, phần miêu tả phương thức Xác thực hai yếu tố (2FA) trên trang quản lý đã được cập nhật. Giờ đây nó trở nên rõ ràng và dễ hiểu hơn, giúp người dùng dễ dàng sử dụng hơn. [https://phabricator.wikimedia.org/T332385]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Một biến Bộ lọc Sai phạm mới, <code>account_type</code>, đã được thêm vào để cung cấp một cách đáng tin cậy trong việc xác định loại tài khoản được tạo trong các tác vụ <code>createaccount</code> và <code>autocreateaccount</code>. Là một phần của thay đổi này, biến <code>accountname</code> đã được đổi tên thành <code>account_name</code>, và <code>accountname</code> nay đã lỗi thời. Những người quản lý bộ lọc sai phạm nên cập nhật bất kỳ bộ lọc nào đang sử dụng biến kiểm tra loại tài khoản mã hóa cứng hoặc đã lỗi thời nào nếu có. [https://phabricator.wikimedia.org/T414049]
* Các hình thu nhỏ được yêu cầu với kích thước không chuẩn và sử dụng các phương thức không chuẩn như yêu cầu trực tiếp đến <code dir=ltr><nowiki>upload.wikimedia.org/…</nowiki></code> sẽ ngừng hoạt động trong thời gian tới. Thay đổi này nhằm ngăn chặn việc các trình thu thập dữ liệu web và bot từ bên ngoài lạm dụng. Một số người dùng có đoạn mã CSS/JS tùy chỉnh, các bảo quản viên giao diện có thể sửa tiện ích và giao diện cục bộ, cùng người viết công cụ sẽ cần cập nhật đoạn mã của mình để sử dụng kích thước hình thu nhỏ tiêu chuẩn. [[phab:T414805|Thông tin chi tiết, các liên kết tìm kiếm, cùng ví dụ về cách giải quyết chúng có sẵn trong tác vụ này]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.13|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/05|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W05"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:17, ngày 26 tháng 1 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29969530 -->
== Bản tin Kỹ thuật: Tuần 06-2026 ==
<section begin="technews-2026-W06"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/06|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng "{{int:pageinfo-toolboxlink}}", một tính năng cung cấp thông tin xác thực về một trang ([{{fullurl:{{FULLPAGENAME}}|action=info}} ví dụ]), nay có thêm cả phần mục lục được tạo tự động. Nếu có trang [[MediaWiki:Pageinfo-header]] được người dùng tạo cục bộ, giờ nó có thể được xóa đi. [https://phabricator.wikimedia.org/T363726]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, Trình Soạn thảo Trực quan trước đây đã thêm chức năng in đậm hoặc nghiêng vào phần miêu tả liên kết, làm cho mã wiki trở nên phức tạp. Vấn đề này hiện đã được giải quyết. [https://phabricator.wikimedia.org/T409669]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Không có bản dump XML nào được tạo ra vào ngày 20 tháng 1. Ngoài ra, kể từ giờ, các bản dump sẽ chỉ được tạo một lần mỗi tháng. [https://phabricator.wikimedia.org/T414389]
* Nhóm Giao diện MediaWiki đã ngừng hỗ trợ tất cả điểm cuối chuyển đổi có dấu gạch chéo ở cuối khỏi [https://www.mediawiki.org/wiki/Special:MyLanguage/API:REST%20API API REST của MediaWiki]. Tất cả người dùng API hiện đang gọi những điểm cuối đó được khuyến khích chuyển sang các bản không có dấu gạch chéo ở cuối. Nếu bạn có thắc mắc hoặc gặp bất kỳ sự cố nào, vui lòng gửi tác vụ phabricator tới [https://phabricator.wikimedia.org/project/view/6931/ bảng tin của #MW-Interfaces-Team].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.14|MediaWiki]]
'''Nổi bật trong tuần'''
* Xin nhắc tới người dùng rằng Quỹ Wikimedia đã chia sẻ một số câu hỏi định hướng cho Kế hoạch Hàng năm giai đoạn tháng 7 năm 2026–tháng 6 năm 2027 trên [[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2026-2027/Product & Technology OKRs|Meta]] và ''[[diffblog:2025/12/10/shaping-wikimedia-foundations-2026-2027-annual-goals-key-questions-for-the-wikimedia-movement/|Diff]]''. Những câu hỏi này tập trung vào những xu hướng toàn cầu, thử nghiệm nhanh hơn và hiệu quả hơn, hỗ trợ tốt hơn cho người mới, nâng cao năng lực cho biên tập viên và người dùng có quyền nâng cao, cải thiện việc cộng tác giữa các dự án, cũng như phát triển và giữ chân độc giả. Mọi phản hồi và ý kiến đóng góp đều được hoan nghênh trên [[m:Talk:Wikimedia Foundation Annual Plan/2026-2027|trang thảo luận]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/06|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W06"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:43, ngày 2 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30000986 -->
== Bản tin Kỹ thuật: Tuần 07-2026 ==
<section begin="technews-2026-W07"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/07|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Mục Mong muốn cộng đồng]] <span lang="en" dir="ltr" class="mw-content-ltr">Logged-in contributors who manage large or complex watchlists can now organise and filter watched pages in ways that improve their workflows with the new [[mw:Special:MyLanguage/Help:Watchlist labels|Watchlist labels]] feature. By adding custom labels (for example: pages you created, pages being monitored for vandalism, or discussion pages) users can more quickly identify what needs attention, reduce cognitive load, and respond more efficiently. This improves watchlist usability, especially for highly active editors.</span>
* <span lang="en" dir="ltr" class="mw-content-ltr">A new feature available on [[Special:Contributions|Special:Contributions]] shows [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|temporary accounts]] that are likely operated by the same person, and so makes patrolling less time-consuming. Upon checking contributions of a temporary account, users with access to temporary account IP addresses can now see a view of contributions from the related temporary accounts. The feature looks up all the IPs associated with a given temporary account within the data retention period and shows all the contributions of all temporary accounts that have used these IPs. [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts#February 2026: Improvements to the patroller tooling|Learn more]].</span> [https://phabricator.wikimedia.org/T415674]
* <span lang="en" dir="ltr" class="mw-content-ltr">When editors preview a wikitext edit, the reminder box that they are only seeing a preview (which is shown at the top), now has a grey/neutral background instead of a yellow/warning background. This makes it easier to distinguish preview notes from actual warnings (for example, edit conflicts or problematic redirect targets), which will now be shown in separate warning or error boxes.</span> [https://phabricator.wikimedia.org/T414742]
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[m:Special:GlobalWatchlist|Global Watchlist]] lets you view your watchlists from multiple wikis on one page. The [[mw:Special:MyLanguage/Extension:GlobalWatchlist|extension]] continues to improve — it now properly supports more than one Wikibase site, for example both [[d:|Wikidata]] and [[testwikidata:|testwikidata]]. In addition, issues regarding text direction have been fixed for users who prefer Wikidata or other Wikibase sites in right-to-left (RTL) languages.</span> [https://phabricator.wikimedia.org/T415440][https://phabricator.wikimedia.org/T415458]
* <span lang="en" dir="ltr" class="mw-content-ltr">The automatic "magic links" for ISBN, RFC, and PMID numbers have been [[mw:Special:MyLanguage/Help:Magic links|deprecated in wikitext since 2021]] due to inflexibility and difficulties with localization. Several wikis have successfully replaced RFC and PMID magic links with equivalent external links, but a template was often required to replace the functionality of the ISBN magic link. There is now a new [[mw:Special:MyLanguage/Help:Magic words#isbn|built-in parser function]] <code dir=ltr><nowiki>{{#isbn}}</nowiki></code> available to replace the basic functionality of the ISBN magic link. This makes it easier for wikis who wish to migrate off of the deprecated magic link functionality to do so.</span> [https://phabricator.wikimedia.org/T145604]
* <span lang="en" dir="ltr" class="mw-content-ltr">Two new wikis have been created:</span>
** <span lang="en" dir="ltr" class="mw-content-ltr">a {{int:project-localized-name-group-wikipedia}} in [[d:Q35401|Jju]]</span> ([[w:kaj:|<code>w:kaj:</code>]]) [https://phabricator.wikimedia.org/T413283]
** <span lang="en" dir="ltr" class="mw-content-ltr">a {{int:project-localized-name-group-wikipedia}} in [[d:Q1186896|Nawat]]</span> ([[w:ppl:|<code>w:ppl:</code>]]) [https://phabricator.wikimedia.org/T413273]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]].
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* <span lang="en" dir="ltr" class="mw-content-ltr">A new global user group has been created: [[{{int:grouppage-local-bot}}|{{int:group-local-bot}}]]. It will be used internally by the software to allow community bots to bypass rate limits that are applied to abusive [[w:en:Web scraping|web scrapers]]. Accounts that are approved as bots on at least one Wikimedia wiki will be automatically added to this group. It will not change what user permissions the bot has.</span> [https://phabricator.wikimedia.org/T415588]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.15|MediaWiki]]
'''Các cuộc họp và sự kiện'''
* <span lang="en" dir="ltr" class="mw-content-ltr">The [[mw:Special:MyLanguage/MediaWiki Users and Developers Conference Spring 2026|MediaWiki Users and Developers Conference, Spring 2026]] will be held March 25–27 in Salt Lake City, USA. This event is organized by and for the third-party MediaWiki community. You can propose sessions and register to attend.</span> [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/AZBWVI46SDEB65PGR5J6E4TYOQQEZXM7/]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/07|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W07"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 23:30, ngày 9 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30026671 -->
== Bản tin Kỹ thuật: Tuần 08-2026 ==
<section begin="technews-2026-W08"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/08|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[mw:Special:MyLanguage/Wikimedia Site Reliability Engineering|Nhóm SRE]] sẽ tiến hành dọn dẹp phiên bản [[m:Special:MyLanguage/Etherpad|Etherpad]] của Wikimedia, một trình sửa đổi trên web dành cho việc sửa đổi tài liệu cộng tác theo thời gian thực. Tất cả pad sẽ bị xóa vĩnh viễn sau ngày 30 tháng 4 năm 2026 – trường hợp nếu còn dự án vẫn đang được tiến hành di chuyển vào thời điểm đó thì nhóm có thể xem xét lại thời gian đó tùy từng trường hợp. Vui lòng tạo bản sao lưu cục bộ cho bất kỳ nội dung nào mà bạn muốn giữ lại, vì dữ liệu đã bị xóa không thể khôi phục được nữa. Việc dọn dẹp này sẽ giúp giảm bớt kích thước cơ sở dữ liệu và giảm thiểu lãng phí (dấu ấn) cơ sở hạ tầng. Etherpad sẽ tiếp tục hỗ trợ cộng tác theo thời gian thực, nhưng không kỳ vọng vào khả năng lưu trữ lâu dài. Những đợt dọn dẹp khác có thể xảy ra trong tương lai mà không cần báo trước. [https://phabricator.wikimedia.org/T415237]
'''Cập nhật cho biên tập viên'''
* Nhóm Tìm kiếm Thông tin sẽ triển khai [[mw:Special:MyLanguage/Readers/Information Retrieval/Phase 1|thử nghiệm trên ứng dụng di động dùng Android]] nhằm kiểm tra khả năng tìm kiếm kết hợp, có thể xử lý cả các truy vấn tìm theo ngữ nghĩa và theo từ khóa. Việc cải thiện tìm kiếm trên nền tảng này sẽ giúp người đọc dễ dàng tìm thấy những gì mà họ đang tìm kiếm hơn ngay trên Wikipedia. Thử nghiệm này sẽ bắt đầu được triển khai trước tiên là trên Wikipedia tiếng Hy Lạp vào cuối tháng 2, sau đó là các wiki tiếng Anh, tiếng Pháp và tiếng Bồ Đào Nha vào tháng 3. [https://diff.wikimedia.org/2026/01/08/semantic-search-making-it-easier-to-find-the-information-readers-want/ Đọc thêm] trên blog Diff. [https://www.mediawiki.org/wiki/Readers/Information_Retrieval]
* Nhóm Phát triển Độc giả sẽ tiến hành [[mw:Special:MyLanguage/Readers/Reader Growth/WE3.10.2 Mobile Table of Contents|một thử nghiệm]] cho người dùng web trên thiết bị di động nhằm thêm mục lục và tự động mở rộng tất cả các đề mục trong bài viết, nhằm tìm hiểu thêm về những vấn đề về điều hướng mà họ gặp phải. Thử nghiệm này sẽ có mặt trên các Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Anh, tiếng Pháp, tiếng Indonesia và tiếng Việt.
* Trước đây, các thông báo đầu trang ([[{{ns:8}}:Sitenotice]] và [[{{ns:8}}:Anonnotice]]) chỉ được hiển thị trên trang web dành cho máy tính để bàn. Giờ đây, chúng sẽ được hiển thị trên mọi nền tảng. Người dùng trên trang web di động nay sẽ thấy được những thông báo này và được thông báo. Các bảo quản viên trang web nên sẵn sàng kiểm tra và sửa các thông báo đầu trang trên các thiết bị di động để tránh xung đột với bài viết. Để từ chối, bảo quản viên giao diện có thể thêm <code dir="ltr">#siteNotice { display: none; }</code> vào [[{{ns:8}}:Minerva.css]]. [https://phabricator.wikimedia.org/T138572][https://phabricator.wikimedia.org/T416644]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:19}} {{PLURAL:19|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề trên [[Special:RecentChanges|Đặc biệt:Thay đổi gần đây]] đã được giải quyết. Trước đây, nhấn vào nút ẩn trên các bộ lọc đang được áp dụng khiến cho nút "xem những thay đổi mới từ…" biến mất, dù nó đáng lẽ phải được hiển thị. Nút này giờ đây sẽ hoạt động như mong đợi. [https://phabricator.wikimedia.org/T406339]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Hiện đã có tài liệu mới giúp biên tập viên gỡ lỗi các tính năng tìm kiếm trên trang. Nó hỗ trợ việc khắc phục sự cố khi các trang xuất hiện trong kết quả tìm kiếm, khi thứ hạng có vẻ không như mong đợi và khi bạn cần kiểm tra nội dung nào đang được lập chỉ mục, giúp việc tìm hiểu và phân tích hành vi tìm kiếm trở nên dễ dàng hơn. [[mw:Help:CirrusSearch/Debug|Tìm hiểu thêm]]. [https://phabricator.wikimedia.org/T411169]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.16|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/08|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W08"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:17, ngày 16 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30086330 -->
== Bản tin Kỹ thuật: Tuần 09-2026 ==
<section begin="technews-2026-W09"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/09|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Tính năng [[mw:Special:MyLanguage/Edit check/Reference Check|Kiểm tra Nguồn Tham khảo]] đã được triển khai tới Wikipedia tiếng Anh, điều này có nghĩa là việc triển khai tính năng trên tất cả các trang Wikipedia đã hoàn thành. Tính năng này nhắc những người mới thêm nguồn tham khảo trước khi đăng nội dung mới, giúp giảm thiểu việc lùi sửa liên quan đến các vấn đề nguồn tham khảo phổ biến và cải thiện khả năng kiểm chứng được. Trong quá trình thử nghiệm A/B, tính năng này mang lại hiệu quả rất đáng kể: những người mới có hiển thị Kiểm tra Nguồn Tham khảo có khả năng thêm nguồn tham khảo cao hơn khoảng 2,2 lần trên trang web dành cho máy tính và cao hơn khoảng 17,5 lần trên trang web dành cho di động. [https://analytics.wikimedia.org/published/reports/editing/reference_check_ab_test_report_final_2025.html]
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Extension:InterwikiSorting|Phần mở rộng InterwikiSorting]], một phần mở rộng cho phép [[m:Special:MyLanguage/Interwiki sorting order|sắp xếp các liên kết liên wiki]], đã bị gỡ bỏ khỏi Wikipedia. Do đó, những biên tập viên đã bật tính năng sắp xếp liên kết liên wiki ở chế độ không rút gọn (định dạng danh sách đầy đủ) sẽ thấy được rằng các liên kết được sắp xếp lại. Các liên kết từ nay trở đi sẽ được liệt kê theo thứ tự bảng chữ cái dựa trên mã ngôn ngữ. [https://phabricator.wikimedia.org/T253764]
* Cuối tuần này, người dùng sửa đổi một đề mục của trang bằng cách sử dụng trình soạn thảo trực quan trên thiết bị di động, sẽ nhìn thấy một nút mới có tên "Sửa đổi toàn bộ trang". Khi chạm vào nút đó, bạn sẽ có thể sửa đổi toàn bộ bài viết. Điều này sẽ giúp ích khi thay đổi bạn muốn thực hiện nằm ngoài đề mục mà bạn mở ban đầu. [https://phabricator.wikimedia.org/T387175][https://phabricator.wikimedia.org/T409112]
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đang mời các biên tập viên đánh giá xem chế độ tối có nên tiếp tục được coi là ở giai đoạn "thử nghiệm" (beta) trên wiki của họ hay không, dựa trên kinh nghiệm của họ về mức độ hoạt động tốt hay không của chế độ này trên máy tính và thiết bị di động. Nếu tính năng này được đánh giá là hoàn thiện rồi, thì các biên tập viên có thể cập nhật các thông báo giao diện trong <code dir=ltr>MediaWiki:skin-theme-description</code> và <code dir=ltr>MediaWiki:Vector-night-mode-beta-tag</code> để cho biết rằng chế độ tối đã sẵn sàng và không còn được coi là trong giai đoạn thử nghiệm nữa.
* [[mw:Wikimedia_Apps/Team/iOS/Activity_Tab|Tab Hoạt động]] được cải tiến mà hiển thị thông tin chuyên sâu về người dùng nay có sẵn cho tất cả người dùng ứng dụng Wikipedia trên (phiên bản 7.9.0 trở lên). Sau quá trình thử nghiệm A/B trước đây cho thấy tỷ lệ tạo tài khoản trong số những người dùng có quyền truy cập vào tính năng này cao hơn, tính năng này đã được triển khai cho 100% người dùng kèm vài cập nhật. Tab Hoạt động nay hiển thị các bài viết bạn đã sửa đổi trên dòng thời gian, cung cấp thông tin chi tiết về tác động của việc sửa đổi chẳng hạn như số lượng đóng góp và xu hướng xem bài viết, cùng những tùy chọn tùy chỉnh để cải thiện trải nghiệm dành cho người dùng trong ứng dụng.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho [[mw:Special:MyLanguage/Extension:DiscussionTools|Công cụ Thảo luận (DiscussionTools)]] không thể hoạt động trên thiết bị di động, từ đó khôi phục đầy đủ tất cả chức năng. [https://phabricator.wikimedia.org/T415303]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi từ nhiều wiki trên cùng một trang. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] giúp thực hiện được điều này tiếp tục được cải tiến. Cải tiến mới nhất là việc bổ sung [[mw:Extension:GlobalWatchlist#hook|hook mới]], <code dir=ltr>ext.globalwatchlist.rebuild</code>, được kích hoạt sau mỗi lần xây dựng lại danh sách theo dõi. Điều này cho phép bạn chạy các tiện ích và đoạn mã người dùng cho trang Đặc biệt. [https://phabricator.wikimedia.org/T275159]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.17|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/09|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W09"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:03, ngày 23 tháng 2 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30119102 -->
== Bản tin Kỹ thuật: Tuần 10-2026 ==
<section begin="technews-2026-W10"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/10|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments|Chế độ Sinh nhật]] Wikipedia 25 nay đã có mặt trên các trang Wikipedia tiếng Betawi, tiếng Breton, tiếng Trung, tiếng Séc, tiếng Hà Lan, tiếng Anh, tiếng Pháp, tiếng Gorontalo, tiếng Indonesia, tiếng Ý, tiếng Luxembourg, tiếng Madura, tiếng Sicilia, tiếng Tây Ban Nha, tiếng Thái và tiếng Việt! Tính năng chiến dịch hữu hạn này kỷ niệm 25 năm thành lập Wikipedia cùng linh vật cho ngày sinh nhật, Quả cầu Nhỏ (Baby Globe). Khi được bật, Quả cầu Nhỏ được hiển thị trên [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments/article configuration|~2,500 bài viết]], chờ người đọc khám phá. Cộng đồng có thể chọn bật chế độ Sinh nhật bằng cách đạt đồng thuận từ cộng đồng của mình và yêu cầu một bảo quản viên bật tính năng đó cũng như tùy chỉnh nó thông qua [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments#Community Configuration Demo|cấu hình cộng đồng]] trên wiki cục bộ.
'''Cập nhật cho biên tập viên'''
* [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Tham chiếu phụ (sub-referencing)]], một tính năng mới để tái sử dụng nguồn tham khảo với những chi tiết khác đã được triển khai tới Wikipedia tiếng Thụy Điển, Wikipedia tiếng Ba Lan và [[:phab:T418209|một vài trang wiki khác]]. Bạn có thể [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#test|thử tính năng này]] trên những dự án đó hoặc trên testwiki và [https://en.wikipedia.beta.wmcloud.org/wiki/Sub-referencing betawiki]. Kinh nghiệm từ wiki thí điểm đầu tiên Wikipedia tiếng Đức đã được [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing/Learnings|công bố trong báo cáo]]. Hãy liên hệ với nhóm Wikimedia Deutschland nếu bạn [[:m:Talk:WMDE Technical Wishes/Sub-referencing#Pilot wikis|quan tâm đến việc trở thành một wiki thí điểm]].
* [[mw:Special:MyLanguage/Help:Edit check#Paste check|Kiểm tra Chép dán]] (Paste Check) sẽ có mặt trên mọi trang Wikipedia trong tuần này. Tính năng này nhắc những người mới dán các đoạn văn bản mà họ không chắc viết vào Trình Soạn thảo Trực quan cân nhắc xem làm như thế có nguy cơ vi phạm bản quyền hay không. Kiểm tra Chép dán [[mw:Special:MyLanguage/Edit check/Tags|gắn thẻ]] tất cả sửa đổi mà nó hiển thị để có thể xem xét tiếp. Các bảo quản viên cục bộ có thể thiết lập cấu hình cho các khía cạnh khác nhau của tính năng này thông qua [[{{#special:EditChecks}}]]. [[mw:Special:MyLanguage/Edit check/Paste Check#A/B Experiment|Nghiên cứu]] trên 22 wiki cho thấy Kiểm tra Chép dán giúp giảm 18% số lượng sửa đổi bị lùi lại wikis found that so với nhóm đối chứng. Các biên dịch viên có thể [https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-visualeditor-ve-mw-editcheck&filter=&optional=1&action=translate giúp biên dịch] tính năng này cùng những tính năng có liên quan.
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] sẽ chuẩn hóa menu người dùng ở góc trên bên phải cho tất cả người dùng di động nhằm giúp nó gần giống trải nghiệm trên máy tính hơn. Hiện tại menu người dùng này chỉ hiển thị cho những người đã bật Chế độ Điều khiển Di động Nâng cao (AMC). Thay đổi duy nhất là một vài nút trước đây ở menu bên trái sẽ chuyển sang góc trên bên phải cho người dùng không bật chế độ AMC. Thay đổi này dự kiến được triển khai vào ngày 9 tháng 3 và nhằm mục đích cải thiện giao diện người dùng. [https://phabricator.wikimedia.org/T413912]
* Bắt đầu từ tuần ngày 2 tháng 3, các email được gửi khi thêm, xóa hoặc sửa địa chỉ email của tài khoản sẽ chuyển sang định dạng email HTML đẹp mắt và rõ ràng hơn nhiều so với định dạng email văn bản thuần túy trước đây. [https://phabricator.wikimedia.org/T410807]
* Thông báo hiện chỉ giới hạn lưu 2.000 mục lịch sử cho mỗi người dùng, điều này kéo dài trở về năm 2013 khi tính năng này mới được phát hành. Giờ nó sẽ thay đổi thành việc lưu các Thông báo trong 5 năm trở lại đây, nhưng mở rộng lên tối đa 10.000 mục. Điều này sẽ giúp bảo vệ cơ sở hạ tầng và giúp ngăn việc những thông báo xuất hiện gần đây hơn biến mất quá sớm. [https://phabricator.wikimedia.org/T383948]
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi của bạn từ nhiều wiki khác nhau trên cùng một trang tiếp tục được cải tiến. Lần cập nhật gần đây nhất cải thiện trải nghiệm sử dụng nhãn. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] nay cho phép kích hoạt [[mw:Special:MyLanguage/Manual:Language#Fallback languages|hệ thống ngôn ngữ dự phòng]] cho các khoản mục Wikidata không có nhãn bằng ngôn ngữ được xem, đồng thời hiển thị những nhãn đó trong ngôn ngữ Wikidata yêu thích của người dùng nếu không cung cấp tham số URL <code dir=ltr>uselang=</code>. [https://phabricator.wikimedia.org/T373686][https://phabricator.wikimedia.org/T416111]
* Nhóm Wikipedia dành cho Android đã bắt đầu cuộc thử nghiệm beta cho tính năng [[mw:Special:MyLanguage/Readers/Information Retrieval/Phase 1|tìm kiếm kết hợp]] (hybrid search) trên Wikipedia tiếng Hy Lạp. Khả năng tìm kiếm kết hợp có thể xử lý cả truy vấn ngữ nghĩa và từ khóa giúp người đọc dễ dàng tìm kiếm những gì họ muốn tìm kiếm ngay trên Wikipedia hơn.
* Vì lý do bảo mật, thành viên của một vài nhóm người dùng nhất định [[m:Special:MyLanguage/Mandatory two-factor authentication for users with some extended rights|bắt buộc phải bật tính năng xác thực hai yếu tố]] (2FA). Hiện tại, 2FA bắt buộc phải được bật để sử dụng nhóm người dùng, nhưng không cần phải là để trở thành thành viên nhóm đó. Do mô hình này vẫn còn một vài lỗ hổng, tình hình này sẽ [[phab:T418580|dần dần thay đổi vào tháng 3]]. Các thành viên thuộc những nhóm người dùng đó sẽ không thể tắt phương thức 2FA cuối cùng có trên tài khoản của họ, và sẽ không thể thêm người dùng không dùng 2FA vào những nhóm này. Người dùng vẫn sẽ có thể thêm phương thức xác thực mới hoặc loại bỏ chúng, miễn là còn ít nhất một phương thức được bật. Trong khoảng nửa sau của tháng 3, những người dùng mà không có 2FA sẽ bị loại bỏ khỏi những nhóm này. Điều này áp dụng cho: Bảo quản viên Thông báo Trung ương, kiểm định viên, bảo quản viên giao diện, giám sát viên, nhân viên Wikidata, nhân viên Wikifunctions, bộ phận CNTT của Văn phòng WMF và bộ phận Tin cậy & An toàn của and WMF. Sẽ không có gì thay đổi với những người dùng khác. Xem tác vụ được liên kết để biết khung thời gian triển khai. [https://phabricator.wikimedia.org/T418580]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề ngăn người dùng tạo một phiên bản trong [https://www.wikibase.cloud/ Wikibase.cloud] hiện đã được giải quyết. [https://phabricator.wikimedia.org/T416807]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Để giúp đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng cơ sở hạ tầng một cách hợp lý]], trong tháng tới Quỹ Wikimedia sẽ triển khai giới hạn truy cập API toàn cục trên tất cả các API của chúng tôi. Vào đầu tháng 3, các giới hạn nghiêm ngặt hơn sẽ được áp dụng cho các yêu cầu không xác định từ bên ngoài Toolforge/WMCS và các yêu cầu API được thực hiện từ các trình duyệt web. Vào tháng 4, những giới hạn cao hơn sẽ được áp dụng cho lưu lượng truy cập được xác định. Những giới hạn này được cố ý đặt ở mức cao nhất có thể nhằm giảm thiểu tác động đến cộng đồng. Các bot chạy trong Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào sẽ không bị ảnh hưởng vào lúc này. Tuy vậy, mọi nhà phát triển được khuyến cáo làm theo những lời khuyên thực tiễn được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn truy cập]].
* Điểm cuối Truy vấn Dữ liệu được Liên kết (LDF) của Dịch vụ Truy vấn Wikidata sẽ ngừng hoạt động vào tháng 2. Điểm cuối này phục vụ lưu lượng truy cập hạn chế, lưu lượng này đã được chuyển đổi thành công sang các phương thức truy cập dữ liệu khác phù hợp hơn để hỗ trợ các trường hợp sử dụng (use case) hiện có. Phần cứng được sử dụng để hỗ trợ điểm cuối LDF sẽ được phân bổ lại để hỗ trợ những nỗ lực chuyển đổi hệ thống backend đang diễn ra. [https://phabricator.wikimedia.org/T415696]
* Trình phân tích cú pháp Parsoid mới [[mw:Special:MyLanguage/Parsoid/Parser Unification/Updates|tiếp tục được triển khai đến nhiều wiki hơn]], nhằm cải thiện tính bền vững của nền tảng và giúp việc giới thiệu các tính năng đọc và sửa đổi mới trở nên dễ dàng hơn. Parsoid nay là trình phân tích cú pháp mặc định trên 488 trang wiki của WMF (268 trang Wikipedia), hiện chiếm hơn 10% tổng số lượt xem trang Wikipedia.
* Quy trình và tiêu chí để [[Special:MyLanguage/Wikimedia Enterprise#Access|yêu cầu quyền truy cập đặc biệt]] vào nguồn cấp dữ liệu khối lượng lớn của API ''Wikimedia Enterprise'' (miễn phí cho các trường hợp sử dụng phù hợp với nhiệm vụ), [[m:Talk:Wikimedia Enterprise#Exceptional access criteria|hiện đã được công bố]]. Điều này nhằm cung cấp tài liệu đầy đủ và rõ ràng hơn cho người dùng.
* [https://techblog.wikimedia.org/ Blog Kỹ thuật], một blog dành riêng cho cộng đồng kỹ thuật Wikimedia [https://techblog.wikimedia.org/2026/02/24/a-tech-blog-diff/ sẽ được chuyển] sang [[diffblog:|Diff]], blog tin tức và sự kiện cộng đồng. Việc chuyển đổi dự kiến sẽ được hoàn thành vào tháng 4 năm 2026, sau thời điểm này các bài viết mới sẽ được chấp nhận xuất bản. Người đọc sẽ có thể truy cập các bài đăng – cả bài cũ và mới – trên trang đích này tại https://diff.wikimedia.org/techblog.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.18|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/10|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W10"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:51, ngày 2 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30137798 -->
== Bản tin Kỹ thuật: Tuần 11-2026 ==
<section begin="technews-2026-W11"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/11|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* [[m:Special:MyLanguage/Tech/Server switch|Tất cả các wiki sẽ chuyển sang chế độ chỉ đọc trong vòng vài phút]] vào thứ 4, ngày 25 tháng 3 năm 2026 lúc [https://zonestamp.toolforge.org/1774450800 15:00 UTC]. Điều này là nhằm phục vụ cho việc thử nghiệm chuyển đổi máy chủ cơ sở dữ liệu dự phòng, [[wikitech:Deployments/Yearly calendar|diễn ra hai lần trong một năm]]. Trong quá trình chuyển đổi này, toàn bộ lưu lượng trên các trang web của Wikimedia được chuyển từ trung tâm dữ liệu chính sang trung tâm dữ liệu dự phòng nhằm kiểm tra tính khả dụng và ngăn ngừa việc gián đoạn dịch vụ ngay cả trong những trường hợp khẩn cấp.
* Tuần trước, tất cả các wiki đều bị giới hạn ở chế độ chỉ đọc trong vòng 2 giờ đồng hồ, cùng với đó các đoạn mã người dùng và tiện ích cũng không khả dụng trong thời gian được kéo dài. Điều này là do một sự cố bảo mật mà đã được khắc phục sau đó. Chúng tôi đang tiếp tục cố gắng để ngăn điều này tái diễn. Để cập nhật thông tin vui lòng xem [[m:Steward's noticeboard#Statement on Meta about today's user script security incident|bài đăng trên bảng tin của Nhân viên]] ([[m:Special:MyLanguage/Wikimedia Foundation/Product and Technology/Product Safety and Integrity/March 2026 User Script Incident|bản dịch]]).
'''Cập nhật cho biên tập viên'''
* Người dùng đang gặp phải nhiều lệnh cấm trên thiết bị di động nay sẽ thấy lý do cấm cho từng lần cấm riêng thay vì một thông báo chung chung. Điều này giúp họ hiểu tại sao mình bị cấm và cần thực hiện những bước nào để giải quyết vấn đề. Ví dụ, người dùng bị ảnh hưởng do sử dụng VPN phổ biến (chẳng hạn như [[Special:MyLanguage/Apple iCloud Private Relay|iCloud Private Relay]]) sẽ nhận được hướng dẫn rõ ràng hơn những việc cần làm để bắt đầu lại việc sửa đổi. [https://phabricator.wikimedia.org/T357118]
* Cuối tuần này, [[mw:Special:MyLanguage/VisualEditor/Suggestion Mode|Chế độ Đề xuất]] sẽ được cung cấp dưới dạng tính năng beta trong trình soạn thảo trực quan trên tất cả các trang Wikipedia. Tính năng này chủ động đề xuất nhiều loại hành động mà người dùng có thể cân nhắc thực hiện để cải thiện các bài viết trên Wikipedia, đồng thời tìm hiểu về các hướng dẫn có liên quan. Tính năng này có thể được cấu hình cục bộ và cũng có thể được mở rộng cục bộ với bằng việc tùy chỉnh Đề xuất. Cài đặt hiện tại có thể xem được tại trang [[Special:EditChecks]] và có [[mw:Special:MyLanguage/Help:Suggestion mode#For administrators %E2%80%93 local customization|hướng dẫn cách bảo quản viên có thể tùy chỉnh]] các liên kết để chỉ tới những trang hướng dẫn cục bộ. Tính năng này được kết nối với tính năng [[mw:Special:MyLanguage/Help:Edit check|Kiểm tra sửa đổi]], một tính năng đưa ra đề xuất cải thiện trong khi người nào đó viết nội dung mới. Trong tương lai, nhóm Sửa đổi dự kiến đánh giá tác động của tính năng này đối với người dùng mới thông qua một thử nghiệm có kiểm soát. [https://phabricator.wikimedia.org/T404600]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố liên quan đến việc con trỏ bị lệch khi sử dụng tính năng tô sáng cú pháp của CodeMirror, một tính năng giúp mã wiki (wikitext) và mã code dễ đọc hơn, nay đã được giải quyết. Vấn đề này đặc biệt ảnh hưởng đến những người dùng đã định nghĩa quy tắc phông chữ trong stylesheet tùy chỉnh khi tạo chủ đề mới bằng Công cụ Thảo luận. [https://phabricator.wikimedia.org/T418793]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Cập nhật về giới hạn truy vấn API: Để giúp đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng hợp lý cơ sở hạ tầng]], giới hạn truy vấn API toàn cục sẽ được áp dụng trong tuần này cho các yêu cầu không có User-Agent hợp lệ bắt nguồn từ bên ngoài Toolforge/WMCS cùng các yêu cầu chưa được xác thực được thực hiện từ trình duyệt web. Trong tháng 4 tới sẽ thiết lập giới hạn cao hơn cho lưu lượng truy cập được xác định. Các bot chạy trên Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào hiện sẽ không bị ảnh hưởng vì điều này. Tuy vậy, mọi nhà phát triển được khuyến cáo nên tuân theo những hướng dẫn thực tiễn tốt nhất được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn truy vấn]].
* API GraphQL mới đã được phát hành. API này được phát triển như một giải pháp thay thế linh hoạt cho một số tính năng nhất định của Dịch vụ Truy vấn Wikidata (WDQS), nhằm cải thiện trải nghiệm và khả năng thích ứng của nhà phát triển, đồng thời giúp truy cập dữ liệu hiệu quả. Hãy dùng thử và [[d:Wikidata:Wikibase GraphQL#Feedback and development|gửi phản hồi]] của mình. Bạn cũng có thể [https://greatquestion.co/wikimediadeutschland/GraphQLAPI/apply đăng ký tham gia các bài kiểm tra về khả năng sẵn dùng].
* Vào tháng 2 [[m:Special:MyLanguage/Product and Technology Advisory Council/Unsupported Tools Working Group|Nhóm Làm việc cho Công cụ Không được Hỗ trợ PTAC]] đã tiếp tục cải tiến [[commons:Special:MyLanguage/Commons:Video2commons#|Video2Commons]], trong đó sửa các lỗi liên quan đến lỗi xác thực, xử lý tệp lớn, khả năng hiển thị hàng đợi tác vụ và làm rõ hơn hành vi tải lên. Hiện một số lĩnh vực vẫn đang được tiến hành thực hiện, trong đó có những thay đổi liên quan đến việc tải lên từ phía máy chủ đã lỗi thời. Hãy đọc [[m:Special:MyLanguage/Product and Technology Advisory Council/Unsupported Tools Working Group#February 2026|phần cập nhật này]] để tìm hiểu thêm.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.19|MediaWiki]]
'''Chuyên sâu'''
* Nhóm Hướng dẫn Bài viết mời các biên tập viên Wikipedia có kinh nghiệm từ một số [[mw:Special:MyLanguage/Article guidance/Pilot wikis and collaborators#Collaborators|wiki thí điểm]] được chọn cùng những người đóng góp có quan tâm từ các trang Wikipedia khác điền vào bảng câu hỏi này, có sẵn bằng [https://docs.google.com/forms/d/e/1FAIpQLSfmLeVWnxmsCbPoI_UF2jyRcn73WRGWCVPHzerXb4Cz97X_Ag/viewform tiếng Anh], [https://docs.google.com/forms/d/e/1FAIpQLSd6rzr4XXQw8r4024fE3geTPFe13M_6w7Mitj-YJi0sOlWTAw/viewform?usp=header tiếng Ả Rập], [https://docs.google.com/forms/d/e/1FAIpQLSdok3-RfB18lcugYTUMGkpwmqG_8p760Wv4dCXitOXOszjUDw/viewform?usp=header tiếng Bengali], [https://docs.google.com/forms/d/e/1FAIpQLSfjTfYp4jEo0akA4B1e-Nfg3QZPCudUjhJzHzzDi6AHyAaMGA/viewform?usp=header tiếng Nhật], [https://docs.google.com/forms/d/e/1FAIpQLScteVoI29Aue4xc72dekk-6RYtvmMgQxzMI900UOawrFrSTWg/viewform?usp=header tiếng Bồ Đào Nha], [https://docs.google.com/forms/d/e/1FAIpQLSetdxnYwL3ub2vqA7awCg5hJZPMIYcDPaiTe12rY9h0GYnVlw/viewform?usp=header tiếng Ba Tư] và [https://docs.google.com/forms/d/e/1FAIpQLScNvfJF-Ot-4pzA4qAN771_0QDJ4Li19YcUsaTgSKW8Nc7U_Q/viewform?usp=header tiếng Thổ Nhĩ Kỳ]. Phản hồi của bạn sẽ giúp nhóm tùy chỉnh hướng dẫn cho các biên tập viên ít kinh nghiệm hơn và giúp họ tìm hiểu các chính sách và thực tiễn của cộng đồng khi tạo bài viết. Tìm hiểu thêm [[mw:Special:MyLanguage/Article guidance|trên trang dự án]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/11|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W11"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:53, ngày 9 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30213008 -->
== Bản tin Kỹ thuật: Tuần 12-2026 ==
<section begin="technews-2026-W12"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/12|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]], còn được biết đến với tên [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror 6]], được sử dụng để tô sáng cú pháp mã wiki kể từ tháng 11 năm 2024. Tính năng này sẽ chính thức kết thúc giai đoạn thử nghiệm beta vào tháng 5 năm 2026 nhằm đưa những cải tiến và [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Features|tính năng]] mới cho tất cả biên tập viên sử dụng trình tô sáng cú pháp tiêu chuẩn. Nếu bạn có bất kỳ câu hỏi hoặc thắc mắc nào về việc kết thúc giai đoạn thử nghiệm beta cho tính năng này, [[mw:Special:MyLanguage/Help talk:Extension:CodeMirror|vui lòng chia sẻ với chúng tôi]]. [https://phabricator.wikimedia.org/T259059]
* Một số thay đổi đối với quyền nhóm người dùng cục bộ được tiếp viên trên Meta-Wiki thực hiện và nhật trình về những thay đổi này chỉ được ghi lại trên đó. Giờ đây, thay đổi về quyền liên wiki sẽ được ghi lại trên cả Meta-Wiki và wiki của người dùng mục tiêu để giúp dễ dàng truy cập vào toàn bộ bản ghi thay đổi quyền người dùng trên wiki cục bộ hơn. Những mục nhật trình trước đây về những thay đổi này sẽ được cập nhật trong những tuần tiếp theo. [https://phabricator.wikimedia.org/T6055]
* Trên các wiki sử dụng [[m:Special:MyLanguage/Flagged Revisions|Thay đổi Được gắn cờ (Flagged Revisions)]], số lượng thay đổi đang chờ được hiển thị trên [[{{#Special:PendingChanges}}]] trước đây tính cả những trang mà không còn ở trong trạng thái đang chờ xem xét, do chúng đã bị xóa khỏi hệ thống mà không được xem xét lại, v.d. do bị xóa, được di chuyển sang không gian tên khác, hoặc do thay đổi cấu hình wiki. Bộ đếm giờ sẽ được hiển thị chính xác. Trên một số wiki số lượng thay đổi được hiển thị sẽ nhỏ hơn nhiều so với trước đây. Bản thân danh sách các trang sẽ không có thay đổi gì. [https://phabricator.wikimedia.org/T413016]
* Ngôn ngữ soạn thảo của Wikifunctions đã được viết lại, tạo ra một phiên bản mới của ngôn ngữ này. Thay đổi này nhằm mục đích tăng cường tính ổn định của dịch vụ bằng cách giảm mức tiêu thụ bộ nhớ của trình điều phối. Việc viết lại này cũng giúp cho phép giảm đáng kể độ trễ, đơn giản hóa mã nguồn và tạo ra các lớp trừu tượng tốt hơn, nhằm mở ra cơ hội bổ sung thêm các tính năng khác trong tương lai. Đọc thêm về [[f:Special:MyLanguage/Wikifunctions:Status updates/2026-03-11|các thay đổi này]].
* Người dùng nay có thể sắp xếp kết quả tìm kiếm theo thứ tự bảng chữ cái dựa trên tiêu đề trang. Lần cập nhật này cung cấp thêm một tùy chọn giúp cho việc tìm kiếm trang trở nên dễ dàng và nhanh chóng hơn. Trước đây, kết quả có thể được sắp xếp theo Ngày sửa đổi, Ngày tạo, hoặc Mức độ liên quan. Để sử dụng tùy chọn mới này, hãy mở 'Tìm kiếm nâng cao' trên trang kết quả tìm kiếm và chọn 'Thứ tự bảng chữ cái' trong mục 'Thứ tự sắp xếp'. [https://phabricator.wikimedia.org/T403775]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho Trình tải lên tập tin (UploadWizard) trên Wikimedia Commons không thể nhập tập tin từ Flickr nay đã được giải quyết. [https://phabricator.wikimedia.org/T419263]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Một trang đặc biệt mới, [[{{#special:LintTemplateErrors}}]], đã được tạo ra để liệt kê các trang nhúng được đánh dấu là chứa lỗi lint để giúp người dùng dễ dàng phát hiện chúng hơn. Danh sách được sắp xếp theo số lượng các trang được nhúng mà có lỗi. Ví dụ: [[{{#special:LintTemplateErrors}}/night-mode-unaware-background-color]]. [https://phabricator.wikimedia.org/T170874]
* Người dùng tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]] hiện đang sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] để tô sáng cú pháp khi sửa đổi các trang nội dung JavaScript, CSS, JSON, Vue và Lua, trong một khoảng thời gian. Cùng với việc kết thúc thử nghiệm beta cho CodeMirror 6, kế hoạch là thay thế CodeEditor để trở thành trình soạn thảo tiêu chuẩn cho những kiểu nội dung này vào tháng 5 năm 2026. [[mw:Special:MyLanguage/Help talk:Extension:CodeMirror|Mọi phản hồi hoặc ý kiến đóng góp đều được hoan nghênh]]. [https://phabricator.wikimedia.org/T419332]
* Các mô đun JavaScript cho [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] JavaScript sẽ sớm được nâng cấp lên CodeMirror 6. Trước thời điểm nâng cấp này, việc tải các mô đun <code dir=ltr>ext.CodeMirror</code> hoặc <code dir=ltr>ext.CodeMirror.lib</code> từ các tiện ích và đoạn mã người dùng đã bị loại bỏ vào tháng 7 năm 2025. Việc sử dụng hook <code dir=ltr>ext.CodeMirror.switch</code> cũng đã bị loại bỏ vào tháng 3 năm 2025. Những người đóng góp nay có thể làm cho các đoạn mã hoặc tiện ích của mình tương thích với CodeMirror 6. Xem [[mw:Special:MyLanguage/Extension:CodeMirror#Gadgets and user scripts|hướng dẫn chuyển đổi]] để biết thêm thông tin. [https://phabricator.wikimedia.org/T373720]
* Nhóm Giao diện MediaWiki đang mở rộng phạm vi định nghĩa mô đun API REST để bao gồm cả [[mw:Special:MyLanguage/API:REST API/Extensions|các API mở rộng]]. Mô đun API REST là nhóm các điểm cuối có liên quan mà có thể được quản lý và đánh phiên bản độc lập. Hiện đã có các mô đun cho API [https://phabricator.wikimedia.org/T414470 GrowthExperiments] và [https://phabricator.wikimedia.org/T419053 Wikifunctions]. Khi chúng tôi chuyển đổi các API mở rộng sang cấu trúc này, tài liệu sẽ được chuyển ra khỏi phần đặc tả chính cho OpenAPI của MediaWiki cùng chế độ xem REST Sandbox, và thay vào đó sẽ có thể truy cập được thông qua tùy chọn dành riêng cho mô đun trong menu thả xuống trên [https://test.wikipedia.org/wiki/Special:RestSandbox REST Sandbox] (nghĩa là, [[{{#Special:RestSandbox}}]], có sẵn trên tất cả các dự án wiki).
* Phần mở rộng [[mw:Special:MyLanguage/Extension:Scribunto|Scribunto]] cung cấp nhiều thông tin khác nhau về wiki nơi mô đun đang được sử dụng thông qua thư viện [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual|mw.site]]. Kể từ tuần trước, thư viện này cũng cung cấp một [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#mw.site.wikiId|cách]] truy cập [[mw:Special:MyLanguage/Manual:Wiki ID|ID của wiki]] có thể được sử dụng để hỗ trợ bảo trì mô đun liên wiki. [https://phabricator.wikimedia.org/T146616]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.20|MediaWiki]]
'''Chuyên sâu'''
* [[m:Special:MyLanguage/Coolest Tool Award|Giải thưởng Công cụ Tuyệt vời nhất năm 2026]] nhằm tôn vinh những công cụ xuất sắc do cộng đồng tạo ra, nay đã mở nhận đề cử! Hãy đề cử công cụ yêu thích của bạn bằng cách sử dụng biểu mẫu [https://wikimediafoundation.limesurvey.net/435684?lang=en khảo sát đề cử] trước ngày 23 tháng 3 năm 2026. Để biết thêm thông tin về quyền riêng tư và xử lý dữ liệu, vui lòng xem [[foundation:Special:MyLanguage/Legal:Coolest_Tool_Award_2026_Survey_Privacy_Statement|tuyên bố về quyền riêng tư của khảo sát]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/12|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W12"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:35, ngày 16 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30260505 -->
== Bản tin Kỹ thuật: Tuần 13-2026 ==
<section begin="technews-2026-W13"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/13|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Người dùng các trang Wikimedia nay có thể đăng nhập mà không cần mật khẩu bằng cách sử dụng khóa truy cập (passkey). Đây là một phương thức bảo mật sử dụng vân tay, nhận diện khuôn mặt hoặc mã PIN. Với thay đổi này, tất cả người dùng chọn đăng nhập không cần mật khẩu sẽ có thể đăng nhập vào tài khoản của mình một cách dễ dàng, nhanh chóng và an toàn hơn trên mọi thiết bị. Tùy chọn đăng nhập mới bằng khóa truy cập hiện hiển thị dưới dạng gợi ý tự động điền trong trường tên người dùng. [[phab:T417120|Nút "Đăng nhập bằng khóa truy cập"]] bổ sung sẽ sớm được cung cấp cho những người dùng đã bật tùy chọn sử dụng khóa truy cập. Lần cập nhật này sẽ cải thiện bảo mật cũng như trải nghiệm người dùng. [[c:File:Passwordless_login_screencast.webm|Bản ghi lại màn hình]] này sẽ minh họa từng bước quy trình đăng nhập không cần mật khẩu.
* [[m:Special:MyLanguage/Tech/Server switch|Tất cả các wiki sẽ chuyển sang chế độ chỉ đọc trong vòng vài phút]] vào thứ 4, ngày 25 tháng 3 năm 2026 lúc [https://zonestamp.toolforge.org/1774450800 15:00 UTC]. Điều này là nhằm phục vụ cho việc thử nghiệm chuyển đổi máy chủ cơ sở dữ liệu dự phòng, [[wikitech:Deployments/Yearly calendar|diễn ra hai lần trong một năm]]. Trong quá trình chuyển đổi này, toàn bộ lưu lượng trên các trang web của Wikimedia được chuyển từ trung tâm dữ liệu chính sang trung tâm dữ liệu dự phòng nhằm kiểm tra tính khả dụng và ngăn ngừa việc gián đoạn dịch vụ ngay cả trong những trường hợp khẩn cấp.
'''Cập nhật cho biên tập viên'''
* Người dùng các trang web của Wikimedia nay có thể xuất các thông báo cách đây hơn 5 năm của mình bằng cách sử dụng [[toolforge:echo-chamber|công cụ Toolforge mới]]. Điều này sẽ đảm bảo rằng người dùng có thể giữ lại được những thông báo quan trọng và tránh bị mất chúng do việc thay đổi theo kế hoạch nhằm xóa đi các thông báo cũ hơn 5 năm, như đã thông báo trước đó. [https://phabricator.wikimedia.org/T383948]
* Các biên tập viên Wikipedia tiếng Indonesia, tiếng Thái, tiếng Thổ Nhĩ Kỳ, và tiếng Anh Đơn giản nay có thể truy cập vào Đặc biệt:Bảng điều khiển cá nhân. Đây là [[mw:Special:MyLanguage/Moderator Tools/Dashboard|phiên bản trải nghiệm sớm]] giúp các biên tập viên mới làm quen với quy trình tuần tra, giúp họ dễ dàng chuyển từ việc sửa đổi sang tham gia vào những công việc kiểm duyệt nâng cao hơn trên dự án của mình. [https://phabricator.wikimedia.org/T402647]
* Trang [[vi:Special:Block|Đặc_biệt:Cấm]] nay có hai thay đổi nhỏ về mặt giao diện. Bảo quản viên nay có thể dễ dàng thực hiện lệnh cấm vô hạn thông qua nút chọn (nút radio) chuyên dụng trong mục thời hạn. Ngoài ra, việc chọn thời hạn là vô hạn sẽ cung cấp một bộ lý do phổ biến khác để lựa chọn, nó có thể được thay đổi tại: [[MediaWiki:Ipbreason-indef-dropdown]]. [https://phabricator.wikimedia.org/T401823]
* Biên tập viên sử dụng thiết bị di động [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#Logged-out|tại một số wiki]] nay có thể nhìn thấy cải tiến về cảnh báo sửa đổi khi chưa đăng nhập, điều này là nhờ cập nhật gần đây từ nhóm Phát triển. Những thay đổi được phát hành vào tuần trước này là một phần trong những nỗ lực và thử nghiệm đang được thực hiện nhằm nâng cao [[mw:Special:MyLanguage/Contributors/Account Creation Experiments|trải nghiệm trong việc tạo tài khoản trên thiết bị di động]] và từ đó giúp tăng cường sự tham gia của họ. [https://phabricator.wikimedia.org/T408484]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:36}} {{PLURAL:36|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến người dùng web trên thiết bị di động không thể nhìn thấy thông tin cấm khi có nhiều lệnh cấm đồng thời được áp dụng đã được giải quyết. Họ giờ có thể xem được tin nhắn cho tất cả các lệnh cấm hiện đang được áp dụng cho họ khi họ truy cập Wikipedia.
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Những image (ảnh) được dựng bằng Toolforge sẽ sớm được nâng cấp lên phiên bản buildpack mới, mang đến việc hỗ trợ các phiên bản ngôn ngữ mới hơn cùng những cải tiến và sửa lỗi khác tại thượng nguồn. Nếu bạn sử dụng Dịch vụ Dựng của Toolforge, hãy xem lại [https://lists.wikimedia.org/hyperkitty/list/cloud-announce@lists.wikimedia.org/thread/EMYTA32EV2V5SQ2JIEOD2CL66YFIZEKV/ email cloud-announce] gần đây và cập nhật cấu hình bản dựng của bạn nếu cần để đảm bảo các công cụ của bạn tương thích với phiên bản mới này. [https://wikitech.wikimedia.org/w/index.php?title=Help:Toolforge/Building_container_images&oldid=2392097#Buildpack_environment_upgrade_process][https://phabricator.wikimedia.org/T380127]
* Wiki tài liệu [https://api.wikimedia.org/wiki/Main_Page Cổng API] sẽ ngừng hoạt động vào tháng 6 năm 2026. Các khóa API được tạo trên Cổng API sẽ tiếp tục hoạt động bình thường. Các điểm cuối của api.wikimedia.org sẽ dần bị loại bỏ bắt đầu từ tháng 7 năm 2026. Tài liệu trên Cổng API đang được chuyển sang [[mw:Wikimedia APIs|mediawiki.org]]. Tìm hiểu thêm trên [[wikitech:API Portal/Deprecation|trang dự án]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.21|MediaWiki]]
'''Chuyên sâu'''
* [[m:Special:MyLanguage/WMDE Technical Wishes|Nhóm Mong muốn – Kỹ thuật của WMDE]] đang xem xét cải tiến [[m:WMDE Technical Wishes/References/VisualEditor automatic reference names|tên chú thích được tạo tự động trong Trình Soạn thảo Trực quan (VisualEditor)]]. Vui lòng xem qua [[m:WMDE Technical Wishes/References/VisualEditor automatic reference names#Proposed solutions|những giải pháp được đề xuất]] và tham gia vào [[m:Talk:WMDE Technical Wishes/References/VisualEditor automatic reference names#Request for comment|thảo luận này]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/13|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W13"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:51, ngày 23 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30268305 -->
== Bản tin Kỹ thuật: Tuần 14-2026 ==
<section begin="technews-2026-W14"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/14|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Phiên bản Beta của [[abstract:|Abstract Wikipedia]] một dự án Wikimedia mới không phụ thuộc ngôn ngữ, đã được khởi động vào tuần trước. Dự án cho phép các cộng đồng xây dựng các bài viết Wikipedia bằng ngôn ngữ mẹ đẻ của họ, và các thành viên khác có thể dễ dàng truy cập các bài viết đó bằng ngôn ngữ của riêng họ. Wiki này hoạt động dựa trên chỉ dẫn từ Wikifunctions và cũng dựa trên nội dung có cấu trúc từ Wikidata. [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-03-26|Đọc thêm]].
'''Cập nhật cho biên tập viên'''
* Nhóm Phát triển đang tiến hành thử nghiệm A/B để đánh giá cho một thông điệp rõ ràng hơn, thân thiện hơn với người dùng nhằm khuyến khích việc tạo tài khoản trên wiki. Hiện tại, khi người dùng di động chưa đăng nhập bắt đầu sửa đổi, họ sẽ thấy một thông báo cảnh báo khó chịu, có thể khiến cho họ có cảm giác đột ngột và nản lòng. Điều này cũng làm cho việc sửa đổi bằng tài khoản tạm thời trở thành mặc định thay vì khuyến khích việc tạo tài khoản. Thử nghiệm đang được thực hiện trên mười trang Wikipedia, bao gồm tiếng Ả Rập, tiếng Pháp, tiếng Tây Ban Nha và tiếng Đức. [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#2. Improve logged-out warning message (T415160)|Đọc thêm]].
* Nhóm Ứng dụng Wikimedia đang mời mọi người đóng góp ý kiến về [[mw:Special:MyLanguage/Wikimedia Apps/Team/Future of Editing on the Mobile Apps|việc sửa đổi trên ứng dụng Wikipedia dành cho thiết bị di động nên hoạt động như thế nào]]. Thảo luận tập trung vào việc cải thiện cách người dùng truy cập công cụ sửa đổi khi họ nhấn vào nút "Sửa đổi". Đây là một phần trong nỗ lực rộng lớn hơn nhằm chuyển đổi những người đọc mà có hứng thú với việc sửa đổi sang một con đường thân thiện hơn với người dùng để có thể bắt đầu đóng góp.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:45}} {{PLURAL:45|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến việc lấy chú thích từ kho lưu trữ báo chí lớn [https://www.newspapers.com Newspapers.com] không còn hoạt động, do bị chặn trong các yêu cầu của [[mw:Special:MyLanguage/Citoid|Citoid]], nay đã được khắc phục. [https://phabricator.wikimedia.org/T419903]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.22|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/14|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W14"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:25, ngày 30 tháng 3 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30329462 -->
== Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) ==
Hello everyone,
This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>).
'''The Change:'''<br />
Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]].
We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''.
'''What You Need To Do:'''<br />
To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search.
'''Deadline:'''<br />
We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles.
Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[Thành viên:MediaWiki message delivery|MediaWiki message delivery]] ([[Thảo luận Thành viên:MediaWiki message delivery|thảo luận]]) 17:11, ngày 3 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:ZI Jony@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29941252 -->
== Bản tin Kỹ thuật: Tuần 15-2026 ==
<section begin="technews-2026-W15"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/15|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Help:Extension:CampaignEvents|Phần mở rộng CampaignEvents]] nay có thêm tính năng mới nhằm thiết lập mục tiêu nhóm, nhằm cho phép những người tổ chức thiết lập và theo dõi mục tiêu sự kiện chẳng hạn như số lượng bài viết được tạo và số lượng người tham gia đóng góp theo thời gian thực. Tương tự, những người tham gia có thể cùng nhau hướng tới các mục tiêu chung và chứng kiến tác động tập thể của họ khi sự kiện diễn ra. Tính năng này hiện đã có trên tất cả các wiki của Wikimedia. Tìm hiểu thêm trong [[mw:Special:MyLanguage/Help:Extension:CampaignEvents/Registration/Collaborative contributions#Goal setting|trang tài liệu này]].
* [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Mục Mong muốn cộng đồng]] Tính năng [[mw:Special:MyLanguage/Help:Watchlist labels|gán nhãn danh sách theo dõi]] mới (được công bố trong [[m:Special:MyLanguage/Tech/News/2026/07|Bản tin Kỹ thuật 2026-07]]) nay có sẵn thông qua Trình Soạn thảo Trực quan, trình soạn thảo mã nguồn, và biểu tượng 'sao theo dõi' (hoặc liên kết theo dõi, đối với các giao diện không có biểu tượng hình sao). Trước đây việc gán nhãn như vậy chỉ có thể thực hiện được thông qua [[Special:EditWatchlist|EditWatchlist]]. Ở cả ba nơi đó, đây đều sẽ là trường mới ngay sau sau trường thời điểm hết hạn theo dõi.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà trang thảo luận trên thiết bị di động dùng Parsoid không thể sử dụng được sau đề mục không có tiêu đề, nay đã được giải quyết. [https://phabricator.wikimedia.org/T419171]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Tính năng chú thích phụ]], một tính năng cho phép biên tập viên thêm thông tin chi tiết vào nguồn tham khảo hiện có mà không cần nhân bản nó, sẽ được triển khai dần dần tới [[phab:T414094|nhiều trang wiki hơn]] vào cuối năm nay. Các wiki sử dụng tiện ích [[mw:Special:MyLanguage/Reference Tooltips|Chú thích nổi]] được khuyến khích cập nhật phiên bản của mình (thường là tại [[m:MediaWiki:Gadget-ReferenceTooltips.js|MediaWiki:Gadget-ReferenceTooltips.js]] như được hiển thị tại [https://en.wikipedia.org/w/index.php?diff=1344408362 đây]) để đảm bảo khả năng tương thích. Các tiện ích khác liên quan đến nguồn tham khảo khác cũng có thể bị ảnh hưởng. [https://phabricator.wikimedia.org/T416304]
* Tất cả các phiên bản của Wikinews sẽ bị đóng và chuyển sang chế độ chỉ đọc vào ngày 4 tháng 5 năm 2026. Mọi nội dung vẫn sẽ có thể truy cập được, nhưng sẽ không thể thêm bất kỳ sửa đổi hoặc bài viết mới nào. Việc đóng này đã được Hội đồng Quản trị của Quỹ Wikimedia phê duyệt sau những cuộc thảo luận kéo dài. [[m:Wikimedia Foundation Board noticeboard#Board of Trustees Approves Closure of Wikinews|Đọc thêm]].
* [[:mw:Special:MyLanguage/API:Action API|API Tác vụ]] có một số kiểu định dạng đầu ra được yêu cầu. Một trong số chúng, <bdi lang="zxx" dir="ltr"><code><nowiki>format=php</nowiki></code></bdi>, sẽ sớm bị loại bỏ. Vui lòng đảm bảo rằng các tập lệnh hoặc bot của bạn sử dụng [[mw:Special:MyLanguage/API:Data formats#Output|kiểu định dạng JSON]]. Việc loại bỏ này sẽ chỉ ảnh hưởng đến một số lượng rất nhỏ các tập lệnh người dùng và bot. [https://phabricator.wikimedia.org/T118538]
* Trang [[Special:NamespaceInfo|Đặc biệt:NamespaceInfo]] nay có chứa phần viết tắt không gian tên. Ví dụ "WP" cho không gian tên "Project" ("Wikipedia") trên Wikipedia tiếng Đức. [https://phabricator.wikimedia.org/T381455]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.23|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/15|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W15"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:19, ngày 6 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30362761 -->
== Bản tin Kỹ thuật: Tuần 16-2026 ==
<section begin="technews-2026-W16"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/16|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Các biên tập viên có kinh nghiệm được mời tham gia [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Main_Page thử nghiệm] tính năng [[mw:Special:MyLanguage/Article guidance|Hướng dẫn bài viết]], được thiết kế để giúp các biên tập viên ít kinh nghiệm hơn tạo ra các bài viết Wikipedia có cấu trúc tốt và phù hợp với quy định. Hướng dẫn thử nghiệm [[mw:Special:MyLanguage/Article guidance/Test feature guide|có sẵn tại đây]]. Ngoài ra, sau khi xem xét [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Category:Pages_using_article_guidance bản tóm tắt này], vui lòng cung cấp phản hồi trên [[mw:Talk:Article guidance|trang thảo luận của dự án]]. Dựa trên ý kiến đóng góp của bạn, tính năng này sẽ được tinh chỉnh và chuyển giao cho các trang Wikipedia thí điểm để biên dịch và điều chỉnh cho thích hợp. Hãy xem qua [[c:File:Article Guidance workflow demo - April 2026.webm|video]] giải thích về tính năng này.
'''Cập nhật cho biên tập viên'''
* Trên hầu hết các trang wiki, tất cả thành viên tự xác nhận nay có thể sử dụng trang [[Special:ChangeContentModel|Đặc biệt:ChangeContentModel]] để [[mw:Special:MyLanguage/Help:ChangeContentModel|tạo trang mới với kiểu nội dung tùy chỉnh]], chẳng hạn như danh sách gửi thông báo rộng rãi, giúp cho định dạng trang tùy chỉnh trở nên dễ tiếp cận hơn. Kiểm tra [[Special:ListGroupRights|Đặc biệt:Quyền nhóm người dùng]] để biết trạng thái trên wiki của bạn. [https://phabricator.wikimedia.org/T248294]
* Nhóm Phát triển đã khởi động một [[mw:Special:MyLanguage/Contributors/Account_Creation_Experiments|thử nghiệm tạo tài khoản]] để đánh giá xem việc thêm nút tạo tài khoản vào phần đầu trang web trên thiết bị di động có làm tăng số lượng người đăng ký tài khoản mới và khuyến khích nhiều người dùng thiết bị di động đóng góp vào wiki hay không. Thử nghiệm hiện đang được thực hiện trên Wikipedia tiếng Hindi, tiếng Indonesia, tiếng Bengali, tiếng Thái và tiếng Do Thái, và nhắm mục tiêu vào 10% người dùng web trên di động chưa đăng nhập.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố có thể khiến Trình Soạn thảo Trực quan bị kẹt khi tải trên các thiết bị Windows đã tắt hiệu ứng hoạt ảnh, nay đã được giải quyết. [https://phabricator.wikimedia.org/T382856]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Kể từ cuối tuần này, {{int:group-abusefilter}} đã bật tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]] sẽ sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] làm trình soạn thảo tại [[Special:AbuseFilter|Đặc biệt:Bộ lọc sai phạm]]. Đây là một phần trong nỗ lực rộng lớn hơn nhằm mang lại trải nghiệm người dùng nhất quán hơn trên tất cả các trình soạn thảo. [https://phabricator.wikimedia.org/T399673][https://phabricator.wikimedia.org/T419332]
* Các công cụ và bot truy cập vào [[mw:Special:MyLanguage/Notifications/API|API Thông báo]] (<bdi lang="zxx" dir="ltr"><code><nowiki>action=query&meta=notifications</nowiki></code></bdi>) sẽ cần phải cập nhật quyền OAuth hoặc BotPassword của mình để bao gồm cả quyền truy cập vào các thông báo riêng tư. [https://phabricator.wikimedia.org/T421991]
* Do việc nâng cấp thư viện, việc liệt kê danh sách trên các trang thể loại có thể hiển thị không đúng theo thứ tự bắt đầu từ thứ Hai, ngày 20 tháng 4. Một kịch bản chuyển đổi sẽ được chạy để khắc phục điều này, và sẽ mất từ vài giờ đến vài ngày tùy thuộc vào kích thước của wiki (tối đa một tuần đối với Wikipedia tiếng Anh). [https://phabricator.wikimedia.org/T422544]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.24|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/16|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W16"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:19, ngày 13 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30380527 -->
== Bản tin Kỹ thuật: Tuần 17-2026 ==
<section begin="technews-2026-W17"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/17|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Sau hai năm phát triển, [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]], hay còn được biết đến với tên [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror 6]], sẽ được chính thức đưa ra khỏi giai đoạn beta vào thứ 3, ngày 21 tháng 4. Nó mang lại khả năng đọc mã nguồn và mã wiki tốt hơn, giảm thiểu lỗi đánh máy cùng những [[mw:Special:MyLanguage/Help:Extension:CodeMirror|lợi ích]] khác cho tất cả người dùng sử dụng trình tô sáng cú pháp tiêu chuẩn. Xin gửi lời cảm ơn chân thành đến tình nguyện viên [https://phabricator.wikimedia.org/p/Bhsd/ Bhsd] vì đã phát triển nhiều tính năng mới, bao gồm [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Code folding|gấp mã nguồn]], [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Autocompletion|tự động điền]], và [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Linting|kiểm tra lỗi]]. [https://phabricator.wikimedia.org/T259059]
* Một bản cập nhật lớn dành cho ứng dụng Wikipedia trên iOS hiện đang được triển khai, nhằm thiết kế lại giao diện để phù hợp với thiết kế trực quan "Liquid Glass" mới nhất của Apple. [https://apps.apple.com/us/app/wikipedia/id324715238 Hãy tải phiên bản mới nhất] và khám phá bản cập nhật này.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4 Reading lists|Danh sách đọc]] là một tính năng cho phép người đọc lưu các bài viết vào danh sách để đọc sau. Tính năng này hiện đang trong giai đoạn thử nghiệm beta trên Wikipedia tiếng Ả Rập, tiếng Pháp, tiếng Indonesia, tiếng Việt và tiếng Trung, và được bật mặc định cho tất cả các tài khoản mới trên tất cả các trang Wikipedia.
* Một thử nghiệm khám phá việc mở rộng [[mw:Special:MyLanguage/Readers/Reader Growth/Mobile page previews|tính năng Xem trước Trang cho trang web di động]] sẽ được triển khai trong tuần ngày 20 tháng 4 trên các trang Wikipedia tiếng Ả Rập, tiếng Anh, tiếng Pháp, tiếng Ý, tiếng Ba Lan và tiếng Việt. Tính năng Xem trước Trang là pop-up hiển thị hình thu nhỏ kèm liên kết mở toàn bộ bài viết từ liên kết xanh, từ đó cải thiện khả năng tìm kiếm nội dung. Tính năng này hiện đã có sẵn trên máy tính để bàn và trong ứng dụng. [[m:Special:MyLanguage/List of experiments in Product and Technology#Template|Đọc thêm về thử nghiệm này cùng những thử nghiệm khác]].
* Trên một số trang wiki, những biên tập viên đã đăng nhập nhưng chưa [[mw:Special:MyLanguage/Help:Email confirmation|xác nhận địa chỉ thư điện tử (email) của mình]] nay có thể nhìn thấy một biểu ngữ khuyến khích họ làm vậy. Việc xác nhận địa chỉ email cho phép người dùng khôi phục quyền truy cập vào tài khoản nếu họ bị mất quyền truy cập đó. [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security#Encouraging users to confirm their email addresses|Tìm hiểu thêm]]. [https://phabricator.wikimedia.org/T421366]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:15}} {{PLURAL:15|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà việc sửa đổi các trang wiki rất lớn trong trình soạn thảo mã wiki 2017 gây ra hiện tượng tải chậm, bị trễ khi xem trước và cuộn, cũng như các vấn đề về hiệu suất khi chọn, cắt hay dán nội dung, nay đã được giải quyết. [https://phabricator.wikimedia.org/T184857]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Là một phần của việc nâng cấp [[mw:Special:MyLanguage/Help:Extension:CodeMirror|CodeMirror]] từ tính năng beta lên làm tính năng chính thức, tất cả người dùng sẽ sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] làm trình tô sáng cú pháp khi sửa đổi các trang nội dung bằng JavaScript, CSS, JSON, Vue và Lua. [https://phabricator.wikimedia.org/T419332]
* Dịch vụ <code>mirrors.wikimedia.org</code> dành cho người dùng Debian và Ubuntu sẽ kết thúc hỗ trợ và ngừng hoạt động vào ngày 15 tháng 5. Tài nguyên dịch vụ này sẽ được thay thế bằng những tùy chọn mới và tốt hơn. Một số người dùng có thể cần phải chuyển sang máy chủ khác, quá trình này sẽ mất khoảng một phút. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/LJYRIS4WB66HIRCAO4GIDTXCMDVZRBMA/ Bạn có thể đọc thêm]. [https://phabricator.wikimedia.org/T416707]
* Bảng <bdi lang="zxx" dir="ltr"><code><nowiki>image</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>oldimage</nowiki></code></bdi> sẽ bị loại bỏ khỏi [[wikitech:Help:Wiki Replicas|wikireplicas]]. Nếu công cụ hoặc truy vấn của bạn truy cập trực tiếp vào <bdi lang="zxx" dir="ltr"><code><nowiki>image</nowiki></code></bdi> hoặc <bdi lang="zxx" dir="ltr"><code><nowiki>oldimage</nowiki></code></bdi>, vui lòng cập nhật chúng để sử dụng bảng <bdi lang="zxx" dir="ltr"><code><nowiki>file</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>filerevision</nowiki></code></bdi> trước ngày 28 tháng 5. [https://phabricator.wikimedia.org/T28741]
* Sau việc triển khai những giới hạn tần suất truy cập API toàn cục gần đây đối với lưu lượng truy cập không xác định, Quỹ Wikimedia sẽ tiếp tục nỗ lực đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng hợp lý cơ sở hạ tầng]] bằng cách áp dụng giới hạn toàn cục đối với lưu lượng truy cập API xác định kể từ tuần cuối cùng của tháng 4. Những giới hạn này được cố ý đặt ở mức cao nhất có thể để giảm thiểu tác động đến cộng đồng. Các bot chạy trong Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào hiện sẽ không bị ảnh hưởng. Dù vậy, tất cả các nhà phát triển được khuyến cáo nên tuân theo những thực tiễn tốt nhất đã được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn tần suất]] và [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits/FAQ|Câu hỏi Thường gặp]].
* [[mw:Special:MyLanguage/Attribution API|API Ghi công]] hiện có sẵn dưới dạng [[mw:Special:MyLanguage/Wikimedia APIs/Stability policy|tính năng beta]]. API này lấy thông tin nhằm ghi công các bài viết và tập tin phương tiện của Wikimedia bất kỳ chỗ nào mà chúng được sử dụng. Trang tài liệu tham khảo có sẵn thông qua trang đặc biệt Chỗ thử REST có mặt trên tất cả các trang wiki của Wikimedia (chẳng hạn như [https://en.wikipedia.org/w/index.php?api=attribution.v0-beta&title=Special%3ARestSandbox chỗ thử REST trên Wikipedia tiếng Anh]). Hãy chia sẻ phản hồi của bạn trên [[mw:Talk:Attribution API|trang thảo luận dự án]].
* Tuần này không có phiên bản MediaWiki mới nào.
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/17|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W17"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:00, ngày 20 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30432763 -->
== Request for comment (global AI policy) ==
<bdi lang="en" dir="ltr" class="mw-content-ltr">
Apologies for writing in English. {{int:Please-translate}}
A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}}
[[Thành viên:MediaWiki message delivery|MediaWiki message delivery]] ([[Thảo luận Thành viên:MediaWiki message delivery|thảo luận]]) 00:58, ngày 26 tháng 4 năm 2026 (UTC)
</bdi>
<!-- Tin nhắn của Thành viên:Codename Noreste@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 -->
== Bản tin Kỹ thuật: Tuần 18-2026 ==
<section begin="technews-2026-W18"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/18|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* Sẽ có một thay đổi về cách người dùng mới được tự động xác nhận nhằm cải thiện khả năng bảo vệ chống phá hoại. Hiện tại, người dùng đã mở tài khoản được vài ngày và thực hiện được một vài sửa đổi được tự động thêm vào nhóm [[{{int:grouppage-autoconfirmed/{{CONTENTLANGUAGE}}}}|{{int:group-autoconfirmed}}]]. Cấu hình này thường bị một số thành viên phá hoại lợi dụng bằng cách tạo tài khoản và chỉ bắt đầu sử dụng nó sau một khoảng thời gian. Để giảm thiểu điều này, trong tuần tới cấu hình này sẽ được cập nhật sao cho – nhằm mục đích được tự động xác nhận – tuổi của tài khoản sẽ được tính từ sửa đổi đầu tiên của họ, thay vì ngày tạo tài khoản. Giá trị số của ngưỡng tuổi vẫn sẽ được giữ nguyên. Thay đổi này sẽ chỉ được triển khai đến các wiki yêu cầu ít nhất một sửa đổi là một phần trong điều kiện để có thể được tự động xác nhận. [https://phabricator.wikimedia.org/T418484]
* Tất cả người dùng Wikipedia đã tạo tài khoản mới và những người đã kích hoạt tùy chọn "tự động bật hầu hết các tính năng beta" trong tùy chọn của mình giờ đây có thể sử dụng tính năng beta [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4 Reading lists|danh sách đọc]] để lưu bài viết để đọc sau. Điều này giúp người dùng có thể sắp xếp mọi sở thích đọc ở một nơi để có thể dễ dàng truy cập.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho hình ảnh trong hộp thông tin có khoảng đệm quá lớn trên Firefox đã được giải quyết. [https://phabricator.wikimedia.org/T423676]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Nhắc lại, trong tuần này giới hạn tần suất truy cập API toàn cục sẽ được áp dụng cho lưu lượng truy cập API đã được xác định. Điều này giúp đảm bảo việc [[mw:MediaWiki Product Insights/Responsible Reuse|sử dụng cơ sở hạ tầng một cách hợp lý]]. Các bot chạy trong Toolforge/WMCS hoặc có quyền người dùng bot trên bất kỳ wiki nào hiện tại sẽ không bị ảnh hưởng. Dù vậy, tất cả các nhà phát triển được khuyến cáo tuân theo cách sử dụng thực tiễn được cập nhật. Để biết thêm thông tin, bao gồm giới hạn tần suất truy cập thực tế, xem [[mw:Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn tần suất truy cập]] và [[mw:Wikimedia APIs/Rate limits/FAQ|Câu hỏi Thường gặp]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.26|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/18|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W18"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:06, ngày 27 tháng 4 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30458046 -->
== Bản tin Kỹ thuật: Tuần 19-2026 ==
<section begin="technews-2026-W19"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/19|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Nhóm [[mw:Special:MyLanguage/Article guidance|Chỉ dẫn bài viết]] mời các biên tập viên có kinh nghiệm từ [[mw:Special:MyLanguage/Article guidance/Pilot wikis and collaborators|các trang Wikipedia thí điểm]]—tiếng Ả Rập, tiếng Bengal, tiếng Nhật, tiếng Bồ Đào Nha, tiếng Ba Tư, tiếng Thổ Nhĩ Kỳ, tiếng Anh đơn giản, tiếng Tây Ban Nha và tiếng Pháp—hỗ trợ biên dịch và điều chỉnh [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Category:Pages_using_article_guidance các mẫu dàn ý này]. Những dàn ý này sẽ giúp hướng dẫn các biên tập viên tạo ra các bài viết có cấu trúc tốt, rõ ràng và tuân theo quy định khi sử dụng [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Special:NewArticle tính năng này] dự kiến ra mắt vào tháng 5 năm 2026. Hiện có [[mw:Special:MyLanguage/Article guidance#Adapting a sample outline in a Wikipedia|hướng dẫn đơn giản]] về cách dịch và điều chỉnh những dàn ý này.
'''Cập nhật cho biên tập viên'''
* [[:m:Special:MyLanguage/Product and Technology Advisory Council|Hội đồng Cố vấn Sản phẩm và Công nghệ]] đã công bố [[:m:Special:MyLanguage/Product and Technology Advisory Council/May 2026 draft PTAC recommendation for feedback|bản thảo đề xuất]] về một mô hình mà các chi nhánh có thể thực hiện theo khi đóng góp vào lĩnh vực kỹ thuật. Mời các thành viên cộng đồng để lại phản hồi về đề xuất này trước ngày 8 tháng 5 [[:m:Talk:Product and Technology Advisory Council/May 2026 draft PTAC recommendation for feedback|trên trang thảo luận]].
* Số lượng tùy chọn về kích thước hình thu nhỏ có sẵn trong MediaWiki sẽ được giảm xuống còn ba tùy chọn tiêu chuẩn—Nhỏ (180px), Trung bình (250px), và Lớn (400px), là một phần của nỗ lực không ngừng nhằm cải thiện hiệu suất và giảm tải cho các dịch vụ hình thu nhỏ. Do đó, các tùy chọn hiện có sẽ được ánh xạ về kích thước mới gần nhất (ví dụ, những lựa chọn kích thước nhỏ hơn như 120px hoặc 150px sẽ hiển thị dưới kích thước 180px, trong khi những lựa chọn lớn hơn như 300px hoặc 360px sẽ hiển thị dưới kích thước 400px). Giao diện tùy chọn sẽ sớm được cập nhật để áp dụng những thay đổi này và người dùng không muốn áp dụng hoặc để lại phản hồi có thể thực hiện điều đó. [https://phabricator.wikimedia.org/T424909]
* Từ giờ trở đi, ngay cả khi một quyền tự động hết hạn, người dùng sẽ nhận được thông báo Echo tương tự như thông báo tiêu chuẩn về thay đổi quyền. Có một điểm khác biệt giữa thông báo này và [[m:Special:MyLanguage/Global reminder bot|Global reminder bot]] ở chỗ bot sẽ nhắc người dùng một tuần ''trước khi'' quyền đó hết hạn, để họ có thể gia hạn quyền.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:32}} {{PLURAL:32|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến bộ chọn ngôn ngữ ULS trong [[m:Special:Translate|Đặc biệt:Dịch]] cuộn dọc khi không cần thiết, đã được giải quyết. Trước đây, khi người dùng mở menu thả xuống "Dịch sang tiếng Anh" và nhập một số từ nhất định, hộp thoại sẽ cuộn dọc xuống vài pixel ngay cả khi có đủ không gian để hiển thị tất cả kết quả. Menu thả xuống giờ không còn dịch chuyển một cách không cần thiết khi lọc ngôn ngữ nữa. [https://phabricator.wikimedia.org/T358864]
* [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]], tính năng cho phép bạn xem các danh sách theo dõi của bạn từ nhiều trang wiki trên cùng một trang, tiếp tục được cải thiện. Ví dụ, danh sách theo dõi cho các trang Wikibase chẳng hạn như [[:d:|Wikidata]] nay hỗ trợ phần tử [[mw:Special:MyLanguage/Extension:EntitySchema|EntitySchema]] để có thể theo dõi tốt hơn. Chế độ Cập nhật Trực tiếp nay làm mới trang đặc biệt sau mỗi 60 giây để tuân theo [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|giới hạn tần suất truy vấn API toàn cục]] được cập nhật để cải thiện khả năng phản hồi theo thời gian thực. Ngoài ra, một lỗi về hướng khiến liên kết hiển thị là "thay đổi 3" thay vì "3 thay đổi" trong danh sách có hướng hỗn hợp đã được giải quyết. [https://phabricator.wikimedia.org/T415450][https://phabricator.wikimedia.org/T424422][https://phabricator.wikimedia.org/T418091]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Giai đoạn thứ hai của [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|giới hạn tần suất truy vấn API toàn cục]] đã được triển khai để giảm [[diffblog:2026/03/26/quo-vadis-crawlers-progress-and-whats-next-on-safeguarding-our-infrastructure/|tác động của việc thu thập dữ liệu sử dụng AI]] và đảm bảo quyền truy cập hợp lý, bền vững vào các tài nguyên của Wikimedia, ưu tiên lưu lượng truy cập của con người và lưu lượng phù hợp với sứ mệnh. [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits#Limits|Giới hạn]] được chuyển từ mỗi giờ sang mỗi phút, tạo ra những mô hình lưu lượng truy cập mượt mà hơn và tải API dễ đoán hơn. Người dùng cộng đồng dự kiến không bị ảnh hưởng, và không cần phải thực hiện bất kỳ hành động gì. Các dấu hiệu ban đầu cho thấy một số người yêu cầu dựa trên User-Agent đang điều chỉnh hành vi vi, và khoảng 64% lưu lượng truy vấn API tự động đã được xác định. Việc giám sát vẫn tiếp tục, và Wikimedia Enterprise vẫn sẵn sàng để hỗ trợ thương mại.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.27|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/19|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W19"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:43, ngày 4 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30498077 -->
== Bản tin Kỹ thuật: Tuần 20-2026 ==
<section begin="technews-2026-W20"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/20|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Cộng đồng Kỹ thuật đã xuất bản một [[m:Special:MyLanguage/Community Wishlist/How to write a good wish|bộ hướng dẫn mới]] giải thích cách những mong muốn trên Danh sách Mong muốn Cộng đồng được phân loại và xếp ưu tiên. Tài liệu này được tạo ra nhằm mục đích giúp những người đóng góp viết những đề xuất mang tính mạnh mẽ hơn bằng cách làm rõ những yếu tố ảnh hưởng đến việc quyết định ưu tiên. Ngoài yếu tố số phiếu, hướng dẫn này còn nêu bật những yếu tố khác cần xem xét chẳng hạn như tác động tiềm tàng đến cộng đồng khi quyết định nên ưu tiên mong muốn nào.
'''Cập nhật cho biên tập viên'''
* Nhóm Phát triển Người đọc đang khởi động một thử nghiệm để thử [[mw:Special:MyLanguage/Readers/Reader_Growth/Share_Card|tính năng Chia sẻ Thẻ]] mới cho phép người đọc tạo những thẻ mang tính hấp dẫn về mặt trực quan từ các bài viết hoặc các đề mục bài viết và chia sẻ chúng theo cách trực tuyến, mỗi thẻ liên kết ngược lại về bài viết gốc để giúp mở rộng lượng người đọc và khả năng tìm kiếm bài viết. Thử nghiệm A/B dành riêng cho thiết bị di động này sẽ được cung cấp cho một phần người đọc trên Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Việt và tiếng Anh để có thể hiểu rõ hơn về thói quen đọc và chia sẻ, và dự kiến bắt đầu từ tuần ngày 18 tháng 5 và kéo dài trong bốn tuần.
* Ứng dụng Wikipedia trên Android và iOS gần đây đã phát hành [[mw:Special:MyLanguage/Wikimedia_Apps/Team/25th_Birthday_Reading_Challenge|thử thách đọc trong 25 ngày]] lên phiên bản Beta, là một phần của nỗ lực thúc đẩy người đọc tham gia bằng cách khuyến khích người dùng hoàn thành các mốc đọc. Để theo dõi chuỗi đọc của mình trong suốt quá trình thử thách, người dùng Ứng dụng có thể thêm tiện ích Em bé Globe vào màn hình chính của mình. Thử thách sẽ chính thức bắt đầu vào ngày 11 tháng 5.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:17}} {{PLURAL:17|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến cho tùy chọn toàn cục bật tính năng nổi bật cú pháp trong mã wiki có thể bất ngờ tự tắt ngay sau khi được bật lên, nay đã được giải quyết. [https://phabricator.wikimedia.org/T425286]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Octicons-tools.svg|12px|link=|alt=|Đề mục nâng cao]] Mô đun ResourceLoader <bdi lang="zxx" dir="ltr"><code><nowiki>mediawiki.ui.input</nowiki></code></bdi>, mô đun lỗi thời từ [[m:Special:MyLanguage/Tech/News/2023/39|tháng 9 năm 2023]], sẽ bị loại bỏ trong tuần này. Hiện có [[mw:Special:MyLanguage/Codex/Migrating_from_MediaWiki_UI|hướng dẫn về cách chuyển từ UI MediaWiki sang Codex]] cho bất kỳ công cụ nào sử dụng nó. [https://phabricator.wikimedia.org/T420125]
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.2|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/20|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W20"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:20, ngày 11 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30524429 -->
== Bản tin Kỹ thuật: Tuần 21-2026 ==
<section begin="technews-2026-W21"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/21|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Nhóm Abstract Wikipedia đã xác định năm wiki thí điểm tiềm năng để đánh giá mức độ quan tâm của họ đối với việc áp dụng tóm tắt bài viết trên wiki của mình. Các wiki thí điểm là Wikipedia tiếng Malayalam, tiếng Bengali, tiếng Dagbani, tiếng Ả Rập và tiếng Indonesia. Thời gian nhận phản hồi sẽ kéo dài đến hết ngày 22 tháng 5. Nếu cộng đồng của bạn quan tâm đến việc trở thành wiki thí điểm, [[m:Talk:Abstract Wikipedia|hãy cho chúng tôi biết trên Meta]].
'''Cập nhật cho biên tập viên'''
* Một thử nghiệm nhằm hiển thị [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|Danh sách Đọc]] cho người đọc chưa đăng nhập trên trang web dành cho thiết bị di động sẽ được triển khai vào ngày 18 tháng 5 trên Wikipedia tiếng Đức, tiếng Tây Ban Nha, tiếng Ý, tiếng Bồ Đào Nha, tiếng Ba Lan, tiếng Hà Lan, tiếng Thổ Nhĩ Kỳ và tiếng Urdu Wikipedias, và sẽ kéo dài trong vòng một tháng. Nỗ lực này nhằm hỗ trợ những mục tiêu rộng hơn giúp người đọc lưu và sắp xếp các bài viết để đọc sau, đồng thời khuyến khích những thói quen có thể giúp dẫn đến việc đóng góp cho Wikipedia trong tương lai.
* Để hỗ trợ cho nút đánh dấu trong tính năng beta Danh sách Đọc, menu "Công cụ > Tác vụ" đã được cập nhật để hiển thị các biểu tượng, bao gồm cả chỉ báo ngôi sao theo dõi giúp biên tập viên xác định những bài viết được theo dõi tạm thời. Các biểu tượng nay cũng khớp với các biểu tượng được sử dụng trên thiết bị di động, cải thiện tính nhất quán trên các nền tảng. Thay đổi này hiện chỉ giới hạn ở menu tác vụ và chủ yếu ảnh hưởng đến các biên tập viên có quyền thành viên nâng cao. [https://phabricator.wikimedia.org/T426008]
* [[mw:Special:MyLanguage/VisualEditor/Suggestion Mode|Chế độ Đề xuất]] đã được phát hành dưới dạng [[w:en:A/B test|thử nghiệm A/B]] dành cho biên tập viên mới trên trang web dành cho di động tại [[phab:T421189|~15 trang Wikipedia]]. Thử nghiệm này sẽ đo lường tác động của Chế độ Đề xuất đến tỷ lệ những phiên sửa đổi trên trang web dành cho di động của người mới tạo ra những sửa đổi mang tính xây dựng (không bị lùi lại) trên bài viết. Thử nghiệm này cũng sẽ đánh giá tác động của tính năng này đến việc giữ chân người dùng, đồng thời theo dõi những thay đổi về tỷ lệ lùi sửa và cấm.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề trong ứng dụng Wikipedia dành cho Android khi hình ảnh đôi lúc không thể tải được sau khi mở thông báo danh sách đọc đề xuất, nay đã được giải quyết. [https://phabricator.wikimedia.org/T418231]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[mw:Special:MyLanguage/Wikidata Platform|Nhóm Nền tảng Wikidata]] đã công bố [[d:Special:MyLanguage/Wikidata:SPARQL query service/WDQS backend update/Backend Replacement|đề xuất thay thế backend]] và [[wikitech:Wikidata Query Service/WDQS Architecture re-design|kiến trúc kỹ thuật]] kèm theo cho việc di chuyển Dịch vụ Truy vấn Wikidata (WDQS) khỏi Blazegraph. Chúng tôi hoan nghênh mọi phản hồi về đề xuất này cho đến hết ngày 25 tháng 5 năm 2026, đặc biệt là về những thiếu sót tiềm tàng và tác động đến những trường hợp sử dụng (use case) nâng cao. Các thành viên trong cộng đồng Wikidata và người dùng WDQS cũng được khuyến khích giúp xác định những công cụ và quy trình làm việc có tác động lớn cần được chú ý trên [[d:Wikidata:SPARQL query service/WDQS backend update/High-Impact Use Cases|trang này]]. Bạn có thể chia sẻ những phản hồi của mình trên [[d:Wikidata talk:SPARQL query service/WDQS backend update|trang thảo luận về Di chuyển]] hoặc trong [[d:Special:MyLanguage/Wikidata:Blazegraph Migration Office Hours|giờ làm việc tiếp theo]]. Xem [[d:Special:MyLanguage/Wikidata:Wikidata Platform team/Newsletter|bản tin của nhóm WDP]] để biết thêm chi tiết.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.3|MediaWiki]]
'''Chuyên sâu'''
* Trên Wikipedia tiếng Anh, tiếng Pháp, tiếng Nhật và một số trang Wikipedia khác, một [[diffblog:2025/09/02/better-detecting-bots-and-replacing-our-captcha/|thử nghiệm hCaptcha]], một dịch vụ phát hiện bot từ bên thứ ba, đã được thực hiện. Thử nghiệm này cho thấy hCaptcha phát hiện và ngăn chặn hiệu quả một số hoạt động tự động không thiện ý, bằng cách tự hoạt động lẫn bằng cách cung cấp tín hiệu cho [[w:en:Wikipedia:Village pump (technical)/Archive 225#Introducing SuggestedInvestigations|kiểm định viên và tiếp viên]] để kiểm tra. Vì kết quả thử nghiệm cho kết quả tích cực, hCaptcha sẽ được triển khai trên tất cả các wiki trong một vài tuần tới đây. [[mw:Special:MyLanguage/Product Safety and Integrity/Anti-abuse signals/hCaptcha|Xem trang dự án hCaptcha]] để biết thông tin kỹ thuật về việc triển khai và bảo vệ quyền riêng tư. [[diffblog:2026/05/04/better-detecting-bots-and-replacing-our-captcha-part-2/|Tìm hiểu thêm]].
* Bản cập nhật Công nghệ Cộng đồng số mới nhất hiện đã có sẵn, trong đó có những tiến bộ trong một số sáng kiến thuộc Danh sách Mong muốn Cộng đồng, bao gồm việc mở rộng Danh sách Đọc từ ứng dụng di động lên trang web, hỗ trợ thêm ngôn ngữ mới cho "Ai đã viết nó" (Who Wrote That) và Bảng điều khiển Cá nhân, cải thiện khả năng hiển thị 3D và Biểu đồ, cũng như những công việc sắp tới về việc sắp xếp trang thảo luận, khả năng phát âm thanh và quy trình sửa đổi. Bản cập nhật cũng chia sẻ những ưu tiên hiện tại, xu hướng trạng thái danh sách mong muốn và cơ hội để cộng đồng phản hồi về các lĩnh vực trọng tâm trong tương lai cũng như Kế hoạch Hàng năm 2026–2027 của Quỹ Wikimedia. [[m:Special:MyLanguage/Community Wishlist/Updates#May 13, 2026: Latest updates from the Community Tech team|Đọc toàn bộ nội dung bản tin để biết thông tin chi tiết]].
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/21|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W21"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:21, ngày 18 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30539262 -->
== Bản tin Kỹ thuật: Tuần 22-2026 ==
<section begin="technews-2026-W22"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/22|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Nổi bật trong tuần'''
* Sau [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#LOWM|thử nghiệm tạo tài khoản thành công]], tin nhắn được cải tiến dành cho những sửa đổi của thành viên chưa đăng nhập sẽ được triển khai đến tất cả các wiki của Wikimedia vào tuần đầu tiên của tháng 6. Thay đổi này sẽ chỉ ảnh hưởng đến các thành viên chưa đăng nhập trên trang web di động khi mở một phiên sửa đổi. Việc cập nhật trải nghiệm này được thiết kế để làm rõ hơn việc khuyến khích tạo tài khoản mà vẫn cho phép người dùng sửa đổi bằng tài khoản tạm thời. Kết quả từ thử nghiệm cho thấy tỷ lệ tạo tài khoản tăng lên đáng kể, trong đó tỷ lệ này đối với người dùng nhìn thấy thông báo được cập nhật này đạt mức tăng khoảng 27%. Như dự đoán, khi càng nhiều người tạo tài khoản, số tài khoản tạm thời cũng giảm đi khoảng 16%. Thử nghiệm không cho thấy bất kỳ thay đổi nào đáng kể về tỷ lệ sửa đổi mang tính xây dựng hay bất cứ số liệu đóng góp nào khác được theo dõi. [https://phabricator.wikimedia.org/T424595]
'''Cập nhật cho biên tập viên'''
* Vì lý do bảo mật, thành viên của một số nhóm người dùng [[m:Special:MyLanguage/Mandatory two-factor authentication for users with some extended rights|bắt buộc phải bật xác thực hai yếu tố]] (2FA). Những thành viên thuộc những nhóm này sẽ không thể tắt đi yếu tố 2FA cuối cùng trên tài khoản của mình, và sẽ không thể thêm người dùng không có 2FA vào những nhóm này. Người dùng vẫn sẽ có thể thêm yếu tố xác thực mới hoặc loại bỏ chúng đi, miễn là có ít nhất một yếu tố được bật liên tục. Trong vòng vài tuần tới đây, người dùng không có 2FA sẽ bị loại bỏ khỏi những nhóm này. Đặc biệt, nó sẽ được áp dụng cho các hành chính viên. Xem tác vụ được liên kết để biết lịch triển khai. [https://phabricator.wikimedia.org/T423119][https://phabricator.wikimedia.org/T423120]
* [[m:Special:MyLanguage/WMDE Technical Wishes|Nhóm Mong muốn Kỹ thuật của WMDE]] sẽ chạy một [[w:vi:Thử nghiệm A/B|thử nghiệm A/B]] trên [[:phab:T415904|10 wiki]], nhằm thử nghiệm [[m:WMDE Technical Wishes/References/Reference Previews|những khả năng cải tiến cho tính năng Xem trước Chú thích]]. Thử nghiệm sẽ kéo dài ~2 tuần vào cuối tháng 5 / đầu tháng 6 và sẽ ảnh hưởng tới 10% người đọc trên máy tính đối với các wiki tham gia.
* Sau hai thử nghiệm thành công, nhóm Phát triển Người đọc sẽ cho ra mắt tính năng beta [[mw:Special:MyLanguage/Readers/Reader Growth/Image Browsing|Duyệt Hình ảnh]] trên tất cả các trang Wikipedia trên di động vào ngày 25 tháng 5. Điều này có nghĩa là bất kỳ ai đã bật mặc định tất cả các tính năng beta sẽ bắt đầu nhìn thấy tính năng này, và những người khác có thể đánh dấu hộp kiểm để bật tính năng này lên trong tùy chọn của họ. Tính năng beta này sẽ bao gồm một băng chuyền hiển thị tất cả hình ảnh của bài viết ở đầu bài viết, The beta feature will include a carousel of all an article's images at the top of the article, cùng khả năng điều khiển cho phép biên tập viên có thể [[mw:Readers/Reader_Growth/Image_Browsing#Phase_2.1_beta_feature|loại trừ hình ảnh khỏi băng chuyền của bài viết hoặc loại trừ hoàn toàn một bài viết khỏi tính năng này]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, các tệp STL ba chiều bị hiển thị sai bởi phần mở rộng trình xem phương tiện 3D nay đã được giải quyết. [https://phabricator.wikimedia.org/T416723]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* Các class CSS <bdi lang="zxx" dir="ltr"><code><nowiki>tleft</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>tright</nowiki></code></bdi> cũ đã được thay thế bằng <bdi lang="zxx" dir="ltr"><code><nowiki>floatleft</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>floatright</nowiki></code></bdi> do hai class cũ đó không hoạt động một cách nhất quán trên tất cả các nền tảng MediaWiki, đặc biệt là giao diện web di động và ứng dụng di động. Những dự án dựa vào những lớp này được khuyến khích xem xét lại những chỗ sử dụng có liên quan và lên kế hoạch chuyển đổi. Xin lưu ý rằng <bdi lang="zxx" dir="ltr"><code><nowiki>floatleft</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>floatright</nowiki></code></bdi> cũng có thể bị loại bỏ trong tương lai, dù hiện chưa có kế hoạch thực hiện điều này. [[phab:T426452|Đọc thêm]].
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.4|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/22|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W22"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:52, ngày 25 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30584502 -->
== <span lang="en" dir="ltr">Vote now in the 2026 U4C election</span> ==
<div lang="en" dir="ltr">
<section begin="announcement-content" />
Eligible voters are asked to participate in the 2026 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|2026 Election information page]]. The vote closes on 2 June 2026 at [https://zonestamp.toolforge.org/1780358400 00:00 UTC].
Please vote if your account is eligible. Results will be available by 14 June 2026. -- In cooperation with the U4C,<section end="announcement-content" />
</div>
[[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 17:15, ngày 27 tháng 5 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:Keegan (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 -->
== Bản tin Kỹ thuật: Tuần 23-2026 ==
<section begin="technews-2026-W23"/><div class="plainlinks">
'''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/23|Các bản dịch]] của bản tin này cũng có sẵn cho bạn.
'''Cập nhật cho biên tập viên'''
* [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đang tiến hành một cuộc thử nghiệm nhằm giới thiệu tính năng [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists|danh sách đọc]], hiện vẫn đang trong quá trình phát triển, dành cho những người đọc chưa đăng nhập trên thiết bị di động để kiểm tra xem tính năng này có khuyến khích việc tạo tài khoản với tỷ lệ cao hơn so với nút sao theo dõi hay không. [[mw:Special:MyLanguage/Readers/Reader Experience/Reading lists#Experiment timeline|Thử nghiệm]] này đã được khởi động vào ngày 18 tháng 5 trên các wiki tiếng Đức, Tây Ban Nha, Ý, Bồ Đào Nha, Ba Lan, Hà Lan, Thổ Nhĩ Kỳ và Urdu, và sẽ kéo dài trong một tháng.
* Nhóm Ứng dụng Wikimedia đã phát hành [[mw:Special:MyLanguage/Wikimedia Apps/Team/Explore Feed Refresh/Phase 1|Giai đoạn 1]] của giao diện Trang chủ được thiết kế lại cho ứng dụng Android bản Beta. Giao diện Trang chủ mới bao gồm tab "Cộng đồng" được làm mới và tab "Dành cho Bạn" được cá nhân hóa với những đề xuất đọc được cập nhật hàng ngày. Việc thiết kế lại này là một phần trong nỗ lực rộng lớn hơn nhằm cải thiện khả năng tìm kiếm nội dung và tạo ra trải nghiệm học tập hấp dẫn hơn trong các ứng dụng Wikipedia.
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:18}} {{PLURAL:18|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề khiến các hình ảnh không thể tải được đối với một số đề xuất sửa đổi trên [[w:Special:Homepage|Đặc biệt:Trang nhà]], làm cho hình thu nhỏ bị kẹt ở trạng thái đang tải, nay đã được giải quyết. [https://phabricator.wikimedia.org/T424048]
'''Cập nhật cho những người đóng góp vào mảng kỹ thuật'''
* [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.47/wmf.5|MediaWiki]]
'''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]] • [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]] • [[m:Special:MyLanguage/Tech/News/2026/23|Biên dịch]] • [[m:Tech|Nhờ giúp đỡ]] • [[m:Talk:Tech/News|Phản hồi]] • [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].''
</div><section end="technews-2026-W23"/>
<bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:08, ngày 1 tháng 6 năm 2026 (UTC)
<!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30613639 -->
gnz388wpcgnehhig2llcq9p1xizhjin
Thảo luận Thành viên:Saighneánach
3
419997
2570134
2026-10-13T08:43:50Z
Hiyuune
50834
Chào mừng bạn đến với Wiktionary!
2570134
wikitext
text/x-wiki
== Chào mừng! ==
<div style="border:1px solid #FDA; vertical-align:top; padding: 0.5em; background-color: var(--background-color-progressive-subtle, #f1f4fd); border: 1px solid var(--border-color-progressive, #36c); color: var(--color-base, #202122)">
<div style="margin-left:0.5em; margin-right: 0.5em; margin-bottom:1em; margin-top: 0.1em;">
<span style="font-size: 1.3rem;">'''Xin chào Saighneánach! Chào mừng bạn đến với Wiktionary tiếng Việt!'''</span>
<div class="plainlinks"><p style="margin-top:0.1em; margin-bottom: 1em;">
Wiktionary là từ điển mở mà ai cũng đều có thể chỉnh sửa. Cách sử dụng và quy định có thể gây khó khăn cho bạn, nhưng hãy dần học hỏi và '''[[Wiktionary:Táo bạo|mạnh dạn đóng góp]]'''. Các thông tin dưới đây sẽ có thể giúp bạn sử dụng và chỉnh sửa Wiktionary.</p></div>
</div>
<!-- Quan trọng -->
<div style="clear: both; margin-left: 1.5em; margin-right 1.5em; font-size: 100%;">
{| class="plainlinks" width="100%" style="margin:auto;"
| style="text-align:center; padding:4px" | [[File:OOjs UI icon search-ltr.svg|30px|link=]]
| style="width:50%; padding:4px;" | '''[[Trợ giúp:Tìm kiếm|Tìm kiếm Wiktionary]]''' <br />Tìm hiểu cách tìm và tra cứu mục từ trên Wiktionary.
| style="text-align:center; padding:4px" | [[File:OOjs UI icon lightbulb.svg|30px|link=]]
| style="width:50%; padding:4px;" | '''[[Wiktionary:Yêu cầu mục từ|Yêu cầu mục từ]]'''<br />Nơi để bạn thêm những từ cần viết nhưng chưa có tại Wiktionary.
|-
| style="text-align:center; padding:4px" | [[File:OOjs UI icon userAvatar.svg|30px|link=|]]
| style="width:50%; padding:4px;" | '''[[Wiktionary:Cộng đồng|Cổng Cộng đồng Wiktionary tiếng Việt]]'''<br />Nơi tìm hiểu mọi thông tin về của Wiktionary.
| style="text-align:center; padding:4px" | [[File:OOjs UI icon articleCheck-ltr.svg|30px|link=]]
| style="width:50%; padding:4px;" | '''[[Wiktionary:Quy định và hướng dẫn|Quy định và hướng dẫn]]''' <br />Chính sách của Wiktionary là gì? Xin vui lòng đọc nó trước khi thực hiện chỉnh sửa!
|-
| style="text-align:center; padding:4px" | [[File:OOjs UI icon edit-ltr.svg|30px|link=]]
| style="width:50%; padding:4px;" | '''[[Trợ giúp:Viết trang mới|Viết trang mới]]'''<br />Tham khảo cách viết trang hay mục từ mới tại Wiktionary.
| style="text-align:center; padding:4px" | [[File:OOjs UI icon tray.svg|30px|link=]]
| style="width:50%; padding:4px;" | '''[[Wiktionary:Chỗ thử|Chỗ thử]]'''<br />Nơi để bạn viết nháp và thử nghiệm.
|-
| style="text-align:center; padding:4px" | [[File:OOjs UI icon wikiText.svg|30px|link=]]
| style="width:50%; padding:4px;" | '''[[Trợ giúp:Sửa đổi|Thực hiện sửa đổi]]'''<br />Tham khảo hướng dẫn sửa đổi và cùng bắt đầu sửa đổi Wiktionary.
| style="text-align:center; padding:4px" | [[File:OOjs UI icon helpNotice-ltr.svg|30px|link=]]
| style="width:50%; padding:4px;" | '''[[Wiktionary:Bàn giúp đỡ|Bàn giúp đỡ]]'''<br />Nơi hỏi đáp khi gặp khó khăn trên Wiktionary.
|-
| style="text-align:center; padding:4px" | [[File:OOjs UI icon book-ltr.svg|30px|link=]]
| style="width:50%; padding:4px;" | '''[[Trợ giúp:Mục lục|Mục lục trợ giúp]]''' <br />Mục lục giúp bạn thông tin và hướng dẫn khác khi gặp khó khăn trong những lúc đóng góp!
| style="text-align:center; padding:4px" | [[File:OOjs UI icon speechBubbles-ltr.svg|30px|link=]]
| style="width:50%; padding:4px;" | '''[[Wiktionary:Thảo luận|Thảo luận chung]]'''<br />Nơi trao đổi ý kiến giữa bạn và các thành viên khác!
|}</div>
<div style="padding: 0.5em; margin-top: 1em; font-size: 1em; background-color: var(--background-color-progressive-subtle, #f1f4fd); border: 1px solid var(--border-color-progressive, #36c); color: var(--color-base, #202122)">
[[File:Vector sig vi.png|250px|right]]
'''Hãy luôn nhớ rằng, sau khi viết thảo luận xong thì đừng quên bước quan trọng đó là ký tên ở phía sau thảo luận'''. Phương thức ký tên được sử dụng trong Wiktionary không phải là viết tên trực tiếp, nhưng xin hãy ký tên bằng cách sử dụng 4 dấu ngã (<code><nowiki>--~~~~</nowiki></code>) hoặc bằng cách nhấp vào nút chữ ký ([[File:OOUI JS signature icon LTR.svg|20px|border]]) trong cửa sổ chỉnh sửa của phiên bản trình soạn thảo mã nguồn thông thường.<br/>
[[Wiktionary:Guestbook_for_non-Vietnamese_speakers|Welcome! If you are not good at Vietnamese or do not speak it, click here.]]
</div>
</div> <!-- Template:Welcome--> [[User:Hiyuune|<span style="font-family: Segoe UI Light;color:#FF69B4;letter-spacing:">Linh Huynh</span>]] ([[User talk:Hiyuune|<span style="color:#008080;">talk</span>]]) 08:43, ngày 13 tháng 10 năm 2026 (UTC)
5pbh7ud339zqw67x5eal4gclmzznqap
astronautit
0
419998
2570139
2026-10-13T09:07:29Z
Hiyuune
50834
Trang mới: “=={{langname|fi}}== ==={{section|n}}=== {{head|fi|Biến thể hình thái danh từ}} # {{infl of|fi|astronautti||nom|p}} ==={{section|ana}}=== * {{anagrams|fi|a=aainorstttu|astronautti}}”
2570139
wikitext
text/x-wiki
=={{langname|fi}}==
==={{section|n}}===
{{head|fi|Biến thể hình thái danh từ}}
# {{infl of|fi|astronautti||nom|p}}
==={{section|ana}}===
* {{anagrams|fi|a=aainorstttu|astronautti}}
08h6a1zhs9h6qhazwp0m4q0xuspjhgn
astronautin
0
419999
2570140
2026-10-13T09:09:26Z
Hiyuune
50834
+ fi
2570140
wikitext
text/x-wiki
=={{langname|fi}}==
==={{section|n}}===
{{head|fi|Biến thể hình thái danh từ}}
# {{infl of|fi|astronautti||gen|s}}
dqrljm796bfrhs46qb3lpa8l9jlekon
astronauttien
0
420000
2570141
2026-10-13T09:09:54Z
Hiyuune
50834
Trang mới: “=={{langname|fi}}== ==={{section|n}}=== {{head|fi|Biến thể hình thái danh từ}} # {{infl of|fi|astronautti||gen|p}}”
2570141
wikitext
text/x-wiki
=={{langname|fi}}==
==={{section|n}}===
{{head|fi|Biến thể hình thái danh từ}}
# {{infl of|fi|astronautti||gen|p}}
a3agv633gwomeoth7pmw9is5dlhr2os
astronauttia
0
420001
2570142
2026-10-13T09:10:24Z
Hiyuune
50834
Trang mới: “=={{langname|fi}}== ==={{section|n}}=== {{head|fi|Biến thể hình thái danh từ}} # {{infl of|fi|astronautti||ptv|s}}”
2570142
wikitext
text/x-wiki
=={{langname|fi}}==
==={{section|n}}===
{{head|fi|Biến thể hình thái danh từ}}
# {{infl of|fi|astronautti||ptv|s}}
ma5cvpc33m4h51ig41uh49ftin4ucmg
Bản mẫu:az-IPA
10
420002
2570144
2026-10-13T09:12:37Z
Hiyuune
50834
Trang mới: “<noinclude>{{documentation}}</noinclude><includeonly>{{#invoke:az-pron|show|{{{1|{{PAGENAME}}}}}}}</includeonly>”
2570144
wikitext
text/x-wiki
<noinclude>{{documentation}}</noinclude><includeonly>{{#invoke:az-pron|show|{{{1|{{PAGENAME}}}}}}}</includeonly>
aa14d9o04jrofnb4ovnu39ee111dnsy
ဗ္ၜေံ
0
420003
2570155
2026-10-13T09:25:45Z
Kelly zhrm
58416
Trang mới: “=={{langname|mnw}}== [[File:Hausziege_04.jpg|thumb|{{lang|mnw|ဗ္ၜေံ}}]] ==={{ĐM|alt}}=== * {{q|Thái Lan}} {{l|mnw|ဗၜေံ}}<ref name="shorto">{{R:mnw:Shorto1962}}</ref><ref name="anusorn"/><ref name="phuan"/> * {{q|Thái Lan}} {{l|mnw|ဗၜေအ်}}<ref name="anusorn">{{R:mnw:Mon-Thai1984}}</ref><ref name="phuan">{{R:mnw:Mon-Siamese2005}}</ref> * {{q|Thái Lan}} {{l|mnw|ခၜေံ}}<ref name="champi">{{R:mnw:Lopburi}}</ref> ==={{ĐM|etym}}=== Từ…”
2570155
wikitext
text/x-wiki
=={{langname|mnw}}==
[[File:Hausziege_04.jpg|thumb|{{lang|mnw|ဗ္ၜေံ}}]]
==={{ĐM|alt}}===
* {{q|Thái Lan}} {{l|mnw|ဗၜေံ}}<ref name="shorto">{{R:mnw:Shorto1962}}</ref><ref name="anusorn"/><ref name="phuan"/>
* {{q|Thái Lan}} {{l|mnw|ဗၜေအ်}}<ref name="anusorn">{{R:mnw:Mon-Thai1984}}</ref><ref name="phuan">{{R:mnw:Mon-Siamese2005}}</ref>
* {{q|Thái Lan}} {{l|mnw|ခၜေံ}}<ref name="champi">{{R:mnw:Lopburi}}</ref>
==={{ĐM|etym}}===
Từ {{inh|mnw|omx|ဗၜေအ်|tr=baṗeʼ}}, từ {{inh|mnw|mkh-pro|*bəɓeʔ||dê}}, có nguồn gốc từ {{onomatopoeic|mnw|nocap=1}}. Cùng gốc với {{cog|km|ពពែ}}, {{cog|cbn|แพะ}}, {{cog|cog|แพ่ะ}}, {{cog|th|แพะ}}, {{cog|tyz|bẻ}}.
==={{ĐM|pron}}===
* {{IPA4|mnw|/hə.ɓeʔ/|/ɓeʔ/|a=Myanmar}}
* {{audio|mnw|ဗ္ၜေံ.wav|q=đọc}}
* {{audio|mnw|ဟဗ္ၜေံ.wav|q=nói}}
==={{ĐM|n}}===
{{mnw-noun|tr=bṗeʼ}}<ref name="bhadanta">{{R:mnw:Bhadanta1965}}</ref>
# {{lb|mnw|Myanmar}} [[dê|Dê]].
==={{ĐM|ref}}===
{{reflist}}
c45tjl8y2f6zge045npurusdv0vjvee
2570156
2570155
2026-10-13T09:26:23Z
Kelly zhrm
58416
2570156
wikitext
text/x-wiki
=={{langname|mnw}}==
[[File:Hausziege_04.jpg|thumb|{{lang|mnw|ဗ္ၜေံ}}]]
==={{ĐM|alt}}===
* {{q|Thái Lan}} {{l|mnw|ဗၜေံ}}<ref name="shorto">{{R:mnw:Shorto1962}}</ref><ref name="anusorn"/><ref name="phuan"/>
* {{q|Thái Lan}} {{l|mnw|ဗၜေအ်}}<ref name="anusorn">{{R:mnw:Mon-Thai1984}}</ref><ref name="phuan">{{R:mnw:Mon-Siamese2005}}</ref>
* {{q|Thái Lan}} {{l|mnw|ခၜေံ}}<ref name="champi">{{R:mnw:Lopburi}}</ref>
==={{ĐM|etym}}===
Từ {{inh|mnw|omx|ဗၜေအ်|tr=baṗeʼ}}, từ {{inh|mnw|mkh-pro|*bəɓeʔ||dê}}, có nguồn gốc từ {{onomatopoeic|mnw|nocap=1}}. Cùng gốc với {{cog|km|ពពែ}}, {{cog|cbn|แพะ}}, {{cog|cog|แพ่ะ}}, {{cog|th|แพะ}}, {{cog|tyz|bẻ}}.
==={{ĐM|pron}}===
* {{IPA|mnw|/hə.ɓeʔ/|/ɓeʔ/|a=Myanmar}}
* {{audio|mnw|ဗ္ၜေံ.wav|q=đọc}}
* {{audio|mnw|ဟဗ္ၜေံ.wav|q=nói}}
==={{ĐM|n}}===
{{mnw-noun|tr=bṗeʼ}}<ref name="bhadanta">{{R:mnw:Bhadanta1965}}</ref>
# {{lb|mnw|Myanmar}} [[dê|Dê]].
==={{ĐM|ref}}===
{{reflist}}
jwgys3suqlfjpch1lpclqgk5x4hunfp
ဗၜေံ
0
420004
2570158
2026-10-13T09:28:58Z
Kelly zhrm
58416
Trang mới: “=={{langname|mnw}}== ==={{ĐM|alt}}=== * {{q|Myanmar}} {{l|mnw|ဗ္ၜေံ}}<ref name="bhadanta">{{R:mnw:Bhadanta1965}}</ref> * {{q|Thái Lan}} {{l|mnw|ဗၜေအ်}}<ref name="anusorn">{{R:mnw:Mon-Thai1984}}</ref><ref name="phuan">{{R:mnw:Mon-Siamese2005}}</ref> * {{q|Thái Lan}} {{l|mnw|ခၜေံ}}<ref name="champi">{{R:mnw:Lopburi}}</ref> ==={{ĐM|etym}}=== Từ {{inh|mnw|omx|ဗၜေအ်|tr=baṗeʼ}}, từ {{inh|mnw|mkh-pro|*bəɓeʔ||goat}}, có ngu…”
2570158
wikitext
text/x-wiki
=={{langname|mnw}}==
==={{ĐM|alt}}===
* {{q|Myanmar}} {{l|mnw|ဗ္ၜေံ}}<ref name="bhadanta">{{R:mnw:Bhadanta1965}}</ref>
* {{q|Thái Lan}} {{l|mnw|ဗၜေအ်}}<ref name="anusorn">{{R:mnw:Mon-Thai1984}}</ref><ref name="phuan">{{R:mnw:Mon-Siamese2005}}</ref>
* {{q|Thái Lan}} {{l|mnw|ခၜေံ}}<ref name="champi">{{R:mnw:Lopburi}}</ref>
==={{ĐM|etym}}===
Từ {{inh|mnw|omx|ဗၜေအ်|tr=baṗeʼ}}, từ {{inh|mnw|mkh-pro|*bəɓeʔ||goat}}, có nguồn gốc từ {{onomatopoeic|mnw|nocap=1}}. Cùng gốc với {{cog|km|ពពែ}}, {{cog|cbn|แพะ}}, {{cog|cog|แพ่ะ}}, {{cog|th|แพะ}}.
==={{ĐM|pron}}===
* {{IPA|mnw|/pɛ̤ʔ.ɓeʔ/|a=Thái Lan}}
==={{ĐM|n}}===
{{mnw-noun|tr=baṗeʼ}}<ref name="shorto">{{R:mnw:Shorto1962}}</ref><ref name="anusorn"/><ref name="phuan"/>
# {{lb|mnw|Thailand}} [[dê|Dê]].
==={{ĐM|ref}}===
{{reflist}}
99ys1pfvzod8c5s7jjepw3l8hsm6sil
2570159
2570158
2026-10-13T09:29:13Z
Kelly zhrm
58416
/* {{ĐM|etym}} */
2570159
wikitext
text/x-wiki
=={{langname|mnw}}==
==={{ĐM|alt}}===
* {{q|Myanmar}} {{l|mnw|ဗ္ၜေံ}}<ref name="bhadanta">{{R:mnw:Bhadanta1965}}</ref>
* {{q|Thái Lan}} {{l|mnw|ဗၜေအ်}}<ref name="anusorn">{{R:mnw:Mon-Thai1984}}</ref><ref name="phuan">{{R:mnw:Mon-Siamese2005}}</ref>
* {{q|Thái Lan}} {{l|mnw|ခၜေံ}}<ref name="champi">{{R:mnw:Lopburi}}</ref>
==={{ĐM|etym}}===
Từ {{inh|mnw|omx|ဗၜေအ်|tr=baṗeʼ}}, từ {{inh|mnw|mkh-pro|*bəɓeʔ||dê}}, có nguồn gốc từ {{onomatopoeic|mnw|nocap=1}}. Cùng gốc với {{cog|km|ពពែ}}, {{cog|cbn|แพะ}}, {{cog|cog|แพ่ะ}}, {{cog|th|แพะ}}.
==={{ĐM|pron}}===
* {{IPA|mnw|/pɛ̤ʔ.ɓeʔ/|a=Thái Lan}}
==={{ĐM|n}}===
{{mnw-noun|tr=baṗeʼ}}<ref name="shorto">{{R:mnw:Shorto1962}}</ref><ref name="anusorn"/><ref name="phuan"/>
# {{lb|mnw|Thailand}} [[dê|Dê]].
==={{ĐM|ref}}===
{{reflist}}
5h9dahbctsvgl1co9340yo4gkjuecae
musical instrument
0
420005
2570161
2026-10-13T09:33:48Z
Kelly zhrm
58416
Trang mới: “=={{langname|en}}== [[File:Aesthetic musical instruments.JPG|thumb|Various musical instruments]] ==={{ĐM|etym}}=== Từ {{inh|en|enm|musical instrumentis|g=p}}, {{m|enm|musicalle instrumentes|g=p}}. ==={{ĐM|pron}}=== * {{audio|en|LL-Q1860 (eng)-Vininn126-musical instrument.wav|a=US}} ==={{ĐM|n}}=== {{en-noun}} # [[nhạc cụ|Nhạc cụ]]. #: {{syn|en|instrument}} ===={{ĐM|hypo}}==== * Xem thêm [[Kho từ vựng:musical instrument]] ==={{ĐM|further}}=== * {{p…”
2570161
wikitext
text/x-wiki
=={{langname|en}}==
[[File:Aesthetic musical instruments.JPG|thumb|Various musical instruments]]
==={{ĐM|etym}}===
Từ {{inh|en|enm|musical instrumentis|g=p}}, {{m|enm|musicalle instrumentes|g=p}}.
==={{ĐM|pron}}===
* {{audio|en|LL-Q1860 (eng)-Vininn126-musical instrument.wav|a=US}}
==={{ĐM|n}}===
{{en-noun}}
# [[nhạc cụ|Nhạc cụ]].
#: {{syn|en|instrument}}
===={{ĐM|hypo}}====
* Xem thêm [[Kho từ vựng:musical instrument]]
==={{ĐM|further}}===
* {{pedia|lang=en}}
{{C|en|Nhạc cụ}}
5f26r53nhhqdx5o92epz85kswguxa78