Wiktionary viwiktionary https://vi.wiktionary.org/wiki/Wiktionary:Trang_Ch%C3%ADnh MediaWiki 1.47.0-wmf.1 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 Event Event talk Wiktionary:Phiên bản ngôn ngữ 4 634 2351192 2351076 2026-05-07T17:17:47Z Kateru Zakuro 34522 Trang lỗi thời 2351192 wikitext text/x-wiki {{Trang ngưng hoạt động}} [[Wiktionary:Trang Cộng Đồng|Cộng đồng Wiktionary]] chắc chắn có tất cả những ngôn ngữ có [[Wiktionary:Thành viên|người Wiktionary]] muốn thực hiện bản dịch đó. Chúng tôi biết là nhiều ngôn ngữ trong [[Wiktionary:Danh sách ngôn ngữ|6.500 ngôn ngữ khắp nơi]] chưa được dùng ở trên máy tính hoặc Web, vì vậy chúng tôi mong muốn cộng tác với những người biết nói bất kỳ ngôn ngữ nào để có số bản dịch nhiều hơn. Mỗi bản dịch của Wiktionary đang có một tài khoản người dùng riêng. Những liên kết nối với bản dịch khác gọi là [[Trợ giúp:Liên kết liên wiki|liên kết liên wiki]] (interlanguage/[[Special:Interwiki|interwiki links]]). Địa chỉ của Wiktionary bằng ngôn ngữ bất kỳ là xx.wiktionary.org, là mã ngôn ngữ hai chữ theo [[ISO 639]]. Cho những ngôn ngữ không có mã hai chữ ISO 639 2, ngôn ngữ đó có mã ba chữ, nếu không, có mã ba chữ đặc biệt. (Ở những danh sách gửi thư và khi thảo luận, người ta thường thường viết ''xx:'' để nói là ''Wiktionary bằng tiếng xx'', thí dụ như ''Tôi là người quen ở vi:''.) == Các bộ từ điển == <div style="column-count:2;-moz-column-count:2;-webkit-column-count:2"> *[[:af:Tuisblad|Afrikaans]]&nbsp;&ndash; {{af}} *[[:ar:|&#8238;&#1575;&#1604;&#1593;&#1585;&#1576;&#1610;&#1577;&nbsp;&#8236; (Araby)]]&nbsp;&ndash; {{ar}} *[[:ast:|Asturleonés]] *[[:gn:|Avañe’ẽ]] *[[:id:|Bahasa Indonesia]]&nbsp;&ndash; {{id}} *[[:ms:|Bahasa Melayu]] *[[:bg:|Български (Balgarski)]]&nbsp;&ndash; {{bg}} *[[:bn:|বাঙলা (Bangla)]] *[[:ca:|Català]]&nbsp;&ndash; {{cat-old}} *[[:cs:|Český]]&nbsp;&ndash; {{cs}} *[[:ch:|Chamorro]] *[[:cy:|Cymraeg]]&nbsp;&ndash; {{cy}} *[[:da:|Dansk]]&nbsp;&ndash; {{da}} *'''[[:de:|Deutsch]]'''&nbsp;&ndash; {{de}} *[[:et:|Eesti]] *[[:el:|Ελληνικά (Ellenika)]]&nbsp;&ndash; {{el}} *'''[[:en:|English]]'''&nbsp;&ndash; {{en}} *'''[[:es:|Español]]'''&nbsp;&ndash; {{es}} *[[:eo:|Esperanto]]&nbsp;&ndash; {{eo}} *[[:eu:|Euskara]] *[[:fa:|&#1601;&#1575;&#1585;&#1587;&#1740; (Farsi)]]&nbsp;&ndash; {{fa}} *'''[[:fr:|Français]]'''&nbsp;&ndash; {{fr}} *[[:fy:|Frysk]] *[[:ga:|Gaelige]] *[[:gl:|Galego]] *[[:gu:|ગુજરાતી <nowiki>[Gujarati]</nowiki>]] *[[:ko:|한국어 (Hangugeo)]]&nbsp;&ndash; {{ko}} *[[:hi:|हिन्दी (Hindi)]]&nbsp;&ndash; {{hi}} *[[:hr:|Hrvatski]] *[[:ia:|Interlingua]]&nbsp;&ndash; {{ia}} *[[:is:|Íslenska]]&nbsp;&ndash; [[Tiếng Băng đảo]] *[[:it:|Italiano]]&nbsp;&ndash; {{it}} *[[:he:|&#1506;&#1489;&#1512;&#1497;&#1514; (Ivrit)]]&nbsp;&ndash; {{he}} *[[:ku:|Kurdî]] *[[:la:|Latina]]&nbsp;&ndash; {{la}} *[[:lt:|Lietuvių]] *'''[[:hu:|Magyar]]''' *[[:ml:|മലയാളം (Malayalam)]] *[[:na:|Naoero]] *'''[[:nl:|Nederlands]]'''&nbsp;&ndash; {{nl}} *'''[[:ja:|日本語 (Nihongo)]]'''&nbsp;&ndash; {{ja}} *[[:no:|Norsk]]&nbsp;&ndash; {{no}} *[[:oc:|Occitan]] *[[:nds:|Plattdüütsch]] *'''[[:pl:|Polski]]'''&nbsp;&ndash; {{pl}} *[[:pt:|Português]]&nbsp;&ndash; {{pt}} *[[:ro:|Română]]&nbsp;&ndash; {{ro}} *[[:ru:|Русский (Russkiy)]]&nbsp;&ndash; {{ru}} *'''[[:fi:|Suomeksi]]'''&nbsp;&ndash; {{fi}} *'''[[:sv:|Svenska]]'''&nbsp;&ndash; {{sv}} *[[:ta:|தமிழ் (Tamil)]] *[[:tt:|татарча / بابارچا (Tatarça)]] *[[:th:|ไทย (Thai)]]&nbsp;&ndash; {{th}} *[[:tr:|Türkçe]]&nbsp;&ndash; {{tr}} *[[:ur:|&#1575;&#1585;&#1583;&#1608; (Urdu)]]&nbsp;&ndash; {{ur}} *[[:fj:|Vosa Vakaviti]]&nbsp;&ndash; {{fj}} *'''[[:zh:|中文 (Zhongwen)]]'''&nbsp;&ndash; {{zh}} <!-- Empty or non-existant *[[:ab:|Аҧсуа (Aṗsua)]] *[[:ay:|Aymara]] *[[:az:|Azərbaycan]] *[[:bal:|(Balochi)]] *[[:my:|(Burmese)]] *[[:sn:|chiShona]] *[[:co:|Corsu]] *[[:hy:|Հայերէն (Hayeren)]] *[[:tw:|Hō-ló-oē]] *[[:zu:|IsiZulu]] *[[:kn:|ಕನ್ನಡ (Kannaḍa)]] *[[:km:|ភាសាែខរ (Khmer)]]&nbsp;&ndash; [[Tiếng Khờ-me]] *[[:lv:|Latviešu]] *[[:ln:|Lingala]] *[[:mt:|Malti]] *[[:mr:|Marathi]] *[[:ne:|नेपाली (Nēpālī)]] *[[:pa:|ਪੰਜਾਬੀ / पंजाबी / پنجابی (Punjabi)]] *[[:qu:|Runa Simi]] *[[:tl:|Tagalog]] *[[:uk:|українська (Ukraïns’ka)]] *[[:uz:|Ўзбек (O’zbek)]] *[[:vo:|Volapük]] *[[:yo:|Yorùbá]] --> </div> b82m4sxxukg6p07hhnvehhp9wj356bm Thảo luận Thành viên:Mxn 3 641 2351189 2255191 2026-05-07T16:45:19Z MediaWiki message delivery 19980 Mục mới: /* Thư mời cho đề nghị cấp quyền bot */ 2351189 wikitext text/x-wiki {{/Lưu trữ}}<!-- {{Vắng mặt|t=ngày 9–20 tháng 3 năm 2009 vì "[[Dead week|tuần chết]]" và tuần thi}} --> __TOC__<!-- LƯU Ý: Xin viết các tin nhắn mới vào CUỐI trang! Cám ơn. --> ==Thảo luận== Mời anh cho ý kiến tại [[Thảo luận Wiktionary: Thảo luận]], về vấn đề IPA bị sai.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 07:14, ngày 21 tháng 4 năm 2021 (UTC) == Về giao diện Wiktionary == Chào bạn. Tôi nghĩ bạn là người thành lập dự án này, nên tôi muốn hỏi bạn về vấn đề lỗi giao diện, không dùng được bản mẫu (xem ví dụ cho [[Bản mẫu:character info]] tại trang [[7]]). Mong bạn có hướng giải quyết lỗi, xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:52, ngày 20 tháng 7 năm 2021 (UTC) :Xem thêm [[Thảo luận Thành viên:Thienhau2003#Bản mẫu:character info]], đoạn thứ hai. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:53, ngày 20 tháng 7 năm 2021 (UTC) == [[Thành viên:Ccv2020/Thống kê tiện ích|Thống kê tiện ích]] == Chào bạn. Mong bạn dành thời gian tìm hiểu xem có thể thêm các tiện ích trên vào Wiktionary không. Nguồn thống kê: Wikipedia. Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 03:07, ngày 14 tháng 10 năm 2021 (UTC) :@[[Thành viên:Ccv2020|Ccv2020]]: Cám ơn bạn đã biên soạn danh sách này. Hình như một số tiện ích được gợi ý không phù hợp với từ điển Wiktionary. Thí dụ không có mục từ nào được liên kết với khoản mục Wikidata để lấy miêu tả và biệt danh, vì các mục từ ứng với từ vị chứ không phải khái niệm (xem [[d:Wikidata:Wiktionary]]). Theo bạn, tiện ích nào là quan trọng nhất? Tôi có thể dành một tí thời gian để nghiên cứu nhưng chắc không thể cài đặt mọi tiện ích. :Đây là một giai đoạn hơi nguy hiểm đối với các tiện ích về giao diện vì giao diện Vectơ đang được nhóm phát triển MediaWiki thay đổi liên tục. Các tiện ích và kịch bản hiện tại đã dễ bị vỡ rồi huống chi các tiện ích được thiết kế dành cho Wikipedia, thí dụ như Twinkle. (Trong vài năm nay chỉ có tôi dám duy trì bản dịch tiếng Việt của Twinkle, nhưng việc này khó đến độ mà Quỹ Wikimedia đã cấp vốn [https://github.com/wikimedia-gadgets/twinkle-starter/ viết lại Twinkle] để dễ địa phương hóa hơn.) :&nbsp; – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 06:35, ngày 14 tháng 10 năm 2021 (UTC) ::Tôi đã chọn xong. Bạn nghiên cứu rồi cài từ từ cũng được. Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 06:35, ngày 16 tháng 10 năm 2021 (UTC) == school IP == Chào Mxn, our school IP is blocked forever in French Wiktionary to avoid Fête, but our principal doesn't agree, can you add a message [[fr:Wiktionnaire:Demandes aux administrateurs/octobre 2021#Une demande du Commons|there]] please? Tell them that our principal doesn't accept the permanent block and Fête will leave from his school on June 2024. Thanks. [[Thành viên:Joe Pig|Joe Pig]] ([[Thảo luận Thành viên:Joe Pig|thảo luận]]) 14:33, ngày 26 tháng 10 năm 2021 (UTC) ::Chào Mxn, finally, our problem is fixed. [[Thành viên:VincentPH|VincentPH]] ([[Thảo luận Thành viên:VincentPH|thảo luận]]) 16:31, ngày 18 tháng 1 năm 2022 (UTC) == Tắt gadget Trang Chính == Chào bạn. Nhờ bạn tẳt gadget Trang Chính [[MediaWiki:Gadget-main page.js]] vì nó gây lỗi khi áp dụng [[Thảo luận:Trang Chính|Trang Chính]] mới. Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 09:15, ngày 4 tháng 11 năm 2021 (UTC) :@[[Thành viên:Ccv2020|Ccv2020]]: Tôi đã cập nhật tiện ích và đăng lên thiết kế mới lần nữa. – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 09:45, ngày 4 tháng 11 năm 2021 (UTC) == Cập nhật tiện ích hàng tháng == Bạn ơi, mong bạn dành chút thời gian cập nhật thêm tiện ích cho Wiktionary tiếng Việt. Mình còn thông báo rộng rãi đến mọi người, hôm nay là ngày 28 rồi. Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 13:16, ngày 28 tháng 11 năm 2021 (UTC) :@[[Thành viên:Ccv2020|Ccv2020]]: Cám ơn bạn đã nhắc. Tháng này mình đồng bộ hóa các tiện ích hiện tại với Wikipedia tiếng Việt và Wikipedia tiếng Anh. Đặc biệt là các popup chuyển hướng đã tiếp tục hoạt động tốt. – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 19:13, ngày 28 tháng 11 năm 2021 (UTC) == Về đồng hồ UTC == Chào bạn. Mình có xem các dự án wiki tiếng Việt khác như Wikibooks, Wikisource,… và đều thấy trong tùy chọn có đồng hồ UTC (hoặc UTC+7 theo giờ VN) cả, chỉ có dự án này là không có. Vì thế, mong bạn ưu tiên xem xét cài đồng hồ cho dự án Wiktionary tiếng Việt. Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 13:52, ngày 2 tháng 12 năm 2021 (UTC) :@[[Thành viên:Ccv2020|Ccv2020]]: Bạn muốn tiện ích UTCLiveClock phải không? Nếu phải thì mình vừa cài đặt xong. Còn tùy chọn "[[Đặc biệt:Tùy chọn#mw-prefsection-rendering|Chênh lệch giờ]]" hình như không khác với các dự án kia đối với tài khoản của mình. – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 09:22, ngày 4 tháng 12 năm 2021 (UTC) ::Đúng rồi bạn. Chỉnh lệch giờ hay không thì tùy bạn thôi, cũng không sao. Cảm ơn bạn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 09:24, ngày 4 tháng 12 năm 2021 (UTC) == Cần trợ giúp == Làm thế nào để ẩn được cái nút sửa trên đề mục ngôn ngữ cấp 2 tại [https://vi.m.wiktionary.org/wiki/camber đây]. Tôi đã dùng mã Ẩn các liên kết sửa đoạn trang tại [[MediaWiki:Mobile.css]] nhưng không hiểu tại sao cái đề mục ngôn ngữ cấp 2 lại không ẩn đuọc. Mong anh có thể giúp tôi sửa lỗi này do rất nhiều người đã sửa lộn vào đây, cảm ơn.--[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 15:46, ngày 17 tháng 12 năm 2021 (UTC) :@[[Thành viên:Kateru Zakuro|Kateru Zakuro]]: [[Đặc biệt:Khác/2037458|Đã sửa]], cám ơn bạn đang quan tâm đến giao diện di động. – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 20:51, ngày 17 tháng 12 năm 2021 (UTC) == Cảm ơn == Cảm ơn anh đã làm mới lại giao diện tab mục từ theo giao diện mới. Nếu anh rảnh rỗi thì có thể thiết kế lại luôn trình tạo mục từ mới. '''Không cần thay đổi thiết kế hiện tại, chỉ cần làm sao để cho menu chọn, nút giống OOUI là được'''. Kiểu giống như mấy cái nút hay menu chọn trong [[:File:Gadget_Créer_nouveau_mot_-_onglet_principal_v2.png|trình tạo mục từ bên tiếng Pháp]]. Cảm ơn anh nhiều.--[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 08:06, ngày 20 tháng 12 năm 2021 (UTC) == How we will see unregistered users == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin=content/> Hi! You get this message because you are an admin on a Wikimedia wiki. When someone edits a Wikimedia wiki without being logged in today, we show their IP address. As you may already know, we will not be able to do this in the future. This is a decision by the Wikimedia Foundation Legal department, because norms and regulations for privacy online have changed. Instead of the IP we will show a masked identity. You as an admin '''will still be able to access the IP'''. There will also be a new user right for those who need to see the full IPs of unregistered users to fight vandalism, harassment and spam without being admins. Patrollers will also see part of the IP even without this user right. We are also working on [[m:IP Editing: Privacy Enhancement and Abuse Mitigation/Improving tools|better tools]] to help. If you have not seen it before, you can [[m:IP Editing: Privacy Enhancement and Abuse Mitigation|read more on Meta]]. If you want to make sure you don’t miss technical changes on the Wikimedia wikis, you can [[m:Global message delivery/Targets/Tech ambassadors|subscribe]] to [[m:Tech/News|the weekly technical newsletter]]. We have [[m:IP Editing: Privacy Enhancement and Abuse Mitigation#IP Masking Implementation Approaches (FAQ)|two suggested ways]] this identity could work. '''We would appreciate your feedback''' on which way you think would work best for you and your wiki, now and in the future. You can [[m:Talk:IP Editing: Privacy Enhancement and Abuse Mitigation|let us know on the talk page]]. You can write in your language. The suggestions were posted in October and we will decide after 17 January. Thank you. /[[m:User:Johan (WMF)|Johan (WMF)]]<section end=content/> </div> 18:20, ngày 4 tháng 1 năm 2022 (UTC) <!-- Tin nhắn của Thành viên:Johan (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Target_lists/Admins2022(8)&oldid=22532697 --> == Lỗi trang chính == Chào anh, hiện trang chính đang bị lỗi về hiển thị số mục từ. Nhờ anh xem qua và sửa giúp--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 23:55, ngày 3 tháng 6 năm 2023 (UTC) :@[[Thành viên:TheHighFighter2|TheHighFighter2]]: Cám ơn bạn đã báo cáo lỗi cho tôi. Mình đã [[Thảo luận Mô đun:Thống kê Wiktionary#Sự cố do mức độ xử lý cao|giải thích vấn đề]], xin bạn xem xét. Chắc nên tạm thời lùi lại một số thay đổi gần đây và thay thế bằng số giả, sau đó nghĩ đến cách chạy bot để cập nhật các thống kê thường xuyên, như vậy chúng ta không cần lạm dụng hàm đếm mục từ trong thể loại như hiện tại. – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 00:33, ngày 4 tháng 6 năm 2023 (UTC) ::Cảm ơn anh đã giải thích. Tạm thời thì ta cứ làm như vậy đi--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 00:57, ngày 4 tháng 6 năm 2023 (UTC) == Need your input on a policy impacting gadgets and UserJS == <div lang="en" dir="ltr" class="mw-content-ltr"> Dear interface administrator, This is Samuel from the Security team and I hope my message finds you well. There is an [[m:Talk:Third-party resources policy|ongoing discussion]] on a proposed policy governing the use of external resources in gadgets and UserJS. The proposed [[m:Special:MyLanguage/Third-party resources policy|Third-party resources policy]] aims at making the UserJS and Gadgets landscape a bit safer by encouraging best practices around external resources. After an initial non-public conversation with a small number of interface admins and staff, we've launched a much larger, public consultation to get a wider pool of feedback for improving the policy proposal. Based on the ideas received so far, the proposed policy now includes some of the risks related to user scripts and gadgets loading third-party resources, best practices for gadgets and UserJS developers, and exemptions requirements such as code transparency and inspectability. As an interface administrator, your feedback and suggestions are warmly welcome until July 17, 2023 on the [[m:Talk:Third-party resources policy|policy talk page]]. Have a great day!</div> <bdi lang="en" dir="ltr">[[m:User:Samuel (WMF)|Samuel (WMF)]], on behalf of the Foundation's Security team</bdi> 12:08, ngày 10 tháng 7 năm 2023 (UTC) <!-- Tin nhắn của Thành viên:Samuel (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Samuel_(WMF)/IAdmins_MassMessage_list_2&oldid=25272792 --> == Thư mời tham gia biểu quyết == <div style="padding: 0.5em; background: #f8f8ff; margin-top: 1em; font-size: 1em"> {| class="table" style="width: 80%; background-color: #ACE1AF; border: 1px solid #fceb92; margin: auto; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:Logo vote.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | '''Mời bạn cho ý kiến về việc cấp quyền Bảo quản viên cho thành viên [[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] tại trang [[Thảo luận Wiktionary:Bảo quản viên#DefenderTienMinh07|Thảo luận Wiktionary:Bảo quản viên]]. Xin cảm ơn. <small>Hãy cùng tích cực tham gia các biểu quyết và thảo luận về chúng. Mỗi hành động của bạn sẽ góp phần không nhỏ để xây dựng các mục từ trên Wiktionary - tài sản chung của cộng đồng chúng ta, giúp wiki ta ngày càng phát triển vững mạnh! Thân ái! |} </div> [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 10:25, ngày 24 tháng 8 năm 2023 (UTC) == Thư mời cho ý kiến == Đang có cuộc tranh luận diễn ra tại trang [https://vi.wiktionary.org/wiki/Wiktionary:Th%E1%BA%A3o_lu%E1%BA%ADn#T%C3%ADnh_trung_l%E1%BA%ADp Wiktionary:Thảo luận#Tính trung lập] về nội dung không trung lập trên dự án, mong bác cho ý kiến. Xin cảm ơn. – [[Thành viên:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[Thảo luận Thành viên:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 16:33, ngày 16 tháng 9 năm 2023 (UTC) == [[spelling]] == Trang này bị lỗi Lua. Có gì mời bạn ngó qua và sửa giúp. Thanks! [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 07:59, ngày 9 tháng 7 năm 2025 (UTC) : @[[Thành viên:Nguyentrongphu|Nguyentrongphu]] Tôi mới sửa lại trang, bạn có thể xem lại nếu cần thiết. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 08:31, ngày 9 tháng 7 năm 2025 (UTC) ::[[User:Ayane Fumihiro]] Bạn biết sửa bản mẫu Lua luôn à? Khá giỏi đấy. Sao, giờ muốn làm BQV ở Wiktionary chưa? Làm BQV ở đây thực tập cũng tốt. Đầu năm sau làm ĐPV bên Wikipedia Vi luôn là đẹp. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 08:34, ngày 9 tháng 7 năm 2025 (UTC) ::: @[[Thành viên:Nguyentrongphu|Nguyentrongphu]] Không phải sủa bản mẫu lua, sửa lại trang thôi. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 08:35, ngày 9 tháng 7 năm 2025 (UTC) ::::[[User:Ayane Fumihiro]] Oh, nói chung thì bạn cũng có nhiều đóng góp của dự án này. Làm BQV là ok, tôi sẽ ủng hộ. Nó sẽ giúp bạn thực tập tốt với các công cụ bảo quản cho Wikipedia trong tương lai. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 08:37, ngày 9 tháng 7 năm 2025 (UTC) ::::: Hiện tại dự án này chỉ có tôi, TheHighFighter2, WhoAlone và Higashizakura hoạt động thường xuyên thôi. P.Đăng lâu lâu mới xuất hiện. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 08:41, ngày 9 tháng 7 năm 2025 (UTC) ::::::[[Thành viên:Ayane Fumihiro|Ayane Fumihiro]] và [[Thành viên:Nguyentrongphu|Nguyentrongphu]] Thật ra ngày nào onl wiki tôi cũng sẽ hoạt động tại đây. Tháng này thì đang bận. Bạn Ayane Fumihiro muốn ứng cử không? Tuy nhiên, [[Thành viên:Higashizakura|Higashizakura]] và [[Thành viên:TheHighFighter2|TheHighFighter2]] có thể nhận xét bạn còn mắc lỗi điểm nào để cải thiện trước. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 15:37, ngày 9 tháng 7 năm 2025 (UTC) ::::::[[Thành viên:Ayane Fumihiro|Ayane Fumihiro]] Bạn muốn ứng cử thì cứ ra ứng cử và tag tôi. Tôi sẽ ủng hộ. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 21:53, ngày 9 tháng 7 năm 2025 (UTC) :@[[Thành viên:Nguyentrongphu|Nguyentrongphu]] @[[Thành viên:Ayane Fumihiro|Ayane Fumihiro]]: Không phải chỉ trang này, tất cả những mục từ nhúng {{LKBM|present participle of}} có lỗi Lua. Hình như [[Đặc biệt:Khác/2250830|thay đổi này]] sửa các lỗi. Chúng ta đã sao chép nguyên văn [[Đặc biệt:Tìm kiếm/Module:nsText Template|nhiều mô đun]] có lỗi tương tự. – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 16:25, ngày 9 tháng 7 năm 2025 (UTC) ::@[[Thành viên:Mxn|Mxn]] Có khoảng 1.600 trang xếp vào [[:Thể loại:Trang có lỗi kịch bản]]. – [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 16:37, ngày 9 tháng 7 năm 2025 (UTC) :::@[[Thành viên:Ayane Fumihiro|Ayane Fumihiro]]: Trong số trang này có rất nhiều lỗi nội dung như [[cupping#Tiếng Anh]]. Các mục từ này không có sao khi [[Thành viên:TTT|TTT]] dùng bot để chèn hàng loạt bảng chia động từ. Về sau bản mẫu {{LKBM|present participle of}} được ghi đè bằng bản mẫu và mô đun rất nghiêm cách từ Wiktionary tiếng Anh, bắt phải có tham số 1 là mã ngôn ngữ thay vì tham số {{para|lang}} tùy chọn, khiến các mục từ cũ gây lỗi. Bây giờ cần lập bot để sửa hàng loạt hoặc chỉnh lại mô đun để khắc phục các lỗi này. – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 21:56, ngày 9 tháng 7 năm 2025 (UTC) :::: Wiktionary tiếng Nhật vẫn còn dùng tham số cũ <code><nowiki>|lang=</nowiki></code>. Xem [[:wikt:ja:Special:Diff/2101420|đây]]. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 02:14, ngày 11 tháng 7 năm 2025 (UTC) :::::@[[Thành viên:Ayane Fumihiro|Ayane Fumihiro]]: Vâng, tốt nhất là hỗ trợ cả hai định dạng, và nếu thiếu mã ngôn ngữ thì chỉ cho ra thể loại ẩn để theo dõi thay vì báo cáo lỗi. Như vậy có thể từ từ sửa lại các mục từ lỗi thời. Tuy nhiên, các mô đung được nhập từ Wiktionary tiếng Anh rất phức tạp, chẳng biết phải sửa logic ở đâu để ổn định và không gẫy các bài kia. – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 12:54, ngày 11 tháng 7 năm 2025 (UTC) == JsonConfig == @[[Thành viên:Mxn|Mxn]] Gần đây có xuất hiện [[:Thể loại:Pages using the JsonConfig extension]], không biết nó xuất phát từ mô đun nào. Tôi đã dùng cú pháp tìm kiếm <code><nowiki>insource:"Pages using the JsonConfig extension"</nowiki></code> (chỉ tìm module) nhưng vẫn tìm không ra. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 13:03, ngày 11 tháng 7 năm 2025 (UTC) :@[[Thành viên:Ayane Fumihiro|Ayane Fumihiro]]: Một số mô đun tải tập tin JSON từ không gian tên Mô đun: hoặc [[c:Special:MyLanguage/Help:Tabular Data|không gian tên Data:]] tại Wikimedia Commons dùng phần mở rộng JsonConfig. Phần mở rộng này tự động xếp các trang vào thể loại theo dõi được định nghĩa toàn cục tại [[TranslateWiki:MediaWiki:Jsonconfig-use-category/vi]]. Tôi vừa dịch nó ra tiếng Việt, nó sẽ xuất hiện tại đây trong vòng vài ngày. – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 13:47, ngày 11 tháng 7 năm 2025 (UTC) == Nhờ == Phiền bạn xem qua từ [[يلوك]] và sửa lỗi vì nó có vấn đề (lỗi: '''For Arabic lemma '[[لاك]]', page exists but has no Arabic section when looking for form I''') trong khi từ [[تكتب]] hiển thị bình thường. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 10:01, ngày 22 tháng 7 năm 2025 (UTC) :@[[Thành viên:Ayane Fumihiro|Ayane Fumihiro]]: Tôi đã sửa lỗi trong [[Đặc biệt:Khác/2252411/2255189]] và [[Đặc biệt:Khác/2255190]]. Wiktionary tiếng Anh luôn sử dụng đề mục đơn giản trong khi chúng ta sử dụng bản mẫu {{LKBM|-ara-}} hoặc {{LKBM|langname}} để nhúng đề mục. Chúng ta phải tải bản mẫu và mô đun để phân tích mã wiki. Thực sự [[Mô đun:pages]] cần được xây dựng lại để sử dụng [[mw:Extension:Labeled Section Transclusion]] giống như [[w:Module:Excerpt]]. – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 19:39, ngày 22 tháng 7 năm 2025 (UTC) == Thư mời cho đề nghị cấp quyền bot == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:OOjs UI icon advanced.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|trang đề nghị cấp quyền bot]] của "'''[[User:BlueShurikenNinjaBot|BlueShurikenNinjaBot]]'''" tại '''[[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|đây]]'''. <small>Kính mong bạn xem xét và thảo luận về đề nghị cấp quyền bot này! Thân ái!</small> |} &nbsp;Mong bạn cho ý kiến ạ. [[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]]) 16:45, ngày 7 tháng 5 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:Kateru Zakuro@viwiktionary gửi cho mọi người trong danh sách tại https://vi.wiktionary.org/w/index.php?title=Wiktionary:Danh_s%C3%A1ch_th%C6%B0&oldid=2323217 --> kmfl5jxpm8uop4k6y27jimcn30ix6vi Wiktionary:Thống kê bản dịch 4 1026 2351194 2028886 2026-05-07T17:19:19Z Kateru Zakuro 34522 đã dời [[Thể loại:Cộng đồng Wiktionary]] dùng [[w:WP:HOTCAT|HotCat]] 2351194 wikitext text/x-wiki {{Historical}} ==Trang thống kê== Ở dưới có những [[Special:Statistics|trang thống kê]] cho mọi bản dịch Wiktionary: *[[:af:Spesiaal:Statistics|Afrikaans]] *[[:ar:Special:Statistics|&#8238;&#1575;&#1604;&#1593;&#1585;&#1576;&#1610;&#1577;&nbsp;&#8236; (Araby)]] *[[:ast:Special:Statistics|Asturleonés]] *[[:gn:Special:Statistics|Avañe’ẽ]] *[[:id:Istimewa:Statistics|Bahasa Indonesia]] *[[:ms:Istimewa:Statistics|Bahasa Melayu]] *[[:bg:Специални:Statistics|Български (Balgarski)]] *[[:bn:বিশেষ:Statistics|বাঙলা (Bangla)]] *[[:ca:Especial:Statistics|Català]] *[[:cs:Speciální:Statistics|Český]] *[[:ch:Special:Statistics|Chamorro]] *[[:cy:Arbennig:Statistics|Cymraeg]] *[[:da:Speciel:Statistics|Dansk]] *'''[[:de:Spezial:Statistics|Deutsch]]''' *[[:et:Eri:Statistics|Eesti]] *[[:el:Special:Statistics|Ελληνικά (Ellenika)]] *'''[[:en:Special:Statistics|English]]''' *'''[[:es:Especial:Statistics|Español]]''' *[[:eo:Speciala:Statistics|Esperanto]] *[[:eu:Special:Statistics|Euskara]] *[[:fa:Special:Statistics|&#1601;&#1575;&#1585;&#1587;&#1740; (Farsi)]] *'''[[:fr:Special:Statistics|Français]]''' *[[:fy:Wiki:Statistics|Frysk]] *[[:ga:Speisialta:Statistics|Gaelige]] *[[:gl:Special:Statistics|Galego]] *[[:gu:Special:Statistics|Gujarati]] *[[:ko:특수기능:Statistics|한국어 (Hangugeo)]] *[[:hi:विशेष:Statistics|हिन्दी (Hindi)]] *[[:hr:Special:Statistics|Hrvatski]] *[[:ia:Special:Statistics|Interlingua]] *[[:is:Special:Statistics|Íslenska]] *[[:it:Speciale:Statistics|Italiano]] *[[:he:Special:Statistics|&#1506;&#1489;&#1512;&#1497;&#1514; (Ivrit)]] *[[:km:Special:Statistics|ភាសាែខរ (Khmer)]] *[[:ku:Special:Statistics|Kurdî]] *[[:la:Specialis:Statistics|Latina]] *[[:lt:Special:Statistics|Lietuvių]] *'''[[:hu:Speciális:Statistics|Magyar]]''' *[[:ml:Special:Statistics|മലയാളം (Malayalam)]] *[[:na:Special:Statistics|Naoero]] *'''[[:nl:Speciaal:Statistics|Nederlands]]''' *'''[[:ja:特別:Statistics|日本語 (Nihongo)]]''' *[[:no:Spesial:Statistics|Norsk]] *[[:oc:Especial:Statistics|Occitan]] *[[:nds:Special:Statistics|Plattdüütsch]] *'''[[:pl:Specjalna:Statistics|Polski]]''' *[[:pt:Especial:Statistics|Português]] *[[:ro:Special:Statistics|Română]] *[[:ru:Специальные:Statistics|Русский (Russkiy)]] *'''[[:fi:Toiminnot:Statistics|Suomi]]''' *'''[[:sv:Special:Statistics|Svenska]]''' *[[:ta:சிறப்பு:Statistics|தமிழ் (Tamil)]] *[[:tt:Special:Statistics|татарча / بابارچا (Tatarça)]] *[[:th:พิเศษ:Statistics|ไทย (Thai)]] *[[:tr:Special:Statistics|Türkçe]] *[[:ur:Special:Statistics|&#1575;&#1585;&#1583;&#1608; (Urdu)]] *[[:fj:Special:Statistics|Vosa Vakaviti]] *[[:zh:Special:Statistics|中文 (Zhongwen)]] ==Thống kê cho Wiktionary vào năm 2004== ===Tổng số mục từ hàng tháng=== Bảng ở dưới có số mục từ trong mỗi phiên bản Wiktionary hàng tháng. Những phiên bản ngôn ngữ có một mục từ trở lên được liệt kê ở dưới. Xem thứ tự và thống kê hiện thời tại [[m:Wiktionary#List of Wiktionaries]]. {{Thống kê bản dịch hàng tháng}} [[el:Wiktionary:Πολύγλωσση Στατιστική]] [[en:Wiktionary:Multilingual statistics]] 9859cf18y4vm7ixjew19xuf7qjp5em5 Bản mẫu:Ca 10 1401 2351360 1130014 2026-05-08T10:19:23Z Xqbot 58423 Giải quyết đổi hướng kép đến [[Bản mẫu:categorize]] 2351360 wikitext text/x-wiki #đổi [[Bản mẫu:categorize]] 9e3bmdhhx29cvrgqgbxc215ewhlmuhc Việt Nam 0 2140 2351304 2280709 2026-05-08T06:32:18Z TheHighFighter2 42988 ± 3 thể loại dùng [[w:WP:HOTCAT|HotCat]] 2351304 wikitext text/x-wiki == {{langname|vi}} == [[Hình:LocationofVietnam.png|nhỏ|phải|Việt Nam]] === {{ĐM|pron}} === {{vie-pron|việt|nam}} === {{ĐM|etym}} === Phiên âm chữ Hán [[越南]] ([[越]], phiên âm là [[Việt]], nghĩa là dân tộc [[Việt]] + [[南]], phiên âm là [[nam]], nghĩa là phía [[nam]] đối với [[Trung Quốc]]). === {{ĐM|place}} === {{vie-pr-noun}} # {{senseid|vi|Q881}} [[quốc gia|Quốc gia]] nằm phía đông của [[bán đảo]] [[Đông Dương]], thuộc khu vực [[Đông Nam Á]], giáp giới với nước [[Trung Quốc]] ở phía bắc, [[Biển Đông]] ở phía đông và nam, Vịnh [[Thái Lan]] ở phía tây nam, với lại [[Campuchia]] và [[Lào]] ở phía tây. ==== {{ĐM|syn}} ==== * [[Cộng hòa Xã hội chủ nghĩa Việt Nam]] * [[CHXHCN Việt Nam]] * [[CHXHCNVN]] ==== {{ĐM|trans}} ==== {{đầu}} * {{eng}}: [[Vietnam]], [[Socialist Republic of Vietnam]] * {{pol}}: [[Wietnam]] * {{por}}: [[Vietname]] * {{ina}}: Vietnam * {{bos}}: [[Vijetnam]] {{g|m}} * {{bre}}: [[Viêt Nam]] * {{bul}}: [[Виетнам]] * {{dan}}: Vietnam * {{deu}}: Vietnam * {{kat}}: [[ვიეტნამი]] * {{nld}}: Vietnam * {{hin}}: [[वियतनाम]] * {{ell}}: [[Βιετνάμ]] {{n}} * {{ind}}: Vietnam {{giữa}} * {{mri}}: [[Whitināmu]] * {{rus}}: [[Вьетнам]] * {{jpn}}: [[ベトナム]] (Betonamu), [[ベトナム]][[社会主義]][[共和国]] (Betonamu shakaishugi kyōwakoku), [[越南]] ([[えつなん]]) (Etsu'nan) * {{fin}}: Vietnam * {{fra}}: [[Vietnam]] * {{epo}}: [[Vjetnamio]], [[Vjet-Namo]], [[Vjetnamo]] * {{ron}}: Vietnam {{n}} * {{spa}}: Vietnam * {{swe}}: Vietnam * {{kor}}: Việt Nam: [[베트남]], CHXHCN Việt Nam: 베트남사회주의공화국, danh già: [[월남]] * {{zho}}: [[越南]] (Yuènán) * {{ita}}: Vietnam {{cuối}} === {{ĐM|adj}} === {{vie-adj}} # Thuộc về nước Việt Nam. ==== {{ĐM|trans}} ==== {{đầu}} * {{pol}}: [[wietnamski]] * {{bos}}: [[vijetnamski]] {{g|m}} {{sing}}&amp;{{plur}}, [[vijetnamska]] {{f}} {{sing}} &amp; {{n}} {{plur}}, [[vijetnamske]] {{f}} {{plur}}, [[vijetnamsko]] {{n}} {{sing}} * {{heb}}: [[ווייטנאמית]] * {{deu}}: [[vietnamesisch]] * {{fin}}: [[vietnamilainen]] * {{fra}}: [[vietnamien]] {{g|m}}, [[vietnamienne]] {{n}} {{giữa}} * {{srp}}: [[вијетнамски]], [[vijetnamski]] {{g|m}} {{sing}}&amp;{{plur}}; [[вијетнамска]], [[vijetnamska]] {{f}} {{sing}} &amp; {{n}} {{plur}}; [[вијетнамске]], [[vijetnamske]] {{f}} {{plur}}; [[вијетнамско]], [[vijetnamsko]] {{n}} {{sing}} * {{spa}}: [[vietnamita]] {{g|m}}&amp;{{f}}, [[vietnamitas]] {{g|m}}&amp;{{f}} {{plur}} * {{swe}}: [[vietnamesisk]] * {{kor}}: [[베트남]][[의]] * {{zho}}: [[越南的]] {{cuối}} [[Thể loại:vi:Quốc gia]] [[Thể loại:vi:Quốc gia của châu Á]] [[Thể loại:vi:Việt Nam]] ffwplqhtr0bsz86kylwvcn2n6ud2f60 ngây thơ 0 2856 2351328 2284734 2026-05-08T07:39:31Z Hiyuune 50834 2351328 wikitext text/x-wiki =={{langname|vi}}== ==={{section|etym}}=== {{com|vi|ngây|thơ}}. ==={{section|pron}}=== {{vi-pron}} ==={{section|adj}}=== {{vi-adj}} # Nhỏ dại và [[trong sáng]], chưa [[hiểu biết]] và cũng chưa bị [[tác động]] bởi sự đời. #:{{ux|vi|Con trẻ '''ngây thơ'''.}} #Không [[hiểu biết]] hoặc rất ít hiểu biết về đời, do còn [[non trẻ]], ít [[kinh nghiệm]]. #:{{ux|vi|Tin một cách '''ngây thơ'''.}} ==={{section|ana}}=== * {{l|vi|thơ ngây}} jd7b3mljbqxps56c7yqfwm68u5yh2ft paella 0 36400 2351215 2351079 2026-05-08T01:02:17Z Hiyuune 50834 2351215 wikitext text/x-wiki {{also|Paella|paëlla|paellą}} =={{langname|en}}== {{wp}} [[image:01 Paella Valenciana original.jpg|thumb|A Valencian paella]] ==={{section|etym}}=== Được vay mượn từ {{bor|en|ca|paella}}, từ {{der|en|fro|paelle}}, từ {{der|en|la|patella}}.<ref>{{R:OED Online|code=135972}}</ref><ref>{{R:OED Online|code=136047|entry=pail, n.1}}</ref> {{doublet|en|patella}} và có khả năng từ {{mention|en|pail}}. ==={{section|pron}}=== * {{IPA4|en|/paɪˈ(j)ɛl(j)ə/|/pɑːˈɛ.(l)(j)ə/|a=UK}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-paella.wav|a=Southern England}} * {{IPA4|en|/pɑːˈeɪ.(j)ə/|/paɪˈ(j)eɪ.(j)ə/|a=US}} ** {{audio|en|En-us-paella.ogg|a=US}} * {{rhymes|en|ɛlə|s=3}} * {{rhymes|en|eɪə|s=3}} * {{hyph|en|pa|e|lla}} ==={{section|n}}=== {{en-noun|~}} # {{senseid|vi|Q212121}} [[cơm|Cơm]] [[thập cẩm]] từ [[Valencia]], [[Tây Ban Nha]]. ===={{section|hypo}}==== * {{l|en|paella valenciana}} / {{l|en|paella Valenciana}} / {{l|en|paella Valencia}} / {{l|en|Valencian paella}} * {{l|en|paella de marisco}} / {{l|en|seafood paella}} ** {{l|en|paella marinera}} / {{l|en|paella marinara}} ** {{l|en|arroz a la marinera}} ===={{section|drv}}==== {{col|en|paellalike|paellera|paella pan}} ==={{section|ref}}=== <references /> ==={{section|ref}}=== * {{anagrams|en|a=aaellp|apella|paleal|pallae}} {{C|en|Thực phẩm}} =={{langname|ast}}== ==={{section|etym}}=== {{bor+|ast|es|paella}}, từ tiếng Catalan {{l|ca|paella}}, từ tiếng Latinh {{l|la|patella}}. {{dbt|ast|payella|padiella}}. ==={{section|n}}=== {{ast-noun|f|paelles}} # {{tcl|ast|paella|id=Q212121}} {{C|ast|Thực phẩm}} =={{langname|pl}}== {{wp|pl:}} [[File:Paella Marinara.JPG|thumb|paella]] ==={{section|etym}}=== {{dercat|pl|ca|fro|la}} {{ubor|pl|es|paella}}. ==={{section|pron}}=== {{pl-pr|paeja|a=LL-Q809 (pol)-Olaf-paella.wav|h=pa.e.lla}} ==={{section|n}}=== {{pl-noun|f}} # {{tcl|pl|paella|id=Q212121}} ===={{section|decl}}==== {{pl-decl-noun-f|genp=paelli/paell}} ==={{section|further}}=== * {{R:pl:WSJP}} * {{R:pl:PWN}} * {{R:pl:PWN Encyclopedia}} {{C|pl|Thực phẩm}} =={{langname|ca}}== ==={{section|etym}}=== Từ {{der|ca|fro|paelle}}, từ{{der|ca|la|patella}}. So sánh với {{cog|oc|paela}}. ==={{section|pron}}=== * {{ca-IPA|é}} * {{audio|ca|LL-Q7026 (cat)-Unjoanqualsevol-paella.wav|a=Catalunya}} ==={{section|n}}=== {{ca-noun|f}} # [[nồi|Nồi]] [[chiên]]. # {{tcl|ca|paella|id=Q212121}} ===={{section|desc}}==== * {{desctree|es|paella|bor=1}} ==={{section|further}}=== * {{R:ca:IEC2}} * {{R:ca:GDLC}} * {{R:ca:DNV}} * {{R:ca:DCVB}} {{C|ca|Thực phẩm}} =={{langname|gl}}== ==={{section|alt}}=== * {{alt|gl|paelha||reinteg}} ==={{section|etym}}=== Từ {{der|gl|ca|paella}}. ==={{section|pron}}=== {{rfp|gl}} ==={{section|n}}=== {{gl-noun|f}} # {{tcl|gl|paella|id=Q212121}} ==={{section|further}}=== * {{R:gl:DRAG}} {{C|gl|Thực phẩm}} =={{langname|fi}}== ==={{section|etym}}=== Được vay mượn từ {{bor|fi|es|paella}}, từ {{der|fi|ca|paella}}. ==={{section|pron}}=== {{fi-p}} ==={{section|n}}=== {{fi-noun}} # {{tcl|fi|paella|id=Q212121}} ===={{section|decl}}==== {{fi-decl-katiska|paell|a}} ==={{section|further}}=== * {{R:fi:KTSK|accessdate=2023-07-03}} ==={{section|ana}}=== * {{anagrams|fi|a=aaellp|apella|pallea}} {{C|fi|Thực phẩm}} =={{langname|fr}}== ==={{section|alt}}=== * {{alt|fr|paélia||post-1990}} * {{alt|fr|paëlla}} ==={{section|etym}}=== {{bor+|fr|ca|paella}} hoặc {{bor|fr|es|paella}}, từ {{der|fr|la|patella}}. {{doublet|fr|poêle}}. ==={{section|pron}}=== * {{fr-IPA|paéilla|paélia|paélla}} * {{audio|fr|LL-Q150 (fra)-DSwissK-paella.wav|a=Valais}} ==={{section|n}}=== {{fr-noun|f}} # {{lb|fr|countable and uncountable}} {{tcl|fr|paella|id=Q212121}} ==={{section|further}}=== * {{R:fr:TLFi}} {{C|fr|Thực phẩm}} =={{langname|es}}== ==={{section|etym}}=== {{bor+|es|ca|paella}}, từ {{der|es|la|patella}}. {{dbt|es|padilla|paila|puela}}. ==={{section|pron}}=== {{es-pr|+<audio:LL-Q1321 (spa)-Marreromarco-paella.wav<a:Venezuela>>}} ==={{section|n}}=== {{es-noun|f}} # {{tcl|es|paella|id=Q212121}} ===={{section|hypo}}==== * {{l|es|paella valenciana}} * {{l|es|paella de marisco}} ** {{l|es|paella marinera}} ** {{l|es|arroz a la marinera}} ===={{section|desc}}==== * {{desc|tl|paelya|bor=1}} ===={{section|see}}==== * {{l|es|arroz con cosas}} ==={{section|further}}=== * {{R:es:DRAE}} {{C|es|Thực phẩm}} dubz92ac742fifmd7lcvt1ldss79iab mars 0 39049 2351178 2306652 2026-05-07T16:08:25Z Hiyuune 50834 /* Tiếng Catalan */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]) 2351178 wikitext text/x-wiki {{also|Mars|MARS|mârs|marš|Марс|марс}} {{minitoc}} =={{langname|sq}}== ==={{section|etym}}=== {{bor+|sq|VL.|-}}, từ {{der|sq|la|martius|t=tháng Ba}}. ==={{section|n}}=== {{sq-noun|m||marsi}} # [[tháng Ba|Tháng Ba]] #: {{syn|sq|lagaterë|q1=cổ xưa}} ===={{section|decl}}==== {{sq-noun-m-unc}} =={{langname|en}}== ==={{section|pron}}=== * {{IPA4|en|/ˈmɑɹz/|a=GA}} * {{IPA4|en|/ˈmɑːz/|a=RP}} * {{rhymes|en|ɑː(ɹ)z|s=1}} * {{audio|en|en-us-mars.ogg|a=US}} ==={{section|v}}=== {{head|en|Biến thể hình thái động từ}} # {{infl of|en|mar||s-verb-form}} ==={{section|n}}=== {{head|en|Biến thể hình thái danh từ}} # {{plural of|en|mar}} ==={{section|ana}}=== * {{anagrams|en|a=amrs|M.R.A.S.|S/MAR|MRAs|SARM|MRSA|mas'r|ASMR|MSAR|Rams|RAMs|Masr|AMRs|ASRM|rasm|arms|ARMs|SRAM|rams}} =={{langname|az}}== ==={{section|etym}}=== Từ {{bor|az|fa|مارس|tr=mârs}}. ==={{section|pron}}=== * {{audio|az|LL-Q9292 (aze)-Azerbaijani audiorecordings-mars.wav}} ==={{section|n}}=== {{az-noun}} # {{lb|az|backgammon}} [[thắng|Thắng]] hai [[ván]] liên tiếp. ===={{section|decl}}==== {{az-decl-noun|a|c}} =={{langname|non}}== ==={{section|n}}=== {{head|non|Biến thể hình thái danh từ}} # {{inflection of|non|marr||gen|s}} =={{langname|ca}}== ==={{section|n}}=== {{head|ca|Biến thể hình thái danh từ}} # {{plural of|ca|mar}} 539a31r739z8mzowwp2wx5dsn4vi4g5 2351179 2351178 2026-05-07T16:09:16Z Hiyuune 50834 /* Tiếng Catalan */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]) 2351179 wikitext text/x-wiki {{also|Mars|MARS|mârs|marš|Марс|марс}} {{minitoc}} =={{langname|sq}}== ==={{section|etym}}=== {{bor+|sq|VL.|-}}, từ {{der|sq|la|martius|t=tháng Ba}}. ==={{section|n}}=== {{sq-noun|m||marsi}} # [[tháng Ba|Tháng Ba]] #: {{syn|sq|lagaterë|q1=cổ xưa}} ===={{section|decl}}==== {{sq-noun-m-unc}} =={{langname|en}}== ==={{section|pron}}=== * {{IPA4|en|/ˈmɑɹz/|a=GA}} * {{IPA4|en|/ˈmɑːz/|a=RP}} * {{rhymes|en|ɑː(ɹ)z|s=1}} * {{audio|en|en-us-mars.ogg|a=US}} ==={{section|v}}=== {{head|en|Biến thể hình thái động từ}} # {{infl of|en|mar||s-verb-form}} ==={{section|n}}=== {{head|en|Biến thể hình thái danh từ}} # {{plural of|en|mar}} ==={{section|ana}}=== * {{anagrams|en|a=amrs|M.R.A.S.|S/MAR|MRAs|SARM|MRSA|mas'r|ASMR|MSAR|Rams|RAMs|Masr|AMRs|ASRM|rasm|arms|ARMs|SRAM|rams}} =={{langname|az}}== ==={{section|etym}}=== Từ {{bor|az|fa|مارس|tr=mârs}}. ==={{section|pron}}=== * {{audio|az|LL-Q9292 (aze)-Azerbaijani audiorecordings-mars.wav}} ==={{section|n}}=== {{az-noun}} # {{lb|az|backgammon}} [[thắng|Thắng]] hai [[ván]] liên tiếp. ===={{section|decl}}==== {{az-decl-noun|a|c}} =={{langname|non}}== ==={{section|n}}=== {{head|non|Biến thể hình thái danh từ}} # {{inflection of|non|marr||gen|s}} =={{langname|ca}}== ==={{section|n}}=== {{head|ca|Biến thể hình thái danh từ}} # {{plural of|ca|mar}} =={{langname|tl}}== ==={{section|pron}}=== {{tl-pr}} ==={{section|n}}=== {{tl-noun|b=+}} {{tlb|tl|slang}} # {{alt form of|tl|mare}} ==={{section|see}}=== * {{l|tl|bes}} * {{l|tl|pards}} 7fxs8vaxg7zqko3xk805nb0m17rod9h 2351180 2351179 2026-05-07T16:10:25Z Hiyuune 50834 /* Tiếng Tagalog */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]) 2351180 wikitext text/x-wiki {{also|Mars|MARS|mârs|marš|Марс|марс}} {{minitoc}} =={{langname|sq}}== ==={{section|etym}}=== {{bor+|sq|VL.|-}}, từ {{der|sq|la|martius|t=tháng Ba}}. ==={{section|n}}=== {{sq-noun|m||marsi}} # [[tháng Ba|Tháng Ba]] #: {{syn|sq|lagaterë|q1=cổ xưa}} ===={{section|decl}}==== {{sq-noun-m-unc}} =={{langname|en}}== ==={{section|pron}}=== * {{IPA4|en|/ˈmɑɹz/|a=GA}} * {{IPA4|en|/ˈmɑːz/|a=RP}} * {{rhymes|en|ɑː(ɹ)z|s=1}} * {{audio|en|en-us-mars.ogg|a=US}} ==={{section|v}}=== {{head|en|Biến thể hình thái động từ}} # {{infl of|en|mar||s-verb-form}} ==={{section|n}}=== {{head|en|Biến thể hình thái danh từ}} # {{plural of|en|mar}} ==={{section|ana}}=== * {{anagrams|en|a=amrs|M.R.A.S.|S/MAR|MRAs|SARM|MRSA|mas'r|ASMR|MSAR|Rams|RAMs|Masr|AMRs|ASRM|rasm|arms|ARMs|SRAM|rams}} =={{langname|az}}== ==={{section|etym}}=== Từ {{bor|az|fa|مارس|tr=mârs}}. ==={{section|pron}}=== * {{audio|az|LL-Q9292 (aze)-Azerbaijani audiorecordings-mars.wav}} ==={{section|n}}=== {{az-noun}} # {{lb|az|backgammon}} [[thắng|Thắng]] hai [[ván]] liên tiếp. ===={{section|decl}}==== {{az-decl-noun|a|c}} =={{langname|non}}== ==={{section|n}}=== {{head|non|Biến thể hình thái danh từ}} # {{inflection of|non|marr||gen|s}} =={{langname|ca}}== ==={{section|n}}=== {{head|ca|Biến thể hình thái danh từ}} # {{plural of|ca|mar}} =={{langname|tl}}== ==={{section|pron}}=== {{tl-pr}} ==={{section|n}}=== {{tl-noun|b=+}} {{tlb|tl|slang}} # {{alt form of|tl|mare}} ==={{section|see}}=== * {{l|tl|bes}} * {{l|tl|pards}} =={{langname|shi}}== ==={{section|alt}}=== * {{alt|shi|marsa|marṣ}} ==={{section|etym}}=== {{ety|shi|:bor|ary:مارس<tr:mārs><ety:der<la:Martius>>|tree=1|text=:la}} ==={{section|pr-noun}}=== {{shi-proper noun|m}} # [[tháng Ba|Tháng Ba]]. ==={{section|ref}}=== * {{R:shi:DBTF|III|page=1708}} ec3l5j8huurh4ny2aihlfznmucfrhzw commandite 0 41050 2351161 1814831 2026-05-07T15:19:33Z Hiyuune 50834 2351161 wikitext text/x-wiki {{also|commandité}} =={{langname|la}}== ==={{section|v}}=== {{head|la|Biến thể hình thái động từ}} # {{inflection of|la|commandō||impr|pres|actv|ở|2p}} =={{langname|fr}}== ==={{section|etym}}=== Từ {{der|fr|it|accomandita}}. ==={{section|pron}}=== * {{audio|fr|LL-Q150 (fra)-Lepticed7-commandite.wav|a=Toulouse}} ==={{section|n}}=== {{fr-noun|f}} # [[hội buôn|Hội buôn]] [[hùn vốn]]. # [[phần|Phần]] [[vốn]] [[hùn]]. # [[phường|Phường]] [[thợ in]] (bán sản phẩm cùng làm chung cho một chủ thợ in). ==={{section|v}}=== {{head|fr|Biến thể hình thái động từ}} # {{inflection of|fr|commanditer||ind//sub|pres|ở|1//3|s|;|impr|ở|2|s}} ==={{section|ref}}=== * {{R:FVDP|db=fv}} ==={{section|further}}=== * {{R:fr:TLFi}} mcx6la1sfkr7c8a4fmlll9076mqsyf4 verglas 0 49647 2351319 1943379 2026-05-08T07:12:38Z Hiyuune 50834 2351319 wikitext text/x-wiki =={{langname|fr}}== ==={{section|pron}}=== * {{fr-IPA}} * {{audio|fr|LL-Q150 (fra)-Pamputt-verglas.wav|a=Brétigny-sur-Orge}} ==={{section|noun}}=== {{fr-noun|m|-}} # [[váng|Váng]] [[băng]]. ==={{section|ref}}=== * {{R:FVDP|db=fv}} ==={{section|further}}=== * {{R:fr:TLFi}} 2zc2tq17ybjr8uc6njqpdpstd9eg7ae commanditer 0 53120 2351155 1814832 2026-05-07T15:10:17Z Hiyuune 50834 2351155 wikitext text/x-wiki =={{langname|fr}}== ==={{section|pron}}=== * {{audio|fr|LL-Q150 (fra)-Penegal-commanditer.wav|a=Vosges}} * {{audio|fr|LL-Q150 (fra)-LoquaxFR-commanditer.wav|a=Vosges}} * {{audio|fr|LL-Q150 (fra)-Jérémy-Günther-Heinz Jähnick-commanditer.wav|a=Somain}} ==={{section|v}}=== {{fr-verb}} # [[hùn vốn|Hùn vốn]] (cho một hội buôn mà không tham gia quản lý). ===={{section|forms}}==== {{fr-conj-auto}} ==={{section|ref}}=== * {{R:FVDP|db=fv}} ==={{section|further}}=== * {{R:fr:TLFi}} 9ryi3nwswlmcri937ku9ezap5ghs9a6 tiếng Trung Quốc 0 95751 2351361 2196172 2026-05-08T10:41:25Z Kateru Zakuro 34522 2351361 wikitext text/x-wiki =={{langname|vi}}== [[Hình:Zhongwen.svg|thumb|tiếng Trung Quốc]] ==={{ĐM|etymology}}=== {{compound|vi|tiếng|Trung Quốc|tr1=[[㗂]]|tr2=[[中國]]}} ==={{ĐM|pronunciation}}=== {{vi-pron|tiếng|Trung|Quốc}} ==={{ĐM|proper noun}}=== {{vi-noun|head= [[tiếng]] [[Trung Quốc]]|㗂中國}} # [[ngôn ngữ|Ngôn ngữ]] tuy không [[phổ biến]] như [[tiếng Anh]] nhưng lại là ngôn ngữ có nhiều người trên [[thế giới]] [[sử dụng]] nhất (vì [[dân số]] [[Trung Quốc]] [[đông]] nhất [[thế giới]]). #[[Ngôn ngữ]] [[chính thức]] của [[Cộng hoà Nhân dân Trung Hoa]] và [[Đài Loan]] ==={{ĐM|syn}}=== *[[tiếng Hoa]] *[[tiếng Hán]] *[[tiếng Trung]] ==={{ĐM|related terms}}=== *[[tiếng Quảng Đông]] *[[tiếng Phổ thông]] *[[chữ Trung Quốc]], [[chữ Hán]], [[chữ Hoa]] *[[Giản thể]] *[[Phồn thể]] ==={{ĐM|see also}}=== * {{l|vi|tiếng Trung}} 2ueqwfuq2h0vprg21konwu39ic30dse 2351362 2351361 2026-05-08T10:41:42Z Kateru Zakuro 34522 2351362 wikitext text/x-wiki =={{langname|vi}}== [[Hình:Zhongwen.svg|thumb|tiếng Trung Quốc]] ==={{ĐM|etymology}}=== {{compound|vi|tiếng|Trung Quốc|tr1=[[㗂]]|tr2=[[中國]]}} ==={{ĐM|pronunciation}}=== {{vi-pron|tiếng|Trung|Quốc}} ==={{ĐM|proper noun}}=== {{vi-noun|head= [[tiếng]] [[Trung Quốc]]|㗂中國}} # [[ngôn ngữ|Ngôn ngữ]] tuy không [[phổ biến]] như [[tiếng Anh]] nhưng lại là ngôn ngữ có nhiều người trên [[thế giới]] [[sử dụng]] nhất (vì [[dân số]] [[Trung Quốc]] [[đông]] nhất [[thế giới]]). #[[Ngôn ngữ]] [[chính thức]] của [[Cộng hoà Nhân dân Trung Hoa]] và [[Đài Loan]] ===={{ĐM|syn}}==== *[[tiếng Hoa]] *[[tiếng Hán]] *[[tiếng Trung]] ===={{ĐM|related terms}}==== *[[tiếng Quảng Đông]] *[[tiếng Phổ thông]] *[[chữ Trung Quốc]], [[chữ Hán]], [[chữ Hoa]] *[[Giản thể]] *[[Phồn thể]] ==={{ĐM|see also}}=== * {{l|vi|tiếng Trung}} db7ebjwveubzk6wte4zr0xy4yd7sbpe 2351363 2351362 2026-05-08T10:42:29Z Kateru Zakuro 34522 2351363 wikitext text/x-wiki =={{langname|vi}}== {{wikipedia}} [[Hình:Zhongwen.svg|thumb|tiếng Trung Quốc]] ==={{ĐM|etymology}}=== {{compound|vi|tiếng|Trung Quốc|tr1=[[㗂]]|tr2=[[中國]]}} ==={{ĐM|pronunciation}}=== {{vi-pron|tiếng|Trung|Quốc}} ==={{ĐM|proper noun}}=== {{vi-noun|head= [[tiếng]] [[Trung Quốc]]|㗂中國}} # [[ngôn ngữ|Ngôn ngữ]] tuy không [[phổ biến]] như [[tiếng Anh]] nhưng lại là ngôn ngữ có nhiều người trên [[thế giới]] [[sử dụng]] nhất (vì [[dân số]] [[Trung Quốc]] [[đông]] nhất [[thế giới]]). #[[Ngôn ngữ]] [[chính thức]] của [[Cộng hoà Nhân dân Trung Hoa]] và [[Đài Loan]] ===={{ĐM|syn}}==== *[[tiếng Hoa]] *[[tiếng Hán]] *[[tiếng Trung]] ===={{ĐM|related terms}}==== *[[tiếng Quảng Đông]] *[[tiếng Phổ thông]] *[[chữ Trung Quốc]], [[chữ Hán]], [[chữ Hoa]] *[[Giản thể]] *[[Phồn thể]] ==={{ĐM|see also}}=== * {{l|vi|tiếng Trung}} nildjp510p7lh34csjs21g3yfzkgx3l APEC 0 171541 2351093 1787968 2026-05-07T14:15:57Z TheHighFighter2 42988 /* */ 2351093 wikitext text/x-wiki =={{langname|en}}== {{-info-|en:}} ==={{ĐM|etymology}}=== {{acronym|en|[[Asia]]-[[Pacific]] {{U|economic}} {{U|cooperation}}}}. ==={{ĐM|pr-noun}}=== {{en-prop}} # [[diễn đàn|Diễn đàn]] [[hợp tác|Hợp tác]] [[kinh tế|Kinh tế]] [[châu Á]]&nbsp;– [[Thái Bình Dương]]. ==={{ĐM|ref}}=== * {{R:FVDP|db=ev}} ==={{ĐM|anagram}}=== * {{anagrams|en|a=acep|CAPE|Cape|EAPC|EPAC|EPCA|PACE|PECA|Pace|cape|pace}} =={{langname|pt}}== ==={{ĐM|etymology}}=== {{bor+|pt|en|APEC}}. ==={{ĐM|pr-noun}}=== {{pt-proper noun|f}} # [[diễn đàn|Diễn đàn]] [[hợp tác|Hợp tác]] [[kinh tế|Kinh tế]] [[châu Á]]&nbsp;– [[Thái Bình Dương]]. #: {{syn|pt|Cooperação Econômica da Ásia e do Pacífico}} =={{langname|fi}}== ==={{ĐM|etymology}}=== {{bor+|fi|en|APEC}}. ==={{ĐM|pr-noun}}=== {{head|fi|Danh từ riêng}} # [[diễn đàn|Diễn đàn]] [[hợp tác|Hợp tác]] [[kinh tế|Kinh tế]] [[châu Á]]&nbsp;– [[Thái Bình Dương]]. ===={{ĐM|decl}}==== {{fi-decl-risti|i=0|APEC|||a|n=sg}} =={{langname|es}}== ==={{ĐM|etymology}}=== {{bor+|es|en|APEC}}. ==={{ĐM|pron}}=== {{es-pr}} ==={{ĐM|pr-noun}}=== {{es-prop|f}} # [[diễn đàn|Diễn đàn]] [[hợp tác|Hợp tác]] [[kinh tế|Kinh tế]] [[châu Á]]&nbsp;– [[Thái Bình Dương]]. 7zpjui7wpo5cagfstsfr40q53wp0r4j 阿拉伯人 0 214003 2351195 1988763 2026-05-07T18:24:35Z Kateru Zakuro 34522 /* */ 2351195 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms|type=31}} {{wp|zh:,yue:,wuu:,nan:A-la-pek-lâng}} ==={{ĐM|pron}}=== {{zh-pron |m=Ālābórén |c=aa3 laai1 baak3 jan4 |h=pfs=â-lâ-pak-ngìn |mn=tw:A-la-pek-lâng |cat=n }} ==={{ĐM|noun}}=== {{head|zh|noun}} # [[người|Người]] [[Ả Rập]] {{C|zh|Quốc tịch|Người}} fchqps3areaovdoy87ooss6fbp698f6 雇佣作品原则 0 215322 2351203 2298679 2026-05-07T22:20:50Z Kateru Zakuro 34522 2351203 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms}} ==={{ĐM|etym}}=== Từ [[tiếng Trung Quốc]] [["雇”]] + [["佣”]]+[["作”]]+[["品”]]+[["原”]]+[["则”]] ==={{ĐM|pronunciation}}=== {{zh-pron |m=gùyòngzuòpǐnyuánzé }} ==={{ĐM|pr-noun}}=== {{head|zh|Danh từ riêng}} # [[học thuyết|Học thuyết]] [[làm thuê]], học thuyết [[sản phẩm]] [[thuê]]. #:{{ux|zh|为了解决这一矛盾,它们在涉及雇员在受雇期间为完成本职工作或者雇主交给的工作而创作的“雇佣作品”时,创制了'''“视为作者原则”''',也称“雇佣作品原则”作为“创作人为作者原则”的例外|t=Để giải quyết các mâu thuẫn, chúng bao gồm chỉ sản phẩm do người lao động (đang trong quá trình được thuê) để hoàn thành niệm vụ hay công việc do chủ giao mà sáng tạo ra, khi đó người lao động được coi là tác giả, và cũng gọi là '''"học thuyết sản phẩm thuê"''' hay còn gọi là "nguyên tắc người sáng tạo là tác giả" }} pbsv1e5i02o4tckxbnlhd6ru8id8yje 2351207 2351203 2026-05-07T22:28:34Z Kateru Zakuro 34522 2351207 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms}} ==={{ĐM|etym}}=== Từ [[tiếng Trung Quốc]] [["雇”]] + [["佣”]]+[["作”]]+[["品”]]+[["原”]]+[["则”]] ==={{ĐM|pronunciation}}=== {{zh-pron |m=gùyòngzuòpǐnyuánzé }} ==={{ĐM|pr-noun}}=== {{head|zh|Danh từ riêng}} # [[học thuyết|Học thuyết]] [[làm thuê]], học thuyết [[sản phẩm]] [[thuê]] (Work for hire doctrine). #:{{ux|zh|为了解决这一矛盾,它们在涉及雇员在受雇期间为完成本职工作或者雇主交给的工作而创作的“雇佣作品”时,创制了'''“视为作者原则”''',也称“雇佣作品原则”作为“创作人为作者原则”的例外|t=Để giải quyết các mâu thuẫn, chúng bao gồm chỉ sản phẩm do người lao động (đang trong quá trình được thuê) để hoàn thành niệm vụ hay công việc do chủ giao mà sáng tạo ra, khi đó người lao động được coi là tác giả, và cũng gọi là '''"học thuyết sản phẩm thuê"''' hay còn gọi là "nguyên tắc người sáng tạo là tác giả" }} ==={{ĐM|syn}}=== * {{l|zh|雇佣作品}} mka7ywhw042agvl91rreiec0h954gk9 财务净现值率 0 215326 2351204 483438 2026-05-07T22:25:47Z Kateru Zakuro 34522 2351204 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms}} ==={{ĐM|etym}}=== Từ [[tiếng Trung Quốc]] [[财]] + [[务]] +[[净]] +[[现]] +[[值]] +[[率]], từ [[tiếng anh]] [[financial|Financial]] [[net|Net]] Present Value Rate - FNPVR ==={{ĐM|pronunciation}}=== {{zh-pron |m=cáiwùjìngxiànzhílǜ }} ==={{ĐM|pr-noun}}=== {{head|zh|Danh từ riêng}} # [[giá trị|Giá trị]] [[hiện tại]] [[ròng]] 6wq6zagrq6xvysfaxmadbol9v0vznc4 2351205 2351204 2026-05-07T22:26:41Z Kateru Zakuro 34522 2351205 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms}} ==={{ĐM|etym}}=== Từ [[tiếng Trung Quốc]] [[财]] + [[务]] +[[净]] +[[现]] +[[值]] +[[率]] ==={{ĐM|pronunciation}}=== {{zh-pron |m=cáiwùjìngxiànzhílǜ }} ==={{ĐM|pr-noun}}=== {{head|zh|Danh từ riêng}} # [[giá trị|Giá trị]] [[hiện tại]] [[ròng]] (Financial]] Net Present Value Rate) j85sp1rd39q9mjufzwx8w0rnp2c07uz 2351206 2351205 2026-05-07T22:26:49Z Kateru Zakuro 34522 2351206 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms}} ==={{ĐM|etym}}=== Từ [[tiếng Trung Quốc]] [[财]] + [[务]] +[[净]] +[[现]] +[[值]] +[[率]] ==={{ĐM|pronunciation}}=== {{zh-pron |m=cáiwùjìngxiànzhílǜ }} ==={{ĐM|pr-noun}}=== {{head|zh|Danh từ riêng}} # [[giá trị|Giá trị]] [[hiện tại]] [[ròng]] (Financial Net Present Value Rate) 0s9y3iqo49t4s31fv1ateyi4ubwbb7y 博客 0 215857 2351281 1986601 2026-05-08T04:41:04Z Kateru Zakuro 34522 2351281 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms|abundant; broad; rich; to get; to win|guest; visitor|lit=to attract guests}} ==={{ĐM|etymology}}=== {{coinage|zh|in=2002|nat=người Trung Quốc|occ=biên tập viên về công nghệ|{{w|Fang Xingdong}}|w=-|nobycat=y}}. ==={{ĐM|pronunciation}}=== {{zh-pron |m=bókè |c=bok3 haak3 |md=bŏk-káh |mn-t=pag4 kêh4 |cat=n }} ==={{ĐM|noun}}=== {{head|zh|noun}} {{tlb|zh|Trung Quốc Đại Lục}} # [[blog]] # [[blogger]] # [[nền tảng]] [[mạng xã hội]] {{gloss|nói chung}} ===={{ĐM|syn}}==== * {{sense|blog}} ** {{zh-l|網誌}} ** {{qualifier|chủ yếu ở Đài Loan}} {{zh-l|部落格}} ** {{zh-l|博落}} * {{sense|blogger}} ** {{zh-l|網誌作者}} ** {{qualifier|chủ yếu ở Đài Loan}} {{zh-l|部落客}} ===={{ĐM|derived terms}}==== {{col3|zh|微博客|博文|博主}} ===={{ĐM|see also}}==== * {{zh-l|播客}} {{C|zh|Internet|Blogging}} 7fr4jlh55nb905rj7q69bc9hepojkf3 沉船 0 215860 2351202 1987480 2026-05-07T22:11:33Z Kateru Zakuro 34522 2351202 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms}} ==={{ĐM|pronunciation}}=== {{zh-pron |m=chénchuán |c=cam4 syun4 |h=pfs=chhṳ̀m-sòn |mn=tw:tîm-chûn/tw:tiâm-chûn |cat=n,v }} ==={{ĐM|noun}}=== {{head|zh|Danh từ}} # [[con tàu|Con tàu]] bị [[đắm]], [[tàu]] đắm. {{zh-mw|m:艘|m:條|m,c:隻}} ==={{ĐM|verb}}=== {{zh-verb|type=vo}} # {{lb|zh|của [[tàu]] hoặc [[thuyền]]}} [[đắm]] g82j9qbwgqjonkirnojdy9cmckiek03 网志 0 216064 2351210 1988045 2026-05-07T22:36:34Z Kateru Zakuro 34522 2351210 wikitext text/x-wiki {{also|網誌}} =={{langname|zh}}== {{zh-see|網誌}} q8pkc50ct7iu0ylt232wkgqa42ds673 网络日志 0 216065 2351208 631412 2026-05-07T22:35:45Z Kateru Zakuro 34522 2351208 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms|s=網絡日誌}} ==={{ĐM|pronunciation}}=== {{zh-pron |m=wǎng luò rì zhì }} ==={{ĐM|noun}}=== {{head|zh|Danh từ}} # [[nhật ký|Nhật ký]] [[mạng]], [[blog]]. ==={{ĐM|syn}}=== * [[网志]], * [[部落格]] * [[博客]] n9y0u9q19h71v6327ucyi4i16ijgfgl 2351209 2351208 2026-05-07T22:36:02Z Kateru Zakuro 34522 2351209 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms|s=網絡日誌}} ==={{ĐM|pronunciation}}=== {{zh-pron |m=wǎng luò rì zhì }} ==={{ĐM|noun}}=== {{head|zh|Danh từ}} # [[nhật ký|Nhật ký]] [[mạng]], [[blog]]. ==={{ĐM|syn}}=== * [[网志]] * [[部落格]] * [[博客]] ntvrx55tncucnb0tlb3k4i4kpv5xmvo 2351214 2351209 2026-05-07T22:44:20Z Kateru Zakuro 34522 2351214 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms|s=網絡日誌}} ==={{ĐM|pronunciation}}=== {{zh-pron |m=wǎngluòrìzhì }} ==={{ĐM|noun}}=== {{head|zh|Danh từ}} # [[nhật ký|Nhật ký]] [[mạng]], [[blog]]. ==={{ĐM|syn}}=== * [[网志]] * [[部落格]] * [[博客]] p4trm00d5ceqekiqozu2r2utrwwc7q1 2351226 2351214 2026-05-08T01:36:44Z Hiyuune 50834 /* Cách phát âm */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]) 2351226 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms|s=網絡日誌}} ==={{ĐM|pronunciation}}=== {{zh-pron |m=wǎngluòrìzhì |cat=n }} ==={{ĐM|noun}}=== {{head|zh|Danh từ}} # [[nhật ký|Nhật ký]] [[mạng]], [[blog]]. ==={{ĐM|syn}}=== * [[网志]] * [[部落格]] * [[博客]] 3dabrcn5v51swsvlpgylf70tu6reqnz 数独 0 216267 2351196 1987252 2026-05-07T22:00:57Z Kateru Zakuro 34522 2351196 wikitext text/x-wiki {{also|數獨}} =={{langname|zh}}== {{zh-see|數獨}} =={{langname|ja}}== {{wp|ja:}} {{ja-kanjitab|すう|どく|yomi=o}} ==={{ĐM|etymology}}=== {{etymon|ja|id=Q44914|:af|数字<tr:sūji><alt:{{ruby|[数](すう)[字](じ)}}>|は<tr:wa>|独身<tr:dokushin><alt:{{ruby|[独](どく)[身](しん)}}>|に<tr:ni>|限る<tr:kagiru><alt:{{ruby|[限](かぎ)る}}>|tree=1}} Shortening of {{ja-r|[[数%字]][[は]][[独%身]][[に]][[限る]]|すう%じ は どく%しん に かぎる|numbers are restricted to being alone}}. ==={{ĐM|pronunciation}}=== {{ja-pron|すうどく|a=ja-Sudoku.oga|acc=h}} ==={{ĐM|noun}}=== {{ja-noun|すうどく}} # {{sid|ja|Q44914}} {{lb|ja|games|sort=すうどく}} Trò chơi [[sudoku]] ===={{ĐM|usage notes}}=== * {{mention|ja||数独}} là nhãn hiệu thuộc sở hữu của Nikoli Co., Ltd., nhà phát minh ra trò chơi xếp hình "sudoku"; các tên gọi khác cũng có thể được bắt gặp, ví dụ như {{ja-r|ナンバープレース|lit=number place}}. ===={{ĐM|synonyms}}==== * {{ja-r|ナンバープレース}}, {{ja-r|ナンプレ}} ===={{ĐM|descendants}}==== * {{desc|en|sudoku}} * {{desc|da|sudoku|g=c}} * {{desc|ru|судо́ку|g=n}} ===={{ĐM|see also}}==== * {{ja-r|カックロ}} {{cln|ja|genericized trademarks}} 5dwqbu03q91r8yyncsajlgro64vxeym 2351197 2351196 2026-05-07T22:01:13Z Kateru Zakuro 34522 2351197 wikitext text/x-wiki {{also|數獨}} =={{langname|zh}}== {{zh-see|數獨}} =={{langname|ja}}== {{wp|ja:}} {{ja-kanjitab|すう|どく|yomi=o}} ==={{ĐM|etymology}}=== {{etymon|ja|id=Q44914|:af|数字<tr:sūji><alt:{{ruby|[数](すう)[字](じ)}}>|は<tr:wa>|独身<tr:dokushin><alt:{{ruby|[独](どく)[身](しん)}}>|に<tr:ni>|限る<tr:kagiru><alt:{{ruby|[限](かぎ)る}}>|tree=1}} Viết ngắn của {{ja-r|[[数%字]][[は]][[独%身]][[に]][[限る]]|すう%じ は どく%しん に かぎる|numbers are restricted to being alone}}. ==={{ĐM|pronunciation}}=== {{ja-pron|すうどく|a=ja-Sudoku.oga|acc=h}} ==={{ĐM|noun}}=== {{ja-noun|すうどく}} # {{sid|ja|Q44914}} {{lb|ja|games|sort=すうどく}} Trò chơi [[sudoku]] ===={{ĐM|usage notes}}=== * {{mention|ja||数独}} là nhãn hiệu thuộc sở hữu của Nikoli Co., Ltd., nhà phát minh ra trò chơi xếp hình "sudoku"; các tên gọi khác cũng có thể được bắt gặp, ví dụ như {{ja-r|ナンバープレース|lit=number place}}. ===={{ĐM|synonyms}}==== * {{ja-r|ナンバープレース}}, {{ja-r|ナンプレ}} ===={{ĐM|descendants}}==== * {{desc|en|sudoku}} * {{desc|da|sudoku|g=c}} * {{desc|ru|судо́ку|g=n}} ===={{ĐM|see also}}==== * {{ja-r|カックロ}} {{cln|ja|genericized trademarks}} jncnor5kmd7vw81gpunign7kyebx88c 2351200 2351197 2026-05-07T22:08:04Z Kateru Zakuro 34522 2351200 wikitext text/x-wiki {{also|數獨}} =={{langname|zh}}== {{zh-see|數獨}} =={{langname|ja}}== {{wp|ja:}} {{ja-kanjitab|すう|どく|yomi=o}} ==={{ĐM|etymology}}=== {{etymon|ja|id=Q44914|:af|数字<tr:sūji><alt:{{ruby|[数](すう)[字](じ)}}>|は<tr:wa>|独身<tr:dokushin><alt:{{ruby|[独](どく)[身](しん)}}>|に<tr:ni>|限る<tr:kagiru><alt:{{ruby|[限](かぎ)る}}>|tree=1}} Viết ngắn của {{ja-r|[[数%字]][[は]][[独%身]][[に]][[限る]]|すう%じ は どく%しん に かぎる|numbers are restricted to being alone}}. ==={{ĐM|pronunciation}}=== {{ja-pron|すうどく|a=ja-Sudoku.oga|acc=h}} ==={{ĐM|noun}}=== {{ja-noun|すうどく}} # {{sid|ja|Q44914}} {{lb|ja|games|sort=すうどく}} Trò chơi [[sudoku]] ===={{ĐM|usage notes}}==== * {{mention|ja||数独}} là nhãn hiệu thuộc sở hữu của Nikoli Co., Ltd., nhà phát minh ra trò chơi xếp hình "sudoku"; các tên gọi khác cũng có thể được bắt gặp, ví dụ như {{ja-r|ナンバープレース|lit=number place}}. ===={{ĐM|synonyms}}==== * {{ja-r|ナンバープレース}}, {{ja-r|ナンプレ}} ===={{ĐM|descendants}}==== * {{desc|en|sudoku}} * {{desc|da|sudoku|g=c}} * {{desc|ru|судо́ку|g=n}} ===={{ĐM|see also}}==== * {{ja-r|カックロ}} {{cln|ja|genericized trademarks}} ejif3hkk8ji4ad9l7wvb2ltb0kpnkrq 2351201 2351200 2026-05-07T22:08:22Z Kateru Zakuro 34522 2351201 wikitext text/x-wiki {{also|數獨}} =={{langname|zh}}== {{zh-see|數獨}} =={{langname|ja}}== {{wp|ja:}} {{ja-kanjitab|すう|どく|yomi=o}} ==={{ĐM|etymology}}=== {{etymon|ja|id=Q44914|:af|数字<tr:sūji><alt:{{ruby|[数](すう)[字](じ)}}>|は<tr:wa>|独身<tr:dokushin><alt:{{ruby|[独](どく)[身](しん)}}>|に<tr:ni>|限る<tr:kagiru><alt:{{ruby|[限](かぎ)る}}>|tree=1}} Viết ngắn của {{ja-r|[[数%字]][[は]][[独%身]][[に]][[限る]]|すう%じ は どく%しん に かぎる|numbers are restricted to being alone}}. ==={{ĐM|pronunciation}}=== {{ja-pron|すうどく|a=ja-Sudoku.oga|acc=h}} ==={{ĐM|noun}}=== {{ja-noun|すうどく}} # {{sid|ja|Q44914}} {{lb|ja|games|sort=すうどく}} [[sudoku]] ===={{ĐM|usage notes}}==== * {{mention|ja||数独}} là nhãn hiệu thuộc sở hữu của Nikoli Co., Ltd., nhà phát minh ra trò chơi xếp hình "sudoku"; các tên gọi khác cũng có thể được bắt gặp, ví dụ như {{ja-r|ナンバープレース|lit=number place}}. ===={{ĐM|synonyms}}==== * {{ja-r|ナンバープレース}}, {{ja-r|ナンプレ}} ===={{ĐM|descendants}}==== * {{desc|en|sudoku}} * {{desc|da|sudoku|g=c}} * {{desc|ru|судо́ку|g=n}} ===={{ĐM|see also}}==== * {{ja-r|カックロ}} {{cln|ja|genericized trademarks}} c5519eml5gni4csbssiaz7uwcoyc1ay climaxes 0 231864 2351085 1813391 2026-05-07T12:53:18Z Hiyuune 50834 /* */ 2351085 wikitext text/x-wiki =={{langname|en}}== ==={{section|n}}=== {{head|en|Biến thể hình thái danh từ}} # {{plural of|en|climax}} ==={{section|v}}=== {{head|en|Biến thể hình thái động từ}} # {{infl of|en|climax||s-verb-form}} ==={{section|ana}}=== * {{anagrams|en|a=aceilmsx|exclaims}} a4r5kf61vztn2tg2lhiuchp6ilyeuuj Wiktionary:Bot/Xin phép 4 235523 2351181 2258211 2026-05-07T16:30:27Z Kateru Zakuro 34522 2351181 wikitext text/x-wiki <!-- BẮT ĐẦU TRANG DƯỚI ĐÂY. XIN ĐỪNG SỬA ĐỔI ĐOẠN -->{{/Đầu}}<!-- NÀY! --> == [[User:BlueShurikenNinjaBot|BlueShurikenNinjaBot]] == * '''Người vận hành:''' Kateru Zakuro <!--link to botmaster user page, may be on another wiki--> * '''Tên Bot:''' {{u|BlueShurikenNinjaBot}} − [[Thảo luận Thành viên:BlueShurikenNinjaBot|thảo luận]] * '''Ngôn ngữ:''' * '''Mục đích:''' Thực hiện các tác vụ thay thế bản mẫu lỗi thời hàng loạt được liệt kê trong trang thành viên bot. * '''Chi tiết kỹ thuật:''' {{#if:Chạy bán tự động, tùy vào thời gian hoạt động của chủ bot, sử dụng các công cụ bán tự động như JWB hay AutoWikiBrowser. Đã thực hiện hơn 1000 sửa đổi thử nghiệm, xem tại [[Đặc biệt:Đóng_góp/BlueShurikenNinjaBot]].|Chạy bán tự động, tùy vào thời gian hoạt động của chủ bot, sử dụng các công cụ bán tự động như JWB hay AutoWikiBrowser. Đã thực hiện hơn 1000 sửa đổi thử nghiệm, xem tại [[Đặc biệt:Đóng_góp/BlueShurikenNinjaBot]].}} --[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 16:30, ngày 7 tháng 5 năm 2026 (UTC) a65w90wkaagys02npc8n8drqaz52oyu Triều Tiên 0 236853 2351302 2163833 2026-05-08T06:30:18Z TheHighFighter2 42988 ± 3 thể loại dùng [[w:WP:HOTCAT|HotCat]] 2351302 wikitext text/x-wiki {{-vie-}} {{-info-}} [[Tập tin:Locator map of Korea.svg|nhỏ|phải|Vị trí của bán đảo Triều Tiên]] {{-pron-}} {{vie-pron|triều|tiên}} {{-etym-}} *Triều Tiên [[Choson'gul|조선]], ''Chosǒn'' (đây là cách sử dụng tại [[Cộng hòa Dân chủ Nhân dân Triều Tiên]]). Từ ''Triều Tiên'' có nghĩa là "(Xứ) Buổi sáng tươi đẹp". {{-proper-}} '''Triều Tiên''' # Tên gọi một nền [[văn hóa]] và [[khu vực]] [[địa lý]] nằm tại bán đảo Triều Tiên tại [[Đông Á]]. # [[bán đảo|Bán đảo]] nằm nhô ra [[biển]] ở Đông Á, có đường [[biên giới]] đất liền với [[Trung Quốc]]. # Tên một [[quốc gia]] có [[chủ quyền]] đã tồn tại ở khu vực bán đảo Triều Tiên trong khoảng 5 thế kỷ (từ tháng 7 năm 1392 đến tháng 8 năm 1910). # Quốc gia Đông Á trên phần [[phía bắc]] bán đảo Triều Tiên. # Tên một [[dân tộc]] Đông Á, phần lớn sống ở bán đảo Triều Tiên và nói [[tiếng Triều Tiên]]. # Tên [[ngôn ngữ]] [[phổ dụng]] nhất tại Triều Tiên, và là ngôn ngữ [[chính thức]] của hai nước [[Bắc Triều Tiên]] và [[Hàn Quốc]]. {{-syn-}} ''Tùy theo ngữ cảnh:'' * [[Bắc Triều Tiên]] * [[Hàn Quốc]] * [[Xứ Hàn]] * [[Cộng hòa Dân chủ Nhân dân Triều Tiên]] * [[CHDCND Triều Tiên]] * [[CHDCNDTT]] {{-trans-}} {{top}} * Armenian: [[Կորեա]] (Korea) * {{bs}}: Koreja * [[Tiếng Trung Quốc]]: [[朝鲜]] (''Cháoxiān''), [[韓國]],[[韩国]] (''Hánguó'') * {{hr}}: {{t-|hr|Koreja|f}} * {{nl}}: Korea * {{fi}}: Korea * {{fr}}: Corée * {{de}}: Korea * [[Hmong]]: [[Kolee]] * {{id}}: Korea * [[Tiếng Quốc tế]]: [[Corea]] * {{it}}: Corea * [[Tiếng Triều Tiên]]: [[조선]] ([[朝鮮]], ''Joseon''); [[한국]] ([[韓國]], ''Hanguk'') {{mid}} * {{ms}}: Korea * Maltese: il-Korea * {{mon}}: [[Солонгос]] (Solongos) * [[Tiếng Ba Lan]]: Korea * {{pt}}: Coreia *: Brasilian Portuguese: [[Coréia]] {{f}} * {{ro}}: Coreea * {{ru}}: Корея * Cyrillic: [[Кореја#Serbian|Кореја]] * Roman: [[Koreja#Serbian|Koreja]] {{f}} * {{es}}: Corea * {{sv}}: Korea * {{tr}}: Kore {{bottom}} [[Category:Danh từ riêng tiếng Việt]] [[Thể loại:vi:Quốc gia]] [[Thể loại:vi:Quốc gia của châu Á]] [[Thể loại:vi:Triều Tiên]] sw23f2am7ch6jbq2xpkfaua59xxpjn0 Trung Quốc 0 237952 2351303 2060640 2026-05-08T06:31:21Z TheHighFighter2 42988 ± 3 thể loại dùng [[w:WP:HOTCAT|HotCat]] 2351303 wikitext text/x-wiki {{-vie-}} {{-info-}} [[Hình:China char.svg|nhỏ|phải|Trung Quốc]] {{-pron-}} {{vie-pron|Trung|Quốc}} {{-etym-}} Phiên âm Hán Việt của [[中國]] (phồn thể) hay [[中国]] (giản thể) {{-pr-noun-}} '''Trung Quốc''' # Tên một [[quốc gia]] lớn ở khu vực [[Đông Á]]. {{-syn-}} * [[Trung Hoa]] {{-trans-}} {{đầu}} * {{eng}}: [[China]] {{giữa}} * {{th}}: [[ประเทศจีน]] {{giữa}} * {{zho}}: [[中國]] {{cuối}} {{mẫu}} [[Thể loại:Danh từ tiếng Việt]] [[Thể loại:vi:Quốc gia]] [[Thể loại:vi:Quốc gia của châu Á]] [[Thể loại:vi:Trung Quốc]] nrb9jzdeo0as6eza28ndnl43i0sgsfx Thành viên:Ioe2015 2 249147 2351282 2339313 2026-05-08T05:05:41Z Ioe2015 28032 /* Tiếp theo */ 2351282 wikitext text/x-wiki = Giới thiệu = {{User vie}} :{{Thành viên:Ioe2015/Bản mẫu/Bản mẫu:Năm sinh của thành viên|2004}} <br><br> = Các trang đã tạo= *[https://tools.wmflabs.org/xtools/pages/?user=Ioe2015&project=vi.wiktionary.org&namespace=all&redirects=none Xem các trang đã tạo tại đây] * [[Thành viên:Ioe2015/Bản mẫu|Các bản mẫu của thành viên này]] = Công việc = == Đã xong == * [[phá đảo]] * [[bảng chọn]] * [[lót tích]] * [[lượng tử hoá]], [[lượng tử hóa]] * [[tổng công trình sư]] * [[chủ thớt]] * [[tương tranh]] * [[out trình]] ([[:en:out trình|en]]) * [[đối kháng]] * [[nguồn lực]] * [[xác báo]] * [[khắc chế]] * [[nội lực]] * [[vật lực]] * [[vô hiệu hoá]], [[vô hiệu hóa]] * [[dân vũ]] * [[đào lửa]] * [[tàng ẩn]] * [[ampe kế]] * [[an tức hương]] * [[chủ biên]] * [[phi tuyến tính]] ([[phi tuyến]]) * [[pa nô]] * [[ampe]] * [[Man Đần]], [[Mân Đàn]] * [[dấm đài]] * [[mồn lèo]] * [[trẩu tre]], [[trẩu]] * [[kim chủ]] * [[cấu phần]] * [[đoạn tính]] * [[siêu đoạn tính]] * [[đấng]] * [[chăn rau]] * [[cươi]] (phương ngữ Nghệ An) * [[tối kiến]] * [[tối cổ]] * [[khu mấn]] (phương ngữ Nghệ An) * [[đơn tính]] * [[phiên mã]] * [[dịch mã]] * [[thanh điệu]] * [[tối tạo]] * [[vũ khí hoá]], [[vũ khí hóa]] * [[trinh sản]] * [[dị tính]] * [[bản dạng]] * [[đơn nhất]] * [[đa tính]] * [[song tính]] * [[từ tố]] (token) * [[khít khao]] ([https://vnexpress.net/tai-tao-am-dao-giup-ham-nong-chuyen-phong-the-2260622.html] [https://thanhnien.vn/vong-loai-giai-u19-hoa-viettel-dkvd-ha-noi-roi-xuong-thu-3-bang-a-1851350680.htm] [https://tuoitre.vn/cho-hoc-sinh-dung-dien-thoai-trong-lop-can-huong-dan-ky-nang-dung-dien-thoai-2020092208455158.htm] [https://tuoitre.vn/nhung-nguoi-tho-vua-tre-vua-gioi-20190528200525801.htm]) * [[tinh sạch]] * [[chuyển biên]] ([https://suckhoedoisong.vn/nha-nhac-cung-dinh-hue-kiet-tac-am-nhac-bac-hoc-va-tao-nha-169230201074401435.htm] [https://www.vietnamplus.vn/nhieu-nghe-sy-noi-tieng-bieu-dien-tai-lien-hoan-guitar-quoc-te-sai-gon-post532869.vnp] [https://znews.vn/dem-nhac-than-dong-lang-lang-tai-ha-noi-hut-hang-thieu-diem-nhan-post873618.html]) * [[Việt Nam học]] * [[tiền xử lí]], [[tiền xử lý]] * [[hậu xử lí]], [[hậu xử lý]] * [[phản cảm]] * [[thực chiến]] * [[đại trà]] * [[điện khí hoá]], [[điện khí hóa]] * [[hoà đồng]], [[hòa đồng]] * [[hoà nhập]], [[hòa nhập]] == Tiếp theo == * [[yếc hoá]] * [[phi dị tính]] * [[tạp tính]] * [[toàn tính]] * [[tiềm tan]] * [[nhược trương]] * [[nghi khí]] hàng hải * [[vu nữ]] * [[đập hộp]] * [[va đập]] * [[khí áp kế]] * [[quyến mời]] * [[chính khoá]], [[chính khóa]] * [[ngũ tuần]] * [[lục tuần]] * [[kể cả]] * [[🗣️🔥]] * [[tâm đạo]] * [[phên dậu]] * [[tái tục]] * [[thuỷ lực học]], [[thủy lực học]] * [[từ thuỷ động lực học]], [[từ thủy động lực học]] * [[thâu thái]] * [[tằng cẩu]], [[tẳng cẩu]] == [[w:Danh sách tiếng lóng trong tiếng Việt của thế hệ Z]] == * [[1 Jack]] * [[8386]] * [[ăn nói xà lơ]] * [[bảnh]] * [[bủh]] * [[dảk]] * [[cà nhính]] * [[cẩu lương]], [[cơm chó]] * [[chằm Zn]] * [[CMNR]] * [[cộng tươi]] * [[dịu kha]] * [[elm]] * [[ét ô ét]] * [[G9]] * [[gét gô]], [[get go]], [[ghét gô]] * [[Hồng Hài Nhi]] * [[hút độc rắn]] * [[khum]] * [[kiwi kiwi]] * [[lò vi sóng]] * [[luật hoa quả]] * [[lịch sử đi bạn ơi]] * [[lemỏn]], [[le mỏn]] * [[mai đẹt ti ni]] * [[mãi mận, mãi keo]] * [[mlem mlem]] * [[nà ní]] * [[ngoan xinh yêu]] * [[phở bò]] * [[rén]] * [[sẽ gầy]] * [[sít rịt]] * [[thăm ngàn]] * [[trà xanh]] * [[tiểu tam]] * [[trôn]] * [[ultr]] * [[wibu]] * [[xì trây]] * [[xịt keo]] * [[xu cà na]] * [[yang lake]] = Trang thành viên khác = *[[w:Thành_viên:Ioe2015|Trang thành viên của thành viên này tại Wikipedia]] __NOINDEX__ is78zjugpfmvu40p9xfsnqc6bfhye7d Indonesia 0 254478 2351298 2172500 2026-05-08T06:25:17Z TheHighFighter2 42988 ± 6 thể loại dùng [[w:WP:HOTCAT|HotCat]] 2351298 wikitext text/x-wiki {{-vie-}} {{-info-}} {{-alternative form-}} * [[In-đô-nê-xi-a]] (''phiên âm'') {{-pron-}} {{vie-pron|In-đô-nê-xi-a}} {{-place-}} {{pn}} # {{senseid|vi|Q252}} Một [[quốc gia]] [[Đông Nam Á]]. Tên chính thức: [[Cộng hòa Indonesia]]. {{-trans-}} {{trans-top|Tên quốc gia}} * {{eng}}: {{l|en|Indonesia}} {{trans-bottom}} {{catname|Địa danh|tiếng Việt}} [[Thể loại:vi:Quốc gia]] [[Thể loại:vi:Quốc gia của châu Á]] [[Thể loại:vi:Indonesia]] {{-eng-}} {{-place-}} {{pn}} # {{l|vi|Indonesia}} (một [[nước]] [[Đông Nam Á]]). {{catname|Địa danh|tiếng Anh}} [[Thể loại:en:Quốc gia]] [[Thể loại:en:Quốc gia của châu Á]] [[Thể loại:en:Indonesia]] 9wutaaq63qjonht3dlu2dn75xjfjhbu 新街 0 255034 2351364 2002857 2026-05-08T10:49:36Z Kateru Zakuro 34522 2351364 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms}} {{wp|zh:}} ==={{ĐM|pronunciation}}=== {{zh-pron |m=Xīnjiē |c=san1 gaai1 |cat=pn }} ===Proper noun=== {{head|zh|Danh từ riêng}} # {{zh-div|鎮|街道|鄉}} Các [[thị trấn]], [[phường]] và [[xã]] khác nhau mang tên Tân Giới ở Trung Quốc. ## {{zh-div|鎮}} {{place|zh|t=Tân Giới|thị trấn|county/Tuy|prefecture-level city/Tùy Châu|province/Hồ Bắc|country/Trung Quốc}} l2iwb6h4u8l82gx4t6bfx2e13ej6mn2 2351365 2351364 2026-05-08T10:49:54Z Kateru Zakuro 34522 2351365 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms}} {{wp|zh:}} ==={{ĐM|pronunciation}}=== {{zh-pron |m=Xīnjiē |c=san1 gaai1 |cat=pn }} ==={{ĐM|proper noun}}=== {{head|zh|Danh từ riêng}} # {{zh-div|鎮|街道|鄉}} Các [[thị trấn]], [[phường]] và [[xã]] khác nhau mang tên Tân Giới ở Trung Quốc. ## {{zh-div|鎮}} {{place|zh|t=Tân Giới|thị trấn|county/Tuy|prefecture-level city/Tùy Châu|province/Hồ Bắc|country/Trung Quốc}} fk6mczby6n09cgpgmkt7gxvnpbamtg5 2351366 2351365 2026-05-08T10:52:22Z Kateru Zakuro 34522 2351366 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms}} {{wp|zh:}} ==={{ĐM|pronunciation}}=== {{zh-pron |m=Xīnjiē |c=san1 gaai1 |cat=pn }} ==={{ĐM|proper noun}}=== {{head|zh|Danh từ riêng}} # {{zh-div|鎮|街道|鄉}} Các [[thị trấn]], [[phường]] và [[xã]] khác nhau mang tên Tân Nhai ở Trung Quốc. ## {{zh-div|鎮}} {{place|zh|t=Tân Nhai|thị trấn|county/Tuy|prefecture-level city/Tùy Châu|province/Hồ Bắc|country/Trung Quốc}} jqk44kgrcyms793mne924m1j41x2z66 Brunei 0 255159 2351296 2170388 2026-05-08T06:21:28Z TheHighFighter2 42988 ± 6 thể loại dùng [[w:WP:HOTCAT|HotCat]] 2351296 wikitext text/x-wiki {{-vie-}} {{-info-}} {{-alternative form-}} * [[Bru-nây]] (''phiên âm'') {{-pron-}} {{vie-pron|Bờ-ru-nây}} {{-place-}} {{pn}} # {{senseid|vi|Q921}} Một [[quốc gia]] [[Đông Nam Á]]. {{-trans-}} {{trans-top|Tên quốc gia}} * {{eng}}: {{l|en|Brunei}} {{trans-bottom}} {{catname|Địa danh|tiếng Anh}} [[Thể loại:vi:Quốc gia]] [[Thể loại:vi:Quốc gia của châu Á]] [[Thể loại:vi:Brunei]] {{-eng-}} {{-place-}} {{pn}} # {{l|vi|Brunei}} (một [[quốc gia]] [[Đông Nam Á]]). {{catname|Địa danh|tiếng Anh}} [[Thể loại:en:Quốc gia]] [[Thể loại:en:Quốc gia của châu Á]] [[Thể loại:en:Brunei]] ex3u30uqjopwgi4srg0zn17axh78lv9 Thảo luận Thành viên:Kateru Zakuro 3 256634 2351188 2350492 2026-05-07T16:45:19Z MediaWiki message delivery 19980 Mục mới: /* Thư mời cho đề nghị cấp quyền bot */ 2351188 wikitext text/x-wiki {{Thành viên:Kateru Zakuro/Trang Chính thành viên/Menu}} ==Hoan nghênh== {| width="100%" cellspacing="2" cellpadding="2" style="background: #F8F8FF; border: 1px solid #ddddee;" |- | colspan="6" style="background: #FFE4B5;" |[[Hình:Nuvola apps kteatime.png|40px]]<big> [[Wiktionary:Giới thiệu|Xin chào]] [[Thành viên:{{PAGENAME}}|{{PAGENAME}}]]!</big> |- | colspan="6" style="padding-left: 30px"| [[Hình:Nuvola apps bookcase.png|24px]] [[Wiktionary|Wiktionary tiếng Việt]] đến nay đã có '''{{formatnum:243272}}''' mục từ, đó là kết quả đóng góp quý báu của rất nhiều thành viên trong Wiktionary, mà mọi người đều bắt đầu như bạn. Bạn đã khởi đầu rất tốt và mong rằng bạn sẽ mang đến những [[Đặc biệt:Đóng góp/{{PAGENAME}}|đóng góp]] có giá trị cho quyển từ điển mở này. |- | colspan="6" style="padding-left: 130px"| [[Hình:Nuvola apps edu languages.svg|60px]] |- | colspan="6" style="padding-left: 30px"| Mời bạn [[Wiktionary:Trang thành viên|giới thiệu về bản thân]] tại trang [[Thành viên:{{PAGENAME}}]].<br>Khi thảo luận, bạn nhớ ký tên bằng cách dùng 4 dấu ngã <nowiki>~~~~</nowiki>!. |- | colspan="3" width="50%" style="padding-left: 30px"| <font color="red"><big> Bạn hãy nhớ các nguyên tắc</big></font><br> [[Hình:Nuvola apps important.svg|20px]] [[Từ điển|chỉ viết những gì thuộc từ điển]], <br> [[Hình:Nuvola apps digikam.png|20px]] không truyền lên hình ảnh thiếu nguồn gốc, <br> [[Hình:Red copyright.svg|20px]] [[Wiktionary:Quyền tác giả|không vi phạm quyền tác giả]]. | colspan="3" width="50%" style="padding-left: 30px"| <font color="green"><big>Đầu tiên bạn nên mạnh dạn</big></font> <br> [[Hình:Nuvola apps keyboard.png|20px]] [[Trợ giúp:Tìm kiếm|thử mọi liên kết mà bạn muốn]],<br> [[Hình:Nuvola apps kig.png|20px]] viết thử thoải mái [[Wiktionary:Chỗ thử|tại đây]],<br> [[Hình:Gnome-help.svg|20px]] [[Wiktionary:Bàn giúp đỡ|đề nghị giúp đỡ của bất cứ ai]]. |- |colspan="6" style="padding-left: 30px"| Những chỉ dẫn có ích: [[Wiktionary:Câu thường hỏi|các câu thường hỏi]], [[Wiktionary:Viết trang mới|cách viết mục từ mới]], [[Trợ giúp:Sửa đổi|soạn thảo mục từ]], và [[Trợ giúp:Mục lục|những hướng dẫn khác]].<br> '''Welcome''' to the Vietnamese Wiktionary, and thank you for registering! If you do not speak Vietnamese, feel free to use our [[Wiktionary:Guestbook for non-Vietnamese speakers|guestbook for non-Vietnamese speakers]].<br> ¡'''Bienvenido''' al Wikcionario vietnamita y gracias por registrarse! Si usted no habla vietnamita, puede utilizar nuestro [[Wiktionary:Guestbook for non-Vietnamese speakers|libro de visitas para los hablantes no vietnamitas]]. |- | colspan="6" style="border-top:2px solid #faecc8;" | Lời khuyên cuối cùng, bạn hãy làm lần lượt: [[Wiktionary:Chỗ thử|thử]], [[Wiktionary:Chào mừng người mới đến|đọc]], [[Wiktionary:Bàn giúp đỡ|hỏi]] rồi hẵng [[Wiktionary:Viết trang mới|viết]]. Chúc bạn thành công. |}&nbsp;[[Thành viên:Huỳnh Nhân-thập|'''<tt><span style="color:#4169e1;">Ios.</span></tt>''']] ([[Thảo luận Thành viên:Huỳnh Nhân-thập|thảo luận]]) 09:28, ngày 4 tháng 2 năm 2020 (UTC) == Thư mời == Mời bạn tham gia [[Thảo luận Wiktionary:Hành chính viên|BQ chọn hành chính viên]]. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 08:23, ngày 11 tháng 12 năm 2020 (UTC) == [[Mô đun:Unicode data]] == Chào bạn. Không biết khi nào bạn sửa xong nó nhỉ? Mong nhận được phản hồi của bạn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:25, ngày 13 tháng 7 năm 2021 (UTC) :{{u|Ccv2020}} Em cố gắng sửa lỗi bằng cách thêm mô đun còn thiếu nhưng có vẻ mã nguồn gốc bên en nó không tương thích bên đây nên bị lỗi hiện không biết sửa sao nữa, mong anh thông cảm, nhờ người khác ạ.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 05:06, ngày 14 tháng 7 năm 2021 (UTC) :{{u|Ccv2020}} Cái này sửa được nhưng thiếu nhiều mô đun quá. Nhờ anh chép hết [https://en.wiktionary.org/wiki/Special:PrefixIndex/Module:Unicode_data/ toàn bộ mô đun con này sang đây] thì may ra hết lỗi, do quá nhiều nên em chắc làm không nổi.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 05:15, ngày 14 tháng 7 năm 2021 (UTC) == [[Bản mẫu:character info]] == Chào bạn. Bản mẫu này có một lỗi: Khi nhúng vào các trang khác thì không dùng chuột để nhấn vào được. Bạn qua đây xem xét lỗi một chút, cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 14:25, ngày 18 tháng 7 năm 2021 (UTC) :À thôi, lỗi hết rồi. Xin lỗi vì đã làm phiền bạn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 14:31, ngày 18 tháng 7 năm 2021 (UTC) ::Xin lỗi vì đã làm phiền bạn một lần nữa. Hóa ra là tùy trình duyệt bạn à. Dùng Google Chrome không nhấn chuột để vào được. Bạn qua đây xem xét lỗi một chút, cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:17, ngày 19 tháng 7 năm 2021 (UTC) ::{{u|Ccv2020}} Cái này thật ra là lỗi của hệ thống Tab theo ngôn ngữ của Wiktionary tiếng Việt. Từ lâu chúng ta đã sử dụng hệ thống Tab trang theo ngôn ngữ, thực hiện chuyển đổi đề mục cấp 2 theo ngôn ngữ kiểu <pre>==Tiếng Việt==</pre> thành Tab "Việt" bên trái anh đã thấy, nhưng vấn đề là nó không hoạt động tốt, đặc biệt là những bản mẫu được đặt ngoài phạm vi nội dung Tab phân theo ngôn ngữ, vì thế khi đặt bên ngoài nó vẫn hiển thị nhưng không dùng được.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 03:30, ngày 19 tháng 7 năm 2021 (UTC) Em cũng không biết sửa sao, anh nên hỏi những người từ đầu thành lập hay lập trình Wiktionary tiếng Việt có lẽ sẽ có cách, hoặc không được thì chịu hoặc thực hiện '''cách mà em không muốn''': '''Gọi Meta đề xuất họ sao lưu dữ liệu bài viết và trang lại, sau đó cài lại Mediawiki như bên en rồi nhập dữ liệu vào'''.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 03:30, ngày 19 tháng 7 năm 2021 (UTC) :Hic… Thôi chắc tạm thời tắt tính năng “Tổ chức lại mỗi mục từ thành các thẻ theo ngôn ngữ” (mục Tiên ích) vậy. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 03:42, ngày 19 tháng 7 năm 2021 (UTC) ::Nên đề nghị tắt ba cái tab đi, rõ là thấy rườm rà, không có ích lợi gì. [[Thành viên:P.T.Đ|P.T.Đ]] ([[Thảo luận Thành viên:P.T.Đ|thảo luận]]) 17:40, ngày 19 tháng 7 năm 2021 (UTC) :::{{u|P.T.Đ}}: Tôi nghĩ là các tài khoản mới trong tương lai sẽ không bật sẵn tính năng tôi đã nêu trên. Muốn làm vậy thì phải qua đâu để nhờ các kỹ thuật viên làm vậy? [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:47, ngày 20 tháng 7 năm 2021 (UTC) ::@[[Thành viên:Ccv2020|Ccv2020]]: Các thông tin về ký tự không thuộc về ngôn ngữ nào nên được sắp xếp vào phần "Chữ x", thí dụ {{LKBM|-Hani-}} là "Chữ Hán". Đối với ký tự không thuộc về một hệ thống viết cụ thể thì có thể đưa vào phần {{LKBM|-mul-}} ("Đa ngôn ngữ"). – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 06:17, ngày 14 tháng 10 năm 2021 (UTC) == Về giao diện Wiktionary phiên bản di động == Chào bạn. Tôi thấy giao diện di động của Wiktionary có vấn đề: phần ví dụ tra cứu bị lỗi không tải được, chỉ hiện chữ “đang tải…” thôi. Mong bạn dành chút thời gian xem xét và sửa lỗi, cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:08, ngày 21 tháng 7 năm 2021 (UTC) :{{u|Ccv2020}} Không sửa lỗi được vì cái phần đó trên di động là phần tĩnh, không động được nên nó mới vậy. Em cũng đã làm xong [[Bản mẫu:Trang Chính 2]] rồi, bạn xem qua rồi có gì áp dụng luôn cũng được, coi như là '''viện trợ không cần hoàn vốn từ Trung tâm xây dựng Thienhau2003 tại Wikipedia tiếng Việt''' của em nhé.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 02:21, ngày 21 tháng 7 năm 2021 (UTC) <nowiki>:</nowiki>), OK bạn. Tôi sẽ xem xét giao diện này. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 02:38, ngày 21 tháng 7 năm 2021 (UTC) == [[;]] == Tôi không tạo được trang này vì nó có trong danh sách đen. Bên enwiki cũng bị lỗi. Làm thế nào đây bạn? Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 00:08, ngày 9 tháng 8 năm 2021 (UTC) :{{u|Ccv2020}} Cụm từ bị cấm, đây là một trong nhiều [https://helpex.vn/question/nhung-ky-tu-nao-bi-cam-trong-ten-thu-muc-windows-va-linux--5cb7dea2ae03f646703bf39d ký tự đặc biệt trong hệ thống Linux và Windows]. Nên không thể tạo được. Rất tiếc.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 09:20, ngày 2 tháng 9 năm 2021 (UTC) == [[𬖾]] == Chào bạn. Mục từ này dù đang chứa {{tl|cảnh báo Unicode}}, nhưng [[:Thể loại:Mục từ Unicode cần chú ý]] không chứa trang này. Phiền bạn qua đây xử lý một chút, cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 03:19, ngày 23 tháng 8 năm 2021 (UTC) :Thôi, mình chữa được lỗi rồi. Xin lỗi vì đã làm phiền bạn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 23:41, ngày 25 tháng 8 năm 2021 (UTC) == [[Mô đun:character info]] == Chào bạn. Bạn có thể dịch giúp mình dòng 119 ( cat_name = script_name .. " script characters") được không bạn? Mình sửa nhưng nó cứ báo lỗi. Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 07:55, ngày 24 tháng 9 năm 2021 (UTC) == Phụ lục:… == Lúc mình tạo ra những trang đó, mình mới phát hiện ra là Wiktionary tiếng Việt '''không''' có không gian tên “Phụ lục”. Có cách nào để yêu cầu thêm không gian tên này vào Wiktionary tiếng Việt không? Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 04:44, ngày 31 tháng 10 năm 2021 (UTC) :{{u|Ccv2020}} Cái này thì phải đề xuất lên https://phabricator.wikimedia.org/ để họ nhập không gian tên mới về. Nhưng nên tham khảo ý kiến các thành viên khác, đặc biệt là BQV, có đồng thuận rồi thì mới nên tiến hành.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 06:40, ngày 31 tháng 10 năm 2021 (UTC) ::Vậy thì bạn giúp mình được không? Sắp tới mình thi nên sẽ hạn chế hoạt động. Thân mến. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 09:37, ngày 31 tháng 10 năm 2021 (UTC) :::Cái này cần biểu quyết, đúng không nhỉ… [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 07:40, ngày 23 tháng 11 năm 2021 (UTC) == Lỗi == Chào bạn. Hiện có nhiều trang có lỗi ở mục "dịch", vd như trang [[dương cầm|này]]. Không biết bạn có thể khắc phục được không? --.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 00:16, ngày 10 tháng 11 năm 2021 (UTC) :{{u|TheHighFighter2}} Bó tay, bản mẫu ở đây quá lỗi thời nên sửa kiểu nào cũng "hết lỗi chỗ này thì lại lỗi chỗ khác".--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 03:41, ngày 10 tháng 11 năm 2021 (UTC) == BQV == Bạn muốn làm BQV ở đây không? Tôi nghĩ bạn phù hợp với vị trí đó. Bạn có thể ra ứng cử. Sau 1 tuần, nếu bạn có vài phiếu ok thì tôi sẽ cấp quyền BQV cho bạn. Làm BQV ở đây lấy kinh nghiệm. Sau này, ứng cử làm BQV ở Wikipedia dễ hơn. Chắc vài năm nữa khi bạn tốt nghiệp và có nhiều thời gian hơn. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 04:06, ngày 3 tháng 12 năm 2021 (UTC) :{{ping|Nguyentrongphu}} Mời cho ý kiến tại [[Thảo luận Wiktionary:Bảo quản viên#Kateru Zakuro]]--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 04:16, ngày 3 tháng 12 năm 2021 (UTC) :{{ping|Nguyentrongphu}} Em đã ra ứng cử và đã hơn 1 tuần rồi. Mong anh thực hiện đúng lời trên, cảm ơn.--[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 01:50, ngày 6 tháng 12 năm 2021 (UTC) == Tạo bản mẫu tính số mục từ Unicode == Chào bạn. Bạn có cách nào tạo ra bản mẫu tính số mục từ Unicode (những mục từ chỉ dùng 1 ký tự trên tiêu đề) không? Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 11:29, ngày 12 tháng 12 năm 2021 (UTC) == [[Thành viên:Ccv2020/Nháp MediaWiki 1]] == Nhờ bạn xóa trang này, cảm ơn bạn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 14:00, ngày 15 tháng 12 năm 2021 (UTC) == Thẻ ngôn ngữ == Tôi đang nghiên cứu về lỗi mà bạn [[Đặc biệt:Khác/2037419|đã đề cập đến]] khi tắt chức năng thẻ ngôn ngữ. Phần âm thanh không hiển thị trong mục từ nào? Tôi đã xem "[[dictionary]]" (sử dụng {{LKBM|pron-audio}}) và "[[ăn tết]]" ({{LKBM|âm thanh}}); hình như cả hai bản mẫu này vẫn hoạt động tốt khi bật chức năng thẻ. Có phải lỗi này tùy theo trình duyệt hay tiện ích khác không? Đây là chức năng quan trọng của Wiktionary vì phần nhiều người chỉ quan tâm đến một ngôn ngữ và bố trí mục từ mặc định có vẻ khó sử dụng. Tiện ích này phỏng theo [[:en:MediaWiki:Gadget-TabbedLanguages.js|tiện ích tại Wiktionary tiếng Anh]], nhưng [[:en:MediaWiki talk:Gadget-TabbedLanguages.js#Vietnamese version|tiện ích tiếng Việt có nhiều lợi điểm hơn]]. Mai mốt có lẽ [[mw:Reading/Web/Desktop Improvements/Third prototype testing/vi|Vectơ sẽ thu nhỏ các phần ngôn ngữ]] thì không cần tạo thẻ nữa, nhưng tiện ích này sẽ vẫn có ích vì gắn neo ngôn ngữ (<code>#Tiếng Anh</code>) vào các liên kết nội bộ. Nếu không có thì chúng ta phải mất công thêm ngôn ngữ thủ công dùng {{LKBM|l}}. &ndash;&nbsp;[[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 20:56, ngày 17 tháng 12 năm 2021 (UTC) :{{u|Mxn}} Có 2 lý do tắt: :* Mặc dù cái này có lợi nhưng vì đây là Wiki, tôi muốn giữ cho trang Wiki '''truyền thống giống như các trang bách khoa toàn thư''' chứ không phải là một trang web tra cứu mục từ. Hầu như không có Wiktionary nào bặt mặc định tính năng này cả. :* Nếu anh để ý, truy cập vào [[Wiktionary#Tiếng_Việt]] rồi sau đó chuyển lại sang tiếng Anh thì phần âm thanh không chạy được mà hiện một cái dải xám. Lỗi này có thể sửa được bằng cách load lại trang. Vì lỗi này không chỉ Wiktionary tiếng Việt mà cả bên Wiktionary tiếng Anh cũng bị lỗi nên lỗi này không quá nghiêm trọng. :*Tôi muốn hạn chế tải các thành phần không cần thiết để trang mục từ load nhanh và nhẹ hơn. --[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 05:53, ngày 18 tháng 12 năm 2021 (UTC) :<p>Điều quan trọng nhất là người dùng có thể tra cứu, sửa đổi nội dung một cách tiện lợi. Từ điển Wiktionary không có trang tra cứu mục từ thì làm sao gọi là từ điển được? Tôi chưa biết đến Wiktionary nào bố trí các mục từ "như các trang bách khoa toàn thư". Wiktionary cần chức năng quản lý các phần ngôn ngữ trong mục từ vì một mục từ có thể có ý nghĩa trong nhiều ngôn ngữ, chẳng hạn "[[voi]]", "[[pan]]", "[[la]]". Wikipedia không có nhu cầu này. :<p>Đúng là chỉ có Wiktionary tiếng Việt [[m:Gadgets/wiktionary/default|kích hoạt TabbedLanguages theo mặc định]]. (Wiktionary tiếng Ba Tư kích hoạt một phiên bản hỏng của TabbedLanguages theo mặc định.) Năm 2012, Wiktionary tiếng Anh [[:en:Wiktionary:Votes/2012-10/Enabling Tabbed Languages|quyết định kích hoạt TabbedLanguages]], nhưng quyết định này bị trì hoãn mãi vì một số vấn đề tôi đã khắc phục trong phiên bản tại đây. Dù TabbedLanguages không được kích hoạt tại Wiktionary khác, nhưng nhiều người vẫn tuyển chọn kích hoạt nó thủ công. Hiện tại nó [[m:Gadgets/wiktionary|xếp hạng thứ 7 theo người dùng]], không kể những người dùng tại wiki này hoặc người sử dụng script người dùng [[:en:User:Yair rand/TabbedLanguages2.js|TabbedLanguages2]]. Thống kê này có nghĩa rằng thẻ ngôn ngữ rất có ích đối với người đã biết đến tiện ích, chưa kể những người chưa biết đến nó. :<p>Tôi rất ngạc nhiên khi đọc rằng TabbedLanguages có ảnh hưởng đến thời gian tải trang. Đây là một tiện ích '''rất''' nhỏ so với các tiện ích khác, nhỏ hơn cả CommentsInLocalTime. Ngoài ra, [[mw:ResourceLoader|ResourceLoader]] tự động nén mã nguồn thành 5,7&nbsp;kilôbyte [https://vi.wiktionary.org/w/load.php?lang=vi&modules=ext.gadget.TabbedLanguages&skin=vector&version=4nlvy] (nhỏ bằng [[:Tập tin:Brockhaus and Efron Encyclopedic Dictionary b72 889-2.jpg|hình này]]), và trình duyệt tự động đưa mã nguồn vào vùng nhớ đệm. Còn thời gian kết xuất cũng không sao. Tôi đã thử xóa sạch vùng nhớ đệm và tải lại "[[voi]]" 10 lần trong trình duyệt của tôi (Firefox 95, macOS 10.13, MacBook Pro 2,6&nbsp;GHz năm 2013) với các tiện ích mặc định. Theo thẻ Hiệu suất của công cụ nhà phát triển Firefox, TabbedLanguages chỉ tốn trung bình vào khoảng 183&nbsp;mili&nbsp;giây trên tổng số 904&nbsp;mili&nbsp;giây để kết xuất trang. Phần lớn là do trình duyệt phải bố trí lại các phần tử DOM. Dĩ nhiên thời gian kết xuất tùy theo trình duyệt và máy tính, nhưng coi như không có vấn đề đáng kể. :<p>Tôi rất mừng bạn có cơ hội và ý định cải tiến và hiện đại hóa wiki này. Tôi chỉ xin bạn nhớ rằng wiki này có một số đặc tính khác cần kỹ thuật đặc biệt. Mai mốt Wiktionary sẽ [[:en:Wiktionary:Wikidata|sử dụng cơ sở dữ liệu Wikidata]] để lưu trữ các thông tin ngữ nghĩa. Wikidata sẽ đưa rất nhiều mục từ trong rất nhiều ngôn ngữ vào wiki này, chỉ việc nhúng một [https://en.wiktionary.beta.wmflabs.org/wiki/হৃদয় bản mẫu] [https://en.wiktionary.beta.wmflabs.org/wiki/cat đơn giản]. Với mô hình này, chúng ta sẽ phải nghĩ lại nhiều quy định và quá trình, không thể dựa vào kinh nghiệm Wikipedia như ngày xưa. :<p>&nbsp; – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 08:55, ngày 18 tháng 12 năm 2021 (UTC) :Lỗi tại [[Wiktionary#Tiếng Việt]] là lỗi của trình phát âm thanh Kaltura của phần mở rộng [[mw:TimedMediaHandler|TimedMediaHandler]]. Kaltura rất cũ kỹ. Nếu bạn kích hoạt "[[mw:Extension:TimedMediaHandler/VideoJS Player/vi|trình phát video mới]]" trong [[Đặc biệt:Tùy chọn#mw-prefsection-betafeatures|tùy chọn tính năng beta]], trình phát âm thanh sẽ hoạt động tốt trong các thẻ ngôn ngữ. – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 09:53, ngày 18 tháng 12 năm 2021 (UTC) == [[Đặc biệt:Lịch sử/やり方]] == Nhờ bạn xoá tóm lược của IP trong phiên bản đầu tiên của trang. Cảm ơn bạn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 03:58, ngày 27 tháng 12 năm 2021 (UTC) == [[⠧]] == Chào bạn. Có lỗi ở 3 bản mẫu: {{tl|-ara-}}, {{tl|-zho-}}, {{tl|-tha-}}. Bạn xem có vấn đề gì và chữa lại giúp. Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 13:13, ngày 27 tháng 12 năm 2021 (UTC) == How we will see unregistered users == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin=content/> Hi! You get this message because you are an admin on a Wikimedia wiki. When someone edits a Wikimedia wiki without being logged in today, we show their IP address. As you may already know, we will not be able to do this in the future. This is a decision by the Wikimedia Foundation Legal department, because norms and regulations for privacy online have changed. Instead of the IP we will show a masked identity. You as an admin '''will still be able to access the IP'''. There will also be a new user right for those who need to see the full IPs of unregistered users to fight vandalism, harassment and spam without being admins. Patrollers will also see part of the IP even without this user right. We are also working on [[m:IP Editing: Privacy Enhancement and Abuse Mitigation/Improving tools|better tools]] to help. If you have not seen it before, you can [[m:IP Editing: Privacy Enhancement and Abuse Mitigation|read more on Meta]]. If you want to make sure you don’t miss technical changes on the Wikimedia wikis, you can [[m:Global message delivery/Targets/Tech ambassadors|subscribe]] to [[m:Tech/News|the weekly technical newsletter]]. We have [[m:IP Editing: Privacy Enhancement and Abuse Mitigation#IP Masking Implementation Approaches (FAQ)|two suggested ways]] this identity could work. '''We would appreciate your feedback''' on which way you think would work best for you and your wiki, now and in the future. You can [[m:Talk:IP Editing: Privacy Enhancement and Abuse Mitigation|let us know on the talk page]]. You can write in your language. The suggestions were posted in October and we will decide after 17 January. Thank you. /[[m:User:Johan (WMF)|Johan (WMF)]]<section end=content/> </div> 18:20, ngày 4 tháng 1 năm 2022 (UTC) <!-- Tin nhắn của Thành viên:Johan (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Target_lists/Admins2022(8)&oldid=22532697 --> == [[MediaWiki:Wiktionary-usage]] == Chào bạn, nhờ bạn sửa trang đó thành “Ghi chú sử dụng”. “Cách dùng” chỉ cho biết từ/ký tự được sử dụng làm gì, còn “Ghi chú sử dụng” mang tính tổng quát hơn: nó còn cho biết ký tự này xuất hiện nhiều hay ít, phổ biến hay không phổ biến,… Cảm ơn bạn. [[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 09:18, ngày 14 tháng 1 năm 2022 (UTC) == Gỡ thông báo đầu trang và logo Tết cho Wiktionary tiếng Việt năm 2022 == Chào bạn. Cuộc thi “Thiết kế logo Tết cho Wiktionary tiếng Việt năm 2022” đã kết thúc, nhờ bạn gỡ xuống thông báo đầu trang. Và theo như kết quả của cuộc thi, nhờ bạn thay logo trên Wiktionary tiếng Việt thành logo Tết. Xin cảm ơn. [[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 07:07, ngày 21 tháng 1 năm 2022 (UTC) == Lỗi mô đun == Chào bạn, không biết lỗi ở mô đun thống kê Wiktionary thì sửa như nào nhỉ? – [[Thành viên:Russian Federal Subjects|<span style="color:black ;font:16px Calibri;">'''''RFS'''''</span>]]<sup>[[Thảo luận Thành viên:Russian Federal Subjects|<span style="color:gray ;font:12px Arial;">Talk to me!</span>]]</sup> 07:08, ngày 15 tháng 2 năm 2022 (UTC) :Cái này do 3 mục từ sau, trừ sco bạn không tạo thể loại mục từ nên nó lỗi. Mặc dù đã tạo nhưng mô đun vẫn chưa nhận ra thể loại, không hiểu tại sao. – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 07:23, ngày 15 tháng 2 năm 2022 (UTC) == Thư mời tham gia biểu quyết == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[File:Logo vote.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Thảo luận Wiktionary:Bảo quản viên|Biểu quyết bảo quản viên]] của '''[[Thành viên:Ccv2020]]''' tại '''[[Thảo_luận_Wiktionary:Bảo_quản_viên#Ccv2020|đây]]'''. <small>Hãy cùng tích cực tham gia các biểu quyết và thảo luận về chúng. Mỗi hành động của bạn sẽ góp phần không nhỏ để xây dựng các mục từ trên Wiktionary - tài sản chung của cộng đồng chúng ta, giúp wiki ta ngày càng phát triển vững mạnh! Thân ái!</small> |}[[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 00:53, ngày 23 tháng 2 năm 2022 (UTC) == Thẻ ngôn ngữ == Bạn giúp mình bao hết viền của thẻ tab ngôn ngữ lại với. Chỉ mỗi phần nội dung được bao viền, còn thẻ tab thì không, trông hơi kì :) – [[Thành viên:Đức Anh|Đức Anh]] ([[Thảo luận Thành viên:Đức Anh|thảo luận]]) 11:31, ngày 13 tháng 7 năm 2022 (UTC) :Cái này bạn hỏi Mxn nhé, do cái tab ngôn ngữ do bạn này cập nhật theo OOUI của Mediawiki nên nó như vậy – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 06:00, ngày 14 tháng 7 năm 2022 (UTC) == [[Mô đun:headword]] == Nhờ bạn giúp sửa tên thể loại ở mô đun trên (dòng 666): "palindromok" thành "Mục từ tiếng ... viết xuôi ngược đều giống nhau". Xin cảm ơn--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 09:21, ngày 18 tháng 8 năm 2022 (UTC) : Chào bạn. Nó vẫn còn vấn đề ở thể loại trang [[stats|này]]. Nhờ bạn giải quyết giúp, xin cảm ơn--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 02:38, ngày 22 tháng 8 năm 2022 (UTC) == [[:Thể loại:Chờ xóa]] == Hi, could you please take a look at the deletion requests in the category above? – '''[[User:Rschen7754|Rs]][[User talk:Rschen7754|chen]][[Special:Contributions/Rschen7754|7754]]''' 00:44, ngày 2 tháng 10 năm 2022 (UTC) :My apologies, appears to be done. --'''[[User:Rschen7754|Rs]][[User talk:Rschen7754|chen]][[Special:Contributions/Rschen7754|7754]]''' 22:57, ngày 2 tháng 10 năm 2022 (UTC) == Lỗi == Hiện có nhiều trang bị lỗi ở phần "dịch", như ở mục từ ''[[yêu dấu]]'', nhờ bạn xem qua và giải quyết giùm--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 09:50, ngày 22 tháng 12 năm 2022 (UTC) == Nhờ tạo trang == Nhờ bạn tạo hộ tôi trang [[:en:MediaWiki:Gadget-defaultVisibilityToggles.js]]. Xim cảm ơn--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 09:56, ngày 13 tháng 3 năm 2023 (UTC) :Em đang thắc mắc là bên mình dùng Navbox từ Wikipedia tiếng Anh thì sao dùng được cái này, nó cũng là navbox nhưng mà bên tiếng Anh nó là dạng Navbox cũ từ dùng tại Wikipedia tiếng Việt trước đây, cài cái này vào có bị xung đột không nhỉ? – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 16:36, ngày 14 tháng 3 năm 2023 (UTC) ::Vậy thì thôi vậy. Xin lỗi đã làm phiền bạn--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 00:55, ngày 15 tháng 3 năm 2023 (UTC) == Về bản cập nhật có lỗi trên dự án == Lỗi trong dự án ở đây là: * Ở trình duyệt trên điện thoại bỗng dưng hiển thị thanh ghi các phím lần lượt là VNI, VIQR, VIQR* với cả Bỏ dấu kiểu cũ,... trông rất khó nhìn, chèn vào nút ba chấm nên rất khó để xem được thông tin mục từ/trang. * Mọi nội dung trong mục từ đều bị ẩn, chỉ hiện mỗi thể loại. {{ping|Kateru Zakuro}} Anh có thể xem và vá lỗi này có được không vậy? – [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 15:06, ngày 30 tháng 6 năm 2023 (UTC) Thành viên này có hoạt động gần nhất là vào [https://guc.toolforge.org/?by=date&user=Kateru+Zakuro ngày 21/06], chắc không thể phản hồi sớm. Nên xin phép nhờ anh {{ping|Mxn}} vào giải quyết lỗi trên--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 16:34, ngày 1 tháng 7 năm 2023 (UTC) == Need your input on a policy impacting gadgets and UserJS == <div lang="en" dir="ltr" class="mw-content-ltr"> Dear interface administrator, This is Samuel from the Security team and I hope my message finds you well. There is an [[m:Talk:Third-party resources policy|ongoing discussion]] on a proposed policy governing the use of external resources in gadgets and UserJS. The proposed [[m:Special:MyLanguage/Third-party resources policy|Third-party resources policy]] aims at making the UserJS and Gadgets landscape a bit safer by encouraging best practices around external resources. After an initial non-public conversation with a small number of interface admins and staff, we've launched a much larger, public consultation to get a wider pool of feedback for improving the policy proposal. Based on the ideas received so far, the proposed policy now includes some of the risks related to user scripts and gadgets loading third-party resources, best practices for gadgets and UserJS developers, and exemptions requirements such as code transparency and inspectability. As an interface administrator, your feedback and suggestions are warmly welcome until July 17, 2023 on the [[m:Talk:Third-party resources policy|policy talk page]]. Have a great day!</div> <bdi lang="en" dir="ltr">[[m:User:Samuel (WMF)|Samuel (WMF)]], on behalf of the Foundation's Security team</bdi> 12:08, ngày 10 tháng 7 năm 2023 (UTC) <!-- Tin nhắn của Thành viên:Samuel (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Samuel_(WMF)/IAdmins_MassMessage_list_2&oldid=25272792 --> == Thư mời == Mời bạn cho đôi lời nhận xét tại [[Thảo luận Wiktionary:Bảo quản viên#P. %C4%90%C4%82NG|Biểu quyết chọn bảo quản viên]]. Xin hết lòng cảm ơn rất nhiều. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 07:02, ngày 24 tháng 8 năm 2023 (UTC) == Thư mời tham gia biểu quyết == <div style="padding: 0.5em; background: #f8f8ff; margin-top: 1em; font-size: 1em"> {| class="table" style="width: 80%; background-color: #ACE1AF; border: 1px solid #fceb92; margin: auto; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:Logo vote.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | '''Mời bạn cho ý kiến về việc cấp quyền Bảo quản viên cho thành viên [[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] tại trang [[Thảo luận Wiktionary:Bảo quản viên#DefenderTienMinh07|Thảo luận Wiktionary:Bảo quản viên]]. Xin cảm ơn. <small>Hãy cùng tích cực tham gia các biểu quyết và thảo luận về chúng. Mỗi hành động của bạn sẽ góp phần không nhỏ để xây dựng các mục từ trên Wiktionary - tài sản chung của cộng đồng chúng ta, giúp wiki ta ngày càng phát triển vững mạnh! Thân ái! |} </div> [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 10:25, ngày 24 tháng 8 năm 2023 (UTC) == Thư mời == Chào bạn! Mời bạn cho ý kiến tại [[Thảo_luận_Wiktionary:Bảo_quản_viên#Nguyên_Hưng_Trần|Biểu quyết chọn bảo quản viên]]. Thanks bạn! [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 17:33, ngày 30 tháng 12 năm 2023 (UTC) == Bản mẫu:Pp == Hiện bản mẫu đang gặp vấn đề sau khi nâng cấp (Ví dụ: [[Wiktionary:Nguồn gốc/WinVNKey/Lê Sơn Thanh]]) – [[Thành viên:Đơn giản là tôi|Đơn giản là tôi]] ([[Thảo luận Thành viên:Đơn giản là tôi|thảo luận]]) 08:35, ngày 24 tháng 8 năm 2025 (UTC) == Danh sách thông báo rộng rãi == Tôi đã tạo danh sách thông báo gửi thư rộng rãi này đến các tv tại [[Wiktionary:Danh sách thư]]. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 09:51, ngày 1 tháng 9 năm 2025 (UTC) == Lỗi == Xin chào, hôm nay mình có bê [[Bản mẫu:Trang Chính 3/Khung]] về Wikivoyage tại [[voy:vi:Bản mẫu:Trang Chính/Khung|đây]]. Nhưng không hiểu sao một số văn bản có màu ở [[voy:vi:Bản mẫu:Tin tức]] như "Tuần lễ vàng" và "Nhiều thành phố tại Indonesia đã xảy ra biểu tình phản đối chính phủ nay đã leo thang thành bạo loạn", mặc dù ở bản mẫu Tin tức nó vẫn hiện màu bình thường nhưng khi nhúng vào bản mẫu Trang Chính/Khung ở trên Trang Chính thì nó lại không có màu vậy nhỉ? Không biết là bạn có biết nguyên nhân của lỗi này là gì không? – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 15:24, ngày 4 tháng 9 năm 2025 (UTC) :Có màu mà bác, không biết bác có bặt cái gì không chứ em thấy có màu mà. Bác thử Shift+Nút làm mới trên trình duyệt xem sao. – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 22:03, ngày 4 tháng 9 năm 2025 (UTC) ::Hmm thế vậy chắc là do trình duyệt trên điện thoại. Mới thử trên máy tính thì không thấy có lỗi này. – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 23:21, ngày 4 tháng 9 năm 2025 (UTC) : À, thì ra là do tôi bật chế độ tối mặc định của Vector 2022 nên mới không có màu. Không biết sao nó lại bị vậy nhỉ? [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 15:32, ngày 9 tháng 9 năm 2025 (UTC) ::Chắc là do CSS của Wikivoyage, bác thử kiểm tra các trang CSS và JS toàn website và Vector 2022 xem có đoạn CSS hay JS nào định kiểu url no color không? – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 15:34, ngày 9 tháng 9 năm 2025 (UTC) ::: @[[Thành viên:Nvdtn19|Nvdtn19]] Tôi có vào Wikivoyage nhưng font chữ nó khác so với các dự án khác. Font chữ hiện tại nó [[:ku:Destpêk|giống]] với phiên bản Wiktionary tiếng Kurd. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 15:41, ngày 9 tháng 9 năm 2025 (UTC) :::: Font hiện tại đang hơi khó nhìn với lại tôi cũng không thích nó cho lắm nên mới đổi thành Segoe UI (mặc định của Microsoft). Cũng hơi kỳ lạ là ở [[voy:vi:Thành viên:Nvdtn19/nháp1]] rõ ràng vẫn đang hiện màu bình thường ở chế độ tối nhưng ở Trang Chính thì lại không hiện, không rõ lỗi này từ đâu nữa. [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 15:48, ngày 9 tháng 9 năm 2025 (UTC) ::::Bác kiểm tra [[MediaWiki:Common.css]] và [[MediaWiki:Vector.css]], em đang thấy trong này có một số mã thay đổi css khá nhiều, 2 trang này ảnh hưởng toàn trang nên bác nên kiểm tra trước 2 trang này xóa mấy css có thể gây lỗi đi. Em đang thấy có đoạn này ::::<code> ::::body { :::: /* generally a sans-serif font should be here */ :::: font-family: system-ui, "Segoe UI", 'Iranian Sans', 'Noto Sans Arabic', 'DejaVu Sans', sans-serif; ::::} ::::.mw-body h1, .mw-body h2, .mw-body #firstHeading, ::::.mw-body .mw-editsection, .mw-body .mw-editsection-like, ::::.mw-body #toc h2, .mw-body .toc h2, ::::#documentation-meta-data, .vector-sticky-header-context-bar-primary { :::: /* MediaWiki (e.g. English Wikipedia) uses a serif font for titles in contrast to a sans-serif font for body so :::: * we need also to use a serif font here, as Arial isn't an option let's have Calibri in the chain, :::: * it also resolves the issue of missed dots on some letters as can be seen in :::: * .... */ :::: font-family: Calibri, system-ui, "Segoe UI", 'Iranian Serif', 'Noto Sans Arabic', 'Iranian Sans', 'DejaVu Sans', serif; ::::} ::::</code> ::::có vẻ đang thay đổi font giao diện, bác là admin nên xóa đi. – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 15:50, ngày 9 tháng 9 năm 2025 (UTC) ::::: Kể cả xoá cái mã đó đi thì cũng có fix được cái màu đâu nhỉ? Code này là để đổi font, mà vấn đề màu đã xảy ra trước khi add cái mã đó rồi. [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 16:01, ngày 9 tháng 9 năm 2025 (UTC) ::::::Trường hợp này khả năng là lỗi khi chuyển đổi giao diện sáng sang tối, không tương thích với mediawiki. Em có test cả PC và Mobile thì không thấy lỗi đâu nên bác nên kiểm tra lại điện thoại và máy tính, vì lỗi chỉ xuất hiện bên bác nên giờ em rất khó nói là nên xử lý thế nào. – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 16:29, ngày 9 tháng 9 năm 2025 (UTC) Nhờ bạn cấm giúp rối đang phá hoại, xem [[Đặc biệt:Thay đổi gần đây]] để biết thêm. – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 02:27, ngày 12 tháng 9 năm 2025 (UTC) :Cấm vô hạn và thu hồi luôn quyền sửa trang thảo luận vì đây là LTA. – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 02:28, ngày 12 tháng 9 năm 2025 (UTC) ::Đã cấm vô hạn – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 02:29, ngày 12 tháng 9 năm 2025 (UTC) ::Mà LTA là ai nhỉ, dạo này ít qua bên Wikipedia nên không để ý, với lại trên này ít người tham gia. – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 02:32, ngày 12 tháng 9 năm 2025 (UTC) ::Mà LTA là ai nhỉ, dạo này ít qua bên Wikipedia nên không để ý, với lại trên này ít người tham gia. – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 02:32, ngày 12 tháng 9 năm 2025 (UTC) :::Bạn có thể qua đọc [[w:vi:Wikipedia:Tin nhắn cho bảo quản viên/Lưu 2025 8#Báo cáo phá hoại 84]] để biết thêm. – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 05:20, ngày 12 tháng 9 năm 2025 (UTC) == [[Mô đun:parameters/lite]] == Phiền bạn xóa mô đun này vì lỗi thời và không còn sử dụng bất kỳ trang nào. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 03:43, ngày 12 tháng 9 năm 2025 (UTC) == Nhờ == Theo [[m:Tech/News/2022/02]] thì việc ẩn tiêu đề Trang Chính giờ đây chỉ cần tạo [[MediaWiki:Mainpage-title]] và [[MediaWiki:Mainpage-title-loggedin]] chứ cũng không cần phụ thuộc vào CSS nữa. Hiện tại trên giao diện Minerva thì tiêu đề Trang Chính vẫn đang hiển thị khi chưa đăng nhập. Vì bạn là BQVGD ở đây nên nhờ bạn tạo hai giúp trang này. Chỉ cần tạo trang trống là được, không có dấu - [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 11:28, ngày 1 tháng 10 năm 2025 (UTC) :@[[Thành viên:Kateru Zakuro|Kateru Zakuro]]: Yummie lại sang đây rồi kìa bác. – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 11:50, ngày 25 tháng 10 năm 2025 (UTC) ::Đã xử lý – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 11:55, ngày 25 tháng 10 năm 2025 (UTC) : @[[Thành viên:Kateru Zakuro|Kateru Zakuro]] Nhờ bạn gỡ bỏ khóa trang [[ním]] chỉ vì có bút chiến vài lần trong quá khứ mà bán khóa vô hạn thì vô lý quá. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 12:03, ngày 25 tháng 10 năm 2025 (UTC) == Question of section templates == Hi, I saw your bot recently changed some section templates to use <nowiki><h3></nowiki> HTML tags, for example [[Bản mẫu:-noun-]] and [[Bản mẫu:-pron-]]. This causes problem when parsing pages and also inconsistent with the [[Wiktionary:Sơ đồ mục từ|layout document]]. Could you revert these edits to use <nowiki>===</nowiki> wikitext? – [[Thành viên:Public class|Public class]] ([[Thảo luận Thành viên:Public class|thảo luận]]) 06:26, ngày 17 tháng 11 năm 2025 (UTC) :@[[Thành viên:Public class|Public class]] Those templates were used for entries in the old format, before I updated the entry map in 2025, Vietnamese Wiktionary used such templates for titles, like the current Dutch Wiktionary. But to make editing entries easier and compatible with the entry structure in English Wiktionary, the rule was changed to use the === heading, and the old format templates were changed to HTML code h2 h3, to hide the edit button next to the heading, to avoid members accidentally editing the template. I intended to use CSS to hide the edit button, but after trying many ways, there is no way to hide the edit button for these templates, so I switched to HTML code. I wonder if there is a way? – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 07:43, ngày 17 tháng 11 năm 2025 (UTC) ::<nowiki>__NOEDITSECTION__</nowiki> magic word could be used. But it's also fine to use HTML tags, I already solved my problem by overriding the templates. – [[Thành viên:Public class|Public class]] ([[Thảo luận Thành viên:Public class|thảo luận]]) 07:58, ngày 17 tháng 11 năm 2025 (UTC) == Không thể thêm mục. == Xin chào, mình đang muốn thêm phần khái niệm của từ nắc trong tiếng Việt. Tuy nhiên mình đã bị chặn bởi bộ lọc số 10 liên quan tới Yuumi gì đấy. Làm sao để mình có thể đăng bài mà không bị chặn. --[[Thành viên:Tucute515|Tucute515]] ([[Thảo luận Thành viên:Tucute515|thảo luận]]) 11:22, ngày 22 tháng 11 năm 2025 (UTC) :Mình đã tắt bộ lọc để xem thử bạn bị cấm từ gì, vì bộ lọc này có tác động khá mạnh. Bây giờ bạn thêm được rồi đó – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 12:44, ngày 22 tháng 11 năm 2025 (UTC) == Mô đun cây thể loại == Theo tôi nghĩ đã đến lúc phải bán khoá toàn bộ các mô đun cây thể loại (category tree) vô hạn vì hầu hết các mô đun này đều ảnh hưởng lẫn nhau và chỉ cần có một vấn đề nhỏ thôi thì tất cả các thể loại dùng với auto cat đều lỗi hàng loạt. Không biết ý kiến của bạn như thế nào về đề xuất này? – [[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:41, ngày 30 tháng 11 năm 2025 (UTC) :@[[Thành viên:Hiyuune|Hiyuune]] Mô đun này hiện tại đang được sử dụng tương đối nhiều, với [https://linkcount.toolforge.org/index.php?project=vi.wiktionary.org&page=M%C3%B4_%C4%91un:category_tree 8,917 trang] nhúng thì có lẽ là đủ điều kiện để khóa rồi, bên Wiktionary tiếng Anh thì mô đun trên 1000 trang đã khóa rồi. Ở đây thì ít, để đảm bảo mọi người đều có thể cập nhật dữ liệu mô đun, chỉ nên khóa đối với các mô đun và bản mẫu có trên 2.500-5.000 trang nhúng như Wikipedia tiếng Anh là phù hợp. Giờ khóa cũng dễ mà, Twinkle một phát là xong. Mình thì đồng ý với đề xuất này, nhưng để mình hỏi thêm @[[Thành viên:TheHighFighter2|TheHighFighter2]], @[[Thành viên:Higashizakura|Higashizakura]] và @[[Thành viên:WhoAlone|WhoAlone]], không biết 3 bạn có đồng ý đề nghị này không?--[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 15:13, ngày 30 tháng 11 năm 2025 (UTC) ::Tôi thì ok theo đề xuất bạn Hiyuune --.--[[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]]) 06:53, ngày 1 tháng 12 năm 2025 (UTC) : Bổ sung mô đun cần khóa: [[Mô đun:array]]. [[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:14, ngày 4 tháng 12 năm 2025 (UTC) == Lỗi == Nhờ bạn xem qua mục từ [[アトゥインネ]], không hiểu vì sao [[Module:dialect synonyms/ain/アッコッカムイ]] bị lỗi chỗ nào tôi không biết sửa đượ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>]] 08:27, ngày 4 tháng 12 năm 2025 (UTC) :@[[Thành viên:Hiyuune|Hiyuune]] Không nhận diện được mã ngôn ngữ, cái này phải cập nhật lại module. Vì [[ Module:dialect synonyms]] này nó dùng nhiều mô đun khác, khả năng tìm ra lỗi hơi khó. Em sẽ cố gắng, nhưng nếu không được thì khả năng bác phải hỏi AI. – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 13:06, ngày 4 tháng 12 năm 2025 (UTC) ::Đề mục lại có vấn đề rồi. Phiền bạn xem lại chứ nhìn vào rối mắt lắm. – [[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>]] 12:36, ngày 6 tháng 12 năm 2025 (UTC) :::@[[Thành viên:Hiyuune|Hiyuune]] Đề mục nào bạn ơi, mình thấy vẫn ổn mà? Bạn có thể dẫn chứng mục từ nào không? – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 13:45, ngày 6 tháng 12 năm 2025 (UTC) ::::Mục từ [[アトゥインネ|này]], khi hiển thị trên mobile nó có vấn đề. – [[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>]] 13:47, ngày 6 tháng 12 năm 2025 (UTC) :::::Em thấy không có gì bất thường cả, riêng mô đun thì lỗi rồi cái này em bó tay, khả năng có liên quan đến mô đun tiếng Nhật nên nó lỗi, chứ mô đun dialect synonyms trên mục từ khác vẫn được mà tiếng Ainu lại lỗi thì chỉ có thể là do tiếng Nhật thôi. Không biết cụ thể nó bị lỗi gì, bác nói rõ được không, nếu có thể bác chụp ảnh lại gửi url lên đây thử, dùng imgbb. – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 13:52, ngày 6 tháng 12 năm 2025 (UTC) ::::::Xem [https://ibb.co/mVvWK2MM ở đây]. – [[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:08, ngày 6 tháng 12 năm 2025 (UTC) :::::::Em đã lùi lại bản mẫu, bác F5 hoặc làm mới lại trang thử, hoặc đăng xuất, xóa hết cache, lịch sử trình duyệt xem sao. Em không bị lỗi này nên không rõ lỗi của bác từ đâu ra. – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 15:43, ngày 6 tháng 12 năm 2025 (UTC) : Phiền bạn xóa [[Mô đun:is-noun/style.css]], [[Mô đun:eo-conj/style.css]] vì nó không còn liên kết bất kì trang nào và lỗi thời. [[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>]] 16:26, ngày 11 tháng 12 năm 2025 (UTC) : Tôi mới cập nhật lại theo phiên bản mới thì nó hết lỗi, có điều nó vẫn có cảnh báo. [[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>]]) 15:08, ngày 3 tháng 2 năm 2026 (UTC) == Yummie == Bác nên xem xét điều chỉnh lại cái bộ lọc này. Tôi thấy hơi có nhiều false positive khi xem trong [[Đặc biệt:Nhật trình sai phạm]]. Có thể điều chỉnh để những người có quyền autoconfirmed không bị ảnh hưởng. [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 07:15, ngày 6 tháng 12 năm 2025 (UTC) :Nó chỉ kích hoạt nếu tài khoản dưới 25 sửa đổi, cho nên nếu bị false thì khả năng chắc ít sửa đổi quá, em thấy bộ lọc này ít ảnh hưởng mà bác. – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 10:34, ngày 6 tháng 12 năm 2025 (UTC) : Rối này lại tiếp tục phá hoại ở không gian tên thể loại, tag biển xóa nhanh bừa bãi. [[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>]] 04:22, ngày 10 tháng 12 năm 2025 (UTC) == Cấm == Tài khoản [[Đặc_biệt:Đóng_góp/LamMaurisso|này]] đã ngừng hoạt động từ năm 2022 và các sửa đổi phá hoại đã lâu. Theo quy định, cấm để ngăn chặn phá hoại, không phải trừng phạt. Mời bạn bỏ cấm thành viên này. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 09:02, ngày 7 tháng 12 năm 2025 (UTC) ==Happy Holidays== <div style="border-style:solid; border-color:violet; background-color:#fff; border-width:2px; text-align:left; padding:8px;" class="plainlinks"> {| style="border: 5px dotted #H1790; background-color: #DDDDDD; padding:4px" | rowspan="2" valign="left" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Christmas Tree 2011-12-24.jpg|left|300px|link=]]<span style="display:block;padding-top:10px;clear:both"> | <span style="font-family: Georgia; font-size: 98%; color: #190a89;">Chúc bạn Kateru Zakuro có một mùa '''Giáng sinh''' an lành, ấm áp và tràn ngập yêu thương bên gia đình!<br/> Bước sang '''năm mới''' 2026, chúc bạn gặp nhiều may mắn,<br/> gặt hái được nhiều thành công trong công việc và học tập.<br/> Một lần nữa chúc bạn sẽ có một năm mới thật an khang, hạnh phúc và vạn sự như ý!!</span> <br /> <span style="font-family: Georgia; font-size: 92%;"> | rowspan="2" valign="right" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Atlantic Firework Festival 2016 (53368638571).jpg|left|360px|link=]]<span style="display:block;padding-top:10px;clear:both"> |}</div> Lời chúc chân thành từ: <span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px">&nbsp;[[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]&#124;[[User talk:Kelly zhrm|&#248;]]&nbsp;</span>&nbsp; 05:40, ngày 24 tháng 12 năm 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:17, ngày 28 tháng 4 năm 2026 (UTC) </div> <!-- 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=User:Keegan_(WMF)/test&oldid=30472541 --> == [[Mô đun:headword]] == Mô đun này bạn cập nhật xong nhưng nó lỗi chỗ khác, ví dụ như mục từ [[नियंत्रण]]. Lỗi: Mô_đun:table/extend tại dòng 12: attempt to index local 'list' (a nil value) (lỗi xuất phát từ mô đun trê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>]]) 13:46, ngày 6 tháng 5 năm 2026 (UTC) :Từ khi nào mà head nó không cập nhật được từ chữ thường nhỉ, bên tiếng Anh thì được – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 14:49, ngày 6 tháng 5 năm 2026 (UTC) == Thư mời cho đề nghị cấp quyền bot == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:OOjs UI icon advanced.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|trang đề nghị cấp quyền bot]] của "'''[[User:BlueShurikenNinjaBot|BlueShurikenNinjaBot]]'''" tại '''[[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|đây]]'''. <small>Kính mong bạn xem xét và thảo luận về đề nghị cấp quyền bot này! Thân ái!</small> |} &nbsp;Mong bạn cho ý kiến ạ. [[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]]) 16:45, ngày 7 tháng 5 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:Kateru Zakuro@viwiktionary gửi cho mọi người trong danh sách tại https://vi.wiktionary.org/w/index.php?title=Wiktionary:Danh_s%C3%A1ch_th%C6%B0&oldid=2323217 --> n75xm1pvbdforjy2s85m6705feccanj 2351191 2351188 2026-05-07T16:50:06Z Kateru Zakuro 34522 /* Thư mời cho đề nghị cấp quyền bot */ 2351191 wikitext text/x-wiki {{Thành viên:Kateru Zakuro/Trang Chính thành viên/Menu}} ==Hoan nghênh== {| width="100%" cellspacing="2" cellpadding="2" style="background: #F8F8FF; border: 1px solid #ddddee;" |- | colspan="6" style="background: #FFE4B5;" |[[Hình:Nuvola apps kteatime.png|40px]]<big> [[Wiktionary:Giới thiệu|Xin chào]] [[Thành viên:{{PAGENAME}}|{{PAGENAME}}]]!</big> |- | colspan="6" style="padding-left: 30px"| [[Hình:Nuvola apps bookcase.png|24px]] [[Wiktionary|Wiktionary tiếng Việt]] đến nay đã có '''{{formatnum:243272}}''' mục từ, đó là kết quả đóng góp quý báu của rất nhiều thành viên trong Wiktionary, mà mọi người đều bắt đầu như bạn. Bạn đã khởi đầu rất tốt và mong rằng bạn sẽ mang đến những [[Đặc biệt:Đóng góp/{{PAGENAME}}|đóng góp]] có giá trị cho quyển từ điển mở này. |- | colspan="6" style="padding-left: 130px"| [[Hình:Nuvola apps edu languages.svg|60px]] |- | colspan="6" style="padding-left: 30px"| Mời bạn [[Wiktionary:Trang thành viên|giới thiệu về bản thân]] tại trang [[Thành viên:{{PAGENAME}}]].<br>Khi thảo luận, bạn nhớ ký tên bằng cách dùng 4 dấu ngã <nowiki>~~~~</nowiki>!. |- | colspan="3" width="50%" style="padding-left: 30px"| <font color="red"><big> Bạn hãy nhớ các nguyên tắc</big></font><br> [[Hình:Nuvola apps important.svg|20px]] [[Từ điển|chỉ viết những gì thuộc từ điển]], <br> [[Hình:Nuvola apps digikam.png|20px]] không truyền lên hình ảnh thiếu nguồn gốc, <br> [[Hình:Red copyright.svg|20px]] [[Wiktionary:Quyền tác giả|không vi phạm quyền tác giả]]. | colspan="3" width="50%" style="padding-left: 30px"| <font color="green"><big>Đầu tiên bạn nên mạnh dạn</big></font> <br> [[Hình:Nuvola apps keyboard.png|20px]] [[Trợ giúp:Tìm kiếm|thử mọi liên kết mà bạn muốn]],<br> [[Hình:Nuvola apps kig.png|20px]] viết thử thoải mái [[Wiktionary:Chỗ thử|tại đây]],<br> [[Hình:Gnome-help.svg|20px]] [[Wiktionary:Bàn giúp đỡ|đề nghị giúp đỡ của bất cứ ai]]. |- |colspan="6" style="padding-left: 30px"| Những chỉ dẫn có ích: [[Wiktionary:Câu thường hỏi|các câu thường hỏi]], [[Wiktionary:Viết trang mới|cách viết mục từ mới]], [[Trợ giúp:Sửa đổi|soạn thảo mục từ]], và [[Trợ giúp:Mục lục|những hướng dẫn khác]].<br> '''Welcome''' to the Vietnamese Wiktionary, and thank you for registering! If you do not speak Vietnamese, feel free to use our [[Wiktionary:Guestbook for non-Vietnamese speakers|guestbook for non-Vietnamese speakers]].<br> ¡'''Bienvenido''' al Wikcionario vietnamita y gracias por registrarse! Si usted no habla vietnamita, puede utilizar nuestro [[Wiktionary:Guestbook for non-Vietnamese speakers|libro de visitas para los hablantes no vietnamitas]]. |- | colspan="6" style="border-top:2px solid #faecc8;" | Lời khuyên cuối cùng, bạn hãy làm lần lượt: [[Wiktionary:Chỗ thử|thử]], [[Wiktionary:Chào mừng người mới đến|đọc]], [[Wiktionary:Bàn giúp đỡ|hỏi]] rồi hẵng [[Wiktionary:Viết trang mới|viết]]. Chúc bạn thành công. |}&nbsp;[[Thành viên:Huỳnh Nhân-thập|'''<tt><span style="color:#4169e1;">Ios.</span></tt>''']] ([[Thảo luận Thành viên:Huỳnh Nhân-thập|thảo luận]]) 09:28, ngày 4 tháng 2 năm 2020 (UTC) == Thư mời == Mời bạn tham gia [[Thảo luận Wiktionary:Hành chính viên|BQ chọn hành chính viên]]. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 08:23, ngày 11 tháng 12 năm 2020 (UTC) == [[Mô đun:Unicode data]] == Chào bạn. Không biết khi nào bạn sửa xong nó nhỉ? Mong nhận được phản hồi của bạn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:25, ngày 13 tháng 7 năm 2021 (UTC) :{{u|Ccv2020}} Em cố gắng sửa lỗi bằng cách thêm mô đun còn thiếu nhưng có vẻ mã nguồn gốc bên en nó không tương thích bên đây nên bị lỗi hiện không biết sửa sao nữa, mong anh thông cảm, nhờ người khác ạ.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 05:06, ngày 14 tháng 7 năm 2021 (UTC) :{{u|Ccv2020}} Cái này sửa được nhưng thiếu nhiều mô đun quá. Nhờ anh chép hết [https://en.wiktionary.org/wiki/Special:PrefixIndex/Module:Unicode_data/ toàn bộ mô đun con này sang đây] thì may ra hết lỗi, do quá nhiều nên em chắc làm không nổi.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 05:15, ngày 14 tháng 7 năm 2021 (UTC) == [[Bản mẫu:character info]] == Chào bạn. Bản mẫu này có một lỗi: Khi nhúng vào các trang khác thì không dùng chuột để nhấn vào được. Bạn qua đây xem xét lỗi một chút, cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 14:25, ngày 18 tháng 7 năm 2021 (UTC) :À thôi, lỗi hết rồi. Xin lỗi vì đã làm phiền bạn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 14:31, ngày 18 tháng 7 năm 2021 (UTC) ::Xin lỗi vì đã làm phiền bạn một lần nữa. Hóa ra là tùy trình duyệt bạn à. Dùng Google Chrome không nhấn chuột để vào được. Bạn qua đây xem xét lỗi một chút, cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:17, ngày 19 tháng 7 năm 2021 (UTC) ::{{u|Ccv2020}} Cái này thật ra là lỗi của hệ thống Tab theo ngôn ngữ của Wiktionary tiếng Việt. Từ lâu chúng ta đã sử dụng hệ thống Tab trang theo ngôn ngữ, thực hiện chuyển đổi đề mục cấp 2 theo ngôn ngữ kiểu <pre>==Tiếng Việt==</pre> thành Tab "Việt" bên trái anh đã thấy, nhưng vấn đề là nó không hoạt động tốt, đặc biệt là những bản mẫu được đặt ngoài phạm vi nội dung Tab phân theo ngôn ngữ, vì thế khi đặt bên ngoài nó vẫn hiển thị nhưng không dùng được.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 03:30, ngày 19 tháng 7 năm 2021 (UTC) Em cũng không biết sửa sao, anh nên hỏi những người từ đầu thành lập hay lập trình Wiktionary tiếng Việt có lẽ sẽ có cách, hoặc không được thì chịu hoặc thực hiện '''cách mà em không muốn''': '''Gọi Meta đề xuất họ sao lưu dữ liệu bài viết và trang lại, sau đó cài lại Mediawiki như bên en rồi nhập dữ liệu vào'''.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 03:30, ngày 19 tháng 7 năm 2021 (UTC) :Hic… Thôi chắc tạm thời tắt tính năng “Tổ chức lại mỗi mục từ thành các thẻ theo ngôn ngữ” (mục Tiên ích) vậy. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 03:42, ngày 19 tháng 7 năm 2021 (UTC) ::Nên đề nghị tắt ba cái tab đi, rõ là thấy rườm rà, không có ích lợi gì. [[Thành viên:P.T.Đ|P.T.Đ]] ([[Thảo luận Thành viên:P.T.Đ|thảo luận]]) 17:40, ngày 19 tháng 7 năm 2021 (UTC) :::{{u|P.T.Đ}}: Tôi nghĩ là các tài khoản mới trong tương lai sẽ không bật sẵn tính năng tôi đã nêu trên. Muốn làm vậy thì phải qua đâu để nhờ các kỹ thuật viên làm vậy? [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:47, ngày 20 tháng 7 năm 2021 (UTC) ::@[[Thành viên:Ccv2020|Ccv2020]]: Các thông tin về ký tự không thuộc về ngôn ngữ nào nên được sắp xếp vào phần "Chữ x", thí dụ {{LKBM|-Hani-}} là "Chữ Hán". Đối với ký tự không thuộc về một hệ thống viết cụ thể thì có thể đưa vào phần {{LKBM|-mul-}} ("Đa ngôn ngữ"). – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 06:17, ngày 14 tháng 10 năm 2021 (UTC) == Về giao diện Wiktionary phiên bản di động == Chào bạn. Tôi thấy giao diện di động của Wiktionary có vấn đề: phần ví dụ tra cứu bị lỗi không tải được, chỉ hiện chữ “đang tải…” thôi. Mong bạn dành chút thời gian xem xét và sửa lỗi, cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:08, ngày 21 tháng 7 năm 2021 (UTC) :{{u|Ccv2020}} Không sửa lỗi được vì cái phần đó trên di động là phần tĩnh, không động được nên nó mới vậy. Em cũng đã làm xong [[Bản mẫu:Trang Chính 2]] rồi, bạn xem qua rồi có gì áp dụng luôn cũng được, coi như là '''viện trợ không cần hoàn vốn từ Trung tâm xây dựng Thienhau2003 tại Wikipedia tiếng Việt''' của em nhé.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 02:21, ngày 21 tháng 7 năm 2021 (UTC) <nowiki>:</nowiki>), OK bạn. Tôi sẽ xem xét giao diện này. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 02:38, ngày 21 tháng 7 năm 2021 (UTC) == [[;]] == Tôi không tạo được trang này vì nó có trong danh sách đen. Bên enwiki cũng bị lỗi. Làm thế nào đây bạn? Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 00:08, ngày 9 tháng 8 năm 2021 (UTC) :{{u|Ccv2020}} Cụm từ bị cấm, đây là một trong nhiều [https://helpex.vn/question/nhung-ky-tu-nao-bi-cam-trong-ten-thu-muc-windows-va-linux--5cb7dea2ae03f646703bf39d ký tự đặc biệt trong hệ thống Linux và Windows]. Nên không thể tạo được. Rất tiếc.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 09:20, ngày 2 tháng 9 năm 2021 (UTC) == [[𬖾]] == Chào bạn. Mục từ này dù đang chứa {{tl|cảnh báo Unicode}}, nhưng [[:Thể loại:Mục từ Unicode cần chú ý]] không chứa trang này. Phiền bạn qua đây xử lý một chút, cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 03:19, ngày 23 tháng 8 năm 2021 (UTC) :Thôi, mình chữa được lỗi rồi. Xin lỗi vì đã làm phiền bạn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 23:41, ngày 25 tháng 8 năm 2021 (UTC) == [[Mô đun:character info]] == Chào bạn. Bạn có thể dịch giúp mình dòng 119 ( cat_name = script_name .. " script characters") được không bạn? Mình sửa nhưng nó cứ báo lỗi. Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 07:55, ngày 24 tháng 9 năm 2021 (UTC) == Phụ lục:… == Lúc mình tạo ra những trang đó, mình mới phát hiện ra là Wiktionary tiếng Việt '''không''' có không gian tên “Phụ lục”. Có cách nào để yêu cầu thêm không gian tên này vào Wiktionary tiếng Việt không? Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 04:44, ngày 31 tháng 10 năm 2021 (UTC) :{{u|Ccv2020}} Cái này thì phải đề xuất lên https://phabricator.wikimedia.org/ để họ nhập không gian tên mới về. Nhưng nên tham khảo ý kiến các thành viên khác, đặc biệt là BQV, có đồng thuận rồi thì mới nên tiến hành.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 06:40, ngày 31 tháng 10 năm 2021 (UTC) ::Vậy thì bạn giúp mình được không? Sắp tới mình thi nên sẽ hạn chế hoạt động. Thân mến. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 09:37, ngày 31 tháng 10 năm 2021 (UTC) :::Cái này cần biểu quyết, đúng không nhỉ… [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 07:40, ngày 23 tháng 11 năm 2021 (UTC) == Lỗi == Chào bạn. Hiện có nhiều trang có lỗi ở mục "dịch", vd như trang [[dương cầm|này]]. Không biết bạn có thể khắc phục được không? --.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 00:16, ngày 10 tháng 11 năm 2021 (UTC) :{{u|TheHighFighter2}} Bó tay, bản mẫu ở đây quá lỗi thời nên sửa kiểu nào cũng "hết lỗi chỗ này thì lại lỗi chỗ khác".--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 03:41, ngày 10 tháng 11 năm 2021 (UTC) == BQV == Bạn muốn làm BQV ở đây không? Tôi nghĩ bạn phù hợp với vị trí đó. Bạn có thể ra ứng cử. Sau 1 tuần, nếu bạn có vài phiếu ok thì tôi sẽ cấp quyền BQV cho bạn. Làm BQV ở đây lấy kinh nghiệm. Sau này, ứng cử làm BQV ở Wikipedia dễ hơn. Chắc vài năm nữa khi bạn tốt nghiệp và có nhiều thời gian hơn. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 04:06, ngày 3 tháng 12 năm 2021 (UTC) :{{ping|Nguyentrongphu}} Mời cho ý kiến tại [[Thảo luận Wiktionary:Bảo quản viên#Kateru Zakuro]]--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 04:16, ngày 3 tháng 12 năm 2021 (UTC) :{{ping|Nguyentrongphu}} Em đã ra ứng cử và đã hơn 1 tuần rồi. Mong anh thực hiện đúng lời trên, cảm ơn.--[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 01:50, ngày 6 tháng 12 năm 2021 (UTC) == Tạo bản mẫu tính số mục từ Unicode == Chào bạn. Bạn có cách nào tạo ra bản mẫu tính số mục từ Unicode (những mục từ chỉ dùng 1 ký tự trên tiêu đề) không? Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 11:29, ngày 12 tháng 12 năm 2021 (UTC) == [[Thành viên:Ccv2020/Nháp MediaWiki 1]] == Nhờ bạn xóa trang này, cảm ơn bạn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 14:00, ngày 15 tháng 12 năm 2021 (UTC) == Thẻ ngôn ngữ == Tôi đang nghiên cứu về lỗi mà bạn [[Đặc biệt:Khác/2037419|đã đề cập đến]] khi tắt chức năng thẻ ngôn ngữ. Phần âm thanh không hiển thị trong mục từ nào? Tôi đã xem "[[dictionary]]" (sử dụng {{LKBM|pron-audio}}) và "[[ăn tết]]" ({{LKBM|âm thanh}}); hình như cả hai bản mẫu này vẫn hoạt động tốt khi bật chức năng thẻ. Có phải lỗi này tùy theo trình duyệt hay tiện ích khác không? Đây là chức năng quan trọng của Wiktionary vì phần nhiều người chỉ quan tâm đến một ngôn ngữ và bố trí mục từ mặc định có vẻ khó sử dụng. Tiện ích này phỏng theo [[:en:MediaWiki:Gadget-TabbedLanguages.js|tiện ích tại Wiktionary tiếng Anh]], nhưng [[:en:MediaWiki talk:Gadget-TabbedLanguages.js#Vietnamese version|tiện ích tiếng Việt có nhiều lợi điểm hơn]]. Mai mốt có lẽ [[mw:Reading/Web/Desktop Improvements/Third prototype testing/vi|Vectơ sẽ thu nhỏ các phần ngôn ngữ]] thì không cần tạo thẻ nữa, nhưng tiện ích này sẽ vẫn có ích vì gắn neo ngôn ngữ (<code>#Tiếng Anh</code>) vào các liên kết nội bộ. Nếu không có thì chúng ta phải mất công thêm ngôn ngữ thủ công dùng {{LKBM|l}}. &ndash;&nbsp;[[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 20:56, ngày 17 tháng 12 năm 2021 (UTC) :{{u|Mxn}} Có 2 lý do tắt: :* Mặc dù cái này có lợi nhưng vì đây là Wiki, tôi muốn giữ cho trang Wiki '''truyền thống giống như các trang bách khoa toàn thư''' chứ không phải là một trang web tra cứu mục từ. Hầu như không có Wiktionary nào bặt mặc định tính năng này cả. :* Nếu anh để ý, truy cập vào [[Wiktionary#Tiếng_Việt]] rồi sau đó chuyển lại sang tiếng Anh thì phần âm thanh không chạy được mà hiện một cái dải xám. Lỗi này có thể sửa được bằng cách load lại trang. Vì lỗi này không chỉ Wiktionary tiếng Việt mà cả bên Wiktionary tiếng Anh cũng bị lỗi nên lỗi này không quá nghiêm trọng. :*Tôi muốn hạn chế tải các thành phần không cần thiết để trang mục từ load nhanh và nhẹ hơn. --[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 05:53, ngày 18 tháng 12 năm 2021 (UTC) :<p>Điều quan trọng nhất là người dùng có thể tra cứu, sửa đổi nội dung một cách tiện lợi. Từ điển Wiktionary không có trang tra cứu mục từ thì làm sao gọi là từ điển được? Tôi chưa biết đến Wiktionary nào bố trí các mục từ "như các trang bách khoa toàn thư". Wiktionary cần chức năng quản lý các phần ngôn ngữ trong mục từ vì một mục từ có thể có ý nghĩa trong nhiều ngôn ngữ, chẳng hạn "[[voi]]", "[[pan]]", "[[la]]". Wikipedia không có nhu cầu này. :<p>Đúng là chỉ có Wiktionary tiếng Việt [[m:Gadgets/wiktionary/default|kích hoạt TabbedLanguages theo mặc định]]. (Wiktionary tiếng Ba Tư kích hoạt một phiên bản hỏng của TabbedLanguages theo mặc định.) Năm 2012, Wiktionary tiếng Anh [[:en:Wiktionary:Votes/2012-10/Enabling Tabbed Languages|quyết định kích hoạt TabbedLanguages]], nhưng quyết định này bị trì hoãn mãi vì một số vấn đề tôi đã khắc phục trong phiên bản tại đây. Dù TabbedLanguages không được kích hoạt tại Wiktionary khác, nhưng nhiều người vẫn tuyển chọn kích hoạt nó thủ công. Hiện tại nó [[m:Gadgets/wiktionary|xếp hạng thứ 7 theo người dùng]], không kể những người dùng tại wiki này hoặc người sử dụng script người dùng [[:en:User:Yair rand/TabbedLanguages2.js|TabbedLanguages2]]. Thống kê này có nghĩa rằng thẻ ngôn ngữ rất có ích đối với người đã biết đến tiện ích, chưa kể những người chưa biết đến nó. :<p>Tôi rất ngạc nhiên khi đọc rằng TabbedLanguages có ảnh hưởng đến thời gian tải trang. Đây là một tiện ích '''rất''' nhỏ so với các tiện ích khác, nhỏ hơn cả CommentsInLocalTime. Ngoài ra, [[mw:ResourceLoader|ResourceLoader]] tự động nén mã nguồn thành 5,7&nbsp;kilôbyte [https://vi.wiktionary.org/w/load.php?lang=vi&modules=ext.gadget.TabbedLanguages&skin=vector&version=4nlvy] (nhỏ bằng [[:Tập tin:Brockhaus and Efron Encyclopedic Dictionary b72 889-2.jpg|hình này]]), và trình duyệt tự động đưa mã nguồn vào vùng nhớ đệm. Còn thời gian kết xuất cũng không sao. Tôi đã thử xóa sạch vùng nhớ đệm và tải lại "[[voi]]" 10 lần trong trình duyệt của tôi (Firefox 95, macOS 10.13, MacBook Pro 2,6&nbsp;GHz năm 2013) với các tiện ích mặc định. Theo thẻ Hiệu suất của công cụ nhà phát triển Firefox, TabbedLanguages chỉ tốn trung bình vào khoảng 183&nbsp;mili&nbsp;giây trên tổng số 904&nbsp;mili&nbsp;giây để kết xuất trang. Phần lớn là do trình duyệt phải bố trí lại các phần tử DOM. Dĩ nhiên thời gian kết xuất tùy theo trình duyệt và máy tính, nhưng coi như không có vấn đề đáng kể. :<p>Tôi rất mừng bạn có cơ hội và ý định cải tiến và hiện đại hóa wiki này. Tôi chỉ xin bạn nhớ rằng wiki này có một số đặc tính khác cần kỹ thuật đặc biệt. Mai mốt Wiktionary sẽ [[:en:Wiktionary:Wikidata|sử dụng cơ sở dữ liệu Wikidata]] để lưu trữ các thông tin ngữ nghĩa. Wikidata sẽ đưa rất nhiều mục từ trong rất nhiều ngôn ngữ vào wiki này, chỉ việc nhúng một [https://en.wiktionary.beta.wmflabs.org/wiki/হৃদয় bản mẫu] [https://en.wiktionary.beta.wmflabs.org/wiki/cat đơn giản]. Với mô hình này, chúng ta sẽ phải nghĩ lại nhiều quy định và quá trình, không thể dựa vào kinh nghiệm Wikipedia như ngày xưa. :<p>&nbsp; – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 08:55, ngày 18 tháng 12 năm 2021 (UTC) :Lỗi tại [[Wiktionary#Tiếng Việt]] là lỗi của trình phát âm thanh Kaltura của phần mở rộng [[mw:TimedMediaHandler|TimedMediaHandler]]. Kaltura rất cũ kỹ. Nếu bạn kích hoạt "[[mw:Extension:TimedMediaHandler/VideoJS Player/vi|trình phát video mới]]" trong [[Đặc biệt:Tùy chọn#mw-prefsection-betafeatures|tùy chọn tính năng beta]], trình phát âm thanh sẽ hoạt động tốt trong các thẻ ngôn ngữ. – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 09:53, ngày 18 tháng 12 năm 2021 (UTC) == [[Đặc biệt:Lịch sử/やり方]] == Nhờ bạn xoá tóm lược của IP trong phiên bản đầu tiên của trang. Cảm ơn bạn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 03:58, ngày 27 tháng 12 năm 2021 (UTC) == [[⠧]] == Chào bạn. Có lỗi ở 3 bản mẫu: {{tl|-ara-}}, {{tl|-zho-}}, {{tl|-tha-}}. Bạn xem có vấn đề gì và chữa lại giúp. Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 13:13, ngày 27 tháng 12 năm 2021 (UTC) == How we will see unregistered users == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin=content/> Hi! You get this message because you are an admin on a Wikimedia wiki. When someone edits a Wikimedia wiki without being logged in today, we show their IP address. As you may already know, we will not be able to do this in the future. This is a decision by the Wikimedia Foundation Legal department, because norms and regulations for privacy online have changed. Instead of the IP we will show a masked identity. You as an admin '''will still be able to access the IP'''. There will also be a new user right for those who need to see the full IPs of unregistered users to fight vandalism, harassment and spam without being admins. Patrollers will also see part of the IP even without this user right. We are also working on [[m:IP Editing: Privacy Enhancement and Abuse Mitigation/Improving tools|better tools]] to help. If you have not seen it before, you can [[m:IP Editing: Privacy Enhancement and Abuse Mitigation|read more on Meta]]. If you want to make sure you don’t miss technical changes on the Wikimedia wikis, you can [[m:Global message delivery/Targets/Tech ambassadors|subscribe]] to [[m:Tech/News|the weekly technical newsletter]]. We have [[m:IP Editing: Privacy Enhancement and Abuse Mitigation#IP Masking Implementation Approaches (FAQ)|two suggested ways]] this identity could work. '''We would appreciate your feedback''' on which way you think would work best for you and your wiki, now and in the future. You can [[m:Talk:IP Editing: Privacy Enhancement and Abuse Mitigation|let us know on the talk page]]. You can write in your language. The suggestions were posted in October and we will decide after 17 January. Thank you. /[[m:User:Johan (WMF)|Johan (WMF)]]<section end=content/> </div> 18:20, ngày 4 tháng 1 năm 2022 (UTC) <!-- Tin nhắn của Thành viên:Johan (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Target_lists/Admins2022(8)&oldid=22532697 --> == [[MediaWiki:Wiktionary-usage]] == Chào bạn, nhờ bạn sửa trang đó thành “Ghi chú sử dụng”. “Cách dùng” chỉ cho biết từ/ký tự được sử dụng làm gì, còn “Ghi chú sử dụng” mang tính tổng quát hơn: nó còn cho biết ký tự này xuất hiện nhiều hay ít, phổ biến hay không phổ biến,… Cảm ơn bạn. [[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 09:18, ngày 14 tháng 1 năm 2022 (UTC) == Gỡ thông báo đầu trang và logo Tết cho Wiktionary tiếng Việt năm 2022 == Chào bạn. Cuộc thi “Thiết kế logo Tết cho Wiktionary tiếng Việt năm 2022” đã kết thúc, nhờ bạn gỡ xuống thông báo đầu trang. Và theo như kết quả của cuộc thi, nhờ bạn thay logo trên Wiktionary tiếng Việt thành logo Tết. Xin cảm ơn. [[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 07:07, ngày 21 tháng 1 năm 2022 (UTC) == Lỗi mô đun == Chào bạn, không biết lỗi ở mô đun thống kê Wiktionary thì sửa như nào nhỉ? – [[Thành viên:Russian Federal Subjects|<span style="color:black ;font:16px Calibri;">'''''RFS'''''</span>]]<sup>[[Thảo luận Thành viên:Russian Federal Subjects|<span style="color:gray ;font:12px Arial;">Talk to me!</span>]]</sup> 07:08, ngày 15 tháng 2 năm 2022 (UTC) :Cái này do 3 mục từ sau, trừ sco bạn không tạo thể loại mục từ nên nó lỗi. Mặc dù đã tạo nhưng mô đun vẫn chưa nhận ra thể loại, không hiểu tại sao. – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 07:23, ngày 15 tháng 2 năm 2022 (UTC) == Thư mời tham gia biểu quyết == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[File:Logo vote.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Thảo luận Wiktionary:Bảo quản viên|Biểu quyết bảo quản viên]] của '''[[Thành viên:Ccv2020]]''' tại '''[[Thảo_luận_Wiktionary:Bảo_quản_viên#Ccv2020|đây]]'''. <small>Hãy cùng tích cực tham gia các biểu quyết và thảo luận về chúng. Mỗi hành động của bạn sẽ góp phần không nhỏ để xây dựng các mục từ trên Wiktionary - tài sản chung của cộng đồng chúng ta, giúp wiki ta ngày càng phát triển vững mạnh! Thân ái!</small> |}[[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 00:53, ngày 23 tháng 2 năm 2022 (UTC) == Thẻ ngôn ngữ == Bạn giúp mình bao hết viền của thẻ tab ngôn ngữ lại với. Chỉ mỗi phần nội dung được bao viền, còn thẻ tab thì không, trông hơi kì :) – [[Thành viên:Đức Anh|Đức Anh]] ([[Thảo luận Thành viên:Đức Anh|thảo luận]]) 11:31, ngày 13 tháng 7 năm 2022 (UTC) :Cái này bạn hỏi Mxn nhé, do cái tab ngôn ngữ do bạn này cập nhật theo OOUI của Mediawiki nên nó như vậy – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 06:00, ngày 14 tháng 7 năm 2022 (UTC) == [[Mô đun:headword]] == Nhờ bạn giúp sửa tên thể loại ở mô đun trên (dòng 666): "palindromok" thành "Mục từ tiếng ... viết xuôi ngược đều giống nhau". Xin cảm ơn--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 09:21, ngày 18 tháng 8 năm 2022 (UTC) : Chào bạn. Nó vẫn còn vấn đề ở thể loại trang [[stats|này]]. Nhờ bạn giải quyết giúp, xin cảm ơn--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 02:38, ngày 22 tháng 8 năm 2022 (UTC) == [[:Thể loại:Chờ xóa]] == Hi, could you please take a look at the deletion requests in the category above? – '''[[User:Rschen7754|Rs]][[User talk:Rschen7754|chen]][[Special:Contributions/Rschen7754|7754]]''' 00:44, ngày 2 tháng 10 năm 2022 (UTC) :My apologies, appears to be done. --'''[[User:Rschen7754|Rs]][[User talk:Rschen7754|chen]][[Special:Contributions/Rschen7754|7754]]''' 22:57, ngày 2 tháng 10 năm 2022 (UTC) == Lỗi == Hiện có nhiều trang bị lỗi ở phần "dịch", như ở mục từ ''[[yêu dấu]]'', nhờ bạn xem qua và giải quyết giùm--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 09:50, ngày 22 tháng 12 năm 2022 (UTC) == Nhờ tạo trang == Nhờ bạn tạo hộ tôi trang [[:en:MediaWiki:Gadget-defaultVisibilityToggles.js]]. Xim cảm ơn--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 09:56, ngày 13 tháng 3 năm 2023 (UTC) :Em đang thắc mắc là bên mình dùng Navbox từ Wikipedia tiếng Anh thì sao dùng được cái này, nó cũng là navbox nhưng mà bên tiếng Anh nó là dạng Navbox cũ từ dùng tại Wikipedia tiếng Việt trước đây, cài cái này vào có bị xung đột không nhỉ? – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 16:36, ngày 14 tháng 3 năm 2023 (UTC) ::Vậy thì thôi vậy. Xin lỗi đã làm phiền bạn--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 00:55, ngày 15 tháng 3 năm 2023 (UTC) == Về bản cập nhật có lỗi trên dự án == Lỗi trong dự án ở đây là: * Ở trình duyệt trên điện thoại bỗng dưng hiển thị thanh ghi các phím lần lượt là VNI, VIQR, VIQR* với cả Bỏ dấu kiểu cũ,... trông rất khó nhìn, chèn vào nút ba chấm nên rất khó để xem được thông tin mục từ/trang. * Mọi nội dung trong mục từ đều bị ẩn, chỉ hiện mỗi thể loại. {{ping|Kateru Zakuro}} Anh có thể xem và vá lỗi này có được không vậy? – [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 15:06, ngày 30 tháng 6 năm 2023 (UTC) Thành viên này có hoạt động gần nhất là vào [https://guc.toolforge.org/?by=date&user=Kateru+Zakuro ngày 21/06], chắc không thể phản hồi sớm. Nên xin phép nhờ anh {{ping|Mxn}} vào giải quyết lỗi trên--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 16:34, ngày 1 tháng 7 năm 2023 (UTC) == Need your input on a policy impacting gadgets and UserJS == <div lang="en" dir="ltr" class="mw-content-ltr"> Dear interface administrator, This is Samuel from the Security team and I hope my message finds you well. There is an [[m:Talk:Third-party resources policy|ongoing discussion]] on a proposed policy governing the use of external resources in gadgets and UserJS. The proposed [[m:Special:MyLanguage/Third-party resources policy|Third-party resources policy]] aims at making the UserJS and Gadgets landscape a bit safer by encouraging best practices around external resources. After an initial non-public conversation with a small number of interface admins and staff, we've launched a much larger, public consultation to get a wider pool of feedback for improving the policy proposal. Based on the ideas received so far, the proposed policy now includes some of the risks related to user scripts and gadgets loading third-party resources, best practices for gadgets and UserJS developers, and exemptions requirements such as code transparency and inspectability. As an interface administrator, your feedback and suggestions are warmly welcome until July 17, 2023 on the [[m:Talk:Third-party resources policy|policy talk page]]. Have a great day!</div> <bdi lang="en" dir="ltr">[[m:User:Samuel (WMF)|Samuel (WMF)]], on behalf of the Foundation's Security team</bdi> 12:08, ngày 10 tháng 7 năm 2023 (UTC) <!-- Tin nhắn của Thành viên:Samuel (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Samuel_(WMF)/IAdmins_MassMessage_list_2&oldid=25272792 --> == Thư mời == Mời bạn cho đôi lời nhận xét tại [[Thảo luận Wiktionary:Bảo quản viên#P. %C4%90%C4%82NG|Biểu quyết chọn bảo quản viên]]. Xin hết lòng cảm ơn rất nhiều. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 07:02, ngày 24 tháng 8 năm 2023 (UTC) == Thư mời tham gia biểu quyết == <div style="padding: 0.5em; background: #f8f8ff; margin-top: 1em; font-size: 1em"> {| class="table" style="width: 80%; background-color: #ACE1AF; border: 1px solid #fceb92; margin: auto; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:Logo vote.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | '''Mời bạn cho ý kiến về việc cấp quyền Bảo quản viên cho thành viên [[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] tại trang [[Thảo luận Wiktionary:Bảo quản viên#DefenderTienMinh07|Thảo luận Wiktionary:Bảo quản viên]]. Xin cảm ơn. <small>Hãy cùng tích cực tham gia các biểu quyết và thảo luận về chúng. Mỗi hành động của bạn sẽ góp phần không nhỏ để xây dựng các mục từ trên Wiktionary - tài sản chung của cộng đồng chúng ta, giúp wiki ta ngày càng phát triển vững mạnh! Thân ái! |} </div> [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 10:25, ngày 24 tháng 8 năm 2023 (UTC) == Thư mời == Chào bạn! Mời bạn cho ý kiến tại [[Thảo_luận_Wiktionary:Bảo_quản_viên#Nguyên_Hưng_Trần|Biểu quyết chọn bảo quản viên]]. Thanks bạn! [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 17:33, ngày 30 tháng 12 năm 2023 (UTC) == Bản mẫu:Pp == Hiện bản mẫu đang gặp vấn đề sau khi nâng cấp (Ví dụ: [[Wiktionary:Nguồn gốc/WinVNKey/Lê Sơn Thanh]]) – [[Thành viên:Đơn giản là tôi|Đơn giản là tôi]] ([[Thảo luận Thành viên:Đơn giản là tôi|thảo luận]]) 08:35, ngày 24 tháng 8 năm 2025 (UTC) == Danh sách thông báo rộng rãi == Tôi đã tạo danh sách thông báo gửi thư rộng rãi này đến các tv tại [[Wiktionary:Danh sách thư]]. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 09:51, ngày 1 tháng 9 năm 2025 (UTC) == Lỗi == Xin chào, hôm nay mình có bê [[Bản mẫu:Trang Chính 3/Khung]] về Wikivoyage tại [[voy:vi:Bản mẫu:Trang Chính/Khung|đây]]. Nhưng không hiểu sao một số văn bản có màu ở [[voy:vi:Bản mẫu:Tin tức]] như "Tuần lễ vàng" và "Nhiều thành phố tại Indonesia đã xảy ra biểu tình phản đối chính phủ nay đã leo thang thành bạo loạn", mặc dù ở bản mẫu Tin tức nó vẫn hiện màu bình thường nhưng khi nhúng vào bản mẫu Trang Chính/Khung ở trên Trang Chính thì nó lại không có màu vậy nhỉ? Không biết là bạn có biết nguyên nhân của lỗi này là gì không? – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 15:24, ngày 4 tháng 9 năm 2025 (UTC) :Có màu mà bác, không biết bác có bặt cái gì không chứ em thấy có màu mà. Bác thử Shift+Nút làm mới trên trình duyệt xem sao. – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 22:03, ngày 4 tháng 9 năm 2025 (UTC) ::Hmm thế vậy chắc là do trình duyệt trên điện thoại. Mới thử trên máy tính thì không thấy có lỗi này. – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 23:21, ngày 4 tháng 9 năm 2025 (UTC) : À, thì ra là do tôi bật chế độ tối mặc định của Vector 2022 nên mới không có màu. Không biết sao nó lại bị vậy nhỉ? [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 15:32, ngày 9 tháng 9 năm 2025 (UTC) ::Chắc là do CSS của Wikivoyage, bác thử kiểm tra các trang CSS và JS toàn website và Vector 2022 xem có đoạn CSS hay JS nào định kiểu url no color không? – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 15:34, ngày 9 tháng 9 năm 2025 (UTC) ::: @[[Thành viên:Nvdtn19|Nvdtn19]] Tôi có vào Wikivoyage nhưng font chữ nó khác so với các dự án khác. Font chữ hiện tại nó [[:ku:Destpêk|giống]] với phiên bản Wiktionary tiếng Kurd. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 15:41, ngày 9 tháng 9 năm 2025 (UTC) :::: Font hiện tại đang hơi khó nhìn với lại tôi cũng không thích nó cho lắm nên mới đổi thành Segoe UI (mặc định của Microsoft). Cũng hơi kỳ lạ là ở [[voy:vi:Thành viên:Nvdtn19/nháp1]] rõ ràng vẫn đang hiện màu bình thường ở chế độ tối nhưng ở Trang Chính thì lại không hiện, không rõ lỗi này từ đâu nữa. [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 15:48, ngày 9 tháng 9 năm 2025 (UTC) ::::Bác kiểm tra [[MediaWiki:Common.css]] và [[MediaWiki:Vector.css]], em đang thấy trong này có một số mã thay đổi css khá nhiều, 2 trang này ảnh hưởng toàn trang nên bác nên kiểm tra trước 2 trang này xóa mấy css có thể gây lỗi đi. Em đang thấy có đoạn này ::::<code> ::::body { :::: /* generally a sans-serif font should be here */ :::: font-family: system-ui, "Segoe UI", 'Iranian Sans', 'Noto Sans Arabic', 'DejaVu Sans', sans-serif; ::::} ::::.mw-body h1, .mw-body h2, .mw-body #firstHeading, ::::.mw-body .mw-editsection, .mw-body .mw-editsection-like, ::::.mw-body #toc h2, .mw-body .toc h2, ::::#documentation-meta-data, .vector-sticky-header-context-bar-primary { :::: /* MediaWiki (e.g. English Wikipedia) uses a serif font for titles in contrast to a sans-serif font for body so :::: * we need also to use a serif font here, as Arial isn't an option let's have Calibri in the chain, :::: * it also resolves the issue of missed dots on some letters as can be seen in :::: * .... */ :::: font-family: Calibri, system-ui, "Segoe UI", 'Iranian Serif', 'Noto Sans Arabic', 'Iranian Sans', 'DejaVu Sans', serif; ::::} ::::</code> ::::có vẻ đang thay đổi font giao diện, bác là admin nên xóa đi. – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 15:50, ngày 9 tháng 9 năm 2025 (UTC) ::::: Kể cả xoá cái mã đó đi thì cũng có fix được cái màu đâu nhỉ? Code này là để đổi font, mà vấn đề màu đã xảy ra trước khi add cái mã đó rồi. [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 16:01, ngày 9 tháng 9 năm 2025 (UTC) ::::::Trường hợp này khả năng là lỗi khi chuyển đổi giao diện sáng sang tối, không tương thích với mediawiki. Em có test cả PC và Mobile thì không thấy lỗi đâu nên bác nên kiểm tra lại điện thoại và máy tính, vì lỗi chỉ xuất hiện bên bác nên giờ em rất khó nói là nên xử lý thế nào. – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 16:29, ngày 9 tháng 9 năm 2025 (UTC) Nhờ bạn cấm giúp rối đang phá hoại, xem [[Đặc biệt:Thay đổi gần đây]] để biết thêm. – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 02:27, ngày 12 tháng 9 năm 2025 (UTC) :Cấm vô hạn và thu hồi luôn quyền sửa trang thảo luận vì đây là LTA. – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 02:28, ngày 12 tháng 9 năm 2025 (UTC) ::Đã cấm vô hạn – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 02:29, ngày 12 tháng 9 năm 2025 (UTC) ::Mà LTA là ai nhỉ, dạo này ít qua bên Wikipedia nên không để ý, với lại trên này ít người tham gia. – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 02:32, ngày 12 tháng 9 năm 2025 (UTC) ::Mà LTA là ai nhỉ, dạo này ít qua bên Wikipedia nên không để ý, với lại trên này ít người tham gia. – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 02:32, ngày 12 tháng 9 năm 2025 (UTC) :::Bạn có thể qua đọc [[w:vi:Wikipedia:Tin nhắn cho bảo quản viên/Lưu 2025 8#Báo cáo phá hoại 84]] để biết thêm. – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 05:20, ngày 12 tháng 9 năm 2025 (UTC) == [[Mô đun:parameters/lite]] == Phiền bạn xóa mô đun này vì lỗi thời và không còn sử dụng bất kỳ trang nào. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 03:43, ngày 12 tháng 9 năm 2025 (UTC) == Nhờ == Theo [[m:Tech/News/2022/02]] thì việc ẩn tiêu đề Trang Chính giờ đây chỉ cần tạo [[MediaWiki:Mainpage-title]] và [[MediaWiki:Mainpage-title-loggedin]] chứ cũng không cần phụ thuộc vào CSS nữa. Hiện tại trên giao diện Minerva thì tiêu đề Trang Chính vẫn đang hiển thị khi chưa đăng nhập. Vì bạn là BQVGD ở đây nên nhờ bạn tạo hai giúp trang này. Chỉ cần tạo trang trống là được, không có dấu - [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 11:28, ngày 1 tháng 10 năm 2025 (UTC) :@[[Thành viên:Kateru Zakuro|Kateru Zakuro]]: Yummie lại sang đây rồi kìa bác. – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 11:50, ngày 25 tháng 10 năm 2025 (UTC) ::Đã xử lý – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 11:55, ngày 25 tháng 10 năm 2025 (UTC) : @[[Thành viên:Kateru Zakuro|Kateru Zakuro]] Nhờ bạn gỡ bỏ khóa trang [[ním]] chỉ vì có bút chiến vài lần trong quá khứ mà bán khóa vô hạn thì vô lý quá. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 12:03, ngày 25 tháng 10 năm 2025 (UTC) == Question of section templates == Hi, I saw your bot recently changed some section templates to use <nowiki><h3></nowiki> HTML tags, for example [[Bản mẫu:-noun-]] and [[Bản mẫu:-pron-]]. This causes problem when parsing pages and also inconsistent with the [[Wiktionary:Sơ đồ mục từ|layout document]]. Could you revert these edits to use <nowiki>===</nowiki> wikitext? – [[Thành viên:Public class|Public class]] ([[Thảo luận Thành viên:Public class|thảo luận]]) 06:26, ngày 17 tháng 11 năm 2025 (UTC) :@[[Thành viên:Public class|Public class]] Those templates were used for entries in the old format, before I updated the entry map in 2025, Vietnamese Wiktionary used such templates for titles, like the current Dutch Wiktionary. But to make editing entries easier and compatible with the entry structure in English Wiktionary, the rule was changed to use the === heading, and the old format templates were changed to HTML code h2 h3, to hide the edit button next to the heading, to avoid members accidentally editing the template. I intended to use CSS to hide the edit button, but after trying many ways, there is no way to hide the edit button for these templates, so I switched to HTML code. I wonder if there is a way? – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 07:43, ngày 17 tháng 11 năm 2025 (UTC) ::<nowiki>__NOEDITSECTION__</nowiki> magic word could be used. But it's also fine to use HTML tags, I already solved my problem by overriding the templates. – [[Thành viên:Public class|Public class]] ([[Thảo luận Thành viên:Public class|thảo luận]]) 07:58, ngày 17 tháng 11 năm 2025 (UTC) == Không thể thêm mục. == Xin chào, mình đang muốn thêm phần khái niệm của từ nắc trong tiếng Việt. Tuy nhiên mình đã bị chặn bởi bộ lọc số 10 liên quan tới Yuumi gì đấy. Làm sao để mình có thể đăng bài mà không bị chặn. --[[Thành viên:Tucute515|Tucute515]] ([[Thảo luận Thành viên:Tucute515|thảo luận]]) 11:22, ngày 22 tháng 11 năm 2025 (UTC) :Mình đã tắt bộ lọc để xem thử bạn bị cấm từ gì, vì bộ lọc này có tác động khá mạnh. Bây giờ bạn thêm được rồi đó – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 12:44, ngày 22 tháng 11 năm 2025 (UTC) == Mô đun cây thể loại == Theo tôi nghĩ đã đến lúc phải bán khoá toàn bộ các mô đun cây thể loại (category tree) vô hạn vì hầu hết các mô đun này đều ảnh hưởng lẫn nhau và chỉ cần có một vấn đề nhỏ thôi thì tất cả các thể loại dùng với auto cat đều lỗi hàng loạt. Không biết ý kiến của bạn như thế nào về đề xuất này? – [[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:41, ngày 30 tháng 11 năm 2025 (UTC) :@[[Thành viên:Hiyuune|Hiyuune]] Mô đun này hiện tại đang được sử dụng tương đối nhiều, với [https://linkcount.toolforge.org/index.php?project=vi.wiktionary.org&page=M%C3%B4_%C4%91un:category_tree 8,917 trang] nhúng thì có lẽ là đủ điều kiện để khóa rồi, bên Wiktionary tiếng Anh thì mô đun trên 1000 trang đã khóa rồi. Ở đây thì ít, để đảm bảo mọi người đều có thể cập nhật dữ liệu mô đun, chỉ nên khóa đối với các mô đun và bản mẫu có trên 2.500-5.000 trang nhúng như Wikipedia tiếng Anh là phù hợp. Giờ khóa cũng dễ mà, Twinkle một phát là xong. Mình thì đồng ý với đề xuất này, nhưng để mình hỏi thêm @[[Thành viên:TheHighFighter2|TheHighFighter2]], @[[Thành viên:Higashizakura|Higashizakura]] và @[[Thành viên:WhoAlone|WhoAlone]], không biết 3 bạn có đồng ý đề nghị này không?--[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 15:13, ngày 30 tháng 11 năm 2025 (UTC) ::Tôi thì ok theo đề xuất bạn Hiyuune --.--[[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]]) 06:53, ngày 1 tháng 12 năm 2025 (UTC) : Bổ sung mô đun cần khóa: [[Mô đun:array]]. [[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:14, ngày 4 tháng 12 năm 2025 (UTC) == Lỗi == Nhờ bạn xem qua mục từ [[アトゥインネ]], không hiểu vì sao [[Module:dialect synonyms/ain/アッコッカムイ]] bị lỗi chỗ nào tôi không biết sửa đượ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>]] 08:27, ngày 4 tháng 12 năm 2025 (UTC) :@[[Thành viên:Hiyuune|Hiyuune]] Không nhận diện được mã ngôn ngữ, cái này phải cập nhật lại module. Vì [[ Module:dialect synonyms]] này nó dùng nhiều mô đun khác, khả năng tìm ra lỗi hơi khó. Em sẽ cố gắng, nhưng nếu không được thì khả năng bác phải hỏi AI. – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 13:06, ngày 4 tháng 12 năm 2025 (UTC) ::Đề mục lại có vấn đề rồi. Phiền bạn xem lại chứ nhìn vào rối mắt lắm. – [[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>]] 12:36, ngày 6 tháng 12 năm 2025 (UTC) :::@[[Thành viên:Hiyuune|Hiyuune]] Đề mục nào bạn ơi, mình thấy vẫn ổn mà? Bạn có thể dẫn chứng mục từ nào không? – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 13:45, ngày 6 tháng 12 năm 2025 (UTC) ::::Mục từ [[アトゥインネ|này]], khi hiển thị trên mobile nó có vấn đề. – [[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>]] 13:47, ngày 6 tháng 12 năm 2025 (UTC) :::::Em thấy không có gì bất thường cả, riêng mô đun thì lỗi rồi cái này em bó tay, khả năng có liên quan đến mô đun tiếng Nhật nên nó lỗi, chứ mô đun dialect synonyms trên mục từ khác vẫn được mà tiếng Ainu lại lỗi thì chỉ có thể là do tiếng Nhật thôi. Không biết cụ thể nó bị lỗi gì, bác nói rõ được không, nếu có thể bác chụp ảnh lại gửi url lên đây thử, dùng imgbb. – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 13:52, ngày 6 tháng 12 năm 2025 (UTC) ::::::Xem [https://ibb.co/mVvWK2MM ở đây]. – [[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:08, ngày 6 tháng 12 năm 2025 (UTC) :::::::Em đã lùi lại bản mẫu, bác F5 hoặc làm mới lại trang thử, hoặc đăng xuất, xóa hết cache, lịch sử trình duyệt xem sao. Em không bị lỗi này nên không rõ lỗi của bác từ đâu ra. – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 15:43, ngày 6 tháng 12 năm 2025 (UTC) : Phiền bạn xóa [[Mô đun:is-noun/style.css]], [[Mô đun:eo-conj/style.css]] vì nó không còn liên kết bất kì trang nào và lỗi thời. [[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>]] 16:26, ngày 11 tháng 12 năm 2025 (UTC) : Tôi mới cập nhật lại theo phiên bản mới thì nó hết lỗi, có điều nó vẫn có cảnh báo. [[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>]]) 15:08, ngày 3 tháng 2 năm 2026 (UTC) == Yummie == Bác nên xem xét điều chỉnh lại cái bộ lọc này. Tôi thấy hơi có nhiều false positive khi xem trong [[Đặc biệt:Nhật trình sai phạm]]. Có thể điều chỉnh để những người có quyền autoconfirmed không bị ảnh hưởng. [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 07:15, ngày 6 tháng 12 năm 2025 (UTC) :Nó chỉ kích hoạt nếu tài khoản dưới 25 sửa đổi, cho nên nếu bị false thì khả năng chắc ít sửa đổi quá, em thấy bộ lọc này ít ảnh hưởng mà bác. – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 10:34, ngày 6 tháng 12 năm 2025 (UTC) : Rối này lại tiếp tục phá hoại ở không gian tên thể loại, tag biển xóa nhanh bừa bãi. [[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>]] 04:22, ngày 10 tháng 12 năm 2025 (UTC) == Cấm == Tài khoản [[Đặc_biệt:Đóng_góp/LamMaurisso|này]] đã ngừng hoạt động từ năm 2022 và các sửa đổi phá hoại đã lâu. Theo quy định, cấm để ngăn chặn phá hoại, không phải trừng phạt. Mời bạn bỏ cấm thành viên này. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 09:02, ngày 7 tháng 12 năm 2025 (UTC) ==Happy Holidays== <div style="border-style:solid; border-color:violet; background-color:#fff; border-width:2px; text-align:left; padding:8px;" class="plainlinks"> {| style="border: 5px dotted #H1790; background-color: #DDDDDD; padding:4px" | rowspan="2" valign="left" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Christmas Tree 2011-12-24.jpg|left|300px|link=]]<span style="display:block;padding-top:10px;clear:both"> | <span style="font-family: Georgia; font-size: 98%; color: #190a89;">Chúc bạn Kateru Zakuro có một mùa '''Giáng sinh''' an lành, ấm áp và tràn ngập yêu thương bên gia đình!<br/> Bước sang '''năm mới''' 2026, chúc bạn gặp nhiều may mắn,<br/> gặt hái được nhiều thành công trong công việc và học tập.<br/> Một lần nữa chúc bạn sẽ có một năm mới thật an khang, hạnh phúc và vạn sự như ý!!</span> <br /> <span style="font-family: Georgia; font-size: 92%;"> | rowspan="2" valign="right" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Atlantic Firework Festival 2016 (53368638571).jpg|left|360px|link=]]<span style="display:block;padding-top:10px;clear:both"> |}</div> Lời chúc chân thành từ: <span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px">&nbsp;[[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]&#124;[[User talk:Kelly zhrm|&#248;]]&nbsp;</span>&nbsp; 05:40, ngày 24 tháng 12 năm 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:17, ngày 28 tháng 4 năm 2026 (UTC) </div> <!-- 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=User:Keegan_(WMF)/test&oldid=30472541 --> == [[Mô đun:headword]] == Mô đun này bạn cập nhật xong nhưng nó lỗi chỗ khác, ví dụ như mục từ [[नियंत्रण]]. Lỗi: Mô_đun:table/extend tại dòng 12: attempt to index local 'list' (a nil value) (lỗi xuất phát từ mô đun trê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>]]) 13:46, ngày 6 tháng 5 năm 2026 (UTC) :Từ khi nào mà head nó không cập nhật được từ chữ thường nhỉ, bên tiếng Anh thì được – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 14:49, ngày 6 tháng 5 năm 2026 (UTC) gevy1n2xa9mnhjxgcprebolaom9h868 Thảo luận Thành viên:TheHighFighter2 3 257807 2351190 2350457 2026-05-07T16:45:19Z MediaWiki message delivery 19980 Mục mới: /* Thư mời cho đề nghị cấp quyền bot */ 2351190 wikitext text/x-wiki == Chào == Bạn có phải HighFighter mà bị quên mật khẩu không? [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 04:11, ngày 14 tháng 11 năm 2020 (UTC) Đúng vậy, thưa bạn.[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) == BQV == Mời bạn vô [[Thảo luận Wiktionary:Bảo quản viên]] để chấp nhận lời đề cử. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 09:44, ngày 1 tháng 12 năm 2020 (UTC) == Thư mời == Mời bạn tham gia [[Thảo luận Wiktionary:Hành chính viên|BQ chọn hành chính viên]]. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 08:21, ngày 11 tháng 12 năm 2020 (UTC) == Bảo quản viên == Cám ơn sự kiên nhẫn của bạn, bạn hiện là một bảo quản viên tại đây! Mong bạn tiếp tục phát triển dự án này. Nếu có thể, xin bạn tự giới thiệu trong [[Thành viên:‎TheHighFighter2|trang cá nhân]]. &ndash;&nbsp;[[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 19:55, ngày 19 tháng 12 năm 2020 (UTC) :Chúc mừng bạn đã trở thành BQV mới của dự án. Mong bạn dành ra ít phút mỗi ngày để theo dõi trang "Thay đổi gần đây". Nếu có trang nào viết linh tinh thì bạn có thể xóa chúng. Nếu có sửa đổi nào linh tinh thì bạn có thể lùi sửa chúng. Xin cảm ơn bạn! [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 20:02, ngày 19 tháng 12 năm 2020 (UTC) == Xóa trang thành viên == Xin chào! Việc bạn xóa trang thành viên Hứa Ngọc Sơn, tuy xóa thì không có ảnh hưởng xấu đến Wikitionary nhưng việc tạo trang thành viên dường như không có gì sai. Đặc biệt là trang thành viên thì có thể ghi bất cứ thông tin cá nhân nào, miễn không vi phạm nguyên tắc là được. [[Thành viên:Đức Anh|Đức Anh]] ([[Thảo luận Thành viên:Đức Anh|thảo luận]]) 12:04, ngày 31 tháng 12 năm 2020 (UTC) : [[Thành viên:Đức Anh|Đức Anh]] Tôi đã phục hồi lại trang đó.[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) == Chào bác == Bác đính kèm link đến trang dũng cảm giúp [[Thành viên:Nghia12072002|Nghia12072002]] ([[Thảo luận Thành viên:Nghia12072002|thảo luận]]) 05:52, ngày 5 tháng 1 năm 2021 (UTC) == IP phá hoại == [https://vi.wiktionary.org/wiki/%C4%90%E1%BA%B7c_bi%E1%BB%87t:%C4%90%C3%B3ng_g%C3%B3p/1.54.201.226 IP này] tạo nhiều trang sai nghĩa và sai ngôn ngữ. Bạn nên xóa chúng nếu bắt gặp. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 20:14, ngày 8 tháng 1 năm 2021 (UTC) == Bị cấm tôi trên Wikipedia tiếng Việt == Help me. Tôi bị cấm bị treo IP do thằng Alphama bị cấm trên Wikipedia tiếng Việt [https://vi.wikipedia.org/w/index.php?title=%C4%90%E1%BA%B7c_bi%E1%BB%87t:Danh_s%C3%A1ch_c%E1%BA%A5m&wpTarget=%2397813 xem nè]. Bạn cần hỏi Alphama để giảm thời gian cấm đi. [[Thành viên:HaThanhPhuoc|HaThanhPhuoc]] ([[Thảo luận Thành viên:HaThanhPhuoc|thảo luận]]) 07:58, ngày 21 tháng 5 năm 2021 (UTC) :Xin lỗi tôi không giúp được bạn, bạn nên thảo luận trực tiếp với Alphama.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 09:53, ngày 21 tháng 5 năm 2021 (UTC) == Chào == Xin chào bạn. Hình như bạn hoạt động rất tích cực ở đây đúng không? Nhờ bạn xem thử trang [[:en:Module:Unicode data]], xem có nhập về bên mình được không. Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 06:16, ngày 8 tháng 7 năm 2021 (UTC) {{ping|Ccv2020}} Dự án này chỉ còn mình tôi hoạt động tích cực thôi. Mấy cái mô đun, bản mẫu thì tôi chịu thua, không phải là lĩnh vực sở trường của tôi. Nếu bạn muốn nhập nó từ bên en về thì xin mời.--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 06:50, ngày 8 tháng 7 năm 2021 (UTC) :☹, mình tưởng bạn phải biết chứ… Thôi, mình sẽ làm những thứ nhỏ hơn trước vậy. Dù sao cũng cảm ơn bạn đã ở lại đóng góp cho từ điển mở này. Thân mến. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 08:34, ngày 8 tháng 7 năm 2021 (UTC) == ☹ == Không thể tin nổi… Ngay cả mục từ như [[3]], [[4]], [[!]] cũng không có! Bạn có thể hỗ trợ mình trong mảng Unicode được không? Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:29, ngày 10 tháng 7 năm 2021 (UTC) {{ping|Ccv2020}} Xin lỗi, tôi không thể giúp được bạn. Việc này bạn nên nhờ các thành viên bên Wikipedia, bên ấy có nhiều chuyên gia hơn bên này--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 02:34, ngày 10 tháng 7 năm 2021 (UTC) :Không, ý mình là dịch các mục từ bên en sang đây mà. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 03:06, ngày 10 tháng 7 năm 2021 (UTC) ::{{ping|Ccv2020}} Việc này thì ok--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 04:22, ngày 10 tháng 7 năm 2021 (UTC) == Khôi phục trang == Chào bạn. Không biết bạn có thể khôi phục trang [[B]] được không nhỉ? Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 10:01, ngày 10 tháng 7 năm 2021 (UTC) {{ping|Ccv2020}} Tôi đã khôi phục trang, tuy nhiên bạn cần phải sửa lại nó--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 10:12, ngày 10 tháng 7 năm 2021 (UTC) :<font color=limegreen>✓</font>. Lần sau, bạn chú ý nếu nội dung được khôi phục là phá hoại thì bạn đừng khôi phục nha. Thân mến. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 10:35, ngày 10 tháng 7 năm 2021 (UTC) == Thể loại == Chào bạn. Không biết mình có nên đổi [[:Thể loại:Unicode CJK Unified Ideographs]] thành [[:Thể loại:Khối ký tự CJK Unified Ideographs]]? Cảm ơn bạn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 00:49, ngày 12 tháng 7 năm 2021 (UTC) :Tôi cũng nghĩ nên đổi--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 01:00, ngày 12 tháng 7 năm 2021 (UTC) ::Nếu vậy thì phải dùng Cat-a-lot thì mới chuyển hết các trang trong thể loại nhanh nhất. Lát tôi chép mã nguồn vào, rồi làm luôn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:39, ngày 12 tháng 7 năm 2021 (UTC) == [[:en:Special:PrefixIndex/Module:Unicode_data/]] == Chào bạn. [[Thành viên:Thienhau2003|Thienhau2003]] cho biết nếu chép hết đống đó sang đây thì [[Bản mẫu:character info]] sẽ hết lỗi. Do mấy ngày nay không có máy tính vào lúc thích hợp, nên nhờ bạn làm giúp việc này. Cảm ơn bạn rất nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 10:50, ngày 14 tháng 7 năm 2021 (UTC) {{ping|Ccv2020}} Sáng mai tôi sẽ chép đống đó cho bạn--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 14:38, ngày 14 tháng 7 năm 2021 (UTC) Xong bạn khóa hết các mô đun do tôi và bạn tạo ra nhé. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 05:08, ngày 16 tháng 7 năm 2021 (UTC) :Alo bạn (<big>↑</big>) – [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:56, ngày 20 tháng 7 năm 2021 (UTC) {{ping|Ccv2020}} Tôi nghĩ cũng chẳng cần khóa đâu--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 02:27, ngày 20 tháng 7 năm 2021 (UTC) == Cần hỗ trợ == Chào bạn. Do ngày mai tôi chuẩn bị thi nên sẽ cực kỳ hạn chế tham gia dự án này. Mong bạn giúp mình vừa tạo các mục từ Unicode mới, vừa thêm mã <nowiki>“{{character info}}”</nowiki> vào những mục từ Unicode hiện có. Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 14:36, ngày 21 tháng 7 năm 2021 (UTC) {{ping|Ccv2020}} {{OK}} Chúc bạn sẽ thi thật tốt nhé--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 14:44, ngày 21 tháng 7 năm 2021 (UTC) == Về [[H₂SO₄]] và TCVN == Chào bạn. Cảm ơn bạn đã mang TCVN đến Wiktionary. Nhờ vậy mà tôi dễ kiểm soát hành vi của mình hơn, tránh những sửa đổi "trút giận" (mà tôi đã thử làm tại mục từ [[B]], [[I]]). Tôi nghĩ chúng ta có thể viết thảo luận thống nhất về vấn đề này một cách ngắn gọn, để những người đi sau sẽ thấy được bằng chứng. Thân mến! [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 03:43, ngày 24 tháng 7 năm 2021 (UTC) ==Nhờ giúp== Chào bạn. Phiền bạn qua xem đóng góp của tôi và xem 5 trang nháp bản mẫu, xem bản mẫu nào hữu ích thì chuyển ra không gian tên Bản mẫu giúp mình. Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:55, ngày 25 tháng 7 năm 2021 (UTC) Tôi thấy cái 1, 3, 4, 5 là ok. Tuy nhiên, hiện không biết đặt tên bản mẫu là gì--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 02:10, ngày 25 tháng 7 năm 2021 (UTC) :Tôi thấy 1–4 nên được đưa ra không gian tên Bản mẫu trước. Cái thứ 5 dễ bị nhầm lẫn: có những ký tự Unicode đã được định rõ nhưng hiển thị dưới dạng “&#1000000;”. Những trường hợp như thế thì nên cân nhắc dùng cái số 1. Về tên thì bạn có thể xem mã nguồn (đằng sau trường “name”). Nếu bạn cần hiểu rõ hơn, mình sẽ giải thích. Thân mến! [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 09:39, ngày 25 tháng 7 năm 2021 (UTC) <hr> Chào bạn. Phiền bạn kiểm tra trong [https://www.compart.com/en/unicode/block/U+2B00 khối ký tự này] xem có ký tự nào ở dạng “&#1000000;” thì báo cho mình để mình cân nhắc dùng {{LKBM|cảnh báo Unicode}}. Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 00:41, ngày 26 tháng 7 năm 2021 (UTC) :À mà máy tính bạn dùng hệ điều hành Windows đời nào vậy? Phiền bạn trả lời câu hỏi này trước. Cảm ơn bạn nhiều. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 00:42, ngày 26 tháng 7 năm 2021 (UTC) {{ping|Ccv2020}} Máy tôi dùng win 7. Các ký tự ở dạng “&#1000000;”: * Từ U+2B00 đến U+2B2F * U+2B45, U+2B46 * U+2B4D đến U+2BFF * --.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 01:05, ngày 26 tháng 7 năm 2021 (UTC) :☹… Cài font chữ Symbola đi là vừa. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:07, ngày 26 tháng 7 năm 2021 (UTC) == Thư mời == Mời bạn tham gia thảo luận Wikibooks tại [[b:vi:Wikibooks:Phòng thảo luận#Cải thiện phiên bản máy tính|trang này]]. Xin cảm ơn! [[Thành viên:Đức Anh|Đức Anh]] ([[Thảo luận Thành viên:Đức Anh|thảo luận]]) 09:27, ngày 1 tháng 8 năm 2021 (UTC) :{{u|Đức Anh}}: Tôi nghĩ thư mời ở đâu thì nên mời ở đó. Như thế sẽ tránh "lạc đề". [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 02:31, ngày 4 tháng 8 năm 2021 (UTC) == [[Đặc biệt:Đổi hướng/revision/2019991]] == Nhờ bạn ẩn giúp phiên bản này của trang, đồng thời xóa luôn trang [[Thành viên:Sinh tử hữu mệnh]]. Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 02:25, ngày 4 tháng 8 năm 2021 (UTC) {{ping|Ccv2020}} Tôi đã ẩn phiên bản đó của trang, còn trang [[Thành viên:Sinh tử hữu mệnh]] thì tôi ko xóa đc--..--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 03:00, ngày 4 tháng 8 năm 2021 (UTC) :Sao không xóa được nhỉ… Hay bạn thử lại xem. Nếu vẫn không được thì bạn thử ẩn phiên bản trang thành viên đó xem có được không. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 03:46, ngày 4 tháng 8 năm 2021 (UTC) ::Nội dung xuất hiện trên trang này được sao chép từ [[metawiki:User:Sinh_tử_hữu_mệnh|meta]] nên tôi ko xóa hay ẩn đi đc--..-- – [[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 05:07, ngày 4 tháng 8 năm 2021 (UTC) :::Tôi quên mất. Vậy thì phải nhờ bên Meta xóa hộ. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 00:43, ngày 5 tháng 8 năm 2021 (UTC) == Nhờ giúp đỡ == Chào bạn. Các mục từ chữ Hán và một số ít mục từ khác hiện nay cần được cập nhật thêm {{LKBM|character info}}. Mong bạn giúp tôi thêm chúng vào các mục từ chữ Hán nói riêng và các mục từ Unicode nói chung. Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 00:36, ngày 15 tháng 8 năm 2021 (UTC) == Hỏi về Wikitionary == Bạn là bảo quản viên nơi này, cho mình hỏi từ điển mở này mình viết những gì. Bạn có thể minh họa giúp mình không? [[Thành viên:Nhotuo|Nhotuo]] ([[Thảo luận Thành viên:Nhotuo|thảo luận]]) 09:01, ngày 27 tháng 8 năm 2021 (UTC) :{{ping|Nhotuo}} Bạn có thể tham khảo [[Wiktionary:Giới thiệu]]. Nếu còn gì thắc mắc, bạn cứ tự nhiên hỏi--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 01:52, ngày 28 tháng 8 năm 2021 (UTC) == Wikiquote == Chào bạn, mời bạn cho ý kiến tại [[q:Wikiquote:Thảo luận#Đề bạt bảo quản viên|Biểu quyết bảo quản viên Wikiquote]]. – [[Thành viên:Băng Tỏa|Băng Tỏa]] ([[Thảo luận Thành viên:Băng Tỏa|thảo luận]]) 18:21, ngày 28 tháng 8 năm 2021 (UTC) == Xóa trang == Nhờ bạn xóa trang thử nghiệm trong [[:Thể loại:Chờ xóa]], cảm ơn bạn. (Chỉ có 1 trang nhưng tôi vẫn nhắc vì sợ không ai chú ý đến. Xin lỗi nếu đã làm phiền bạn) [[Thành viên:Mạnh An|Mạnh An]] ([[Thảo luận Thành viên:Mạnh An|thảo luận]]) 14:10, ngày 5 tháng 9 năm 2021 (UTC) == Unicode 14.0 và [[en:Special:PrefixIndex/Module:Unicode_data/]] == Chào bạn. Unicode đã chính thức ra mắt phiên bản 14.0 vào ngày 14/09/2021. Vì thế, nhờ bạn theo dõi trong liên kết enwikt mà tôi đã cho ở trên xem có những thay đổi gì. Bạn có thể tìm thông tin về phiên bản này ở trang website chính thức của Unicode (do tôi đang dùng TV nên không gửi liên kết cho bạn được, mong bạn thông cảm). Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 10:28, ngày 15 tháng 9 năm 2021 (UTC) :Chào bạn, [https://www.unicode.org/charts/PDF/Unicode-14.0/ đây là liên kết]. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 14:15, ngày 15 tháng 9 năm 2021 (UTC) ::Nếu thích thì bạn có thể tự cập nhật luôn cũng được. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 11:10, ngày 16 tháng 9 năm 2021 (UTC) == [[Trợ giúp:Unicode]] == Chào bạn. Bạn thử đọc xem có hiểu không, nếu chưa thì chúng ta có thể sửa. Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 07:36, ngày 16 tháng 9 năm 2021 (UTC) :{{ping|Ccv2020}} Về nội dung thì bạn viết tương đối dễ hiểu. Tuy nhiên, tôi vẫn có vài ý kiến sau: * Ở mục cấu trúc: 1. <syntaxhighlight lang="javascript"> a.''{{-ngôn ngữ của mục từ, nếu là ký tự được dùng cho mục đích chung, dùng “mul”-}}'' và b.''{{-ngôn ngữ của mục từ, nếu là ký tự được dùng cho mục đích chung, dùng “symbol”-}}'' </syntaxhighlight> Cái a có thể ghi thêm là: '''mã''' ngôn ngữ của mục từ '''theo ISO 639-3'''. Cái b nên thay "ngôn ngữ" bằng "từ loại". 2. Đối với nhiều người, họ sẽ ko biết bản mẫu ''-pron-'' là gì. Nên thêm vào phần trong ngoặc bên dưới: (Cách phát âm của mục từ...) * Phần Xem thêm: Có thể liên kết thêm 1 số bài viết về Unicode trên Wiki. --.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 08:33, ngày 16 tháng 9 năm 2021 (UTC) <font color=#80ff00>'''&#10003; – đã tiếp nhận, sẽ chỉnh sửa.'''</font> [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 10:04, ngày 16 tháng 9 năm 2021 (UTC) :<font color=#80ff00>'''&#10004;'''</font> – [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 10:17, ngày 16 tháng 9 năm 2021 (UTC) == Cảm ơn bạn rất nhiều == Cảm ơn bạn đã xóa hộ tôi rất nhiều trang tôi gắn biển gần đây. Nếu bạn có thời gian, rất mong bạn giúp tôi một tay để xử lý hết tất cả thể loại với tên gọi cũ của 'template'. Cảm ơn bạn rất nhiều – [[Thành viên:Mạnh An|Mạnh An]] ([[Thảo luận Thành viên:Mạnh An|thảo luận]]) 15:44, ngày 23 tháng 9 năm 2021 (UTC) == Gợi ý đóng góp == Chào bạn. Tôi thấy có chương trình “Vua tiếng Việt” trên VTV3, hay lắm vì có những từ mà tôi và chúng ta còn chưa biết. Thế nên tôi nghĩ là lấy các từ trong chương trình đó ra để viết mục từ, như thế dự án chúng ta sẽ thêm phần phong phú và đa dạng hơn. Thân mến. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 12:51, ngày 22 tháng 10 năm 2021 (UTC) == Giúp mở khóa == Bạn có thể '''tắt khóa theo tầng dùm 2 trang''' này: * [[Bản mẫu:Thông báo sửa đổi]] * [[Bản mẫu:=nn]] Do anh Mxn khóa theo tầng khiến mình không sửa được bản mẫu tài liệu cùng hàng loạt bản mẫu khác. Mong bạn làm giúp, cảm ơn.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 11:32, ngày 24 tháng 10 năm 2021 (UTC) : Xin nhờ bạn tắt khóa theo tầng dùm [[Mô đun:Noarticletext]] luôn nhe, cảm ơn.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 13:04, ngày 24 tháng 10 năm 2021 (UTC) == [https://drive.google.com/drive/folders/1gsi-KL2F6p50G8foeLJpkrrigOCdpV5t?usp=sharing Font chữ] == Chào bạn. Bạn đã thử tải font chưa? Bạn nhấn vào đó để lấy bản mới nhất nhé. Thân mến. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 02:32, ngày 25 tháng 10 năm 2021 (UTC) == Nhờ xóa trang == Nhờ bạn xóa dùm * [[Bản mẫu:Hộp thông báo thể loại/cmbox.css]] * [[Bản mẫu:Hộp thông báo/ambox.css]] * [[Bản mẫu:imbox/imbox.css]] do mấy trang đó tạo css cho thông báo nhưng mình đã chuyển hết về một trang rồi nên mấy cái này không cần nữa. Cảm ơn bạn.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 09:37, ngày 31 tháng 10 năm 2021 (UTC) == Nhờ giúp == Nhờ bạn giúp cập nhật [[Bản mẫu:Trang Chính 2/Dự án khác]], bằng mã trong [[Thành viên:Thienhau2003/Test]], do cần thay đổi logo Wikipedia thành hình quả cầu đúng như Trang Chính cũ, cảm ơn nhé.--[[Thành viên:Thienhau2003|Thienhau2003]] ([[Thảo luận Thành viên:Thienhau2003|thảo luận]]) 13:42, ngày 5 tháng 11 năm 2021 (UTC) == Các mục từ tiếng Tangut == Chào bạn. Theo dữ liệu về khả năng hiển thị hệ chữ Tangut, hiện tại '''chưa có thiết bị nào hỗ trợ sẵn các ký tự này'''. Do đó, chúng cần có {{LKBM|cảnh báo Unicode}} (xem mẫu: [[𗸨]]). Ngoài ra, ba mục từ của bạn chưa có ảnh tham khảo (đã thêm {{LKBM|yêu cầu tập tin Unicode}}). Nếu bạn gặp khó khăn trong bất kỳ vấn đề gì, bạn có thể phản hồi; tôi sẽ hỗ trợ bạn mọi thắc mắc. Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 09:11, ngày 19 tháng 11 năm 2021 (UTC) :Bạn có thể xem [[Trợ giúp:Unicode/Ảnh]] để biết cách thêm ảnh tham khảo vào các mục từ Unicode. Nếu bạn không tìm được ảnh, hãy thông báo tôi; tôi sẽ giúp bạn. Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 10:00, ngày 19 tháng 11 năm 2021 (UTC) ::Nhờ bạn giúp vậy tôi không tìm thấy được ảnh--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 01:45, ngày 20 tháng 11 năm 2021 (UTC) :::OK, chiều nay tôi rảnh, tôi sẽ giúp bạn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 06:16, ngày 20 tháng 11 năm 2021 (UTC) ::::'''<font color=#80ff00>✔ – Xong.</font>''' Lần sau, bạn có thê kiếm ảnh ở [http://en.glyphwiki.org/wiki/GlyphWiki:MainPage GlyphWiki]. Nhập các cú pháp như “u1b050” hay “u2c5be” là đến nơi có ảnh. Nhớ là ảnh .svg ở bên trái; muốn lưu ảnh thì nhấn chuột phải rồi lưu lại ảnh, sau đó đăng lên Wikimedia Commons dưới giấy phép như trong mẫu [[:commons:File:U+17000.svg|này]]. Nếu bạn gặp bất kỳ khó khăn nào, bạn có thể phản hồi; tôi sẽ hỗ trợ bạn mọi thắc mắc. Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 11:05, ngày 20 tháng 11 năm 2021 (UTC) == Không gian tên mới == Chào bạn. Vấn đề không gian tên “Phụ lục” là một trong những vấn đề tôi đang quan tâm nhất hiện nay trên Wiktionary. Hiện tại thì để tránh lỗi ở các trang có nội dung giống hệt Wiktionary, các trang có tên “Phụ lục:…” đã được tạm thời chuyển sang “Wiktionary:Phụ lục…”. Nếu như Wiktionary chúng ta không có không gian tên này, việc chúng ta bị tụt hậu sẽ là điều tất yếu có thể xảy ra. Chính vì thế, tôi đang sắp sửa đề xuất không gian tên mới, bạn có đồng ý không? Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 14:34, ngày 22 tháng 11 năm 2021 (UTC) : ✅ --.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 06:19, ngày 23 tháng 11 năm 2021 (UTC) ::Cảm ơn ý kiến của bạn. Do ý kiến của bạn chỉ là một phần nhỏ nên tôi chưa thực hiện ngay; có thể tôi sẽ mở biểu quyết về vấn đề này. Thân mến. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 06:31, ngày 23 tháng 11 năm 2021 (UTC) <hr> Mời bạn cho ý kiến tại [[Wiktionary:Thảo luận#Biểu quyết đề xuất không gian tên “Phụ lục” cho Wiktionary tiếng Việt]]. Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 13:30, ngày 28 tháng 11 năm 2021 (UTC) == Mời xem == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[File:Logo vote.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Thảo luận Wiktionary:Bảo quản viên|Biểu quyết bảo quản viên]] của '''[[Thành viên:Kateru Zakuro]]''' tại '''[[Thảo_luận_Wiktionary:Bảo_quản_viên#Kateru_Zakuro|đây]]'''. <small>Hãy cùng tích cực tham gia các biểu quyết và thảo luận về chúng. Mỗi hành động của bạn sẽ góp phần không nhỏ để xây dựng các mục từ trên Wiktionary - tài sản chung của cộng đồng chúng ta, giúp wiki ta ngày càng phát triển vững mạnh! Thân ái!</small> |}--[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 15:56, ngày 28 tháng 11 năm 2021 (UTC) == [[:Thể loại:Mục từ tiếng Yiddish]] == Nhờ bạn di chuyển [[:Thể loại:Mục từ tiếng Yiddish]] đến [[:Thể loại:Mục từ tiếng Do Thái]]. Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 10:17, ngày 29 tháng 11 năm 2021 (UTC) : Nó là 2 ngôn ngữ khác nhau mà {{w|Tiếng Yiddish}}, {{w|Tiếng Do Thái}}--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 10:19, ngày 29 tháng 11 năm 2021 (UTC) == [[Bản mẫu:Edittools]] == Tôi vừa mới thêm [[Bản mẫu:Edittools]] vào [[MediaWiki:Edittools]] để khi sửa đổi, mọi người có thể thêm vào nhanh bản mẫu đề mục vào mục từ mà không cần phải tra hay nhớ bản mẫu có tên gì. Nếu bạn có muốn thêm cái gì vào thì vào [[Bản mẫu:Edittools]] để thêm nhé.--[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 15:43, ngày 9 tháng 12 năm 2021 (UTC) == Hỏi == Sao gần đây có nhiều IP lạ vào để phá hoại bằng cách tạo mục từ xúc phạm và tấn công thế? Có cách nào hạn chế vấn đề này không?--[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 01:37, ngày 11 tháng 12 năm 2021 (UTC) == Thay logo Tết cho Wiktionary == Chào bạn. Năm 2012 là lần gần nhất Wiktionary thay logo Tết cho dự án. Từ đó đến nay, Wiktionary chưa thay logo Tết thêm lần nào cả. Vì thế, tôi có ý định đề xuất một cuộc thi làm logo Tết cho Wiktionary tiếng Việt, với thành phần tham gia là các thành viên Wikipedia có kinh nghiệm trong thiết kế logo các dự án mở. Trong ngày hôm nay, tôi sẽ thực hiện mở cuộc thi đó. Bạn có đồng ý không? Xin cảm ơn. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 01:44, ngày 20 tháng 12 năm 2021 (UTC) : 👌 --.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 02:56, ngày 20 tháng 12 năm 2021 (UTC) == Font chữ == Chào bạn, cuối cùng tôi cũng làm xong font cho Unicode 14.0 rồi… Phiền bạn bấm vào [https://drive.google.com/drive/folders/1gsi-KL2F6p50G8foeLJpkrrigOCdpV5t đây] để tải bản mới nhất. Cảm ơn bạn đã sử dụng font chữ. [[Thành viên:Ccv2020|Ccv2020]] ([[Thảo luận Thành viên:Ccv2020|thảo luận]]) 14:11, ngày 4 tháng 1 năm 2022 (UTC) :Có vấn đề ở font thứ nhất, xin lỗi :( – [[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 01:46, ngày 6 tháng 1 năm 2022 (UTC) == How we will see unregistered users == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin=content/> Hi! You get this message because you are an admin on a Wikimedia wiki. When someone edits a Wikimedia wiki without being logged in today, we show their IP address. As you may already know, we will not be able to do this in the future. This is a decision by the Wikimedia Foundation Legal department, because norms and regulations for privacy online have changed. Instead of the IP we will show a masked identity. You as an admin '''will still be able to access the IP'''. There will also be a new user right for those who need to see the full IPs of unregistered users to fight vandalism, harassment and spam without being admins. Patrollers will also see part of the IP even without this user right. We are also working on [[m:IP Editing: Privacy Enhancement and Abuse Mitigation/Improving tools|better tools]] to help. If you have not seen it before, you can [[m:IP Editing: Privacy Enhancement and Abuse Mitigation|read more on Meta]]. If you want to make sure you don’t miss technical changes on the Wikimedia wikis, you can [[m:Global message delivery/Targets/Tech ambassadors|subscribe]] to [[m:Tech/News|the weekly technical newsletter]]. We have [[m:IP Editing: Privacy Enhancement and Abuse Mitigation#IP Masking Implementation Approaches (FAQ)|two suggested ways]] this identity could work. '''We would appreciate your feedback''' on which way you think would work best for you and your wiki, now and in the future. You can [[m:Talk:IP Editing: Privacy Enhancement and Abuse Mitigation|let us know on the talk page]]. You can write in your language. The suggestions were posted in October and we will decide after 17 January. Thank you. /[[m:User:Johan (WMF)|Johan (WMF)]]<section end=content/> </div> 18:20, ngày 4 tháng 1 năm 2022 (UTC) <!-- Tin nhắn của Thành viên:Johan (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Target_lists/Admins2022(8)&oldid=22532697 --> == New account == Xin chào. I’m Fête, but this is my new account. Seeing that I never did vandalism at the Vietnamese Wiktionary, so can I restart to contribute here? [[Thành viên:VincentPH|VincentPH]] ([[Thảo luận Thành viên:VincentPH|thảo luận]]) 13:58, ngày 18 tháng 1 năm 2022 (UTC) :{{u|VincentPH}}: No problem. [[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 14:45, ngày 18 tháng 1 năm 2022 (UTC) ::Cám ơn. Nếu tôi tiếp tục sửa đổi, có lẽ trước sau có người cấm mãi mãi, vì thế tôi quyết đình rời Wiktionary, goodbye. [[Thành viên:VincentPH|VincentPH]] ([[Thảo luận Thành viên:VincentPH|thảo luận]]) 15:56, ngày 18 tháng 1 năm 2022 (UTC) == Thư mời tham gia biểu quyết == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[File:Logo vote.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Thảo luận Wiktionary:Bảo quản viên|Biểu quyết bảo quản viên]] của '''[[Thành viên:Ccv2020]]''' tại '''[[Thảo_luận_Wiktionary:Bảo_quản_viên#Ccv2020|đây]]'''. <small>Hãy cùng tích cực tham gia các biểu quyết và thảo luận về chúng. Mỗi hành động của bạn sẽ góp phần không nhỏ để xây dựng các mục từ trên Wiktionary - tài sản chung của cộng đồng chúng ta, giúp wiki ta ngày càng phát triển vững mạnh! Thân ái!</small> |}[[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 00:53, ngày 23 tháng 2 năm 2022 (UTC) == Cảm ơn bạn == Đã giúp mình hoàn thành trang NSFW trong Wiktionary! [[Thành viên:KhanhCN Defender1st Minh|KhanhCN Defender1st Minh]] ([[Thảo luận Thành viên:KhanhCN Defender1st Minh|thảo luận]]) 09:39, ngày 1 tháng 4 năm 2022 (UTC) == Template "nod" == Somebody made [[ᨾᩯ᩠ᩅ]]. What language for the code "nod" is it in Vietnamese? --[[Thành viên:Apisite|Apisite]] ([[Thảo luận Thành viên:Apisite|thảo luận]]) 13:18, ngày 4 tháng 4 năm 2022 (UTC) == Trang thành viên == Chào bạn. Chắc bạn thấy trang thành viên của tôi "chất" quá nên "chôm" luôn của tôi à? (😊) Để có trải nghiệm tốt nhất thì bạn tải font Roboto về máy tính để hiển thị đúng nhé, bạn thích kiểu thiết kế font [https://www.dafont.com/roboto.font cũ] hay [https://fonts.google.com/specimen/Roboto mới] tuỳ bạn (tôi thích dùng kiểu cũ). Thân mến. [[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 15:10, ngày 18 tháng 5 năm 2022 (UTC) == Việc bên wikibooks == Mời bạn sang phòng thảo luận bên wikibooks cho ý kiến nhé. – [[Thành viên:Đức Anh|Đức Anh]] ([[Thảo luận Thành viên:Đức Anh|thảo luận]]) 08:08, ngày 17 tháng 7 năm 2022 (UTC) == Mã ngôn ngữ == Chào bạn, những ngôn ngữ không có mã ISO thì cho vào Wiktionary được không nhỉ? – [[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> 10:23, ngày 27 tháng 7 năm 2022 (UTC) :{{ping|Thành viên:WhoAlone}} Cái này thì tùy trường hợp, nhưng nói chung là được--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 00:18, ngày 28 tháng 7 năm 2022 (UTC) ::Ví dụ, nếu tôi muốn đưa [https://en.wikipedia.org/wiki/Soyot-Tsaatan_language tiếng Soyot] vào Wiktionary thì có thể đặt tên bản mẫu đề mục kiểu như {{Liên kết bản mẫu|-Soyot-}} được không, thay vì mã ngôn ngữ? – [[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> 04:18, ngày 28 tháng 7 năm 2022 (UTC) :::{{ping|WhoAlone}} Tôi nghĩ nên dùng bản mẫu đề mục theo cấu trúc: mã ISO của ngữ hệ bao hàm ngôn ngữ đó + chữ viết tắt tên ngôn ngữ. Các ngôn ngữ như [[:Thể loại:Mục từ tiếng Mông Cổ Khamnigan|Mông Cổ Khamnigan]], [[:Thể loại:Mục từ tiếng Kyakala|Kyakala]],... đều không có mã ISO và chúng đều dùng bản mẫu đề mục theo cấu trúc bên trên--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 07:23, ngày 28 tháng 7 năm 2022 (UTC) == Về trang [[Thành viên:Tongdothamlang]] == Tôi thấy đầu tiên thì thành viên tạo trang với nội dung quảng cáo rõ ràng trong [https://vi.wiktionary.org/w/index.php?title=Th%C3%A0nh_vi%C3%AAn:Tongdothamlang&oldid=2066212 lịch sử sửa đổi] của trang, song không muốn trang bị xóa thành viên đã nhanh tay giấu kín mà xóa luôn nội dung quảng cáo nên tôi mới yêu cầu xóa trang đó. [[Thành viên:KhanhCN Defender1st Minh|KhanhCN Defender1st Minh]] ([[Thảo luận Thành viên:KhanhCN Defender1st Minh|thảo luận]]) 06:46, ngày 19 tháng 8 năm 2022 (UTC) : Và rất có thể thành viên đã lạm dụng lịch sử sửa đổi và dùng nó với mục đích quảng bá ([https://vi.wiktionary.org/w/index.php?title=Th%C3%A0nh_vi%C3%AAn:Tongdothamlang&oldid=2066212]) [[Thành viên:KhanhCN Defender1st Minh|KhanhCN Defender1st Minh]] ([[Thảo luận Thành viên:KhanhCN Defender1st Minh|thảo luận]]) 06:49, ngày 19 tháng 8 năm 2022 (UTC) :: nên tôi nghĩ xóa rồi tạo lại với nội dung "Chẩn" hoặc ẩn một phiên bản cũ sẽ là một ý kiến hay để giải quyết vụ quảng cáo này. [[Thành viên:KhanhCN Defender1st Minh|KhanhCN Defender1st Minh]] ([[Thảo luận Thành viên:KhanhCN Defender1st Minh|thảo luận]]) 06:51, ngày 19 tháng 8 năm 2022 (UTC) :::✔ Đã ẩn phiên bản đầu tiên--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 12:02, ngày 19 tháng 8 năm 2022 (UTC) == IPA == Bạn có thể sửa những mục từ IPA tiếng Thổ thành chữ Latinh được không? Tôi không thạo việc này lắm. – [[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> 14:23, ngày 20 tháng 8 năm 2022 (UTC) :{{ping|WhoAlone}} Xin lỗi bạn, việc này tôi cũng không rành cho lắm--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 00:29, ngày 22 tháng 8 năm 2022 (UTC) == Font chữ == 🤣… Trang thành viên của bạn làm tôi muốn đảo mắt 180 độ… Tiện thể vụ font chữ Unicode 15.0 chắc là năm nay mình không làm được rồi, mong bạn thông cảm. Nhưng trên trang thành viên của mình có để link ở mục “Lưu trữ” mà một vài trong số đó có Unicode 15.0, tuy nhiên chúng chỉ dùng được trên một số phần mềm mà thôi. Nếu cần bạn có thể tải font từ các link đó để dùng khi cần. Cảm ơn bạn. [[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 15:55, ngày 16 tháng 11 năm 2022 (UTC) :{{ping|Ccv2020}} 😅... Cái này bạn phải trồng cây chuối thì may ra mới đọc được nhé... Tiện thể vụ font chữ Unicode 15.0, thì không sao đâu bạn à. Tôi cũng không quan tâm cho lắm. Nếu cần tôi sẽ tải font từ các link đó để dùng khi cần. Cảm ơn bạn--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 07:34, ngày 17 tháng 11 năm 2022 (UTC) == Bản mẫu:R:Tratu == Trước đây bản mẫu đều dùng 2 tham số như |vn|vn để định cho cái đường link dẫn đến đúng mục từ, nhưng mà đổi sang bản mới như thế nó rất tai hại ở chỗ là tất cả đều chuyển sai đường liên kết như [[cánh tay]] đang dẫn sai đường liên kết. Trừ khi có bot sửa thì được còn bây giờ nên để lại bản cũ. – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 10:32, ngày 8 tháng 12 năm 2022 (UTC) :P/S: Bác nên nhìn kỹ lại cái [https://en.wiktionary.org/w/index.php?title=Template:R:Tra_T%E1%BB%AB&action=history source gốc], nó là Mxn tạo ra cách đây 2 tháng. Tại vì bên đó không có cho nên anh ấy mới tạo.--[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 10:34, ngày 8 tháng 12 năm 2022 (UTC) :{{ping|Kateru Zakuro}} Không cần phải đổi lại đâu bạn ạ. Tôi sẽ cố gắng sửa lại đường dẫn trong thời gian sớm nhất--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 12:41, ngày 8 tháng 12 năm 2022 (UTC) ::Em nghĩ không cần phải sửa lại đâu, vì có đến [https://linkcount.toolforge.org/index.php?project=vi.wiktionary.org&page=B%E1%BA%A3n_m%E1%BA%ABu:R:Tratu 1,420] trang lận, ai đâu mà sửa cho hết. Mà em thấy anh rất hay nhập bản mẫu tràn lan hoặc cập nhật vào Wiki thì không ổn đâu, ở đây có nhiều bản mẫu rất lỗi thời, chưa kể có sự khác biệt ở cách dùng (phải làm sao mà có thể dùng được mã 3 ngôn ngữ khi hầu hết Wiki đều dùng 2 ngôn ngữ) nên không thể nói muốn cập nhật là cập nhật– [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 13:17, ngày 8 tháng 12 năm 2022 (UTC) == Đề xuất == Cảm ơn BQV đã lùi lại sửa đổi nhầm lẫn của tôi. Tiện đây có điều này muốn đề xuất như sau: Theo tôi thấy thì hiện tại có một số trang quy định và trang thông tin đang đổi hướng đến các trang dự án cùng tên ở Wikipedia tiếng Việt (ví dụ: [[Wiktionary:Quyền truy cập của thành viên]], đặc biệt không thể làm đổi hướng như vậy vì số cờ ở Wikipedia tiếng Việt khác so với số cờ ở bên này). Do đó, tôi có đề xuất là chúng ta nên "sao chép quy định" từ bên Wikipedia tiếng Việt sang bên này, có sửa chữa lại sao cho phù hợp, vì dù sao các dự án đều hoạt động độc lập với nhau. Nếu BQV thấy ổn tôi sẽ thực hiện. [[Thành viên:Tryvix1509|Tryvix1509]] ([[Thảo luận Thành viên:Tryvix1509|thảo luận]]) 11:34, ngày 15 tháng 12 năm 2022 (UTC) Mời {{ping|Ccv2020}} cùng cho ý kiến. [[Thành viên:Tryvix1509|Tryvix1509]] ([[Thảo luận Thành viên:Tryvix1509|thảo luận]]) 11:36, ngày 15 tháng 12 năm 2022 (UTC) {{u|Tryvix1509}}: Về việc sao chép quy định thì đã có {{u|Kateru Zakuro}} để lo rồi. Cho nên bạn không cần phải sợ việc Wiktionary bị thiếu quy định đâu. Nếu bạn muốn thì có thể thực hiện chung tay xây dựng quy định cho dự án này, vì Wiktionary luôn luôn tạo điều kiện cho bạn và mọi người đóng góp. Thân mến. [[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 14:38, ngày 15 tháng 12 năm 2022 (UTC) == აბანო == At the entry [[აბანო]], what would the language with ISO code "oge" be in Vietnamese called? -- – [[Thành viên:Apisite|Apisite]] ([[Thảo luận Thành viên:Apisite|thảo luận]]) 08:12, ngày 20 tháng 2 năm 2023 (UTC) : {{ping|Apisite}} The language with the ISO code "oge" in Vietnamese is called "tiếng Gruzia cổ". – [[Thành viên:Nguyên Hưng Trần|<span style="color:black; font-family:Noto Sans">'''Trần Nguyên Hưng'''</span>]][[Thảo luận Thành viên:Nguyên Hưng Trần|<sup><span style="color:#28efff">(◇)</span></sup>]] 08:28, ngày 20 tháng 2 năm 2023 (UTC) :: {{ping|Nguyên Hưng Trần}} I can't add the language name to [[Mô đun:Thống kê Wiktionary]]. --[[Thành viên:Apisite|Apisite]] ([[Thảo luận Thành viên:Apisite|thảo luận]]) 08:38, ngày 20 tháng 2 năm 2023 (UTC) :::{{ping|Apisite}} Don't worry, I will create the language's header template, then ask an administrator to add it. – [[Thành viên:Nguyên Hưng Trần|<span style="color:black; font-family:Noto Sans">'''Trần Nguyên Hưng'''</span>]][[Thảo luận Thành viên:Nguyên Hưng Trần|<sup><span style="color:#28efff">(◇)</span></sup>]] 08:42, ngày 20 tháng 2 năm 2023 (UTC) ✔--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 15:25, ngày 20 tháng 2 năm 2023 (UTC) {{ping|Nguyên Hưng Trần}} The etymology template at the entry [[აბანო]] doesn't appear to be displaying the language name "tiếng Gruzia cổ" properly. --[[Thành viên:Apisite|Apisite]] ([[Thảo luận Thành viên:Apisite|thảo luận]]) 02:26, ngày 21 tháng 2 năm 2023 (UTC) :✔--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 04:32, ngày 21 tháng 2 năm 2023 (UTC) == ''Cross-wiki patrol'' == Bạn có thể xem xét việc cài [[:m:User:Xiplus/TwinkleGlobal|TwinkleGlobal]] vào [[:m:Special:Mypage/global.js|global.js]] của bạn, rồi dùng chức năng CSD, tick vào ô Report to GS/R để yêu cầu xóa nhanh một trang lên [[:m:GSR|GSR]] và một [[:m:Global sysop|bảo quản viên toàn cục]] có thể xem xét giải quyết. Lý do thường là các wiki đó có thể không có BQV/có BQV nhưng ít và không có ''dấu vết'' gần đây. – [[Thành viên:Tryvix1509|Tryvix]] ([[Thảo luận Thành viên:Tryvix1509|thảo luận]]) 14:18, ngày 24 tháng 3 năm 2023 (UTC) == bung == See [https://vi.wiktionary.org/wiki/Th%E1%BA%A3o_lu%E1%BA%ADn_Th%C3%A0nh_vi%C3%AAn:Nguy%C3%AAn_H%C6%B0ng_Tr%E1%BA%A7n#bung here] if you want. -- – [[Thành viên:Apisite|Apisite]] ([[Thảo luận Thành viên:Apisite|thảo luận]]) 09:54, ngày 8 tháng 4 năm 2023 (UTC) == Tiếng Lombard == Regarding the Lombard language, which is of the Gallo-Italic family, [[:lmo:Jut:Grafie acetade|this webpage]] is one of the things to consider. Best regards – [[Thành viên:Apisite|Apisite]] ([[Thảo luận Thành viên:Apisite|thảo luận]]) 06:59, ngày 4 tháng 5 năm 2023 (UTC) == Wikiquote == What about a template for Wikiquote in, for example, the entry [[diplomacy]]? – [[Thành viên:Apisite|Apisite]] ([[Thảo luận Thành viên:Apisite|thảo luận]]) 20:57, ngày 20 tháng 5 năm 2023 (UTC) == Hỏi == Chào bạn, có phải các quyền trên Wikipedia tiếng Việt của tôi không dùng được trên Wiktionary đúng không?. [[Thành viên:DANG GIAO|DANG GIAO]] ([[Thảo luận Thành viên:DANG GIAO|thảo luận]]) 07:34, ngày 24 tháng 6 năm 2023 (UTC) :Đúng vậy bạn--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 07:35, ngày 24 tháng 6 năm 2023 (UTC) ::Vậy tôi có thể hỏi là xin quyền lùi sửa ở đâu không, vì tôi là tuần tra viên và chủ yếu tuần tra bên wiki tiếng Việt nhưng hôm nay, có một tài khoản tôi đang tuần tra phá bên wiki Việt và sang hẳn bên đây phá luôn. Nếu có quyền lùi sửa thì sẽ tiện hơn. [[Thành viên:DANG GIAO|DANG GIAO]] ([[Thảo luận Thành viên:DANG GIAO|thảo luận]]) 07:38, ngày 24 tháng 6 năm 2023 (UTC) :::Bạn có thể tham khảo [[Wiktionary:Lùi sửa]]. Theo như trang đó, thành viên cần có 250 sửa đổi và ba tháng đóng góp để được cấp quyền dùng công cụ lùi sửa hàng loạt--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 07:48, ngày 24 tháng 6 năm 2023 (UTC) ::::Được chứ, tiện thì wiki tiếng Việt hiện giờ tuần tra cũng tương đối không quá áp lực, để tôi sang tuần tra bên đây luôn. haha. Cảm ơn bạn. Buổi trưa vui vẻ!!. – [[Thành viên:DANG GIAO|DANG GIAO]] ([[Thảo luận Thành viên:DANG GIAO|thảo luận]]) 07:51, ngày 24 tháng 6 năm 2023 (UTC) == Về các cách ngữ pháp == Tại sao bạn lại viết tắt các cách trong bản mẫu bảng biến cách/biến tố vậy? – [[Thành viên:Nguyên Hưng Trần|<span style="color:black; font-family:Noto Sans">'''Trần Nguyên Hưng'''</span>]][[Thảo luận Thành viên:Nguyên Hưng Trần|<sup><span style="color:#28efff">(◇)</span></sup>]] 03:41, ngày 23 tháng 7 năm 2023 (UTC) :{{ping|Nguyên Hưng Trần}} Tại vì làm như vậy chúng ta sẽ không cần dịch tên các cách, tránh việc dịch sai hay tệ hơn là bịa thuật ngữ--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 12:14, ngày 23 tháng 7 năm 2023 (UTC) == Tạo lại trang bị xóa == Chào TheHighFighter2, tôi đang muốn tạo một mục từ mới tên "[[chiến công]]" trước đó là trang đã bị xóa do một IP tạo nhưng người xóa không để lại lý do. Tôi có thể tạo lại không?. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 15:20, ngày 2 tháng 8 năm 2023 (UTC) :{{ping|P. ĐĂNG}} Trang đó bị xóa do có chứa từ xúc phạm. Bạn hoàn toàn có thể tạo lại nó--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 15:18, ngày 6 tháng 8 năm 2023 (UTC) ::Cảm ơn bạn. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 08:06, ngày 8 tháng 8 năm 2023 (UTC) :::Mà tôi có thấy bạn tạo trang mô đun, nó có tác dụng gì trên Wiktionary vậy? Bạn dịch từ bên en sao?. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 08:08, ngày 8 tháng 8 năm 2023 (UTC) == Thư mời == Mời bạn cho đôi lời nhận xét tại [[Thảo luận Wiktionary:Bảo quản viên#P. %C4%90%C4%82NG|Biểu quyết chọn bảo quản viên]]. Xin hết lòng cảm ơn rất nhiều. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 06:46, ngày 24 tháng 8 năm 2023 (UTC) == Thư mời tham gia biểu quyết == <div style="padding: 0.5em; background: #f8f8ff; margin-top: 1em; font-size: 1em"> {| class="table" style="width: 80%; background-color: #ACE1AF; border: 1px solid #fceb92; margin: auto; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:Logo vote.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | '''Mời bạn cho ý kiến về việc cấp quyền Bảo quản viên cho thành viên [[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] tại trang [[Thảo luận Wiktionary:Bảo quản viên#DefenderTienMinh07|Thảo luận Wiktionary:Bảo quản viên]]. Xin cảm ơn. <small>Hãy cùng tích cực tham gia các biểu quyết và thảo luận về chúng. Mỗi hành động của bạn sẽ góp phần không nhỏ để xây dựng các mục từ trên Wiktionary - tài sản chung của cộng đồng chúng ta, giúp wiki ta ngày càng phát triển vững mạnh! Thân ái! |} </div> [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 10:25, ngày 24 tháng 8 năm 2023 (UTC) == Nhờ giúp == Tôi đang gặp chút khó khăn khi đang sử dụng bản mẫu <nowiki>{{quote-book}}</nowiki> trong mục từ [[ngàn trùng]]. Lỗi ở đây là ở đoạn thứ 2 của phần tham khảo (đoạn ''Nguồn ân trăm trượng dễ khơi vơi...'') tôi không thể xuống dòng như [[Đặc biệt:So sánh di động/2122630|bản sửa đổi cũ này]] của FF Boyahh. Mong anh có thể sửa giúp. – [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 06:16, ngày 2 tháng 9 năm 2023 (UTC) == Sửa trang đổi hướng js == Phiền anh có thể tẩy trống trang [[Thành viên:DefenderTienMinh07/minerva.js]] và [[Thành viên:DefenderTienMinh07/common.js]] do tôi không thể sửa được. Nhân tiện anh có thể xóa luôn trang [[Thành viên:Nguyên Hưng Trần/style.css]] vì là một trang đổi hướng đến trang mà thành viên đã từng yêu cầu xóa trước đây. ({{ping|Nguyên Hưng Trần}} vì không biết bạn có muốn xóa trang con style.css của trang thành viên mình hay không, tôi đã đề cập đến bạn để cho ý kiến.) – [[Thành viên:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[Thảo luận Thành viên:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 07:31, ngày 4 tháng 9 năm 2023 (UTC) :{{ping|DefenderTienMinh07}} Tôi cũng muốn xóa cái trang con như bạn đã đề cập ở trên, do cái trang đó không còn cần thiết nữa nên nhờ bạn THF2 xóa luôn đi. – [[Thành viên:Nguyên Hưng Trần|<span style="color:black; font-family:Noto Sans">'''Trần Nguyên Hưng'''</span>]][[Thảo luận Thành viên:Nguyên Hưng Trần|<sup><span style="color:#28efff">(◇)</span></sup>]] 09:00, ngày 4 tháng 9 năm 2023 (UTC) == Dọn trang clk == Nhờ BQV TheHighFighter xem cùng tôi đóng góp hàng loạt của dãy IP [https://vi.wiktionary.org/wiki/%C4%90%E1%BA%B7c_bi%E1%BB%87t:%C4%90%C3%B3ng_g%C3%B3p/85.195.123.24 85.195.123.24], rất nhiều bài tạo clk và thiếu ngữ cảnh = thuộc tiêu chí xóa nhanh. Đáng lẽ ra tôi có ý định kêu mọi người tham gia cải thiện các bài này để chúng được giữ, nhưng clk quá lâu và số lượng rất nhiều. Xóa là cần thiết, ai muốn tạo lại thì tạo. Cảm ơn bạn. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 15:07, ngày 9 tháng 9 năm 2023 (UTC) :@[[Thành viên:P. ĐĂNG|P. ĐĂNG]] Tôi nghĩ những mục từ trên được IP [[Thành viên:85.195.123.24|85.195.123.24]] tạo cách đây hơn chục năm rồi (có mục từ được tạo trước cả năm tôi sinh), tôi nghĩ đối với mục từ được tạo cách đây nhiều năm thế này thay vì xóa đi sao lại không đặt biển chất lượng kém vô nhỉ do thời xưa có thể BTV vẫn chưa biết cách tạo đúng quy trình một mục từ. – [[Thành viên:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[Thảo luận Thành viên:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 18:33, ngày 9 tháng 9 năm 2023 (UTC) ::@[[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] Tôi đã nói trên, các mục từ này thuộc diện tiêu chí xóa nhanh nên không thể đặt biển clk. Bản mẫu chất lượng kém là một bản mẫu mà công dụng dùng để bảo trì, nghĩa là khi một bài viết chứa thông tin đầy đủ nhưng biên tập không bách khoa và một số tiêu chí khác dùng để xác định một bài clk (bạn có thể qua Wikipedia Vi đọc cái này) thì chúng ta mới đặt bản mẫu này, mục đích của nó là hy vọng trong 7 ngày tính từ khi bản mẫu được đặt vào sẽ có thành viên nào đó cải thiện, và trong 7 ngày này BQV không có quyền được xóa. Lý do các thành viên thời đó không biết cách tạo mục từ có thể hợp lí, thời trước có thể mảng tuần tra đã không được chú trọng và hiện tại đâu đó trên Wiktionary đã lọt lưới rất nhiều các bài clk tồn tại. Nếu bạn muốn cải thiện những bài này thì cứ bắt tay vào sửa đổi không cần đặt biển clk vì nó thuộc diện tiêu chí xóa nhanh, một số bài IP này tạo thiếu ngữ cảnh, không được dịch, tiêu đề sai. Số lượng bài clk có thể tồn đọng lên đến 100 bài thì làm sao cải thiện nổi và được tạo hơn 10 năm trước thì xóa là cần thiết. Ưu tiên chất lượng hơn số lượng và đương nhiên không phải lúc nào xóa, bài nào có khả năng cải thiện được thì chúng ta sẽ ưu tiên cải thiện. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 03:36, ngày 10 tháng 9 năm 2023 (UTC) == Nhiều mã quá == Em dạo này đi học nên ít lên đây như để ý cái [[MediaWiki:Common.css]] hiện tại có đến 2700 dòng, và em cho là nó quá dài và nặng. Một số cái thật ra đã có trong Ganget rồi nhưng bác lại thêm vào gây nặng mã quá như mấy cái định kiểu cho .Arab... thật ra nằm trong [[MediaWiki:Gadget-script fonts.css]] rồi, để em nhập rồi sửa lại cho bác – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 10:06, ngày 13 tháng 9 năm 2023 (UTC) == Sửa Trang Chính == Ở chỗ "Wiktionary là dự án từ điển mở, '''đa ngôn ngữ'''" có đường dẫn đến trang Wiktionary:Ngôn ngữ nhưng trang này đã bị anh Kateru [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=144969 đổi thành Phụ lục:Ngôn ngữ (có tắt đổi hướng)]. Vậy phiền anh có thể sửa đường dẫn chỗ "đa ngôn ngữ" từ [[Wiktionary:Ngôn ngữ]] thành [[Phụ lục:Ngôn ngữ]] hoặc tạo trang Wiktionary:Ngôn ngữ. Xin cảm ơn. – [[Thành viên:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[Thảo luận Thành viên:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 13:50, ngày 14 tháng 9 năm 2023 (UTC) == Nhờ khóa trang thành viên == Chào bạn, nhờ bạn khóa trang thành viên của tôi để không bị rối phá hoại trong tương lai. – [[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> 05:49, ngày 25 tháng 9 năm 2023 (UTC) == Thư mời == Chào bạn! Mời bạn cho ý kiến tại [[Thảo_luận_Wiktionary:Bảo_quản_viên#Nguyên_Hưng_Trần|Biểu quyết chọn bảo quản viên]]. Thanks bạn! [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 17:20, ngày 30 tháng 12 năm 2023 (UTC) == [[Thành viên:Nguyên Hưng Trần/Gadget-AcceleratedFormCreation.js]], [[Mô đun:accel]] == Bạn có cách nào để sửa lỗi hai kịch bản cho tiện ích tạo hình thái mục từ mà tôi chép bên en không? Khi tôi định tạo mục từ hình thái tiếng Latinh ([[dictionarii]]) thì gặp lỗi không thể tìm thấy đề mục ngôn ngữ. (bạn cài đặt tiện ích này vào trong trang common.js rồi bấm vô mục từ hình thái trong bảng biến cách hoặc chia động từ để thấy lỗi của nó: <code>mw.loader.load('/w/index.php?title=Thành viên:Nguyên Hưng Trần/Gadget-AcceleratedFormCreation.js&action=raw&ctype=text/javascript');</code>) – [[Thành viên:Nguyên Hưng Trần|<span style="color:black; font-family:Noto Sans">'''Trần Nguyên Hưng'''</span>]][[Thảo luận Thành viên:Nguyên Hưng Trần|<sup><span style="color:#28efff">(◇)</span></sup>]] 08:56, ngày 31 tháng 12 năm 2023 (UTC) :@[[Thành viên:Nguyên Hưng Trần|Nguyên Hưng Trần]] mà chức năng và công dụng của công cụ này j v bn? – [[Thành viên:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[Thảo luận Thành viên:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 06:18, ngày 9 tháng 2 năm 2024 (UTC) ::{{ping|DefenderTienMinh07}} (chép bên en) "This [[:en:Wiktionary:Gadgets|gadget]] allows you to automatically generate entries for inflected forms of words." (tạm dịch: [[WT:Tiện ích|Tiện ích]] này cho phép tự động tạo mục từ cho dạng biến tố của các từ.) – <span style="background:#011635;border-radius:6.342px;box-shadow:1px 1px 5px #173562;padding:5px;width:100%;"><span lang="vi" xml:lang="vi" class="Hani" style="font-size: 150%; line-height: 1em;">[[Thành viên:Nguyên Hưng Trần|<span style="color:beige;">𠊛𥋴</span>]][[Thảo luận Thành viên:Nguyên Hưng Trần|𫇳𣋀]]</span></span> 11:14, ngày 9 tháng 2 năm 2024 (UTC) == Năm mới vui vẻ == Chúc năm mới vui vẻ, bảo quản viên TheHighFighter2. Lời chúc này thay cho lời cảm ơn, từ sự nhiệt thành, tận tâm và chăm chỉ của bảo quản viên trong suốt thời gian qua bằng cách này hay cách khác dành cho dự án. Xin thay mặt cộng đồng, thân kính chúc một ngày lễ vui vẻ, [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 04:10, ngày 9 tháng 2 năm 2024 (UTC) == Công cụ chống spam == Mời bạn vào trang [[Đặc_biệt:Trang_đặc_biệt|này]], chỗ "Công cụ chống spam", bạn nên dùng công cụ này, BQV có quyền sửa trang, như tôi đã giới thiệu tính năng và tiện lợi của nó trên trang tv của mình. Buổi tối tốt lành. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 16:36, ngày 15 tháng 2 năm 2024 (UTC) == Trang chính == Tôi thấy trang chính trong bảng "Ngôn ngữ khác" bị lỗi mô đun. Nhờ bạn sửa lại giúp. Cảm ơn bạn. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 16:55, ngày 3 tháng 5 năm 2024 (UTC) :{{xong}}--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 18:05, ngày 3 tháng 5 năm 2024 (UTC) == Chào bạn == Chào bạn nhé, mình mới tới và có chút thắc mắc muốn hỏi, bây giờ mình muốn cập nhật mô đun/bản mẫu liên quan đến từ mượn thì mình nên sửa/cập nhật bản mẫu hay mô đun nào bạn nhỉ? [[Thành viên:Pminh141|Pminh141]] ([[Thảo luận Thành viên:Pminh141|thảo luận]]) 19:48, ngày 23 tháng 7 năm 2024 (UTC) :{{ping|Pminh141}} Chào bạn! Tôi đã giúp bạn sửa/cập nhật Mô đun:etymology cùng với các trang con của nó--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 16:00, ngày 25 tháng 7 năm 2024 (UTC) ::Cảm ơn bạn, mình chủ yếu hoạt động bên wikipedia nên sang đây có nhiều cái chưa biết. Mà mình đang muốn hỏi bạn xem là không biết viwiktionary có thể update module tài liệu (bản mẫu/mô đun) để nó tự động tạo tài liệu không bạn nhỉ. Mình thấy có nhiều phiên bản ngôn ngữ áp dụng rồi ý? – [[Thành viên:Pminh141|Pminh141]] ([[Thảo luận Thành viên:Pminh141|thảo luận]]) 00:46, ngày 26 tháng 7 năm 2024 (UTC) :::{{ping|Pminh141}} Do dự án còn thiếu nhân lực nên là nhiều bản mẫu/mô đun không được cập nhật thường xuyên. Nên là nếu muốn, bạn có thể giúp cập nhật mô đun này--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 18:41, ngày 26 tháng 7 năm 2024 (UTC) == [[Bản mẫu:unadapted borrowing]] == Chào bạn, mình thấy bản mẫu này đang bị lỗi, phiền bạn sửa lại giúp. Cảm ơn bạn nhiều. [[Thành viên:Pminh141|Pminh141]] ([[Thảo luận Thành viên:Pminh141|thảo luận]]) 19:31, ngày 9 tháng 8 năm 2024 (UTC) :{{ping|Pminh141}} {{xong}}--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 15:13, ngày 10 tháng 8 năm 2024 (UTC) :: Cảm ơn bạn, mà hôm nay mình cố sửa các bản mẫu/mô đun liên quan đến bản mẫu {{Liên kết bản mẫu|transclude}} này mà vẫn chưa lần được ra nguyên nhân, nếu được bạn có thể giúp mình sửa lỗi này không. Mình nghĩ chắc là nó bị thiếu dữ liệu ở đâu đó nên cứ dùng đến là báo lỗi à. [[Thành viên:Pminh141|Pminh141]] ([[Thảo luận Thành viên:Pminh141|thảo luận]]) 21:42, ngày 10 tháng 8 năm 2024 (UTC) :::{{ping|Pminh141}} Để dùng {{LKBM|transclude}}, bạn phải dùng thêm {{LKBM|senseid}}. Ví dụ như bạn muốn dùng bản mẫu transclude ở mục [[ロシア]], bạn thêm bản mẫu senseid vào mục Nga như ở [https://vi.wiktionary.org/w/index.php?title=Nga&curid=249068&diff=2170249&oldid=2170248 đây]--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 16:06, ngày 11 tháng 8 năm 2024 (UTC) ::::Cảm ơn bạn, quả nhiên là cần nhiều thời gian hơn để làm quen với mọi thứ ở đây. Chúc bạn 1 ngày tốt lành. – [[Thành viên:Pminh141|Pminh141]] ([[Thảo luận Thành viên:Pminh141|thảo luận]]) 16:14, ngày 11 tháng 8 năm 2024 (UTC) : Chào bạn nhé, hôm nay mình muốn hỏi bạn chút về mục từ này: [[北朝鮮]], phần phát âm của mục tiếng Trung thì mình có nhập từ tiếng Anh về nhưng mình lại chưa biết cách xử lý bản mẫu/mô đun được dùng ở mục đó. Nên là phiền bạn giúp mình chút. :p [[Thành viên:Pminh141|Pminh141]] ([[Thảo luận Thành viên:Pminh141|thảo luận]]) 07:37, ngày 16 tháng 8 năm 2024 (UTC) ::{{ping|Pminh141}} {{xong}}--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 16:27, ngày 16 tháng 8 năm 2024 (UTC) == Mục từ tiếng Galicia == At the entry [[xirafa]], I added an alternative spelling, that is in the writing system of {{w|en:reintegrationism|reintegrationism}}. How could the term "reintegrationism" be translated? Thanks for reading. -- – [[Thành viên:Apisite|Apisite]] ([[Thảo luận Thành viên:Apisite|thảo luận]]) 01:42, ngày 29 tháng 9 năm 2024 (UTC) :"Chủ nghĩa tái hòa nhập". – [[Thành viên:Nguyên Hưng Trần|<span style="color:#74a12e;font-family:Georgia, serif;">'''NHT'''</span>]] ([[Thảo luận Thành viên:Nguyên Hưng Trần|💬]]) 07:16, ngày 29 tháng 9 năm 2024 (UTC) :: {{ping|Nguyên Hưng Trần}} I would rather use the spelling "Chủ nghĩa tái hoà nhập" but thanks for helping. --[[Thành viên:Apisite|Apisite]] ([[Thảo luận Thành viên:Apisite|thảo luận]]) 02:57, ngày 2 tháng 10 năm 2024 (UTC) == [[Bản mẫu:term]] == Bản mẫu này được dùng cho phân loại một nhóm từ (ví dụ: mục từ [[chân trời sự cố]] là "vật lý học"). Tôi muốn dùng bản mẫu này nhận dạng các mục từ pháp luật được không? Bạn nghĩ sao? [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 14:29, ngày 24 tháng 10 năm 2024 (UTC) :Cú pháp sẽ là {{term|pháp luật}}. [[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 24 tháng 10 năm 2024 (UTC) ::{{ping|P. ĐĂNG}} Theo tôi, bạn nên dùng {{LKBM|nhãn}}. Với cú pháp vd như là {{<code>nhãn|vi|pháp luật</code>}} nó sẽ tự động xếp trang vào Thể loại:Luật pháp/Tiếng Việt. ::{{LKBM|term}} đã lỗi thời, nó hiện gây ra các liên kết sai kiểu như [https://vi.wiktionary.org/wiki/%C4%90%E1%BA%B7c_bi%E1%BB%87t:Li%C3%AAn_k%E1%BA%BFt_%C4%91%E1%BA%BFn_%C4%91%C3%A2y/t%E1%BB%AB_M%E1%BB%B9,_ngh%C4%A9a_M%E1%BB%B9], [https://vi.wiktionary.org/wiki/%C4%90%E1%BA%B7c_bi%E1%BB%87t:Li%C3%AAn_k%E1%BA%BFt_%C4%91%E1%BA%BFn_%C4%91%C3%A2y/T%E1%BB%AB_c%C5%A9,_ngh%C4%A9a_c%C5%A9] – [[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 00:04, ngày 25 tháng 10 năm 2024 (UTC) :::Ok, thanks. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 07:22, ngày 25 tháng 10 năm 2024 (UTC) == Mục từ các thứ tiếng == Các mục từ cùng một chủ đề (ví dụ: Luật pháp) thường trong mỗi ngôn ngữ đặc thù quốc gia nước đó thì tính đa dạng riêng. Tôi có ý định tạo thêm Thể loại:Luật pháp Việt Nam/Tiếng Việt vào các mục từ pháp lý Việt Nam. Thể loại này sẽ là "thể loại con" bên trong thể loại Luật pháp về tiếng Việt. Bạn thấy sao? Cách này sẽ phân chia nếu Wiktionary chủ đề luật có ở các thứ tiếng khác như Thể loại:Luật pháp Hoa Kỳ/Tiếng Việt. Vì tôi có ý định đóng góp chuyên sâu hơn mảng này. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 08:01, ngày 26 tháng 10 năm 2024 (UTC) :@[[Thành viên:P. ĐĂNG|P. ĐĂNG]] Ok, bạn cứ triển khai. Bạn có thể dùng Bản mẫu:nhãn với tham số "luật pháp Việt Nam" để xếp thể loại--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 00:28, ngày 27 tháng 10 năm 2024 (UTC) ::Thanks! [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 07:59, ngày 27 tháng 10 năm 2024 (UTC) == [[Mô đun:languages/data/3/c]] == Không rõ mô đun này được nhúng vào một trang bị khóa theo tầng chỗ nào nữa. Hiện tôi không thể sửa mô đun được. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">Ayane</b>]] <span style="color:Plum">aka.</span> [[:m:User talk:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#ADD8E6;letter-spacing:">eunn</b>]] 06:53, ngày 24 tháng 12 năm 2024 (UTC) :✔ [https://vi.wiktionary.org/w/index.php?title=M%C3%B4_%C4%91un:languages/data/3/c&curid=272284&diff=2197134&oldid=2196315 Đã sửa]--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 13:59, ngày 24 tháng 12 năm 2024 (UTC) == Mục từ == Không rõ công cụ trợ giúp tạo mục từ tự động Wiktionary đã lỗi thời? Tôi thấy có nhiều thành viên thay thế các sửa đổi như thế này [https://vi.wiktionary.org/w/index.php?title=c%C3%B4ng_d%C3%A2n&diff=prev&oldid=2204284][https://vi.wiktionary.org/w/index.php?title=nguy%C3%AAn_b%E1%BA%A3n&diff=prev&oldid=2204282]. Phần lớn các mục từ tại đây tuân theo cách sắp xếp cũ (do tạo từ trước), tôi cũng thường dùng công cụ hiện sẵn trợ giúp khi tạo mục từ mới nên trang vẫn theo cách trình bày này. Vậy lần sau phải tạo thủ công? [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 15:50, ngày 15 tháng 1 năm 2025 (UTC) :@[[Thành viên:P. ĐĂNG|P. ĐĂNG]] Các sửa đổi mà bạn dẫn link ở trên sử dụng dấu = cho phần đề mục; thay các [[:Thể loại:Bản mẫu ngôn ngữ|bản mẫu ngôn ngữ]] bằng {{LKBM|langname}}, các [[:Thể loại:Bản mẫu đề mục loại từ|bản mẫu đề mục loại từ]], [[:Thể loại:Bản mẫu đề mục khác|bản mẫu đề mục khác]] bằng {{LKBM|ĐM}}. Việc thay thế này nhằm: :# Trước đây dự án có nút ấn sửa ở bên phải đề mục, nhưng sau đó bị ẩn đi vì nó liên kết đến sửa đổi bản mẫu thay vì sửa nội dung bên dưới. Cách giải quyết cho vấn đề này là dùng dấu = cho đề mục. :# Tận dụng sẵn dữ liệu từ [[Đặc_biệt:Tiền_tố/Mô_đun:languages/data/|Mô đun:languages]]. Tại sao phải tạo hàng trăm bản mẫu kiểu như {{LKBM|-vie-}}, {{LKBM|-eng-}},... trong khi chỉ cần dùng một bản mẫu? :Còn về trình tạo mục từ tự động, quả thật có phần lỗi thời. Nhưng vẫn có thể dùng nó điền nội dung sau đó thay thế. :--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 16:54, ngày 15 tháng 1 năm 2025 (UTC) ::Bạn có định sửa giao diện các trình tạo mục từ tự động để bắt kịp tiến độ mới này? Tôi nghĩ, việc này sẽ hữu ích hơn khi cứ "điền lại" nội dung sau các lần tạo trang. Hơn thế, chúng ta còn phải giúp người mới sửa lỗi này khi họ tạo bài (vì hầu hết các tv dùng trình tạo mục từ tự động khi tạo bài). [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 04:31, ngày 16 tháng 1 năm 2025 (UTC) == Chú thích == Tôi định tạo bản mẫu chú thích sách mới (lưu tại [[Thành viên:P. ĐĂNG/Nháp 3|đây]]), nhưng tham số pages của nó cố định, không rõ có cách nào tự thêm số trang theo ý muốn khi dùng bản mẫu này không? Trong mục từ [[permanent geodetic beacon]] (tôi thêm chú thích bằng cách sao chép mã nguồn). [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 15:26, ngày 27 tháng 3 năm 2025 (UTC) :@[[Thành viên:P. ĐĂNG|P. ĐĂNG]] [https://vi.wiktionary.org/w/index.php?title=Th%C3%A0nh_vi%C3%AAn:P._%C4%90%C4%82NG/Nh%C3%A1p_3&curid=336667&diff=2224051&oldid=2224044] Bạn xem đã được hay chưa?--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 16:04, ngày 27 tháng 3 năm 2025 (UTC) ::OK, đã được. Thanks. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 06:09, ngày 28 tháng 3 năm 2025 (UTC) == [[ngilo]] == <span style="color:#b01500;"><strong>Lỗi Lua trong Mô_đun:parameters tại dòng 667: Parameter 1 must be a valid language or etymology language code; the value "General Cebuano" is not valid. See WT:LOL and WT:LOL/E.</strong></span> Tôi vô tình lướt trúng trang này và thấy nó bị lỗi mô đun như trên (không chỉ riêng trang này mà còn nhiều trang khác cũng bị lỗi ở [[Mô đun:parameters]]), nhờ bạn xem sửa giúp. – [[Thành viên:Như Gây Mê|<span style="color:orange;"><strong>Halley</strong></span>]] [[Philippines|<span style="color:#00bbe6;"><strong><sup>luv Filipino ❤</sup></strong></span>]] 00:36, ngày 19 tháng 5 năm 2025 (UTC) : @[[Thành viên:Như Gây Mê|Như Gây Mê]] Tôi mới chỉnh lại trong trang [[ngilo]], bạn có thể xem qua. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 04:10, ngày 19 tháng 5 năm 2025 (UTC) == Lỗi trong trình tạo mục từ == Vì lý do nào đó, các thay đổi gần đây của bạn khiến cho nút Tiếp không tự hiện cho phép bấm ngay khi nhập mục từ, phải thay đổi ngôn ngữ rồi đổi lại rất bất tiện mới hiện nút ra. Lý do nào bạn thay đổi vậy? – [[Thành viên:Kateru Zakuro|Kateru Zakuro]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 06:16, ngày 14 tháng 6 năm 2025 (UTC) :@[[Thành viên:Kateru Zakuro|Kateru Zakuro]] Về lí do tôi thay đổi: :# Sử dụng dấu = để hiển thị phần đề mục, nhằm mở lại nút sửa ở bên phải đề mục :# Sử dụng {{LKBM|langname}} và {{LKBM|ĐM}} thay cho các bản mẫu [[:Thể loại:Bản mẫu ngôn ngữ|ngôn ngữ]], [[:Thể loại:Bản mẫu đề mục loại từ|đề mục loại từ]] và [[:Thể loại:Bản mẫu đề mục khác|đề mục khác]], thay vì phải tạo thêm nhiều bản mẫu đề mục mới (nhất là cho tên ngôn ngữ) thì ta gom vào chỉ cần dùng 2 bản mẫu. Cái này tôi học hỏi từ fr.wiktionary :Về phần lỗi, tôi đã giải quyết--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 18:57, ngày 14 tháng 6 năm 2025 (UTC) == Bộ lọc == Tôi nhận thấy các tk rối gần đây liên tục spam "Cô Nhung" và các biến thể liên quan của từ này. Tôi có ý định đề xuất thêm tiêu đề này vào bộ lọc. Bạn nghĩ thế nào? Nếu được, tôi có thể biên soạn danh sách các từ này và biến thể liên quan có khả năng được rối tạo để tham khảo. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 07:47, ngày 21 tháng 6 năm 2025 (UTC) :@[[Thành viên:P. ĐĂNG|P. ĐĂNG]] 👍 Ok, bạn cứ triển khai--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 23:50, ngày 21 tháng 6 năm 2025 (UTC) ::Ok. Đã tạo trang [[Thành viên:P. ĐĂNG/Nháp 2]]. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 05:32, ngày 22 tháng 6 năm 2025 (UTC) :::@[[Thành viên:P. ĐĂNG|P. ĐĂNG]] Tôi đã đưa một số biến thể vào [[MediaWiki:Titleblacklist]], thay cho việc đưa vào bộ lọc--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 16:16, ngày 22 tháng 6 năm 2025 (UTC) == Gửi thư == Tôi có thử test [https://vi.wiktionary.org/wiki/%C4%90%E1%BA%B7c_bi%E1%BB%87t:Trang_%C4%91%E1%BA%B7c_bi%E1%BB%87t công cụ] gửi thư thông báo diện rộng. Nhưng sao khi gửi thư phần tin nhắn không có chữ ký MediaWiki message delivery? Ví dụ giống [https://vi.wikipedia.org/w/index.php?title=Th%E1%BA%A3o_lu%E1%BA%ADn_Th%C3%A0nh_vi%C3%AAn:P._%C4%90%C4%82NG&diff=prev&oldid=73638382 vậy]. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 16:08, ngày 11 tháng 7 năm 2025 (UTC) :{{Tick}} Đã sửa được lỗi. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 16:46, ngày 11 tháng 7 năm 2025 (UTC) == "clause" == Từ "clause" trong tiếng Anh nên được dịch là "mệnh đề" hay "cú" / "tiểu cú" vậy? Mình thấy các trang web dạy tiếng Anh ở Việt Nam ngày nay đều dịch là mệnh đề, nhưng khi mình tra từ điển ''Thuật ngữ ngôn ngữ học Anh – Việt Việt – Anh'', tr. 44 của Cao Xuân Hạo, Hoàng Dũng thì lại dịch là "tiểu cú". Bên ''Từ điển Khái niệm Ngôn ngữ học'', tr. 136 của Nguyễn Thiện Giáp cũng dịch tương tự. Phiền bạn trợ giúp. --[[Thành viên:I can see my baby swimming|I can see my baby swimming]] ([[Thảo luận Thành viên:I can see my baby swimming|thảo luận]]) 08:13, ngày 1 tháng 8 năm 2025 (UTC) == Nhờ == Phiền bạn ẩn lại tên người dùng [https://vi.m.wiktionary.org/w/index.php?title=Th%E1%BB%83_lo%E1%BA%A1i:Ti%E1%BA%BFng_Xhosa&oldid=2277181 này] do lúc nãy tôi gặp sự cố cookie đăng xuất tài khoản không mong muốn, nên sửa đổi này tự tạo ra tài khoản tạm thời. – [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 12:49, ngày 22 tháng 9 năm 2025 (UTC) ==Happy Holidays== <div style="border-style:solid; border-color:violet; background-color:#fff; border-width:2px; text-align:left; padding:8px;" class="plainlinks"> {| style="border: 5px dotted #H1790; background-color: #DDDDDD; padding:4px" | rowspan="2" valign="left" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Christmas Tree 2011-12-24.jpg|left|300px|link=]]<span style="display:block;padding-top:10px;clear:both"> | <span style="font-family: Georgia; font-size: 98%; color: #190a89;">Chúc bạn TheHighFighter2 có một mùa '''Giáng sinh''' an lành, ấm áp và tràn ngập yêu thương bên gia đình!<br/> Bước sang '''năm mới''' 2026, chúc bạn gặp nhiều may mắn,<br/> gặt hái được nhiều thành công trong công việc và học tập.<br/> Một lần nữa chúc bạn sẽ có một năm mới thật an khang, hạnh phúc và vạn sự như ý!!</span> <br /> <span style="font-family: Georgia; font-size: 92%;"> | rowspan="2" valign="right" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Atlantic Firework Festival 2016 (53368638571).jpg|left|360px|link=]]<span style="display:block;padding-top:10px;clear:both"> |}</div> Lời chúc chân thành từ: <span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px">&nbsp;[[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]&#124;[[User talk:Kelly zhrm|&#248;]]&nbsp;</span>&nbsp; 05:43, ngày 24 tháng 12 năm 2025 (UTC) :@[[Thành viên:Kelly zhrm|Kelly zhrm]]<poem>Cảm ơn lời chúc chân thành</br>Như là gió ấm bạn dành cho tôi</br>Năm tàn với tháng phai phôi</br>Chào mơn mởn mới như chồi đâm non...</br>Mượn lời lục bát son son</br>Giáng Sinh chúc bạn vui giòn niềm vui!</poem> :--.--[[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]]) 13:33, ngày 24 tháng 12 năm 2025 (UTC) == [[Võ Nguyên Giáp]] == Theo bạn, mục từ này có nên tồn tại trên Wiktionary tiếng Việt. [[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>]] 06:15, ngày 25 tháng 12 năm 2025 (UTC) :@[[Thành viên:Hiyuune|Hiyuune]] Theo [[:en:Wiktionary:NSE]], không nên đưa một cá nhân cụ thể nào đó vào làm một nghĩa trong một mục từ nếu tiêu đề của mục từ đó bao gồm cả họ và tên gọi. Một vài vd như [[:en:Adolf Hitler]], [[:en:Elizabeth II]] đều không có bài bên en; những người có bài như [[:en:George Washington]], [[:en:Donald Trump]] sẽ không thấy dòng định nghĩa nào mô tả mấy người này là ai, mà chỉ có nghĩa phát sinh thôi--.--[[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:06, ngày 25 tháng 12 năm 2025 (UTC) :: Nếu vậy thì đợi 7 ngày nữa rồi đem mục từ này ra biểu quyết xóa. Bài đã gắn biển <code><nowiki>{{rfv}}</nowiki></code>. [[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>]] 23:45, ngày 25 tháng 12 năm 2025 (UTC) : "Eastern Aramaic" nên dịch thành "Đông Aram" hay "Aram Đô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:44, ngày 2 tháng 1 năm 2026 (UTC) ::@[[Thành viên:Hiyuune|Hiyuune]] [https://vi.wikipedia.org/wiki/Wikipedia:Th%E1%BA%A3o_lu%E1%BA%ADn/L%C6%B0u_59#Nh%C3%B3m_ng%C3%B4n_ng%E1%BB%AF_Slav_%C4%90%C3%B4ng Thảo luận này] có lẽ sẽ trả lời cho câu hỏi của bạn--.--[[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]]) 17:06, ngày 2 tháng 1 năm 2026 (UTC) == Thể loại giống của mục từ == Hôm qua tôi có cập nhật một số mô đun như [[Mô đun:languages]], [[Mô đun:languages/templates]], [[Mô đun:headword]] và [[Mô đun:headword/templates]] nhưng sau khi cập nhật thì không còn thấy xếp thể loại giống của mục từ (ví dụ: [[αστρολογία]]; không xếp vào [[:Thể loại:Danh từ giống cái tiếng Hy Lạp]]). Không rõ lỗi nó nằm ở đâu. [[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:17, ngày 4 tháng 3 năm 2026 (UTC) :@[[Thành viên:Hiyuune|Hiyuune]] {{xong}}: xem [https://vi.wiktionary.org/w/index.php?title=M%C3%B4_%C4%91un:headword/data&diff=prev&oldid=2334055]--.--[[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]]) – [[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]]) 07:54, ngày 5 tháng 3 năm 2026 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:17, ngày 28 tháng 4 năm 2026 (UTC) </div> <!-- 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=User:Keegan_(WMF)/test&oldid=30472541 --> == Thư mời cho đề nghị cấp quyền bot == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:OOjs UI icon advanced.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|trang đề nghị cấp quyền bot]] của "'''[[User:BlueShurikenNinjaBot|BlueShurikenNinjaBot]]'''" tại '''[[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|đây]]'''. <small>Kính mong bạn xem xét và thảo luận về đề nghị cấp quyền bot này! Thân ái!</small> |} &nbsp;Mong bạn cho ý kiến ạ. [[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]]) 16:45, ngày 7 tháng 5 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:Kateru Zakuro@viwiktionary gửi cho mọi người trong danh sách tại https://vi.wiktionary.org/w/index.php?title=Wiktionary:Danh_s%C3%A1ch_th%C6%B0&oldid=2323217 --> jl3fvvqd6bbk4oovq7u9eofco3td2ta Thổ Nhĩ Kỳ 0 258061 2351301 2170893 2026-05-08T06:29:08Z TheHighFighter2 42988 ± 4 thể loại dùng [[w:WP:HOTCAT|HotCat]] 2351301 wikitext text/x-wiki {{-vie-}} {{-info-}} [[Hình:Turkey (orthographic projection).svg|nhỏ|Vị trí của Thổ Nhĩ Kỳ trên thế giới (phần tô màu xanh)]] {{-etym-}} Trong [[w:Tiếng Anh|tiếng Anh]], quốc gia này được gọi là ''[[Turkey]]''. Bằng [[w:Tiếng Trung Quốc|tiếng Trung]], "Tu-r-key" được phiên âm theo [[w:Bính âm Hán ngữ|pinyin]] là “Tǔ ěr qí” và viết bằng [[w:Chữ Hán|chữ Hán]] là “[[土耳其]]” (''Thổ Nhĩ Kỳ'').<ref>Trần Văn Chánh. Từ điển Hán-Việt — Hán ngữ cổ đại và hiện đại. Nhà xuất bản Từ điển Bách khoa. Năm 2014. Trang 2434.</ref> {{-pron-}} {{vie-pron}} {{-place-}} '''Thổ Nhĩ Kỳ''' # {{senseid|vi|Q43}} [[quốc gia|Quốc gia]] có [[lãnh thổ]] [[nằm]] ở cả [[châu Á]] lẫn [[châu Âu]]. {{-trans-}} * {{eng}}: [[Turkey]] * {{mri}}: [[Tākei]] * {{fra}}: [[Turquie]] * {{tur}}: [[Türkiye]] {{-ref-}} [[Thể loại:Địa danh tiếng Việt]] [[Thể loại:vi:Quốc gia]] [[Thể loại:vi:Quốc gia của châu Á]] [[Thể loại:vi:Quốc gia của châu Âu]] [[Thể loại:vi:Thổ Nhĩ Kỳ]] ikcnub7o7zpk2tix8y60wgoptj46kq1 Wiktionary:Những từ điển khác trên Web 4 260687 2351193 2030410 2026-05-07T17:18:43Z Kateru Zakuro 34522 đã dời [[Thể loại:Wiktionary]] dùng [[w:WP:HOTCAT|HotCat]] 2351193 wikitext text/x-wiki {{Historical}} ===FVDP=== Ngoài Wikimedia, cũng có một số dự án cùng mục đích cố gắng phát triển bộ từ điển miễn phí dùng sự đóng góp của cộng đồng. Trong số dự án này, [http://www.informatik.uni-leipzig.de/~duc/Dict/ Free Vietnamese Dictionary Project] (FVDP) chắc là cái nổi tiếng nhất, nội dung của các từ điển FVDP được xuất hiện tại rất nhiều website, kể cả Wiktionary tiếng Việt, vì tác giả cung cấp nó miễn phí theo giấy phép [[w:Giấy phép Công cộng GNU|Giấy phép Công cộng GNU]] (GPL). Vào năm 2006, chúng ta đã [[Wiktionary:Nguồn gốc/FVDP|xin phép]] sử dụng cả nội dung FVDP theo các điều kiện của giấy phép [[Wiktionary:Nguyên văn Giấy phép Tài liệu Tự do GNU|Giấy phép Tài liệu Tự do GNU]] (GFDL). Sau đó, chúng ta thay thế GFDL bằng giấy phép Creative Commons Ghi công–Chia sẻ tương tự (CC-BY-SA), theo điều khoản trong GFDL. ===OVDP=== Tại vì hình như FVDP đã ngừng phát triển trong thời gian gần đây, hai dự án đã chịu trách nhiệm tiếp tục sửa các lỗi trong FVDP và mở rộng nó vào thêm ngôn ngữ: Wiktionary tiếng Việt và [http://www.tudientiengviet.net/index.php?l=vietnamese Dự án từ điển mở tiếng Việt] (OVDP). Đáng tiếc rằng hai dự án này không được chia sẻ nhiều nội dung, tại vì Wiktionary phải sử dụng giấy phép GFDL hoặc CC-BY-SA (theo quy định Wikimedia), trong khi OVDP sử dụng GPL (cùng giấy phép với FVDP).<ref name="OVDP giới thiệu">[http://www.tudientiengviet.net/intro.html Giới thiệu dự án Từ Điển Mở Tiếng Việt].</ref> Tuy nhiên, chúng ta mời mọi người vui lòng đóng góp vào cả hai dự án; hễ khi bạn là tác giả của một mục từ, bạn có quyền đóng góp mục từ đó ở cả hai dự án không sao. Chúng ta mong là Wiktionary và OVDP có thể cộng tác về những vấn đề không bị hạn chế vì lý do bản quyền. Khác với OVDP, Wiktionary đang cải tiến [[:Thể loại:Mục từ tiếng Việt|từ điển Việt-Việt]] của FVDP, và chúng ta cũng cố gắng cung cấp thông tin nâng cao như là cách chia động từ và nguyên từ. Vì thế, và vì những mục từ được nhập vào đây từ FVDP vẫn có lỗi chính tả và lỗi ngữ nghĩa, chúng ta hiện đang thực hiện phần nhiều sửa đổi bằng tay. ===Baamboo=== [http://tratu.baamboo.com/ Baamboo–Tra Từ] (nay là tratu.soha.vn) cũng là một dự án nguồn mở dựa trên nội dung của FVDP, và cũng như Wiktionary, nó chạy trên phần mềm [[w:MediaWiki|MediaWiki]] (dù đã được sửa đổi khá nhiều). Vì họ sử dụng giấy phép [[w:Creative Commons|Creative Commons]] [http://creativecommons.org/licenses/by-sa/3.0/ Attribution-Share Alike] (phiên bản 3.0), Wiktionary được phép sử dụng nội dung của từ điển này. Hiện nay (tháng 05 năm 2008), Baamboo–Tra từ đang thử nghiệm và cho ra mắt phiên bản thứ 2. Phiên bản mới này có nhiều tính năng và tiện ích mới, hướng tới việc phục vụ lợi ích cộng đồng nhiều hơn, mở hơn để cộng đồng có thể tham gia xây dựng và đóng góp. ===OmegaWiki=== [http://omegawiki.org/Meta:Main_Page OmegaWiki] là một dự án đa ngôn ngữ để thay thế cho Wiktionary. Họ đã chuyên biệt MediaWiki (phần mềm mà chạy website này) để chứa đựng [[w:Dữ liệu nửa cấu trúc|dữ liệu nửa cấu trúc]] (''semi-structured data''); thay vì cần nhiều website riêng để cung cấp lời định nghĩa trong nhiều ngôn ngữ, các phiên bản ngôn ngữ được hợp nhất, mỗi từ một mục từ. OmegaWiki cho phép chọn giấy phép GFDL hay Creative Commons [http://creativecommons.org/licenses/by/2.5/deed.en Attribution] (phiên bản 2.5 trở lên), nên chúng ta có quyền sao chép hay dịch nội dung từ OmegaWiki thoải mái. ==Chú thích== <references/> [[en:Wiktionary:Other dictionaries on the Web]] fxy027dml6wbmkxfhh6w39zmbedzs53 Thảo luận Thành viên:Lcsnes 3 261857 2351183 2314520 2026-05-07T16:45:19Z MediaWiki message delivery 19980 Mục mới: /* Thư mời cho đề nghị cấp quyền bot */ 2351183 wikitext text/x-wiki ==Hoan nghênh== <div style="border:1px solid #FDA; vertical-align:top; padding: 0.5em; background: #FFFFE5;"> <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 Lcsnes! 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; background: #FEC; border: 1px solid #FDA; margin-top: 1em; font-size: 1em"> [[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>&nbsp;--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 08:20, ngày 2 tháng 1 năm 2022 (UTC) == Câu hỏi từ [[Thành viên:Nguyên Hưng Trần|Nguyên Hưng Trần]] ([[Thảo luận Thành viên:Nguyên Hưng Trần|thảo luận]]) == Tại sao bạn thường tạo một chữ cái Latinh hoặc chữ Ethiopia nào đó vào lúc gần nữa đêm? (tức là khoảng từ 23:00 đến 00:00) – [[Thành viên:Nguyên Hưng Trần|<span style="color:black; font-family:Noto Sans">'''Trần Nguyên Hưng'''</span>]][[Thảo luận Thành viên:Nguyên Hưng Trần|<sup><span style="color:#28efff">(◇)</span></sup>]] 10:03, ngày 9 tháng 11 năm 2022 (UTC) ==Happy Holidays== <div style="border-style:solid; border-color:violet; background-color:#fff; border-width:2px; text-align:left; padding:8px;" class="plainlinks"> {| style="border: 5px dotted #H1790; background-color: #DDDDDD; padding:4px" | rowspan="2" valign="left" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Christmas Tree 2011-12-24.jpg|left|300px|link=]]<span style="display:block;padding-top:10px;clear:both"> | <span style="font-family: Georgia; font-size: 98%; color: #190a89;">Chúc bạn Lcsnes có một mùa '''Giáng sinh''' an lành, ấm áp và tràn ngập yêu thương bên gia đình!<br/> Bước sang '''năm mới''' 2026, chúc bạn gặp nhiều may mắn,<br/> gặt hái được nhiều thành công trong công việc và học tập.<br/> Một lần nữa chúc bạn sẽ có một năm mới thật an khang, hạnh phúc và vạn sự như ý!!</span> <br /> <span style="font-family: Georgia; font-size: 92%;"> | rowspan="2" valign="right" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Atlantic Firework Festival 2016 (53368638571).jpg|left|360px|link=]]<span style="display:block;padding-top:10px;clear:both"> |}</div> Lời chúc chân thành từ: <span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px">&nbsp;[[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]&#124;[[User talk:Kelly zhrm|&#248;]]&nbsp;</span>&nbsp; 08:05, ngày 24 tháng 12 năm 2025 (UTC) == Thư mời cho đề nghị cấp quyền bot == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:OOjs UI icon advanced.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|trang đề nghị cấp quyền bot]] của "'''[[User:BlueShurikenNinjaBot|BlueShurikenNinjaBot]]'''" tại '''[[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|đây]]'''. <small>Kính mong bạn xem xét và thảo luận về đề nghị cấp quyền bot này! Thân ái!</small> |} &nbsp;Mong bạn cho ý kiến ạ. [[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]]) 16:45, ngày 7 tháng 5 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:Kateru Zakuro@viwiktionary gửi cho mọi người trong danh sách tại https://vi.wiktionary.org/w/index.php?title=Wiktionary:Danh_s%C3%A1ch_th%C6%B0&oldid=2323217 --> 8kja1lkp4v4dwu6aaddxvjtd36ykyy9 Thảo luận Thành viên:WhoAlone 3 262036 2351185 2350244 2026-05-07T16:45:19Z MediaWiki message delivery 19980 Mục mới: /* Thư mời cho đề nghị cấp quyền bot */ 2351185 wikitext text/x-wiki ==Hoan nghênh== <div style="border:1px solid #FDA; vertical-align:top; padding: 0.5em; background: #FFFFE5;"> <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 Russian Federal Subjects! 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; background: #FEC; border: 1px solid #FDA; margin-top: 1em; font-size: 1em"> [[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>&nbsp;--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 04:21, ngày 13 tháng 1 năm 2022 (UTC) == Chú ý == Cảm ơn bạn đã đóng góp ở đây. Trước khi bạn tiếp tục đóng góp, hãy lưu ý nhưng điều sau: *Nhiều trang bạn dùng {{tl|-dfn-}} là không đúng do bản mẫu đó dùng cho từ không thuộc bất kỳ loại từ nào. Nhưng những từ bạn tạo đều có loại từ cả như [[đăng tải]] là động từ phải dùng {{tl|-verb-}}. Vì vậy trước khi tạo mục từ phải xem kỹ loại từ nào rồi đặt bản mẫu phù hợp với từ đó. *Nhớ xuống dòng bản mẫu, không nên để một cục như [https://vi.wiktionary.org/w/index.php?title=%C4%91%C4%83ng_t%E1%BA%A3i&oldid=2040920 thế này]. Phải xuống dòng để người ta dễ nhìn. Mong bạn chú ý những điều trên khi tạo mục từ, cảm ơn.--[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 10:04, ngày 13 tháng 1 năm 2022 (UTC) :Cảm ơn góp ý của bạn. – [[Thành viên:Russian Federal Subjects|Russian Federal Subjects]] ([[Thảo luận Thành viên:Russian Federal Subjects|thảo luận]]) 11:45, ngày 13 tháng 1 năm 2022 (UTC) == Tiếng Nga == Xin chào, xin hỏi biết nói tiếng Nga không? [[Đặc biệt:Contributions/138.229.19.202|138.229.19.202]] ([[Thảo luận Thành viên:138.229.19.202|thảo luận]]) 00:21, ngày 19 tháng 1 năm 2022 (UTC) :Chào bạn, tôi hầu như không biết nói tiếng Nga nên chỉ hiểu được một vài từ cơ bản. – [[Thành viên:Russian Federal Subjects|Russian Federal Subjects]] ([[Thảo luận Thành viên:Russian Federal Subjects|thảo luận]]) 00:23, ngày 19 tháng 1 năm 2022 (UTC) * la caisse: [[File:La caisse.ogg]] Cái này là Tiếng Pháp giọng Canada, em không nghe rõ, anh nghe “là kê-x” hay “là cây-x”? [[Đặc biệt:Contributions/138.229.19.202|138.229.19.202]] ([[Thảo luận Thành viên:138.229.19.202|thảo luận]]) 00:28, ngày 19 tháng 1 năm 2022 (UTC) :Tôi nghe hơi giống "cây-x" hơn bạn nhé. – [[Thành viên:Russian Federal Subjects|Russian Federal Subjects]] ([[Thảo luận Thành viên:Russian Federal Subjects|thảo luận]]) 00:31, ngày 19 tháng 1 năm 2022 (UTC) ::Cám ơn. Năm mới vui vẻ! [[Đặc biệt:Contributions/138.229.19.202|138.229.19.202]] ([[Thảo luận Thành viên:138.229.19.202|thảo luận]]) 00:36, ngày 19 tháng 1 năm 2022 (UTC) == [[Bản mẫu:*đề mục]] == Chào bạn. Để tránh hiện tượng lỗi tính số liệu thống kê ở trang [[Wiktionary:Thống kê]], bạn chú ý sau khi tạo đề mục ngôn ngữ, bạn nhớ thêm vào danh sách này (theo bảng chữ cái). Xin cảm ơn bạn đã giúp sức cho dự án. [[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 01:37, ngày 19 tháng 1 năm 2022 (UTC) == Chú ý một chút == Cảm ơn bạn đã đóng góp, tuy nhiên mong bạn có thể thay dòng dầu mục từ in đậm như '''haron''' thành <code><nowiki>{{pn}}</nowiki></code> để dùng tên trang thay cho việc viết lại tên sẽ tốt hơn. Cảm ơn.--[[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 10:11, ngày 15 tháng 2 năm 2022 (UTC) == Thư mời tham gia biểu quyết == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[File:Logo vote.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Thảo luận Wiktionary:Bảo quản viên|Biểu quyết bảo quản viên]] của '''[[Thành viên:Ccv2020]]''' tại '''[[Thảo_luận_Wiktionary:Bảo_quản_viên#Ccv2020|đây]]'''. <small>Hãy cùng tích cực tham gia các biểu quyết và thảo luận về chúng. Mỗi hành động của bạn sẽ góp phần không nhỏ để xây dựng các mục từ trên Wiktionary - tài sản chung của cộng đồng chúng ta, giúp wiki ta ngày càng phát triển vững mạnh! Thân ái!</small> |}[[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 00:55, ngày 23 tháng 2 năm 2022 (UTC) == Về các mục từ Unicode tiếng Khiết Đan == Chào bạn. Cảm ơn bạn đã đóng góp cho mảng Unicode. Theo danh sách [[Trợ giúp:Unicode/Ảnh/Danh sách|này]], toàn bộ 470 ký tự trong khối “Khitan Small Script” đều cần {{tl|cảnh báo Unicode}} (chúng thuộc Unicode 13.0 – 2020, chưa có thiết bị nào hỗ trợ sẵn chúng, đây là một ngôn ngữ cổ). Xin lỗi vì quy định này do tôi nghĩ ra, nhưng nó cho thấy mảng Unicode cũng là một mảng quan trọng trong từ điển mở này, và chúng cũng cần phải có một hệ thống quản lý. Vì thế, phiền bạn một chút, bạn hãy thêm bản mẫu trên vào tất cả các mục từ Unicode có liên quan. Xin cảm ơn. [[Thành viên:Ccv2020|<span style=color:#80ff00>&#x2395;</span>]] – [[Thảo luận Thành viên:Ccv2020|<span style=color:#ff0000>&#x2370;</span>]] – [[Đặc biệt:Đóng góp/Ccv2020|<span style=color:#ffff00>&#x303f;</span>]] 08:11, ngày 20 tháng 6 năm 2022 (UTC) == Về biển tạm nghỉ trên trang cá nhân của bạn == Bạn đã hoạt động trở lại rồi mà sao lại đặt biển tạm nghỉ đến ngày 13? -- [[Thành viên:Nguyên Hưng Trần|Nguyên Hưng Trần]] ([[Thảo luận Thành viên:Nguyên Hưng Trần|thảo luận]]) 11:41, ngày 12 tháng 8 năm 2022 (UTC) == Bảo quản viên? == Tôi thấy bạn khá là tích cực trong việc đóng góp trên Wiktionary và đang đứng hạng 2 về tổng số sửa đổi (trừ bot), không biết liệu bạn có đồng ý muốn ngồi vào ghế bảo quản viên hay không nên hỏi. [[Thành viên:KhanhCN Defender1st Minh|KhanhCN Defender1st Minh]] ([[Thảo luận Thành viên:KhanhCN Defender1st Minh|thảo luận]]) 16:14, ngày 20 tháng 8 năm 2022 (UTC) == Danh từ riêng == Xin chào, cháu thêm [[Wilson]] rồi, mà chữ "Danh từ riêng" không có ở đó. [[Đặc biệt:Contributions/138.229.19.202|138.229.19.202]] ([[Thảo luận Thành viên:138.229.19.202|thảo luận]]) 19:49, ngày 30 tháng 9 năm 2022 (UTC) :Chào bạn, nếu muốn hiện đề mục "Danh từ riêng" thì bạn dùng bản mẫu {{Liên kết bản mẫu|-pr-noun-}} thay cho {{Liên kết bản mẫu|-noun-}} nhé. – [[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> 01:23, ngày 1 tháng 10 năm 2022 (UTC) ::Viết rồi. [[Đặc biệt:Contributions/138.229.19.202|138.229.19.202]] ([[Thảo luận Thành viên:138.229.19.202|thảo luận]]) 12:20, ngày 1 tháng 10 năm 2022 (UTC) == Hoặc mu hoặc mus == By one of the Maonan (mmd) entries, did you mean "mus" or simply "mu"? -- – [[Thành viên:Apisite|Apisite]] ([[Thảo luận Thành viên:Apisite|thảo luận]]) 10:27, ngày 26 tháng 2 năm 2023 (UTC) :It is "mus". – [[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> 10:30, ngày 26 tháng 2 năm 2023 (UTC) == BQV == Bạn có muốn làm BQV không? Tôi thấy bạn hiện là tv tích cực nhất của dự án. Nếu muốn gánh thêm trách nhiệm, bạn có thể tự ra ứng cử. Tôi sẽ ủng hộ và cấp quyền trong tương lai gần. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 13:33, ngày 19 tháng 6 năm 2023 (UTC) :Tôi sẽ xem xét có nên làm hay không. – [[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> 14:29, ngày 19 tháng 6 năm 2023 (UTC) ::Khi bạn quyết định ra ứng cử thì nhớ tag tôi. Tôi hy vọng bạn sẽ đồng ý vác tù và hàng tổng. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 18:03, ngày 22 tháng 6 năm 2023 (UTC) == Thư mời == Mời bạn cho đôi lời nhận xét tại [[Thảo luận Wiktionary:Bảo quản viên#P. %C4%90%C4%82NG|Biểu quyết chọn bảo quản viên]]. Xin hết lòng cảm ơn rất nhiều. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 06:42, ngày 24 tháng 8 năm 2023 (UTC) == Chú ý == Khi bạn tạo bản mẫu dòng tên mục từ, chuyển tự, biến cách, tham khảo... cho các ngôn ngữ với mã ISO 639-1 thì cần phải di chuyển chúng sang mã ISO 639-2/3 nhé bạn. – [[Thành viên:Nguyên Hưng Trần|<span style="color:black; font-family:Noto Sans">'''Trần Nguyên Hưng'''</span>]][[Thảo luận Thành viên:Nguyên Hưng Trần|<sup><span style="color:#28efff">(◇)</span></sup>]] 11:19, ngày 21 tháng 10 năm 2023 (UTC) == Thư mời == Chào bạn! Mời bạn cho ý kiến tại [[Thảo_luận_Wiktionary:Bảo_quản_viên#Nguyên_Hưng_Trần|Biểu quyết chọn bảo quản viên]]. Thanks bạn! [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 17:20, ngày 30 tháng 12 năm 2023 (UTC) == BQV == Tôi đã ứng cử bạn vào làm bảo quản viên tại dự án. Mời bạn vào [https://vi.wiktionary.org/wiki/Th%E1%BA%A3o_lu%E1%BA%ADn_Wiktionary:B%E1%BA%A3o_qu%E1%BA%A3n_vi%C3%AAn#WhoAlone đây] chấp nhận ứng cử. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 04:41, ngày 31 tháng 12 năm 2023 (UTC) == Công cụ chống spam == Mời bạn vào trang [[Đặc_biệt:Trang_đặc_biệt|này]], kéo xuống đề mục "công cụ chống spam". Bạn WhoAlone nên dùng công cụ này, BQV mặc định sửa được trang đó. Dùng công cụ này sẽ tiện lợi hơn trong công tác phòng chống tên miền không mang tính đóng góp. Vì tựu chung, "phòng bệnh tốt hơn trị bệnh", dự án vốn ít người nên hạn chế rơi vào trường hợp cấm (đặc biệt đối với IP), chặn từ địa chỉ trang web spam mang lại hiệu quả hơn. Một ngày tốt lành! [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 08:25, ngày 28 tháng 1 năm 2024 (UTC) == [[Mô đun:languages/data/3]] == Chào bạn, hiện tại mô đun dữ liệu ngôn ngữ mà bạn đang sửa đổi (xem [https://vi.wiktionary.org/w/index.php?title=M%C3%B4_%C4%91un:languages/data/3/h&curid=272288&diff=2144810&oldid=2144615 2144810]) thì một số ngôn ngữ đã lỗi thời rồi (tức là, bên en đã chỉnh sửa lại mô đun ngôn ngữ rồi sau đó là cập nhật dữ liệu (/data/[2 hoặc 3]/[chữ đầu tiên của tên mã]) của nó). Cho nên khi bạn hỗ trợ ngôn ngữ nào thì bạn có thể chép bên en (thường là bắt đầu bằng "m["(''mã ngôn ngữ'')"]") rồi dán vào (tức là đè lên) thông tin ngôn ngữ bạn muốn nhé! – <span style="background:#011635;border-radius:6.342px;box-shadow:1px 1px 5px #173562;padding:5px;width:100%;"><span lang="vi" xml:lang="vi" class="Hani" style="font-size: 150%; line-height: 1em;">[[Thành viên:Nguyên Hưng Trần|<span style="color:beige;">𠊛𥋴</span>]][[Thảo luận Thành viên:Nguyên Hưng Trần|𫇳𣋀]]</span></span> 11:08, ngày 28 tháng 1 năm 2024 (UTC) == Chúc mừng năm mới == Chúc bạn ngày lễ vui vẻ và giữ vững tinh thần tích cực, chung tay đóng góp cho cả hai dự án Wikipedia và Wiktionary ngày càng lớn mạnh. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 04:04, ngày 9 tháng 2 năm 2024 (UTC) == Di chuyển tắt đổi hướng == Thay vì bạn di chuyển mục từ bạn tạo có tiêu đề sai sau đó xóa đổi hướng của nó thì bạn có thể tắt chức năng "Để lại trang đổi hướng" bên dưới. Làm việc này sẽ nhanh hơn là di chuyển sau đó xóa mục từ. – <span style="background:#011635;border-radius:6.342px;box-shadow:1px 1px 5px #173562;padding:5px;width:100%;"><span lang="vi" xml:lang="vi" class="Hani" style="font-size: 150%; line-height: 1em;">[[Thành viên:Nguyên Hưng Trần|<span style="color:beige;">𠊛𥋴</span>]][[Thảo luận Thành viên:Nguyên Hưng Trần|𫇳𣋀]]</span></span> 03:33, ngày 15 tháng 2 năm 2024 (UTC) == Lùi sửa đổi == Chào bạn. Cho mình hỏi tại sao bạn lại lùi sửa đổi xóa dấu chấm của mình trong [[thế hệ]]. – [[Thành viên:Duchuyfootball|Duchuyfootball]] ([[Thảo luận Thành viên:Duchuyfootball|thảo luận]]) 11:07, ngày 9 tháng 2 năm 2025 (UTC) :Có chút nhầm lẫn nhé bạn, tôi đã xem lại và xóa lại dấu chấm rồi. – [[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> 13:25, ngày 9 tháng 2 năm 2025 (UTC) == Tiếng Moklen == Where in Thunder did you get the Moklen Terms in the Thai Script? -- – [[Thành viên:Apisite|Apisite]] ([[Thảo luận Thành viên:Apisite|thảo luận]]) 07:37, ngày 25 tháng 3 năm 2025 (UTC) :Here: https://scholarspace.manoa.hawaii.edu/server/api/core/bitstreams/dbe1822a-b500-4cc2-bbad-29ae56b3afb0/content – [[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> 15:13, ngày 25 tháng 3 năm 2025 (UTC) == IP/Dải IP == Tôi có ý định chia sẻ với bạn một số việc đã học được từ các thao tác bảo trì Wikipedia (cũng từ các bạn tv đã hướng dẫn tôi :D). Thực ra, cấm IP cho đến dải dường không ưu tiên trong công tác bảo quản, nên được hạn chế hình thức cấm này hết mức có thể vì IP khi bị cấm có thể nhảy liên tục (chỉ cấm khi đã là phương án cuối cùng). Nhắm vào mục đích phá hoại người dùng mới là ưu tiên (ví dụ, IP XXX phá hoại duy nhất bài XYZ, thì ưu tiên khóa bài hơn việc cấm; IP spam link thì đưa link đó là danh sách link spam, hơn là việc cấm). Các IP chỉ có duy nhất từ 1 sửa đổi, việc cấm nên là hạn chế nhất có thể. Ngoài ra, các tv trước khi bị cấm nên được nhắc nhở vì quy định của dự án là chế tài người dùng khi có hành vi lặp đi lặp lại (trừ rối + phá hoại dai dẳng). Tôi đã bỏ cấm cho IP [[Thành viên:42.114.213.20|42.114.213.20]] vì nhận thấy địa chỉ này chưa lạm dụng + nhắc nhở trước khi chế tài. Hy vọng tương lai được cộng tác cùng bạn nhiều hơn trong việc hỗ trợ bảo trì dự án. Một ngày tốt lành. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 15:54, ngày 12 tháng 5 năm 2025 (UTC) == Quy định mục từ tiếng Lự == Mặc dù ở Trung Quốc hay trong từ điển của Hanna thì mỗi âm tiết trong từ tiếng Lự đều tách ra như tiếng Việt, nhưng bên en không có mục từ nào tách âm tiết ra như vậy cả, cho nên quy định mục từ tiếng Lự ở đây cũng ghép âm tiết luôn (tôi biết là lâu rồi bạn chưa tạo mục từ tiếng Lự nào cả nhưng tôi chỉ đưa ra lời khuyên thôi). – [[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|🌸]]) 17:46, ngày 27 tháng 9 năm 2025 (UTC) == Trang thảo luận có phá hoại == Bác để ý chút nhé, thay vì bác tẩy trống trang thì bác vui lòng xóa luôn trang đó đi luôn ạ, để trống như vậy là vô nghĩa và có thể gây thừa thãi. Cảm ơn bác đã chú ý – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 14:53, ngày 23 tháng 10 năm 2025 (UTC) == Thanh điệu tiếng Thái Trắng == Tôi quên nói với bạn là bản thân tiếng Thái Trắng khi viết là hầu hết các từ có dấu thanh, nhưng cái cuốn từ vựng của Đỗ Thị Tấc và Hà Mạnh Phong nó không ghi dấu thanh điệu. Nếu không để dấu thanh điệu lên các phụ âm (tô) thì có thể mỗi âm tiết sẽ phát âm với thanh ngang hoặc thanh huyền (mặc dù chuyển tự có phân biệt thanh điệu), nên khi tạo mục từ tôi nghĩ các mục từ nên để thêm dấu thanh. – [[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|🌸]]) 11:45, ngày 5 tháng 11 năm 2025 (UTC) == [[Mô đun:quote-test]] == Thấy bạn đang hoạt động, nhờ bạn xóa mô đun này do tạo nhầm. [[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>]] 13:02, ngày 13 tháng 1 năm 2026 (UTC) == [[MediaWiki:Rcshowhideanons]] == Như tôi đã nêu ở phần lý do, trang cần xóa là cả trang MediaWiki này chứ không phải chỉ xóa mỗi trang thảo luận. – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 08:17, ngày 16 tháng 1 năm 2026 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:17, ngày 28 tháng 4 năm 2026 (UTC) </div> <!-- 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=User:Keegan_(WMF)/test&oldid=30472541 --> == [[Thảo luận Thành viên:P. ĐĂNG]] == Nhờ bạn bán khóa trang thảo luận thành viên này 3 tháng do rối phá bĩnh. [[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>]]) 03:50, ngày 5 tháng 5 năm 2026 (UTC) == Thư mời cho đề nghị cấp quyền bot == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:OOjs UI icon advanced.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|trang đề nghị cấp quyền bot]] của "'''[[User:BlueShurikenNinjaBot|BlueShurikenNinjaBot]]'''" tại '''[[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|đây]]'''. <small>Kính mong bạn xem xét và thảo luận về đề nghị cấp quyền bot này! Thân ái!</small> |} &nbsp;Mong bạn cho ý kiến ạ. [[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]]) 16:45, ngày 7 tháng 5 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:Kateru Zakuro@viwiktionary gửi cho mọi người trong danh sách tại https://vi.wiktionary.org/w/index.php?title=Wiktionary:Danh_s%C3%A1ch_th%C6%B0&oldid=2323217 --> kvycm13lr0rg77fj9zkk8eq3x87ro46 Đông Timor 0 266891 2351297 2170744 2026-05-08T06:23:20Z TheHighFighter2 42988 ± 3 thể loại dùng [[w:WP:HOTCAT|HotCat]] 2351297 wikitext text/x-wiki {{-vie-}} {{-info-}} {{-alternative form-}} * [[Đông Ti-mo]] (''phiên âm'') {{-pron-}} {{vie-pron|Đông Ti-mo}} {{-place-}} {{pn}} # {{senseid|vi|Q574}} Một [[quốc gia]] [[Đông Nam Á]]. Tên chính thức: [[Cộng hòa Dân chủ Đông Timor]]. {{-syn-}} * [[Timor-Leste]] {{catname|Địa danh|tiếng Việt}} [[Thể loại:vi:Quốc gia]] [[Thể loại:vi:Quốc gia của châu Á]] [[Thể loại:vi:Đông Timor]] hsmzwsolbq7f3bej1pkxctpdel5ztgo Myanmar 0 266892 2351299 2170404 2026-05-08T06:26:22Z TheHighFighter2 42988 ± 3 thể loại dùng [[w:WP:HOTCAT|HotCat]] 2351299 wikitext text/x-wiki {{-vie-}} {{-info-}} {{-alternative form-}} * [[Mi-an-ma]] (''phiên âm'') {{-pron-}} {{vie-pron|Mi-an-ma}} {{-place-}} {{pn}} # {{senseid|vi|Q836}} Một [[quốc gia]] [[Đông Nam Á]]. Tên chính thức: [[Cộng hòa Liên bang Myanmar]]. {{-syn-}} * [[Miến Điện]] {{catname|Địa danh|tiếng Việt}} [[Thể loại:vi:Quốc gia]] [[Thể loại:vi:Quốc gia của châu Á]] [[Thể loại:vi:Myanmar]] {{-gag-}} {{-place-}} {{pn}} # [[Myanmar#Tiếng Việt|Myanmar]] ([[quốc gia]] ở [[châu Á]]). [[Thể loại:Địa danh tiếng Gagauz]] 9efgzncskjusn0l2lo8o1w3ut553g4f Philippines 0 266893 2351300 2060650 2026-05-08T06:27:36Z TheHighFighter2 42988 ± 3 thể loại dùng [[w:WP:HOTCAT|HotCat]] 2351300 wikitext text/x-wiki {{-vie-}} {{-info-}} {{-alternative form-}} * [[Phi-líp-pin]] (''phiên âm'') {{-pron-}} {{vie-pron|Phi-líp-pin}} {{-place-}} {{pn}} # Một [[quốc gia]] [[Đông Nam Á]]. Tên chính thức: [[Cộng hòa Philippines]]. {{catname|Địa danh|tiếng Việt}} [[Thể loại:vi:Quốc gia]] [[Thể loại:vi:Quốc gia của châu Á]] [[Thể loại:vi:Philippines]] cc22bf1f7zwchlpal1y7dp8ti2zymk7 Thảo luận Thành viên:Higashizakura 3 267028 2351187 2349077 2026-05-07T16:45:19Z MediaWiki message delivery 19980 Mục mới: /* Thư mời cho đề nghị cấp quyền bot */ 2351187 wikitext text/x-wiki ==Chào mừng== <div style="border:1px solid #FDA; vertical-align:top; padding: 0.5em; background: #FFFFE5;"> <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 Nguyên Hưng Trần! 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; background: #FEC; border: 1px solid #FDA; margin-top: 1em; font-size: 1em"> [[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>&nbsp;--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 23:47, ngày 8 tháng 7 năm 2022 (UTC) == [[Đặc biệt:Đóng góp/14.181.139.231|14.181.139.231]] == Tôi không nghĩ IP này là TTS đâu. Đây là IP của Trân. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">Ayane</b>]] <span style="color:Plum">aka.</span> [[:m:User talk:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#ADD8E6;letter-spacing:">eunn</b>]] 11:02, ngày 23 tháng 9 năm 2024 (UTC) == Dải IP == Các IP có nhiều người sử dụng, IP nước ngoài nếu thuộc cả dải phá hoại thì cấm mạnh tay (theo tháng), IP Việt Nam thì hạn chế cấm nặng vì có nhiều tv Wiki có thể dính vào các dải cấm này. Người dùng, nếu chỉ tập trung phá 1 bài viết thì khóa (nặng tay) chính bài viết đó là đủ. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 04:30, ngày 26 tháng 9 năm 2024 (UTC) == Hỏi == Cho tôi hỏi "tone numbers" trong "Hanyu Pinyin with tone numbers" nên được dịch như thế nào? [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] 06:24, ngày 2 tháng 4 năm 2025 (UTC) :Thuật ngữ "tone number" theo tôi nghĩ chắc là "chữ số thanh điệu" nên cả câu bạn đưa sẽ dịch ra là "Bính âm Hán ngữ có chữ số thanh điệu". – [[Thành viên:Nguyên Hưng Trần|<span style="color:black;font-family:KaiTi, serif;">'''創神'''</span>]]<sup>[[Thảo luận Thành viên:Nguyên Hưng Trần|''ad astra'']]</sup> 09:19, ngày 2 tháng 4 năm 2025 (UTC) == [[User:Wiki IP Account]] == Phiền bạn cấm vô hạn thành viên này vì đây là con rối của Trân. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 14:00, ngày 18 tháng 6 năm 2025 (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|🌸]]) 14:10, ngày 18 tháng 6 năm 2025 (UTC) == [[:en:Ấn Đụ]] == Phiền bạn nhập mục từ này về viwikt, vì tiêu đề bị đưa vào blacklist mà thành viên không thường không thể tạo được. – [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 17:33, ngày 26 tháng 7 năm 2025 (UTC) :Từ này là từ thô tục nên thôi, tạo cũng được. – [[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|🌸]]) 17:42, ngày 26 tháng 7 năm 2025 (UTC) : @[[Thành viên:Higashizakura|Higashizakura]] Theo bạn "reading" nên gọi là âm đọc hay là cách đọc? [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 09:05, ngày 4 tháng 9 năm 2025 (UTC) ::Hình như tôi nghĩ cả hai nghĩa tiếng Việt của từ này đều như nhau. – [[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:11, ngày 4 tháng 9 năm 2025 (UTC) : Theo bạn "pitch accent" nên gọi là gì trong tiếng Nhật (ví dụ như thể loại [[:en:Category:Japanese terms with Nakadaka pitch accent (Tōkyō)|này]].) [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 03:05, ngày 15 tháng 10 năm 2025 (UTC) ::Theo từ điển của Cao Xuân Hạo thì ông định nghĩa thuật ngữ này là "trọng âm âm vực". – [[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|🌸]]) 04:11, ngày 15 tháng 10 năm 2025 (UTC) == [[Thành viên:117.1.116.236|117.1.116.236]] == Tôi nhận thấy bạn cấm IP này 1 tuần. Các lần sau hãy nhắc nhở tv (bao gồm IP hoặc tk và nếu không phải rối). Nếu trường hợp tv liên tục vi phạm sau nhắc nhở khi đó có thể cấm (vì quy định chế tài yêu cầu tính liên tục). Ngoài ra, khi BQV cấm, tác vụ mang ý nghĩa bảo vệ dự án và các tv khác trong cộng đồng khỏi phá hoại, không phải trừng phạt tv vi phạm, nên tùy trường hợp, cần ưu tiên cấm thời hạn ngắn trước (giờ hoặc ngày), sau đó có thể tăng mức cấm nếu sau án cấm tv vẫn tiếp tục vi phạm. P.S Hiện tại, tôi nghĩ nên hạn chế cấm tv ghi lý do "Rối", có thể sử dụng các lý do đã có trong công cụ bảo quản. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 16:42, ngày 30 tháng 8 năm 2025 (UTC) ==Happy Holidays== <div style="border-style:solid; border-color:violet; background-color:#fff; border-width:2px; text-align:left; padding:8px;" class="plainlinks"> {| style="border: 5px dotted #H1790; background-color: #DDDDDD; padding:4px" | rowspan="2" valign="left" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Christmas Tree 2011-12-24.jpg|left|300px|link=]]<span style="display:block;padding-top:10px;clear:both"> | <span style="font-family: Georgia; font-size: 98%; color: #190a89;">Chúc bạn Higashizakura có một mùa '''Giáng sinh''' an lành, ấm áp và tràn ngập yêu thương bên gia đình!<br/> Bước sang '''năm mới''' 2026, chúc bạn gặp nhiều may mắn,<br/> gặt hái được nhiều thành công trong công việc và học tập.<br/> Một lần nữa chúc bạn sẽ có một năm mới thật an khang, hạnh phúc và vạn sự như ý!!</span> <br /> <span style="font-family: Georgia; font-size: 92%;"> | rowspan="2" valign="right" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Atlantic Firework Festival 2016 (53368638571).jpg|left|360px|link=]]<span style="display:block;padding-top:10px;clear:both"> |}</div> Lời chúc chân thành từ: <span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px">&nbsp;[[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]&#124;[[User talk:Kelly zhrm|&#248;]]&nbsp;</span>&nbsp; 05:42, ngày 24 tháng 12 năm 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:17, ngày 28 tháng 4 năm 2026 (UTC) </div> <!-- 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=User:Keegan_(WMF)/test&oldid=30472541 --> == Thư mời cho đề nghị cấp quyền bot == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:OOjs UI icon advanced.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|trang đề nghị cấp quyền bot]] của "'''[[User:BlueShurikenNinjaBot|BlueShurikenNinjaBot]]'''" tại '''[[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|đây]]'''. <small>Kính mong bạn xem xét và thảo luận về đề nghị cấp quyền bot này! Thân ái!</small> |} &nbsp;Mong bạn cho ý kiến ạ. [[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]]) 16:45, ngày 7 tháng 5 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:Kateru Zakuro@viwiktionary gửi cho mọi người trong danh sách tại https://vi.wiktionary.org/w/index.php?title=Wiktionary:Danh_s%C3%A1ch_th%C6%B0&oldid=2323217 --> suz1qkuw92voke39n2p4wy4akhgmlec 2351236 2351187 2026-05-08T03:45:35Z PANG450t 61200 /* Thư mời cho đề nghị cấp quyền bot */ 2351236 wikitext text/x-wiki ==Chào mừng== <div style="border:1px solid #FDA; vertical-align:top; padding: 0.5em; background: #FFFFE5;"> <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 Nguyên Hưng Trần! 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; background: #FEC; border: 1px solid #FDA; margin-top: 1em; font-size: 1em"> [[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>&nbsp;--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 23:47, ngày 8 tháng 7 năm 2022 (UTC) == [[Đặc biệt:Đóng góp/14.181.139.231|14.181.139.231]] == Tôi không nghĩ IP này là TTS đâu. Đây là IP của Trân. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">Ayane</b>]] <span style="color:Plum">aka.</span> [[:m:User talk:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#ADD8E6;letter-spacing:">eunn</b>]] 11:02, ngày 23 tháng 9 năm 2024 (UTC) == Dải IP == Các IP có nhiều người sử dụng, IP nước ngoài nếu thuộc cả dải phá hoại thì cấm mạnh tay (theo tháng), IP Việt Nam thì hạn chế cấm nặng vì có nhiều tv Wiki có thể dính vào các dải cấm này. Người dùng, nếu chỉ tập trung phá 1 bài viết thì khóa (nặng tay) chính bài viết đó là đủ. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 04:30, ngày 26 tháng 9 năm 2024 (UTC) == Hỏi == Cho tôi hỏi "tone numbers" trong "Hanyu Pinyin with tone numbers" nên được dịch như thế nào? [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] 06:24, ngày 2 tháng 4 năm 2025 (UTC) :Thuật ngữ "tone number" theo tôi nghĩ chắc là "chữ số thanh điệu" nên cả câu bạn đưa sẽ dịch ra là "Bính âm Hán ngữ có chữ số thanh điệu". – [[Thành viên:Nguyên Hưng Trần|<span style="color:black;font-family:KaiTi, serif;">'''創神'''</span>]]<sup>[[Thảo luận Thành viên:Nguyên Hưng Trần|''ad astra'']]</sup> 09:19, ngày 2 tháng 4 năm 2025 (UTC) == [[User:Wiki IP Account]] == Phiền bạn cấm vô hạn thành viên này vì đây là con rối của Trân. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 14:00, ngày 18 tháng 6 năm 2025 (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|🌸]]) 14:10, ngày 18 tháng 6 năm 2025 (UTC) == [[:en:Ấn Đụ]] == Phiền bạn nhập mục từ này về viwikt, vì tiêu đề bị đưa vào blacklist mà thành viên không thường không thể tạo được. – [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 17:33, ngày 26 tháng 7 năm 2025 (UTC) :Từ này là từ thô tục nên thôi, tạo cũng được. – [[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|🌸]]) 17:42, ngày 26 tháng 7 năm 2025 (UTC) : @[[Thành viên:Higashizakura|Higashizakura]] Theo bạn "reading" nên gọi là âm đọc hay là cách đọc? [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 09:05, ngày 4 tháng 9 năm 2025 (UTC) ::Hình như tôi nghĩ cả hai nghĩa tiếng Việt của từ này đều như nhau. – [[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:11, ngày 4 tháng 9 năm 2025 (UTC) : Theo bạn "pitch accent" nên gọi là gì trong tiếng Nhật (ví dụ như thể loại [[:en:Category:Japanese terms with Nakadaka pitch accent (Tōkyō)|này]].) [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 03:05, ngày 15 tháng 10 năm 2025 (UTC) ::Theo từ điển của Cao Xuân Hạo thì ông định nghĩa thuật ngữ này là "trọng âm âm vực". – [[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|🌸]]) 04:11, ngày 15 tháng 10 năm 2025 (UTC) == [[Thành viên:117.1.116.236|117.1.116.236]] == Tôi nhận thấy bạn cấm IP này 1 tuần. Các lần sau hãy nhắc nhở tv (bao gồm IP hoặc tk và nếu không phải rối). Nếu trường hợp tv liên tục vi phạm sau nhắc nhở khi đó có thể cấm (vì quy định chế tài yêu cầu tính liên tục). Ngoài ra, khi BQV cấm, tác vụ mang ý nghĩa bảo vệ dự án và các tv khác trong cộng đồng khỏi phá hoại, không phải trừng phạt tv vi phạm, nên tùy trường hợp, cần ưu tiên cấm thời hạn ngắn trước (giờ hoặc ngày), sau đó có thể tăng mức cấm nếu sau án cấm tv vẫn tiếp tục vi phạm. P.S Hiện tại, tôi nghĩ nên hạn chế cấm tv ghi lý do "Rối", có thể sử dụng các lý do đã có trong công cụ bảo quản. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 16:42, ngày 30 tháng 8 năm 2025 (UTC) ==Happy Holidays== <div style="border-style:solid; border-color:violet; background-color:#fff; border-width:2px; text-align:left; padding:8px;" class="plainlinks"> {| style="border: 5px dotted #H1790; background-color: #DDDDDD; padding:4px" | rowspan="2" valign="left" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Christmas Tree 2011-12-24.jpg|left|300px|link=]]<span style="display:block;padding-top:10px;clear:both"> | <span style="font-family: Georgia; font-size: 98%; color: #190a89;">Chúc bạn Higashizakura có một mùa '''Giáng sinh''' an lành, ấm áp và tràn ngập yêu thương bên gia đình!<br/> Bước sang '''năm mới''' 2026, chúc bạn gặp nhiều may mắn,<br/> gặt hái được nhiều thành công trong công việc và học tập.<br/> Một lần nữa chúc bạn sẽ có một năm mới thật an khang, hạnh phúc và vạn sự như ý!!</span> <br /> <span style="font-family: Georgia; font-size: 92%;"> | rowspan="2" valign="right" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Atlantic Firework Festival 2016 (53368638571).jpg|left|360px|link=]]<span style="display:block;padding-top:10px;clear:both"> |}</div> Lời chúc chân thành từ: <span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px">&nbsp;[[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]&#124;[[User talk:Kelly zhrm|&#248;]]&nbsp;</span>&nbsp; 05:42, ngày 24 tháng 12 năm 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:17, ngày 28 tháng 4 năm 2026 (UTC) </div> <!-- 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=User:Keegan_(WMF)/test&oldid=30472541 --> == Thư mời cho đề nghị cấp quyền bot == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:OOjs UI icon advanced.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|trang đề nghị cấp quyền bot]] của "'''[[User:BlueShurikenNinjaBot|BlueShurikenNinjaBot]]'''" tại '''[[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|đây]]'''. <small>Kính mong bạn xem xét và thảo luận về đề nghị cấp quyền bot này! Thân ái!</small> |} &nbsp;Mong bạn cho ý kiến ạ. [[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]]) 16:45, ngày 7 tháng 5 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:Kateru Zakuro@viwiktionary gửi cho mọi người trong danh sách tại https://vi.wiktionary.org/w/index.php?title=Wiktionary:Danh_s%C3%A1ch_th%C6%B0&oldid=2323217 --> == PANG450a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t == [[Đặc_biệt:Đăng_nhập_trung_ương/PANG450v]][[Thành viên:PANG450t|PANG450t]] ([[Thảo luận Thành viên:PANG450t|thảo luận]]) 03:45, ngày 8 tháng 5 năm 2026 (UTC) 4kcixlb5do61tljd4imu1nx39w87bll 2351237 2351236 2026-05-08T03:45:50Z PANG450t 61200 /* PANG450a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t */ 2351237 wikitext text/x-wiki ==Chào mừng== <div style="border:1px solid #FDA; vertical-align:top; padding: 0.5em; background: #FFFFE5;"> <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 Nguyên Hưng Trần! 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; background: #FEC; border: 1px solid #FDA; margin-top: 1em; font-size: 1em"> [[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>&nbsp;--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 23:47, ngày 8 tháng 7 năm 2022 (UTC) == [[Đặc biệt:Đóng góp/14.181.139.231|14.181.139.231]] == Tôi không nghĩ IP này là TTS đâu. Đây là IP của Trân. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">Ayane</b>]] <span style="color:Plum">aka.</span> [[:m:User talk:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#ADD8E6;letter-spacing:">eunn</b>]] 11:02, ngày 23 tháng 9 năm 2024 (UTC) == Dải IP == Các IP có nhiều người sử dụng, IP nước ngoài nếu thuộc cả dải phá hoại thì cấm mạnh tay (theo tháng), IP Việt Nam thì hạn chế cấm nặng vì có nhiều tv Wiki có thể dính vào các dải cấm này. Người dùng, nếu chỉ tập trung phá 1 bài viết thì khóa (nặng tay) chính bài viết đó là đủ. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 04:30, ngày 26 tháng 9 năm 2024 (UTC) == Hỏi == Cho tôi hỏi "tone numbers" trong "Hanyu Pinyin with tone numbers" nên được dịch như thế nào? [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] 06:24, ngày 2 tháng 4 năm 2025 (UTC) :Thuật ngữ "tone number" theo tôi nghĩ chắc là "chữ số thanh điệu" nên cả câu bạn đưa sẽ dịch ra là "Bính âm Hán ngữ có chữ số thanh điệu". – [[Thành viên:Nguyên Hưng Trần|<span style="color:black;font-family:KaiTi, serif;">'''創神'''</span>]]<sup>[[Thảo luận Thành viên:Nguyên Hưng Trần|''ad astra'']]</sup> 09:19, ngày 2 tháng 4 năm 2025 (UTC) == [[User:Wiki IP Account]] == Phiền bạn cấm vô hạn thành viên này vì đây là con rối của Trân. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 14:00, ngày 18 tháng 6 năm 2025 (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|🌸]]) 14:10, ngày 18 tháng 6 năm 2025 (UTC) == [[:en:Ấn Đụ]] == Phiền bạn nhập mục từ này về viwikt, vì tiêu đề bị đưa vào blacklist mà thành viên không thường không thể tạo được. – [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 17:33, ngày 26 tháng 7 năm 2025 (UTC) :Từ này là từ thô tục nên thôi, tạo cũng được. – [[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|🌸]]) 17:42, ngày 26 tháng 7 năm 2025 (UTC) : @[[Thành viên:Higashizakura|Higashizakura]] Theo bạn "reading" nên gọi là âm đọc hay là cách đọc? [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 09:05, ngày 4 tháng 9 năm 2025 (UTC) ::Hình như tôi nghĩ cả hai nghĩa tiếng Việt của từ này đều như nhau. – [[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:11, ngày 4 tháng 9 năm 2025 (UTC) : Theo bạn "pitch accent" nên gọi là gì trong tiếng Nhật (ví dụ như thể loại [[:en:Category:Japanese terms with Nakadaka pitch accent (Tōkyō)|này]].) [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 03:05, ngày 15 tháng 10 năm 2025 (UTC) ::Theo từ điển của Cao Xuân Hạo thì ông định nghĩa thuật ngữ này là "trọng âm âm vực". – [[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|🌸]]) 04:11, ngày 15 tháng 10 năm 2025 (UTC) == [[Thành viên:117.1.116.236|117.1.116.236]] == Tôi nhận thấy bạn cấm IP này 1 tuần. Các lần sau hãy nhắc nhở tv (bao gồm IP hoặc tk và nếu không phải rối). Nếu trường hợp tv liên tục vi phạm sau nhắc nhở khi đó có thể cấm (vì quy định chế tài yêu cầu tính liên tục). Ngoài ra, khi BQV cấm, tác vụ mang ý nghĩa bảo vệ dự án và các tv khác trong cộng đồng khỏi phá hoại, không phải trừng phạt tv vi phạm, nên tùy trường hợp, cần ưu tiên cấm thời hạn ngắn trước (giờ hoặc ngày), sau đó có thể tăng mức cấm nếu sau án cấm tv vẫn tiếp tục vi phạm. P.S Hiện tại, tôi nghĩ nên hạn chế cấm tv ghi lý do "Rối", có thể sử dụng các lý do đã có trong công cụ bảo quản. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 16:42, ngày 30 tháng 8 năm 2025 (UTC) ==Happy Holidays== <div style="border-style:solid; border-color:violet; background-color:#fff; border-width:2px; text-align:left; padding:8px;" class="plainlinks"> {| style="border: 5px dotted #H1790; background-color: #DDDDDD; padding:4px" | rowspan="2" valign="left" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Christmas Tree 2011-12-24.jpg|left|300px|link=]]<span style="display:block;padding-top:10px;clear:both"> | <span style="font-family: Georgia; font-size: 98%; color: #190a89;">Chúc bạn Higashizakura có một mùa '''Giáng sinh''' an lành, ấm áp và tràn ngập yêu thương bên gia đình!<br/> Bước sang '''năm mới''' 2026, chúc bạn gặp nhiều may mắn,<br/> gặt hái được nhiều thành công trong công việc và học tập.<br/> Một lần nữa chúc bạn sẽ có một năm mới thật an khang, hạnh phúc và vạn sự như ý!!</span> <br /> <span style="font-family: Georgia; font-size: 92%;"> | rowspan="2" valign="right" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Atlantic Firework Festival 2016 (53368638571).jpg|left|360px|link=]]<span style="display:block;padding-top:10px;clear:both"> |}</div> Lời chúc chân thành từ: <span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px">&nbsp;[[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]&#124;[[User talk:Kelly zhrm|&#248;]]&nbsp;</span>&nbsp; 05:42, ngày 24 tháng 12 năm 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:17, ngày 28 tháng 4 năm 2026 (UTC) </div> <!-- 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=User:Keegan_(WMF)/test&oldid=30472541 --> == Thư mời cho đề nghị cấp quyền bot == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:OOjs UI icon advanced.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|trang đề nghị cấp quyền bot]] của "'''[[User:BlueShurikenNinjaBot|BlueShurikenNinjaBot]]'''" tại '''[[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|đây]]'''. <small>Kính mong bạn xem xét và thảo luận về đề nghị cấp quyền bot này! Thân ái!</small> |} &nbsp;Mong bạn cho ý kiến ạ. [[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]]) 16:45, ngày 7 tháng 5 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:Kateru Zakuro@viwiktionary gửi cho mọi người trong danh sách tại https://vi.wiktionary.org/w/index.php?title=Wiktionary:Danh_s%C3%A1ch_th%C6%B0&oldid=2323217 --> == PANG450a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t == [[Đặc_biệt:Đăng_nhập_trung_ương/PANG450v]][[Thành viên:PANG450t|PANG450t]]. ([[Thảo luận Thành viên:PANG450t|thảo luận]]) 03:45, ngày 8 tháng 5 năm 2026 (UTC) 83tq954v8dvssczhid3yvo7lb1dswx3 2351276 2351237 2026-05-08T04:35:32Z Kateru Zakuro 34522 Đã lùi lại 2 sửa đổi của [[Special:Contributions/PANG450t|PANG450t]] ([[User talk:PANG450t|talk]]) quay về phiên bản cuối của MediaWiki message delivery 2351276 wikitext text/x-wiki ==Chào mừng== <div style="border:1px solid #FDA; vertical-align:top; padding: 0.5em; background: #FFFFE5;"> <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 Nguyên Hưng Trần! 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; background: #FEC; border: 1px solid #FDA; margin-top: 1em; font-size: 1em"> [[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>&nbsp;--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 23:47, ngày 8 tháng 7 năm 2022 (UTC) == [[Đặc biệt:Đóng góp/14.181.139.231|14.181.139.231]] == Tôi không nghĩ IP này là TTS đâu. Đây là IP của Trân. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">Ayane</b>]] <span style="color:Plum">aka.</span> [[:m:User talk:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#ADD8E6;letter-spacing:">eunn</b>]] 11:02, ngày 23 tháng 9 năm 2024 (UTC) == Dải IP == Các IP có nhiều người sử dụng, IP nước ngoài nếu thuộc cả dải phá hoại thì cấm mạnh tay (theo tháng), IP Việt Nam thì hạn chế cấm nặng vì có nhiều tv Wiki có thể dính vào các dải cấm này. Người dùng, nếu chỉ tập trung phá 1 bài viết thì khóa (nặng tay) chính bài viết đó là đủ. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 04:30, ngày 26 tháng 9 năm 2024 (UTC) == Hỏi == Cho tôi hỏi "tone numbers" trong "Hanyu Pinyin with tone numbers" nên được dịch như thế nào? [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] 06:24, ngày 2 tháng 4 năm 2025 (UTC) :Thuật ngữ "tone number" theo tôi nghĩ chắc là "chữ số thanh điệu" nên cả câu bạn đưa sẽ dịch ra là "Bính âm Hán ngữ có chữ số thanh điệu". – [[Thành viên:Nguyên Hưng Trần|<span style="color:black;font-family:KaiTi, serif;">'''創神'''</span>]]<sup>[[Thảo luận Thành viên:Nguyên Hưng Trần|''ad astra'']]</sup> 09:19, ngày 2 tháng 4 năm 2025 (UTC) == [[User:Wiki IP Account]] == Phiền bạn cấm vô hạn thành viên này vì đây là con rối của Trân. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 14:00, ngày 18 tháng 6 năm 2025 (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|🌸]]) 14:10, ngày 18 tháng 6 năm 2025 (UTC) == [[:en:Ấn Đụ]] == Phiền bạn nhập mục từ này về viwikt, vì tiêu đề bị đưa vào blacklist mà thành viên không thường không thể tạo được. – [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 17:33, ngày 26 tháng 7 năm 2025 (UTC) :Từ này là từ thô tục nên thôi, tạo cũng được. – [[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|🌸]]) 17:42, ngày 26 tháng 7 năm 2025 (UTC) : @[[Thành viên:Higashizakura|Higashizakura]] Theo bạn "reading" nên gọi là âm đọc hay là cách đọc? [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 09:05, ngày 4 tháng 9 năm 2025 (UTC) ::Hình như tôi nghĩ cả hai nghĩa tiếng Việt của từ này đều như nhau. – [[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:11, ngày 4 tháng 9 năm 2025 (UTC) : Theo bạn "pitch accent" nên gọi là gì trong tiếng Nhật (ví dụ như thể loại [[:en:Category:Japanese terms with Nakadaka pitch accent (Tōkyō)|này]].) [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 03:05, ngày 15 tháng 10 năm 2025 (UTC) ::Theo từ điển của Cao Xuân Hạo thì ông định nghĩa thuật ngữ này là "trọng âm âm vực". – [[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|🌸]]) 04:11, ngày 15 tháng 10 năm 2025 (UTC) == [[Thành viên:117.1.116.236|117.1.116.236]] == Tôi nhận thấy bạn cấm IP này 1 tuần. Các lần sau hãy nhắc nhở tv (bao gồm IP hoặc tk và nếu không phải rối). Nếu trường hợp tv liên tục vi phạm sau nhắc nhở khi đó có thể cấm (vì quy định chế tài yêu cầu tính liên tục). Ngoài ra, khi BQV cấm, tác vụ mang ý nghĩa bảo vệ dự án và các tv khác trong cộng đồng khỏi phá hoại, không phải trừng phạt tv vi phạm, nên tùy trường hợp, cần ưu tiên cấm thời hạn ngắn trước (giờ hoặc ngày), sau đó có thể tăng mức cấm nếu sau án cấm tv vẫn tiếp tục vi phạm. P.S Hiện tại, tôi nghĩ nên hạn chế cấm tv ghi lý do "Rối", có thể sử dụng các lý do đã có trong công cụ bảo quản. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 16:42, ngày 30 tháng 8 năm 2025 (UTC) ==Happy Holidays== <div style="border-style:solid; border-color:violet; background-color:#fff; border-width:2px; text-align:left; padding:8px;" class="plainlinks"> {| style="border: 5px dotted #H1790; background-color: #DDDDDD; padding:4px" | rowspan="2" valign="left" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Christmas Tree 2011-12-24.jpg|left|300px|link=]]<span style="display:block;padding-top:10px;clear:both"> | <span style="font-family: Georgia; font-size: 98%; color: #190a89;">Chúc bạn Higashizakura có một mùa '''Giáng sinh''' an lành, ấm áp và tràn ngập yêu thương bên gia đình!<br/> Bước sang '''năm mới''' 2026, chúc bạn gặp nhiều may mắn,<br/> gặt hái được nhiều thành công trong công việc và học tập.<br/> Một lần nữa chúc bạn sẽ có một năm mới thật an khang, hạnh phúc và vạn sự như ý!!</span> <br /> <span style="font-family: Georgia; font-size: 92%;"> | rowspan="2" valign="right" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Atlantic Firework Festival 2016 (53368638571).jpg|left|360px|link=]]<span style="display:block;padding-top:10px;clear:both"> |}</div> Lời chúc chân thành từ: <span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px">&nbsp;[[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]&#124;[[User talk:Kelly zhrm|&#248;]]&nbsp;</span>&nbsp; 05:42, ngày 24 tháng 12 năm 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:17, ngày 28 tháng 4 năm 2026 (UTC) </div> <!-- 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=User:Keegan_(WMF)/test&oldid=30472541 --> == Thư mời cho đề nghị cấp quyền bot == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:OOjs UI icon advanced.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|trang đề nghị cấp quyền bot]] của "'''[[User:BlueShurikenNinjaBot|BlueShurikenNinjaBot]]'''" tại '''[[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|đây]]'''. <small>Kính mong bạn xem xét và thảo luận về đề nghị cấp quyền bot này! Thân ái!</small> |} &nbsp;Mong bạn cho ý kiến ạ. [[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]]) 16:45, ngày 7 tháng 5 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:Kateru Zakuro@viwiktionary gửi cho mọi người trong danh sách tại https://vi.wiktionary.org/w/index.php?title=Wiktionary:Danh_s%C3%A1ch_th%C6%B0&oldid=2323217 --> suz1qkuw92voke39n2p4wy4akhgmlec Mô đun:labels/data 828 271309 2351314 2349558 2026-05-08T06:56:52Z Hiyuune 50834 2351314 Scribunto text/plain local labels = {} -- Grammatical labels labels["abbreviation"] = { display = "[[viết tắt]]", pos_categories = "Từ viết tắt", } labels["abstract noun"] = { display = "trừu tượng", glossary = "danh từ trừu tượng", pos_categories = "Danh từ trừu tượng", } labels["acronym"] = { display = "[[acronym]]", pos_categories = "acronyms", } labels["thái chủ động"] = { aliases = {"active", "active voice", "in active", "in the active", "in active voice", "in the active voice"}, glossary = true, } labels["ambitransitive"] = { display = "[[ngoại động từ]], [[nội động từ]]", pos_categories2 = {"Ngoại động từ", "Nội động từ"}, } labels["angry register"] = { aliases = {"angry", "anger", "said in anger"}, glossary = true, pos_categories = "angry register terms", } labels["animate"] = { glossary = true, } labels["indicative"] = { aliases = {"in the indicative", "indicative mood"}, glossary = "indicative mood", } labels["subjunctive"] = { aliases = {"in the subjunctive", "subjunctive mood"}, glossary = "subjunctive mood", } labels["imperative"] = { aliases = {"in the imperative", "imperative mood"}, glossary = "imperative mood", } labels["jussive"] = { aliases = {"in the jussive", "jussive mood"}, glossary = "jussive mood", } labels["archaic-verb-form"] = { glossary = "archaic", display = "archaic", pos_categories = "archaic verb forms", } labels["atelic"] = { glossary = true, } labels["attenuative"] = { pos_categories = "attenuative verbs", } labels["attributive"] = { aliases = {"thuộc ngữ"}, display = "[[Phụ lục:Từ điển thuật ngữ#Thuộc ngữ|thuộc ngữ]]", } labels["attributively"] = { display = "[[Phụ lục:Từ điển thuật ngữ#Thuộc ngữ|attributively]]", } labels["auxiliary"] = { aliases = {"trợ động từ"}, display = "trợ động từ", glossary = "trợ động từ", pos_categories2 = "Trợ động từ", } labels["broadly"] = { glossary = true, } labels["cardinal"] = { display = "[[số đếm]]", pos_categories = "Số đếm", } labels["catenative"] = { glossary = "catenative verb", } labels["causative"] = { display = "[[causative]]", } labels["causative verb"] = { display = "causative", pos_categories = "causative verbs", } labels["cognate object"] = { aliases = {"with cognate object"}, display = "with [[w:Cognate object|cognate object]]", pos_categories = "verbs used with cognate objects", } labels["tập hợp"] = { aliases = {"collective", "tập thể"}, glossary = true, pos_categories = "Danh từ tập hợp", } labels["collectively"] = { glossary = "collective", display = "collectively", pos_categories = "Danh từ tập hợp", } labels["control verb"] = { aliases = {"control"}, Wikipedia = true, pos_categories = "control verbs", } labels["common"] = { aliases = {"giống chung"}, display = "giống chung", glossary = "giống chung", } labels["comparable"] = { glossary = true, } labels["completive"] = { pos_categories = "completive verbs", } labels["copulative"] = { aliases = {"copular"}, display = "[[copular verb|copulative]]", pos_categories = "copulative verbs", } labels["countable"] = { aliases = {"đếm được"}, display = "đếm được", glossary = "đếm được", pos_categories2 = "Danh từ đếm được", } labels["cumulative"] = { pos_categories = "cumulative verbs", } labels["delimitative"] = { pos_categories = "delimitative verbs", } labels["deponent"] = { glossary = true, pos_categories = "deponent verbs", } labels["distributive"] = { pos_categories = "distributive verbs", } labels["ditransitive"] = { aliases = {"ngoại động từ kép"}, display = "ngoại động từ kép", glossary = true, pos_categories2 = "Ngoại động từ kép", } labels["dysphemistic"] = { aliases = {"dysphemism"}, Wikipedia = "Dysphemism", pos_categories = "dysphemisms", } labels["by ellipsis"] = { display = "by [[ellipsis]]", pos_categories = "ellipses", } labels["emphatic"] = { glossary = true, } labels["ergative"] = { display = "[[ergative|khiển cách]]", glossary = true, pos_categories = "Động từ khiển cách", } labels["by extension"] = { aliases = {"hence", "mở rộng", "nghĩa mở rộng"}, display = "nghĩa mở rộng", } labels["feminine"] = { glossary = true, } labels["focus"] = { glossary = true, pos_categories = "focus adverbs", } labels["fractional"] = { display = "[[fractional number]]", pos_categories = "fractional numbers", } labels["frequentative"] = { glossary = true, display = "frequentative", pos_categories = "frequentative verbs", } labels["hedge"] = { aliases = {"hedges"}, glossary = true, pos_categories = "hedges", } labels["ideophonic"] = { aliases = {"ideophone"}, glossary = true, } labels["idiomatic"] = { aliases = {"idiom", "idiomatically", "thành ngữ", "thành ngữ tính", "tính thành ngữ", "mang tính thành ngữ", "có tính thành ngữ"}, display = "thành ngữ tính", glossary = "thành ngữ tính", pos_categories2 = "Thành ngữ", } labels["imperfect"] = { glossary = true, } labels["imperfective"] = { glossary = true, pos_categories = "imperfective verbs", } labels["impersonal"] = { glossary = true, pos_categories = "impersonal verbs", } labels["in the singular"] = { aliases = {"in singular"}, deprecated_aliases = {"singular"}, display = "in the [[singular]]", } labels["in the dual"] = { aliases = {"in dual"}, deprecated_aliases = {"dual"}, display = "in the [[dual]]", } labels["in the plural"] = { aliases = {"in plural", "ở dạng số nhiều", "ở số nhiều"}, deprecated_aliases = {"plural"}, display = "ở dạng [[Phụ lục:Từ điển thuật ngữ#số nhiều|số nhiều]]", } labels["inanimate"] = { glossary = true, } labels["inchoative"] = { pos_categories = "inchoative verbs", } labels["indefinite"] = { aliases = {"indef"}, display = "[[indefinite]]", } labels["initialism"] = { display = "viết tắt từ chữ đầu với cách đọc ghép âm", glossary = true, pos_categories = "Từ viết tắt từ chữ đầu với cách đọc ghép âm", } labels["intensive verb"] = { display = "intensive", pos_categories = "intensive verbs", } labels["intransitive"] = { aliases = {"nội động từ", "nội đt"}, display = "nội động từ", glossary = "nội động từ", pos_categories2 = "Nội động từ", } labels["IPA"] = { aliases = {"International Phonetic Alphabet"}, Wikipedia = "International Phonetic Alphabet", plain_categories = "IPA symbols", } labels["iterative"] = { glossary = true, pos_categories = "iterative verbs", } labels["litotes"] = { aliases = {"litote", "litotic", "litotical"}, glossary = true, pos_categories = true, } labels["masculine"] = { glossary = true, } labels["mediopassive"] = { aliases = {"in the mediopassive", "in mediopassive"}, glossary = true, } labels["meiosis"] = { aliases = {"meioses", "meiotic"}, glossary = true, pos_categories = "meioses", } labels["middle voice"] = { aliases = {"middle", "in the middle", "in the middle voice"}, glossary = true, } labels["mnemonic"] = { display = "[[mnemonic]]", pos_categories = "mnemonics", } labels["modal"] = { Wikipedia = "Modality (linguistics)", } labels["chiefly in the negative"] = { aliases = {"chiefly used in the negative", "negative polarity", "negative polarity item", "usually in the negative", "usually used in the negative"}, glossary = "negative polarity item", pos_categories = "negative polarity items", } labels["chiefly in the negative plural"] = { aliases = {"chiefly used in the negative plural", "negative polarity plural", "negative polarity plural item", "usually in the negative plural", "usually used in the negative plural"}, display = "chiefly in the [[Phụ lục:Từ điển thuật ngữ#negative polarity item|negative]] [[Phụ lục:Từ điển thuật ngữ#plural|plural]]", pos_categories = "negative polarity items", } labels["chiefly in the positive"] = { aliases = {"chiefly used in the positive", "positive polarity", "positive polarity item", "usually in the positive", "usually used in the positive"}, glossary = "positive polarity item", -- pos_categories = {"positive polarity items"}, } labels["chiefly in the positive plural"] = { aliases = {"chiefly used in the positive plural", "positive polarity plural", "positive polarity plural item", "usually in the positive plural", "usually used in the positive plural"}, display = "chiefly in the [[Phụ lục:Từ điển thuật ngữ#positive polarity item|positive]] [[Phụ lục:Từ điển thuật ngữ#plural|plural]]", -- pos_categories = "positive polarity items", } labels["neuter"] = { glossary = true, } -- British English ("ise") labels["nominalised"] = { aliases = {"nominalisation", "substantivised", "substantivisation"}, display = "[[Phụ lục:Từ điển thuật ngữ#nominalization|nominalised]]", pos_categories = "nominalized adjectives", } -- American English ("ize") labels["nominalized"] = { aliases = {"nominalization", "substantivized", "substantivization"}, display = "[[Phụ lục:Từ điển thuật ngữ#nominalization|nominalized]]", pos_categories = "nominalized adjectives", } labels["not comparable"] = { aliases = {"notcomp", "uncomparable", "không so sánh"}, display = "[[Phụ lục:Từ điển thuật ngữ#không so sánh|không so sánh được]]", pos_categories = "Từ không so sánh được", } labels["numeronym"] = { glossary = true, pos_categories = "numeronyms", } labels["onomatopoeia"] = { aliases = {"tượng thanh", "từ tượng thanh"}, display = "[[tượng thanh]]", pos_categories = "Từ tượng thanh", } labels["ordinal"] = { display = "[[số thứ tự]]", pos_categories = "Số thứ tự", } labels["partitive verb"] = { display = "[[Phụ lục:Từ điển thuật ngữ#transitive|transitive]], usually [[Appendix:Finnic telic and atelic verbs|atelic]]", --pos_categories = {"partitive verbs"}, } labels["perfect"] = { glossary = true, } labels["participle"] = { glossary = true, } labels["passive voice"] = { aliases = {"passive", "in the passive"}, glossary = true, } labels["perfect"] = { glossary = true, } labels["perfective"] = { glossary = true, pos_categories = "perfective verbs", } labels["plural only"] = { aliases = {"pluralonly", "plurale tantum", "chỉ có số nhiều"}, display = "chỉ có số nhiều", pos_categories = "Danh từ chỉ có số nhiều", } labels["possessional adjective"] = { aliases = {"possessional", "possessional adjectives"}, display = "possessional", glossary = true, pos_categories = "possessional adjectives", } labels["possessive pronoun"] = { display = "possessive", pos_categories = "possessive pronouns", } labels["postpositive"] = { glossary = true, } labels["predicative"] = { display = "[[Phụ lục:Từ điển thuật ngữ#predicative|predicative]]", } labels["predicatively"] = { display = "[[Phụ lục:Từ điển thuật ngữ#predicative|predicatively]]", } labels["privative"] = { pos_categories = "privative verbs", } labels["procedure word"] = { display = "[[procedure word]]", } labels["productive"] = { display = "[[productive]]", } -- TODO: This label is probably inappropriate for many languages labels["pronominal"] = { display = "takes a [[Phụ lục:Từ điển thuật ngữ#reflexive|reflexive pronoun]]", } labels["pro-verb"] = { Wikipedia = true, } labels["reciprocal"] = { glossary = true, pos_categories = "reciprocal verbs", } labels["reflexive"] = { display = "[[Phụ lục:Từ điển thuật ngữ#reflexive|phản thân]]", glossary = true, pos_categories = "Động từ phản thân", } labels["reflexive pronoun"] = { display = "[[Phụ lục:Từ điển thuật ngữ#reflexive|phản thân]]", pos_categories = "Đại từ phản thân", } labels["relational"] = { aliases = {"tính từ quan hệ"}, display = "[[Phụ lục:Từ điển thuật ngữ#tính từ quan hệ|tính từ quan hệ]]", pos_categories2 = "Tính từ quan hệ", } labels["repetitive"] = { pos_categories = "repetitive verbs", } labels["reversative"] = { pos_categories = "reversative verbs", } labels["rhetorical question"] = { glossary = true, pos_categories = "rhetorical questions", } labels["saturative"] = { aliases = {"sative"}, pos_categories = "saturative verbs", } labels["semelfactive"] = { glossary = true, pos_categories = "semelfactive verbs", } labels["sentence adverb"] = { glossary = true, pos_categories = "sentence adverbs", } labels["set phrase"] = { display = "[[set phrase]]", } labels["tỷ dụ"] = { aliases = {"simile", "tỉ dụ"}, glossary = true, pos_categories = "Tỷ dụ", } labels["singular only"] = { aliases = {"singulare tantum", "no plural"}, display = "singular only", pos_categories = "singularia tantum", } labels["snowclone"] = { glossary = true, pos_categories = "snowclones", } labels["stative"] = { aliases = {"stative verb", "động từ tĩnh"}, display = "[[w:Động từ tĩnh|động từ tĩnh]]", pos_categories2 = "Động từ tĩnh", } labels["strictly"] = { aliases = {"strict", "narrowly", "narrow"}, glossary = true, } labels["substantive"] = { glossary = true, track = true, } labels["terminative"] = { pos_categories = "terminative verbs", } labels["transitive"] = { aliases = {"ngoại động từ", "ngoại đt"}, display = "ngoại động từ", glossary = "ngoại động từ", pos_categories2 = "Ngoại động từ", } labels["reduplications"] = { aliases = {"từ láy", "láy"}, display = "từ láy", glossary = "Từ láy", pos_categories2 = "Từ láy", } labels["unaccusative"] = { Wikipedia = "Unaccusative verb", } labels["uncountable"] = { aliases = {"không đếm được"}, display = "không đếm được", glossary = "không đếm được", pos_categories2 = "Danh từ không đếm được", } labels["unergative"] = { Wikipedia = "Unergative verb", } labels["usually plural"] = { aliases = {"usually in the plural", "usually in plural"}, display = "usually in the [[Phụ lục:Từ điển thuật ngữ#plural|plural]]", deprecated = true, } -- Usage labels labels["4chan"] = { display = "[[w:4chan|4chan]]", pos_categories = "4chan slang", } labels["ACG"] = { display = "[[ACG]]", -- see also "fandom slang" pos_categories = "fandom slang", } labels["endearing"] = { aliases = {"affectionate"}, display = "[[endearing]]", -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "endearing terms", } labels["pre-classical"] = { aliases = {"Pre-classical", "pre-Classical", "Pre-Classical", "Preclassical", "preclassical", "ante-classical", "Ante-classical", "ante-Classical", "Ante-Classical", "Anteclassical", "anteclassical"}, display = "pre-Classical", regional_categories = true, } labels["archaic"] = { aliases = {"antiquated", "cổ xưa"}, display = "cổ xưa", glossary = "cổ xưa", sense_categories = {"cổ xưa"}, } labels["Australian slang"] = { regional_categories = "Australian", plain_categories = true, } labels["avoidance"] = { glossary = true, } labels["back slang"] = { aliases = {"backslang", "back-slang"}, display = "[[Phụ lục:Từ điển thuật ngữ#backslang|back slang]]", pos_categories = true, } labels["Bargoens"] = { Wikipedia = true, plain_categories = true, } labels["Braille"] = { Wikipedia = true, } labels["British slang"] = { aliases = {"UK slang"}, plain_categories = true, } labels["Cambridge University slang"] = { aliases = {"University of Cambridge slang", "Cantab slang"}, display = "[[w:University of Cambridge|Cambridge University]] [[slang]]", topical_categories = "Universities", plain_categories = true, } labels["cant"] = { aliases = {"argot", "cryptolect"}, display = "[[cant]]", pos_categories = true, } labels["capitalized"] = { display = "[[capitalisation|capitalized]]", } labels["Castilianism"] = { aliases = {"Hispanicism"}, display = "[[Castilianism]]", } labels["childish"] = { aliases = {"baby talk", "child language", "infantile", "ngôn ngữ trẻ con", "ngôn ngữ trẻ em", "ngôn ngữ nhà trường"}, display = "ngôn ngữ [[trẻ con]]", -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "Ngôn ngữ trẻ con", } labels["chu Nom"] = { display = "[[Vietnamese]] [[chữ Nôm]]", plain_categories = "Mục từ chữ Nôm", } labels["Classic 1811 Dictionary of the i Tongue"] = { aliases = {"1811"}, display = "[[Phụ lục:Từ điển thuật ngữ#archaic|archaic]], [[Phụ lục:Từ điển thuật ngữ#slang|slang]]", plain_categories = "Classic 1811 Dictionary of the Vulgar Tongue", } labels["Cockney rhyming slang"] = { aliases = {"từ lóng có vần điệu của người Luân Đôn", "tiếng lóng có vần điệu của người Luân Đôn"}, display = "[[Cockney rhyming slang|từ lóng có vần điệu của người Luân Đôn]]", plain_categories = { "Từ lóng có vần điệu của người Luân Đôn" }, } labels["colloquial"] = { aliases = {"colloquially", "khẩu ngữ", "thông tục", "từ thông tục"}, display = "thông tục", glossary = "thông tục", pos_categories = "Từ thông tục", } -- FIXME! The following two are apparently for Persian but probably don't belong in this file. labels["colloquial-um"] = { glossary = "colloquial", pos_categories = "colloquialisms containing sequence um", } labels["colloquial-un"] = { glossary = "colloquial", pos_categories = "colloquialisms containing sequence un", } labels["corporate jargon"] = { aliases = {"business jargon", "corporatese", "businessese", "corporate speak", "business speak"}, display = "[[corporate]] [[jargon]]", pos_categories = true, } labels["costermongers"] = { aliases = {"coster", "costers", "costermonger", "costermongers back slang", "costermongers' back slang"}, display = "[[Appendix:Costermongers' back slang|costermongers]]", plain_categories = "Costermongers' back slang", } labels["criminal slang"] = { aliases = {"thieves' cant", "Thieves' Cant", "thieves cant", "thieves'", "thieves", "thieves’ cant"}, -- Thieves' Cant is English-only, so defined in the English submodule; if other languages try to use it, it's just criminal slang display = "[[criminal]] [[slang]]", topical_categories = "Crime", pos_categories = true, } labels["dated"] = { aliases = {"lỗi thời", "cũ", "từ cũ"}, display = "lỗi thời", glossary = "lỗi thời", -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "Từ lỗi thời", } labels["dated form"] = { glossary = "dated", pos_categories = "dated forms", } -- combine with previous? labels["dated sense"] = { glossary = "dated", sense_categories = "dated", } labels["derogatory"] = { aliases = {"pejorative", "derogative", "disparaging", "nghĩa xấu", "xấu"}, display = "nghĩa [[xấu]]", pos_categories = "Từ xấu", } labels["dialect"] = {-- separated from "dialectal" so e.g. "obsolete|outside|the|_|dialect|of..." displays right aliases = {"địa phương", "phương ngôn", "phương ngữ", "từ địa phương"}, display = "[[Phụ lục:Từ điển thuật ngữ#phương ngữ|phương ngữ]]", pos_categories = {"Từ phương ngữ"}, } labels["dialectal"] = { aliases = {"thuộc phương ngữ"}, display = "thuộc phương ngữ", glossary = "phương ngữ", -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "Từ phương ngữ", } labels["dialects"] = {-- separated from "dialectal" so e.g. "obsolete|outside|dialects" displays right display = "[[Phụ lục:Từ điển thuật ngữ#dialectal|dialects]]", pos_categories = {"dialectal terms"}, } labels["dismissal"] = { display = "[[dismissal]]", pos_categories = "dismissals", } labels["drag slang"] = { aliases = {"Drag Race slang"}, display = "[[drag]] [[slang]]", } labels["solemn"] = { glossary = true, pos_categories = "solemn terms", } labels["ecclesiastical"] = { pos_categories = "ecclesiastical terms", } labels["ethnic slur"] = { aliases = {"racial slur", "xúc phạm dân tộc", "xúc phạm chủng tộc"}, display = "[[xúc phạm]] [[dân tộc]]", pos_categories = "Từ xúc phạm dân tộc", } labels["euphemistic"] = { aliases = {"euphemism", "uyển ngữ", "nói giảm nói tránh"}, display = "uyển ngữ", glossary = "uyển ngữ", pos_categories2 = "Uyển ngữ", } labels["eye dialect"] = { display = "[[eye dialect]]", pos_categories = true, } labels["familiar"] = { aliases = {"thân mật"}, display = "thân mật", glossary = "thân mật", -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "Từ ngữ thân mật", } labels["fandom slang"] = { aliases = {"fandom", "lóng fandom", "từ lóng fandom", "tiếng lóng fandom"}, display = "{{glossary|từ lóng}} [[fandom]]", pos_categories = "Từ lóng fandom", } labels["figurative"] = { aliases = {"metaphorical", "metaphoric", "metaphor"}, glossary = "figurative", } labels["figuratively"] = { display = "nghĩa bóng", aliases = {"bóng", "figurative", "metaphor", "metaphorical", "metaphorically", "nghĩa bóng"}, glossary = "bóng", } labels["folk poetic"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = {"folk poetic terms", "poetic terms"}, } labels["formal"] = { aliases = {"trang trọng", "kiểu cách"}, display = "trang trọng", glossary = "trang trọng", -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "Từ trang trọng", } labels["gay slang"] = { display = "{{glossary|từ lóng}} người [[đồng tính]]", pos_categories2 = "Từ lóng người đồng tính", } labels["gender-neutral"] = { glossary = "epicene", pos_categories = "gender-neutral terms", } labels["genericized trademark"] = { aliases = {"generic trademark", "proprietary eponym"}, display = "[[genericized trademark]]", pos_categories = "genericized trademarks", } labels["hapax legomenon"] = { aliases = {"hapax", "từ độc hiện"}, display = "từ độc hiện", glossary = "từ độc hiện", pos_categories2 = "Từ độc hiện", } labels["higher register"] = { aliases = {"high register", "elevated register", "elevated"}, glossary = "higher register", pos_categories = "higher register terms", } labels["historical"] = { aliases = {"historic", "thuộc lịch sử", "từ lịch sử", "từ ngữ lịch sử"}, display = "từ ngữ lịch sử", glossary = "từ ngữ lịch sử", pos_categories2 = "Từ ngữ lịch sử", } labels["non-native speakers"] = {-- language-agnostic version aliases = {"NNS"}, display = "[[non-native speaker]]s", -- so preceded by "used by", "error by children and", etc? or reword? regional_categories = {"Non-native speakers'"}, } labels["non-native speakers' English"] = { aliases = {"NNES", "NNSE"}, display = "[[non-native speaker]]s' English", regional_categories = "Non-native speakers'", } -- used exclusively by languages that use the “Jpan” script code labels["historical hiragana"] = { pos_categories = true, } -- used exclusively by languages that use the “Jpan” script code labels["historical katakana"] = { pos_categories = true, } -- applies to Japanese and Korean, etc., please do not confuse with "polite" labels["honorific"] = { aliases = {"kính ngữ"}, display = "kính ngữ", Wikipedia = "Kính ngữ (ngôn ngữ học)", -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "Kính ngữ", } -- for Ancient Greek labels["Homeric epithet"] = { display = "[[Homeric Greek|Homeric]] [[w:Homeric epithets|epithet]]", omit_postComma = true, plain_categories = "Epic Greek", } -- applies to Japanese and Korean, etc. labels["humble"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp? display = "[[humble]]", pos_categories = "humble terms", } -- for Akkadian labels["in hendiadys"] = { aliases = {"hendiadys"}, pos_categories = "hendiadys", } labels["humorous"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp; NB and cf a similar "jocular" label further up on this page aliases = {"humorously", "jocular", "hài hước"}, display = "[[hài hước]]", pos_categories = "Từ hài hước", } labels["hyperbolic"] = { aliases = {"hyperbole"}, display = "[[Phụ lục:Từ điển thuật ngữ#hyperbolic|hyperbolic]]", pos_categories = "hyperboles", } labels["hypercorrect"] = { aliases = {"siêu chỉnh"}, display = "[[Phụ lục:Từ điển thuật ngữ#siêu chỉnh|siêu chỉnh]]", pos_categories = "Siêu chỉnh", } labels["hyperforeign"] = { glossary = true, pos_categories = "hyperforeign terms", } labels["imperial"] = { aliases = {"emperor", "empress"}, pos_categories = "royal terms", } labels["incel slang"] = { display = "[[incel]] [[slang]]", pos_categories = true, } labels["informal"] = { aliases = {"informally", "không trang trọng"}, display = "không trang trọng", glossary = "không trang trọng", -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories2 = "Từ không trang trọng", } labels["Internet slang"] = { aliases = {"internet slang", "lóng Internet", "lóng internet", "ngôn ngữ mạng", "từ lóng Internet", "từ lóng internet", "tiếng lóng Internet", "tiếng lóng internet"}, display = "[[từ lóng]] [[Internet]]", pos_categories = "Từ lóng Internet", } labels["IRC"] = { display = "[[IRC]]", pos_categories = "internet slang", } labels["ironic"] = { aliases = {"biếm dụ"}, display = "[[biếm dụ]]", } -- Not the same as "journalism", which maps to a topical category (e.g. [[:Category:en:Journalism]], instead of [[:Category:English journalistic terms]]). labels["journalistic"] = { aliases = {"journalese"}, display = "[[journalistic]]", pos_categories = "journalistic terms", } labels["leet"] = { aliases = {"leetspeak"}, display = "[[leetspeak]]", pos_categories = true, } labels["từ lóng LGBT"] = { aliases = {"LGBTQ slang","LGBT slang"}, display = "từ lóng [[LGBT]]", pos_categories = true, } labels["literal"] = { display = "nghĩa đen", glossary = "đen", } labels["literally"] = { aliases = {"nghĩa đen", "đen"}, display = "nghĩa đen", glossary = "đen", } labels["literary"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp aliases = {"bookish", "văn chương"}, display = "văn chương", glossary = "văn chương", pos_categories = "Ngôn ngữ văn chương", } labels["loosely"] = { glossary = true, } labels["Lubunyaca"] = { display = "[[Lubunyaca]]", pos_categories = true, } labels["medical slang"] = { display = "[[medical]] [[slang]]", pos_categories = true, } -- for Awetí, Karajá, etc., where men and women use different words labels["men's speech"] = { aliases = {"male speech"}, glossary = "men's speech", pos_categories = "men's speech terms", } labels["metonymically"] = { aliases = {"metonymic", "metonymy", "metonym", "hoán dụ"}, display = "hoán dụ", glossary = "hoán dụ", pos_categories = "Từ hoán dụ", } labels["military slang"] = { aliases = {"lóng quân sự", "từ lóng quân sự", "tiếng lóng quân sự"}, display = "[[từ lóng]] [[quân sự]]", pos_categories2 = "Từ lóng quân sự", } labels["minced oath"] = { aliases = {"từ chửi thề ít gây khó chịu"}, display = "[[minced oath|từ chửi thề ít gây khó chịu]]", pos_categories = "Từ chửi thề ít gây khó chịu", } labels["nativising coinage"] = { display = "[[w:Linguistic purism in Korean|nativising coinage]]", pos_categories = "nativising coinages", } labels["naval slang"] = { aliases = {"navy slang"}, display = "[[naval]] [[slang]]", pos_categories = true, } labels["neologism"] = { aliases = {"neologistic", "mới", "từ mới", "từ ngữ mới"}, display = "từ mới", glossary = "từ mới", pos_categories = "Từ mới xuất hiện", } labels["neopronoun"] = { display = "[[neopronoun]]", -- pos_categories = {"neopronouns"}, } labels["no longer productive"] = { aliases = {"không còn phát sinh từ mới"}, display = "không còn [[Phụ lục:Từ điển thuật ngữ#phát sinh từ mới|phát sinh từ mới]]", } labels["nonce word"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp? aliases = {"nonce"}, display = "[[Phụ lục:Từ điển thuật ngữ#nonce|từ tạo ra cho trường hợp cụ thể]]", pos_categories = "Từ tạo ra cho trường hợp cụ thể", } labels["nonstandard"] = { aliases = {"non-standard", "không tiêu chuẩn"}, display = "không tiêu chuẩn", glossary = " không tiêu chuẩn", pos_categories = "Từ không tiêu chuẩn", } labels["nonstandard form"] = { glossary = "nonstandard", pos_categories = "nonstandard forms", } labels["obsolete"] = { aliases = {"không còn dùng"}, display = "không còn dùng", glossary = "không còn dùng", sense_categories = "không còn dùng", } labels["obsolete term"] = { aliases = {"thuật ngữ không còn dùng", "từ không còn dùng", "từ ngữ không còn dùng"}, display = "thuật ngữ không còn dùng", glossary = "không còn dùng", -- combine with previous two, q.v. pos_categories = "Từ không còn dùng", } labels["offensive"] = { aliases = {"xúc phạm", "từ xúc phạm"}, display = "[[xúc phạm]]", -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "Từ xúc phạm", } labels["officialese"] = { aliases = {"bureaucratic"}, display = "[[officialese]]", pos_categories = "officialese terms", } labels["Oxbridge slang"] = { display = "[[w:Oxbridge|Oxbridge]] [[slang]]", topical_categories = "Universities", plain_categories = {"Cambridge University slang", "Oxford University slang"}, } labels["Oxford University slang"] = { aliases = {"University of Oxford slang", "Oxon slang"}, display = "[[w:University of Oxford|Oxford University]] [[slang]]", topical_categories = "Universities", plain_categories = true, } labels["poetic"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp aliases = {"thơ ca", "thuộc thơ ca"}, display = "[[thơ ca]]", pos_categories = "Từ thơ ca", } labels["polite"] = { aliases = {"lịch sự"}, display = "lịch sự", pos_categories = "Từ lịch sự", } labels["post-classical"] = { aliases = {"Post-classical", "post-Classical", "Post-Classical", "Postclassical", "postclassical"}, display = "post-Classical", regional_categories = true, } labels["prison slang"] = { display = "[[prison]] [[slang]]", pos_categories = true, } labels["proscribed"] = { aliases = {"không nên dùng"}, glossary = "không nên dùng", pos_categories = "Từ không nên dùng", } labels["puristic"] = { aliases = {"purism"}, Wikipedia = "Linguistic purism", pos_categories = "puristic terms", } labels["radio slang"] = { display = "[[radio]] [[slang]]", pos_categories = true, } labels["Reddit slang"] = { display = "[[Reddit]] [[slang]]", pos_categories = true, } labels["rare"] = { display = "[[Phụ lục:Từ điển thuật ngữ#hiếm|hiếm]]", aliases = {"hiếm", "hiếm dùng", "ít dùng", "nghĩa hiếm", "rare sense"}, sense_categories = { "hiếm" }, } labels["rare term"] = { display = "rare", -- see comments about "obsolete" pos_categories = "rare terms", } -- cf Cockney rhyming slang labels["rhyming slang"] = { display = "[[rhyming slang]]", pos_categories = true, } labels["religious slur"] = { aliases = {"sectarian slur"}, display = "[[religious]] [[slur]]", pos_categories = "religious slurs", } labels["retronym"] = { glossary = true, pos_categories = "retronyms", } labels["reverential"] = { pos_categories = "reverential terms", } labels["royal"] = { aliases = {"regal"}, pos_categories = "royal terms", } labels["rustic"] = { glossary = true, -- should be "terms with X senses", leaving "X terms" to the term-context temp? aliases = {"rural"}, pos_categories = "rustic terms", } labels["sarcastic"] = { aliases = {"mỉa mai"}, display = "[[mỉa mai]]", pos_categories = "Từ mỉa mai", } labels["school slang"] = { aliases = {"public school slang"}, display = "[[school]] [[slang]]", pos_categories = true, } labels["self-deprecatory"] = { aliases = {"self-deprecating"}, display = "[[self-deprecatory]]", -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "self-deprecatory terms", } -- Swahili Sheng cant / argot labels["Sheng"] = { Wikipedia = "Sheng slang", plain_categories = true, } labels["siglum"] = { aliases = {"sigla"}, glossary = true, pos_categories = "sigla", } labels["slang"] = { display = "{{glossary|từ lóng}}", aliases = {"lóng", "tiếng lóng", "từ lóng"}, pos_categories = "Từ lóng", } labels["university slang"] = { aliases = {"college slang", "student slang"}, display = "[[university]] [[slang]]", topical_categories = "Universities", pos_categories = "student slang", } labels["stenoscript"] = { display = "[[Stenoscript|stenoscript]]", pos_categories = "stenoscript abbreviations", } labels["swear word"] = { aliases = {"profanity", "expletive"}, pos_categories = "swear words", } labels["syncopated"] = { aliases = {"syncope", "syncopic", "syncopation"}, glossary = true, pos_categories = "syncopic forms", } labels["synecdochically"] = { aliases = {"synecdochic", "synecdochical", "synecdoche"}, glossary = true, pos_categories = "synecdoches", } labels["technical"] = { display = "[[technical]]", pos_categories = "technical terms", } labels["telic"] = { glossary = true, } labels["text messaging"] = { aliases = {"texting", "nhắn tin", "nhắn tin văn bản"}, display = "[[nhắn tin]]", pos_categories = "Từ lóng nhắn tin", } labels["tone indicator"] = { display = "[[tone indicator]]", pos_categories = "tone indicators", } labels["trademark"] = { display = "[[trademark]]", pos_categories = "trademarks", } labels["transferred sense"] = { glossary = true, pos_categories = "terms with transferred senses", } labels["transferred senses"] = { display = "[[transferred sense#English|transferred senses]]", pos_categories = "terms with transferred senses", } labels["transgender slang"] = { display = "[[transgender]] [[slang]]", pos_categories = true, } labels["Twitch-speak"] = { display = "[[Twitch-speak]]", pos_categories = true, } labels["uds."] = { display = "[[Appendix:Spanish pronouns#Ustedes and vosotros|used formally in Spain]]", } labels["uncommon"] = { aliases = {"không phổ biến"}, display = "[[Phụ lục:Từ điển thuật ngữ#không phổ biến|không phổ biến]]", sense_categories = {"không phổ biến"}, } labels["verlan"] = { display = "[[Phụ lục:Từ điển thuật ngữ#verlan|verlan]]", plain_categories = true, } labels["very rare"] = { display = "very [[Phụ lục:Từ điển thuật ngữ#rare|rare]]", sense_categories = "rare", } labels["vulgar"] = { display = "thô tục", aliases = {"coarse", "obscene", "profane", "thô tục", "tục", "tục tĩu", "từ tục"}, glossary = "thô tục", pos_categories = "Từ thô tục", } labels["vesre"] = { Wikipedia = true, plain_categories = true, } labels["youth slang"] = { display = "[[youth]] [[slang]]", pos_categories = "slang", } labels["2channel slang"]={ aliases = {"2ch slang"}, display ="[[w:2channel|2channel]] [[slang]]", pos_categories = {"internet slang" , "2channel slang"}, } -- for Awetí, Karajá, etc., where men & women use different words labels["women's speech"] = { aliases = {"female speech"}, glossary = "women's speech", pos_categories = "women's speech terms", } -- terms applying to Old Norse skaldic poetry labels["kenning"] = { aliases = {"Kenning"}, Wikipedia = "Kenning", pos_categories = "kennings", } labels["heiti"] = { aliases = {"Heiti"}, Wikipedia = "Heiti", pos_categories = "heiti", } -- Mục nhập từ [[Bản mẫu:context/data]] labels["hoặc"] = { display = "hoặc", } labels["hơi"] = { display = "hơi", } labels["ngày nay"] = { display = "ngày nay", } labels["thường"] = { display = "thường", } labels["trừ"] = { display = "trừ", } labels["tại"] = { display = "tại", } labels["đôi khi"] = { display = "đôi khi", } labels["Cao Đài"] = { display = "Cao Đài", plain_categories = "Cao Đài", } labels["Chính Thống giáo"] = { display = "Chính Thống giáo", plain_categories = "Chính Thống giáo", } labels["biệt ngữ"] = { display = "biệt ngữ", plain_categories = "Biệt ngữ", } labels["bóng"] = { display = "nghĩa bóng", plain_categories = "Từ có nghĩa bóng", } labels["Từ cũ"] = labels["dated"] labels["cơ khí"] = { display = "cơ khí", plain_categories = "Kỹ thuật cơ khí", } labels["cổ"] = { display = "cổ", plain_categories = "Từ cổ", } labels["hiếm"] = { display = "hiếm", plain_categories = "Từ hiếm", } labels["hài hước"] = { display = "hài hước", plain_categories = "Từ hài hước", } labels["không dịch"] = { display = "không dịch", plain_categories = "Từ không dịch qua tiếng Việt", } labels["không nên dùng"] = { display = "không nên dùng", plain_categories = "Từ không nên dùng", } labels["Khẩu ngữ"] = labels["informal"] labels["kết hợp hạn chế"] = { display = "kết hợp hạn chế", plain_categories = "Từ kết hợp hạn chế", } labels["nhãn khoa"] = { display = "nhãn khoa", plain_categories = "Nhãn khoa", } labels["rộng"] = { display = "nghĩa rộng", plain_categories = "Từ có nghĩa rộng", } labels["sân khấu"] = { display = "sân khấu", plain_categories = "Sân khấu", } labels["số nhiều"] = { display = "số nhiều", } labels["số ít"] = { display = "số ít", } labels["thần thoại"] = { display = "thần thoại", plain_categories = "Thần thoại", } labels["trang trọng"] = { display = "trang trọng", plain_categories = "Từ trang trọng", } labels["trại"] = { display = "nói trại", plain_categories = "Từ nói trại", } labels["tục tĩu"] = { display = "tục tĩu", plain_categories = "Từ tục tĩu", } labels["văn học"] = { display = "văn học", plain_categories = "Văn học", } labels["Văn chương"] = labels["văn học"] labels["văn chương"] = labels["văn học"] labels["xấu"] = { display = "xấu", plain_categories = "Từ xấu", } labels["Úc"] = { display = "[[Hình:Flag of Australia.svg|22x20px|border|link=|Úc]]&nbsp;Úc", plain_categories = "Tiếng Anh Úc", } labels["Ít dùng"] = labels["rare"] labels["đen"] = { display = "nghĩa đen", plain_categories = "Từ có nghĩa đen", } labels["Phương ngữ"] = labels["dialect"] labels["định ngữ"] = { display = "định ngữ", plain_categories = "Danh từ định ngữ", } labels["Andalucía"] = { display = "Andalucía", } labels["Anglo-Norman"] = { display = "Anglo-Norman", } labels["animal"] = { display = "động vật", plain_categories = "Động vật", } labels["exercise"] = { display = "bài tập", } labels["eye dialect"] = { display = "phương ngữ mắt", } labels["family"] = { display = "gia đình", } return require("Module:labels").finalize_data(labels) lh400sk2nixh66azve401gilmafat3b 2351315 2351314 2026-05-08T06:57:27Z Hiyuune 50834 2351315 Scribunto text/plain local labels = {} -- Grammatical labels labels["abbreviation"] = { display = "[[viết tắt]]", pos_categories = "Từ viết tắt", } labels["abstract noun"] = { display = "trừu tượng", glossary = "danh từ trừu tượng", pos_categories = "Danh từ trừu tượng", } labels["acronym"] = { display = "[[acronym]]", pos_categories = "acronyms", } labels["thái chủ động"] = { aliases = {"active", "active voice", "in active", "in the active", "in active voice", "in the active voice"}, glossary = true, } labels["ambitransitive"] = { display = "[[ngoại động từ]], [[nội động từ]]", pos_categories2 = {"Ngoại động từ", "Nội động từ"}, } labels["angry register"] = { aliases = {"angry", "anger", "said in anger"}, glossary = true, pos_categories = "angry register terms", } labels["animate"] = { glossary = true, } labels["indicative"] = { aliases = {"in the indicative", "indicative mood"}, glossary = "indicative mood", } labels["subjunctive"] = { aliases = {"in the subjunctive", "subjunctive mood"}, glossary = "subjunctive mood", } labels["imperative"] = { aliases = {"in the imperative", "imperative mood"}, glossary = "imperative mood", } labels["jussive"] = { aliases = {"in the jussive", "jussive mood"}, glossary = "jussive mood", } labels["archaic-verb-form"] = { glossary = "archaic", display = "archaic", pos_categories = "archaic verb forms", } labels["atelic"] = { glossary = true, } labels["attenuative"] = { pos_categories = "attenuative verbs", } labels["attributive"] = { aliases = {"thuộc ngữ"}, display = "[[Phụ lục:Từ điển thuật ngữ#Thuộc ngữ|thuộc ngữ]]", } labels["attributively"] = { display = "[[Phụ lục:Từ điển thuật ngữ#Thuộc ngữ|attributively]]", } labels["auxiliary"] = { aliases = {"trợ động từ"}, display = "trợ động từ", glossary = "trợ động từ", pos_categories2 = "Trợ động từ", } labels["broadly"] = { glossary = true, } labels["cardinal"] = { display = "[[số đếm]]", pos_categories = "Số đếm", } labels["catenative"] = { glossary = "catenative verb", } labels["causative"] = { display = "[[causative]]", } labels["causative verb"] = { display = "causative", pos_categories = "causative verbs", } labels["cognate object"] = { aliases = {"with cognate object"}, display = "with [[w:Cognate object|cognate object]]", pos_categories = "verbs used with cognate objects", } labels["tập hợp"] = { aliases = {"collective", "tập thể"}, glossary = true, pos_categories = "Danh từ tập hợp", } labels["collectively"] = { glossary = "collective", display = "collectively", pos_categories = "Danh từ tập hợp", } labels["control verb"] = { aliases = {"control"}, Wikipedia = true, pos_categories = "control verbs", } labels["common"] = { aliases = {"giống chung"}, display = "giống chung", glossary = "giống chung", } labels["comparable"] = { glossary = true, } labels["completive"] = { pos_categories = "completive verbs", } labels["copulative"] = { aliases = {"copular"}, display = "[[copular verb|copulative]]", pos_categories = "copulative verbs", } labels["countable"] = { aliases = {"đếm được"}, display = "đếm được", glossary = "đếm được", pos_categories2 = "Danh từ đếm được", } labels["cumulative"] = { pos_categories = "cumulative verbs", } labels["delimitative"] = { pos_categories = "delimitative verbs", } labels["deponent"] = { glossary = true, pos_categories = "deponent verbs", } labels["distributive"] = { pos_categories = "distributive verbs", } labels["ditransitive"] = { aliases = {"ngoại động từ kép"}, display = "ngoại động từ kép", glossary = true, pos_categories2 = "Ngoại động từ kép", } labels["dysphemistic"] = { aliases = {"dysphemism"}, Wikipedia = "Dysphemism", pos_categories = "dysphemisms", } labels["by ellipsis"] = { display = "by [[ellipsis]]", pos_categories = "ellipses", } labels["emphatic"] = { glossary = true, } labels["ergative"] = { display = "[[ergative|khiển cách]]", glossary = true, pos_categories = "Động từ khiển cách", } labels["by extension"] = { aliases = {"hence", "mở rộng", "nghĩa mở rộng"}, display = "nghĩa mở rộng", } labels["feminine"] = { glossary = true, } labels["focus"] = { glossary = true, pos_categories = "focus adverbs", } labels["fractional"] = { display = "[[fractional number]]", pos_categories = "fractional numbers", } labels["frequentative"] = { glossary = true, display = "frequentative", pos_categories = "frequentative verbs", } labels["hedge"] = { aliases = {"hedges"}, glossary = true, pos_categories = "hedges", } labels["ideophonic"] = { aliases = {"ideophone"}, glossary = true, } labels["idiomatic"] = { aliases = {"idiom", "idiomatically", "thành ngữ", "thành ngữ tính", "tính thành ngữ", "mang tính thành ngữ", "có tính thành ngữ"}, display = "thành ngữ tính", glossary = "thành ngữ tính", pos_categories2 = "Thành ngữ", } labels["imperfect"] = { glossary = true, } labels["imperfective"] = { glossary = true, pos_categories = "imperfective verbs", } labels["impersonal"] = { glossary = true, pos_categories = "impersonal verbs", } labels["in the singular"] = { aliases = {"in singular"}, deprecated_aliases = {"singular"}, display = "in the [[singular]]", } labels["in the dual"] = { aliases = {"in dual"}, deprecated_aliases = {"dual"}, display = "in the [[dual]]", } labels["in the plural"] = { aliases = {"in plural", "ở dạng số nhiều", "ở số nhiều"}, deprecated_aliases = {"plural"}, display = "ở dạng [[Phụ lục:Từ điển thuật ngữ#số nhiều|số nhiều]]", } labels["inanimate"] = { glossary = true, } labels["inchoative"] = { pos_categories = "inchoative verbs", } labels["indefinite"] = { aliases = {"indef"}, display = "[[indefinite]]", } labels["initialism"] = { display = "viết tắt từ chữ đầu với cách đọc ghép âm", glossary = true, pos_categories = "Từ viết tắt từ chữ đầu với cách đọc ghép âm", } labels["intensive verb"] = { display = "intensive", pos_categories = "intensive verbs", } labels["intransitive"] = { aliases = {"nội động từ", "nội đt"}, display = "nội động từ", glossary = "nội động từ", pos_categories2 = "Nội động từ", } labels["IPA"] = { aliases = {"International Phonetic Alphabet"}, Wikipedia = "International Phonetic Alphabet", plain_categories = "IPA symbols", } labels["iterative"] = { glossary = true, pos_categories = "iterative verbs", } labels["litotes"] = { aliases = {"litote", "litotic", "litotical"}, glossary = true, pos_categories = true, } labels["masculine"] = { glossary = true, } labels["mediopassive"] = { aliases = {"in the mediopassive", "in mediopassive"}, glossary = true, } labels["meiosis"] = { aliases = {"meioses", "meiotic"}, glossary = true, pos_categories = "meioses", } labels["middle voice"] = { aliases = {"middle", "in the middle", "in the middle voice"}, glossary = true, } labels["mnemonic"] = { display = "[[mnemonic]]", pos_categories = "mnemonics", } labels["modal"] = { Wikipedia = "Modality (linguistics)", } labels["chiefly in the negative"] = { aliases = {"chiefly used in the negative", "negative polarity", "negative polarity item", "usually in the negative", "usually used in the negative"}, glossary = "negative polarity item", pos_categories = "negative polarity items", } labels["chiefly in the negative plural"] = { aliases = {"chiefly used in the negative plural", "negative polarity plural", "negative polarity plural item", "usually in the negative plural", "usually used in the negative plural"}, display = "chiefly in the [[Phụ lục:Từ điển thuật ngữ#negative polarity item|negative]] [[Phụ lục:Từ điển thuật ngữ#plural|plural]]", pos_categories = "negative polarity items", } labels["chiefly in the positive"] = { aliases = {"chiefly used in the positive", "positive polarity", "positive polarity item", "usually in the positive", "usually used in the positive"}, glossary = "positive polarity item", -- pos_categories = {"positive polarity items"}, } labels["chiefly in the positive plural"] = { aliases = {"chiefly used in the positive plural", "positive polarity plural", "positive polarity plural item", "usually in the positive plural", "usually used in the positive plural"}, display = "chiefly in the [[Phụ lục:Từ điển thuật ngữ#positive polarity item|positive]] [[Phụ lục:Từ điển thuật ngữ#plural|plural]]", -- pos_categories = "positive polarity items", } labels["neuter"] = { glossary = true, } -- British English ("ise") labels["nominalised"] = { aliases = {"nominalisation", "substantivised", "substantivisation"}, display = "[[Phụ lục:Từ điển thuật ngữ#nominalization|nominalised]]", pos_categories = "nominalized adjectives", } -- American English ("ize") labels["nominalized"] = { aliases = {"nominalization", "substantivized", "substantivization"}, display = "[[Phụ lục:Từ điển thuật ngữ#nominalization|nominalized]]", pos_categories = "nominalized adjectives", } labels["not comparable"] = { aliases = {"notcomp", "uncomparable", "không so sánh"}, display = "[[Phụ lục:Từ điển thuật ngữ#không so sánh|không so sánh được]]", pos_categories = "Từ không so sánh được", } labels["numeronym"] = { glossary = true, pos_categories = "numeronyms", } labels["onomatopoeia"] = { aliases = {"tượng thanh", "từ tượng thanh"}, display = "[[tượng thanh]]", pos_categories = "Từ tượng thanh", } labels["ordinal"] = { display = "[[số thứ tự]]", pos_categories = "Số thứ tự", } labels["partitive verb"] = { display = "[[Phụ lục:Từ điển thuật ngữ#transitive|transitive]], usually [[Appendix:Finnic telic and atelic verbs|atelic]]", --pos_categories = {"partitive verbs"}, } labels["perfect"] = { glossary = true, } labels["participle"] = { glossary = true, } labels["passive voice"] = { aliases = {"passive", "in the passive"}, glossary = true, } labels["perfect"] = { glossary = true, } labels["perfective"] = { glossary = true, pos_categories = "perfective verbs", } labels["plural only"] = { aliases = {"pluralonly", "plurale tantum", "chỉ có số nhiều"}, display = "chỉ có số nhiều", pos_categories = "Danh từ chỉ có số nhiều", } labels["possessional adjective"] = { aliases = {"possessional", "possessional adjectives"}, display = "possessional", glossary = true, pos_categories = "possessional adjectives", } labels["possessive pronoun"] = { display = "possessive", pos_categories = "possessive pronouns", } labels["postpositive"] = { glossary = true, } labels["predicative"] = { display = "[[Phụ lục:Từ điển thuật ngữ#predicative|predicative]]", } labels["predicatively"] = { display = "[[Phụ lục:Từ điển thuật ngữ#predicative|predicatively]]", } labels["privative"] = { pos_categories = "privative verbs", } labels["procedure word"] = { display = "[[procedure word]]", } labels["productive"] = { display = "[[productive]]", } -- TODO: This label is probably inappropriate for many languages labels["pronominal"] = { display = "takes a [[Phụ lục:Từ điển thuật ngữ#reflexive|reflexive pronoun]]", } labels["pro-verb"] = { Wikipedia = true, } labels["reciprocal"] = { glossary = true, pos_categories = "reciprocal verbs", } labels["reflexive"] = { display = "[[Phụ lục:Từ điển thuật ngữ#reflexive|phản thân]]", glossary = true, pos_categories = "Động từ phản thân", } labels["reflexive pronoun"] = { display = "[[Phụ lục:Từ điển thuật ngữ#reflexive|phản thân]]", pos_categories = "Đại từ phản thân", } labels["relational"] = { aliases = {"tính từ quan hệ"}, display = "[[Phụ lục:Từ điển thuật ngữ#tính từ quan hệ|tính từ quan hệ]]", pos_categories2 = "Tính từ quan hệ", } labels["repetitive"] = { pos_categories = "repetitive verbs", } labels["reversative"] = { pos_categories = "reversative verbs", } labels["rhetorical question"] = { glossary = true, pos_categories = "rhetorical questions", } labels["saturative"] = { aliases = {"sative"}, pos_categories = "saturative verbs", } labels["semelfactive"] = { glossary = true, pos_categories = "semelfactive verbs", } labels["sentence adverb"] = { glossary = true, pos_categories = "sentence adverbs", } labels["set phrase"] = { display = "[[set phrase]]", } labels["tỷ dụ"] = { aliases = {"simile", "tỉ dụ"}, glossary = true, pos_categories = "Tỷ dụ", } labels["singular only"] = { aliases = {"singulare tantum", "no plural"}, display = "singular only", pos_categories = "singularia tantum", } labels["snowclone"] = { glossary = true, pos_categories = "snowclones", } labels["stative"] = { aliases = {"stative verb", "động từ tĩnh"}, display = "[[w:Động từ tĩnh|động từ tĩnh]]", pos_categories2 = "Động từ tĩnh", } labels["strictly"] = { aliases = {"strict", "narrowly", "narrow"}, glossary = true, } labels["substantive"] = { glossary = true, track = true, } labels["terminative"] = { pos_categories = "terminative verbs", } labels["transitive"] = { aliases = {"ngoại động từ", "ngoại đt"}, display = "ngoại động từ", glossary = "ngoại động từ", pos_categories2 = "Ngoại động từ", } labels["reduplications"] = { aliases = {"từ láy", "láy"}, display = "từ láy", glossary = "Từ láy", pos_categories2 = "Từ láy", } labels["unaccusative"] = { Wikipedia = "Unaccusative verb", } labels["uncountable"] = { aliases = {"không đếm được"}, display = "không đếm được", glossary = "không đếm được", pos_categories2 = "Danh từ không đếm được", } labels["unergative"] = { Wikipedia = "Unergative verb", } labels["usually plural"] = { aliases = {"usually in the plural", "usually in plural"}, display = "usually in the [[Phụ lục:Từ điển thuật ngữ#plural|plural]]", deprecated = true, } -- Usage labels labels["4chan"] = { display = "[[w:4chan|4chan]]", pos_categories = "4chan slang", } labels["ACG"] = { display = "[[ACG]]", -- see also "fandom slang" pos_categories = "fandom slang", } labels["endearing"] = { aliases = {"affectionate"}, display = "[[endearing]]", -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "endearing terms", } labels["pre-classical"] = { aliases = {"Pre-classical", "pre-Classical", "Pre-Classical", "Preclassical", "preclassical", "ante-classical", "Ante-classical", "ante-Classical", "Ante-Classical", "Anteclassical", "anteclassical"}, display = "pre-Classical", regional_categories = true, } labels["archaic"] = { aliases = {"antiquated", "cổ xưa"}, display = "cổ xưa", glossary = "cổ xưa", sense_categories = {"cổ xưa"}, } labels["Australian slang"] = { regional_categories = "Australian", plain_categories = true, } labels["avoidance"] = { glossary = true, } labels["back slang"] = { aliases = {"backslang", "back-slang"}, display = "[[Phụ lục:Từ điển thuật ngữ#backslang|back slang]]", pos_categories = true, } labels["Bargoens"] = { Wikipedia = true, plain_categories = true, } labels["Braille"] = { Wikipedia = true, } labels["British slang"] = { aliases = {"UK slang"}, plain_categories = true, } labels["Cambridge University slang"] = { aliases = {"University of Cambridge slang", "Cantab slang"}, display = "[[w:University of Cambridge|Cambridge University]] [[slang]]", topical_categories = "Universities", plain_categories = true, } labels["cant"] = { aliases = {"argot", "cryptolect"}, display = "[[cant]]", pos_categories = true, } labels["capitalized"] = { display = "[[capitalisation|capitalized]]", } labels["Castilianism"] = { aliases = {"Hispanicism"}, display = "[[Castilianism]]", } labels["childish"] = { aliases = {"baby talk", "child language", "infantile", "ngôn ngữ trẻ con", "ngôn ngữ trẻ em", "ngôn ngữ nhà trường"}, display = "ngôn ngữ [[trẻ con]]", -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "Ngôn ngữ trẻ con", } labels["chu Nom"] = { display = "[[Vietnamese]] [[chữ Nôm]]", plain_categories = "Mục từ chữ Nôm", } labels["Classic 1811 Dictionary of the i Tongue"] = { aliases = {"1811"}, display = "[[Phụ lục:Từ điển thuật ngữ#archaic|archaic]], [[Phụ lục:Từ điển thuật ngữ#slang|slang]]", plain_categories = "Classic 1811 Dictionary of the Vulgar Tongue", } labels["Cockney rhyming slang"] = { aliases = {"từ lóng có vần điệu của người Luân Đôn", "tiếng lóng có vần điệu của người Luân Đôn"}, display = "[[Cockney rhyming slang|từ lóng có vần điệu của người Luân Đôn]]", plain_categories = { "Từ lóng có vần điệu của người Luân Đôn" }, } labels["colloquial"] = { aliases = {"colloquially", "khẩu ngữ", "thông tục", "từ thông tục"}, display = "thông tục", glossary = "thông tục", pos_categories = "Từ thông tục", } -- FIXME! The following two are apparently for Persian but probably don't belong in this file. labels["colloquial-um"] = { glossary = "colloquial", pos_categories = "colloquialisms containing sequence um", } labels["colloquial-un"] = { glossary = "colloquial", pos_categories = "colloquialisms containing sequence un", } labels["corporate jargon"] = { aliases = {"business jargon", "corporatese", "businessese", "corporate speak", "business speak"}, display = "[[corporate]] [[jargon]]", pos_categories = true, } labels["costermongers"] = { aliases = {"coster", "costers", "costermonger", "costermongers back slang", "costermongers' back slang"}, display = "[[Appendix:Costermongers' back slang|costermongers]]", plain_categories = "Costermongers' back slang", } labels["criminal slang"] = { aliases = {"thieves' cant", "Thieves' Cant", "thieves cant", "thieves'", "thieves", "thieves’ cant"}, -- Thieves' Cant is English-only, so defined in the English submodule; if other languages try to use it, it's just criminal slang display = "[[criminal]] [[slang]]", topical_categories = "Crime", pos_categories = true, } labels["dated"] = { aliases = {"lỗi thời", "cũ", "từ cũ"}, display = "lỗi thời", glossary = "lỗi thời", -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "Từ lỗi thời", } labels["dated form"] = { glossary = "dated", pos_categories = "dated forms", } -- combine with previous? labels["dated sense"] = { glossary = "dated", sense_categories = "dated", } labels["derogatory"] = { aliases = {"pejorative", "derogative", "disparaging", "nghĩa xấu", "xấu"}, display = "nghĩa [[xấu]]", pos_categories = "Từ xấu", } labels["dialect"] = {-- separated from "dialectal" so e.g. "obsolete|outside|the|_|dialect|of..." displays right aliases = {"địa phương", "phương ngôn", "phương ngữ", "từ địa phương"}, display = "[[Phụ lục:Từ điển thuật ngữ#phương ngữ|phương ngữ]]", pos_categories = {"Từ phương ngữ"}, } labels["dialectal"] = { aliases = {"thuộc phương ngữ"}, display = "thuộc phương ngữ", glossary = "phương ngữ", -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "Từ phương ngữ", } labels["dialects"] = {-- separated from "dialectal" so e.g. "obsolete|outside|dialects" displays right display = "[[Phụ lục:Từ điển thuật ngữ#dialectal|dialects]]", pos_categories = {"dialectal terms"}, } labels["dismissal"] = { display = "[[dismissal]]", pos_categories = "dismissals", } labels["drag slang"] = { aliases = {"Drag Race slang"}, display = "[[drag]] [[slang]]", } labels["solemn"] = { glossary = true, pos_categories = "solemn terms", } labels["ecclesiastical"] = { pos_categories = "ecclesiastical terms", } labels["ethnic slur"] = { aliases = {"racial slur", "xúc phạm dân tộc", "xúc phạm chủng tộc"}, display = "[[xúc phạm]] [[dân tộc]]", pos_categories = "Từ xúc phạm dân tộc", } labels["euphemistic"] = { aliases = {"euphemism", "uyển ngữ", "nói giảm nói tránh"}, display = "uyển ngữ", glossary = "uyển ngữ", pos_categories2 = "Uyển ngữ", } labels["eye dialect"] = { display = "[[eye dialect]]", pos_categories = true, } labels["familiar"] = { aliases = {"thân mật"}, display = "thân mật", glossary = "thân mật", -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "Từ ngữ thân mật", } labels["fandom slang"] = { aliases = {"fandom", "lóng fandom", "từ lóng fandom", "tiếng lóng fandom"}, display = "{{glossary|từ lóng}} [[fandom]]", pos_categories = "Từ lóng fandom", } labels["figurative"] = { aliases = {"metaphorical", "metaphoric", "metaphor"}, glossary = "figurative", } labels["figuratively"] = { display = "nghĩa bóng", aliases = {"bóng", "figurative", "metaphor", "metaphorical", "metaphorically", "nghĩa bóng"}, glossary = "bóng", } labels["folk poetic"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = {"folk poetic terms", "poetic terms"}, } labels["formal"] = { aliases = {"trang trọng", "kiểu cách"}, display = "trang trọng", glossary = "trang trọng", -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "Từ trang trọng", } labels["gay slang"] = { display = "{{glossary|từ lóng}} người [[đồng tính]]", pos_categories2 = "Từ lóng người đồng tính", } labels["gender-neutral"] = { glossary = "epicene", pos_categories = "gender-neutral terms", } labels["genericized trademark"] = { aliases = {"generic trademark", "proprietary eponym"}, display = "[[genericized trademark]]", pos_categories = "genericized trademarks", } labels["hapax legomenon"] = { aliases = {"hapax", "từ độc hiện"}, display = "từ độc hiện", glossary = "từ độc hiện", pos_categories2 = "Từ độc hiện", } labels["higher register"] = { aliases = {"high register", "elevated register", "elevated"}, glossary = "higher register", pos_categories = "higher register terms", } labels["historical"] = { aliases = {"historic", "thuộc lịch sử", "từ lịch sử", "từ ngữ lịch sử"}, display = "từ ngữ lịch sử", glossary = "từ ngữ lịch sử", pos_categories2 = "Từ ngữ lịch sử", } labels["non-native speakers"] = {-- language-agnostic version aliases = {"NNS"}, display = "[[non-native speaker]]s", -- so preceded by "used by", "error by children and", etc? or reword? regional_categories = {"Non-native speakers'"}, } labels["non-native speakers' English"] = { aliases = {"NNES", "NNSE"}, display = "[[non-native speaker]]s' English", regional_categories = "Non-native speakers'", } -- used exclusively by languages that use the “Jpan” script code labels["historical hiragana"] = { pos_categories = true, } -- used exclusively by languages that use the “Jpan” script code labels["historical katakana"] = { pos_categories = true, } -- applies to Japanese and Korean, etc., please do not confuse with "polite" labels["honorific"] = { aliases = {"kính ngữ"}, display = "kính ngữ", Wikipedia = "Kính ngữ (ngôn ngữ học)", -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "Kính ngữ", } -- for Ancient Greek labels["Homeric epithet"] = { display = "[[Homeric Greek|Homeric]] [[w:Homeric epithets|epithet]]", omit_postComma = true, plain_categories = "Epic Greek", } -- applies to Japanese and Korean, etc. labels["humble"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp? display = "[[humble]]", pos_categories = "humble terms", } -- for Akkadian labels["in hendiadys"] = { aliases = {"hendiadys"}, pos_categories = "hendiadys", } labels["humorous"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp; NB and cf a similar "jocular" label further up on this page aliases = {"humorously", "jocular", "hài hước"}, display = "[[hài hước]]", pos_categories = "Từ hài hước", } labels["hyperbolic"] = { aliases = {"hyperbole"}, display = "[[Phụ lục:Từ điển thuật ngữ#hyperbolic|hyperbolic]]", pos_categories = "hyperboles", } labels["hypercorrect"] = { aliases = {"siêu chỉnh"}, display = "[[Phụ lục:Từ điển thuật ngữ#siêu chỉnh|siêu chỉnh]]", pos_categories = "Siêu chỉnh", } labels["hyperforeign"] = { glossary = true, pos_categories = "hyperforeign terms", } labels["imperial"] = { aliases = {"emperor", "empress"}, pos_categories = "royal terms", } labels["incel slang"] = { display = "[[incel]] [[slang]]", pos_categories = true, } labels["informal"] = { aliases = {"informally", "không trang trọng"}, display = "không trang trọng", glossary = "không trang trọng", -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories2 = "Từ không trang trọng", } labels["Internet slang"] = { aliases = {"internet slang", "lóng Internet", "lóng internet", "ngôn ngữ mạng", "từ lóng Internet", "từ lóng internet", "tiếng lóng Internet", "tiếng lóng internet"}, display = "[[từ lóng]] [[Internet]]", pos_categories = "Từ lóng Internet", } labels["IRC"] = { display = "[[IRC]]", pos_categories = "internet slang", } labels["ironic"] = { aliases = {"biếm dụ"}, display = "[[biếm dụ]]", } -- Not the same as "journalism", which maps to a topical category (e.g. [[:Category:en:Journalism]], instead of [[:Category:English journalistic terms]]). labels["journalistic"] = { aliases = {"journalese"}, display = "[[journalistic]]", pos_categories = "journalistic terms", } labels["leet"] = { aliases = {"leetspeak"}, display = "[[leetspeak]]", pos_categories = true, } labels["từ lóng LGBT"] = { aliases = {"LGBTQ slang","LGBT slang"}, display = "từ lóng [[LGBT]]", pos_categories = "Từ lóng LGBT", } labels["literal"] = { display = "nghĩa đen", glossary = "đen", } labels["literally"] = { aliases = {"nghĩa đen", "đen"}, display = "nghĩa đen", glossary = "đen", } labels["literary"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp aliases = {"bookish", "văn chương"}, display = "văn chương", glossary = "văn chương", pos_categories = "Ngôn ngữ văn chương", } labels["loosely"] = { glossary = true, } labels["Lubunyaca"] = { display = "[[Lubunyaca]]", pos_categories = true, } labels["medical slang"] = { display = "[[medical]] [[slang]]", pos_categories = true, } -- for Awetí, Karajá, etc., where men and women use different words labels["men's speech"] = { aliases = {"male speech"}, glossary = "men's speech", pos_categories = "men's speech terms", } labels["metonymically"] = { aliases = {"metonymic", "metonymy", "metonym", "hoán dụ"}, display = "hoán dụ", glossary = "hoán dụ", pos_categories = "Từ hoán dụ", } labels["military slang"] = { aliases = {"lóng quân sự", "từ lóng quân sự", "tiếng lóng quân sự"}, display = "[[từ lóng]] [[quân sự]]", pos_categories2 = "Từ lóng quân sự", } labels["minced oath"] = { aliases = {"từ chửi thề ít gây khó chịu"}, display = "[[minced oath|từ chửi thề ít gây khó chịu]]", pos_categories = "Từ chửi thề ít gây khó chịu", } labels["nativising coinage"] = { display = "[[w:Linguistic purism in Korean|nativising coinage]]", pos_categories = "nativising coinages", } labels["naval slang"] = { aliases = {"navy slang"}, display = "[[naval]] [[slang]]", pos_categories = true, } labels["neologism"] = { aliases = {"neologistic", "mới", "từ mới", "từ ngữ mới"}, display = "từ mới", glossary = "từ mới", pos_categories = "Từ mới xuất hiện", } labels["neopronoun"] = { display = "[[neopronoun]]", -- pos_categories = {"neopronouns"}, } labels["no longer productive"] = { aliases = {"không còn phát sinh từ mới"}, display = "không còn [[Phụ lục:Từ điển thuật ngữ#phát sinh từ mới|phát sinh từ mới]]", } labels["nonce word"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp? aliases = {"nonce"}, display = "[[Phụ lục:Từ điển thuật ngữ#nonce|từ tạo ra cho trường hợp cụ thể]]", pos_categories = "Từ tạo ra cho trường hợp cụ thể", } labels["nonstandard"] = { aliases = {"non-standard", "không tiêu chuẩn"}, display = "không tiêu chuẩn", glossary = " không tiêu chuẩn", pos_categories = "Từ không tiêu chuẩn", } labels["nonstandard form"] = { glossary = "nonstandard", pos_categories = "nonstandard forms", } labels["obsolete"] = { aliases = {"không còn dùng"}, display = "không còn dùng", glossary = "không còn dùng", sense_categories = "không còn dùng", } labels["obsolete term"] = { aliases = {"thuật ngữ không còn dùng", "từ không còn dùng", "từ ngữ không còn dùng"}, display = "thuật ngữ không còn dùng", glossary = "không còn dùng", -- combine with previous two, q.v. pos_categories = "Từ không còn dùng", } labels["offensive"] = { aliases = {"xúc phạm", "từ xúc phạm"}, display = "[[xúc phạm]]", -- should be "terms with X senses", leaving "X terms" to the term-context temp pos_categories = "Từ xúc phạm", } labels["officialese"] = { aliases = {"bureaucratic"}, display = "[[officialese]]", pos_categories = "officialese terms", } labels["Oxbridge slang"] = { display = "[[w:Oxbridge|Oxbridge]] [[slang]]", topical_categories = "Universities", plain_categories = {"Cambridge University slang", "Oxford University slang"}, } labels["Oxford University slang"] = { aliases = {"University of Oxford slang", "Oxon slang"}, display = "[[w:University of Oxford|Oxford University]] [[slang]]", topical_categories = "Universities", plain_categories = true, } labels["poetic"] = { -- should be "terms with X senses", leaving "X terms" to the term-context temp aliases = {"thơ ca", "thuộc thơ ca"}, display = "[[thơ ca]]", pos_categories = "Từ thơ ca", } labels["polite"] = { aliases = {"lịch sự"}, display = "lịch sự", pos_categories = "Từ lịch sự", } labels["post-classical"] = { aliases = {"Post-classical", "post-Classical", "Post-Classical", "Postclassical", "postclassical"}, display = "post-Classical", regional_categories = true, } labels["prison slang"] = { display = "[[prison]] [[slang]]", pos_categories = true, } labels["proscribed"] = { aliases = {"không nên dùng"}, glossary = "không nên dùng", pos_categories = "Từ không nên dùng", } labels["puristic"] = { aliases = {"purism"}, Wikipedia = "Linguistic purism", pos_categories = "puristic terms", } labels["radio slang"] = { display = "[[radio]] [[slang]]", pos_categories = true, } labels["Reddit slang"] = { display = "[[Reddit]] [[slang]]", pos_categories = true, } labels["rare"] = { display = "[[Phụ lục:Từ điển thuật ngữ#hiếm|hiếm]]", aliases = {"hiếm", "hiếm dùng", "ít dùng", "nghĩa hiếm", "rare sense"}, sense_categories = { "hiếm" }, } labels["rare term"] = { display = "rare", -- see comments about "obsolete" pos_categories = "rare terms", } -- cf Cockney rhyming slang labels["rhyming slang"] = { display = "[[rhyming slang]]", pos_categories = true, } labels["religious slur"] = { aliases = {"sectarian slur"}, display = "[[religious]] [[slur]]", pos_categories = "religious slurs", } labels["retronym"] = { glossary = true, pos_categories = "retronyms", } labels["reverential"] = { pos_categories = "reverential terms", } labels["royal"] = { aliases = {"regal"}, pos_categories = "royal terms", } labels["rustic"] = { glossary = true, -- should be "terms with X senses", leaving "X terms" to the term-context temp? aliases = {"rural"}, pos_categories = "rustic terms", } labels["sarcastic"] = { aliases = {"mỉa mai"}, display = "[[mỉa mai]]", pos_categories = "Từ mỉa mai", } labels["school slang"] = { aliases = {"public school slang"}, display = "[[school]] [[slang]]", pos_categories = true, } labels["self-deprecatory"] = { aliases = {"self-deprecating"}, display = "[[self-deprecatory]]", -- should be "terms with X senses", leaving "X terms" to the term-context temp? pos_categories = "self-deprecatory terms", } -- Swahili Sheng cant / argot labels["Sheng"] = { Wikipedia = "Sheng slang", plain_categories = true, } labels["siglum"] = { aliases = {"sigla"}, glossary = true, pos_categories = "sigla", } labels["slang"] = { display = "{{glossary|từ lóng}}", aliases = {"lóng", "tiếng lóng", "từ lóng"}, pos_categories = "Từ lóng", } labels["university slang"] = { aliases = {"college slang", "student slang"}, display = "[[university]] [[slang]]", topical_categories = "Universities", pos_categories = "student slang", } labels["stenoscript"] = { display = "[[Stenoscript|stenoscript]]", pos_categories = "stenoscript abbreviations", } labels["swear word"] = { aliases = {"profanity", "expletive"}, pos_categories = "swear words", } labels["syncopated"] = { aliases = {"syncope", "syncopic", "syncopation"}, glossary = true, pos_categories = "syncopic forms", } labels["synecdochically"] = { aliases = {"synecdochic", "synecdochical", "synecdoche"}, glossary = true, pos_categories = "synecdoches", } labels["technical"] = { display = "[[technical]]", pos_categories = "technical terms", } labels["telic"] = { glossary = true, } labels["text messaging"] = { aliases = {"texting", "nhắn tin", "nhắn tin văn bản"}, display = "[[nhắn tin]]", pos_categories = "Từ lóng nhắn tin", } labels["tone indicator"] = { display = "[[tone indicator]]", pos_categories = "tone indicators", } labels["trademark"] = { display = "[[trademark]]", pos_categories = "trademarks", } labels["transferred sense"] = { glossary = true, pos_categories = "terms with transferred senses", } labels["transferred senses"] = { display = "[[transferred sense#English|transferred senses]]", pos_categories = "terms with transferred senses", } labels["transgender slang"] = { display = "[[transgender]] [[slang]]", pos_categories = true, } labels["Twitch-speak"] = { display = "[[Twitch-speak]]", pos_categories = true, } labels["uds."] = { display = "[[Appendix:Spanish pronouns#Ustedes and vosotros|used formally in Spain]]", } labels["uncommon"] = { aliases = {"không phổ biến"}, display = "[[Phụ lục:Từ điển thuật ngữ#không phổ biến|không phổ biến]]", sense_categories = {"không phổ biến"}, } labels["verlan"] = { display = "[[Phụ lục:Từ điển thuật ngữ#verlan|verlan]]", plain_categories = true, } labels["very rare"] = { display = "very [[Phụ lục:Từ điển thuật ngữ#rare|rare]]", sense_categories = "rare", } labels["vulgar"] = { display = "thô tục", aliases = {"coarse", "obscene", "profane", "thô tục", "tục", "tục tĩu", "từ tục"}, glossary = "thô tục", pos_categories = "Từ thô tục", } labels["vesre"] = { Wikipedia = true, plain_categories = true, } labels["youth slang"] = { display = "[[youth]] [[slang]]", pos_categories = "slang", } labels["2channel slang"]={ aliases = {"2ch slang"}, display ="[[w:2channel|2channel]] [[slang]]", pos_categories = {"internet slang" , "2channel slang"}, } -- for Awetí, Karajá, etc., where men & women use different words labels["women's speech"] = { aliases = {"female speech"}, glossary = "women's speech", pos_categories = "women's speech terms", } -- terms applying to Old Norse skaldic poetry labels["kenning"] = { aliases = {"Kenning"}, Wikipedia = "Kenning", pos_categories = "kennings", } labels["heiti"] = { aliases = {"Heiti"}, Wikipedia = "Heiti", pos_categories = "heiti", } -- Mục nhập từ [[Bản mẫu:context/data]] labels["hoặc"] = { display = "hoặc", } labels["hơi"] = { display = "hơi", } labels["ngày nay"] = { display = "ngày nay", } labels["thường"] = { display = "thường", } labels["trừ"] = { display = "trừ", } labels["tại"] = { display = "tại", } labels["đôi khi"] = { display = "đôi khi", } labels["Cao Đài"] = { display = "Cao Đài", plain_categories = "Cao Đài", } labels["Chính Thống giáo"] = { display = "Chính Thống giáo", plain_categories = "Chính Thống giáo", } labels["biệt ngữ"] = { display = "biệt ngữ", plain_categories = "Biệt ngữ", } labels["bóng"] = { display = "nghĩa bóng", plain_categories = "Từ có nghĩa bóng", } labels["Từ cũ"] = labels["dated"] labels["cơ khí"] = { display = "cơ khí", plain_categories = "Kỹ thuật cơ khí", } labels["cổ"] = { display = "cổ", plain_categories = "Từ cổ", } labels["hiếm"] = { display = "hiếm", plain_categories = "Từ hiếm", } labels["hài hước"] = { display = "hài hước", plain_categories = "Từ hài hước", } labels["không dịch"] = { display = "không dịch", plain_categories = "Từ không dịch qua tiếng Việt", } labels["không nên dùng"] = { display = "không nên dùng", plain_categories = "Từ không nên dùng", } labels["Khẩu ngữ"] = labels["informal"] labels["kết hợp hạn chế"] = { display = "kết hợp hạn chế", plain_categories = "Từ kết hợp hạn chế", } labels["nhãn khoa"] = { display = "nhãn khoa", plain_categories = "Nhãn khoa", } labels["rộng"] = { display = "nghĩa rộng", plain_categories = "Từ có nghĩa rộng", } labels["sân khấu"] = { display = "sân khấu", plain_categories = "Sân khấu", } labels["số nhiều"] = { display = "số nhiều", } labels["số ít"] = { display = "số ít", } labels["thần thoại"] = { display = "thần thoại", plain_categories = "Thần thoại", } labels["trang trọng"] = { display = "trang trọng", plain_categories = "Từ trang trọng", } labels["trại"] = { display = "nói trại", plain_categories = "Từ nói trại", } labels["tục tĩu"] = { display = "tục tĩu", plain_categories = "Từ tục tĩu", } labels["văn học"] = { display = "văn học", plain_categories = "Văn học", } labels["Văn chương"] = labels["văn học"] labels["văn chương"] = labels["văn học"] labels["xấu"] = { display = "xấu", plain_categories = "Từ xấu", } labels["Úc"] = { display = "[[Hình:Flag of Australia.svg|22x20px|border|link=|Úc]]&nbsp;Úc", plain_categories = "Tiếng Anh Úc", } labels["Ít dùng"] = labels["rare"] labels["đen"] = { display = "nghĩa đen", plain_categories = "Từ có nghĩa đen", } labels["Phương ngữ"] = labels["dialect"] labels["định ngữ"] = { display = "định ngữ", plain_categories = "Danh từ định ngữ", } labels["Andalucía"] = { display = "Andalucía", } labels["Anglo-Norman"] = { display = "Anglo-Norman", } labels["animal"] = { display = "động vật", plain_categories = "Động vật", } labels["exercise"] = { display = "bài tập", } labels["eye dialect"] = { display = "phương ngữ mắt", } labels["family"] = { display = "gia đình", } return require("Module:labels").finalize_data(labels) d1f8bndmd3z3xzx3uzljp46t9pcvkt3 Saudi Arabia 0 273027 2351306 2280558 2026-05-08T06:36:29Z TheHighFighter2 42988 đã dời [[Thể loại:Quốc gia châu Á/Tiếng Anh]]; đã thêm [[Thể loại:en:Quốc gia của châu Á]] dùng [[w:WP:HOTCAT|HotCat]] 2351306 wikitext text/x-wiki {{-eng-}} [[Image:Flag of Saudi Arabia.svg|right|thumb|250px|'''Saudi Arabia''']] {{-pron-}} * {{IPA3|en|/ˌsaʊ.di əˈɹeɪ.bi.ə/}} * {{IPA3|en|/ˌsɔː.di əˈɹeɪ.bi.ə/}} * {{âm thanh-old|en-us-Saudi Arabia.ogg|Âm thanh (Mỹ)}} {{-place-}} {{pn}} # {{senseid|vi|Q851}} [[Ả Rập Xê Út]] ([[quốc gia]] ở [[châu Á]]). [[Thể loại:Địa danh tiếng Anh]] [[Thể loại:en:Quốc gia của châu Á]] [[Thể loại:Ả Rập Xê Út/Tiếng Anh]] qzxxn546h6vf2q6jgyc0qoecaem4g6y Thể loại:tuw-bal:Địa danh 14 281824 2351113 2259075 2026-05-07T14:42:16Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh/Tiếng Bala]] thành [[Thể loại:tuw-bal:Địa danh]] 2259075 wikitext text/x-wiki [[Thể loại:Tên/Tiếng Bala]] [[Thể loại:Danh sách chủ đề thuộc nhóm tên gọi/Tiếng Bala]] [[Thể loại:Địa danh|B]] ss28l5bjh9runwqy9mnc4xakvd37y0g 2351116 2351113 2026-05-07T14:43:11Z Hiyuune 50834 Thay cả nội dung bằng “{{auto cat}}” 2351116 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Mô đun:place/placetypes 828 282248 2351152 2350428 2026-05-07T15:02:15Z Hiyuune 50834 2351152 Scribunto text/plain local export = {} export.force_cat = false -- set to true for testing local m_locations = require("Module:place/locations") local m_links = require("Module:links") local m_table = require("Module:table") local m_strutils = require("Module:string utilities") local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" local dump = mw.dumpObject local insert = table.insert local concat = table.concat local internal_error = m_locations.internal_error export.internal_error = internal_error local process_error = m_locations.process_error export.process_error = process_error local unpack = unpack or table.unpack -- Lua 5.2 compatibility local ucfirst = m_strutils.ucfirst local ulower = m_strutils.lower local rmatch = m_strutils.match local split = m_strutils.split --[==[ intro: This module contains placetype data used by [[Module:place]] and {{tl|place}}, along with a significant amount of code to work with both placetypes and locations, as well as some placename-related info (FIXME: Consider moving it to [[Module:place/locations]]). See also [[Module:place/locations]], which has definitions of all known locations. You must currently load this module using {{cd|require()}}, not using {{cd|mw.loadData()}}. In particular, it contains two fundamental and tricky functions: # `get_placetype_equivs`, which finds the equivalent placetypes to look under in order to find a given property, and in the process correctly handles placetypes with qualifiers (including qualifiers that act similar to "type-raising" operators in that they do something non-trivial to the placetype to their right) as well as form-of directives and fallbacks. # `find_matching_holonym_location`, which looks up a holonym to find a matching known location, but in the process checks holonyms to the right to make sure there isn't a clash between the user-specified containing holonyms and the containers of the known location being considered. This is done to prevent overcategorizing when either there are two known locations with the same name (e.g. Birmingham in England and Birmingham, Alabama in the US), or more generally two locations with the same name, one of which is a known location but where the other is not (e.g. we're processing non-known-location Mérida, Spain and don't want it categorized like known location Mérida, Yucatán, Mexico). Both of these functions are invoked repeatedly, and probably are invoked several times on the same inputs and as a result are candidates for memoization to speed up the operation of {{tl|place}}. ]==] ------------------------------------------------------------------------------------------ -- Basic utilities -- ------------------------------------------------------------------------------------------ --[==[ Return true if `force_cat` is set either in this module or in [[Module:place/locations]]. ]==] function export.get_force_cat() return export.force_cat or m_locations.force_cat end -- Add the page to a tracking "category". To see the pages in the "category", -- go to [[Wiktionary:Tracking/place/PAGE]] and click on "What links here". local function track(page) require(debug_track_module)("place/" .. page) return true end function export.remove_links_and_html(text) text = m_links.remove_links(text) return text:gsub("<.->", "") end --[==[ Return the singular version of a maybe-plural placetype, or nil if not plural. This correctly handles placetypes with irregular plurals such as `kibbutzim` plural of `kibbutz` by looking up in a table constructed from the `plural` values specified in `placetype_data`. If a special plural value is not found, the regular singularization algorithm in [[Module:en-utilities]] is invoked, which reverses the y -> ies change after vowels and the 'es' addition after sh/ch/x, and otherwise just subtracts a final 's' (which will incorrectly generate 'passe' for plural 'passes'; FIXME: consider changing this for words ending in '-sses'). If the generated singular is the same as the passed-in value, nil is returned. ]==] function export.maybe_singularize_placetype(placetype) if not placetype then return nil end if export.plural_placetype_to_singular[placetype] then return export.plural_placetype_to_singular[placetype] end local retval = require(en_utilities_module).singularize(placetype) if retval == placetype then return nil end return retval end -- Return the correct plural of a placetype, and (if `do_ucfirst` is given) make the first letter uppercase. We first -- look up the plural in `placetype_data`, falling back to pluralize() in [[Module:en-utilities]], which is almost -- always correct. function export.pluralize_placetype(placetype, do_ucfirst) local ptdata = export.placetype_data[placetype] if ptdata and ptdata.plural then placetype = ptdata else placetype = placetype end if do_ucfirst then return ucfirst(placetype) else return placetype end end --[==[ Get the data associated with a placetype, which may be in its singular or plural form. If `from_category` is specified, we also look for category-only placetypes (generally plural) followed by `!`. Return three values: (a) the placetype under which the data can be looked up (i.e. in its singular form if the passed-in `placetype` is plural and did not match a category-only placetype followed by `!`); (b) the placetype data structure; (c) the type of `placetype` match that occurred, one of `"direct"` if the canonical placetype is the same as the passed-in `placetype` and also the same as the key under which `ptdata` was looked up, or `"direct-category"` if the `ptdata` was looked up under a key formed from the passed-in `placetype` by adding `!`, or `"plural"` if the `ptdata` was looked up under the singularized version of the plural passed-in `placetype`. ]==] function export.get_placetype_data(placetype, from_category) local ptdata = export.placetype_data[placetype] if ptdata then return placetype, ptdata, "direct" end if from_category then ptdata = export.placetype_data[placetype .. "!"] if ptdata then return placetype .. "!", ptdata, "direct-category" end end local sg_placetype = export.maybe_singularize_placetype(placetype) if sg_placetype then ptdata = export.placetype_data[sg_placetype] if ptdata then return sg_placetype, ptdata, "plural" end end return nil end --[==[ Check for special pseudo-placetypes that should be ignored for categorization purposes. ]==] function export.placetype_is_ignorable(placetype) return placetype == "and" or placetype == "or" or placetype:find("^%(") end function export.resolve_placetype_aliases(placetype) return export.placetype_aliases[placetype] or placetype end --[==[ Return a property from `placetype_data` for a given placetype. If the placetype isn't found in `placetype_data`, or the key isn't found in the placetype's entry in `placetype_data`, return nil. ]==] function export.get_placetype_prop(placetype, key) -- Usually we are called on equivalent placetypes returned from `get_placetype_equivs`, in which case placetype -- aliases have been resolved, but sometimes not, e.g. when fetching the indefinite article in -- get_placetype_article(). `resolve_placetype_aliases` is just a simple lookup and it doesn't hurt to do it twice. placetype = export.resolve_placetype_aliases(placetype) if export.placetype_data[placetype] then return export.placetype_data[placetype][key] else return nil end end --[==[ Given a placetype, split the placetype into one or more potential ''splits'', each consisting of a three-element list { {``prev_qualifiers``, ``this_qualifier``, ``reduced_placetype``}}, i.e. # the concatenation of zero or more previously-recognized qualifiers on the left, normally canonicalized (if there are zero such qualifiers, the value will be nil); # a single recognized qualifier, normally canonicalized (if there is no qualifier, the value will be nil); # the "reduced placetype" on the right. Splitting between the qualifier in (2) and the reduced placetype in (3) happens at each space character, proceeding from left to right, and stops if a qualifier isn't recognized. All placetypes are canonicalized by checking for aliases in `placetype_aliases`, but no other checks are made as to whether the reduced placetype is recognized. Canonicalization of qualifiers does not happen if `no_canon_qualifiers` is specified. For example, given the placetype `"small beachside unincorporated community"`, the return value will be { { {nil, nil, "small beachside unincorporated community"}, {nil, "small", "beachside unincorporated community"}, {"small", "[[beachfront]]", "unincorporated community"}, {"small [[beachfront]]", "[[unincorporated]]", "community"}, }} Here, `"beachside"` is canonicalized to `"[[beachfront]]"` and `"unincorporated"` is canonicalized to `"[[unincorporated]]"`, in both cases according to the entry in `placetype_qualifiers`. On the other hand, if given `"small former haunted community"`, the return value will be { { {nil, nil, "small former haunted community"}, {nil, "small", "former haunted community"}, {"small", "former", "haunted community"}, }} because `"small"` and `"former"` but not `"haunted"` are recognized as qualifiers. Finally, if given `"former adr"`, the return value will be { { {nil, nil, "former adr"}, {nil, "former", "administrative region"}, }} because `"adr"` is a recognized placetype alias for `"administrative region"`. ]==] function export.split_qualifiers_from_placetype(placetype, no_canon_qualifiers) local splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} local prev_qualifier = nil while true do local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if canon == nil then break end local new_qualifier = qualifier if type(canon) == "table" then canon = canon.link end if not no_canon_qualifiers and canon ~= false then if canon == true then new_qualifier = "[[" .. qualifier .. "]]" else new_qualifier = canon end end insert(splits, {prev_qualifier, new_qualifier, export.resolve_placetype_aliases(reduced_placetype)}) prev_qualifier = prev_qualifier and prev_qualifier .. " " .. new_qualifier or new_qualifier placetype = reduced_placetype else break end end return splits end --[==[ Given a `placetype` (which may be pluralized), return an ordered list of equivalent placetypes to look under to find the placetype's properties (such as the category or categories to be inserted). The return value is actually an ordered list of objects of the form `{qualifier=``qualifier``, placetype=``equiv_placetype``}` where ``equiv_placetype`` is a placetype whose properties to look up, derived from the passed-in placetype or from a contiguous subsequence of the words in the passed-in placetype (always including the rightmost word in the placetype, i.e. we successively chop off qualifier words from the left and use the remainder to find equivalent placetypes). ``qualifier`` is the remaining words not part of the subsequence used to find ``equiv_placetype``; or nil if all words in the passed-in placetype were used to find ``equiv_placetype``. (FIXME: This qualifier is not currently used anywhere.) Only placetypes for which there is an entry in `placetype_data` are included. The placetype passed in is always checked first, and will form the first entry if it exists in `placetype_data`. '''NOTE:''' This is a tricky function as it implements handling of (a) qualifiers, (b) fallback logic, (c) "type-raising" qualifiers such as `former`/`ancient`/etc. as well as `fictional` and `mythological`, and (d) form-of directives, which act somewhat similarly to `former`, and allows interaction between more than one of these simultaneously (e.g. official names of former places, which have their own categorization). If {{tl|place}} gets too slow, one potential speedup is to memoize the results of this function, as it appears to be getting called more than once on the same inputs. Another similar potential speedup is to memoize the results of `iterate_matching_holonym_location()`. For example, given the placetype `left tributary`, the following placetype/qualifier combinations are checked in turn: ``` {qualifier = nil, placetype="left tributary"} {qualifier = "left", placetype="tributary"} {qualifier = "left", placetype="river"} ``` and the return value will be { { {qualifier = "left", placetype="tributary"}, {qualifier = "left", placetype="river"}, }} The algorithm first enters the placetype itself into the list, then checks for `left tributary` as a recognized placetype in `placetype_data` and doesn't find it, so it doesn't enter it into the returned list (if it found it, it would add it as well as any fallbacks directly after it). It then splits off the recognized qualifier `left` to form the ''reduced placetype'' `tributary`, which is entered into the list because it is found in `placetype_data`. Then, because it has a fallback `river`, which exists in `placetype_data`, the fallback is entered next. Another example is `small rural fraziones` (where a ''frazione'' is type of subdivision of a ''comune'' or municipality, often specifically an outlying hamlet). the placetype/qualifier combinations checked are: ``` {qualifier = nil, placetype="small rural fraziones"} {qualifier = nil, placetype="small rural frazione"} {qualifier = "small", placetype="rural fraziones"} {qualifier = "small", placetype="rural frazione"} {qualifier = "small [[rural]]", placetype="fraziones"} {qualifier = "small [[rural]]", placetype="frazione"} {qualifier = "small [[rural]]", placetype="hamlet"} {qualifier = "small [[rural]]", placetype="village"} ``` The return value ends up as {qualifier = "small [[rural]]", placetype="frazione"}, {qualifier = "small [[rural]]", placetype="hamlet"}, {qualifier = "small [[rural]]", placetype="village"}, }} Here, because the result of singularizing `fraziones` returns a different value from the placetype itself, that singularized value is checked after the original plural value. Also, in the process of splitting off qualifiers, they are canonicalized if the entry in `placetype_qualifiers` says to do so; in this case, links are placed around `rural`. Finally, `frazione` has `hamlet` as its fallback, which in turn has `village` as its fallback, so both fallbacks end up being returned. `no_fallback`, if set, disables returning equivalent placetypes based on the `fallback` setting for a placetype. This is used in the first of two loops in find_placetype_cat_specs() in [[Module:place]] to prefer exact matches for placetypes such as barangays with later holonyms to matches based on a fallback such as `neighborhood` with an earlier holonym. See the comment in that function in [[Module:place]] for a more detailed explanation of why this is needed. Only the placetype itself, and any reduced placetypes created by chopping off recognized qualifiers at the beginning, are returned; but we do not return reduced placetypes if a containing placetype exists in `placetype_data`. (For example, `"overseas territory"` has a fallback `"dependent territory"`, and `"overseas"` is also a recognized qualifier. When `no_fallback` is in place, without the above proviso, we would return `"overseas territory"` followed by `"territory"` with the incorrect effect of classifying an `"overseas territory"` of the United Kingdom such as `"Gibraltar"` under [[:Category:Territories of the United Kingdom]] instead of [[:Category:Dependent territories of the United Kingdom]].) As an exception, if `historical`, `ancient`, `former` or the like are found, they proceed ignoring `no_fallback`, because it seems tricky to handle them correctly in the presence of `no_fallback`, and historical/former placetypes rarely occur with exact match category specs anyway. `no_split_qualifiers` prevents splitting off recognized qualifiers and returning the remainder of the placetype as an equivalent placetype. Only the passed-in placetype, and any fallbacks, will be returned. This is used in [[Module:category tree/topic cat/data/Places]] when looking up placetypes found in categories. Such placetypes won't have qualifiers and so it doesn't make sense to try and look for them. `from_category`, if set, causes category-only placetypes (those ending in `!`) to also be checked. `form_of_directive`, if set, causes the specified form-of directive (e.g. `FORMER_NAME_OF`) to be prepended to checked placetypes, their directive-specific type (e.g. `FORMER_NAME_OF_type`), and their classes (`class`) to get the appropriate placetypes to check for form-of-directive categories. It falls back to the prepended generic `place` as a placetype, e.g. `FORMER_NAME_OF place`, if nothing else matches. `no_check_for_inherently_former` is used internally to prevent an infinite loop when checking for `inherently_former`. `register_former_as_non_former` is a major hack used in `get_bare_categories` to deal with the mismatch between e.g. known location `Yugoslavia` declaring itself a `country` but definitions of it declaring it a `former country`. It causes the non-former version of the specified placetype to be included in the returned equivalents along with the former placetypes. [FIXME: This should apply only to the entries in `former_countries` but it's tricky to do that now; fix this in the known-location refactor. -- The known-location refactor is already done but we haven't yet fixed this.] ]==] function export.get_placetype_equivs(placetype, props) local no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former local form_of_directive if props then no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former = props.no_fallback, props.no_split_qualifiers, props.no_check_for_inherently_former, props.from_category, props.register_former_as_non_former form_of_directive = props.form_of_directive end local equivs = {} -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. `qualifier` is -- the preceding qualifier to insert into `equivs` along with the placetype (see comment at top of function). If -- `from_category` is given, we also check for a category-specific entry consisting of the placetype followed by -- `!`, and in all cases we also check to see if `placetype` is plural, and if so, insert the singularized version -- along with its fallbacks (if any) in `placetype_data`. `form_of_prefix` is a form-of prefix such as -- `OFFICIAL_NAME_OF`. If specified, we check the fallbacks of `placetype` without the prefix but then insert into -- `equivs` the prefixed placetype. This way, if the user says e.g. {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}}, -- we will correctly categorize into [[:Category:Official names of countries]], rather than only trying to look up -- `OFFICIAL_NAME_OF island country` and failing, falling back ultimately to [[:Category:Official names of places]]. local function insert_placetype_and_fallbacks(qualifier, placetype, form_of_prefix) local function insert_equiv(pt) if form_of_prefix then -- Let's say the user says {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}} and we have -- no entry for `OFFICIAL_NAME_OF island country` but we do for `OFFICIAL_NAME_OF country` (which we end -- up processing because `island country` falls back to `country`), and that entry in turn is defined -- using a fallback. We have to insert that fallback-of-fallback, and the easiest/cleanest way of -- handling this is by calling ourselves recursively. insert_placetype_and_fallbacks(qualifier, form_of_prefix .. " " .. pt) else insert(equivs, {qualifier=qualifier, placetype=pt}) end end -- Insert the placetype, along with any fallbacks. local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if ptdata then insert_equiv(canon_placetype) if no_fallback then return end local first_placetype = #equivs + 1 local prev_placetype = nil while true do local pt_value = export.placetype_data[canon_placetype] if not pt_value then internal_error("Fallback value %s specified for placetype %s but is not in `placetype_data`", canon_placetype, prev_placetype) end if pt_value.fallback then insert_equiv(pt_value.fallback) local last_placetype = #equivs if last_placetype - first_placetype >= 10 then local fallback_loop = {} for i = first_placetype, last_placetype do insert(fallback_loop, equivs[i].placetype) end internal_error("Apparent loop in fallback chain: %s", table.concat(fallback_loop, " -> ")) end prev_placetype = canon_placetype canon_placetype = pt_value.fallback else break end end end end -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. This is a -- wrapper around the more basic `insert_placetype_and_fallbacks()` which handles form-of directives. If there is no -- form-of directive, this function directly calls `insert_placetype_and_fallbacks()`. We do things this way so that -- form-of directives correctly combine with `former`-type qualifiers. Note that we also have special backups for -- form-of directives that check `DIRECTIVE place` (and before that, `DIRECTIVE FORMER/ANCIENT place` is there's a -- `former`-type directive); these backups live outside this function because we want them done once, late, rather -- than in each invocation of `process_and_insert_placetype()`. local function process_and_insert_placetype(qualifier, reduced_placetype) if form_of_directive then -- First check for e.g. `OFFICIAL_NAME_OF island country` and its fallbacks; then we look for fallbacks of -- `island country` and check e.g. `OFFICIAL_NAME_OF country` and its fallbacks. All of this is handled by -- `insert_placetype_and_fallbacks()` with appropriate parameters. After that, check the general class of -- the directive, e.g. `subpolity` if something like `district` is given. (Eventually, we check for -- `OFFICIAL_NAME_OF place` as a backup, but this happens at the end outside the loop over qualifiers.) insert_placetype_and_fallbacks(qualifier, reduced_placetype, form_of_directive) if not no_fallback then local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype) local directive_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, form_of_directive .. "_type") or export.get_placetype_prop(pt, "class") end ) if not directive_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s in conjunction with form-of directive %s, placetype data " .. 'located but directive-specific type property %s missing, and so is "class"; ' .. "placetypes searched are %s", reduced_placetype, form_of_directive, form_of_directive .. "_type", reduced_placetype_equivs) else -- This should be allowed, as we allow unrecognized placetypes in general. end elseif directive_type ~= "!" then insert_placetype_and_fallbacks(qualifier, directive_type, form_of_directive) end end else insert_placetype_and_fallbacks(qualifier, reduced_placetype) end end -- Successively split off recognized qualifiers and loop over successively greater sets of qualifiers from the left -- (unless `no_split_qualifiers` is specified, in which case we don't check for qualifiers). local splits if no_split_qualifiers then splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} else splits = export.split_qualifiers_from_placetype(placetype) end for _, split in ipairs(splits) do local prev_qualifier, this_qualifier, reduced_placetype = unpack(split, 1, 3) -- If a special "former" qualifier like `former` or `historical` isn't present, and -- `no_check_for_inherently_former` is not given (this flag is used to avoid infinite loops), check for -- "inherently former" placetypes like `satrapy` and `treaty port` that always refer to no-longer-existing -- placetypes, and handle accordingly. local unlinked_this_qualifier if this_qualifier and this_qualifier:find("%[") then unlinked_this_qualifier = export.remove_links_and_html(this_qualifier) else unlinked_this_qualifier = this_qualifier end local former_qualifiers = this_qualifier and export.former_qualifiers[unlinked_this_qualifier] or nil if not former_qualifiers and not no_check_for_inherently_former then former_qualifiers = export.get_equiv_placetype_prop(reduced_placetype, function(pt) return export.get_placetype_prop(pt, "inherently_former") end, {no_check_for_inherently_former = true}) end -- If a special "former" qualifier like `former` or `historical` is present, map it to the appropriate internal -- qualifiers (`ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified -- qualifiers), fetch the `former_type` property, and treat the placetype as if a concatenation of the mapped -- qualifier(s) and the value of `former_type`. For example, if `medieval village` is given, we map `medieval` -- to `ANCIENT` and `FORMER`, and `village` to its `former_type` of `settlement`, and enter the placetypes -- `ANCIENT settlement` and `FORMER settlement` (in that order) into `equivs`. If the placetype following the -- "former" qualifier is recognized in `placetype_data` but has no `former_type` and no fallback with a -- `former_type` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like -- `former greenhouse` is specified and we don't have an entry for `greenhouse`), just track the occurrence and -- don't enter anything into `equivs`. if former_qualifiers then -- FIXME: Should we respect `no_fallback` here? My instinct says no. local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype, { no_check_for_inherently_former = true }) local former_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, "former_type") or export.get_placetype_prop(pt, "class") end ) if not former_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s, placetype data located but `former_type` missing; " .. "placetypes searched are %s", reduced_placetype, reduced_placetype_equivs) else -- Enable error when we've verified there aren't any examples. track("bad-former-placetype") track("bad-former-placetype/" .. reduced_placetype) --process_error("For placetype '%s', unrecognized placetype following 'former'-type " .. -- "qualifier; searched placetype(s) %s", reduced_placetype, dump(reduced_placetype_equivs)) end elseif former_type ~= "!" then -- First check directly for `ANCIENT/FORMER` + the original following placetype. This makes it possible -- for (e.g.) former provinces of the Roman empire to be categorized specially. for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. reduced_placetype) end for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. former_type) end -- HACK! See explanation above for `register_former_as_non_former`. if register_former_as_non_former then process_and_insert_placetype(prev_qualifier, reduced_placetype) end -- If we're processing a form-of directive, after doing everything else we do -- `DIRECTIVE ANCIENT/FORMER place` e.g. `OFFICIAL_NAME_OF FORMER place` as a backup. if form_of_directive and not no_fallback then for _, former_qualifier in ipairs(former_qualifiers) do insert_placetype_and_fallbacks(prev_qualifier, form_of_directive .. " " .. former_qualifier .. " place") end end -- Don't continue processing equivs. The reason is probably the same as the `break` below for -- qualifier_to_placetype_equivs[]; categories for `former BLAH` are set using `default`, and -- non-former equivs will otherwise take precedence. break end end -- Then see if the rightmost split-off qualifier is in qualifier_to_placetype_equivs -- (e.g. 'fictional *' -> 'fictional location'). If so, add the mapping. if this_qualifier and export.qualifier_to_placetype_equivs[unlinked_this_qualifier] then insert(equivs, { qualifier=prev_qualifier, placetype=export.qualifier_to_placetype_equivs[unlinked_this_qualifier] }) -- Don't continue processing equivs; otherwise, if we specify 'mythological city', even though the -- equivalent entry for 'mythological location' gets inserted ahead of the entry for 'city', the -- latter ends up generating the category because the category for 'mythological location' is set as -- the default value, which is used only when no non-default category can be found. break end -- Finally, join the rightmost split-off qualifier to the previously split-off qualifiers to form a combined -- qualifier, and add it along with reduced_placetype and any mapping in placetype_data for reduced_placetype. -- NOTE: The first time through this loop, both `prev_qualifier` and `this_qualifier` are nil, and this inserts -- the full placetype into `equivs`. local qualifier = prev_qualifier and prev_qualifier .. " " .. this_qualifier or this_qualifier process_and_insert_placetype(qualifier, reduced_placetype) -- If `no_fallback` and there's an entry in `placetype_data` for this placetype, don't include any reduced -- placetypes to avoid the "overseas territory treated as a territory" issue describe above. if no_fallback then local canon_placetype, ptdata, ptmatch = export.get_placetype_data(reduced_placetype, from_category) if canon_placetype then break end end end -- If we're processing a form-of directive, after doing everything else we do `DIRECTIVE place` e.g. -- `OFFICIAL_NAME_OF place` as a backup; but only if either the placetype as a whole is recognized or the placetype -- begins with a recognized qualifier. This latter check is to avoid categorizing into e.g. -- [[Category:en:Former names of places]] in an invocation like -- {{place|en|@former name of:Democratic Republic of the Congo|country|r/Central Africa|;|used from 1971–1997}}; -- the `used from 1971–1997` gets treated as a placetype and we're called on it. if form_of_directive and not no_fallback and (splits[2] or export.get_placetype_data(placetype, from_category)) then insert_placetype_and_fallbacks(nil, form_of_directive .. " place") end return equivs end function export.get_equiv_placetype_prop_from_equivs(equivs, fun, continue_on_nil_only) for _, equiv in ipairs(equivs) do local retval = fun(equiv.placetype) if continue_on_nil_only and retval ~= nil or not continue_on_nil_only and retval then return retval, equiv end end return nil, nil end --[==[ Given a placetype `placetype` and a function `fun` of one argument, iteratively call the function on equivalent placetypes fetched from `get_placetype_equivs` until the function returns a non-falsy value (i.e. not {nil} or {false}); but if `continue_on_nil_only` is specified, the iterations continue until the function returns non non-{nil} value. FIXME: We should make `continue_on_nil_only` the default; but this requires changing some callers.) When `fun` returns a non-falsy or non-{nil} value, `get_equiv_placetype_prop` returns two values: the value returned by `fun` and the equivalent placetype that triggered the non-falsy (or non-{nil}) return value. If `fun` never returns a non-falsy (or non-{nil}) value, `get_equiv_placetype_prop` returns {nil} for both return values. If `placetype` is passed in as {nil}, the return value is the result of calling `fun` on {nil} (whatever it is) with {nil} for the second return value. ]==] function export.get_equiv_placetype_prop(placetype, fun, props) if not placetype then return fun(nil), nil end return export.get_equiv_placetype_prop_from_equivs(export.get_placetype_equivs(placetype, props), fun, props and props.continue_on_nil_only) end --[==[ Return the article that is used with an entry placetype. We proceed as follows: # See if there is a recognized qualifier at the beginning that specifies an article (including `false` for no article). This takes precedence over anything else, so that e.g. `various capitals` gets no article rather than "`the"`. # Then check the placetype or any equivalent placetype for the `entry_placetype_use_the` property, indicating that `"the"` should be used. # Otherwise we look to see if the placetype itself (not any equivalents, even those involving deleting a qualifier from the beginning) has an entry in `placetype_data` that specifies the indefinite article using `entry_placetype_use_the` (principally for use with placetypes like `union territory`). # Otherwise, we use [[Module:en-utilities]] to apply the standard algorithm to generate `"an"` for words beginning with a vowel and `"a"` otherwise. If `ucfirst` is true, the first letter of the article is made upper-case. ]==] function export.get_placetype_article(placetype, ucfirst) local art local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if type(canon) == "table" then art = canon.article end end if art == false then return art end if art == nil then local placetype_use_the = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "entry_placetype_use_the") end) if placetype_use_the then art = "tên" else art = export.get_placetype_prop(placetype, "entry_placetype_indefinite_article") if not art then art = require(en_utilities_module).get_indefinite_article(placetype) end end end if ucfirst then art = m_strutils.ucfirst(art) end return art end --[==[ Return the preposition that should be used after `placetype` when occurring as an entry placetype or in categories (e.g. `city >in< France` but `country >of< South America`). The preposition defaults to `"của"` if not specified. ]==] function export.get_placetype_entry_preposition(placetype) local pt_prep = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "preposition") end ) return pt_prep or "của" end --[==[ Given a place desc (see top of file) and a holonym object (see top of file), add a key/value into the place desc's `holonyms_by_placetype` field corresponding to the placetype and placename of the holonym. For example, corresponding to the holonym "c/Italy", a key with the list value {"Italy"} will be added to the place desc's `holonyms_by_placetype` field. If there is already a key with that place type, the new placename will be added to the end of the value's list. ]==] function export.key_holonym_into_place_desc(place_desc, holonym) if not holonym.placetype then return end -- Key in equivalent placetypes, so that e.g. `cities/San Francisco` gets keyed under `city`; but don't do -- fallbacks, as it doesn't seem correct for the "do other holonyms of the same placetype" algorithm to do holonyms -- of different types just because they have the same fallback. local equiv_placetypes = export.get_placetype_equivs(holonym.placetype, {no_fallback = true}) local unlinked_placename = holonym.unlinked_placename for _, equiv in ipairs(equiv_placetypes) do local placetype = equiv.placetype if not place_desc.holonyms_by_placetype then place_desc.holonyms_by_placetype = {} end if not place_desc.holonyms_by_placetype[placetype] then place_desc.holonyms_by_placetype[placetype] = {unlinked_placename} else insert(place_desc.holonyms_by_placetype[placetype], unlinked_placename) end end end --[=[ Construct a formatted link from the raw link spec `link` given the canonical singular placetype `sg_placetype`. If the placetype was originally plural, `orig_placetype` should contain this plural value; otherwise it should be nil. This will construct the appropriate type of link that displays as `orig_placetype` (or otherwise `sg_placetype`) but links to whatever the `link` spec specifies (which may be `sg_placetype`, a Wikipedia article, etc.). `ptdata` is the placetype data structure for the placetype, and `from_category` indicates that we are generating the description of a category (otherwise we are generating the display form of an entry placetype). ]=] local function make_placetype_link(link, sg_placetype, orig_placetype, ptdata, from_category, noerror) if not from_category and ptdata.disallow_in_entries then if noerror then return "[not meant to be specified directly, with warning: " .. ptdata.disallow_in_entries .. "]" else process_error("Placetype %s is not meant to be specified directly: " .. ptdata.disallow_in_entries, sg_placetype) end end if link == nil then internal_error("Placetype data present for placetype %s but no link= setting given", sg_placetype) elseif link == true then if orig_placetype then return ("[[%s|%s]]"):format(sg_placetype, orig_placetype) else return ("[[%s]]"):format(sg_placetype) end elseif link == false then process_error("Placetype %s is not meant to be specified directly, but is only for internal use", sg_placetype) elseif link == "w" then return ("[[w:%s|%s]]"):format(sg_placetype, orig_placetype or sg_placetype) elseif link == "separately" then if orig_placetype then local sg_words = split(sg_placetype, " ") local orig_words = split(orig_placetype, " ") if #sg_words ~= #orig_words then internal_error("Can't construct 'separately' link for plural placetype %s as original placetype %s " .. "has different number of words", orig_placetype, sg_placetype) else for i = 1, #sg_words do if sg_words[i] == orig_words[i] then sg_words[i] = ("[[%s]]"):format(sg_words[i]) else sg_words[i] = ("[[%s|%s]]"):format(sg_words[i], orig_words[i]) end end return concat(sg_words, " ") end else return (sg_placetype:gsub("([^ ]+)", "[[%1]]")) end elseif link:find("^%+") then link = link:sub(2) -- discard initial + return ("[[%s|%s]]"):format(link, orig_placetype or sg_placetype) elseif not orig_placetype then return link else return link end end --[==[ Get the display form of a placetype by looking it up in `placetype_data`. If the placetype is recognized, or is the plural of a recognized placetype, the corresponding linked display form is returned (with plural placetypes displaying as plural but linked to the singular form of the placetype). Otherwise, return nil. If we're generating the description of a category, `category_type` should be set to one of `"top-level"` (for top-level categories like [[:Category:Neighborhoods]]), `"noncity"` (for non-city categories like [[:Category:Neighborhoods in Illinois, USA]]) or `"thành phố"` (for city categories like [[:Category:Neighborhoods of Chicago]]). Otherwise, we're generating the description for use in formatting a {{tl|place}} call, and category-only placetypes ending in `!` will be ignored, along with special `category_link*` settings. `return_full` is used along with `category_type` and will preferably return the "full" variant of category link settings, i.e. `full_category_link*`; if they don't exist, the `category_link*` value is prepended with `"names of"`. `noerror` says to not throw an error when encountering entry placetypes that would be disallowed. ]==] function export.get_placetype_display_form(placetype, category_type, return_full, noerror) local from_category = not not category_type local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if canon_placetype then local raw_link local function is_linked_string(str) return type(str) == "string" and str:find("%[%[") end if category_type then local fetched_full local function fetch_maybe_full(prop) local retval = ptdata["full_" .. prop] if retval ~= nil then if return_full then return retval, true else internal_error("Saw full_" .. prop .. "=%s but `return_full` not set, can't handle", retval) end end return ptdata[prop], false end local function maybe_prefix(str) if return_full and not fetched_full then return "names of " .. str else return str end end -- Careful with `false` as possible value. if category_type == "top-level" then raw_link, fetched_full = fetch_maybe_full("category_link_top_level") elseif category_type == "noncity" then raw_link, fetched_full = fetch_maybe_full("category_link_before_noncity") elseif category_type == "thành phố" then raw_link, fetched_full = fetch_maybe_full("category_link_before_city") else internal_error('Unrecognized value for `category_type` %s, should be "top-level", "noncity" or "thành phố"', category_type) end if type(raw_link) == "string" then return maybe_prefix(raw_link), ptdata elseif raw_link ~= nil then return raw_link, ptdata end raw_link, fetched_full = fetch_maybe_full("category_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end if ptmatch == "plural" then raw_link, fetched_full = fetch_maybe_full("plural_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end end if raw_link == nil then raw_link, fetched_full = fetch_maybe_full("link") end if raw_link == false then return raw_link, ptdata end return maybe_prefix(make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror)), ptdata else if ptmatch == "plural" then raw_link = ptdata.plural_link if raw_link == false then process_error("Placetype %s cannot appear plural", placetype) end if is_linked_string(raw_link) then return raw_link, ptdata end end if raw_link == nil then raw_link = ptdata.link end return make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror), ptdata end end return nil end local function resolve_unlinked_placename_display_aliases(placetype, placename) local equiv_placetypes = export.get_placetype_equivs(placetype) for i, equiv in ipairs(equiv_placetypes) do equiv_placetypes[i] = equiv.placetype end local all_display_aliases_found = {} local all_others_found = {} for group, key, spec in m_locations.iterate_matching_location { placetypes = equiv_placetypes, placename = placename, alias_resolution = "display", } do if spec.alias_of and spec.display then insert(all_display_aliases_found, {group, key, spec, spec.display_as_full}) else insert(all_others_found, {group, key, spec}) end end if not all_display_aliases_found[1] then return placename elseif all_display_aliases_found[2] then internal_error("Found multiple matching display aliases for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) elseif all_others_found[1] then internal_error("Found a display alias along with other possible meanings for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) else local group, key, spec, as_full = unpack(all_display_aliases_found[1]) local full, elliptical = m_locations.key_to_placename(group, key) return as_full and full or elliptical end end --[==[ If `placename` of type `placetype` is a display alias, convert it to its canonical form; otherwise, return unchanged. Display aliases transform certain placenames into canonical displayed forms. For example, if any of `country/US`, `country/USA` or `country/United States of America` (or `c/US`, etc.) are given, the result will be displayed as `United States`. '''NOTE''': Display aliases change what is displayed from what the editor wrote in the Wikitext. As a result, they should (a) be non-political in nature, and (b) not involve a change where the word `the` needs to be added or removed. For example, normalizing `US` and `USA` to `United States` for display purposes is OK but normalizing `Burma` to `Myanmar` is not (instead a cat alias should be used) because the terms `Burma` and `Myanmar` have clear political connotations. Similarly, we have a display alias that maps the old name of `Macedonia` as a country (but not a region!) to `North Macedonia`, but `Republic of Macedonia` is mapped to `North Macedonia` only as a cat alias because the two terms differ in their use of `the`. (For example, if we had a display alias mapping `Republic of Macedonia` to `North Macedonia`, the call {{tl|place|en|the <<capital city>> of the <<c/Republic of Macedonia>>}} would wrongly display as `the [[capital city]] of the [[North Macedonia]]`.) Generally, display normalizations tend to involve alternative forms (e.g. abbreviations, ellipses, foreign spellings) where the normalization improves clarity and consistency. ]==] function export.resolve_placename_display_aliases(placetype, placename) -- If the placename is a link, apply the alias inside the link. -- This pattern matches both piped and unpiped links. If the link is not piped, the second capture (linktext) will -- be empty. local link, linktext = rmatch(placename, "^%[%[([^|%[%]]+)|?([^|%[%]]-)%]%]$") if link then if linktext ~= "" then local alias = resolve_unlinked_placename_display_aliases(placetype, linktext) return "[[" .. link .. "|" .. alias .. "]]" else local alias = resolve_unlinked_placename_display_aliases(placetype, link) return "[[" .. alias .. "]]" end else return resolve_unlinked_placename_display_aliases(placetype, placename) end end --[==[ Generate the "prefixed" version of a bare key, i.e. prefix it with `the` if correct for this key. ]==] function export.get_prefixed_key(key, spec) if spec.the then return key else return key end end -- Necessary for use by [[Module:place]]. FIXME: Reorganize the modules so this isn't necessary. export.iterate_matching_location = m_locations.iterate_matching_location --[=[ Iterator that iterates over holonyms in `place_desc`. If `first_holonym_index` is given, start iterating at the specified holonym and stop either when there are no more holonyms or a holonym with modifier `:also` is found. If `first_holonym_index` is nil or omitted, iterate over all holonyms regardless. If `include_raw_text_holonyms` is specified, raw text holonyms (those not of the form `placetype/placename`) are returned as well; they can be identified by the fact that the `placetype` field in the holonym structure is nil. Two values are returned at each iteration, the holonym index and holonym structure, similar to `ipairs()`. ]=] function export.get_holonyms_to_check(place_desc, first_holonym_index, include_raw_text_holonyms) local stop_at_also = not not first_holonym_index return function(place_desc, index) while true do index = index + 1 local this_holonym = place_desc.holonyms[index] -- If we were passed in a starting holonym index, go up to but not including a holonym marked with `:also` -- (continue_cat_loop); the categorization code will then restart the loop at that holonym. That holonym -- will have `:also` marked on it, so make sure not to stop immediately if the first holonym is marked with -- `:also`. if not this_holonym or stop_at_also and index > first_holonym_index and this_holonym.continue_cat_loop then return nil end -- If not placetype, we're processing raw text, which we normally want to skip. if include_raw_text_holonyms or this_holonym.placetype then return index, this_holonym end end end, place_desc, first_holonym_index and first_holonym_index - 1 or 0 end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, iterate over all such known locations, returning for each location the corresponding key, spec and group as well as the trail of ancestral containers. Unlike `iterate_matching_location()`, this specifically checks that there is no mismatch between the location's containers at any level and any of the following holonyms in the {{tl|place}} spec. The fields in `data` are: * `holonym_placetype`: The placetype of the holonym. It can actually be a list of possible placetypes, as with `iterate_matching_location()`. * `holonym_placename`: The placename of the holonym. * `holonym_index`: The index of the holonym among the holonyms in `place_desc`, or nil if the holonym is not among the holonyms in `place_desc`. (If a holonym index is given, we check for container mismatches among the holonyms following the specified index, stopping either when encountering a holonym marked with modifier `:also` or, if none exist, when we run out of holonyms. If no holonym index is given, we check all holonyms for container mismatches.) * `place_desc`: Description of the place; used for the holonyms, to check for container mismatches. Returns four values: the location group, the canonical key by which the location is known, the spec object describing the location and the trail of ancestral containers for the location. The first three values are the same as for `iterate_matching_location`. ]==] function export.iterate_matching_holonym_location(data) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc local matching_location_iterator = m_locations.iterate_matching_location { placetypes = holonym_placetype, placename = holonym_placename, } return function() while true do local group, key, spec = matching_location_iterator() if not group then return nil end local container_trail = {} -- For each level of container, check that there are no mismatches (i.e. other location of the same -- placetype) mentioned. We allow a mismatch at a given level if there's also a match with the container -- at that level. For example, in the case of Kansas City, defined in [[Module:place/locations]] as a city -- in Missouri, if we define it as {{tl|place|city|s/Missouri,Kansas}}, we ignore the mismatching state of -- Kansas because the correct state of Missouri was also mentioned. But imagine we are defining Newark, -- Delaware as {{tl|place|city|s/Delaware|c/US}} and (as is the case) we have an entry for Newark, New -- Jersey in [[Module:place/locations]]. Just because the containing location `US` matches isn't enough, -- because Newark, NJ also has New Jersey as a containing location and there's a mismatch at that level. If -- there are no mismatches at any level we assume we're dealing with the right known location. -- -- If at a given level there are multiple containing locations, we count a match if any holonym matches any -- containing location, and a mismatch only if a holonym exists of the same placetype that doesn't match any -- containing location. local containers_mismatch = false for containers in m_locations.iterate_containers(group, key, spec) do insert(container_trail, containers) local match_at_level = false local mismatch_at_level = false for other_holonym_index, other_holonym in export.get_holonyms_to_check(place_desc, holonym_index and holonym_index + 1 or nil) do local other_source_holonym = other_holonym.augmented_from_holonym if other_source_holonym and other_source_holonym.placetype == holonym_placetype and other_source_holonym.unlinked_placename ~= holonym_placename then -- Ignore holonyms added during the augmentation process for other holonyms of the same -- placetype as the placetype of the holonym we're considering. See comment in -- augment_holonyms_with_container() for why we do this. -- continue; grrr, no 'continue' in Lua else local holonym_matches_at_level = false local holonym_exists_with_same_placetype = false for _, container in ipairs(containers) do if not container.spec.no_check_holonym_mismatch then local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) local placetypes = container.spec.placetype if type(placetypes) ~= "table" then placetypes = {placetypes} end local placetype_equivs = {} for _, pt in ipairs(placetypes) do m_table.extend(placetype_equivs, export.get_placetype_equivs(pt)) end local this_holonym_matches = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype and (other_holonym.unlinked_placename == full_container_placename or other_holonym.unlinked_placename == elliptical_container_placename) end ) if this_holonym_matches then holonym_matches_at_level = true break end local this_holonym_exists_with_same_placetype = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype end ) if this_holonym_exists_with_same_placetype then -- We seem to have a mismatch at this level. But before we decide conclusively that this -- is the case, check to see whether the putative mismatch is an alias and matches when -- we resolve the alias. for oh_group, oh_key, oh_spec, oh_container_trail in export.iterate_matching_holonym_location { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = place_desc, } do local oh_full_placename, oh_elliptical_placename = m_locations.key_to_placename(oh_group, oh_key) if oh_full_placename == full_container_placename or oh_elliptical_placename == elliptical_container_placename then -- Alias matched when resolved. this_holonym_matches = true break end end if this_holonym_matches then -- Alias matched above when resolved. holonym_matches_at_level = true break else -- Not an alias, or doesn't match when resolved. We have a true mismatch. holonym_exists_with_same_placetype = true end end end end if holonym_matches_at_level then match_at_level = true break end if holonym_exists_with_same_placetype then mismatch_at_level = true end end end if not match_at_level and mismatch_at_level then containers_mismatch = true break end end if not containers_mismatch then return group, key, spec, container_trail end end end end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, find and return the corresponding key, spec and group as well as the trail of ancestral containers. This is like `iterate_matching_holonym_location()` but throws an error if more than one location matches. (An example where this would happen is {{tl|place|en|neighborhood|city/Newcastle}}, because there are two known locations named Newcastle. To fix this, specify additional following disambiguating holonyms, e.g. {{tl|place|en|neighborhood|city/Newcastle|s/New South Wales}}. ]==] function export.find_matching_holonym_location(data) local all_found = {} for group, key, spec, container_trail in export.iterate_matching_holonym_location(data) do insert(all_found, {group, key, spec, container_trail}) end if not all_found[1] then return nil elseif all_found[2] then local holonym_placetype = data.holonym_placetype if type(holonym_placetype) == "table" then holonym_placetype = concat(holonym_placetype, ",") end local found_keys = {} for _, found in ipairs(all_found) do local _, key, _, _ = unpack(found) insert(found_keys, key) end error(("Found multiple matching locations for holonym '%s/%s'; specify disambiguating context in the " .. "containing holonyms: %s"):format(holonym_placetype, data.holonym_placename, dump(found_keys))) else return unpack(all_found[1]) end end ------------------------------------------------------------------------------------------ -- Placename and placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: This is a map from aliases to their canonical forms. Any placetypes appearing as keys here will be mapped to their canonical forms in all respects, including the display form. Contrast entries in 'placetype_data' with a fallback, which applies to categorization and other processes but not to display. The most important aliases are for holonym placetypes, particularly those that occur often such as "country", "state", "province" and the like. Particularly long placetypes that mostly occur as entry placetypes (e.g. "census-designated place") can be given abbreviations, but it is generally preferred to spell out the entry placetype. Note also that we purposely avoid certain abbreviations that would be ambiguous (e.g. "d", which could variously be interpreted as "department", "district" or "division"). ]==] export.placetype_aliases = { ["acomm"] = "autonomous community", ["adr"] = "administrative region", ["adterr"] = "administrative territory", -- Pakistan ["aobl"] = "autonomous oblast", ["aokr"] = "autonomous okrug", ["ap"] = "autonomous province", ["apref"] = "autonomous prefecture", ["aprov"] = "autonomous province", ["ar"] = "autonomous region", ["arch"] = "archipelago", ["arep"] = "autonomous republic", ["aterr"] = "autonomous territory", ["atu"] = "autonomous territorial unit", ["bor"] = "borough", ["c"] = "quốc gia", ["can"] = "canton", ["carea"] = "council area", ["cc"] = "constituent country", ["cdblock"] = "community development block", ["cdep"] = "Crown dependency", ["CDP"] = "census-designated place", ["cdp"] = "census-designated place", ["clcity"] = "county-level city", ["co"] = "county", ["cobor"] = "county borough", ["colcity"] = "county-level city", ["coll"] = "collectivity", ["comm"] = "community", ["cont"] = "lục địa", ["continent"] = "lục địa", ["contr"] = "continental region", ["contregion"] = "continental region", ["cpar"] = "civil parish", ["damun"] = "direct-administered municipality", ["dep"] = "dependency", ["department capital"] = "departmental capital", ["dept"] = "department", ["depterr"] = "dependent territory", ["dist"] = "district", ["distmun"] = "district municipality", ["div"] = "division", ["emp"] = "empire", ["fpref"] = "French prefecture", ["gov"] = "governorate", ["govnat"] = "governorate", ["home-rule city"] = "home rule city", ["home-rule municipality"] = "home rule municipality", ["inner-city area"] = "inner city area", ["ires"] = "Indian reservation", ["isl"] = "island", ["lbor"] = "London borough", ["lga"] = "local government area", ["lgarea"] = "local government area", ["lgd"] = "local government district", ["lgdist"] = "local government district", ["metbor"] = "metropolitan borough", ["metcity"] = "metropolitan city", ["metmun"] = "metropolitan municipality", ["mtn"] = "mountain", ["mun"] = "municipality", ["mundist"] = "municipal district", ["nonmetropolitan county"] = "non-metropolitan county", ["obl"] = "oblast", ["okr"] = "okrug", ["p"] = "province", ["par"] = "parish", ["parmun"] = "parish municipality", ["pen"] = "peninsula", ["plcity"] = "prefecture-level city", ["plcolony"] = "Polish colony", ["pref"] = "prefecture", ["prefcity"] = "prefecture-level city", ["preflcity"] = "prefecture-level city", ["prov"] = "province", ["r"] = "region", ["range"] = "mountain range", ["rcm"] = "regional county municipality", ["rcomun"] = "regional county municipality", ["rdist"] = "regional district", ["rep"] = "republic", ["rhrom"] = "rural hromada", ["riv"] = "river", ["rmun"] = "regional municipality", ["robor"] = "royal borough", ["romp"] = "Roman province", ["runit"] = "regional unit", ["rurmun"] = "rural municipality", ["s"] = "state", ["sar"] = "special administrative region", ["shrom"] = "settlement hromada", ["spref"] = "subprefecture", ["sprefcity"] = "sub-prefectural city", ["sprovcity"] = "subprovincial city", ["submet city"] = "sub-metropolitan city", ["submetropolitan city"] = "sub-metropolitan city", ["sub-prefecture-level city"] = "sub-prefectural city", ["sub-provincial city"] = "subprovincial city", ["sub-provincial district"] = "subprovincial district", ["terr"] = "territory", ["terrauth"] = "territorial authority", ["twp"] = "township", ["twpmun"] = "township municipality", ["uauth"] = "unitary authority", ["ucomm"] = "unincorporated community", ["udist"] = "unitary district", ["uhrom"] = "urban hromada", ["uterr"] = "union territory", ["utwpmun"] = "united township municipality", ["val"] = "valley", ["vdc"] = "village development committee", ["vil"] = "village", ["voi"] = "voivodeship", ["wcomm"] = "Welsh community", } local no_link_def_article = {link = false, article = ""} local no_link_no_article = {link = false, article = false} --[==[ var: These qualifiers can be prepended onto any placetype and will be handled correctly. For example, the placetype `large city` will be displayed as `large <nowiki>[[city]]</nowiki>` and categorized as if `city` were specified. If the value in the following table is a string, the qualifier will display according to the string. If the value is `true`, the qualifier will be linked to its corresponding Wiktionary entry. If the value is `false`, the qualifier will not be linked but will appear as-is. Note that these qualifiers do not override placetypes with entries elsewhere that contain those same qualifiers. For example, the entry for `inland sea` in `placetype_data` will apply in preference to treating `inland sea` as equivalent to `sea`. ]==] export.placetype_qualifiers = { -- generic qualifiers ["huge"] = false, ["tiny"] = false, ["large"] = false, ["big"] = false, ["mid-size"] = false, ["mid-sized"] = false, ["small"] = false, ["sizable"] = false, ["important"] = false, ["long"] = false, ["short"] = false, ["major"] = false, ["minor"] = false, ["high"] = false, ["tall"] = false, ["low"] = false, ["left"] = false, -- left tributary ["right"] = false, -- right tributary ["modern"] = false, -- for use in opposition to "ancient" in another definition -- "former" qualifiers ["abandoned"] = true, ["ancient"] = true, ["deserted"] = true, ["extinct"] = true, ["former"] = false, ["historic"] = "historical", ["historical"] = true, ["medieval"] = true, ["mediaeval"] = true, ["ruined"] = true, ["traditional"] = true, -- sea qualifiers ["coastal"] = true, ["inland"] = true, -- note, we also have an entry in placetype_data for 'inland sea' to get a link to [[inland sea]] ["maritime"] = true, ["overseas"] = true, ["seaside"] = true, ["beachfront"] = true, ["beachside"] = true, ["riverside"] = true, -- lake qualifiers ["freshwater"] = true, ["saltwater"] = true, ["endorheic"] = true, ["oxbow"] = true, ["ox-bow"] = "[[oxbow]]", -- [[ox-bow]] is a red link ["tidal"] = true, -- land qualifiers ["hilltop"] = true, ["hilly"] = true, ["insular"] = true, ["peninsular"] = true, ["chalk"] = true, ["karst"] = true, ["limestone"] = true, ["mountainous"] = true, ["mountaintop"] = true, ["alpine"] = true, ["volcanic"] = true, -- for an island -- political status qualifiers ["autonomous"] = true, ["incorporated"] = true, ["special"] = true, ["unincorporated"] = true, ["coterminous"] = true, -- monetary status/etc. qualifiers ["fashionable"] = true, ["wealthy"] = true, ["affluent"] = true, ["declining"] = true, -- city vs. rural qualifiers ["urban"] = true, ["suburban"] = true, ["exurban"] = true, ["outlying"] = true, ["remote"] = true, ["rural"] = true, ["outback"] = true, ["inner"] = false, ["inner-city"] = true, ["central"] = false, ["outer"] = false, -- land use qualifiers ["residential"] = true, ["agricultural"] = true, ["business"] = true, ["commercial"] = true, ["industrial"] = true, -- business use qualifiers ["railroad"] = true, ["railway"] = true, ["farming"] = true, ["fishing"] = true, ["mining"] = true, ["logging"] = true, ["cattle"] = true, -- tourism use qualifiers ["resort"] = true, -- note, we also have 'resort city' and 'resort town', that take precedecne ["spa"] = true, -- note, we also have 'spa city' and 'spa town', that take precedecne ["ski"] = true, -- note, we also have 'ski resort city' and 'ski resort town', that take precedecne -- religious qualifiers ["holy"] = true, ["sacred"] = true, ["religious"] = true, ["secular"] = true, -- qualifiers for nonexistent places ["claimed"] = false, ["fictional"] = true, ["legendary"] = true, ["mythical"] = true, ["mythological"] = true, -- directional qualifiers ["northern"] = false, ["southern"] = false, ["eastern"] = false, ["western"] = false, ["north"] = false, ["south"] = false, ["east"] = false, ["west"] = false, ["northeastern"] = false, ["southeastern"] = false, ["northwestern"] = false, ["southwestern"] = false, ["northeast"] = false, ["southeast"] = false, ["northwest"] = false, ["southwest"] = false, -- seasonal qualifiers ["summer"] = true, -- e.g. for 'summer capital' ["winter"] = true, -- legal status qualifiers -- FIXME: Two-word qualifiers don't work yet. But you can enter "de-facto" and it's canonicalized to [[de facto]]. ["official"] = true, ["unofficial"] = true, ["de facto"] = true, -- 'de facto capital' ["de-facto"] = "[[de facto]]", -- [[de-facto]] is a red link ["de jure"] = true, -- 'de jure capital' ["de-jure"] = "[[de jure]]", -- [[de-jure]] is a red link -- NOTE: 'unrecognized/unrecognised' are handled as placetypes 'unrecognized country', 'unrecognized state' -- misc. qualifiers ["planned"] = true, ["chartered"] = true, ["landlocked"] = true, ["uninhabited"] = true, -- superlative qualifiers ["first"] = no_link_def_article, ["second"] = no_link_def_article, -- for "second largest" etc. ["third"] = no_link_def_article, ["fourth"] = no_link_def_article, ["last"] = no_link_def_article, ["only"] = no_link_def_article, ["sole"] = no_link_def_article, ["main"] = no_link_def_article, ["largest"] = no_link_def_article, ["biggest"] = no_link_def_article, ["smallest"] = no_link_def_article, ["shortest"] = no_link_def_article, ["longest"] = no_link_def_article, ["tallest"] = no_link_def_article, ["highest"] = no_link_def_article, ["lowest"] = no_link_def_article, ["leftmost"] = no_link_def_article, ["rightmost"] = no_link_def_article, ["innermost"] = no_link_def_article, ["outermost"] = no_link_def_article, ["northernmost"] = no_link_def_article, ["southernmost"] = no_link_def_article, ["westernmost"] = no_link_def_article, ["easternmost"] = no_link_def_article, ["northwesternmost"] = no_link_def_article, ["southwesternmost"] = no_link_def_article, ["northeasternmost"] = no_link_def_article, ["southeasternmost"] = no_link_def_article, -- several/various ["several"] = no_link_no_article, ["various"] = no_link_no_article, ["numerous"] = no_link_no_article, ["multiple"] = no_link_no_article, ["many"] = no_link_no_article, ["other"] = no_link_no_article, } --[==[ var: In this table, the key qualifiers should be treated the same as the value qualifiers for categorization purposes. This is overridden by `placetype_data` and `qualifier_to_placetype_equivs`. ]==] export.former_qualifiers = { ["abandoned"] = {"FORMER"}, ["ancient"] = {"ANCIENT", "FORMER"}, ["former"] = {"FORMER"}, ["extinct"] = {"FORMER"}, ["historic"] = {"FORMER"}, ["historical"] = {"FORMER"}, ["medieval"] = {"ANCIENT", "FORMER"}, ["mediaeval"] = {"ANCIENT", "FORMER"}, ["ruined"] = {"ANCIENT", "FORMER"}, ["traditional"] = {"FORMER"}, } --[==[ var: In this table, any placetypes containing these qualifiers that do not occur in `placetype_data` should be mapped to the specified placetypes for categorization purposes. Entries here are overridden by `placetype_data`. ]==] export.qualifier_to_placetype_equivs = { ["fictional"] = "fictional location", ["legendary"] = "mythological location", ["mythical"] = "mythological location", ["mythological"] = "mythological location", -- For e.g. Taiwan as a "claimed province" of China; parts of Belize as claimed by Guatemala; various islands -- claimed by various parties in East Asia. FIXME: We should conditionalize on what is being claimed since there are -- also claimed capitals, e.g. Israel and Palestine claim Jerusalem as their capital. ["claimed"] = "claimed political division", } --[==[ var: Mapping from placetypes to the corresponding plural category-only placetype for a capital of that placetype. The reverse mapping also exists. ]==] export.placetype_to_capital_cat = { ["autonomous community"] = "autonomous community capitals", ["canton"] = "cantonal capitals", ["comarca"] = "comarca capitals", ["country"] = "national capitals", -- The following are not obviously different from 'county seats' but the latte terminology is used in the US. ["county"] = "county capitals", ["department"] = "departmental capitals", ["district"] = "district capitals", ["division"] = "division capitals", ["emirate"] = "emirate capitals", ["governorate"] = "governorate capitals", ["hromada"] = "hromada capitals", ["krai"] = "krai capitals", ["metropolitan city"] = "metropolitan city capitals", ["municipality"] = "municipal capitals", ["oblast"] = "oblast capitals", ["okrug"] = "okrug capitals", ["prefecture"] = "prefectural capitals", ["province"] = "provincial capitals", ["raion"] = "raion capitals", ["regency"] = "regency capitals", ["region"] = "regional capitals", ["regional unit"] = "regional unit capitals", ["republic"] = "republic capitals", ["state"] = "state capitals", ["territory"] = "territorial capitals", ["voivodeship"] = "voivodeship capitals", } --[==[ var: This contains placenames that should be preceded by an article (almost always "the"). '''NOTE''': There are multiple ways that placenames can come to be preceded by "the": # Listed here. # Given in [[Module:place/locations]] with an initial "the". All such placenames are added to this map by the code just below the map. # The placetype of the placename has `holonym_use_the = true` in its placetype_data. # A regex in placename_the_re matches the placename. Note that "the" is added only before the first holonym in a place description. ]==] export.placename_article = { -- This should only contain info that can't be inferred from [[Module:place/locations]]. ["archipelago"] = { ["Cyclades"] = "the", ["Dodecanese"] = "the", }, ["country"] = { ["Holy Roman Empire"] = "the", }, ["empire"] = { ["Holy Roman Empire"] = "the", }, ["island"] = { ["North Island"] = "the", ["South Island"] = "the", }, ["region"] = { ["Balkans"] = "the", ["Russian Far East"] = "the", ["Caribbean"] = "the", ["Caucasus"] = "the", ["Middle East"] = "the", ["New Territories"] = "the", ["North Caucasus"] = "the", ["South Caucasus"] = "the", ["West Bank"] = "the", ["Gaza Strip"] = "the", }, ["valley"] = { ["San Fernando Valley"] = "the", }, } --[==[ var: Regular expressions to apply to determine whether we need to put 'the' before a holonym. The key "*" applies to all holonyms, otherwise only the regexes for the holonym's placetype apply. ]==] export.placename_the_re = { -- We don't need entries for peninsulas, seas, oceans, gulfs or rivers -- because they have holonym_use_the = true. ["*"] = {"^Isle of ", " Islands$", " Mountains$", " Empire$", " Country$", " Region$", " District$", "^City of "}, ["bay"] = {"^Vịnh của "}, ["lake"] = {"^Hồ của "}, ["country"] = {"^Republic of ", " Republic$"}, ["republic"] = {"^Republic of ", " Republic$"}, ["region"] = {"^Vùng của "}, ["river"] = {"^Sông của "}, ["local government area"] = {"^Shire of "}, ["county"] = {"^Shire of "}, ["Indian reservation"] = {" Reservation", " Nation"}, ["tribal jurisdictional area"] = {" Reservation", " Nation"}, } --[==[ var: If any of the following holonyms are present, the associated holonyms are automatically added to the end of the list of holonyms for categorization (but not display) purposes. ]==] export.cat_implications = { ["region"] = { ["Eastern Europe"] = {"continent/Europe"}, ["Central Europe"] = {"continent/Europe"}, ["Western Europe"] = {"continent/Europe"}, ["South Europe"] = {"continent/Europe"}, ["Southern Europe"] = {"continent/Europe"}, ["Northern Europe"] = {"continent/Europe"}, ["Northeast Europe"] = {"continent/Europe"}, ["Northeastern Europe"] = {"continent/Europe"}, ["Southeast Europe"] = {"continent/Europe"}, ["Southeastern Europe"] = {"continent/Europe"}, ["North Caucasus"] = {"continent/Europe"}, ["South Caucasus"] = {"continent/Asia"}, ["South Asia"] = {"continent/Asia"}, ["Southern Asia"] = {"continent/Asia"}, ["East Asia"] = {"continent/Asia"}, ["Eastern Asia"] = {"continent/Asia"}, ["Central Asia"] = {"continent/Asia"}, ["West Asia"] = {"continent/Asia"}, ["Western Asia"] = {"continent/Asia"}, ["Southeast Asia"] = {"continent/Asia"}, ["North Asia"] = {"continent/Asia"}, ["Northern Asia"] = {"continent/Asia"}, ["Anatolia"] = {"continent/Asia"}, ["Asia Minor"] = {"continent/Asia"}, ["Mesopotamia"] = {"continent/Asia"}, ["North Africa"] = {"continent/Africa"}, ["Central Africa"] = {"continent/Africa"}, ["West Africa"] = {"continent/Africa"}, ["East Africa"] = {"continent/Africa"}, ["Southern Africa"] = {"continent/Africa"}, ["Central America"] = {"continent/Central America"}, ["Caribbean"] = {"continent/North America"}, ["Polynesia"] = {"continent/Oceania"}, ["Micronesia"] = {"continent/Oceania"}, ["Melanesia"] = {"continent/Oceania"}, ["Siberia"] = {"country/Russia", "continent/Asia"}, ["Russian Far East"] = {"country/Russia", "continent/Asia"}, ["South Wales"] = {"constituent country/Wales", "continent/Europe"}, ["Balkans"] = {"continent/Europe"}, ["West Bank"] = {"country/Palestine", "continent/Asia"}, ["Gaza"] = {"country/Palestine", "continent/Asia"}, ["Gaza Strip"] = {"country/Palestine", "continent/Asia"}, } } ------------------------------------------------------------------------------------------ -- Category and display handlers -- ------------------------------------------------------------------------------------------ local function city_type_cat_handler(data) local entry_placetype = data.entry_placetype local generic_before_non_cities = export.get_placetype_prop(entry_placetype, "generic_before_non_cities") if not generic_before_non_cities then internal_error("city_type_cat_handler called on placetype %s that doesn't have a `generic_before_non_cities`" .. " setting", entry_placetype) end local plural_entry_placetype = export.pluralize_placetype(entry_placetype) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and not spec.is_city then -- Categorize both in key, and in the larger polity that the key is part of, e.g. [[Hirakata]] goes in both -- "Cities in Osaka Prefecture" and "Cities in Japan". (But don't do the latter if no_container_cat is set.) local cap_plural_entry_placetype = ucfirst(plural_entry_placetype) local retcats = {("%s %s %s"):format(cap_plural_entry_placetype, generic_before_non_cities, export.get_prefixed_key(key, spec))} if container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, ("%s %s %s"):format(cap_plural_entry_placetype, generic_before_non_cities, export.get_prefixed_key(container.key, container.spec))) end end return retcats end end local function capital_city_cat_handler(data, non_city) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc -- The first time we're called we want to return something; otherwise we will be called for later-mentioned -- holonyms, which can result in wrongly classifying into e.g. `National capitals`. Simulate the loop in -- find_placetype_cat_specs() over holonyms so we get the proper `Cities in ...` categories as well as the capital -- category/categories we add below. local retcats if not non_city and place_desc.holonyms then for h_index, holonym in export.get_holonyms_to_check(place_desc, holonym_index) do local h_placetype, h_placename = holonym.placetype, holonym.unlinked_placename retcats = city_type_cat_handler { entry_placetype = "thành phố", holonym_placetype = h_placetype, holonym_placename = h_placename, holonym_index = h_index, place_desc = place_desc, } if retcats then break end end end if not retcats then retcats = {} end -- Now find the appropriate capital-type category for the placetype of the holonym, e.g. 'State capitals'. If we -- recognize the holonym among the known holonyms in [[Module:place/locations]], also add a category like 'State -- capitals of the United States'. Truncate e.g. 'autonomous region' to 'region', 'union territory' to 'territory' -- when looking up the type of capital category, if we can't find an entry for the holonym placetype itself (there's -- an entry for 'autonomous community'). local capital_cat = export.placetype_to_capital_cat[holonym_placetype] if not capital_cat then capital_cat = export.placetype_to_capital_cat[holonym_placetype:gsub("^.* ", "")] end if capital_cat then capital_cat = ucfirst(capital_cat) local inserted_specific_variant_cat = false if holonym_index then -- Now find the first recognized holonym location. We don't stop when :also is seen because of the common pattern -- where we use :also to specify that a given city is the capital at multiple surrounding levels. local matching_group, matching_key, matching_spec, matching_container_trail, matching_holonym_index for h_index = holonym_index, #place_desc.holonyms do if place_desc.holonyms[h_index].placetype then matching_group, matching_key, matching_spec, matching_container_trail = export.find_matching_holonym_location { holonym_placetype = place_desc.holonyms[h_index].placetype, holonym_placename = place_desc.holonyms[h_index].unlinked_placename, holonym_index = h_index, place_desc = place_desc, } if matching_group then matching_holonym_index = h_index break end end end if matching_holonym_index == holonym_index then if matching_container_trail[1] and not matching_spec.no_container_cat then for _, container in ipairs(matching_container_trail[1]) do insert(retcats, ("%s của %s"):format(capital_cat, export.get_prefixed_key(container.key, container.spec))) inserted_specific_variant_cat = true end end elseif matching_holonym_index then -- Check to make sure that the holonym placetype we were called on is listed among the -- divtypes of the location we found. local function insert_specific_variant_if_possible(key, spec) return export.get_equiv_placetype_prop(holonym_placetype, function(pt) local plural_holonym_placetype = export.pluralize_placetype(pt) local saw_matching_div if spec.divs then local divs = spec.divs if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) ~= "table" then div = {type = div} end if plural_holonym_placetype == div.type then saw_matching_div = true break end end end if saw_matching_div then insert(retcats, ("%s của %s"):format(capital_cat, export.get_prefixed_key(key, spec))) return true end return false end) end if insert_specific_variant_if_possible(matching_key, matching_spec) then inserted_specific_variant_cat = true elseif not matching_spec.no_container_cat then for _, containers in ipairs(matching_container_trail) do local saw_no_container_cat = false for _, container in ipairs(containers) do if insert_specific_variant_if_possible(container.key, container.spec) then inserted_specific_variant_cat = true break end saw_no_container_cat = saw_no_container_cat or container.spec.no_container_cat end if inserted_specific_variant_cat or saw_no_container_cat then break end end end end else -- This happens when in an invocation like {{place|en|capital city|s/Haryana,Punjab}} for -- [[Chandigarh]]. We fall back to older code that doesn't depend on the holonym index existing. -- FIXME: This may not be necessary. In the example just given, when processing Haryana we add to -- [[:Category:en:State capitals of India]], and nothing extra gets added when processing Punjab. -- Possibly we can just skip this case entirely. local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, ("%s của %s"):format(capital_cat, export.get_prefixed_key(container.key, container.spec))) inserted_specific_variant_cat = true end end end if not inserted_specific_variant_cat then insert(retcats, capital_cat) end else -- We didn't recognize the holonym placetype; just put in 'Capital cities'. insert(retcats, "Capital cities") end return retcats end --[=[ This is invoked specially for all placetypes (see the `*` placetype key at the bottom of `placetype_data`). This is used in two ways: # To add pages to generic holonym categories like [[:Category:en:Places in Merseyside, England]] (and [[:Category:en:Places in England]]) for any pages that have `co/Merseyside` as their holonym. # To categorize demonyms in bare placename categories like [[:Category:en:Merseyside, England]] if the demonym description mentions `co/Merseyside` and doesn't mention a more specific placename that also has a category. (In this case there are none, but we can have demonyms at multiple levels, e.g. in France for individual villages, departments, administrative regions, and for the entire country, and for example we only want to categorize a demonym into [[:Category:France]] if no more specific category applies.) Unlike when invoked from {{tl|place}}, a demonym invocation only adds the most specific holonym category and not the category of any containing polity (hence if we add [[:Category:en:Merseyside, England]] we won't also add [[:Category:England]]). This code also handles cities; e.g. for the first use case above, it would be used to add a page that has `city/Boston` as a holonym to [[:Category:en:Places in Boston]], along with [[:Category:en:Places in Massachusetts, USA]] and [[:Category:en:Places in the United States]]. The city handler tries to deal with the possibility of multiple cities having the same name. For example, the code in [[Module:place/locations]] knows about the city of [[Columbus]], [[Ohio]], which has containing polities `Ohio` (a state) and `the United States` (a country). If either containing polity is mentioned, the handler proceeds to return the key `Columbus` (along with `Ohio, USA` and `the United States`). Otherwise, if any other state or country is mentioned, the handler returns nothing, and otherwise it assumes the mentioned city is the one we're considering and returns `Columbus` etc. This works correctly if the place only mentions Ohio and a holonym for a Columbus in a different country is encountered, because of the function `augment_holonyms_with_container`, which adds the US as a holonym when Ohio is encountered. The single parameter `data` is as in category handlers. The return value is a list of categories (without the preceding language code). ]=] local function generic_place_cat_handler(data) local from_demonym = data.from_demonym local retcats = {} local function insert_retkey(key, spec) if from_demonym then insert(retcats, key) else insert(retcats, ("Địa danh của %s"):format(export.get_prefixed_key(key, spec))) end end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then if not spec.no_generic_place_cat then -- This applies to continents and continental regions. insert_retkey(key, spec) end -- Categorize both in key, and in the larger location(s) that the key is part of, e.g. [[Hirakata]] goes in -- both [[Category:Places in Osaka Prefecture, Japan]] and [[Category:Places in Japan]]. But not when -- no_container_cat is set (e.g. for 'United Kingdom'). if not spec.no_container_cat then for _, container_set in ipairs(container_trail) do local stop_adding_containers = false for _, container in ipairs(container_set) do if not container.spec.no_generic_place_cat then insert_retkey(container.key, container.spec) end if container.spec.no_container_cat then stop_adding_containers = true end end if stop_adding_containers then break end end end return retcats end end --[==[ Special category handler run for all placetypes that checks for specified division placetypes of known locations and categorizes appropriately. ]==] function export.political_division_cat_handler(data) if data.from_demonym then return end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then local divlists = {} if spec.divs then insert(divlists, spec.divs) end if spec.addl_divs then insert(divlists, spec.addl_divs) end for _, divlist in ipairs(divlists) do if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end local sgdiv = export.maybe_singularize_placetype(div.type) or div.type local prep = div.prep or "của" local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" then cat_as = {cat_as} end if not export.placetype_data[sgdiv] then internal_error("Placetype %s associated with known location key %s and data %s not found in " .. "`placetype_data`", sgdiv, key, spec) end if sgdiv == data.entry_placetype then local retcats = {} for _, pt_cat in ipairs(cat_as) do if type(pt_cat) == "string" then pt_cat = {type = pt_cat} end local pt_prep = pt_cat.prep or prep insert(retcats, ucfirst(pt_cat.type) .. " " .. pt_prep .. " " .. export.get_prefixed_key(key, spec)) end return retcats end end end end end --[==[ This is used to add pages to "bare" categories like [[:Category:en:Georgia, USA]] for `[[Georgia]]` and any foreign-language terms that are translations of the state of Georgia. We look at the page title (or its overridden value in {{para|pagename}}) as well as the glosses in {{para|t}}/{{para|t2}} etc., various extra-info values such as the modern names in {{para|modern}}, and any values specified using a form-of directive. We need to pay attention to the entry placetypes specified so we don't overcategorize; e.g. the US state of Georgia is `[[Джорджия]]` in Russian but the country of Georgia is `[[Грузия]]`, and if we just looked for matching names, we'd get both Russian terms categorized into both [[:Category:ru:Georgia, USA]] and [[:Category:ru:Georgia]]. We also need to check the containing holonyms to make sure there isn't a mismatch (so we don't e.g. categorize Newark, Delaware in [[:Category:en:Newark]], which is intended for Newark, New Jersey). ]==] function export.get_bare_categories(args, overall_place_spec) local bare_cats = {} local place_descs = overall_place_spec.descs local possible_placetypes_by_place_desc = {} for i, place_desc in ipairs(place_descs) do possible_placetypes_by_place_desc[i] = {} for _, placetype in ipairs(place_desc.placetypes) do if not export.placetype_is_ignorable(placetype) then local equivs = export.get_placetype_equivs(placetype, {register_former_as_non_former = true}) for _, equiv in ipairs(equivs) do insert(possible_placetypes_by_place_desc[i], equiv.placetype) end end end end local function check_term(term) -- Treat Wikipedia links like local ones. term = term:gsub("%[%[w:", "[["):gsub("%[%[wikipedia:", "[[") term = export.remove_links_and_html(term) term = term:gsub("^ ", "") for i, place_desc in ipairs(place_descs) do -- Iterate over all matching locations in case there are multiple, as with Delhi defined as -- {{place|en|megacity/and/union territory|c/India|containing the national capital [[New Delhi]]}}. for group, key, spec, container_trail in export.iterate_matching_holonym_location { holonym_placetype = possible_placetypes_by_place_desc[i], holonym_placename = term, place_desc = place_desc, } do insert(bare_cats, key) end end end -- FIXME: Should we only do the following if the language is English (requires that the lang is passed in)? -- We should always do it if `pagename` is given (as it is with {{tcl}}) but maybe not otherwise unless 1=en. There -- are cases like [[Ankara]] = English name for capital of Turkey, but also the name in various languages for the -- capital of Ghana (= English [[Accra]]). But this should get caught by mismatching the containing country. The -- advantage of checking when the language isn't English is we catch those places that fail to give an English -- translation but where the translation happens to be the same as the other-language spelling. However, I don't -- know how often this situation occurs. check_term(args.pagename or mw.loadData("Module:headword/data").pagename) for _, t in ipairs(args.t) do check_term(t) end local function check_termobj_list(terms) for _, term in ipairs(terms) do if term.eq then check_term(term.eq) end if term.alt or term.term then check_term(term.alt or term.term) end end end for _, extra_info_terms in ipairs(overall_place_spec.extra_info) do local arg = extra_info_terms.arg if arg == "modern" or arg == "now" or arg == "full" or arg == "short" then check_termobj_list(extra_info_terms.terms) end end for _, directive in ipairs(overall_place_spec.directives) do check_termobj_list(directive.terms) end return bare_cats end --[==[ This is used to augment the holonyms associated with a place description with the containing polities. For example, given the following: `# {{tl|place|en|subprefecture|pref/Hokkaido}}.` We auto-add Japan as another holonym so that the term gets categorized into [[:Category:Subprefectures of Japan]]. To avoid over-categorizing we need to check to make sure no other countries are specified as holonyms. ]==] function export.augment_holonyms_with_container(place_descs) for _, place_desc in ipairs(place_descs) do if place_desc.holonyms then -- This ends up containing a copy of the original holonyms, with the augmented holonyms inserted in their -- appropriate position. We don't just put them at the end because some holonyms have use the `:also` -- modifier, which causes category processing to restart at that point after generating categories for a -- preceding holonym, and we don't want the preceding holonym's augmented holonyms interfering with -- categorization of a later holonym. We proceed from right to left, and each time we augment, we copy -- the holonyms with the augmented holonym(s) inserted appropriately and replace the place description's -- holonyms with the augmented ones before the next iteration. The reason for this is so that e.g. -- {{place|neighborhood|city/Birmingham|co/West Midlands|cc/England}} doesn't throw an error during the -- augmentation process due to 'Birmingham' referring to two known locations (in England and Alabama). If -- we go left to right, we will throw an ambiguity error on `city/Birmingham` because code to exclude -- Birmingham, Alabama needs `c/United Kingdom` present (to cause a mismatch with `c/United States`), -- which isn't yet present as the augmentation code hasn't gotten to `cc/England` yet. For similar -- reasons, we need to include the augmented holonyms in the holonyms considered in the next iteration -- rather than modifying the place description once at athe end. for i = #place_desc.holonyms, 1, -1 do local holonym = place_desc.holonyms[i] if holonym.placetype and not export.placetype_is_ignorable(holonym.placetype) then local group, key, spec, container_trail = export.find_matching_holonym_location { holonym_placetype = holonym.placetype, holonym_placename = holonym.unlinked_placename, holonym_index = i, place_desc = place_desc, } if group and container_trail[1] and not spec.no_auto_augment_container then local augmented_holonyms = {} for j = 1, i do insert(augmented_holonyms, place_desc.holonyms[j]) end for _, containers in ipairs(container_trail) do local any_no_auto_augment_container = false for _, container in ipairs(containers) do any_no_auto_augment_container = any_no_auto_augment_container or container.spec.no_auto_augment_container local containing_type = container.spec.placetype if type(containing_type) == "table" then -- If the containing type is a list, use the first element as the canonical variant. containing_type = containing_type[1] end local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) -- Don't side-effect holonyms while processing them. local new_holonym = { -- By the time we run, the display has already been generated so we don't need to -- set display_placename. placetype = containing_type, -- placename_to_key() for the group should correctly handle both full and elliptical -- placenames, but the full placename seems less likely to be ambiguous. FIXME: We -- should just store the key directly and use it when available to avoid having to -- convert key to placename and back to key. unlinked_placename = full_container_placename, -- Indicate that this is an augmented holonym, and was derived from the specified -- holonym. In iterate_matching_holonym_location(), we ignore augmented holonyms -- derived from holonyms that are different from the holonym we're searching for but -- of the same placetype. This is to correctly handle a situation like -- {{place|river|dept/Ardèche,Gard,Vaucluse,Bouches-du-Rhône|c/France}}. Here, -- `Ardèche` is in `r/Auvergne-Rhône-Alpes`, while `Gard` is in `r/Occitania` and -- the other two are in `r/Provence-Alpes-Côte d'Azur`. Augmenting proceeds from -- right to left, so after it adds `r/Provence-Alpes-Côte d'Azur` to -- `Bouches-du-Rhône`, Vaucluse gets augmented correctly but `Gard` fails to match -- in find_matching_holonym_location() because of the mismatch between augmented -- `r/Provence-Alpes-Côte d'Azur` and actual `r/Occitania`. Similarly, all later -- calls to find_matching_holonym_location() fail to match `Gard` (and likewise -- `Ardèche`) against any known location. To deal with this, we mark augmented -- holoynms as being augmented due to a source holonym, and when processing a given -- holonym, ignore augmented holonyms from other holonyms of the same placetype. -- The restriction to the same placetype is so that `Birmingham` still gets -- correctly disambiguated to Birmingham, England in the example given above near -- the top of this function, using the augmented holonym `c/United Kingdom` added by -- the specified `cc/England` (whose placetype `constituent country` differs from -- the placetype `city` of Birmingham). augmented_from_holonym = holonym, } insert(augmented_holonyms, new_holonym) -- But it is safe to modify other parts of the place_desc. export.key_holonym_into_place_desc(place_desc, new_holonym) end if any_no_auto_augment_container then break end end for j = i + 1, #place_desc.holonyms do insert(augmented_holonyms, place_desc.holonyms[j]) end place_desc.holonyms = augmented_holonyms end end end end end end -- Cat handler for district, areas, neighborhoods and suburbs. Districts are tricky because they can either be political -- divisions or city neighborhoods. Areas similarly can be political divisions (rarely; specifically, in Kuwait), city -- neighborhoods or larger geographical areas/regions. We handle this as follows: -- (1) `placetype_data` cat entries for specific countries or country divisions take precedence over cat_handlers, so if -- the user says {{tl|place|district|s/Maharashtra|c/India}}, we won't even be called because there is an entry that -- categorizes into [[:Category|Districts of Maharashtra, India]]. -- (2) If we're called, we check the holonym we're called on to see if it is a recognized city, e.g. if we're called -- using {{tl|place|district|city/Mumbai|s/Maharashtra|c/India}}. If so, we categorize under e.g. -- [[:Category:Neighbourhoods of Mumbai]]. (Choosing the spelling "neighbourhoods" because we're in India.) -- (3) If we're called and the holonym is not a recognized city, we check if the placetype has has_neighborhoods set. -- If so, it's "city-like" and we categorize under the first containing polity that we recognize. For example, if -- we're called using {{tl|place|district|town/Northampton|co/Hampshire|s/Massachusetts|c/US}}, we should recognize -- town as "city-like" and categorize under [[:Category:Neighborhoods in Massachusetts]]. (Note "in" not "của", and -- note the spelling "neighborhoods" because we're in the US.) -- (4) If the holonym is not city-like, we do nothing. If there's a city or city-like placetype farther up (e.g. we're -- called as {{tl|place|district|ward/Foo|mun/Bar|...}}), we will handle the city-like entity according to (2) or -- (3) when called on that holonym. Otherwise either the categorization in (1) takes place or there's no -- categorization. local function district_neighborhood_cat_handler(data) local function get_plural_entry_placetype(location_spec, container_trail) if data.entry_placetype == "suburb" then return "Suburbs" else -- Check for `british_spelling` setting on the spec itself or any container. local uses_british_spelling = location_spec.british_spelling if uses_british_spelling == nil and container_trail then for _, container_set in ipairs(container_trail) do local must_outer_break = false for _, container in ipairs(container_set) do if container.spec.british_spelling ~= nil then uses_british_spelling = container.spec.british_spelling must_outer_break = true break end end if must_outer_break then break end end end return uses_british_spelling and "Neighbourhoods" or "Neighborhoods" end end -- First check the immediate holonym to see if it's a city or a city-like top-level entity (Hong Kong, Bonaire, -- etc.) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and spec.is_city then return {get_plural_entry_placetype(spec, container_trail) .. " of " .. export.get_prefixed_key(key, spec)} end -- If the entry placetype is neighbo(u)rhood, assume it is a neighborhood even if there isn't a city-like -- entity father up the chain. (E.g. due to a mistaken use of m/ instead of mun/ for municipality.) local has_neighborhoods local entry_placetype = data.entry_placetype if entry_placetype == "neighborhood" or entry_placetype == "neighbourhood" or entry_placetype == "suburb" then has_neighborhoods = true else -- Otherwise, make sure the current holonym is city-like. has_neighborhoods = export.get_equiv_placetype_prop(data.holonym_placetype, function(pt) return export.get_placetype_prop(pt, "has_neighborhoods") end, {continue_on_nil_only = true}) end if has_neighborhoods then -- Loop up the holonyms, looking for city and city-like entities in case of e.g. [[Sepulveda]] written -- {{place|en|neighborhood|valley/San Fernando Valley|city/Los Angeles|s/California|c/USA}} -- but also look for a recognizable poldiv, and if so categorize as "Neighborhoods in POLDIV". We need -- to start with the current holonym, which is especially important for neighborhoods and suburbs that -- may have the first holonym be a recognizable province, etc. but can't hurt otherwise. (Previously -- we skipped the first/current holonym.) for other_holonym_index, other_holonym in export.get_holonyms_to_check(data.place_desc, data.holonym_index) do local other_holonym_data = { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = data.place_desc, } local group, key, spec, container_trail = export.find_matching_holonym_location(other_holonym_data) if group and not spec.is_former_place then return {get_plural_entry_placetype(spec, container_trail) .. (spec.is_city and " of " or " in ") .. export.get_prefixed_key(key, spec)} end end end end function export.check_already_seen_string(holonym_placename, already_seen_strings) local canon_placename = ulower(m_links.remove_links(holonym_placename)) if type(already_seen_strings) ~= "table" then already_seen_strings = {already_seen_strings} end for _, already_seen_string in ipairs(already_seen_strings) do if canon_placename:find(already_seen_string) then return true end end return false end -- Prefix display handler that adds a prefix such as "Metropolitan Borough of " to the display -- form of holonyms. We make sure the holonym doesn't contain the prefix or some variant already. -- We do this by checking if any of the strings in ALREADY_SEEN_STRINGS, either a single string or -- a list of strings, or the prefix if ALREADY_SEEN_STRINGS is omitted, are found in the holonym -- placename, ignoring case and links. If the prefix isn't already present, we create a link that -- uses the raw form as the link destination but the prefixed form as the display form, unless the -- holonym already has a link in it, in which case we just add the prefix. local function prefix_display_handler(prefix, holonym_placename, already_seen_strings) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(prefix)) then return holonym_placename end if holonym_placename:find("%[%[") then return prefix .. " " .. holonym_placename end return prefix .. " [[" .. holonym_placename .. "]]" end -- Suffix display handler that adds a suffix such as " parish" to the display form of holonyms. -- Works identically to prefix_display_handler but for suffixes instead of prefixes. local function suffix_display_handler(suffix, holonym_placename, already_seen_strings, include_suffix_in_link) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(suffix)) then return holonym_placename end if holonym_placename:find("%[%[") then return holonym_placename .. " " .. suffix end if include_suffix_in_link then return "[[" .. holonym_placename .. " " .. suffix .. "]]" else return "[[" .. holonym_placename .. "]] " .. suffix end end -- Display handler for boroughs. New York City boroughs are display as-is. Others are suffixed -- with "borough". local function borough_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.new_york_boroughs[unlinked_placename] then -- Hack: don't display "borough" after the names of NYC boroughs return holonym_placename end return suffix_display_handler("borough", holonym_placename) end local function county_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) -- Display handler for Irish counties. Irish counties are displayed as e.g. "County [[Cork]]". if m_locations.ireland_counties["Hạt " .. unlinked_placename .. ", Ireland"] or m_locations.northern_ireland_counties["Hạt " .. unlinked_placename .. ", Bắc Ireland"] then return prefix_display_handler("Hạt", holonym_placename) end -- Display handler for Taiwanese counties. Taiwanese counties are displayed as e.g. "[[Chiayi]] County". if m_locations.taiwan_counties[unlinked_placename .. ", Đài Loan"] then return suffix_display_handler("Hạt", holonym_placename) end -- Display handler for Romanian counties. Romanian counties are displayed as e.g. "[[Cluj]] County". if m_locations.romania_counties[unlinked_placename .. ", România"] then return suffix_display_handler("Hạt", holonym_placename) end -- FIXME, we need the same for US counties but need to key off the country, not the specific county. -- Others are displayed as-is. return holonym_placename end -- Display handler for prefectures. Japanese prefectures are displayed as e.g. "[[Fukushima]] Prefecture". -- Others are displayed as e.g. "[[Fthiotida]] prefecture". local function prefecture_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) local suffix = m_locations.japan_prefectures[unlinked_placename .. ", Nhật Bản"] and "Prefecture" or "prefecture" return suffix_display_handler(suffix, holonym_placename) end -- Display handler for provinces of Bulgaria, Iran, Laos, North and South Korea, Thailand, Turkey and Vietnam. Recognized -- provinces are displayed as e.g. "[[Gyeonggi]] Province" or "[[Antalya]] Province". Others are displayed as-is. local function province_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.bulgaria_provinces[unlinked_placename .. ", Bulgaria"] or m_locations.iran_provinces[unlinked_placename .. ", Iran"] or m_locations.laos_provinces[unlinked_placename .. ", Lào"] or m_locations.north_korea_provinces[unlinked_placename .. ", Cộng hòa Dân chủ Nhân dân Triều Tiên"] or m_locations.south_korea_provinces[unlinked_placename .. ", Hàn Quốc"] or m_locations.thailand_provinces[unlinked_placename .. ", Thái Lan"] or m_locations.turkey_provinces[unlinked_placename .. ", Thổ Nhĩ Kỳ"] or m_locations.vietnam_provinces[unlinked_placename .. ", Việt Nam"] then return suffix_display_handler("Province", holonym_placename) end return holonym_placename end -- Display handler for Nigerian states. Nigerian states are display as "[[Kano]] State". Others are displayed as-is. local function state_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.nigeria_states[unlinked_placename .. ", Nigeria"] then return suffix_display_handler("State", holonym_placename) end return holonym_placename end -- Display handler for voivodeships. Display as e.g. [[Subcarpathian Voivodeship]]. local function voivodesip_display_handler(holonym_placetype, holonym_placename) return suffix_display_handler("Voivodeship", holonym_placename, nil, "include_suffix_in_link") end ------------------------------------------------------------------------------------------ -- Placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: Main placetype data structure. This specifies, for each canonicalized placetype, various properties. The keys are placetypes (in the singular, except for category-only placetypes, which are plural and followed by `!`), and the value is a table of properties. The `"*"` key is special and is used for adding "generic" categories of the form `Places in ``location`` `; it runs for all entry placetypes. Keys in the form of plural placetypes followed by `!` are used only in [[Module:category tree/topic/Places]] for specifying the properties of categories containing the specified placetype, esp. bare categories like [[:Category:States and territories]] (rather than qualified categories like [[:Category:States and territories of Australia]]). Keys under the value table for a given placetype of are two types: ''property keys'' (which specify the value of specific properties) and ''categorization keys'' (which tell how to categorize certain sorts of holonyms if the placetype in question occurs as an entry placetype). Categorization keys are either the special value `default` or are wildcard strings with a slash in them, such as `"country/*"`. Note that only wildcard strings are currently allowed directly in the placetype data; everything else is handled through category handlers, either per-placetype or special (such as `political_division_cat_handler`). The algorithm for how category keys and handlers are used to generate categories is described at the top of [[Module:place]]. There are several recognized property keys, of various types: 1. The following link-related property keys are recognized: * `link`: '''Required''' except in category-only placetypes ending in `!`. Describes how to link and display the placetype in the formatted description when occurring as an entry placetype. Also used for formatting pluralized placetypes (which may occur in entry placetypes, esp. new-format ones, such as `two <<islands>>`) and may occur in categories). The possible values are: *# `true`: Link to the same-named Wiktionary entry. This creates a raw link, e.g. `<nowiki>[[city]]</nowiki>`, which is converted to an English-specific link by JavaScript postprocessing. If the placetype is plural, this creates a two-part raw link e.g. `<nowiki>[[city|cities]]</nowiki>`. *# `"w"`: Link to the same-named Wikipedia entry. This creates a two-part link, e.g. `<nowiki>[[w:census town|census town]]</nowiki>`, or `<nowiki>[[w:census town|census towns]]</nowiki>` if the placetype is given plural. *# `"+..."`: Create a two-part link to the entry following the `+` sign. For example, if `cercle` specifies `"+w:cercles of Mali"`, a two-part link `<nowiki>[[w:cercles of Mali|cercle]]</nowiki>` will be generated, or `<nowiki>[[w:cercles of Mali|cercles]]</nowiki>` if plural `cercles` is specified. *# `"separately"`: Link each word separately. For example, if `administrative territory` specifies `"separately"`, it will be linked as `<nowiki>[[administrative]] [[territory]]</nowiki>`, or as `<nowiki>[[administrative]] [[territory|territories]]</nowiki>` if plural `administrative territories` is given. *# another string: Use that string directly. If the placetype is plural, `pluralize()` in [[Module:en-utilities]] is called on the string, which will correctly pluralize most strings, including those with links in them. (If there are multiple links, the display form of the last link is pluralized.) *# `false`: This placetype is not allowed as an entry placetype. An error will be thrown if this placetype is given as an entry placetype. This is specified for internal-use placetypes, especially placetypes used in conjunction with the qualifiers `former`, `ancient`, `historical` and such. * `plural_link`: If specified and the placetype is plural, use the value in place of generating a pluralized version of the link spec in `link`. Most commonly, this is either a string with links in it (which is used directly) or the value `false`, indicating that the placetype cannot occur plural. (This is used for example by `caplc`, which displays as `<nowiki>[[capital]] and [[large]]st [[city]]</nowiki>`, where a plural version doesn't make sense.) Generally if this is specified, `plural` also needs to be specified to give a special placetype plural; this situation occurs especially with multiword placetypes where something other than the last word is pluralized. An example is `town with bystatus`, whose plural is `towns with bystatus`, which needs to be explicitly given. This example uses `link = <nowiki>"[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>` ({{m|nb|bystatus}}) is a Norwegian Bokmål word, and template calls aren't currently permitted in link strings), along with `plural_link = <nowiki>"[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>`. * `category_link`: Spec indicating how to display the placetype when occurring in category descriptions. Defaults to the value of `link`, and in turn is overridden by more specific `category_link_*` keys; see below. Category-only placetypes (which are plural and end in `!`) usually use `category_link` in preference to `link`. The value of `category_link` can be any of the types of specs given above, but most commonly is a plural string with links in it, spelling out the description; in this case it is used directly. When both `category_link` and `link` are given, the value in `category_link` is typically longer and more descriptive. For example, `polity` uses `link = true`, which just generates a link `<nowiki>[[polity]]</nowiki>` or plural `<nowiki>[[polity|polities]]</nowiki>`, but specifies a separate `category_link = <nowiki>"[[independent]] or [[semi-]][[independent]] [[polity|polities]]"</nowiki>`, which clarifies in the category description what a polity is. * `category_link_top_level`: Spec indicating how to display top-level (bare/unqualified) categories, i.e. categories where the placetype is not followed by `in ``location`` ` or `of ``location`` `. If given, this overrides `category_link` for this type of category. * `category_link_before_noncity`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` does not refer to a city. If given, this overrides `category_link` for this type of category. * `category_link_before_city`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` refer to a city. If given, this overrides `category_link` for this type of category. An example where this is given is `neighborhood`, which uses the following specs:<ol> <li>`link = true`</li> <li>`category_link = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]"</nowiki>`</li> <li>`category_link_before_city = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions"</nowiki>`</li> </ol> This has the effect of making the entry placetype `neighborhood` display as just `<nowiki>[[neighborhood]]</nowiki>`, while e.g. a category like `Neighborhoods of Chicago` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[Chicago]], ...</nowiki>` and a category like `Neighborhoods in Illinois, USA` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]] in [[Illinois]], ...</nowiki>`. * `disallow_in_entries`: If specified, this placetype cannot occur as an entry placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. * `disallow_in_holonyms`: If specified, this placetype cannot occur as a holonym placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. 2. There is currently one fallback-related property key recognized: * `fallback`: If specified, its value is a placetype which will be used for categorization purposes if no categories get added using the placetype itself. As an example, `branch` sets a fallback of `river` but also sets `preposition = "của"`, meaning that {{tl|place|en|branch|riv/Mississippi}} displays as `a branch of the Mississippi` (whereas `river` itself uses the preposition `in`), but otherwise categorizes the same as `river`. A more complex example is `area`, which sets a fallback of `geographic and cultural area` and also sets a category handler that checks for cities or city-like entities (e.g. boroughs) occurring as holonyms and categorizes the toponym under [[:Category:Neighborhoods of CITY]] (for recognized cities) or otherwise [[:Category:Neighborhoods of POLDIV]] (for the nearest containing recognized location). In addition, `area` is set as a political division of Kuwait, meaning if `c/Kuwait` occurs as holonym, the toponym is categorized under [[:Category:Areas of Kuwait]]. If none of these categories trigger, the fallback of `geographic and cultural area` will take effect, and the toponym will be categorized as e.g. [[:Category:Geographic and cultural areas of England]]. 3. There is currently one property to control irregular plurals of placetypes: * `plural`: If specified, its value is the plural of the placetype. Otherwise, the default pluralization algorithm in [[Module:en-utilities]] applies (which correctly pluralizes most words, including those ending in `-y`, `-ch`, `-sh`, `-x`, etc.). The value of `plural` is also used when converting a pluralized placetype into its singular equivalent; for example, since the placetype `kibbutz` has `plural = "kibbutzim"`, the placetype `kibbutzim` will be recognized as a plural and singularized to `kibbutz`. For this reason, it's occasionally necessary to specify a `plural` value even when the default pluralization algorithm works correctly, if the default singularization algorithm won't correctly reverse the pluralization (as with `pass` and other terms ending in `-ss`). 4. The following property keys relate to generating categories for entry placetypes and specifying the parents of those categories: * `class`: The general class of placetype. This is used for various purposes: (a) to categorize placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical` (note that these placetypes are not all treated alike); (b) to determine the parent category of bare placetype categories (e.g. [[:Category:Villages]] for placetype `village`); (c) to determine whether to add a parent category `political divisions of specific countries` to qualified placetype categories (e.g. [[:Category:Villages in Mali]]). The possible values are: *# `polity`: a more-or-less sovereign/independent polity, such as a country, kingdom or empire. *# `subpolity`: a non-sovereign division of a polity, above the level of an individual settlement. *# `settlement`: a city or smaller equivalent, such as a village. This also includes administrative divisions of a settlement, such as wards and barangays. *# `non-admin settlement`: similar to a settlement but without administrative or political significance, such as an unincorporated community, farm or neighborhood. *# `capital`: a settlement that is a capital. A former capital is generally still in existence, just not the capital any more. *# `natural feature`: any non-man-made feature, such as a lake, mountain, island, ocean, etc. *# `man-made structure`: a man-made feature below the level of a neighborhood, such as a house, airport, university, metro station, park or the like. *# `geographic region`: a geographic or cultural region or area that has no administrative significance. These may vary greatly in size but typically have some sort of cultural significance (possibly historical). The `former`, `ancient`, etc. qualifier has no effect on the category of these placetypes. *# `generic place`: a place that isn't further qualified into any specific subtype. * `former_type`: The class of placetype used for categorizing placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical`. The possible values are the same as for `class` but with the addition of `dependent territory` (for colonies, protectorates and the like) and `!` (ignore the historical/former/ancient/etc. qualifier; used e.g. with `fictional location` and `mythological location`). If not specified, the value of `class` is used. When a qualifier such as `former`, `ancient`, `medieval` or `historical` is encountered (specifically, those in `former_qualifiers`), it is mapped using `former_qualifiers` to the appropriate internal qualifier or qualifiers (one or both of `ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified qualifiers), which is prepended to the value of `former_type` or `class` to form a placetype whose properties are looked up to determine how to categorize the toponym in question. For example, if `medieval village` is given, we map `medieval` to `ANCIENT` and `FORMER`, and `village` to its `class` of `settlement`, and enter the placetypes `ANCIENT settlement` and `FORMER settlement` (in that order) into the list of equivalent placetypes returned by `get_placetype_equivs`. In this case, there is an entry in `placetype_data` for `ANCIENT settlement`, so its default category spec `Ancient settlements` is used as the category. If on the other hand `medieval kingdom` is given, where `kingdom` has a `class` value `polity`, we first look up `ANCIENT polity`, see there is no entry in `placetype_data` for it, and then look up `FORMER polity`, which exists and has a default category spec `Former polities`, which is used as the category. Note that if the placetype following the "former" qualifier is recognized in `placetype_data` but has no `former_type` or `class` and no fallback with a `former_type` or `class` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like `former greenhouse` is specified and we don't have an entry for `greenhouse`), we just track the occurrence and end up not categorizing. * `bare_category_parent`: This specifies the first parent category of a bare placetype category named according to the placetype in question (e.g. [[:Category:Atolls]] for placetype `atoll`, or [[:Category:Named buildings]] for placetype `named buildings!`). If not specified, the first parent category is determined by the value of `class`, using the mapping `class_to_bare_category_parent` in [[Module:category tree/topic cat/data/Places]]. * `addl_bare_category_parents`: Extra parent categories to add a bare placetype category to (see `bare_category_parent` just above). * `bare_category_breadcrumb`: Breadcrumb for bare placetype categories. Also used as the sort key of `bare_category_parent` if it is a string. * `inherently_former`: If specified and the given placetype is used as an entry placetype, act as if `former` or `ancient` (depending on the value of `inherently_former`) were prefixed to the placetype. This is for placetypes that always refer to no-longer-existing entities, such as `satrapy` and `treaty port`. The value of `inherently_former` is a list of internal qualifiers (one or more of `ANCIENT` and/or `FORMER`), just as for `former_qualifiers`, and the implementation is the same. * `cat_handler`: Handler used to generate the categories to add a given toponym to, if its entry placetype is the placetype in question. Generally the `cat_handler` function checks the holonyms specified in order to determine which category or categories to generate. For example, `district_neighborhood_cat_handler` handles placetypes `district`, `neighborhood`, `subdivision`, `suburb` and the like, and either adds the toponym to a category like `Neighborhoods of ``city`` ` (if a recognized city is given as a holonym), or otherwise a category like `Neighborhoods in ``location`` ` (for the first recognized non-city location given as a holonym, if an unrecognized city or city-like entity is given before the recognized non-city). The algorithm that runs the category handlers iterates over holonyms from left to right, running the `cat_handler` function on each holonym in turn until one or more categories are returned; see below for more specifics. (Note that countries for which e.g. a `district` is a political division do not get the corresponding category added by the `district_neighborhood_cat_handler` function but by `political_division_cat_handler`.) `cat_handler` functions are called with one argument, `data`, describing the resolved entry placetype (i.e. after resolving placetype aliases and fallbacks) and the holonym being processed. The return value should be a list of category specs (categories minus the langcode prefix, with `+++` standing for the holonym key, or the value `true`, which stands for ` ``Placetypes`` in/of ``Holonym`` `, i.e. the pluralized placetype with the appropriate preposition as specified in `placetype_data`). `data` contains the following fields: ** `entry_placetype`: the resolved entry placetype for the entry placetype being processed (i.e. it will always have an entry in `placetype_data` but may not be the original placetype given by the user); ** `holonym_placetype` and `holonym_placename`: the holonym placetype and placename being processed; ** `holonym_index`: the index of the holonym being processed, or {nil} if we're handling an overriding holonym (FIXME: we will change the overriding holonym algorithm so there will be an index even when processing overriding holonyms); ** `place_desc`: a full description of the {{tl|place}} call, as specified at the top of [[Module:place]]; ** `from_demonym`: If set, we are called from [[Module:demonym]], triggered by {{tl|demonym-adj}} or {{tl|demonym-noun}}, instead of being triggered by {{tl|place}}. * `has_neighborhoods`: If `true`, the specified placetype is city-like. This is used in the `district_neighborhood_cat_handler` to determine whether to add a category such as `Neighborhoods in ``location`` `; see the section just above on `cat_handler`. 5. The following preposition-related property keys are recognized: * `preposition`: The preposition used after this placetype when it occurs as an entry placetype. Defaults to `"in"`. * `generic_before_non_cities`: If specified, the appropriate category description handler in [[Module:category tree/topic cat/data/Places]] will recognize categories of the form ` ``Placetype`` in/of ``location`` ` for the specified placetype and preposition, if ``location`` is a non-city. This is used to generate descriptions for categories added by category handlers and by explicit category specs in the placetype data. All placetypes that specify `generic_before_non_cities` or `generic_before_cities` *MUST* also specify a value for `class` so that the category tree code can determine whether it's a political or non-political division. * `generic_before_cities`: Like `generic_before_non_cities` but for locations referring to cities. 6. The following property keys control the auto-addition of affixes when formatting holonyms of a particular placetype: * `affix_type`: If specified, add the placetype as an affix before or after holonyms of this placetype. Possible values are: *# `"pref"` (the holonym will display as `(the) placetype of Holonym`, where `the` appears when the holonym directly follows an entry placetype); *# `"Pref"` (same as `"pref"` but the placetype is capitalized; each word is capitalized if there are multiple); *# `"suf"` (the holonym will display as `Holonym placetype`); *# `"Suf"` (the holonym will display as `Holonym Placetype`, i.e. same as `"suf"` but the placetype is capitalized). * `suffix`: String to use in place of the placetype itself when the placetype is displayed as a suffix after a holonym. Note that `suffix` can be used independently of `affix_type` because the user can also request a suffix explicitly using a syntax like `adr:suf/Occitania`, which will display as `Occitania region` because the placetype `administrative region` specifies `suffix = "region"`. * `prefix`: Like `suffix` but for use when the placetype is displayed as a prefix before the holonym. * `affix`: Like `suffix` and `prefix` but for use when the placetype is displayed as an affix either before or after the holonym. If both `suffix` or `prefix` and `affix` are given for a single placetype, `suffix` or `prefix` take precedence. * `no_affix_strings`: String or list of strings that, if they occur in the holonym, suppress the addition of any affix requested using `affix_type`. Defaults to the placetype itself. For example, `autonomous okrug` specifies `affix_type = "Suf"` so that `aokr/Nenets` displays as `Nenets Autonomous Okrug`, but also specifies `no_affix_strings = "okrug"` so that `aokr/Nenets Okrug` or `aokr/Nenets Autonomous Okrug` displays as specified, without a redundant `Autonomous Okrug` added. Matching is case-insensitive but whole-word. * `display_handler`: A function of two arguments, `holonym_placetype` and `holonym_placename` (specifying a holonym). Its return value is a string specifying the display form of the holonym. 7. The following property keys control the indefinite and definite articles used before entry placetypes and/or holonyms of the specified placetype. * `entry_placetype_use_the`: Use `"the"` before this placetype when it occurs as an entry placetype. * `entry_placetype_indefinite_article`: Indefinite article used before this placetype when it occurs as an entry placetype (usually `"a"`, specifically for placetypes beginning with u- that don't take the indefinite article `"an"`). Defaults to the appropriate indefinite article (`"a"` or `"an"` depending on whether the placetype begins with a vowel). Overridden by `entry_placetype_use_the`, and unlike for most properties, does not apply to equivalent placetypes (i.e. fallbacks or those formed by removing a qualifier from the beginning); only to the exact placetype specified. * `holonym_use_the`: Use `"the"` before holonyms of this placetype. '''NOTE:''' # The `link` property must be specified on all placetypes, except those ending in `!` (category-only placetypes), which must have either `link` or `category_link` specified. # Either the `class` or `former_type` property must be specified on all placetypes not ending in `!` that do not have a fallback (if a placetype has a fallback and omits the `class` and `former_type` properties, they are taken from the fallback). An internal error will result if a placetype has no `class` or `former_type` property derivable either directly or through a fallback, if an attempt is made to categorize a former/ancient/historical/etc. entity of this placetype. # It is possible to have multiple levels of fallback (e.g. `frazione` falls back to `hamlet`, which falls back to `village`). Fallback loops will cause an internal error. All placetypes specified as fallbacks must exist in `placetype_data` or an internal error occurs. ]==] export.placetype_data = { --[=[ If you need to sort the following, do this (using Vim): 1. Make sure all full-line comments are within the { ... } table, or are moved after and on the same line as single-line entries. 2. Make sure the table uses tabs everywhere for indent, and not spaces. 3. Mark the top of the table with `ma`, go to the bottom and execute the following two lines in sequence: :'a,.s/\n/\\n/g :s/\\n\(\t\[\)/\r\1/g The first command converts every newline to a literal `\n` sequence, so the whole thing becomes a single line, while the second command restores the newlines before the beginning of each entry. The effect is to convert all entries to a single line while not losing any information. (Potentially a negative lookahead could be used to do it all in one command.) 4. Execute the following to sort: :'a,.!perl -pe 's/^(\t\[")(.*?)(".*)$/$2 @@@ $1$2$3/' | sort -f | perl -pe 's/.*? @@@ //' Note that a simple `sort -f` (where `-f` means case-insensitive) would almost work, but it would sort "hill station" before "hill" and "county borough" before "county" because the space after e.g. "hill station" sorts before the quotation mark after e.g. "hill". The above command deals with this by extracting the key, prepending it followed by ` @@@ `, sorting, and then removing key (the classic decorate-sort-undecorate pattern). 5. Put the table back to multi-line format by marking the top of the table with `ma`, going to the bottom and executing :'a,.s/\\n/\r/g Note that for some reason, in order to get a match a newline in the left side of a replacement, you must use \n, but to insert a newline in the right sode of a replacement you must use \r. ]=] ["*"] = { link = false, cat_handler = generic_place_cat_handler, }, ["administrative atoll"] = { -- Maldives link = "+w:administrative divisions of the Maldives", preposition = "của", class = "subpolity", }, ["administrative capital"] = { link = "w", fallback = "capital city", }, ["administrative center"] = { link = "w", fallback = "non-city capital", }, ["administrative centre"] = { link = "w", fallback = "administrative center", }, ["administrative county"] = { link = "w", fallback = "county", }, ["administrative district"] = { link = "w", fallback = "district", }, ["administrative headquarters"] = { link = "separately", fallback = "administrative centre", }, ["administrative region"] = { link = true, preposition = "của", suffix = "region", -- but prefix is still "administrative region (of)" fallback = "region", class = "subpolity", }, ["administrative seat"] = { link = "w", fallback = "administrative centre", }, ["administrative territory"] = { link = "separately", preposition = "của", suffix = "territory", -- but prefix is still "administrative territory (of)" fallback = "territory", class = "subpolity", }, ["administrative unit"] = { -- Grrr, it's difficult to generalize about "administrative units". In Albania, "administrative unit" is an -- official term for a city-level division of municipalities; Wikipedia renders it using the more practical term -- "commune". In Pakistan, "administrative unit" is a collective term used to refer to all the different types -- of first-level divisions (four provinces, one federal territory, and two "disputed territories", i.e. Azad -- Kashmir and Gilgit-Balistan, that are variously described). For this reason, we set no fallback, but we need -- to include this so that it can be used as a placetype for Albania, categorizing as communes. link = "w", class = "subpolity", }, ["administrative village"] = { link = "w", preposition = "của", has_neighborhoods = true, class = "settlement", }, ["aimag"] = { -- used in Mongolia, Russia and China (Inner Mongolia); in Mongolia, equivalent to a province; -- in China, equivalent to a prefecture (below a province); in Russia, equivalent to a municipal district. link = "w", fallback = "prefecture", }, ["airport"] = { link = true, class = "man-made structure", default = {true}, }, ["alliance"] = { link = true, fallback = "confederation", }, ["archipelago"] = { link = true, fallback = "island", }, ["area"] = { link = true, preposition = "của", fallback = "geographic and cultural area", -- Areas can either be administrative divisions (specifically of Kuwait) or geographic areas. Assume the former -- when categorizing 'Areas' but the latter when handling e.g. 'historical area'. class = "subpolity", former_type = "geographic region", cat_handler = district_neighborhood_cat_handler, }, ["arm"] = { link = true, preposition = "của", class = "natural feature", default = {"Seas"}, }, ["arrondissement"] = { link = true, preposition = "của", -- FIXME!!! Grrrrr!!! In some countries, arrondissements are divisions of cities; in others, they are divisions -- of departments or provinces. Need to conditionalize on the country for both of the following. class = "subpolity", has_neighborhoods = true, }, ["associated province"] = { link = "separately", fallback = "province", }, ["atoll"] = { -- FIXME! Atolls are administrative divisions of the Maldives but natural features elsewhere. Need to -- conditionalize `class` on the country. See also `administrative atoll`. link = true, class = "natural feature", bare_category_parent = "islands", default = {true}, }, ["autonomous city"] = { link = "w", preposition = "của", fallback = "thành phố", has_neighborhoods = true, }, ["autonomous community"] = { -- Spain; refers to regional entities, not village-like entities, as might be expected from "community" link = true, preposition = "của", class = "subpolity", }, ["autonomous island"] = { -- Comoros; seems like an administrative atoll of the Maldives. link = "+w:autonomous islands of Comoros", preposition = "của", class = "subpolity", }, ["autonomous oblast"] = { link = true, preposition = "của", affix_type = "Suf", no_affix_strings = "oblast", class = "subpolity", }, ["autonomous okrug"] = { link = true, preposition = "của", affix_type = "Suf", no_affix_strings = "okrug", class = "subpolity", }, ["autonomous prefecture"] = { link = true, fallback = "prefecture", }, ["autonomous province"] = { link = "w", fallback = "province", }, ["autonomous region"] = { link = "w", preposition = "của", fallback = "administrative region", -- "administrative region" sets an affix of "region" but we want to display as "Tibet Autonomous Region" -- if the user writes 'ar:Suf/Tibet'. affix = "autonomous region", }, ["autonomous republic"] = { link = "w", preposition = "của", class = "subpolity", }, ["autonomous territorial unit"] = { -- Moldova; only two of them, one for Gagauzia and one for Transnistria. link = "w", preposition = "của", class = "subpolity", }, ["autonomous territory"] = { link = "w", fallback = "dependent territory", }, ["bailiwick"] = { -- Jersey, etc. link = true, fallback = "polity", }, ["barangay"] = { -- Philippines link = true, class = "settlement", -- Barangays are formal administrative divisions of a city rather than informal neighborhoods, but can use -- some of the properties of a neighborhood. fallback = "neighborhood", }, ["barrio"] = { -- Spanish-speaking countries; Philippines link = true, -- FIXME: Not completely correct, in some countries barrios are formal administrative divisions of a city. -- `class` will need to conditionalize on the country to be completely correct. fallback = "neighborhood", }, ["basin"] = { link = true, fallback = "lake", }, ["vịnh"] = { link = true, preposition = "của", class = "natural feature", addl_bare_category_parents = {"Vùng nước"}, default = {true}, }, ["bãi biển"] = { link = true, class = "natural feature", addl_bare_category_parents = {"nước"}, default = {true}, }, ["beach resort"] = { link = "w", fallback = "resort town", }, ["bishopric"] = { link = true, fallback = "polity", }, ["vùng nước!"] = { -- FIXME: This is (maybe?) a type category not a name category. There should be an option for this. We need to -- straighten out the type vs. name vs. related-to issue. category_link = "vùng nước", class = "natural feature", addl_bare_category_parents = {"địa mạo", "hệ thống sinh thái", "nước"}, }, ["borough"] = { link = true, preposition = "của", display_handler = borough_display_handler, has_neighborhoods = true, -- "former borough" could be a former settlement or a former part of a city but seems more likely to -- be a former subpolity, particularly in England. FIXME, we really need a handler to take care of this -- properly. class = "subpolity", -- Grr, some boroughs are city-like but some (e.g. in Britain) may be larger. }, ["borough seat"] = { link = true, entry_placetype_use_the = true, preposition = "của", has_neighborhoods = true, class = "capital", }, ["branch"] = { link = true, preposition = "của", fallback = "river", }, ["bridge"] = { link = true, class = "man-made structure", default = {"Named bridges"}, }, ["building"] = { link = true, class = "man-made structure", default = {"Named buildings"}, }, ["built-up area"] = { link = "w", fallback = "area", }, ["burgh"] = { link = true, fallback = "borough", }, ["business park"] = { link = true, fallback = "park", }, ["caliphate"] = { link = true, fallback = "polity", }, ["canton"] = { link = true, preposition = "của", affix_type = "suf", class = "subpolity", }, ["cape"] = { link = true, fallback = "headland", }, ["capital"] = { link = true, fallback = "capital city", }, ["capital city"] = { link = true, category_link = "[[capital city|capital cities]]: the [[seat of government|seats of government]] for a country or [[political]] [[division]] of a country", entry_placetype_use_the = true, preposition = "của", has_neighborhoods = true, class = "capital", bare_category_parent = "cities", cat_handler = capital_city_cat_handler, default = {true}, -- The following is necessary so that e.g. [[Melbourne]] defined as {{place|en|capital city|s/Victoria|c/Australia}} -- gets categorized in the bare category [[Category:en:Melbourne]]; otherwise placetype 'capital city' wouldn't -- match against the placetype 'city' of Melbourne. fallback = "thành phố", }, ["caplc"] = { link = "[[capital]] and [[large]]st [[city]]", plural_link = false, fallback = "capital city", }, ["captaincy"] = { link = true, preposition = "của", class = "subpolity", inherently_former = {"FORMER"}, }, ["caravan city"] = { link = "w", fallback = "thành phố", class = "settlement", inherently_former = {"ANCIENT", "FORMER"}, }, ["castle"] = { link = true, fallback = "building", }, ["cathedral city"] = { link = true, fallback = "thành phố", }, ["cattle station"] = { -- Australia link = true, fallback = "farm", }, ["census area"] = { link = true, affix_type = "Suf", has_neighborhoods = true, class = "non-admin settlement", }, ["census-designated place"] = { -- United States link = true, class = "non-admin settlement", }, ["census division"] = { -- Canada link = "w", preposition = "của", class = "subpolity", }, ["census town"] = { link = "w", fallback = "town", }, ["central business district"] = { link = true, fallback = "neighborhood", }, ["cercle"] = { -- Mali link = "+w:cercles of Mali", preposition = "của", class = "subpolity", }, ["ceremonial county"] = { link = true, fallback = "county", }, ["chain of islands"] = { link = "[[chain]] of [[island]]s", plural = "chains of islands", plural_link = "[[chain]]s of [[island]]s", fallback = "island", }, ["channel"] = { link = true, fallback = "strait", }, ["charter community"] = { -- Northwest Territories, Canada link = "w", fallback = "village", }, ["thành phố"] = { link = true, generic_before_non_cities = "của", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["city-state"] = { link = true, category_link = "[[sovereign]] [[microstate]]s consisting of a single [[city]] and [[w:dependent territory|dependent territories]]", has_neighborhoods = true, class = "settlement", ["continent/*"] = {"City-states", "Cities in +++", "Quốc gia của +++", "National capitals"}, default = {"City-states", "Cities", "Quốc gia", "National capitals"}, }, ["civil parish"] = { -- Mostly England; similar to municipalities link = true, preposition = "của", affix_type = "suf", has_neighborhoods = true, class = "subpolity", }, ["claimed political division"] = { link = "[[claim]]ed [[political]] [[division]]", class = "subpolity", default = {true}, }, ["co-capital"] = { link = "[[co-]][[capital]]", fallback = "capital city", }, ["coal city"] = { link = "+w:coal town", fallback = "thành phố", }, ["coal town"] = { link = "w", fallback = "town", }, ["collectivity"] = { link = "w", preposition = "của", -- No default; these are weird one-off governmental divisions in France (esp. for overseas collectivities) class = "subpolity", }, ["colony"] = { link = true, fallback = "dependent territory", }, ["comarca"] = { -- per Wikipedia: traditional region or local administrative division found in Portugal, Spain, and some of -- their former colonies, like Brazil, Nicaragua, and Panama. In the Valencian Community, for example, it -- sits between municipalities and provinces, something like a county or district. link = true, preposition = "của", class = "subpolity", }, ["commandery"] = { link = true, preposition = "của", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["commonwealth"] = { link = true, preposition = "của", -- No default; applies specifically to Puerto Rico class = "subpolity", }, ["commune"] = { link = true, fallback = "municipality", }, ["community"] = { link = true, category_link = "[[community|communities]] of all sizes", fallback = "village", }, ["community development block"] = { -- in India; appears to be similar to a rural municipality; groups several villages, unclear if there will be -- neighborhoods so I'm not setting `has_neighborhoods` for now link = "w", affix_type = "suf", no_affix_strings = "block", class = "subpolity", }, ["comune"] = { -- Italy, Switzerland link = true, fallback = "municipality", }, ["condominium"] = { link = true, fallback = "polity", }, ["confederacy"] = { link = true, fallback = "confederation", }, ["confederation"] = { link = true, fallback = "polity", }, ["constituency"] = { -- currently we have them as political divisions of Namibia but many countries have them link = true, preposition = "của", class = "subpolity", }, ["constituent country"] = { link = true, preposition = "của", class = "subpolity", }, ["constituent part"] = { link = "separately", preposition = "của", class = "subpolity", }, ["constituent republic"] = { -- Of Russia, Yugoslavia, etc. link = "separately", preposition = "của", class = "subpolity", }, ["counties and county-level cities!"] = { -- This is used when grouping counties and county-level cities under prefecture-level cities in China. category_link = "[[county|counties]] and [[county-level city|county-level cities]]", class = "subpolity", }, ["continent"] = { link = true, category_link = false, -- can't occur as a bare category class = "natural feature", default = {"Continents and continental regions"}, }, ["continental region"] = { link = "separately", category_link = false, -- can't occur as a bare category class = "geographic region", fallback = "continent", }, ["continents and continental regions!"] = { category_link = "[[continent]]s and [[continent]]-[[level]] [[region]]s (e.g. [[Polynesia]])", class = "geographic region", }, ["council area"] = { link = true, -- in Scotland; similar to a county preposition = "của", affix_type = "suf", class = "subpolity", }, ["quốc gia"] = { link = true, class = "polity", ["continent/*"] = {true, "Quốc gia"}, default = {"Quốc gia"}, }, ["country-like entities!"] = { category_link = "[[polity|polities]] not normally considered [[country|countries]] but treated similarly for categorization purposes; typically, [[unrecognized]] [[de-facto]] countries or [[w:dependent territory|dependent territories]]", class = "polity", }, ["county"] = { link = true, preposition = "của", display_handler = county_display_handler, class = "subpolity", }, ["county borough"] = { link = true, -- in Wales; similar to a county preposition = "của", affix_type = "suf", fallback = "borough", class = "subpolity", }, ["county seat"] = { link = true, entry_placetype_use_the = true, preposition = "của", has_neighborhoods = true, class = "capital", }, ["county town"] = { link = true, entry_placetype_use_the = true, preposition = "của", fallback = "town", has_neighborhoods = true, class = "capital", }, ["county-administered city"] = { -- In Taiwan, per Wikipedia similar to a Taiwanese township or district, which is a small city. -- NOT anything like a "county-level city" in PR China, which is a county masquerading as a city. link = "w", fallback = "thành phố", has_neighborhoods = true, class = "settlement", }, ["county-controlled city"] = { -- Taiwan link = "w", fallback = "county-administered city", }, ["county-level city"] = { -- PR China link = "w", fallback = "prefecture-level city", }, ["crater lake"] = { link = true, fallback = "lake", }, ["creek"] = { link = true, fallback = "stream", }, ["Crown colony"] = { link = "+crown colony", fallback = "crown colony", }, ["crown colony"] = { link = true, fallback = "colony", }, ["Crown dependency"] = { link = true, fallback = "dependent territory", }, ["crown dependency"] = { link = true, fallback = "dependent territory", }, ["cultural area"] = { link = "w", fallback = "geographic and cultural area", }, ["cultural region"] = { link = "w", fallback = "geographic and cultural area", }, ["delegation"] = { -- Tunisia link = "+w:delegations of Tunisia", preposition = "của", class = "subpolity", }, ["department"] = { link = true, preposition = "của", affix_type = "suf", class = "subpolity", }, ["departmental capital"] = { link = "separately", fallback = "capital city", }, ["dependency"] = { link = true, fallback = "dependent territory", }, ["dependent territory"] = { link = "w", preposition = "của", class = "subpolity", former_type = "dependent territory", bare_category_parent = "political divisions", ["country/*"] = {true}, default = {true}, }, ["hoang mạc"] = { link = true, class = "natural feature", addl_bare_category_parents = {"hệ thống sinh thái"}, default = {true}, }, ["deserted mediaeval village"] = { link = "w", fallback = "deserted medieval village", }, ["deserted medieval village"] = { link = "w", fallback = "ANCIENT settlement", }, ["direct-administered municipality"] = { -- China link = "+w:direct-administered municipalities of China", fallback = "municipality", }, ["direct-controlled municipality"] = { -- several countries link = "w", fallback = "municipality", }, ["distributary"] = { link = true, preposition = "của", fallback = "river", }, ["district"] = { link = true, preposition = "của", affix_type = "suf", -- Grrr! FIXME! Here is where we need handlers for `class`. Using similar logic to -- district_neighborhood_cat_handler, we need to check if we're below or above a city to determine if the class -- is "settlement" or "subpolity". class = "subpolity", cat_handler = district_neighborhood_cat_handler, -- No default. Countries for which districts are political divisions will get entries. }, ["districts and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Portugal. category_link = "[[district]]s and [[autonomous region]]s", class = "subpolity", }, ["districts and autonomous territorial units!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Moldova. category_link = "[[district]]s and [[w:autonomous territorial unit|autonomous territorial unit]]s", class = "subpolity", }, ["district capital"] = { link = "separately", fallback = "capital city", }, ["district headquarters"] = { link = "separately", fallback = "administrative centre", }, ["district municipality"] = { -- In Canada, a district municipality is equivalent to a rural municipality and won't have neighborhoods; in -- South Africa, district municipalities group local municipalities and hence won't have neighborhoods. link = "w", preposition = "của", affix_type = "suf", no_affix_strings = {"district", "municipality"}, fallback = "municipality", class = "subpolity", }, ["division"] = { link = true, preposition = "của", class = "subpolity", }, ["division capital"] = { link = "separately", fallback = "capital city", }, ["dome"] = { link = true, fallback = "mountain", }, ["dormant volcano"] = { link = true, fallback = "volcano", }, ["duchy"] = { link = true, fallback = "polity", }, ["emirate"] = { link = true, preposition = "của", -- FIXME: Can be subpolities (of the United Arab Emirates). fallback = "polity", }, ["empire"] = { link = true, fallback = "polity", }, ["enclave"] = { link = true, preposition = "của", -- Enclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["entity"] = { -- Bosnia and Herzegovina link = "+w:entities of Bosnia and Herzegovina", preposition = "của", class = "subpolity", }, ["escarpment"] = { link = true, fallback = "mountain", }, ["ethnographic region"] = { -- used in Lithuania link = "+w:ethnographic regions of Lithuania", fallback = "geographic and cultural area", }, ["exclave"] = { link = true, preposition = "của", -- exclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["external territory"] = { link = "separately", fallback = "dependent territory", }, ["farm"] = { link = true, class = "non-admin settlement", default = {"Farms and ranches"}, }, ["farms and ranches!"] = { category_link = "[[farm]]s and [[ranch]]es", class = "non-admin settlement", }, ["federal city"] = { link = "w", preposition = "của", fallback = "thành phố", }, ["federal district"] = { link = true, preposition = "của", -- Might have neighborhoods as federal districts are often cities (e.g. Mexico City) has_neighborhoods = true, class = "settlement", }, ["federal subject"] = { -- In Russia; a generic term for first-level administrative divisions (republics, oblasts, okrugs, krais, -- autonomous okrugs and autonomous oblasts). link = "w", preposition = "của", class = "subpolity", }, ["federal territory"] = { link = "w", fallback = "territory", }, ["fictional location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["First Nations reserve"] = { -- Canada link = "[[First Nations]] [[w:Indian reserve|reserve]]", -- Wikipedia uses "Indian reserve"; presumably that is the legal term fallback = "Indian reserve", class = "subpolity", }, ["fjord"] = { link = true, class = "natural feature", addl_bare_category_parents = {"vùng nước"}, default = {true}, }, ["footpath"] = { link = true, fallback = "road", }, ["rừng"] = { link = true, class = "natural feature", addl_bare_category_parents = {"hệ thống sinh thái", "lâm nghiệp"}, default = {true}, }, ["fort"] = { link = true, fallback = "building", }, ["fortress"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- fortresses -> fortresse, so put an entry here to ensure we singularize correctly. plural = "fortresses", fallback = "building", }, ["frazione"] = { link = "w", fallback = "hamlet", }, ["freeway"] = { link = true, fallback = "road", }, ["French prefecture"] = { link = "[[w:prefectures in France|prefecture]]", entry_placetype_use_the = true, preposition = "của", has_neighborhoods = true, class = "capital", }, ["geographic and cultural area"] = { link = "+w:cultural area", -- `generic_before_non_cities` is used when generating the category description of categories of the format -- `Geographic and cultural areas of PLACE`. `preposition` is used when generating {{place}} description and -- categories for any placetype that falls back to `geographic and cultural area`. generic_before_non_cities = "của", preposition = "của", class = "geographic region", bare_category_parent = "places", ["country/*"] = {true}, ["constituent country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["geographic area"] = { link = "+w:geographic region", fallback = "geographic and cultural area", }, ["geographic region"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical area"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical region"] = { link = "w", fallback = "geographic and cultural area", }, ["geopolitical zone"] = { -- Nigeria link = true, preposition = "của", class = "subpolity", }, ["gewog"] = { -- Bhutan link = true, preposition = "của", class = "subpolity", }, ["ghost town"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", bare_category_parent = "former settlements", cat_handler = city_type_cat_handler, default = {true}, }, ["glen"] = { link = true, fallback = "valley", }, ["governorate"] = { link = true, preposition = "của", affix_type = "suf", class = "subpolity", }, ["greater administrative region"] = { -- China (former division) link = "w", preposition = "của", class = "subpolity", inherently_former = {"FORMER"}, }, ["gromada"] = { -- Poland (former division) link = "w", preposition = "của", affix_type = "Pref", class = "subpolity", inherently_former = {"FORMER"}, }, ["group of islands"] = { link = "[[group]] of [[island]]s", plural = "groups of islands", plural_link = "[[group]]s of [[island]]s", fallback = "island group", }, ["vịnh biển"] = { link = true, preposition = "của", class = "natural feature", addl_bare_category_parents = {"vùng nước"}, default = {true}, }, ["hamlet"] = { link = true, fallback = "village", }, ["harbor city"] = { link = "separately", fallback = "thành phố", }, ["harbor town"] = { link = "separately", fallback = "town", }, ["harbour city"] = { link = "separately", fallback = "thành phố", }, ["harbour town"] = { link = "separately", fallback = "town", }, ["mũi đất"] = { link = true, class = "natural feature", addl_bare_category_parents = {"địa mạo"}, default = {true}, }, ["headquarters"] = { link = "w", fallback = "administrative centre", }, ["bãi hoang"] = { link = true, fallback = "đồng hoang", }, ["hemisphere"] = { link = true, entry_placetype_use_the = true, fallback = "continental region", }, ["highway"] = { link = true, fallback = "road", }, ["đồi"] = { link = true, class = "natural feature", addl_bare_category_parents = {"địa mạo"}, default = {true}, }, ["hill station"] = { link = "w", fallback = "town", }, ["hill town"] = { link = "w", fallback = "town", }, ["historic region"] = { -- provided only for the link link = "+w:historical region", fallback = "FORMER geographic region", }, ["historical county"] = { -- needed for historical counties of England/etc. link = "+w:historic county", fallback = "FORMER subpolity", }, ["historical region"] = { -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["home rule city"] = { link = "w", fallback = "thành phố", }, ["home rule municipality"] = { link = "w", fallback = "municipality", }, ["hot spring"] = { link = true, fallback = "spring", }, ["house"] = { link = true, fallback = "building", }, ["housing estate"] = { -- not the same as a housing project (i.e. public housing) link = true, -- not exactly the case but approximately fallback = "neighborhood", }, ["hromada"] = { -- Ukraine link = "w", disallow_in_entries = "Use placetype 'urban hromada', 'rural hromada' or 'settlement hromada' in place of bare 'hromada'", disallow_in_holonyms = "Use placetype 'urban hromada'/'uhrom', 'rural hromada'/'rhrom' or 'settlement hromada'/'shrom' in place of bare 'hromada'", preposition = "của", affix_type = "suf", class = "subpolity", }, ["inactive volcano"] = { link = "w", fallback = "dormant volcano", }, ["independent city"] = { link = true, fallback = "thành phố", }, ["independent town"] = { link = "+independent city", fallback = "town", }, ["Indian reservation"] = { link = "w", -- In the US. Also known as "Native American reservation" or "domestic dependent nation", and the reservations -- themselves often use the term "nation" in their official name (e.g. the "Navajo Nation"). But Wikipedia puts -- the article at [[w:Indian reservation]] and uses that term when describing e.g. what the Navajo Nation is, -- so this must still be the legal term. preposition = "của", class = "subpolity", default = {true}, }, ["Indian reserve"] = { link = "w", -- In Canada. "First Nations reserve" sounds more modern/PC but Wikipedia uses "Indian reserve"; presumably that -- is still the legal term. preposition = "của", class = "subpolity", default = {true}, }, ["inland sea"] = { -- note, we also have 'inland' as a qualifier link = true, fallback = "sea", }, ["inner city area"] = { link = "[[inner city]] [[area]]", fallback = "neighborhood", }, ["đảo"] = { link = true, preposition = "của", class = "natural feature", addl_bare_category_parents = {"địa mạo"}, default = {true}, }, ["island country"] = { -- FIXME: The following should map to both 'island' and 'country'. link = "w", fallback = "country", }, ["island group"] = { link = "separately", fallback = "island", }, ["island municipality"] = { link = "w", fallback = "municipality", }, ["islet"] = { link = "w", fallback = "island", }, ["Israeli settlement"] = { link = "w", class = "settlement", default = {true}, }, ["judicial capital"] = { link = "w", fallback = "capital city", }, ["khanate"] = { link = true, fallback = "polity", }, ["kibbutz"] = { link = true, plural = "kibbutzim", class = "non-admin settlement", default = {true}, }, ["kingdom"] = { link = true, fallback = "monarchy", }, ["krai"] = { link = true, preposition = "của", affix_type = "Suf", class = "subpolity", }, ["hồ"] = { link = true, class = "natural feature", addl_bare_category_parents = {"vùng nước"}, default = {true}, }, ["địa mạo!"] = { category_link = "[[địa mạo]]", bare_category_parent = "địa danh", addl_bare_category_parents = {"Trái Đất"}, }, ["largest city"] = { link = "[[large]]st [[city]]", entry_placetype_use_the = true, fallback = "thành phố", has_neighborhoods = true, }, ["league"] = { link = true, fallback = "confederation", }, ["legislative capital"] = { link = "separately", fallback = "capital city", }, ["library"] = { link = true, fallback = "building", }, ["lieutenancy area"] = { -- used in the United Kingdom; per Wikipedia: -- In England, lieutenancy areas are colloquially known as the ceremonial counties, although this phrase does -- not appear in any legislation referring to them. The lieutenancy areas of Scotland are subdivisions of -- Scotland that are more or less based on the counties of Scotland, making use of the major cities as separate -- entities.[2] In Wales, the lieutenancy areas are known as the preserved counties of Wales and are based on -- those used for lieutenancy and local government between 1974 and 1996. The lieutenancy areas of Northern -- Ireland correspond to the six counties and two former county boroughs.[3] link = "w", fallback = "ceremonial county", }, ["local authority district"] = { link = "w", fallback = "local government district", }, ["local government area"] = { -- Australia link = "w", preposition = "của", class = "subpolity", }, ["local council"] = { -- Malta; similar to municipalities link = "+w:local councils of Malta", preposition = "của", fallback = "municipality", }, ["local government district"] = { link = "w", preposition = "của", affix_type = "suf", affix = "district", class = "subpolity", }, ["local government district with borough status"] = { link = "[[w:local government district|local government district]] with [[w:borough status|borough status]]", plural = "local government districts with borough status", plural_link = "[[w:local government district|local government districts]] with [[w:borough status|borough status]]", preposition = "của", affix_type = "suf", affix = "district", class = "subpolity", }, ["local urban district"] = { link = "w", fallback = "unincorporated community", }, ["locality"] = { link = "+w:locality (settlement)", -- not necessarily true, but usually is the case fallback = "village", }, ["London borough"] = { link = "w", preposition = "của", affix_type = "pref", affix = "borough", fallback = "local government district with borough status", has_neighborhoods = true, }, ["macroregion"] = { link = true, fallback = "region", }, ["man-made structures!"] = { category_link = "[[w:geographical feature#Engineered constructs|man-made structures]] such as [[airport]]s, [[university|universities]] and [[metro station]]s", bare_category_parent = "places", }, ["manor"] = { -- FIXME: or is this more like a farm? link = true, fallback = "building", }, ["marginal sea"] = { link = true, preposition = "của", fallback = "sea", }, ["market city"] = { link = "+market town", fallback = "thành phố", }, ["market town"] = { link = true, fallback = "town", }, ["massif"] = { link = true, fallback = "mountain", }, ["megacity"] = { link = true, fallback = "thành phố", }, ["metro station"] = { link = true, class = "man-made structure", }, ["metropolitan borough"] = { link = true, preposition = "của", affix_type = "Pref", no_affix_strings = {"borough", "thành phố"}, fallback = "local government district", has_neighborhoods = true, }, ["metropolitan city"] = { -- These exist e.g. in Italy and are more like municipalities or even provinces than cities. link = true, preposition = "của", affix_type = "Pref", no_affix_strings = {"metropolitan", "thành phố"}, class = "subpolity", }, ["metropolitan county"] = { link = true, fallback = "county", }, ["metropolitan municipality"] = { -- In South Africa, metropolitan municipalities group local municipalities and are like districts, between -- provinces and municipalities. -- In Turkey, metropolitan municipalities are provinces-level. link = "w", preposition = "của", affix_type = "Suf", no_affix_strings = {"metropolitan", "municipality"}, fallback = "municipality", class = "subpolity", }, ["microdistrict"] = { -- residential complex in post-Soviet states link = true, fallback = "neighborhood", }, ["micronations!"] = { -- FIXME, merge with microstate category_link = "[[micronation]]s", bare_category_parent = "quốc gia", }, ["microstate"] = { link = true, fallback = "country", }, ["military base"] = { link = "w", class = "settlement", -- or "man-made structure"? default = {true}, }, ["minster town"] = { -- England link = "separately", fallback = "town", }, ["monarchy"] = { link = true, fallback = "polity", }, ["đồng hoang"] = { link = true, class = "natural feature", addl_bare_category_parents = {"địa mạo", "hệ thống sinh thái"}, default = {true}, }, ["thảo nguyên"] = { link = true, fallback = "đồng hoang", }, ["motorway"] = { link = true, fallback = "road", }, ["mountain"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["mountain indigenous district"] = { -- Taiwan link = "+w:district (Taiwan)", fallback = "district", }, ["mountain indigenous township"] = { -- Taiwan link = "+w:township (Taiwan)", fallback = "township", }, ["mountain pass"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "mountain passes", class = "natural feature", addl_bare_category_parents = {"mountains"}, default = {true}, }, ["mountain range"] = { link = true, fallback = "mountain", }, ["mountainous region"] = { link = "separately", fallback = "region", }, ["mukim"] = { -- Malaysia, Brunei, Indonesia, Singapore link = true, preposition = "của", class = "subpolity", }, ["municipal district"] = { link = "w", -- meaning varies depending on the country; for now, assume no neighborhoods. -- FIXME: has_neighborhoods might have to be a function that looks at the containing holonyms. preposition = "của", affix_type = "Pref", no_affix_strings = "district", fallback = "municipality", }, ["municipality"] = { link = true, preposition = "của", has_neighborhoods = true, class = "subpolity", }, ["municipality with city status"] = { link = "[[municipality]] with [[w:city status|city status]]", plural = "municipalities with city status", plural_link = "[[municipality|municipalities]] with [[w:city status|city status]]", fallback = "municipality", }, ["museum"] = { link = true, fallback = "building", }, ["địa danh thần thoại"] = { link = "địa danh thần thoại", former_type = "!", class = "hypothetical location", bare_category_parent = "địa danh", default = {true}, }, ["named bridges!"] = { category_link = "notable [[bridge]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"bridges"}, }, ["named buildings!"] = { category_link = "notable [[house]]s, [[library|libraries]] and other [[building]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"buildings"}, }, ["named roads!"] = { category_link = "notable [[road]]s, [[highway]]s, [[trail]]s and similar linear structures", bare_category_parent = "man-made structures", addl_bare_category_parents = {"roads"}, }, ["national capital"] = { link = "w", fallback = "capital city", }, ["national park"] = { link = true, fallback = "park", }, ["đặc điểm tự nhiên!"] = { category_link = "tổng hợp các yếu tố vật chất hình thành tồn tại", bare_category_parent = "địa danh", }, ["neighborhood"] = { -- The majority of the properties here apply to both `neighborhoods` and `neighbourhoods`; the choice of which -- one to use is made by district_neighborhood_cat_handler() based on the value of `british_spelling` for the -- location (city, political division, etc.) of the holonym that follows the word "neighbo(u)hoods" in the -- category name. It does *NOT* depend on whether the {{place}} call uses "neighborhoods" or "neighbourhoods". -- (In general it can't, because other things like "urban areas", "districts", "subdivisions" and the like also -- categorize as neighbo(u)rhoods.) link = true, -- See below. These are used by category handlers in [[Module:category tree/topic cat/data/Places]]. generic_before_non_cities = "in", generic_before_cities = "của", -- The following text is suitable for the top-level description of a neighborhood as well as categories of the -- form `Neighborhoods in POLDIV` e.g. `Neighborhoods in Illinois, USA` but not for categories of the form -- `Neighborhoods of Chicago`, where we'd get "... and other subportions of [[city|cities]] of [[Chicago]]". category_link = "[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighborhood]]s, [[district]]s and other subportions", -- NOTE: This setting is needed for administrative divisions like barangays that fall back to `neighborhood`, -- when set in [[Module:place/locations]] for a specific country (e.g. the Philippines). The above settings -- for `generic_before_non_cities` and `generic_before_cities` are used by category handlers in -- [[Module:category tree/topic cat/data/Places]] for `Neighborhoods in POLDIV` and `Neighborhoods of CITY` -- categories. In fact, district_neighborhood_cat_handler() does not currently pay attention to them, but -- generates "của" before cities and "in" before non-cities regardless. (FIXME: We should change that.) preposition = "của", class = "non-admin settlement", cat_handler = district_neighborhood_cat_handler, }, ["neighbourhood"] = { link = true, category_link = "[[neighbourhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighbourhood]]s, [[district]]s and other subportions", fallback = "neighborhood", }, ["new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", preposition = "in", class = "subpolity", --? }, ["new town"] = { link = true, fallback = "town", }, ["non-city capital"] = { link = "[[capital]]", entry_placetype_use_the = true, preposition = "của", has_neighborhoods = true, class = "capital", cat_handler = function(data) return capital_city_cat_handler(data, "non-city") end, -- FIXME, do we need the following? default = {true}, }, ["non-metropolitan county"] = { link = "w", fallback = "county", }, ["non-metropolitan district"] = { link = "w", fallback = "local government district", }, ["non-sovereign kingdom"] = { -- especially in Africa and Asia link = "+w:non-sovereign monarchy", generic_before_non_cities = "in", class = "subpolity", ["country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["non-sovereign monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["oblast"] = { link = true, preposition = "của", affix_type = "Suf", class = "subpolity", }, ["oblasts and autonomous republics!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Ukraine. category_link = "[[oblast]]s and [[w:autonomous republic|autonomous republic]]s", class = "subpolity", }, ["đại dương"] = { link = true, class = "natural feature", addl_bare_category_parents = {"biển", "vùng nước"}, default = {true}, }, ["okrug"] = { link = true, preposition = "của", affix_type = "Suf", class = "subpolity", }, ["overseas collectivity"] = { link = "w", fallback = "collectivity", }, ["overseas department"] = { link = "w", fallback = "department", }, ["overseas territory"] = { link = "w", fallback = "dependent territory", }, ["parish"] = { link = true, preposition = "của", affix_type = "suf", class = "subpolity", }, ["parish municipality"] = { -- in Quebec, often similar to a rural village; the famous [[Saint-Louis-du-Ha! Ha!]] is one of them. link = "+w:parish municipality (Quebec)", preposition = "của", fallback = "municipality", has_neighborhoods = true, }, ["parish seat"] = { link = true, entry_placetype_use_the = true, preposition = "của", class = "capital", has_neighborhoods = true, }, ["park"] = { link = true, class = "man-made structure", default = {true}, }, ["pass"] = { link = "+mountain pass", -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "passes", fallback = "mountain pass", }, ["path"] = { link = true, fallback = "road", }, ["peak"] = { link = true, fallback = "mountain", }, ["peninsula"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["periphery"] = { link = true, preposition = "của", class = "subpolity", }, ["địa danh!"] = { generic_before_non_cities = "của", generic_before_cities = "của", class = "generic place", category_link = "[[place]]s of all sorts", -- `category_link_top_level` control the description used in the top-level [[Category:Places]] and -- language-specific variants such as [[Category:en:Places]]. The actual text for a language-spefic variant is -- "{{{langname}}} names of [[geographical]] [[place]]s of all sorts; [[toponym]]s." where the "names of" -- portion is automatically generated by the appropriate handler in -- [[Module:category tree/topic cat/data/Places]]. category_link_top_level = "[[geographical]] [[place]]s of all sorts; [[toponym]]s", bare_category_parent = "tên", }, ["planned community"] = { -- Include this so we don't categorize 'planned community' into villages, as 'community' does. link = true, class = "settlement", has_neighborhoods = true, }, ["plateau"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, -- FIXME: Should generate both "Plateaus" and the appropriate 'geographic and cultural area' category }, ["Polish colony"] = { link = "[[w:colony (Poland)|colony]]", affix_type = "suf", affix = "colony", fallback = "village", has_neighborhoods = true, }, ["political divisions!"] = { category_link = "[[political]] [[division]]s and [[subdivision]]s, such as [[state]]s, [[province]]s, [[county|counties]] or [[district]]s", bare_category_parent = "places", }, ["tổ chức chính trị"] = { link = true, category_link = "[[independent]] or [[semi-]][[independent]] [[polity|polities]]", class = "polity", bare_category_parent = "địa danh", default = {true}, }, ["populated place"] = { link = "+w:populated place", -- not necessarily true, but usually is the case fallback = "village", }, ["port"] = { link = true, class = "man-made structure", default = {true}, }, ["port city"] = { -- FIXME: should categorize into "Ports" as well as "Cities" link = true, fallback = "thành phố", }, ["port town"] = { -- FIXME: should categorize into "Ports" as well as "Towns" link = "w", fallback = "town", }, ["prefecture"] = { -- FIXME! `prefecture` is like a county in Japan and elsewhere but a department capital city in France. -- May need `has_neighborhoods` to be a function. link = true, preposition = "của", display_handler = prefecture_display_handler, class = "subpolity", }, ["prefecture-level city"] = { -- China; they are huge entities with a central city; not cities themselves. link = "w", preposition = "của", class = "subpolity", }, ["preserved county"] = { -- In Wales; they are former counties enshrined in law; there are 8 of them and each consists of one or more -- "principal areas" (styled as "counties" or "county boroughs"), of which there are 22. link = "w", preposition = "của", class = "subpolity", inherently_former = {"FORMER"}, }, ["primary area"] = { -- a grouping of "districts" (neighborhoods) in Gothenburg, Sweden link = "+w:sv:primärområde", fallback = "neighborhood", }, ["principality"] = { link = true, fallback = "monarchy", }, ["promontory"] = { link = true, fallback = "headland", }, ["protectorate"] = { link = true, fallback = "dependent territory", }, ["province"] = { link = true, preposition = "của", display_handler = province_display_handler, class = "subpolity", }, ["provinces and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case China. category_link = "[[province]]s and [[autonomous region]]s", class = "subpolity", }, ["provinces and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Canada and Pakistan. category_link = "[[province]]s and [[territory|territories]]", class = "subpolity", }, ["provincial capital"] = { link = true, fallback = "capital city", }, ["raion"] = { link = true, preposition = "của", affix_type = "Suf", class = "subpolity", }, ["ranch"] = { link = true, fallback = "farm", }, ["range"] = { -- FIXME: Where is this used? Is it a mountain range? link = true, class = "natural feature", }, ["regency"] = { link = true, preposition = "của", class = "subpolity", }, ["region"] = { link = true, preposition = "của", -- If 'region' isn't a specific administrative division, fall back to 'geographic and cultural area' fallback = "geographic and cultural area", -- "former region" is a subpolity but traditional/historic(al)/ancient/medieval/etc. is a geographic region class = "geographic region", }, ["regional capital"] = { link = "separately", fallback = "capital city", }, ["regional county municipality"] = { -- Quebec link = "w", preposition = "của", affix_type = "Suf", no_affix_strings = {"municipality", "county"}, fallback = "municipality", }, ["regional district"] = { link = "w", preposition = "của", affix_type = "Pref", no_affix_strings = "district", fallback = "district", }, ["regional municipality"] = { link = "w", preposition = "của", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", }, ["regional unit"] = { link = "w", preposition = "của", affix_type = "suf", class = "subpolity", }, ["registration county"] = { -- Used in Scotland for land registration purposes; formerly used in England, Wales and Ireland for statistical -- purposes (registration of births, deaths and marriages, and for the output of census information). link = "w", fallback = "county", }, ["republic"] = { -- Of Russia, Yugoslavia, etc. "Republics" in general are sovereign but we use "country" in that case. link = true, fallback = "constituent republic", }, ["research base"] = { link = "+w:research station", fallback = "research station", }, ["research station"] = { link = "w", class = "non-admin settlement", -- or "man-made structure"? default = {true}, }, ["reservoir"] = { link = true, fallback = "lake", }, ["residential area"] = { link = "separately", fallback = "neighborhood", }, ["resort city"] = { link = "w", fallback = "thành phố", }, ["resort town"] = { link = "w", fallback = "town", }, ["sông"] = { link = true, generic_before_non_cities = "của", class = "natural feature", addl_bare_category_parents = {"vùng nước"}, cat_handler = city_type_cat_handler, ["continent/*"] = {true}, default = {true}, }, ["river island"] = { link = "w", fallback = "island", }, ["road"] = { link = true, class = "man-made structure", default = {"Named roads"}, }, ["Roman province"] = { -- FIXME! Eliminate this in favor of 'former province|emp/Roman Empire' link = "w", default = {"Provinces of the Roman Empire"}, class = "subpolity", }, ["royal borough"] = { link = "w", preposition = "của", affix_type = "Pref", no_affix_strings = {"royal", "borough"}, fallback = "local government district with borough status", has_neighborhoods = true, }, ["royal burgh"] = { link = true, fallback = "borough", }, ["royal capital"] = { link = "w", fallback = "capital city", }, ["rural committee"] = { -- Hong Kong; a group of villages link = "w", affix_type = "Suf", has_neighborhoods = true, class = "settlement", }, ["rural community"] = { -- New Brunswick link = "+w:list of municipalities in New_Brunswick#Rural communities", fallback = "municipality", }, ["rural hromada"] = { link = "[[rural]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["rural municipality"] = { link = "w", preposition = "của", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", has_neighborhoods = true, --? }, ["rural township"] = { -- Taiwan link = "+w:rural township (Taiwan)", fallback = "township", }, ["sanctuary"] = { link = true, fallback = "temple", }, ["satrapy"] = { link = true, preposition = "của", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["biển"] = { link = true, class = "natural feature", addl_bare_category_parents = {"vùng nước"}, default = {"Biển"}, }, ["seaport"] = { link = true, fallback = "port", }, ["seat"] = { link = true, fallback = "administrative centre", }, ["self-administered area"] = { -- Myanmar (groups self-administered divisions and zones) link = "+w:self-administered zone", preposition = "của", class = "subpolity", }, ["self-administered division"] = { -- Myanmar (only one of them: Wa Self-Administered Division) link = "w", fallback = "self-administered area", }, ["self-administered zone"] = { -- Myanmar (five of them) link = "w", fallback = "self-administered area", }, ["separatist state"] = { link = "separately", fallback = "unrecognized country", }, ["settlement"] = { link = true, category_link = "[[settlement]]s such as [[city|cities]], [[village]]s and [[farm]]s", bare_category_parent = "places", -- not necessarily true, but usually is the case fallback = "village", }, ["settlement hromada"] = { link = "[[w:Populated places in Ukraine#Rural settlements|settlement]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["sheading"] = { -- Isle of Man link = true, fallback = "district", }, ["sheep station"] = { -- Australia link = true, fallback = "farm", }, ["shire"] = { link = true, fallback = "county", }, ["shire county"] = { link = "w", fallback = "county", }, ["shire town"] = { link = true, fallback = "county seat", }, ["ski resort city"] = { link = "[[ski resort]] [[city]]", fallback = "thành phố", }, ["ski resort town"] = { link = "[[ski resort]] [[town]]", fallback = "town", }, ["spa city"] = { link = "+w:spa town", fallback = "thành phố", }, ["spa town"] = { link = "w", fallback = "town", }, ["space station"] = { link = true, fallback = "research station", }, ["special administrative region"] = { -- in China; in practice they are city-like (Hong Kong, Macau); also [[Oecusse]] in East Timor is formally a -- "special administrative region"; North Korea had one such region planned (Sinuiju) but abandoned; Indonesia -- has similar "special regions" of Jakarta, Yogyakarta and Aceh; and South Sudan has three "special -- administrative areas" link = "+w:special administrative regions of China", preposition = "của", class = "subpolity", has_neighborhoods = true, --? -- no suffix since places in Hong Kong or Macau are listed without China, except Hong Kong and Macau themselves -- they also contain regions (or areas), e.g. [[Kowloon]], so it would be confusing suffix = "", }, ["special collectivity"] = { link = "w", fallback = "collectivity", }, ["special municipality"] = { -- formerly linked to the Taiwan article but there are also special municipalities of the Netherlands link = "w", fallback = "municipality", }, ["special ward"] = { -- Tokyo link = true, fallback = "municipality", }, ["spit"] = { link = true, fallback = "peninsula", }, ["spring"] = { link = true, class = "natural feature", default = {true}, }, ["star"] = { link = true, class = "natural feature", default = {true}, }, ["state"] = { link = true, preposition = "của", class = "subpolity", -- 'former/historical state' could refer either to a state of a country (a division) or a state = sovereign -- entity. The latter appears more common (e.g. in various "ancient states" of East Asia). former_type = "polity", }, ["states and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Australia. category_link = "[[state]]s and [[territory|territories]]", class = "subpolity", }, ["states and union territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case India. category_link = "[[state]]s and [[union territory|union territories]]", class = "subpolity", }, ["state capital"] = { link = true, fallback = "capital city", }, ["state park"] = { link = true, fallback = "park", }, ["state-level new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", fallback = "new area", }, ["statistical region"] = { -- Slovenia link = true, fallback = "administrative region", }, ["statutory city"] = { link = "w", fallback = "thành phố", }, ["statutory town"] = { link = "w", fallback = "town", }, ["strait"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["stream"] = { link = true, fallback = "river", }, ["street"] = { link = true, fallback = "road", }, ["strip"] = { link = true, fallback = "geographic region", }, ["strip of land"] = { link = "[[strip]] of [[land]]", plural = "strips of land", plural_link = "[[strip]]s of [[land]]", fallback = "geographic region", }, ["sub-metropolitan city"] = { link = "+w:List of cities in Nepal#Sub-metropolitan cities", fallback = "thành phố", }, ["sub-prefectural city"] = { link = "w", fallback = "subprovincial city", }, ["subdistrict"] = { link = true, preposition = "của", has_neighborhoods = true, --? -- FIXME: subdistricts can be neighborhood-like (of Jakarta) or larger (in China); need a handler class = "subpolity", default = {true}, }, ["subdivision"] = { link = true, preposition = "của", affix_type = "suf", -- FIXME: subdivisions can be neighborhood-like or larger; need a handler class = "subpolity", cat_handler = district_neighborhood_cat_handler, }, ["submerged ghost town"] = { -- FIXME: Consider just having "submerged" as a qualifier. link = "[[submerged]] [[ghost town]]", fallback = "ghost town", }, ["subnational kingdom"] = { link = "+w:subnational monarchy", fallback = "non-sovereign kingdom", }, ["subnational monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["subprefecture"] = { link = true, affix_type = "suf", preposition = "của", class = "subpolity", }, ["subprovince"] = { link = true, preposition = "của", class = "subpolity", }, ["subprovincial city"] = { link = "w", -- China; special status given to certain prefecture-level cities fallback = "prefecture-level city", }, ["subprovincial district"] = { link = "w", -- China; special status given to Binhai New Area and Pudong New Area, which are county-level districts preposition = "của", class = "subpolity", }, ["subregion"] = { link = true, fallback = "geographic region", }, ["suburb"] = { link = true, -- The following text is suitable for the top-level description of a suburb as well as categories of the form -- 'Suburbs in POLDIV' e.g. 'Suburbs in Illinois, USA' but not for categories of the form 'Suburbs of Chicago', -- where we'd get "[[suburb]]s of [[city|cities]] of [[Chicago]]". category_link = "[[suburb]]s of [[city|cities]]", category_link_before_city = "[[suburb]]s", -- See comments under "neighborhood" for the following three settings. They are used by -- [[Module:category tree/topic cat/data/Places]] for generating the text of 'Suburbs in/of PLACE' categories -- but currently ignored by district_neighborhood_cat_handler (which actually generates the categories for a -- given page), which hardcodes "in" for non-cities and "của" for cities. (FIXME: Change this.) generic_before_non_cities = "in", generic_before_cities = "của", preposition = "của", has_neighborhoods = true, --? class = "non-admin settlement", --? cat_handler = district_neighborhood_cat_handler, }, ["suburban area"] = { link = "w", fallback = "suburb", }, ["subway station"] = { link = "w", fallback = "metro station", }, ["sum"] = { -- In China, Mongolia, Russia; something like a county in Mongolia but a township in China (Inner Mongolia), -- and equivalent to a [[selsoviet]] in the parts of Russia where it's in use (a rural council, below a raion). link = "+w:sum (administrative division)", -- This fallback is somewha arbitrary. We could use "county" but that has a display handler -- which we don't want to be active (FIXME: If the display handler would be active, that's a bug). fallback = "division", }, ["supercontinent"] = { link = true, fallback = "continent", }, ["tehsil"] = { link = true, affix_type = "suf", no_affix_strings = {"tehsil", "tahsil"}, class = "subpolity", }, ["temple"] = { link = true, fallback = "building", }, ["territorial authority"] = { link = "w", fallback = "district", }, ["territory"] = { link = true, preposition = "của", class = "subpolity", }, ["theme"] = { link = "+w:theme (Byzantine district)", preposition = "của", class = "subpolity", }, ["town"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["town with bystatus"] = { -- can't use templates in links currently link = "[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]", plural = "towns with bystatus", plural_link = "[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]", fallback = "town", }, ["township"] = { link = true, has_neighborhoods = true, class = "settlement", --? default = {true}, }, ["township municipality"] = { -- Quebec link = "+w:township municipality (Quebec)", preposition = "của", fallback = "municipality", has_neighborhoods = true, --? }, ["traditional county"] = { link = true, fallback = "county", }, ["traditional region"] = { -- FIXME: Verify this works. Same for 'historic(al) region'. -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["trail"] = { link = true, fallback = "road", }, ["treaty port"] = { link = "w", fallback = "thành phố", class = "settlement", inherently_former = {"FORMER"}, }, ["tributary"] = { link = true, preposition = "của", fallback = "river", }, ["underground station"] = { link = "w", fallback = "metro station", }, ["unincorporated area"] = { link = "w", -- I don't know if this fallback makes sense everywhere. fallback = "unincorporated community", }, ["unincorporated community"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", }, ["unincorporated territory"] = { link = "w", fallback = "territory", }, ["union territory"] = { -- India link = true, preposition = "của", entry_placetype_indefinite_article = "a", class = "subpolity", }, ["unitary authority"] = { -- UK, New Zealand link = true, entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["unitary district"] = { link = "w", entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["united township municipality"] = { -- Quebec link = "+w:united township municipality (Quebec)", entry_placetype_indefinite_article = "a", fallback = "township municipality", has_neighborhoods = true, --? }, ["university"] = { link = true, entry_placetype_indefinite_article = "a", class = "man-made structure", default = {true}, }, ["unrecognised country"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized and nearly unrecognized countries!"] = { category_link = "[[de facto]] [[independent]] [[state]]s with little or no {{w|international recognition}}", bare_category_parent = "country-like entities", }, ["unrecognized country"] = { link = "w", class = "polity", default = {"Unrecognized and nearly unrecognized countries"}, }, ["unrecognised state"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized state"] = { link = "w", fallback = "unrecognized country", }, ["urban area"] = { link = "separately", fallback = "neighborhood", }, ["urban hromada"] = { link = "[[urban]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["urban service area"] = { -- A strange beast existing in Alberta; technically a type of hamlet but in practice used for much larger -- cities and treated equivalent to a city. (There are only two of them, [[Fort McMurray]] and [[Sherwood Park]]). link = "w", fallback = "thành phố", }, ["urban township"] = { link = "w", fallback = "township", }, ["urban-type settlement"] = { -- appears to be a particular type of small urban settlement in post-Soviet states, -- had an administrative function. link = "w", fallback = "town", }, ["valley"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "water"}, default = {true}, }, ["viceroyalty"] = { -- in essence, a type of colony link = true, fallback = "dependent territory", }, ["village"] = { link = true, generic_before_non_cities = "in", category_link = "[[village]]s, [[hamlet]]s, and other small [[community|communities]] and [[settlement]]s", class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["village development committee"] = { -- former administrative structure in Nepal; also exists in India but not as a formal unit link = "+w:village development committee (Nepal)", inherently_former = {"FORMER"}, fallback = "village", }, ["village municipality"] = { -- Quebec link = "+w:village municipality (Quebec)", preposition = "của", fallback = "municipality", has_neighborhoods = true, --? }, ["voivodeship"] = { -- Poland link = true, display_handler = voivodeship_display_handler, preposition = "của", class = "subpolity", }, ["volcano"] = { link = true, plural = "volcanoes", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true, "Mountains"}, }, ["phường"] = { link = true, class = "settlement", -- Wards are formal administrative divisions of a city but have some properties of neighborhoods. fallback = "neighborhood", }, ["watercourse"] = { link = true, fallback = "channel", }, ["Welsh community"] = { -- Wales link = "[[w:community (Wales)|community]]", preposition = "của", affix_type = "suf", affix = "community", has_neighborhoods = true, class = "settlement", }, ["zone"] = { -- administrative division of Ethiopia, Qatar, Nepal, India link = "+w:zone#Place names", preposition = "của", class = "subpolity", }, ---------------------------------------------------------------------------------------------- -- Categories for former places -- ---------------------------------------------------------------------------------------------- ["ANCIENT capital"] = { link = false, entry_placetype_use_the = true, preposition = "của", has_neighborhoods = true, class = "capital", -- FIXME: Consider removing 'ancient settlements' here. Ancient capitals, like former capitals, often still -- exist but just aren't the capital any more. Maybe we should have an 'Ancient capitals' category. default = {"Ancient settlements", "Former capitals"}, }, ["ANCIENT non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "ANCIENT settlement", }, ["ANCIENT settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"Ancient settlements"}, }, ["ancient settlements!"] = { category_link = "former [[city|cities]], [[town]]s and [[village]]s that existed in [[antiquity]]", bare_category_parent = "former settlements", }, ["FORMER capital"] = { link = false, entry_placetype_use_the = true, preposition = "của", has_neighborhoods = true, class = "capital", default = {"Former capitals"}, }, ["former capitals!"] = { category_link = "former [[capital]] [[city|cities]] and [[town]]s", bare_category_parent = "settlements", }, ["former counties and county-level cities!"] = { -- For categorizing former counties and county-level cities of China category_link = "no-longer existing [[county|counties]] and [[county-level city|county-level cities]]", bare_category_breadcrumb = "counties and county-level cities", bare_category_parent = "former political divisions", }, ["FORMER county"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["FORMER county-level city"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["former countries and country-like entities!"] = { category_link = "[[country|countries]] and similar [[polity|polities]] that no longer exist", bare_category_breadcrumb = "countries and country-like entities", bare_category_parent = "former polities", }, ["FORMER country"] = { link = false, class = "polity", default = {"Former countries and country-like entities"}, }, ["former dependent territories!"] = { category_link = "[[w:dependent territory|dependent territories]] (colonies, dependencies, protectorates, etc.) that no longer exist", bare_category_breadcrumb = "dependent territories", bare_category_parent = "former political divisions", }, ["FORMER dependent territory"] = { link = false, preposition = "của", class = "subpolity", default = {"Former dependent territories"}, }, ["former districts!"] = { -- For categorizing former districts of China category_link = "no-longer-existing [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "former political divisions", }, ["FORMER district"] = { -- For categorizing former districts of China link = false, fallback = "FORMER subpolity", }, ["FORMER geographic region"] = { link = false, fallback = "geographic and cultural area", }, ["FORMER man-made structure"] = { link = false, class = "man-made structure", default = {"Former man-made structures"}, }, ["former man-made structures!"] = { category_link = "man-made structures such as [[airport]]s and [[park]]s that no longer exist", bare_category_breadcrumb = "man-made structures", bare_category_parent = "former places", }, ["former municipalities!"] = { -- For categorizing former municipalities of the Netherlands category_link = "no-longer-existing [[municipality|municipalities]]", bare_category_breadcrumb = "municipalities", bare_category_parent = "former political divisions", }, ["FORMER municipality"] = { -- For categorizing former municipalities of the Netherlands link = false, fallback = "FORMER subpolity", }, ["FORMER natural feature"] = { link = false, class = "natural feature", default = {"Former natural features"}, }, ["former natural features!"] = { category_link = "natural features such as [[lake]]s, [[river]]s and [[island]]s that no longer exist", bare_category_breadcrumb = "natural features", bare_category_parent = "former places", }, ["FORMER non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "FORMER settlement", }, ["former places!"] = { category_link = "[[place]]s of all sorts that no longer exist", bare_category_breadcrumb = "former", bare_category_parent = "places", }, ["former political divisions!"] = { category_link = "[[political]] [[division]]s (states, provinces, counties, etc.) that no longer exist", bare_category_breadcrumb = "political divisions", bare_category_parent = "former places", }, ["former polities!"] = { category_link = "[[polity|polities]] (countries, kingdoms, empires, etc.) that no longer exist", bare_category_breadcrumb = "polities", bare_category_parent = "former places", }, ["FORMER polity"] = { link = false, class = "polity", default = {"Former polities"}, }, ["former prefectures!"] = { -- For categorizing former prefectures of China category_link = "no-longer-existing [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "former political divisions", }, ["FORMER prefecture"] = { -- For categorizing former prefectures of China link = false, fallback = "FORMER subpolity", }, ["former provinces!"] = { -- For categorizing former provinces of China, etc. category_link = "no-longer-existing [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "former political divisions", }, ["FORMER province"] = { -- For categorizing ancient/historical/former provinces of the Roman Empire link = false, fallback = "FORMER subpolity", }, ["former region"] = { -- A former region is considered a former political division, but not a 'historical/traditional/etc.' region. link = "separately", preposition = "của", inherently_former = {"FORMER"}, class = "subpolity", }, ["FORMER settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"Former settlements"}, }, ["former settlements!"] = { category_link = "[[city|cities]], [[town]]s and [[village]]s that no longer exist or have been merged or reclassified", bare_category_breadcrumb = "settlements", bare_category_parent = "former political divisions", }, ["FORMER subpolity"] = { link = false, preposition = "của", class = "subpolity", default = {"Former political divisions"}, }, ---------------------------------------------------------------------------------------------- -- form-of categories -- ---------------------------------------------------------------------------------------------- ---------- Abbreviations ---------- ["abbreviations of counties!"] = { -- For categorizing abbreviations of counties of e.g. England full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[county|counties]]", bare_category_breadcrumb = "counties", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[country|countries]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "abbreviations of places", }, ["abbreviations of departments!"] = { -- For categorizing abbreviations of departments of e.g. France full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[department]]s", bare_category_breadcrumb = "departments", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of districts!"] = { -- For categorizing abbreviations of districts of e.g. ??? full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of divisions!"] = { -- For categorizing abbreviations of divisions of e.g. Bangladesh full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[division]]s", bare_category_breadcrumb = "divisions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of former countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "abbreviations of former places", }, ["abbreviations of former places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "abbreviations", bare_category_parent = "former places", addl_bare_category_parents = {{name = "abbreviations of places", sort = "former"}}, }, ["abbreviations of places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "abbreviations", bare_category_parent = "places", }, ["abbreviations of political divisions!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[political]] [[division]]s", bare_category_breadcrumb = "political divisions", bare_category_parent = "abbreviations of places", }, ["abbreviations of prefectures!"] = { -- For categorizing abbreviations of prefectures of e.g. Japan full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces!"] = { -- For categorizing abbreviations of provinces of e.g. Canada full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s and [[territory|territories]]", bare_category_breadcrumb = "provinces and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of regions!"] = { -- For categorizing abbreviations of regions of e.g. Italy full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[administrative region]]s", bare_category_breadcrumb = "regions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states!"] = { -- For categorizing abbreviations of states of e.g. the United States full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[territory|territories]]", bare_category_breadcrumb = "states and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and union territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[union territory|union territories]]", bare_category_breadcrumb = "states and union territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[territory|territories]]", bare_category_breadcrumb = "territories", bare_category_parent = "abbreviations of political divisions", }, ["ABBREVIATION_OF country"] = { link = false, default = {"Abbreviations of countries"}, }, ["ABBREVIATION_OF county"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF department"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF district"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF division"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF FORMER country"] = { link = false, default = {"Abbreviations of former countries"}, }, ["ABBREVIATION_OF FORMER place"] = { link = false, default = {"Abbreviations of former places"}, }, ["ABBREVIATION_OF place"] = { link = false, default = {"Abbreviations of places"}, }, ["ABBREVIATION_OF prefecture"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF province"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF region"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF state"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF subpolity"] = { link = false, default = {"Abbreviations of political divisions"}, }, ["ABBREVIATION_OF territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF union territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ---------- Archaic forms ---------- ["archaic forms of places!"] = { full_category_link = "{{glossary|archaic}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "archaic forms", bare_category_parent = "places", }, ["ARCHAIC_FORM_OF place"] = { link = false, default = {"Archaic forms of places"}, }, ---------- Clippings ---------- ["clippings of places!"] = { full_category_link = "{{glossary|clipping}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "clippings", bare_category_parent = "places", }, ["CLIPPING_OF place"] = { link = false, default = {"Clippings of places"}, }, ---------- Dated forms ---------- ["dated forms of places!"] = { full_category_link = "{{glossary|dated}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "dated forms", bare_category_parent = "places", }, ["DATED_FORM_OF place"] = { link = false, default = {"Dated forms of places"}, }, ---------- Derogatory names ---------- ["derogatory names for cities!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[city|cities]]", bare_category_breadcrumb = "cities", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["derogatory names for continents!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for continents"}, }, ["derogatory names for countries!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[country|countries]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for countries"}, }, ["derogatory names for places!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[place]]s", bare_category_breadcrumb = "derogatory names", bare_category_parent = "nicknames for places", }, ["derogatory names for states!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for states"}, }, ["DEROGATORY_NAME_FOR capital"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR city"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR continent"] = { link = false, default = {"Derogatory names for continents"}, }, ["DEROGATORY_NAME_FOR country"] = { link = false, default = {"Derogatory names for countries"}, }, ["DEROGATORY_NAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "thành phố" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR place"] = { link = false, default = {"Derogatory names for places"}, }, ["DEROGATORY_NAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "thành phố" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR state"] = { link = false, default = {"Derogatory names for states"}, }, ["DEROGATORY_NAME_FOR town"] = { link = false, default = {"Derogatory names for cities"}, }, ---------- Ellipses ---------- ["ellipses of places!"] = { full_category_link = "{{glossary|ellipsis|ellipses}} of [[name]]s of [[place]]s", bare_category_breadcrumb = "ellipses", bare_category_parent = "places", }, ["ELLIPSIS_OF place"] = { link = false, default = {"Ellipses of places"}, }, ---------- Former long-form names ---------- ["former long-form names of countries!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "former long-form names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "long-form"}}, }, ["former long-form names of places!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form", bare_category_parent = "former names of places", }, ["FORMER_LONG_FORM_OF country"] = { link = false, default = {"Former long-form names of countries"}, }, ["FORMER_LONG_FORM_OF place"] = { link = false, default = {"Former long-form names of places"}, }, ---------- Former names ---------- ["former names of capitals!"] = { full_category_link = "[[former]] [[name]]s of [[capital city|capital cities]] that generally still exist but under a different name", bare_category_breadcrumb = "capitals", bare_category_parent = "former names of settlements", }, ["former names of countries!"] = { full_category_link = "[[former]] [[name]]s of [[country|countries]] that generally still exist but under a different name", bare_category_breadcrumb = "quốc gia", bare_category_parent = "former names of places", }, ["former names of places!"] = { full_category_link = "[[former]] [[name]]s of [[place]]s that generally still exist but under a different name", bare_category_breadcrumb = "former names", bare_category_parent = "places", }, ["former names of political divisions!"] = { full_category_link = "[[former]] [[name]]s of [[political]] [[division]]s (states, provinces, counties, etc.) that generally still exist but under a different name", bare_category_breadcrumb = "political divisions", bare_category_parent = "former names of places", }, ["former names of polities!"] = { full_category_link = "[[former]] [[name]]s of [[polity|polities]] (e.g. [[country|countries]]) that generally still exist but under a different name", bare_category_breadcrumb = "polities", bare_category_parent = "former names of places", }, ["former names of settlements!"] = { full_category_link = "[[former]] [[name]]s of [[city|cities]], [[town]]s, [[village]]s, etc. that generally still exist but under a different name", bare_category_breadcrumb = "settlements", bare_category_parent = "former names of political divisions", }, ["FORMER_NAME_OF capital"] = { link = false, default = {"Former names of capitals"}, }, ["FORMER_NAME_OF country"] = { link = false, default = {"Former names of countries"}, }, ["FORMER_NAME_OF place"] = { link = false, default = {"Former names of places"}, }, ["FORMER_NAME_OF polity"] = { link = false, default = {"Former names of polities"}, }, ["FORMER_NAME_OF region"] = { link = false, fallback = "FORMER_NAME_OF subpolity", }, ["FORMER_NAME_OF settlement"] = { link = false, default = {"Former names of settlements"}, }, ["FORMER_NAME_OF subpolity"] = { link = false, default = {"Former names of political divisions"}, }, ---------- Former nicknames ---------- ["former nicknames for cities!"] = { full_category_link = "no-longer-used [[nickname]]s for [[city|cities]], e.g. the [[Eternal City]] for [[Kyoto]] during the {{w|Heian period}} ({{circa2|800–1100|short=yes}} {{AD}})", bare_category_breadcrumb = "cities", bare_category_parent = "former nicknames for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["former nicknames for places!"] = { full_category_link = "no-longer-used [[nickname]]s for [[place]]s", bare_category_breadcrumb = "former", bare_category_parent = "nicknames for places", addl_bare_category_parents = {{name = "former names of places", sort = "nicknames"}}, }, ["FORMER_NICKNAME_FOR capital"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR city"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "thành phố" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR place"] = { link = false, default = {"Former nicknames for places"}, }, ["FORMER_NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "thành phố" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR town"] = { link = false, default = {"Former nicknames for cities"}, }, ---------- Former official names ---------- ["former official names of countries!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "former official names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "official"}}, }, ["former official names of places!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "former names of places", }, ["FORMER_OFFICIAL_NAME_OF country"] = { link = false, default = {"Former official names of countries"}, }, ["FORMER_OFFICIAL_NAME_OF place"] = { link = false, default = {"Former official names of places"}, }, ---------- Long-form names ---------- ["long-form names of countries!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "long-form names of places", }, ["long-form names of places!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form names", bare_category_parent = "places", }, ["LONG_FORM_OF country"] = { link = false, default = {"Long-form names of countries"}, }, ["LONG_FORM_OF place"] = { link = false, default = {"Long-form names of places"}, }, ---------- Nicknames ---------- ["nicknames for cities!"] = { full_category_link = "[[nickname]]s for [[city|cities]], e.g. the [[Big Apple]] for [[New York City]]", bare_category_breadcrumb = "cities", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"cities"}, }, ["nicknames for continents!"] = { full_category_link = "[[nickname]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"continents"}, }, ["nicknames for countries!"] = { full_category_link = "[[nickname]]s for [[country|countries]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"quốc gia"}, }, ["nicknames for places!"] = { full_category_link = "[[nickname]]s for [[place]]s", bare_category_breadcrumb = "places", bare_category_parent = "nicknames", addl_bare_category_parents = {"places"}, }, ["nicknames for states!"] = { -- For categorizing nicknames for states of e.g. the United States full_category_link = "[[nicknames]] for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"states"}, }, ["NICKNAME_FOR capital"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR city"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR continent"] = { link = false, default = {"Nicknames for continents"}, }, ["NICKNAME_FOR country"] = { link = false, default = {"Nicknames for countries"}, }, ["NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "thành phố" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR place"] = { link = false, default = {"Nicknames for places"}, }, ["NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "thành phố" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR state"] = { link = false, default = {"Nicknames for states"}, }, ["NICKNAME_FOR town"] = { link = false, default = {"Nicknames for cities"}, }, ---------- Obsolete forms ---------- ["obsolete forms of places!"] = { full_category_link = "{{glossary|obsolete}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "obsolete forms", bare_category_parent = "places", }, ["OBSOLETE_FORM_OF place"] = { link = false, default = {"Obsolete forms of places"}, }, ---------- Official names ---------- ["official names of countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "official names of places", }, ["official names of former countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "official names of former places", }, ["official names of former places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "official names", bare_category_parent = "former places", addl_bare_category_parents = {{name = "official names of places", sort = "former"}}, }, ["official names of places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official names", bare_category_parent = "places", }, ["OFFICIAL_NAME_OF country"] = { link = false, default = {"Official names of countries"}, }, ["OFFICIAL_NAME_OF FORMER country"] = { link = false, default = {"Official names of former countries"}, }, ["OFFICIAL_NAME_OF FORMER place"] = { link = false, default = {"Official names of former places"}, }, ["OFFICIAL_NAME_OF place"] = { link = false, default = {"Official names of places"}, }, ---------- Official nicknames ---------- ["official nicknames for places!"] = { full_category_link = "[[official]] [[nickname]]s for [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for places", }, ["official nicknames for states!"] = { -- For categorizing official nicknames for states of e.g. the United States full_category_link = "[[official]] [[nicknames]] for [[state]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for states", addl_bare_category_parents = {"states"}, }, ["OFFICIAL_NICKNAME_FOR place"] = { link = false, default = {"Official nicknames for places"}, }, ["OFFICIAL_NICKNAME_FOR state"] = { link = false, default = {"Official nicknames for states"}, }, } export.plural_placetype_to_singular = {} for sg_placetype, spec in pairs(export.placetype_data) do if spec.plural then export.plural_placetype_to_singular[spec.plural] = sg_placetype end end return export n3wt0jka1rk2fuspbky2zd73mt0oqmw 2351326 2351152 2026-05-08T07:16:40Z Hiyuune 50834 2351326 Scribunto text/plain local export = {} export.force_cat = false -- set to true for testing local m_locations = require("Module:place/locations") local m_links = require("Module:links") local m_table = require("Module:table") local m_strutils = require("Module:string utilities") local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" local dump = mw.dumpObject local insert = table.insert local concat = table.concat local internal_error = m_locations.internal_error export.internal_error = internal_error local process_error = m_locations.process_error export.process_error = process_error local unpack = unpack or table.unpack -- Lua 5.2 compatibility local ucfirst = m_strutils.ucfirst local ulower = m_strutils.lower local rmatch = m_strutils.match local split = m_strutils.split --[==[ intro: This module contains placetype data used by [[Module:place]] and {{tl|place}}, along with a significant amount of code to work with both placetypes and locations, as well as some placename-related info (FIXME: Consider moving it to [[Module:place/locations]]). See also [[Module:place/locations]], which has definitions of all known locations. You must currently load this module using {{cd|require()}}, not using {{cd|mw.loadData()}}. In particular, it contains two fundamental and tricky functions: # `get_placetype_equivs`, which finds the equivalent placetypes to look under in order to find a given property, and in the process correctly handles placetypes with qualifiers (including qualifiers that act similar to "type-raising" operators in that they do something non-trivial to the placetype to their right) as well as form-of directives and fallbacks. # `find_matching_holonym_location`, which looks up a holonym to find a matching known location, but in the process checks holonyms to the right to make sure there isn't a clash between the user-specified containing holonyms and the containers of the known location being considered. This is done to prevent overcategorizing when either there are two known locations with the same name (e.g. Birmingham in England and Birmingham, Alabama in the US), or more generally two locations with the same name, one of which is a known location but where the other is not (e.g. we're processing non-known-location Mérida, Spain and don't want it categorized like known location Mérida, Yucatán, Mexico). Both of these functions are invoked repeatedly, and probably are invoked several times on the same inputs and as a result are candidates for memoization to speed up the operation of {{tl|place}}. ]==] ------------------------------------------------------------------------------------------ -- Basic utilities -- ------------------------------------------------------------------------------------------ --[==[ Return true if `force_cat` is set either in this module or in [[Module:place/locations]]. ]==] function export.get_force_cat() return export.force_cat or m_locations.force_cat end -- Add the page to a tracking "category". To see the pages in the "category", -- go to [[Wiktionary:Tracking/place/PAGE]] and click on "What links here". local function track(page) require(debug_track_module)("place/" .. page) return true end function export.remove_links_and_html(text) text = m_links.remove_links(text) return text:gsub("<.->", "") end --[==[ Return the singular version of a maybe-plural placetype, or nil if not plural. This correctly handles placetypes with irregular plurals such as `kibbutzim` plural of `kibbutz` by looking up in a table constructed from the `plural` values specified in `placetype_data`. If a special plural value is not found, the regular singularization algorithm in [[Module:en-utilities]] is invoked, which reverses the y -> ies change after vowels and the 'es' addition after sh/ch/x, and otherwise just subtracts a final 's' (which will incorrectly generate 'passe' for plural 'passes'; FIXME: consider changing this for words ending in '-sses'). If the generated singular is the same as the passed-in value, nil is returned. ]==] function export.maybe_singularize_placetype(placetype) if not placetype then return nil end if export.plural_placetype_to_singular[placetype] then return export.plural_placetype_to_singular[placetype] end local retval = require(en_utilities_module).singularize(placetype) if retval == placetype then return nil end return retval end -- Return the correct plural of a placetype, and (if `do_ucfirst` is given) make the first letter uppercase. We first -- look up the plural in `placetype_data`, falling back to pluralize() in [[Module:en-utilities]], which is almost -- always correct. function export.pluralize_placetype(placetype, do_ucfirst) local ptdata = export.placetype_data[placetype] if ptdata and ptdata.plural then placetype = ptdata else placetype = placetype end if do_ucfirst then return ucfirst(placetype) else return placetype end end --[==[ Get the data associated with a placetype, which may be in its singular or plural form. If `from_category` is specified, we also look for category-only placetypes (generally plural) followed by `!`. Return three values: (a) the placetype under which the data can be looked up (i.e. in its singular form if the passed-in `placetype` is plural and did not match a category-only placetype followed by `!`); (b) the placetype data structure; (c) the type of `placetype` match that occurred, one of `"direct"` if the canonical placetype is the same as the passed-in `placetype` and also the same as the key under which `ptdata` was looked up, or `"direct-category"` if the `ptdata` was looked up under a key formed from the passed-in `placetype` by adding `!`, or `"plural"` if the `ptdata` was looked up under the singularized version of the plural passed-in `placetype`. ]==] function export.get_placetype_data(placetype, from_category) local ptdata = export.placetype_data[placetype] if ptdata then return placetype, ptdata, "direct" end if from_category then ptdata = export.placetype_data[placetype .. "!"] if ptdata then return placetype .. "!", ptdata, "direct-category" end end local sg_placetype = export.maybe_singularize_placetype(placetype) if sg_placetype then ptdata = export.placetype_data[sg_placetype] if ptdata then return sg_placetype, ptdata, "plural" end end return nil end --[==[ Check for special pseudo-placetypes that should be ignored for categorization purposes. ]==] function export.placetype_is_ignorable(placetype) return placetype == "and" or placetype == "or" or placetype:find("^%(") end function export.resolve_placetype_aliases(placetype) return export.placetype_aliases[placetype] or placetype end --[==[ Return a property from `placetype_data` for a given placetype. If the placetype isn't found in `placetype_data`, or the key isn't found in the placetype's entry in `placetype_data`, return nil. ]==] function export.get_placetype_prop(placetype, key) -- Usually we are called on equivalent placetypes returned from `get_placetype_equivs`, in which case placetype -- aliases have been resolved, but sometimes not, e.g. when fetching the indefinite article in -- get_placetype_article(). `resolve_placetype_aliases` is just a simple lookup and it doesn't hurt to do it twice. placetype = export.resolve_placetype_aliases(placetype) if export.placetype_data[placetype] then return export.placetype_data[placetype][key] else return nil end end --[==[ Given a placetype, split the placetype into one or more potential ''splits'', each consisting of a three-element list { {``prev_qualifiers``, ``this_qualifier``, ``reduced_placetype``}}, i.e. # the concatenation of zero or more previously-recognized qualifiers on the left, normally canonicalized (if there are zero such qualifiers, the value will be nil); # a single recognized qualifier, normally canonicalized (if there is no qualifier, the value will be nil); # the "reduced placetype" on the right. Splitting between the qualifier in (2) and the reduced placetype in (3) happens at each space character, proceeding from left to right, and stops if a qualifier isn't recognized. All placetypes are canonicalized by checking for aliases in `placetype_aliases`, but no other checks are made as to whether the reduced placetype is recognized. Canonicalization of qualifiers does not happen if `no_canon_qualifiers` is specified. For example, given the placetype `"small beachside unincorporated community"`, the return value will be { { {nil, nil, "small beachside unincorporated community"}, {nil, "small", "beachside unincorporated community"}, {"small", "[[beachfront]]", "unincorporated community"}, {"small [[beachfront]]", "[[unincorporated]]", "community"}, }} Here, `"beachside"` is canonicalized to `"[[beachfront]]"` and `"unincorporated"` is canonicalized to `"[[unincorporated]]"`, in both cases according to the entry in `placetype_qualifiers`. On the other hand, if given `"small former haunted community"`, the return value will be { { {nil, nil, "small former haunted community"}, {nil, "small", "former haunted community"}, {"small", "former", "haunted community"}, }} because `"small"` and `"former"` but not `"haunted"` are recognized as qualifiers. Finally, if given `"former adr"`, the return value will be { { {nil, nil, "former adr"}, {nil, "former", "administrative region"}, }} because `"adr"` is a recognized placetype alias for `"administrative region"`. ]==] function export.split_qualifiers_from_placetype(placetype, no_canon_qualifiers) local splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} local prev_qualifier = nil while true do local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if canon == nil then break end local new_qualifier = qualifier if type(canon) == "table" then canon = canon.link end if not no_canon_qualifiers and canon ~= false then if canon == true then new_qualifier = "[[" .. qualifier .. "]]" else new_qualifier = canon end end insert(splits, {prev_qualifier, new_qualifier, export.resolve_placetype_aliases(reduced_placetype)}) prev_qualifier = prev_qualifier and prev_qualifier .. " " .. new_qualifier or new_qualifier placetype = reduced_placetype else break end end return splits end --[==[ Given a `placetype` (which may be pluralized), return an ordered list of equivalent placetypes to look under to find the placetype's properties (such as the category or categories to be inserted). The return value is actually an ordered list of objects of the form `{qualifier=``qualifier``, placetype=``equiv_placetype``}` where ``equiv_placetype`` is a placetype whose properties to look up, derived from the passed-in placetype or from a contiguous subsequence of the words in the passed-in placetype (always including the rightmost word in the placetype, i.e. we successively chop off qualifier words from the left and use the remainder to find equivalent placetypes). ``qualifier`` is the remaining words not part of the subsequence used to find ``equiv_placetype``; or nil if all words in the passed-in placetype were used to find ``equiv_placetype``. (FIXME: This qualifier is not currently used anywhere.) Only placetypes for which there is an entry in `placetype_data` are included. The placetype passed in is always checked first, and will form the first entry if it exists in `placetype_data`. '''NOTE:''' This is a tricky function as it implements handling of (a) qualifiers, (b) fallback logic, (c) "type-raising" qualifiers such as `former`/`ancient`/etc. as well as `fictional` and `mythological`, and (d) form-of directives, which act somewhat similarly to `former`, and allows interaction between more than one of these simultaneously (e.g. official names of former places, which have their own categorization). If {{tl|place}} gets too slow, one potential speedup is to memoize the results of this function, as it appears to be getting called more than once on the same inputs. Another similar potential speedup is to memoize the results of `iterate_matching_holonym_location()`. For example, given the placetype `left tributary`, the following placetype/qualifier combinations are checked in turn: ``` {qualifier = nil, placetype="left tributary"} {qualifier = "left", placetype="tributary"} {qualifier = "left", placetype="river"} ``` and the return value will be { { {qualifier = "left", placetype="tributary"}, {qualifier = "left", placetype="river"}, }} The algorithm first enters the placetype itself into the list, then checks for `left tributary` as a recognized placetype in `placetype_data` and doesn't find it, so it doesn't enter it into the returned list (if it found it, it would add it as well as any fallbacks directly after it). It then splits off the recognized qualifier `left` to form the ''reduced placetype'' `tributary`, which is entered into the list because it is found in `placetype_data`. Then, because it has a fallback `river`, which exists in `placetype_data`, the fallback is entered next. Another example is `small rural fraziones` (where a ''frazione'' is type of subdivision of a ''comune'' or municipality, often specifically an outlying hamlet). the placetype/qualifier combinations checked are: ``` {qualifier = nil, placetype="small rural fraziones"} {qualifier = nil, placetype="small rural frazione"} {qualifier = "small", placetype="rural fraziones"} {qualifier = "small", placetype="rural frazione"} {qualifier = "small [[rural]]", placetype="fraziones"} {qualifier = "small [[rural]]", placetype="frazione"} {qualifier = "small [[rural]]", placetype="hamlet"} {qualifier = "small [[rural]]", placetype="village"} ``` The return value ends up as {qualifier = "small [[rural]]", placetype="frazione"}, {qualifier = "small [[rural]]", placetype="hamlet"}, {qualifier = "small [[rural]]", placetype="village"}, }} Here, because the result of singularizing `fraziones` returns a different value from the placetype itself, that singularized value is checked after the original plural value. Also, in the process of splitting off qualifiers, they are canonicalized if the entry in `placetype_qualifiers` says to do so; in this case, links are placed around `rural`. Finally, `frazione` has `hamlet` as its fallback, which in turn has `village` as its fallback, so both fallbacks end up being returned. `no_fallback`, if set, disables returning equivalent placetypes based on the `fallback` setting for a placetype. This is used in the first of two loops in find_placetype_cat_specs() in [[Module:place]] to prefer exact matches for placetypes such as barangays with later holonyms to matches based on a fallback such as `neighborhood` with an earlier holonym. See the comment in that function in [[Module:place]] for a more detailed explanation of why this is needed. Only the placetype itself, and any reduced placetypes created by chopping off recognized qualifiers at the beginning, are returned; but we do not return reduced placetypes if a containing placetype exists in `placetype_data`. (For example, `"overseas territory"` has a fallback `"dependent territory"`, and `"overseas"` is also a recognized qualifier. When `no_fallback` is in place, without the above proviso, we would return `"overseas territory"` followed by `"territory"` with the incorrect effect of classifying an `"overseas territory"` of the United Kingdom such as `"Gibraltar"` under [[:Category:Territories of the United Kingdom]] instead of [[:Category:Dependent territories of the United Kingdom]].) As an exception, if `historical`, `ancient`, `former` or the like are found, they proceed ignoring `no_fallback`, because it seems tricky to handle them correctly in the presence of `no_fallback`, and historical/former placetypes rarely occur with exact match category specs anyway. `no_split_qualifiers` prevents splitting off recognized qualifiers and returning the remainder of the placetype as an equivalent placetype. Only the passed-in placetype, and any fallbacks, will be returned. This is used in [[Module:category tree/topic cat/data/Places]] when looking up placetypes found in categories. Such placetypes won't have qualifiers and so it doesn't make sense to try and look for them. `from_category`, if set, causes category-only placetypes (those ending in `!`) to also be checked. `form_of_directive`, if set, causes the specified form-of directive (e.g. `FORMER_NAME_OF`) to be prepended to checked placetypes, their directive-specific type (e.g. `FORMER_NAME_OF_type`), and their classes (`class`) to get the appropriate placetypes to check for form-of-directive categories. It falls back to the prepended generic `place` as a placetype, e.g. `FORMER_NAME_OF place`, if nothing else matches. `no_check_for_inherently_former` is used internally to prevent an infinite loop when checking for `inherently_former`. `register_former_as_non_former` is a major hack used in `get_bare_categories` to deal with the mismatch between e.g. known location `Yugoslavia` declaring itself a `country` but definitions of it declaring it a `former country`. It causes the non-former version of the specified placetype to be included in the returned equivalents along with the former placetypes. [FIXME: This should apply only to the entries in `former_countries` but it's tricky to do that now; fix this in the known-location refactor. -- The known-location refactor is already done but we haven't yet fixed this.] ]==] function export.get_placetype_equivs(placetype, props) local no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former local form_of_directive if props then no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former = props.no_fallback, props.no_split_qualifiers, props.no_check_for_inherently_former, props.from_category, props.register_former_as_non_former form_of_directive = props.form_of_directive end local equivs = {} -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. `qualifier` is -- the preceding qualifier to insert into `equivs` along with the placetype (see comment at top of function). If -- `from_category` is given, we also check for a category-specific entry consisting of the placetype followed by -- `!`, and in all cases we also check to see if `placetype` is plural, and if so, insert the singularized version -- along with its fallbacks (if any) in `placetype_data`. `form_of_prefix` is a form-of prefix such as -- `OFFICIAL_NAME_OF`. If specified, we check the fallbacks of `placetype` without the prefix but then insert into -- `equivs` the prefixed placetype. This way, if the user says e.g. {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}}, -- we will correctly categorize into [[:Category:Official names of countries]], rather than only trying to look up -- `OFFICIAL_NAME_OF island country` and failing, falling back ultimately to [[:Category:Official names of places]]. local function insert_placetype_and_fallbacks(qualifier, placetype, form_of_prefix) local function insert_equiv(pt) if form_of_prefix then -- Let's say the user says {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}} and we have -- no entry for `OFFICIAL_NAME_OF island country` but we do for `OFFICIAL_NAME_OF country` (which we end -- up processing because `island country` falls back to `country`), and that entry in turn is defined -- using a fallback. We have to insert that fallback-of-fallback, and the easiest/cleanest way of -- handling this is by calling ourselves recursively. insert_placetype_and_fallbacks(qualifier, form_of_prefix .. " " .. pt) else insert(equivs, {qualifier=qualifier, placetype=pt}) end end -- Insert the placetype, along with any fallbacks. local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if ptdata then insert_equiv(canon_placetype) if no_fallback then return end local first_placetype = #equivs + 1 local prev_placetype = nil while true do local pt_value = export.placetype_data[canon_placetype] if not pt_value then internal_error("Fallback value %s specified for placetype %s but is not in `placetype_data`", canon_placetype, prev_placetype) end if pt_value.fallback then insert_equiv(pt_value.fallback) local last_placetype = #equivs if last_placetype - first_placetype >= 10 then local fallback_loop = {} for i = first_placetype, last_placetype do insert(fallback_loop, equivs[i].placetype) end internal_error("Apparent loop in fallback chain: %s", table.concat(fallback_loop, " -> ")) end prev_placetype = canon_placetype canon_placetype = pt_value.fallback else break end end end end -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. This is a -- wrapper around the more basic `insert_placetype_and_fallbacks()` which handles form-of directives. If there is no -- form-of directive, this function directly calls `insert_placetype_and_fallbacks()`. We do things this way so that -- form-of directives correctly combine with `former`-type qualifiers. Note that we also have special backups for -- form-of directives that check `DIRECTIVE place` (and before that, `DIRECTIVE FORMER/ANCIENT place` is there's a -- `former`-type directive); these backups live outside this function because we want them done once, late, rather -- than in each invocation of `process_and_insert_placetype()`. local function process_and_insert_placetype(qualifier, reduced_placetype) if form_of_directive then -- First check for e.g. `OFFICIAL_NAME_OF island country` and its fallbacks; then we look for fallbacks of -- `island country` and check e.g. `OFFICIAL_NAME_OF country` and its fallbacks. All of this is handled by -- `insert_placetype_and_fallbacks()` with appropriate parameters. After that, check the general class of -- the directive, e.g. `subpolity` if something like `district` is given. (Eventually, we check for -- `OFFICIAL_NAME_OF place` as a backup, but this happens at the end outside the loop over qualifiers.) insert_placetype_and_fallbacks(qualifier, reduced_placetype, form_of_directive) if not no_fallback then local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype) local directive_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, form_of_directive .. "_type") or export.get_placetype_prop(pt, "class") end ) if not directive_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s in conjunction with form-of directive %s, placetype data " .. 'located but directive-specific type property %s missing, and so is "class"; ' .. "placetypes searched are %s", reduced_placetype, form_of_directive, form_of_directive .. "_type", reduced_placetype_equivs) else -- This should be allowed, as we allow unrecognized placetypes in general. end elseif directive_type ~= "!" then insert_placetype_and_fallbacks(qualifier, directive_type, form_of_directive) end end else insert_placetype_and_fallbacks(qualifier, reduced_placetype) end end -- Successively split off recognized qualifiers and loop over successively greater sets of qualifiers from the left -- (unless `no_split_qualifiers` is specified, in which case we don't check for qualifiers). local splits if no_split_qualifiers then splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} else splits = export.split_qualifiers_from_placetype(placetype) end for _, split in ipairs(splits) do local prev_qualifier, this_qualifier, reduced_placetype = unpack(split, 1, 3) -- If a special "former" qualifier like `former` or `historical` isn't present, and -- `no_check_for_inherently_former` is not given (this flag is used to avoid infinite loops), check for -- "inherently former" placetypes like `satrapy` and `treaty port` that always refer to no-longer-existing -- placetypes, and handle accordingly. local unlinked_this_qualifier if this_qualifier and this_qualifier:find("%[") then unlinked_this_qualifier = export.remove_links_and_html(this_qualifier) else unlinked_this_qualifier = this_qualifier end local former_qualifiers = this_qualifier and export.former_qualifiers[unlinked_this_qualifier] or nil if not former_qualifiers and not no_check_for_inherently_former then former_qualifiers = export.get_equiv_placetype_prop(reduced_placetype, function(pt) return export.get_placetype_prop(pt, "inherently_former") end, {no_check_for_inherently_former = true}) end -- If a special "former" qualifier like `former` or `historical` is present, map it to the appropriate internal -- qualifiers (`ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified -- qualifiers), fetch the `former_type` property, and treat the placetype as if a concatenation of the mapped -- qualifier(s) and the value of `former_type`. For example, if `medieval village` is given, we map `medieval` -- to `ANCIENT` and `FORMER`, and `village` to its `former_type` of `settlement`, and enter the placetypes -- `ANCIENT settlement` and `FORMER settlement` (in that order) into `equivs`. If the placetype following the -- "former" qualifier is recognized in `placetype_data` but has no `former_type` and no fallback with a -- `former_type` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like -- `former greenhouse` is specified and we don't have an entry for `greenhouse`), just track the occurrence and -- don't enter anything into `equivs`. if former_qualifiers then -- FIXME: Should we respect `no_fallback` here? My instinct says no. local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype, { no_check_for_inherently_former = true }) local former_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, "former_type") or export.get_placetype_prop(pt, "class") end ) if not former_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s, placetype data located but `former_type` missing; " .. "placetypes searched are %s", reduced_placetype, reduced_placetype_equivs) else -- Enable error when we've verified there aren't any examples. track("bad-former-placetype") track("bad-former-placetype/" .. reduced_placetype) --process_error("For placetype '%s', unrecognized placetype following 'former'-type " .. -- "qualifier; searched placetype(s) %s", reduced_placetype, dump(reduced_placetype_equivs)) end elseif former_type ~= "!" then -- First check directly for `ANCIENT/FORMER` + the original following placetype. This makes it possible -- for (e.g.) former provinces of the Roman empire to be categorized specially. for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. reduced_placetype) end for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. former_type) end -- HACK! See explanation above for `register_former_as_non_former`. if register_former_as_non_former then process_and_insert_placetype(prev_qualifier, reduced_placetype) end -- If we're processing a form-of directive, after doing everything else we do -- `DIRECTIVE ANCIENT/FORMER place` e.g. `OFFICIAL_NAME_OF FORMER place` as a backup. if form_of_directive and not no_fallback then for _, former_qualifier in ipairs(former_qualifiers) do insert_placetype_and_fallbacks(prev_qualifier, form_of_directive .. " " .. former_qualifier .. " place") end end -- Don't continue processing equivs. The reason is probably the same as the `break` below for -- qualifier_to_placetype_equivs[]; categories for `former BLAH` are set using `default`, and -- non-former equivs will otherwise take precedence. break end end -- Then see if the rightmost split-off qualifier is in qualifier_to_placetype_equivs -- (e.g. 'fictional *' -> 'fictional location'). If so, add the mapping. if this_qualifier and export.qualifier_to_placetype_equivs[unlinked_this_qualifier] then insert(equivs, { qualifier=prev_qualifier, placetype=export.qualifier_to_placetype_equivs[unlinked_this_qualifier] }) -- Don't continue processing equivs; otherwise, if we specify 'mythological city', even though the -- equivalent entry for 'mythological location' gets inserted ahead of the entry for 'city', the -- latter ends up generating the category because the category for 'mythological location' is set as -- the default value, which is used only when no non-default category can be found. break end -- Finally, join the rightmost split-off qualifier to the previously split-off qualifiers to form a combined -- qualifier, and add it along with reduced_placetype and any mapping in placetype_data for reduced_placetype. -- NOTE: The first time through this loop, both `prev_qualifier` and `this_qualifier` are nil, and this inserts -- the full placetype into `equivs`. local qualifier = prev_qualifier and prev_qualifier .. " " .. this_qualifier or this_qualifier process_and_insert_placetype(qualifier, reduced_placetype) -- If `no_fallback` and there's an entry in `placetype_data` for this placetype, don't include any reduced -- placetypes to avoid the "overseas territory treated as a territory" issue describe above. if no_fallback then local canon_placetype, ptdata, ptmatch = export.get_placetype_data(reduced_placetype, from_category) if canon_placetype then break end end end -- If we're processing a form-of directive, after doing everything else we do `DIRECTIVE place` e.g. -- `OFFICIAL_NAME_OF place` as a backup; but only if either the placetype as a whole is recognized or the placetype -- begins with a recognized qualifier. This latter check is to avoid categorizing into e.g. -- [[Category:en:Former names of places]] in an invocation like -- {{place|en|@former name of:Democratic Republic of the Congo|country|r/Central Africa|;|used from 1971–1997}}; -- the `used from 1971–1997` gets treated as a placetype and we're called on it. if form_of_directive and not no_fallback and (splits[2] or export.get_placetype_data(placetype, from_category)) then insert_placetype_and_fallbacks(nil, form_of_directive .. " place") end return equivs end function export.get_equiv_placetype_prop_from_equivs(equivs, fun, continue_on_nil_only) for _, equiv in ipairs(equivs) do local retval = fun(equiv.placetype) if continue_on_nil_only and retval ~= nil or not continue_on_nil_only and retval then return retval, equiv end end return nil, nil end --[==[ Given a placetype `placetype` and a function `fun` of one argument, iteratively call the function on equivalent placetypes fetched from `get_placetype_equivs` until the function returns a non-falsy value (i.e. not {nil} or {false}); but if `continue_on_nil_only` is specified, the iterations continue until the function returns non non-{nil} value. FIXME: We should make `continue_on_nil_only` the default; but this requires changing some callers.) When `fun` returns a non-falsy or non-{nil} value, `get_equiv_placetype_prop` returns two values: the value returned by `fun` and the equivalent placetype that triggered the non-falsy (or non-{nil}) return value. If `fun` never returns a non-falsy (or non-{nil}) value, `get_equiv_placetype_prop` returns {nil} for both return values. If `placetype` is passed in as {nil}, the return value is the result of calling `fun` on {nil} (whatever it is) with {nil} for the second return value. ]==] function export.get_equiv_placetype_prop(placetype, fun, props) if not placetype then return fun(nil), nil end return export.get_equiv_placetype_prop_from_equivs(export.get_placetype_equivs(placetype, props), fun, props and props.continue_on_nil_only) end --[==[ Return the article that is used with an entry placetype. We proceed as follows: # See if there is a recognized qualifier at the beginning that specifies an article (including `false` for no article). This takes precedence over anything else, so that e.g. `various capitals` gets no article rather than "`the"`. # Then check the placetype or any equivalent placetype for the `entry_placetype_use_the` property, indicating that `"the"` should be used. # Otherwise we look to see if the placetype itself (not any equivalents, even those involving deleting a qualifier from the beginning) has an entry in `placetype_data` that specifies the indefinite article using `entry_placetype_use_the` (principally for use with placetypes like `union territory`). # Otherwise, we use [[Module:en-utilities]] to apply the standard algorithm to generate `"an"` for words beginning with a vowel and `"a"` otherwise. If `ucfirst` is true, the first letter of the article is made upper-case. ]==] function export.get_placetype_article(placetype, ucfirst) local art local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if type(canon) == "table" then art = canon.article end end if art == false then return art end if art == nil then local placetype_use_the = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "entry_placetype_use_the") end) if placetype_use_the then art = "tên" else art = export.get_placetype_prop(placetype, "entry_placetype_indefinite_article") if not art then art = require(en_utilities_module).get_indefinite_article(placetype) end end end if ucfirst then art = m_strutils.ucfirst(art) end return art end --[==[ Return the preposition that should be used after `placetype` when occurring as an entry placetype or in categories (e.g. `city >in< France` but `country >of< South America`). The preposition defaults to `"của"` if not specified. ]==] function export.get_placetype_entry_preposition(placetype) local pt_prep = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "preposition") end ) return pt_prep or "của" end --[==[ Given a place desc (see top of file) and a holonym object (see top of file), add a key/value into the place desc's `holonyms_by_placetype` field corresponding to the placetype and placename of the holonym. For example, corresponding to the holonym "c/Italy", a key with the list value {"Italy"} will be added to the place desc's `holonyms_by_placetype` field. If there is already a key with that place type, the new placename will be added to the end of the value's list. ]==] function export.key_holonym_into_place_desc(place_desc, holonym) if not holonym.placetype then return end -- Key in equivalent placetypes, so that e.g. `cities/San Francisco` gets keyed under `city`; but don't do -- fallbacks, as it doesn't seem correct for the "do other holonyms of the same placetype" algorithm to do holonyms -- of different types just because they have the same fallback. local equiv_placetypes = export.get_placetype_equivs(holonym.placetype, {no_fallback = true}) local unlinked_placename = holonym.unlinked_placename for _, equiv in ipairs(equiv_placetypes) do local placetype = equiv.placetype if not place_desc.holonyms_by_placetype then place_desc.holonyms_by_placetype = {} end if not place_desc.holonyms_by_placetype[placetype] then place_desc.holonyms_by_placetype[placetype] = {unlinked_placename} else insert(place_desc.holonyms_by_placetype[placetype], unlinked_placename) end end end --[=[ Construct a formatted link from the raw link spec `link` given the canonical singular placetype `sg_placetype`. If the placetype was originally plural, `orig_placetype` should contain this plural value; otherwise it should be nil. This will construct the appropriate type of link that displays as `orig_placetype` (or otherwise `sg_placetype`) but links to whatever the `link` spec specifies (which may be `sg_placetype`, a Wikipedia article, etc.). `ptdata` is the placetype data structure for the placetype, and `from_category` indicates that we are generating the description of a category (otherwise we are generating the display form of an entry placetype). ]=] local function make_placetype_link(link, sg_placetype, orig_placetype, ptdata, from_category, noerror) if not from_category and ptdata.disallow_in_entries then if noerror then return "[not meant to be specified directly, with warning: " .. ptdata.disallow_in_entries .. "]" else process_error("Placetype %s is not meant to be specified directly: " .. ptdata.disallow_in_entries, sg_placetype) end end if link == nil then internal_error("Placetype data present for placetype %s but no link= setting given", sg_placetype) elseif link == true then if orig_placetype then return ("[[%s|%s]]"):format(sg_placetype, orig_placetype) else return ("[[%s]]"):format(sg_placetype) end elseif link == false then process_error("Placetype %s is not meant to be specified directly, but is only for internal use", sg_placetype) elseif link == "w" then return ("[[w:%s|%s]]"):format(sg_placetype, orig_placetype or sg_placetype) elseif link == "separately" then if orig_placetype then local sg_words = split(sg_placetype, " ") local orig_words = split(orig_placetype, " ") if #sg_words ~= #orig_words then internal_error("Can't construct 'separately' link for plural placetype %s as original placetype %s " .. "has different number of words", orig_placetype, sg_placetype) else for i = 1, #sg_words do if sg_words[i] == orig_words[i] then sg_words[i] = ("[[%s]]"):format(sg_words[i]) else sg_words[i] = ("[[%s|%s]]"):format(sg_words[i], orig_words[i]) end end return concat(sg_words, " ") end else return (sg_placetype:gsub("([^ ]+)", "[[%1]]")) end elseif link:find("^%+") then link = link:sub(2) -- discard initial + return ("[[%s|%s]]"):format(link, orig_placetype or sg_placetype) elseif not orig_placetype then return link else return link end end --[==[ Get the display form of a placetype by looking it up in `placetype_data`. If the placetype is recognized, or is the plural of a recognized placetype, the corresponding linked display form is returned (with plural placetypes displaying as plural but linked to the singular form of the placetype). Otherwise, return nil. If we're generating the description of a category, `category_type` should be set to one of `"top-level"` (for top-level categories like [[:Category:Neighborhoods]]), `"noncity"` (for non-city categories like [[:Category:Neighborhoods in Illinois, USA]]) or `"thành phố"` (for city categories like [[:Category:Neighborhoods of Chicago]]). Otherwise, we're generating the description for use in formatting a {{tl|place}} call, and category-only placetypes ending in `!` will be ignored, along with special `category_link*` settings. `return_full` is used along with `category_type` and will preferably return the "full" variant of category link settings, i.e. `full_category_link*`; if they don't exist, the `category_link*` value is prepended with `"names of"`. `noerror` says to not throw an error when encountering entry placetypes that would be disallowed. ]==] function export.get_placetype_display_form(placetype, category_type, return_full, noerror) local from_category = not not category_type local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if canon_placetype then local raw_link local function is_linked_string(str) return type(str) == "string" and str:find("%[%[") end if category_type then local fetched_full local function fetch_maybe_full(prop) local retval = ptdata["full_" .. prop] if retval ~= nil then if return_full then return retval, true else internal_error("Saw full_" .. prop .. "=%s but `return_full` not set, can't handle", retval) end end return ptdata[prop], false end local function maybe_prefix(str) if return_full and not fetched_full then return "names of " .. str else return str end end -- Careful with `false` as possible value. if category_type == "top-level" then raw_link, fetched_full = fetch_maybe_full("category_link_top_level") elseif category_type == "noncity" then raw_link, fetched_full = fetch_maybe_full("category_link_before_noncity") elseif category_type == "thành phố" then raw_link, fetched_full = fetch_maybe_full("category_link_before_city") else internal_error('Unrecognized value for `category_type` %s, should be "top-level", "noncity" or "thành phố"', category_type) end if type(raw_link) == "string" then return maybe_prefix(raw_link), ptdata elseif raw_link ~= nil then return raw_link, ptdata end raw_link, fetched_full = fetch_maybe_full("category_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end if ptmatch == "plural" then raw_link, fetched_full = fetch_maybe_full("plural_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end end if raw_link == nil then raw_link, fetched_full = fetch_maybe_full("link") end if raw_link == false then return raw_link, ptdata end return maybe_prefix(make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror)), ptdata else if ptmatch == "plural" then raw_link = ptdata.plural_link if raw_link == false then process_error("Placetype %s cannot appear plural", placetype) end if is_linked_string(raw_link) then return raw_link, ptdata end end if raw_link == nil then raw_link = ptdata.link end return make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror), ptdata end end return nil end local function resolve_unlinked_placename_display_aliases(placetype, placename) local equiv_placetypes = export.get_placetype_equivs(placetype) for i, equiv in ipairs(equiv_placetypes) do equiv_placetypes[i] = equiv.placetype end local all_display_aliases_found = {} local all_others_found = {} for group, key, spec in m_locations.iterate_matching_location { placetypes = equiv_placetypes, placename = placename, alias_resolution = "display", } do if spec.alias_of and spec.display then insert(all_display_aliases_found, {group, key, spec, spec.display_as_full}) else insert(all_others_found, {group, key, spec}) end end if not all_display_aliases_found[1] then return placename elseif all_display_aliases_found[2] then internal_error("Found multiple matching display aliases for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) elseif all_others_found[1] then internal_error("Found a display alias along with other possible meanings for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) else local group, key, spec, as_full = unpack(all_display_aliases_found[1]) local full, elliptical = m_locations.key_to_placename(group, key) return as_full and full or elliptical end end --[==[ If `placename` of type `placetype` is a display alias, convert it to its canonical form; otherwise, return unchanged. Display aliases transform certain placenames into canonical displayed forms. For example, if any of `country/US`, `country/USA` or `country/United States of America` (or `c/US`, etc.) are given, the result will be displayed as `United States`. '''NOTE''': Display aliases change what is displayed from what the editor wrote in the Wikitext. As a result, they should (a) be non-political in nature, and (b) not involve a change where the word `the` needs to be added or removed. For example, normalizing `US` and `USA` to `United States` for display purposes is OK but normalizing `Burma` to `Myanmar` is not (instead a cat alias should be used) because the terms `Burma` and `Myanmar` have clear political connotations. Similarly, we have a display alias that maps the old name of `Macedonia` as a country (but not a region!) to `North Macedonia`, but `Republic of Macedonia` is mapped to `North Macedonia` only as a cat alias because the two terms differ in their use of `the`. (For example, if we had a display alias mapping `Republic of Macedonia` to `North Macedonia`, the call {{tl|place|en|the <<capital city>> of the <<c/Republic of Macedonia>>}} would wrongly display as `the [[capital city]] of the [[North Macedonia]]`.) Generally, display normalizations tend to involve alternative forms (e.g. abbreviations, ellipses, foreign spellings) where the normalization improves clarity and consistency. ]==] function export.resolve_placename_display_aliases(placetype, placename) -- If the placename is a link, apply the alias inside the link. -- This pattern matches both piped and unpiped links. If the link is not piped, the second capture (linktext) will -- be empty. local link, linktext = rmatch(placename, "^%[%[([^|%[%]]+)|?([^|%[%]]-)%]%]$") if link then if linktext ~= "" then local alias = resolve_unlinked_placename_display_aliases(placetype, linktext) return "[[" .. link .. "|" .. alias .. "]]" else local alias = resolve_unlinked_placename_display_aliases(placetype, link) return "[[" .. alias .. "]]" end else return resolve_unlinked_placename_display_aliases(placetype, placename) end end --[==[ Generate the "prefixed" version of a bare key, i.e. prefix it with `the` if correct for this key. ]==] function export.get_prefixed_key(key, spec) if spec.the then return key else return key end end -- Necessary for use by [[Module:place]]. FIXME: Reorganize the modules so this isn't necessary. export.iterate_matching_location = m_locations.iterate_matching_location --[=[ Iterator that iterates over holonyms in `place_desc`. If `first_holonym_index` is given, start iterating at the specified holonym and stop either when there are no more holonyms or a holonym with modifier `:also` is found. If `first_holonym_index` is nil or omitted, iterate over all holonyms regardless. If `include_raw_text_holonyms` is specified, raw text holonyms (those not of the form `placetype/placename`) are returned as well; they can be identified by the fact that the `placetype` field in the holonym structure is nil. Two values are returned at each iteration, the holonym index and holonym structure, similar to `ipairs()`. ]=] function export.get_holonyms_to_check(place_desc, first_holonym_index, include_raw_text_holonyms) local stop_at_also = not not first_holonym_index return function(place_desc, index) while true do index = index + 1 local this_holonym = place_desc.holonyms[index] -- If we were passed in a starting holonym index, go up to but not including a holonym marked with `:also` -- (continue_cat_loop); the categorization code will then restart the loop at that holonym. That holonym -- will have `:also` marked on it, so make sure not to stop immediately if the first holonym is marked with -- `:also`. if not this_holonym or stop_at_also and index > first_holonym_index and this_holonym.continue_cat_loop then return nil end -- If not placetype, we're processing raw text, which we normally want to skip. if include_raw_text_holonyms or this_holonym.placetype then return index, this_holonym end end end, place_desc, first_holonym_index and first_holonym_index - 1 or 0 end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, iterate over all such known locations, returning for each location the corresponding key, spec and group as well as the trail of ancestral containers. Unlike `iterate_matching_location()`, this specifically checks that there is no mismatch between the location's containers at any level and any of the following holonyms in the {{tl|place}} spec. The fields in `data` are: * `holonym_placetype`: The placetype of the holonym. It can actually be a list of possible placetypes, as with `iterate_matching_location()`. * `holonym_placename`: The placename of the holonym. * `holonym_index`: The index of the holonym among the holonyms in `place_desc`, or nil if the holonym is not among the holonyms in `place_desc`. (If a holonym index is given, we check for container mismatches among the holonyms following the specified index, stopping either when encountering a holonym marked with modifier `:also` or, if none exist, when we run out of holonyms. If no holonym index is given, we check all holonyms for container mismatches.) * `place_desc`: Description of the place; used for the holonyms, to check for container mismatches. Returns four values: the location group, the canonical key by which the location is known, the spec object describing the location and the trail of ancestral containers for the location. The first three values are the same as for `iterate_matching_location`. ]==] function export.iterate_matching_holonym_location(data) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc local matching_location_iterator = m_locations.iterate_matching_location { placetypes = holonym_placetype, placename = holonym_placename, } return function() while true do local group, key, spec = matching_location_iterator() if not group then return nil end local container_trail = {} -- For each level of container, check that there are no mismatches (i.e. other location of the same -- placetype) mentioned. We allow a mismatch at a given level if there's also a match with the container -- at that level. For example, in the case of Kansas City, defined in [[Module:place/locations]] as a city -- in Missouri, if we define it as {{tl|place|city|s/Missouri,Kansas}}, we ignore the mismatching state of -- Kansas because the correct state of Missouri was also mentioned. But imagine we are defining Newark, -- Delaware as {{tl|place|city|s/Delaware|c/US}} and (as is the case) we have an entry for Newark, New -- Jersey in [[Module:place/locations]]. Just because the containing location `US` matches isn't enough, -- because Newark, NJ also has New Jersey as a containing location and there's a mismatch at that level. If -- there are no mismatches at any level we assume we're dealing with the right known location. -- -- If at a given level there are multiple containing locations, we count a match if any holonym matches any -- containing location, and a mismatch only if a holonym exists of the same placetype that doesn't match any -- containing location. local containers_mismatch = false for containers in m_locations.iterate_containers(group, key, spec) do insert(container_trail, containers) local match_at_level = false local mismatch_at_level = false for other_holonym_index, other_holonym in export.get_holonyms_to_check(place_desc, holonym_index and holonym_index + 1 or nil) do local other_source_holonym = other_holonym.augmented_from_holonym if other_source_holonym and other_source_holonym.placetype == holonym_placetype and other_source_holonym.unlinked_placename ~= holonym_placename then -- Ignore holonyms added during the augmentation process for other holonyms of the same -- placetype as the placetype of the holonym we're considering. See comment in -- augment_holonyms_with_container() for why we do this. -- continue; grrr, no 'continue' in Lua else local holonym_matches_at_level = false local holonym_exists_with_same_placetype = false for _, container in ipairs(containers) do if not container.spec.no_check_holonym_mismatch then local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) local placetypes = container.spec.placetype if type(placetypes) ~= "table" then placetypes = {placetypes} end local placetype_equivs = {} for _, pt in ipairs(placetypes) do m_table.extend(placetype_equivs, export.get_placetype_equivs(pt)) end local this_holonym_matches = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype and (other_holonym.unlinked_placename == full_container_placename or other_holonym.unlinked_placename == elliptical_container_placename) end ) if this_holonym_matches then holonym_matches_at_level = true break end local this_holonym_exists_with_same_placetype = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype end ) if this_holonym_exists_with_same_placetype then -- We seem to have a mismatch at this level. But before we decide conclusively that this -- is the case, check to see whether the putative mismatch is an alias and matches when -- we resolve the alias. for oh_group, oh_key, oh_spec, oh_container_trail in export.iterate_matching_holonym_location { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = place_desc, } do local oh_full_placename, oh_elliptical_placename = m_locations.key_to_placename(oh_group, oh_key) if oh_full_placename == full_container_placename or oh_elliptical_placename == elliptical_container_placename then -- Alias matched when resolved. this_holonym_matches = true break end end if this_holonym_matches then -- Alias matched above when resolved. holonym_matches_at_level = true break else -- Not an alias, or doesn't match when resolved. We have a true mismatch. holonym_exists_with_same_placetype = true end end end end if holonym_matches_at_level then match_at_level = true break end if holonym_exists_with_same_placetype then mismatch_at_level = true end end end if not match_at_level and mismatch_at_level then containers_mismatch = true break end end if not containers_mismatch then return group, key, spec, container_trail end end end end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, find and return the corresponding key, spec and group as well as the trail of ancestral containers. This is like `iterate_matching_holonym_location()` but throws an error if more than one location matches. (An example where this would happen is {{tl|place|en|neighborhood|city/Newcastle}}, because there are two known locations named Newcastle. To fix this, specify additional following disambiguating holonyms, e.g. {{tl|place|en|neighborhood|city/Newcastle|s/New South Wales}}. ]==] function export.find_matching_holonym_location(data) local all_found = {} for group, key, spec, container_trail in export.iterate_matching_holonym_location(data) do insert(all_found, {group, key, spec, container_trail}) end if not all_found[1] then return nil elseif all_found[2] then local holonym_placetype = data.holonym_placetype if type(holonym_placetype) == "table" then holonym_placetype = concat(holonym_placetype, ",") end local found_keys = {} for _, found in ipairs(all_found) do local _, key, _, _ = unpack(found) insert(found_keys, key) end error(("Found multiple matching locations for holonym '%s/%s'; specify disambiguating context in the " .. "containing holonyms: %s"):format(holonym_placetype, data.holonym_placename, dump(found_keys))) else return unpack(all_found[1]) end end ------------------------------------------------------------------------------------------ -- Placename and placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: This is a map from aliases to their canonical forms. Any placetypes appearing as keys here will be mapped to their canonical forms in all respects, including the display form. Contrast entries in 'placetype_data' with a fallback, which applies to categorization and other processes but not to display. The most important aliases are for holonym placetypes, particularly those that occur often such as "country", "state", "province" and the like. Particularly long placetypes that mostly occur as entry placetypes (e.g. "census-designated place") can be given abbreviations, but it is generally preferred to spell out the entry placetype. Note also that we purposely avoid certain abbreviations that would be ambiguous (e.g. "d", which could variously be interpreted as "department", "district" or "division"). ]==] export.placetype_aliases = { ["acomm"] = "autonomous community", ["adr"] = "administrative region", ["adterr"] = "administrative territory", -- Pakistan ["aobl"] = "autonomous oblast", ["aokr"] = "autonomous okrug", ["ap"] = "autonomous province", ["apref"] = "autonomous prefecture", ["aprov"] = "autonomous province", ["ar"] = "autonomous region", ["arch"] = "archipelago", ["arep"] = "autonomous republic", ["aterr"] = "autonomous territory", ["atu"] = "autonomous territorial unit", ["bor"] = "borough", ["c"] = "quốc gia", ["can"] = "canton", ["carea"] = "council area", ["cc"] = "constituent country", ["cdblock"] = "community development block", ["cdep"] = "Crown dependency", ["CDP"] = "census-designated place", ["cdp"] = "census-designated place", ["clcity"] = "county-level city", ["co"] = "county", ["cobor"] = "county borough", ["colcity"] = "county-level city", ["coll"] = "collectivity", ["comm"] = "community", ["cont"] = "lục địa", ["continent"] = "lục địa", ["contr"] = "continental region", ["contregion"] = "continental region", ["cpar"] = "civil parish", ["damun"] = "direct-administered municipality", ["dep"] = "dependency", ["department capital"] = "departmental capital", ["dept"] = "department", ["depterr"] = "dependent territory", ["dist"] = "district", ["distmun"] = "district municipality", ["div"] = "division", ["emp"] = "empire", ["fpref"] = "French prefecture", ["gov"] = "governorate", ["govnat"] = "governorate", ["home-rule city"] = "home rule city", ["home-rule municipality"] = "home rule municipality", ["inner-city area"] = "inner city area", ["ires"] = "Indian reservation", ["isl"] = "island", ["lbor"] = "London borough", ["lga"] = "local government area", ["lgarea"] = "local government area", ["lgd"] = "local government district", ["lgdist"] = "local government district", ["metbor"] = "metropolitan borough", ["metcity"] = "metropolitan city", ["metmun"] = "metropolitan municipality", ["mtn"] = "mountain", ["mun"] = "municipality", ["mundist"] = "municipal district", ["nonmetropolitan county"] = "non-metropolitan county", ["obl"] = "oblast", ["okr"] = "okrug", ["p"] = "province", ["par"] = "parish", ["parmun"] = "parish municipality", ["pen"] = "peninsula", ["plcity"] = "prefecture-level city", ["plcolony"] = "Polish colony", ["pref"] = "prefecture", ["prefcity"] = "prefecture-level city", ["preflcity"] = "prefecture-level city", ["prov"] = "province", ["r"] = "region", ["range"] = "mountain range", ["rcm"] = "regional county municipality", ["rcomun"] = "regional county municipality", ["rdist"] = "regional district", ["rep"] = "republic", ["rhrom"] = "rural hromada", ["riv"] = "river", ["rmun"] = "regional municipality", ["robor"] = "royal borough", ["romp"] = "Roman province", ["runit"] = "regional unit", ["rurmun"] = "rural municipality", ["s"] = "state", ["sar"] = "special administrative region", ["shrom"] = "settlement hromada", ["spref"] = "subprefecture", ["sprefcity"] = "sub-prefectural city", ["sprovcity"] = "subprovincial city", ["submet city"] = "sub-metropolitan city", ["submetropolitan city"] = "sub-metropolitan city", ["sub-prefecture-level city"] = "sub-prefectural city", ["sub-provincial city"] = "subprovincial city", ["sub-provincial district"] = "subprovincial district", ["terr"] = "territory", ["terrauth"] = "territorial authority", ["twp"] = "township", ["twpmun"] = "township municipality", ["uauth"] = "unitary authority", ["ucomm"] = "unincorporated community", ["udist"] = "unitary district", ["uhrom"] = "urban hromada", ["uterr"] = "union territory", ["utwpmun"] = "united township municipality", ["val"] = "valley", ["vdc"] = "village development committee", ["vil"] = "village", ["voi"] = "voivodeship", ["wcomm"] = "Welsh community", } local no_link_def_article = {link = false, article = ""} local no_link_no_article = {link = false, article = false} --[==[ var: These qualifiers can be prepended onto any placetype and will be handled correctly. For example, the placetype `large city` will be displayed as `large <nowiki>[[city]]</nowiki>` and categorized as if `city` were specified. If the value in the following table is a string, the qualifier will display according to the string. If the value is `true`, the qualifier will be linked to its corresponding Wiktionary entry. If the value is `false`, the qualifier will not be linked but will appear as-is. Note that these qualifiers do not override placetypes with entries elsewhere that contain those same qualifiers. For example, the entry for `inland sea` in `placetype_data` will apply in preference to treating `inland sea` as equivalent to `sea`. ]==] export.placetype_qualifiers = { -- generic qualifiers ["huge"] = false, ["tiny"] = false, ["large"] = false, ["big"] = false, ["mid-size"] = false, ["mid-sized"] = false, ["small"] = false, ["sizable"] = false, ["important"] = false, ["long"] = false, ["short"] = false, ["major"] = false, ["minor"] = false, ["high"] = false, ["tall"] = false, ["low"] = false, ["left"] = false, -- left tributary ["right"] = false, -- right tributary ["modern"] = false, -- for use in opposition to "ancient" in another definition -- "former" qualifiers ["abandoned"] = true, ["ancient"] = true, ["deserted"] = true, ["extinct"] = true, ["former"] = false, ["historic"] = "historical", ["historical"] = true, ["medieval"] = true, ["mediaeval"] = true, ["ruined"] = true, ["traditional"] = true, -- sea qualifiers ["coastal"] = true, ["inland"] = true, -- note, we also have an entry in placetype_data for 'inland sea' to get a link to [[inland sea]] ["maritime"] = true, ["overseas"] = true, ["seaside"] = true, ["beachfront"] = true, ["beachside"] = true, ["riverside"] = true, -- lake qualifiers ["freshwater"] = true, ["saltwater"] = true, ["endorheic"] = true, ["oxbow"] = true, ["ox-bow"] = "[[oxbow]]", -- [[ox-bow]] is a red link ["tidal"] = true, -- land qualifiers ["hilltop"] = true, ["hilly"] = true, ["insular"] = true, ["peninsular"] = true, ["chalk"] = true, ["karst"] = true, ["limestone"] = true, ["mountainous"] = true, ["mountaintop"] = true, ["alpine"] = true, ["volcanic"] = true, -- for an island -- political status qualifiers ["autonomous"] = true, ["incorporated"] = true, ["special"] = true, ["unincorporated"] = true, ["coterminous"] = true, -- monetary status/etc. qualifiers ["fashionable"] = true, ["wealthy"] = true, ["affluent"] = true, ["declining"] = true, -- city vs. rural qualifiers ["urban"] = true, ["suburban"] = true, ["exurban"] = true, ["outlying"] = true, ["remote"] = true, ["rural"] = true, ["outback"] = true, ["inner"] = false, ["inner-city"] = true, ["central"] = false, ["outer"] = false, -- land use qualifiers ["residential"] = true, ["agricultural"] = true, ["business"] = true, ["commercial"] = true, ["industrial"] = true, -- business use qualifiers ["railroad"] = true, ["railway"] = true, ["farming"] = true, ["fishing"] = true, ["mining"] = true, ["logging"] = true, ["cattle"] = true, -- tourism use qualifiers ["resort"] = true, -- note, we also have 'resort city' and 'resort town', that take precedecne ["spa"] = true, -- note, we also have 'spa city' and 'spa town', that take precedecne ["ski"] = true, -- note, we also have 'ski resort city' and 'ski resort town', that take precedecne -- religious qualifiers ["holy"] = true, ["sacred"] = true, ["religious"] = true, ["secular"] = true, -- qualifiers for nonexistent places ["claimed"] = false, ["fictional"] = true, ["legendary"] = true, ["mythical"] = true, ["mythological"] = true, -- directional qualifiers ["northern"] = false, ["southern"] = false, ["eastern"] = false, ["western"] = false, ["north"] = false, ["south"] = false, ["east"] = false, ["west"] = false, ["northeastern"] = false, ["southeastern"] = false, ["northwestern"] = false, ["southwestern"] = false, ["northeast"] = false, ["southeast"] = false, ["northwest"] = false, ["southwest"] = false, -- seasonal qualifiers ["summer"] = true, -- e.g. for 'summer capital' ["winter"] = true, -- legal status qualifiers -- FIXME: Two-word qualifiers don't work yet. But you can enter "de-facto" and it's canonicalized to [[de facto]]. ["official"] = true, ["unofficial"] = true, ["de facto"] = true, -- 'de facto capital' ["de-facto"] = "[[de facto]]", -- [[de-facto]] is a red link ["de jure"] = true, -- 'de jure capital' ["de-jure"] = "[[de jure]]", -- [[de-jure]] is a red link -- NOTE: 'unrecognized/unrecognised' are handled as placetypes 'unrecognized country', 'unrecognized state' -- misc. qualifiers ["planned"] = true, ["chartered"] = true, ["landlocked"] = true, ["uninhabited"] = true, -- superlative qualifiers ["first"] = no_link_def_article, ["second"] = no_link_def_article, -- for "second largest" etc. ["third"] = no_link_def_article, ["fourth"] = no_link_def_article, ["last"] = no_link_def_article, ["only"] = no_link_def_article, ["sole"] = no_link_def_article, ["main"] = no_link_def_article, ["largest"] = no_link_def_article, ["biggest"] = no_link_def_article, ["smallest"] = no_link_def_article, ["shortest"] = no_link_def_article, ["longest"] = no_link_def_article, ["tallest"] = no_link_def_article, ["highest"] = no_link_def_article, ["lowest"] = no_link_def_article, ["leftmost"] = no_link_def_article, ["rightmost"] = no_link_def_article, ["innermost"] = no_link_def_article, ["outermost"] = no_link_def_article, ["northernmost"] = no_link_def_article, ["southernmost"] = no_link_def_article, ["westernmost"] = no_link_def_article, ["easternmost"] = no_link_def_article, ["northwesternmost"] = no_link_def_article, ["southwesternmost"] = no_link_def_article, ["northeasternmost"] = no_link_def_article, ["southeasternmost"] = no_link_def_article, -- several/various ["several"] = no_link_no_article, ["various"] = no_link_no_article, ["numerous"] = no_link_no_article, ["multiple"] = no_link_no_article, ["many"] = no_link_no_article, ["other"] = no_link_no_article, } --[==[ var: In this table, the key qualifiers should be treated the same as the value qualifiers for categorization purposes. This is overridden by `placetype_data` and `qualifier_to_placetype_equivs`. ]==] export.former_qualifiers = { ["abandoned"] = {"FORMER"}, ["ancient"] = {"ANCIENT", "FORMER"}, ["former"] = {"FORMER"}, ["extinct"] = {"FORMER"}, ["historic"] = {"FORMER"}, ["historical"] = {"FORMER"}, ["medieval"] = {"ANCIENT", "FORMER"}, ["mediaeval"] = {"ANCIENT", "FORMER"}, ["ruined"] = {"ANCIENT", "FORMER"}, ["traditional"] = {"FORMER"}, } --[==[ var: In this table, any placetypes containing these qualifiers that do not occur in `placetype_data` should be mapped to the specified placetypes for categorization purposes. Entries here are overridden by `placetype_data`. ]==] export.qualifier_to_placetype_equivs = { ["fictional"] = "fictional location", ["legendary"] = "mythological location", ["mythical"] = "mythological location", ["mythological"] = "mythological location", -- For e.g. Taiwan as a "claimed province" of China; parts of Belize as claimed by Guatemala; various islands -- claimed by various parties in East Asia. FIXME: We should conditionalize on what is being claimed since there are -- also claimed capitals, e.g. Israel and Palestine claim Jerusalem as their capital. ["claimed"] = "claimed political division", } --[==[ var: Mapping from placetypes to the corresponding plural category-only placetype for a capital of that placetype. The reverse mapping also exists. ]==] export.placetype_to_capital_cat = { ["autonomous community"] = "autonomous community capitals", ["canton"] = "cantonal capitals", ["comarca"] = "comarca capitals", ["country"] = "national capitals", -- The following are not obviously different from 'county seats' but the latte terminology is used in the US. ["county"] = "county capitals", ["department"] = "departmental capitals", ["district"] = "district capitals", ["division"] = "division capitals", ["emirate"] = "emirate capitals", ["governorate"] = "governorate capitals", ["hromada"] = "hromada capitals", ["krai"] = "krai capitals", ["metropolitan city"] = "metropolitan city capitals", ["municipality"] = "municipal capitals", ["oblast"] = "oblast capitals", ["okrug"] = "okrug capitals", ["prefecture"] = "prefectural capitals", ["province"] = "provincial capitals", ["raion"] = "raion capitals", ["regency"] = "regency capitals", ["region"] = "regional capitals", ["regional unit"] = "regional unit capitals", ["republic"] = "republic capitals", ["state"] = "state capitals", ["territory"] = "territorial capitals", ["voivodeship"] = "voivodeship capitals", } --[==[ var: This contains placenames that should be preceded by an article (almost always "the"). '''NOTE''': There are multiple ways that placenames can come to be preceded by "the": # Listed here. # Given in [[Module:place/locations]] with an initial "the". All such placenames are added to this map by the code just below the map. # The placetype of the placename has `holonym_use_the = true` in its placetype_data. # A regex in placename_the_re matches the placename. Note that "the" is added only before the first holonym in a place description. ]==] export.placename_article = { -- This should only contain info that can't be inferred from [[Module:place/locations]]. ["archipelago"] = { ["Cyclades"] = "the", ["Dodecanese"] = "the", }, ["country"] = { ["Holy Roman Empire"] = "the", }, ["empire"] = { ["Holy Roman Empire"] = "the", }, ["island"] = { ["North Island"] = "the", ["South Island"] = "the", }, ["region"] = { ["Balkans"] = "the", ["Russian Far East"] = "the", ["Caribbean"] = "the", ["Caucasus"] = "the", ["Middle East"] = "the", ["New Territories"] = "the", ["North Caucasus"] = "the", ["South Caucasus"] = "the", ["West Bank"] = "the", ["Gaza Strip"] = "the", }, ["valley"] = { ["San Fernando Valley"] = "the", }, } --[==[ var: Regular expressions to apply to determine whether we need to put 'the' before a holonym. The key "*" applies to all holonyms, otherwise only the regexes for the holonym's placetype apply. ]==] export.placename_the_re = { -- We don't need entries for peninsulas, seas, oceans, gulfs or rivers -- because they have holonym_use_the = true. ["*"] = {"^Isle of ", " Islands$", " Mountains$", " Empire$", " Country$", " Region$", " District$", "^City of "}, ["bay"] = {"^Vịnh của "}, ["lake"] = {"^Hồ của "}, ["country"] = {"^Republic of ", " Republic$"}, ["republic"] = {"^Republic of ", " Republic$"}, ["region"] = {"^Vùng của "}, ["river"] = {"^Sông của "}, ["local government area"] = {"^Shire of "}, ["county"] = {"^Shire of "}, ["Indian reservation"] = {" Reservation", " Nation"}, ["tribal jurisdictional area"] = {" Reservation", " Nation"}, } --[==[ var: If any of the following holonyms are present, the associated holonyms are automatically added to the end of the list of holonyms for categorization (but not display) purposes. ]==] export.cat_implications = { ["region"] = { ["Eastern Europe"] = {"continent/Europe"}, ["Central Europe"] = {"continent/Europe"}, ["Western Europe"] = {"continent/Europe"}, ["South Europe"] = {"continent/Europe"}, ["Southern Europe"] = {"continent/Europe"}, ["Northern Europe"] = {"continent/Europe"}, ["Northeast Europe"] = {"continent/Europe"}, ["Northeastern Europe"] = {"continent/Europe"}, ["Southeast Europe"] = {"continent/Europe"}, ["Southeastern Europe"] = {"continent/Europe"}, ["North Caucasus"] = {"continent/Europe"}, ["South Caucasus"] = {"continent/Asia"}, ["South Asia"] = {"continent/Asia"}, ["Southern Asia"] = {"continent/Asia"}, ["East Asia"] = {"continent/Asia"}, ["Eastern Asia"] = {"continent/Asia"}, ["Central Asia"] = {"continent/Asia"}, ["West Asia"] = {"continent/Asia"}, ["Western Asia"] = {"continent/Asia"}, ["Southeast Asia"] = {"continent/Asia"}, ["North Asia"] = {"continent/Asia"}, ["Northern Asia"] = {"continent/Asia"}, ["Anatolia"] = {"continent/Asia"}, ["Asia Minor"] = {"continent/Asia"}, ["Mesopotamia"] = {"continent/Asia"}, ["North Africa"] = {"continent/Africa"}, ["Central Africa"] = {"continent/Africa"}, ["West Africa"] = {"continent/Africa"}, ["East Africa"] = {"continent/Africa"}, ["Southern Africa"] = {"continent/Africa"}, ["Central America"] = {"continent/Central America"}, ["Caribbean"] = {"continent/North America"}, ["Polynesia"] = {"continent/Oceania"}, ["Micronesia"] = {"continent/Oceania"}, ["Melanesia"] = {"continent/Oceania"}, ["Siberia"] = {"country/Russia", "continent/Asia"}, ["Russian Far East"] = {"country/Russia", "continent/Asia"}, ["South Wales"] = {"constituent country/Wales", "continent/Europe"}, ["Balkans"] = {"continent/Europe"}, ["West Bank"] = {"country/Palestine", "continent/Asia"}, ["Gaza"] = {"country/Palestine", "continent/Asia"}, ["Gaza Strip"] = {"country/Palestine", "continent/Asia"}, } } ------------------------------------------------------------------------------------------ -- Category and display handlers -- ------------------------------------------------------------------------------------------ local function city_type_cat_handler(data) local entry_placetype = data.entry_placetype local generic_before_non_cities = export.get_placetype_prop(entry_placetype, "generic_before_non_cities") if not generic_before_non_cities then internal_error("city_type_cat_handler called on placetype %s that doesn't have a `generic_before_non_cities`" .. " setting", entry_placetype) end local plural_entry_placetype = export.pluralize_placetype(entry_placetype) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and not spec.is_city then -- Categorize both in key, and in the larger polity that the key is part of, e.g. [[Hirakata]] goes in both -- "Cities in Osaka Prefecture" and "Cities in Japan". (But don't do the latter if no_container_cat is set.) local cap_plural_entry_placetype = ucfirst(plural_entry_placetype) local retcats = {("%s %s %s"):format(cap_plural_entry_placetype, generic_before_non_cities, export.get_prefixed_key(key, spec))} if container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, ("%s %s %s"):format(cap_plural_entry_placetype, generic_before_non_cities, export.get_prefixed_key(container.key, container.spec))) end end return retcats end end local function capital_city_cat_handler(data, non_city) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc -- The first time we're called we want to return something; otherwise we will be called for later-mentioned -- holonyms, which can result in wrongly classifying into e.g. `National capitals`. Simulate the loop in -- find_placetype_cat_specs() over holonyms so we get the proper `Cities in ...` categories as well as the capital -- category/categories we add below. local retcats if not non_city and place_desc.holonyms then for h_index, holonym in export.get_holonyms_to_check(place_desc, holonym_index) do local h_placetype, h_placename = holonym.placetype, holonym.unlinked_placename retcats = city_type_cat_handler { entry_placetype = "thành phố", holonym_placetype = h_placetype, holonym_placename = h_placename, holonym_index = h_index, place_desc = place_desc, } if retcats then break end end end if not retcats then retcats = {} end -- Now find the appropriate capital-type category for the placetype of the holonym, e.g. 'State capitals'. If we -- recognize the holonym among the known holonyms in [[Module:place/locations]], also add a category like 'State -- capitals of the United States'. Truncate e.g. 'autonomous region' to 'region', 'union territory' to 'territory' -- when looking up the type of capital category, if we can't find an entry for the holonym placetype itself (there's -- an entry for 'autonomous community'). local capital_cat = export.placetype_to_capital_cat[holonym_placetype] if not capital_cat then capital_cat = export.placetype_to_capital_cat[holonym_placetype:gsub("^.* ", "")] end if capital_cat then capital_cat = ucfirst(capital_cat) local inserted_specific_variant_cat = false if holonym_index then -- Now find the first recognized holonym location. We don't stop when :also is seen because of the common pattern -- where we use :also to specify that a given city is the capital at multiple surrounding levels. local matching_group, matching_key, matching_spec, matching_container_trail, matching_holonym_index for h_index = holonym_index, #place_desc.holonyms do if place_desc.holonyms[h_index].placetype then matching_group, matching_key, matching_spec, matching_container_trail = export.find_matching_holonym_location { holonym_placetype = place_desc.holonyms[h_index].placetype, holonym_placename = place_desc.holonyms[h_index].unlinked_placename, holonym_index = h_index, place_desc = place_desc, } if matching_group then matching_holonym_index = h_index break end end end if matching_holonym_index == holonym_index then if matching_container_trail[1] and not matching_spec.no_container_cat then for _, container in ipairs(matching_container_trail[1]) do insert(retcats, ("%s của %s"):format(capital_cat, export.get_prefixed_key(container.key, container.spec))) inserted_specific_variant_cat = true end end elseif matching_holonym_index then -- Check to make sure that the holonym placetype we were called on is listed among the -- divtypes of the location we found. local function insert_specific_variant_if_possible(key, spec) return export.get_equiv_placetype_prop(holonym_placetype, function(pt) local plural_holonym_placetype = export.pluralize_placetype(pt) local saw_matching_div if spec.divs then local divs = spec.divs if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) ~= "table" then div = {type = div} end if plural_holonym_placetype == div.type then saw_matching_div = true break end end end if saw_matching_div then insert(retcats, ("%s của %s"):format(capital_cat, export.get_prefixed_key(key, spec))) return true end return false end) end if insert_specific_variant_if_possible(matching_key, matching_spec) then inserted_specific_variant_cat = true elseif not matching_spec.no_container_cat then for _, containers in ipairs(matching_container_trail) do local saw_no_container_cat = false for _, container in ipairs(containers) do if insert_specific_variant_if_possible(container.key, container.spec) then inserted_specific_variant_cat = true break end saw_no_container_cat = saw_no_container_cat or container.spec.no_container_cat end if inserted_specific_variant_cat or saw_no_container_cat then break end end end end else -- This happens when in an invocation like {{place|en|capital city|s/Haryana,Punjab}} for -- [[Chandigarh]]. We fall back to older code that doesn't depend on the holonym index existing. -- FIXME: This may not be necessary. In the example just given, when processing Haryana we add to -- [[:Category:en:State capitals of India]], and nothing extra gets added when processing Punjab. -- Possibly we can just skip this case entirely. local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, ("%s của %s"):format(capital_cat, export.get_prefixed_key(container.key, container.spec))) inserted_specific_variant_cat = true end end end if not inserted_specific_variant_cat then insert(retcats, capital_cat) end else -- We didn't recognize the holonym placetype; just put in 'Capital cities'. insert(retcats, "Capital cities") end return retcats end --[=[ This is invoked specially for all placetypes (see the `*` placetype key at the bottom of `placetype_data`). This is used in two ways: # To add pages to generic holonym categories like [[:Category:en:Places in Merseyside, England]] (and [[:Category:en:Places in England]]) for any pages that have `co/Merseyside` as their holonym. # To categorize demonyms in bare placename categories like [[:Category:en:Merseyside, England]] if the demonym description mentions `co/Merseyside` and doesn't mention a more specific placename that also has a category. (In this case there are none, but we can have demonyms at multiple levels, e.g. in France for individual villages, departments, administrative regions, and for the entire country, and for example we only want to categorize a demonym into [[:Category:France]] if no more specific category applies.) Unlike when invoked from {{tl|place}}, a demonym invocation only adds the most specific holonym category and not the category of any containing polity (hence if we add [[:Category:en:Merseyside, England]] we won't also add [[:Category:England]]). This code also handles cities; e.g. for the first use case above, it would be used to add a page that has `city/Boston` as a holonym to [[:Category:en:Places in Boston]], along with [[:Category:en:Places in Massachusetts, USA]] and [[:Category:en:Places in the United States]]. The city handler tries to deal with the possibility of multiple cities having the same name. For example, the code in [[Module:place/locations]] knows about the city of [[Columbus]], [[Ohio]], which has containing polities `Ohio` (a state) and `the United States` (a country). If either containing polity is mentioned, the handler proceeds to return the key `Columbus` (along with `Ohio, USA` and `the United States`). Otherwise, if any other state or country is mentioned, the handler returns nothing, and otherwise it assumes the mentioned city is the one we're considering and returns `Columbus` etc. This works correctly if the place only mentions Ohio and a holonym for a Columbus in a different country is encountered, because of the function `augment_holonyms_with_container`, which adds the US as a holonym when Ohio is encountered. The single parameter `data` is as in category handlers. The return value is a list of categories (without the preceding language code). ]=] local function generic_place_cat_handler(data) local from_demonym = data.from_demonym local retcats = {} local function insert_retkey(key, spec) if from_demonym then insert(retcats, key) else insert(retcats, ("Địa danh của %s"):format(export.get_prefixed_key(key, spec))) end end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then if not spec.no_generic_place_cat then -- This applies to continents and continental regions. insert_retkey(key, spec) end -- Categorize both in key, and in the larger location(s) that the key is part of, e.g. [[Hirakata]] goes in -- both [[Category:Places in Osaka Prefecture, Japan]] and [[Category:Places in Japan]]. But not when -- no_container_cat is set (e.g. for 'United Kingdom'). if not spec.no_container_cat then for _, container_set in ipairs(container_trail) do local stop_adding_containers = false for _, container in ipairs(container_set) do if not container.spec.no_generic_place_cat then insert_retkey(container.key, container.spec) end if container.spec.no_container_cat then stop_adding_containers = true end end if stop_adding_containers then break end end end return retcats end end --[==[ Special category handler run for all placetypes that checks for specified division placetypes of known locations and categorizes appropriately. ]==] function export.political_division_cat_handler(data) if data.from_demonym then return end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then local divlists = {} if spec.divs then insert(divlists, spec.divs) end if spec.addl_divs then insert(divlists, spec.addl_divs) end for _, divlist in ipairs(divlists) do if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end local sgdiv = export.maybe_singularize_placetype(div.type) or div.type local prep = div.prep or "của" local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" then cat_as = {cat_as} end if not export.placetype_data[sgdiv] then internal_error("Placetype %s associated with known location key %s and data %s not found in " .. "`placetype_data`", sgdiv, key, spec) end if sgdiv == data.entry_placetype then local retcats = {} for _, pt_cat in ipairs(cat_as) do if type(pt_cat) == "string" then pt_cat = {type = pt_cat} end local pt_prep = pt_cat.prep or prep insert(retcats, ucfirst(pt_cat.type) .. " " .. pt_prep .. " " .. export.get_prefixed_key(key, spec)) end return retcats end end end end end --[==[ This is used to add pages to "bare" categories like [[:Category:en:Georgia, USA]] for `[[Georgia]]` and any foreign-language terms that are translations of the state of Georgia. We look at the page title (or its overridden value in {{para|pagename}}) as well as the glosses in {{para|t}}/{{para|t2}} etc., various extra-info values such as the modern names in {{para|modern}}, and any values specified using a form-of directive. We need to pay attention to the entry placetypes specified so we don't overcategorize; e.g. the US state of Georgia is `[[Джорджия]]` in Russian but the country of Georgia is `[[Грузия]]`, and if we just looked for matching names, we'd get both Russian terms categorized into both [[:Category:ru:Georgia, USA]] and [[:Category:ru:Georgia]]. We also need to check the containing holonyms to make sure there isn't a mismatch (so we don't e.g. categorize Newark, Delaware in [[:Category:en:Newark]], which is intended for Newark, New Jersey). ]==] function export.get_bare_categories(args, overall_place_spec) local bare_cats = {} local place_descs = overall_place_spec.descs local possible_placetypes_by_place_desc = {} for i, place_desc in ipairs(place_descs) do possible_placetypes_by_place_desc[i] = {} for _, placetype in ipairs(place_desc.placetypes) do if not export.placetype_is_ignorable(placetype) then local equivs = export.get_placetype_equivs(placetype, {register_former_as_non_former = true}) for _, equiv in ipairs(equivs) do insert(possible_placetypes_by_place_desc[i], equiv.placetype) end end end end local function check_term(term) -- Treat Wikipedia links like local ones. term = term:gsub("%[%[w:", "[["):gsub("%[%[wikipedia:", "[[") term = export.remove_links_and_html(term) term = term:gsub("^ ", "") for i, place_desc in ipairs(place_descs) do -- Iterate over all matching locations in case there are multiple, as with Delhi defined as -- {{place|en|megacity/and/union territory|c/India|containing the national capital [[New Delhi]]}}. for group, key, spec, container_trail in export.iterate_matching_holonym_location { holonym_placetype = possible_placetypes_by_place_desc[i], holonym_placename = term, place_desc = place_desc, } do insert(bare_cats, key) end end end -- FIXME: Should we only do the following if the language is English (requires that the lang is passed in)? -- We should always do it if `pagename` is given (as it is with {{tcl}}) but maybe not otherwise unless 1=en. There -- are cases like [[Ankara]] = English name for capital of Turkey, but also the name in various languages for the -- capital of Ghana (= English [[Accra]]). But this should get caught by mismatching the containing country. The -- advantage of checking when the language isn't English is we catch those places that fail to give an English -- translation but where the translation happens to be the same as the other-language spelling. However, I don't -- know how often this situation occurs. check_term(args.pagename or mw.loadData("Module:headword/data").pagename) for _, t in ipairs(args.t) do check_term(t) end local function check_termobj_list(terms) for _, term in ipairs(terms) do if term.eq then check_term(term.eq) end if term.alt or term.term then check_term(term.alt or term.term) end end end for _, extra_info_terms in ipairs(overall_place_spec.extra_info) do local arg = extra_info_terms.arg if arg == "modern" or arg == "now" or arg == "full" or arg == "short" then check_termobj_list(extra_info_terms.terms) end end for _, directive in ipairs(overall_place_spec.directives) do check_termobj_list(directive.terms) end return bare_cats end --[==[ This is used to augment the holonyms associated with a place description with the containing polities. For example, given the following: `# {{tl|place|en|subprefecture|pref/Hokkaido}}.` We auto-add Japan as another holonym so that the term gets categorized into [[:Category:Subprefectures of Japan]]. To avoid over-categorizing we need to check to make sure no other countries are specified as holonyms. ]==] function export.augment_holonyms_with_container(place_descs) for _, place_desc in ipairs(place_descs) do if place_desc.holonyms then -- This ends up containing a copy of the original holonyms, with the augmented holonyms inserted in their -- appropriate position. We don't just put them at the end because some holonyms have use the `:also` -- modifier, which causes category processing to restart at that point after generating categories for a -- preceding holonym, and we don't want the preceding holonym's augmented holonyms interfering with -- categorization of a later holonym. We proceed from right to left, and each time we augment, we copy -- the holonyms with the augmented holonym(s) inserted appropriately and replace the place description's -- holonyms with the augmented ones before the next iteration. The reason for this is so that e.g. -- {{place|neighborhood|city/Birmingham|co/West Midlands|cc/England}} doesn't throw an error during the -- augmentation process due to 'Birmingham' referring to two known locations (in England and Alabama). If -- we go left to right, we will throw an ambiguity error on `city/Birmingham` because code to exclude -- Birmingham, Alabama needs `c/United Kingdom` present (to cause a mismatch with `c/United States`), -- which isn't yet present as the augmentation code hasn't gotten to `cc/England` yet. For similar -- reasons, we need to include the augmented holonyms in the holonyms considered in the next iteration -- rather than modifying the place description once at athe end. for i = #place_desc.holonyms, 1, -1 do local holonym = place_desc.holonyms[i] if holonym.placetype and not export.placetype_is_ignorable(holonym.placetype) then local group, key, spec, container_trail = export.find_matching_holonym_location { holonym_placetype = holonym.placetype, holonym_placename = holonym.unlinked_placename, holonym_index = i, place_desc = place_desc, } if group and container_trail[1] and not spec.no_auto_augment_container then local augmented_holonyms = {} for j = 1, i do insert(augmented_holonyms, place_desc.holonyms[j]) end for _, containers in ipairs(container_trail) do local any_no_auto_augment_container = false for _, container in ipairs(containers) do any_no_auto_augment_container = any_no_auto_augment_container or container.spec.no_auto_augment_container local containing_type = container.spec.placetype if type(containing_type) == "table" then -- If the containing type is a list, use the first element as the canonical variant. containing_type = containing_type[1] end local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) -- Don't side-effect holonyms while processing them. local new_holonym = { -- By the time we run, the display has already been generated so we don't need to -- set display_placename. placetype = containing_type, -- placename_to_key() for the group should correctly handle both full and elliptical -- placenames, but the full placename seems less likely to be ambiguous. FIXME: We -- should just store the key directly and use it when available to avoid having to -- convert key to placename and back to key. unlinked_placename = full_container_placename, -- Indicate that this is an augmented holonym, and was derived from the specified -- holonym. In iterate_matching_holonym_location(), we ignore augmented holonyms -- derived from holonyms that are different from the holonym we're searching for but -- of the same placetype. This is to correctly handle a situation like -- {{place|river|dept/Ardèche,Gard,Vaucluse,Bouches-du-Rhône|c/France}}. Here, -- `Ardèche` is in `r/Auvergne-Rhône-Alpes`, while `Gard` is in `r/Occitania` and -- the other two are in `r/Provence-Alpes-Côte d'Azur`. Augmenting proceeds from -- right to left, so after it adds `r/Provence-Alpes-Côte d'Azur` to -- `Bouches-du-Rhône`, Vaucluse gets augmented correctly but `Gard` fails to match -- in find_matching_holonym_location() because of the mismatch between augmented -- `r/Provence-Alpes-Côte d'Azur` and actual `r/Occitania`. Similarly, all later -- calls to find_matching_holonym_location() fail to match `Gard` (and likewise -- `Ardèche`) against any known location. To deal with this, we mark augmented -- holoynms as being augmented due to a source holonym, and when processing a given -- holonym, ignore augmented holonyms from other holonyms of the same placetype. -- The restriction to the same placetype is so that `Birmingham` still gets -- correctly disambiguated to Birmingham, England in the example given above near -- the top of this function, using the augmented holonym `c/United Kingdom` added by -- the specified `cc/England` (whose placetype `constituent country` differs from -- the placetype `city` of Birmingham). augmented_from_holonym = holonym, } insert(augmented_holonyms, new_holonym) -- But it is safe to modify other parts of the place_desc. export.key_holonym_into_place_desc(place_desc, new_holonym) end if any_no_auto_augment_container then break end end for j = i + 1, #place_desc.holonyms do insert(augmented_holonyms, place_desc.holonyms[j]) end place_desc.holonyms = augmented_holonyms end end end end end end -- Cat handler for district, areas, neighborhoods and suburbs. Districts are tricky because they can either be political -- divisions or city neighborhoods. Areas similarly can be political divisions (rarely; specifically, in Kuwait), city -- neighborhoods or larger geographical areas/regions. We handle this as follows: -- (1) `placetype_data` cat entries for specific countries or country divisions take precedence over cat_handlers, so if -- the user says {{tl|place|district|s/Maharashtra|c/India}}, we won't even be called because there is an entry that -- categorizes into [[:Category|Districts of Maharashtra, India]]. -- (2) If we're called, we check the holonym we're called on to see if it is a recognized city, e.g. if we're called -- using {{tl|place|district|city/Mumbai|s/Maharashtra|c/India}}. If so, we categorize under e.g. -- [[:Category:Neighbourhoods of Mumbai]]. (Choosing the spelling "neighbourhoods" because we're in India.) -- (3) If we're called and the holonym is not a recognized city, we check if the placetype has has_neighborhoods set. -- If so, it's "city-like" and we categorize under the first containing polity that we recognize. For example, if -- we're called using {{tl|place|district|town/Northampton|co/Hampshire|s/Massachusetts|c/US}}, we should recognize -- town as "city-like" and categorize under [[:Category:Neighborhoods in Massachusetts]]. (Note "in" not "của", and -- note the spelling "neighborhoods" because we're in the US.) -- (4) If the holonym is not city-like, we do nothing. If there's a city or city-like placetype farther up (e.g. we're -- called as {{tl|place|district|ward/Foo|mun/Bar|...}}), we will handle the city-like entity according to (2) or -- (3) when called on that holonym. Otherwise either the categorization in (1) takes place or there's no -- categorization. local function district_neighborhood_cat_handler(data) local function get_plural_entry_placetype(location_spec, container_trail) if data.entry_placetype == "suburb" then return "Suburbs" else -- Check for `british_spelling` setting on the spec itself or any container. local uses_british_spelling = location_spec.british_spelling if uses_british_spelling == nil and container_trail then for _, container_set in ipairs(container_trail) do local must_outer_break = false for _, container in ipairs(container_set) do if container.spec.british_spelling ~= nil then uses_british_spelling = container.spec.british_spelling must_outer_break = true break end end if must_outer_break then break end end end return uses_british_spelling and "Neighbourhoods" or "Neighborhoods" end end -- First check the immediate holonym to see if it's a city or a city-like top-level entity (Hong Kong, Bonaire, -- etc.) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and spec.is_city then return {get_plural_entry_placetype(spec, container_trail) .. " of " .. export.get_prefixed_key(key, spec)} end -- If the entry placetype is neighbo(u)rhood, assume it is a neighborhood even if there isn't a city-like -- entity father up the chain. (E.g. due to a mistaken use of m/ instead of mun/ for municipality.) local has_neighborhoods local entry_placetype = data.entry_placetype if entry_placetype == "neighborhood" or entry_placetype == "neighbourhood" or entry_placetype == "suburb" then has_neighborhoods = true else -- Otherwise, make sure the current holonym is city-like. has_neighborhoods = export.get_equiv_placetype_prop(data.holonym_placetype, function(pt) return export.get_placetype_prop(pt, "has_neighborhoods") end, {continue_on_nil_only = true}) end if has_neighborhoods then -- Loop up the holonyms, looking for city and city-like entities in case of e.g. [[Sepulveda]] written -- {{place|en|neighborhood|valley/San Fernando Valley|city/Los Angeles|s/California|c/USA}} -- but also look for a recognizable poldiv, and if so categorize as "Neighborhoods in POLDIV". We need -- to start with the current holonym, which is especially important for neighborhoods and suburbs that -- may have the first holonym be a recognizable province, etc. but can't hurt otherwise. (Previously -- we skipped the first/current holonym.) for other_holonym_index, other_holonym in export.get_holonyms_to_check(data.place_desc, data.holonym_index) do local other_holonym_data = { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = data.place_desc, } local group, key, spec, container_trail = export.find_matching_holonym_location(other_holonym_data) if group and not spec.is_former_place then return {get_plural_entry_placetype(spec, container_trail) .. (spec.is_city and " of " or " in ") .. export.get_prefixed_key(key, spec)} end end end end function export.check_already_seen_string(holonym_placename, already_seen_strings) local canon_placename = ulower(m_links.remove_links(holonym_placename)) if type(already_seen_strings) ~= "table" then already_seen_strings = {already_seen_strings} end for _, already_seen_string in ipairs(already_seen_strings) do if canon_placename:find(already_seen_string) then return true end end return false end -- Prefix display handler that adds a prefix such as "Metropolitan Borough of " to the display -- form of holonyms. We make sure the holonym doesn't contain the prefix or some variant already. -- We do this by checking if any of the strings in ALREADY_SEEN_STRINGS, either a single string or -- a list of strings, or the prefix if ALREADY_SEEN_STRINGS is omitted, are found in the holonym -- placename, ignoring case and links. If the prefix isn't already present, we create a link that -- uses the raw form as the link destination but the prefixed form as the display form, unless the -- holonym already has a link in it, in which case we just add the prefix. local function prefix_display_handler(prefix, holonym_placename, already_seen_strings) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(prefix)) then return holonym_placename end if holonym_placename:find("%[%[") then return prefix .. " " .. holonym_placename end return prefix .. " [[" .. holonym_placename .. "]]" end -- Suffix display handler that adds a suffix such as " parish" to the display form of holonyms. -- Works identically to prefix_display_handler but for suffixes instead of prefixes. local function suffix_display_handler(suffix, holonym_placename, already_seen_strings, include_suffix_in_link) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(suffix)) then return holonym_placename end if holonym_placename:find("%[%[") then return holonym_placename .. " " .. suffix end if include_suffix_in_link then return "[[" .. holonym_placename .. " " .. suffix .. "]]" else return "[[" .. holonym_placename .. "]] " .. suffix end end -- Display handler for boroughs. New York City boroughs are display as-is. Others are suffixed -- with "borough". local function borough_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.new_york_boroughs[unlinked_placename] then -- Hack: don't display "borough" after the names of NYC boroughs return holonym_placename end return suffix_display_handler("borough", holonym_placename) end local function county_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) -- Display handler for Irish counties. Irish counties are displayed as e.g. "County [[Cork]]". if m_locations.ireland_counties["Hạt " .. unlinked_placename .. ", Ireland"] or m_locations.northern_ireland_counties["Hạt " .. unlinked_placename .. ", Bắc Ireland"] then return prefix_display_handler("Hạt", holonym_placename) end -- Display handler for Taiwanese counties. Taiwanese counties are displayed as e.g. "[[Chiayi]] County". if m_locations.taiwan_counties[unlinked_placename .. ", Đài Loan"] then return suffix_display_handler("Hạt", holonym_placename) end -- Display handler for Romanian counties. Romanian counties are displayed as e.g. "[[Cluj]] County". if m_locations.romania_counties[unlinked_placename .. ", România"] then return suffix_display_handler("Hạt", holonym_placename) end -- FIXME, we need the same for US counties but need to key off the country, not the specific county. -- Others are displayed as-is. return holonym_placename end -- Display handler for prefectures. Japanese prefectures are displayed as e.g. "[[Fukushima]] Prefecture". -- Others are displayed as e.g. "[[Fthiotida]] prefecture". local function prefecture_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) local suffix = m_locations.japan_prefectures[unlinked_placename .. ", Nhật Bản"] and "Prefecture" or "prefecture" return suffix_display_handler(suffix, holonym_placename) end -- Display handler for provinces of Bulgaria, Iran, Laos, North and South Korea, Thailand, Turkey and Vietnam. Recognized -- provinces are displayed as e.g. "[[Gyeonggi]] Province" or "[[Antalya]] Province". Others are displayed as-is. local function province_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.bulgaria_provinces[unlinked_placename .. ", Bulgaria"] or m_locations.iran_provinces[unlinked_placename .. ", Iran"] or m_locations.laos_provinces[unlinked_placename .. ", Lào"] or m_locations.north_korea_provinces[unlinked_placename .. ", Cộng hòa Dân chủ Nhân dân Triều Tiên"] or m_locations.south_korea_provinces[unlinked_placename .. ", Hàn Quốc"] or m_locations.thailand_provinces[unlinked_placename .. ", Thái Lan"] or m_locations.turkey_provinces[unlinked_placename .. ", Thổ Nhĩ Kỳ"] or m_locations.vietnam_provinces[unlinked_placename .. ", Việt Nam"] then return suffix_display_handler("Province", holonym_placename) end return holonym_placename end -- Display handler for Nigerian states. Nigerian states are display as "[[Kano]] State". Others are displayed as-is. local function state_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.nigeria_states[unlinked_placename .. ", Nigeria"] then return suffix_display_handler("State", holonym_placename) end return holonym_placename end -- Display handler for voivodeships. Display as e.g. [[Subcarpathian Voivodeship]]. local function voivodesip_display_handler(holonym_placetype, holonym_placename) return suffix_display_handler("Voivodeship", holonym_placename, nil, "include_suffix_in_link") end ------------------------------------------------------------------------------------------ -- Placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: Main placetype data structure. This specifies, for each canonicalized placetype, various properties. The keys are placetypes (in the singular, except for category-only placetypes, which are plural and followed by `!`), and the value is a table of properties. The `"*"` key is special and is used for adding "generic" categories of the form `Places in ``location`` `; it runs for all entry placetypes. Keys in the form of plural placetypes followed by `!` are used only in [[Module:category tree/topic/Places]] for specifying the properties of categories containing the specified placetype, esp. bare categories like [[:Category:States and territories]] (rather than qualified categories like [[:Category:States and territories of Australia]]). Keys under the value table for a given placetype of are two types: ''property keys'' (which specify the value of specific properties) and ''categorization keys'' (which tell how to categorize certain sorts of holonyms if the placetype in question occurs as an entry placetype). Categorization keys are either the special value `default` or are wildcard strings with a slash in them, such as `"country/*"`. Note that only wildcard strings are currently allowed directly in the placetype data; everything else is handled through category handlers, either per-placetype or special (such as `political_division_cat_handler`). The algorithm for how category keys and handlers are used to generate categories is described at the top of [[Module:place]]. There are several recognized property keys, of various types: 1. The following link-related property keys are recognized: * `link`: '''Required''' except in category-only placetypes ending in `!`. Describes how to link and display the placetype in the formatted description when occurring as an entry placetype. Also used for formatting pluralized placetypes (which may occur in entry placetypes, esp. new-format ones, such as `two <<islands>>`) and may occur in categories). The possible values are: *# `true`: Link to the same-named Wiktionary entry. This creates a raw link, e.g. `<nowiki>[[city]]</nowiki>`, which is converted to an English-specific link by JavaScript postprocessing. If the placetype is plural, this creates a two-part raw link e.g. `<nowiki>[[city|cities]]</nowiki>`. *# `"w"`: Link to the same-named Wikipedia entry. This creates a two-part link, e.g. `<nowiki>[[w:census town|census town]]</nowiki>`, or `<nowiki>[[w:census town|census towns]]</nowiki>` if the placetype is given plural. *# `"+..."`: Create a two-part link to the entry following the `+` sign. For example, if `cercle` specifies `"+w:cercles of Mali"`, a two-part link `<nowiki>[[w:cercles of Mali|cercle]]</nowiki>` will be generated, or `<nowiki>[[w:cercles of Mali|cercles]]</nowiki>` if plural `cercles` is specified. *# `"separately"`: Link each word separately. For example, if `administrative territory` specifies `"separately"`, it will be linked as `<nowiki>[[administrative]] [[territory]]</nowiki>`, or as `<nowiki>[[administrative]] [[territory|territories]]</nowiki>` if plural `administrative territories` is given. *# another string: Use that string directly. If the placetype is plural, `pluralize()` in [[Module:en-utilities]] is called on the string, which will correctly pluralize most strings, including those with links in them. (If there are multiple links, the display form of the last link is pluralized.) *# `false`: This placetype is not allowed as an entry placetype. An error will be thrown if this placetype is given as an entry placetype. This is specified for internal-use placetypes, especially placetypes used in conjunction with the qualifiers `former`, `ancient`, `historical` and such. * `plural_link`: If specified and the placetype is plural, use the value in place of generating a pluralized version of the link spec in `link`. Most commonly, this is either a string with links in it (which is used directly) or the value `false`, indicating that the placetype cannot occur plural. (This is used for example by `caplc`, which displays as `<nowiki>[[capital]] and [[large]]st [[city]]</nowiki>`, where a plural version doesn't make sense.) Generally if this is specified, `plural` also needs to be specified to give a special placetype plural; this situation occurs especially with multiword placetypes where something other than the last word is pluralized. An example is `town with bystatus`, whose plural is `towns with bystatus`, which needs to be explicitly given. This example uses `link = <nowiki>"[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>` ({{m|nb|bystatus}}) is a Norwegian Bokmål word, and template calls aren't currently permitted in link strings), along with `plural_link = <nowiki>"[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>`. * `category_link`: Spec indicating how to display the placetype when occurring in category descriptions. Defaults to the value of `link`, and in turn is overridden by more specific `category_link_*` keys; see below. Category-only placetypes (which are plural and end in `!`) usually use `category_link` in preference to `link`. The value of `category_link` can be any of the types of specs given above, but most commonly is a plural string with links in it, spelling out the description; in this case it is used directly. When both `category_link` and `link` are given, the value in `category_link` is typically longer and more descriptive. For example, `polity` uses `link = true`, which just generates a link `<nowiki>[[polity]]</nowiki>` or plural `<nowiki>[[polity|polities]]</nowiki>`, but specifies a separate `category_link = <nowiki>"[[independent]] or [[semi-]][[independent]] [[polity|polities]]"</nowiki>`, which clarifies in the category description what a polity is. * `category_link_top_level`: Spec indicating how to display top-level (bare/unqualified) categories, i.e. categories where the placetype is not followed by `in ``location`` ` or `of ``location`` `. If given, this overrides `category_link` for this type of category. * `category_link_before_noncity`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` does not refer to a city. If given, this overrides `category_link` for this type of category. * `category_link_before_city`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` refer to a city. If given, this overrides `category_link` for this type of category. An example where this is given is `neighborhood`, which uses the following specs:<ol> <li>`link = true`</li> <li>`category_link = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]"</nowiki>`</li> <li>`category_link_before_city = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions"</nowiki>`</li> </ol> This has the effect of making the entry placetype `neighborhood` display as just `<nowiki>[[neighborhood]]</nowiki>`, while e.g. a category like `Neighborhoods of Chicago` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[Chicago]], ...</nowiki>` and a category like `Neighborhoods in Illinois, USA` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]] in [[Illinois]], ...</nowiki>`. * `disallow_in_entries`: If specified, this placetype cannot occur as an entry placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. * `disallow_in_holonyms`: If specified, this placetype cannot occur as a holonym placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. 2. There is currently one fallback-related property key recognized: * `fallback`: If specified, its value is a placetype which will be used for categorization purposes if no categories get added using the placetype itself. As an example, `branch` sets a fallback of `river` but also sets `preposition = "của"`, meaning that {{tl|place|en|branch|riv/Mississippi}} displays as `a branch of the Mississippi` (whereas `river` itself uses the preposition `in`), but otherwise categorizes the same as `river`. A more complex example is `area`, which sets a fallback of `geographic and cultural area` and also sets a category handler that checks for cities or city-like entities (e.g. boroughs) occurring as holonyms and categorizes the toponym under [[:Category:Neighborhoods of CITY]] (for recognized cities) or otherwise [[:Category:Neighborhoods of POLDIV]] (for the nearest containing recognized location). In addition, `area` is set as a political division of Kuwait, meaning if `c/Kuwait` occurs as holonym, the toponym is categorized under [[:Category:Areas of Kuwait]]. If none of these categories trigger, the fallback of `geographic and cultural area` will take effect, and the toponym will be categorized as e.g. [[:Category:Geographic and cultural areas of England]]. 3. There is currently one property to control irregular plurals of placetypes: * `plural`: If specified, its value is the plural of the placetype. Otherwise, the default pluralization algorithm in [[Module:en-utilities]] applies (which correctly pluralizes most words, including those ending in `-y`, `-ch`, `-sh`, `-x`, etc.). The value of `plural` is also used when converting a pluralized placetype into its singular equivalent; for example, since the placetype `kibbutz` has `plural = "kibbutzim"`, the placetype `kibbutzim` will be recognized as a plural and singularized to `kibbutz`. For this reason, it's occasionally necessary to specify a `plural` value even when the default pluralization algorithm works correctly, if the default singularization algorithm won't correctly reverse the pluralization (as with `pass` and other terms ending in `-ss`). 4. The following property keys relate to generating categories for entry placetypes and specifying the parents of those categories: * `class`: The general class of placetype. This is used for various purposes: (a) to categorize placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical` (note that these placetypes are not all treated alike); (b) to determine the parent category of bare placetype categories (e.g. [[:Category:Villages]] for placetype `village`); (c) to determine whether to add a parent category `political divisions of specific countries` to qualified placetype categories (e.g. [[:Category:Villages in Mali]]). The possible values are: *# `polity`: a more-or-less sovereign/independent polity, such as a country, kingdom or empire. *# `subpolity`: a non-sovereign division of a polity, above the level of an individual settlement. *# `settlement`: a city or smaller equivalent, such as a village. This also includes administrative divisions of a settlement, such as wards and barangays. *# `non-admin settlement`: similar to a settlement but without administrative or political significance, such as an unincorporated community, farm or neighborhood. *# `capital`: a settlement that is a capital. A former capital is generally still in existence, just not the capital any more. *# `natural feature`: any non-man-made feature, such as a lake, mountain, island, ocean, etc. *# `man-made structure`: a man-made feature below the level of a neighborhood, such as a house, airport, university, metro station, park or the like. *# `geographic region`: a geographic or cultural region or area that has no administrative significance. These may vary greatly in size but typically have some sort of cultural significance (possibly historical). The `former`, `ancient`, etc. qualifier has no effect on the category of these placetypes. *# `generic place`: a place that isn't further qualified into any specific subtype. * `former_type`: The class of placetype used for categorizing placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical`. The possible values are the same as for `class` but with the addition of `dependent territory` (for colonies, protectorates and the like) and `!` (ignore the historical/former/ancient/etc. qualifier; used e.g. with `fictional location` and `mythological location`). If not specified, the value of `class` is used. When a qualifier such as `former`, `ancient`, `medieval` or `historical` is encountered (specifically, those in `former_qualifiers`), it is mapped using `former_qualifiers` to the appropriate internal qualifier or qualifiers (one or both of `ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified qualifiers), which is prepended to the value of `former_type` or `class` to form a placetype whose properties are looked up to determine how to categorize the toponym in question. For example, if `medieval village` is given, we map `medieval` to `ANCIENT` and `FORMER`, and `village` to its `class` of `settlement`, and enter the placetypes `ANCIENT settlement` and `FORMER settlement` (in that order) into the list of equivalent placetypes returned by `get_placetype_equivs`. In this case, there is an entry in `placetype_data` for `ANCIENT settlement`, so its default category spec `Ancient settlements` is used as the category. If on the other hand `medieval kingdom` is given, where `kingdom` has a `class` value `polity`, we first look up `ANCIENT polity`, see there is no entry in `placetype_data` for it, and then look up `FORMER polity`, which exists and has a default category spec `Former polities`, which is used as the category. Note that if the placetype following the "former" qualifier is recognized in `placetype_data` but has no `former_type` or `class` and no fallback with a `former_type` or `class` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like `former greenhouse` is specified and we don't have an entry for `greenhouse`), we just track the occurrence and end up not categorizing. * `bare_category_parent`: This specifies the first parent category of a bare placetype category named according to the placetype in question (e.g. [[:Category:Atolls]] for placetype `atoll`, or [[:Category:Named buildings]] for placetype `named buildings!`). If not specified, the first parent category is determined by the value of `class`, using the mapping `class_to_bare_category_parent` in [[Module:category tree/topic cat/data/Places]]. * `addl_bare_category_parents`: Extra parent categories to add a bare placetype category to (see `bare_category_parent` just above). * `bare_category_breadcrumb`: Breadcrumb for bare placetype categories. Also used as the sort key of `bare_category_parent` if it is a string. * `inherently_former`: If specified and the given placetype is used as an entry placetype, act as if `former` or `ancient` (depending on the value of `inherently_former`) were prefixed to the placetype. This is for placetypes that always refer to no-longer-existing entities, such as `satrapy` and `treaty port`. The value of `inherently_former` is a list of internal qualifiers (one or more of `ANCIENT` and/or `FORMER`), just as for `former_qualifiers`, and the implementation is the same. * `cat_handler`: Handler used to generate the categories to add a given toponym to, if its entry placetype is the placetype in question. Generally the `cat_handler` function checks the holonyms specified in order to determine which category or categories to generate. For example, `district_neighborhood_cat_handler` handles placetypes `district`, `neighborhood`, `subdivision`, `suburb` and the like, and either adds the toponym to a category like `Neighborhoods of ``city`` ` (if a recognized city is given as a holonym), or otherwise a category like `Neighborhoods in ``location`` ` (for the first recognized non-city location given as a holonym, if an unrecognized city or city-like entity is given before the recognized non-city). The algorithm that runs the category handlers iterates over holonyms from left to right, running the `cat_handler` function on each holonym in turn until one or more categories are returned; see below for more specifics. (Note that countries for which e.g. a `district` is a political division do not get the corresponding category added by the `district_neighborhood_cat_handler` function but by `political_division_cat_handler`.) `cat_handler` functions are called with one argument, `data`, describing the resolved entry placetype (i.e. after resolving placetype aliases and fallbacks) and the holonym being processed. The return value should be a list of category specs (categories minus the langcode prefix, with `+++` standing for the holonym key, or the value `true`, which stands for ` ``Placetypes`` in/of ``Holonym`` `, i.e. the pluralized placetype with the appropriate preposition as specified in `placetype_data`). `data` contains the following fields: ** `entry_placetype`: the resolved entry placetype for the entry placetype being processed (i.e. it will always have an entry in `placetype_data` but may not be the original placetype given by the user); ** `holonym_placetype` and `holonym_placename`: the holonym placetype and placename being processed; ** `holonym_index`: the index of the holonym being processed, or {nil} if we're handling an overriding holonym (FIXME: we will change the overriding holonym algorithm so there will be an index even when processing overriding holonyms); ** `place_desc`: a full description of the {{tl|place}} call, as specified at the top of [[Module:place]]; ** `from_demonym`: If set, we are called from [[Module:demonym]], triggered by {{tl|demonym-adj}} or {{tl|demonym-noun}}, instead of being triggered by {{tl|place}}. * `has_neighborhoods`: If `true`, the specified placetype is city-like. This is used in the `district_neighborhood_cat_handler` to determine whether to add a category such as `Neighborhoods in ``location`` `; see the section just above on `cat_handler`. 5. The following preposition-related property keys are recognized: * `preposition`: The preposition used after this placetype when it occurs as an entry placetype. Defaults to `"in"`. * `generic_before_non_cities`: If specified, the appropriate category description handler in [[Module:category tree/topic cat/data/Places]] will recognize categories of the form ` ``Placetype`` in/of ``location`` ` for the specified placetype and preposition, if ``location`` is a non-city. This is used to generate descriptions for categories added by category handlers and by explicit category specs in the placetype data. All placetypes that specify `generic_before_non_cities` or `generic_before_cities` *MUST* also specify a value for `class` so that the category tree code can determine whether it's a political or non-political division. * `generic_before_cities`: Like `generic_before_non_cities` but for locations referring to cities. 6. The following property keys control the auto-addition of affixes when formatting holonyms of a particular placetype: * `affix_type`: If specified, add the placetype as an affix before or after holonyms of this placetype. Possible values are: *# `"pref"` (the holonym will display as `(the) placetype of Holonym`, where `the` appears when the holonym directly follows an entry placetype); *# `"Pref"` (same as `"pref"` but the placetype is capitalized; each word is capitalized if there are multiple); *# `"suf"` (the holonym will display as `Holonym placetype`); *# `"Suf"` (the holonym will display as `Holonym Placetype`, i.e. same as `"suf"` but the placetype is capitalized). * `suffix`: String to use in place of the placetype itself when the placetype is displayed as a suffix after a holonym. Note that `suffix` can be used independently of `affix_type` because the user can also request a suffix explicitly using a syntax like `adr:suf/Occitania`, which will display as `Occitania region` because the placetype `administrative region` specifies `suffix = "region"`. * `prefix`: Like `suffix` but for use when the placetype is displayed as a prefix before the holonym. * `affix`: Like `suffix` and `prefix` but for use when the placetype is displayed as an affix either before or after the holonym. If both `suffix` or `prefix` and `affix` are given for a single placetype, `suffix` or `prefix` take precedence. * `no_affix_strings`: String or list of strings that, if they occur in the holonym, suppress the addition of any affix requested using `affix_type`. Defaults to the placetype itself. For example, `autonomous okrug` specifies `affix_type = "Suf"` so that `aokr/Nenets` displays as `Nenets Autonomous Okrug`, but also specifies `no_affix_strings = "okrug"` so that `aokr/Nenets Okrug` or `aokr/Nenets Autonomous Okrug` displays as specified, without a redundant `Autonomous Okrug` added. Matching is case-insensitive but whole-word. * `display_handler`: A function of two arguments, `holonym_placetype` and `holonym_placename` (specifying a holonym). Its return value is a string specifying the display form of the holonym. 7. The following property keys control the indefinite and definite articles used before entry placetypes and/or holonyms of the specified placetype. * `entry_placetype_use_the`: Use `"the"` before this placetype when it occurs as an entry placetype. * `entry_placetype_indefinite_article`: Indefinite article used before this placetype when it occurs as an entry placetype (usually `"a"`, specifically for placetypes beginning with u- that don't take the indefinite article `"an"`). Defaults to the appropriate indefinite article (`"a"` or `"an"` depending on whether the placetype begins with a vowel). Overridden by `entry_placetype_use_the`, and unlike for most properties, does not apply to equivalent placetypes (i.e. fallbacks or those formed by removing a qualifier from the beginning); only to the exact placetype specified. * `holonym_use_the`: Use `"the"` before holonyms of this placetype. '''NOTE:''' # The `link` property must be specified on all placetypes, except those ending in `!` (category-only placetypes), which must have either `link` or `category_link` specified. # Either the `class` or `former_type` property must be specified on all placetypes not ending in `!` that do not have a fallback (if a placetype has a fallback and omits the `class` and `former_type` properties, they are taken from the fallback). An internal error will result if a placetype has no `class` or `former_type` property derivable either directly or through a fallback, if an attempt is made to categorize a former/ancient/historical/etc. entity of this placetype. # It is possible to have multiple levels of fallback (e.g. `frazione` falls back to `hamlet`, which falls back to `village`). Fallback loops will cause an internal error. All placetypes specified as fallbacks must exist in `placetype_data` or an internal error occurs. ]==] export.placetype_data = { --[=[ If you need to sort the following, do this (using Vim): 1. Make sure all full-line comments are within the { ... } table, or are moved after and on the same line as single-line entries. 2. Make sure the table uses tabs everywhere for indent, and not spaces. 3. Mark the top of the table with `ma`, go to the bottom and execute the following two lines in sequence: :'a,.s/\n/\\n/g :s/\\n\(\t\[\)/\r\1/g The first command converts every newline to a literal `\n` sequence, so the whole thing becomes a single line, while the second command restores the newlines before the beginning of each entry. The effect is to convert all entries to a single line while not losing any information. (Potentially a negative lookahead could be used to do it all in one command.) 4. Execute the following to sort: :'a,.!perl -pe 's/^(\t\[")(.*?)(".*)$/$2 @@@ $1$2$3/' | sort -f | perl -pe 's/.*? @@@ //' Note that a simple `sort -f` (where `-f` means case-insensitive) would almost work, but it would sort "hill station" before "hill" and "county borough" before "county" because the space after e.g. "hill station" sorts before the quotation mark after e.g. "hill". The above command deals with this by extracting the key, prepending it followed by ` @@@ `, sorting, and then removing key (the classic decorate-sort-undecorate pattern). 5. Put the table back to multi-line format by marking the top of the table with `ma`, going to the bottom and executing :'a,.s/\\n/\r/g Note that for some reason, in order to get a match a newline in the left side of a replacement, you must use \n, but to insert a newline in the right sode of a replacement you must use \r. ]=] ["*"] = { link = false, cat_handler = generic_place_cat_handler, }, ["administrative atoll"] = { -- Maldives link = "+w:administrative divisions of the Maldives", preposition = "của", class = "subpolity", }, ["administrative capital"] = { link = "w", fallback = "capital city", }, ["administrative center"] = { link = "w", fallback = "non-city capital", }, ["administrative centre"] = { link = "w", fallback = "administrative center", }, ["administrative county"] = { link = "w", fallback = "county", }, ["administrative district"] = { link = "w", fallback = "district", }, ["administrative headquarters"] = { link = "separately", fallback = "administrative centre", }, ["administrative region"] = { link = true, preposition = "của", suffix = "region", -- but prefix is still "administrative region (of)" fallback = "region", class = "subpolity", }, ["administrative seat"] = { link = "w", fallback = "administrative centre", }, ["administrative territory"] = { link = "separately", preposition = "của", suffix = "territory", -- but prefix is still "administrative territory (of)" fallback = "territory", class = "subpolity", }, ["administrative unit"] = { -- Grrr, it's difficult to generalize about "administrative units". In Albania, "administrative unit" is an -- official term for a city-level division of municipalities; Wikipedia renders it using the more practical term -- "commune". In Pakistan, "administrative unit" is a collective term used to refer to all the different types -- of first-level divisions (four provinces, one federal territory, and two "disputed territories", i.e. Azad -- Kashmir and Gilgit-Balistan, that are variously described). For this reason, we set no fallback, but we need -- to include this so that it can be used as a placetype for Albania, categorizing as communes. link = "w", class = "subpolity", }, ["administrative village"] = { link = "w", preposition = "của", has_neighborhoods = true, class = "settlement", }, ["aimag"] = { -- used in Mongolia, Russia and China (Inner Mongolia); in Mongolia, equivalent to a province; -- in China, equivalent to a prefecture (below a province); in Russia, equivalent to a municipal district. link = "w", fallback = "prefecture", }, ["airport"] = { link = true, class = "man-made structure", default = {true}, }, ["alliance"] = { link = true, fallback = "confederation", }, ["archipelago"] = { link = true, fallback = "island", }, ["area"] = { link = true, preposition = "của", fallback = "geographic and cultural area", -- Areas can either be administrative divisions (specifically of Kuwait) or geographic areas. Assume the former -- when categorizing 'Areas' but the latter when handling e.g. 'historical area'. class = "subpolity", former_type = "geographic region", cat_handler = district_neighborhood_cat_handler, }, ["arm"] = { link = true, preposition = "của", class = "natural feature", default = {"Seas"}, }, ["arrondissement"] = { link = true, preposition = "của", -- FIXME!!! Grrrrr!!! In some countries, arrondissements are divisions of cities; in others, they are divisions -- of departments or provinces. Need to conditionalize on the country for both of the following. class = "subpolity", has_neighborhoods = true, }, ["associated province"] = { link = "separately", fallback = "province", }, ["atoll"] = { -- FIXME! Atolls are administrative divisions of the Maldives but natural features elsewhere. Need to -- conditionalize `class` on the country. See also `administrative atoll`. link = true, class = "natural feature", bare_category_parent = "islands", default = {true}, }, ["autonomous city"] = { link = "w", preposition = "của", fallback = "thành phố", has_neighborhoods = true, }, ["autonomous community"] = { -- Spain; refers to regional entities, not village-like entities, as might be expected from "community" link = true, preposition = "của", class = "subpolity", }, ["autonomous island"] = { -- Comoros; seems like an administrative atoll of the Maldives. link = "+w:autonomous islands of Comoros", preposition = "của", class = "subpolity", }, ["autonomous oblast"] = { link = true, preposition = "của", affix_type = "Suf", no_affix_strings = "oblast", class = "subpolity", }, ["autonomous okrug"] = { link = true, preposition = "của", affix_type = "Suf", no_affix_strings = "okrug", class = "subpolity", }, ["autonomous prefecture"] = { link = true, fallback = "prefecture", }, ["autonomous province"] = { link = "w", fallback = "province", }, ["autonomous region"] = { link = "w", preposition = "của", fallback = "administrative region", -- "administrative region" sets an affix of "region" but we want to display as "Tibet Autonomous Region" -- if the user writes 'ar:Suf/Tibet'. affix = "autonomous region", }, ["autonomous republic"] = { link = "w", preposition = "của", class = "subpolity", }, ["autonomous territorial unit"] = { -- Moldova; only two of them, one for Gagauzia and one for Transnistria. link = "w", preposition = "của", class = "subpolity", }, ["autonomous territory"] = { link = "w", fallback = "dependent territory", }, ["bailiwick"] = { -- Jersey, etc. link = true, fallback = "polity", }, ["barangay"] = { -- Philippines link = true, class = "settlement", -- Barangays are formal administrative divisions of a city rather than informal neighborhoods, but can use -- some of the properties of a neighborhood. fallback = "neighborhood", }, ["barrio"] = { -- Spanish-speaking countries; Philippines link = true, -- FIXME: Not completely correct, in some countries barrios are formal administrative divisions of a city. -- `class` will need to conditionalize on the country to be completely correct. fallback = "neighborhood", }, ["basin"] = { link = true, fallback = "lake", }, ["vịnh"] = { link = true, preposition = "của", class = "natural feature", addl_bare_category_parents = {"Vùng nước"}, default = {true}, }, ["bãi biển"] = { link = true, class = "natural feature", addl_bare_category_parents = {"nước"}, default = {true}, }, ["beach resort"] = { link = "w", fallback = "resort town", }, ["bishopric"] = { link = true, fallback = "polity", }, ["vùng nước!"] = { -- FIXME: This is (maybe?) a type category not a name category. There should be an option for this. We need to -- straighten out the type vs. name vs. related-to issue. category_link = "vùng nước", class = "natural feature", addl_bare_category_parents = {"địa mạo", "hệ thống sinh thái", "nước"}, }, ["borough"] = { link = true, preposition = "của", display_handler = borough_display_handler, has_neighborhoods = true, -- "former borough" could be a former settlement or a former part of a city but seems more likely to -- be a former subpolity, particularly in England. FIXME, we really need a handler to take care of this -- properly. class = "subpolity", -- Grr, some boroughs are city-like but some (e.g. in Britain) may be larger. }, ["borough seat"] = { link = true, entry_placetype_use_the = true, preposition = "của", has_neighborhoods = true, class = "capital", }, ["branch"] = { link = true, preposition = "của", fallback = "river", }, ["bridge"] = { link = true, class = "man-made structure", default = {"Named bridges"}, }, ["building"] = { link = true, class = "man-made structure", default = {"Named buildings"}, }, ["built-up area"] = { link = "w", fallback = "area", }, ["burgh"] = { link = true, fallback = "borough", }, ["business park"] = { link = true, fallback = "park", }, ["caliphate"] = { link = true, fallback = "polity", }, ["canton"] = { link = true, preposition = "của", affix_type = "suf", class = "subpolity", }, ["cape"] = { link = true, fallback = "headland", }, ["capital"] = { link = true, fallback = "capital city", }, ["capital city"] = { link = true, category_link = "[[capital city|capital cities]]: the [[seat of government|seats of government]] for a country or [[political]] [[division]] of a country", entry_placetype_use_the = true, preposition = "của", has_neighborhoods = true, class = "capital", bare_category_parent = "cities", cat_handler = capital_city_cat_handler, default = {true}, -- The following is necessary so that e.g. [[Melbourne]] defined as {{place|en|capital city|s/Victoria|c/Australia}} -- gets categorized in the bare category [[Category:en:Melbourne]]; otherwise placetype 'capital city' wouldn't -- match against the placetype 'city' of Melbourne. fallback = "thành phố", }, ["caplc"] = { link = "[[capital]] and [[large]]st [[city]]", plural_link = false, fallback = "capital city", }, ["captaincy"] = { link = true, preposition = "của", class = "subpolity", inherently_former = {"FORMER"}, }, ["caravan city"] = { link = "w", fallback = "thành phố", class = "settlement", inherently_former = {"ANCIENT", "FORMER"}, }, ["castle"] = { link = true, fallback = "building", }, ["cathedral city"] = { link = true, fallback = "thành phố", }, ["cattle station"] = { -- Australia link = true, fallback = "farm", }, ["census area"] = { link = true, affix_type = "Suf", has_neighborhoods = true, class = "non-admin settlement", }, ["census-designated place"] = { -- United States link = true, class = "non-admin settlement", }, ["census division"] = { -- Canada link = "w", preposition = "của", class = "subpolity", }, ["census town"] = { link = "w", fallback = "town", }, ["central business district"] = { link = true, fallback = "neighborhood", }, ["cercle"] = { -- Mali link = "+w:cercles of Mali", preposition = "của", class = "subpolity", }, ["ceremonial county"] = { link = true, fallback = "county", }, ["chain of islands"] = { link = "[[chain]] of [[island]]s", plural = "chains of islands", plural_link = "[[chain]]s of [[island]]s", fallback = "island", }, ["channel"] = { link = true, fallback = "strait", }, ["charter community"] = { -- Northwest Territories, Canada link = "w", fallback = "village", }, ["thành phố"] = { link = true, generic_before_non_cities = "của", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["city-state"] = { link = true, category_link = "[[sovereign]] [[microstate]]s consisting of a single [[city]] and [[w:dependent territory|dependent territories]]", has_neighborhoods = true, class = "settlement", ["continent/*"] = {"City-states", "Cities in +++", "Quốc gia của +++", "National capitals"}, default = {"City-states", "Cities", "Quốc gia", "National capitals"}, }, ["civil parish"] = { -- Mostly England; similar to municipalities link = true, preposition = "của", affix_type = "suf", has_neighborhoods = true, class = "subpolity", }, ["claimed political division"] = { link = "[[claim]]ed [[political]] [[division]]", class = "subpolity", default = {true}, }, ["co-capital"] = { link = "[[co-]][[capital]]", fallback = "capital city", }, ["coal city"] = { link = "+w:coal town", fallback = "thành phố", }, ["coal town"] = { link = "w", fallback = "town", }, ["collectivity"] = { link = "w", preposition = "của", -- No default; these are weird one-off governmental divisions in France (esp. for overseas collectivities) class = "subpolity", }, ["colony"] = { link = true, fallback = "dependent territory", }, ["comarca"] = { -- per Wikipedia: traditional region or local administrative division found in Portugal, Spain, and some of -- their former colonies, like Brazil, Nicaragua, and Panama. In the Valencian Community, for example, it -- sits between municipalities and provinces, something like a county or district. link = true, preposition = "của", class = "subpolity", }, ["commandery"] = { link = true, preposition = "của", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["commonwealth"] = { link = true, preposition = "của", -- No default; applies specifically to Puerto Rico class = "subpolity", }, ["commune"] = { link = true, fallback = "municipality", }, ["community"] = { link = true, category_link = "[[community|communities]] of all sizes", fallback = "village", }, ["community development block"] = { -- in India; appears to be similar to a rural municipality; groups several villages, unclear if there will be -- neighborhoods so I'm not setting `has_neighborhoods` for now link = "w", affix_type = "suf", no_affix_strings = "block", class = "subpolity", }, ["comune"] = { -- Italy, Switzerland link = true, fallback = "municipality", }, ["condominium"] = { link = true, fallback = "polity", }, ["confederacy"] = { link = true, fallback = "confederation", }, ["confederation"] = { link = true, fallback = "polity", }, ["constituency"] = { -- currently we have them as political divisions of Namibia but many countries have them link = true, preposition = "của", class = "subpolity", }, ["constituent country"] = { link = true, preposition = "của", class = "subpolity", }, ["constituent part"] = { link = "separately", preposition = "của", class = "subpolity", }, ["constituent republic"] = { -- Of Russia, Yugoslavia, etc. link = "separately", preposition = "của", class = "subpolity", }, ["counties and county-level cities!"] = { -- This is used when grouping counties and county-level cities under prefecture-level cities in China. category_link = "[[county|counties]] and [[county-level city|county-level cities]]", class = "subpolity", }, ["continent"] = { link = true, category_link = false, -- can't occur as a bare category class = "natural feature", default = {"Lục địa"}, }, ["continental region"] = { link = "separately", category_link = false, -- can't occur as a bare category class = "geographic region", fallback = "continent", }, ["lục địa!"] = { category_link = "[[continent]]s and [[continent]]-[[level]] [[region]]s (e.g. [[Polynesia]])", class = "geographic region", default = {"Lục địa"}, }, ["council area"] = { link = true, -- in Scotland; similar to a county preposition = "của", affix_type = "suf", class = "subpolity", }, ["quốc gia"] = { link = true, class = "polity", ["continent/*"] = {true, "Quốc gia"}, default = {"Quốc gia"}, }, ["country-like entities!"] = { category_link = "[[polity|polities]] not normally considered [[country|countries]] but treated similarly for categorization purposes; typically, [[unrecognized]] [[de-facto]] countries or [[w:dependent territory|dependent territories]]", class = "polity", }, ["county"] = { link = true, preposition = "của", display_handler = county_display_handler, class = "subpolity", }, ["county borough"] = { link = true, -- in Wales; similar to a county preposition = "của", affix_type = "suf", fallback = "borough", class = "subpolity", }, ["county seat"] = { link = true, entry_placetype_use_the = true, preposition = "của", has_neighborhoods = true, class = "capital", }, ["county town"] = { link = true, entry_placetype_use_the = true, preposition = "của", fallback = "town", has_neighborhoods = true, class = "capital", }, ["county-administered city"] = { -- In Taiwan, per Wikipedia similar to a Taiwanese township or district, which is a small city. -- NOT anything like a "county-level city" in PR China, which is a county masquerading as a city. link = "w", fallback = "thành phố", has_neighborhoods = true, class = "settlement", }, ["county-controlled city"] = { -- Taiwan link = "w", fallback = "county-administered city", }, ["county-level city"] = { -- PR China link = "w", fallback = "prefecture-level city", }, ["crater lake"] = { link = true, fallback = "lake", }, ["creek"] = { link = true, fallback = "stream", }, ["Crown colony"] = { link = "+crown colony", fallback = "crown colony", }, ["crown colony"] = { link = true, fallback = "colony", }, ["Crown dependency"] = { link = true, fallback = "dependent territory", }, ["crown dependency"] = { link = true, fallback = "dependent territory", }, ["cultural area"] = { link = "w", fallback = "geographic and cultural area", }, ["cultural region"] = { link = "w", fallback = "geographic and cultural area", }, ["delegation"] = { -- Tunisia link = "+w:delegations of Tunisia", preposition = "của", class = "subpolity", }, ["department"] = { link = true, preposition = "của", affix_type = "suf", class = "subpolity", }, ["departmental capital"] = { link = "separately", fallback = "capital city", }, ["dependency"] = { link = true, fallback = "dependent territory", }, ["dependent territory"] = { link = "w", preposition = "của", class = "subpolity", former_type = "dependent territory", bare_category_parent = "political divisions", ["country/*"] = {true}, default = {true}, }, ["hoang mạc"] = { link = true, class = "natural feature", addl_bare_category_parents = {"hệ thống sinh thái"}, default = {true}, }, ["deserted mediaeval village"] = { link = "w", fallback = "deserted medieval village", }, ["deserted medieval village"] = { link = "w", fallback = "ANCIENT settlement", }, ["direct-administered municipality"] = { -- China link = "+w:direct-administered municipalities of China", fallback = "municipality", }, ["direct-controlled municipality"] = { -- several countries link = "w", fallback = "municipality", }, ["distributary"] = { link = true, preposition = "của", fallback = "river", }, ["district"] = { link = true, preposition = "của", affix_type = "suf", -- Grrr! FIXME! Here is where we need handlers for `class`. Using similar logic to -- district_neighborhood_cat_handler, we need to check if we're below or above a city to determine if the class -- is "settlement" or "subpolity". class = "subpolity", cat_handler = district_neighborhood_cat_handler, -- No default. Countries for which districts are political divisions will get entries. }, ["districts and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Portugal. category_link = "[[district]]s and [[autonomous region]]s", class = "subpolity", }, ["districts and autonomous territorial units!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Moldova. category_link = "[[district]]s and [[w:autonomous territorial unit|autonomous territorial unit]]s", class = "subpolity", }, ["district capital"] = { link = "separately", fallback = "capital city", }, ["district headquarters"] = { link = "separately", fallback = "administrative centre", }, ["district municipality"] = { -- In Canada, a district municipality is equivalent to a rural municipality and won't have neighborhoods; in -- South Africa, district municipalities group local municipalities and hence won't have neighborhoods. link = "w", preposition = "của", affix_type = "suf", no_affix_strings = {"district", "municipality"}, fallback = "municipality", class = "subpolity", }, ["division"] = { link = true, preposition = "của", class = "subpolity", }, ["division capital"] = { link = "separately", fallback = "capital city", }, ["dome"] = { link = true, fallback = "mountain", }, ["dormant volcano"] = { link = true, fallback = "volcano", }, ["duchy"] = { link = true, fallback = "polity", }, ["emirate"] = { link = true, preposition = "của", -- FIXME: Can be subpolities (of the United Arab Emirates). fallback = "polity", }, ["empire"] = { link = true, fallback = "polity", }, ["enclave"] = { link = true, preposition = "của", -- Enclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["entity"] = { -- Bosnia and Herzegovina link = "+w:entities of Bosnia and Herzegovina", preposition = "của", class = "subpolity", }, ["escarpment"] = { link = true, fallback = "mountain", }, ["ethnographic region"] = { -- used in Lithuania link = "+w:ethnographic regions of Lithuania", fallback = "geographic and cultural area", }, ["exclave"] = { link = true, preposition = "của", -- exclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["external territory"] = { link = "separately", fallback = "dependent territory", }, ["farm"] = { link = true, class = "non-admin settlement", default = {"Farms and ranches"}, }, ["farms and ranches!"] = { category_link = "[[farm]]s and [[ranch]]es", class = "non-admin settlement", }, ["federal city"] = { link = "w", preposition = "của", fallback = "thành phố", }, ["federal district"] = { link = true, preposition = "của", -- Might have neighborhoods as federal districts are often cities (e.g. Mexico City) has_neighborhoods = true, class = "settlement", }, ["federal subject"] = { -- In Russia; a generic term for first-level administrative divisions (republics, oblasts, okrugs, krais, -- autonomous okrugs and autonomous oblasts). link = "w", preposition = "của", class = "subpolity", }, ["federal territory"] = { link = "w", fallback = "territory", }, ["fictional location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["First Nations reserve"] = { -- Canada link = "[[First Nations]] [[w:Indian reserve|reserve]]", -- Wikipedia uses "Indian reserve"; presumably that is the legal term fallback = "Indian reserve", class = "subpolity", }, ["fjord"] = { link = true, class = "natural feature", addl_bare_category_parents = {"vùng nước"}, default = {true}, }, ["footpath"] = { link = true, fallback = "road", }, ["rừng"] = { link = true, class = "natural feature", addl_bare_category_parents = {"hệ thống sinh thái", "lâm nghiệp"}, default = {true}, }, ["fort"] = { link = true, fallback = "building", }, ["fortress"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- fortresses -> fortresse, so put an entry here to ensure we singularize correctly. plural = "fortresses", fallback = "building", }, ["frazione"] = { link = "w", fallback = "hamlet", }, ["freeway"] = { link = true, fallback = "road", }, ["French prefecture"] = { link = "[[w:prefectures in France|prefecture]]", entry_placetype_use_the = true, preposition = "của", has_neighborhoods = true, class = "capital", }, ["geographic and cultural area"] = { link = "+w:cultural area", -- `generic_before_non_cities` is used when generating the category description of categories of the format -- `Geographic and cultural areas of PLACE`. `preposition` is used when generating {{place}} description and -- categories for any placetype that falls back to `geographic and cultural area`. generic_before_non_cities = "của", preposition = "của", class = "geographic region", bare_category_parent = "places", ["country/*"] = {true}, ["constituent country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["geographic area"] = { link = "+w:geographic region", fallback = "geographic and cultural area", }, ["geographic region"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical area"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical region"] = { link = "w", fallback = "geographic and cultural area", }, ["geopolitical zone"] = { -- Nigeria link = true, preposition = "của", class = "subpolity", }, ["gewog"] = { -- Bhutan link = true, preposition = "của", class = "subpolity", }, ["ghost town"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", bare_category_parent = "former settlements", cat_handler = city_type_cat_handler, default = {true}, }, ["glen"] = { link = true, fallback = "valley", }, ["governorate"] = { link = true, preposition = "của", affix_type = "suf", class = "subpolity", }, ["greater administrative region"] = { -- China (former division) link = "w", preposition = "của", class = "subpolity", inherently_former = {"FORMER"}, }, ["gromada"] = { -- Poland (former division) link = "w", preposition = "của", affix_type = "Pref", class = "subpolity", inherently_former = {"FORMER"}, }, ["group of islands"] = { link = "[[group]] of [[island]]s", plural = "groups of islands", plural_link = "[[group]]s of [[island]]s", fallback = "island group", }, ["vịnh biển"] = { link = true, preposition = "của", class = "natural feature", addl_bare_category_parents = {"vùng nước"}, default = {true}, }, ["hamlet"] = { link = true, fallback = "village", }, ["harbor city"] = { link = "separately", fallback = "thành phố", }, ["harbor town"] = { link = "separately", fallback = "town", }, ["harbour city"] = { link = "separately", fallback = "thành phố", }, ["harbour town"] = { link = "separately", fallback = "town", }, ["mũi đất"] = { link = true, class = "natural feature", addl_bare_category_parents = {"địa mạo"}, default = {true}, }, ["headquarters"] = { link = "w", fallback = "administrative centre", }, ["bãi hoang"] = { link = true, fallback = "đồng hoang", }, ["hemisphere"] = { link = true, entry_placetype_use_the = true, fallback = "continental region", }, ["highway"] = { link = true, fallback = "road", }, ["đồi"] = { link = true, class = "natural feature", addl_bare_category_parents = {"địa mạo"}, default = {true}, }, ["hill station"] = { link = "w", fallback = "town", }, ["hill town"] = { link = "w", fallback = "town", }, ["historic region"] = { -- provided only for the link link = "+w:historical region", fallback = "FORMER geographic region", }, ["historical county"] = { -- needed for historical counties of England/etc. link = "+w:historic county", fallback = "FORMER subpolity", }, ["historical region"] = { -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["home rule city"] = { link = "w", fallback = "thành phố", }, ["home rule municipality"] = { link = "w", fallback = "municipality", }, ["hot spring"] = { link = true, fallback = "spring", }, ["house"] = { link = true, fallback = "building", }, ["housing estate"] = { -- not the same as a housing project (i.e. public housing) link = true, -- not exactly the case but approximately fallback = "neighborhood", }, ["hromada"] = { -- Ukraine link = "w", disallow_in_entries = "Use placetype 'urban hromada', 'rural hromada' or 'settlement hromada' in place of bare 'hromada'", disallow_in_holonyms = "Use placetype 'urban hromada'/'uhrom', 'rural hromada'/'rhrom' or 'settlement hromada'/'shrom' in place of bare 'hromada'", preposition = "của", affix_type = "suf", class = "subpolity", }, ["inactive volcano"] = { link = "w", fallback = "dormant volcano", }, ["independent city"] = { link = true, fallback = "thành phố", }, ["independent town"] = { link = "+independent city", fallback = "town", }, ["Indian reservation"] = { link = "w", -- In the US. Also known as "Native American reservation" or "domestic dependent nation", and the reservations -- themselves often use the term "nation" in their official name (e.g. the "Navajo Nation"). But Wikipedia puts -- the article at [[w:Indian reservation]] and uses that term when describing e.g. what the Navajo Nation is, -- so this must still be the legal term. preposition = "của", class = "subpolity", default = {true}, }, ["Indian reserve"] = { link = "w", -- In Canada. "First Nations reserve" sounds more modern/PC but Wikipedia uses "Indian reserve"; presumably that -- is still the legal term. preposition = "của", class = "subpolity", default = {true}, }, ["inland sea"] = { -- note, we also have 'inland' as a qualifier link = true, fallback = "sea", }, ["inner city area"] = { link = "[[inner city]] [[area]]", fallback = "neighborhood", }, ["đảo"] = { link = true, preposition = "của", class = "natural feature", addl_bare_category_parents = {"địa mạo"}, default = {true}, }, ["island country"] = { -- FIXME: The following should map to both 'island' and 'country'. link = "w", fallback = "country", }, ["island group"] = { link = "separately", fallback = "island", }, ["island municipality"] = { link = "w", fallback = "municipality", }, ["islet"] = { link = "w", fallback = "island", }, ["Israeli settlement"] = { link = "w", class = "settlement", default = {true}, }, ["judicial capital"] = { link = "w", fallback = "capital city", }, ["khanate"] = { link = true, fallback = "polity", }, ["kibbutz"] = { link = true, plural = "kibbutzim", class = "non-admin settlement", default = {true}, }, ["kingdom"] = { link = true, fallback = "monarchy", }, ["krai"] = { link = true, preposition = "của", affix_type = "Suf", class = "subpolity", }, ["hồ"] = { link = true, class = "natural feature", addl_bare_category_parents = {"vùng nước"}, default = {true}, }, ["địa mạo!"] = { category_link = "[[địa mạo]]", bare_category_parent = "địa danh", addl_bare_category_parents = {"Trái Đất"}, }, ["largest city"] = { link = "[[large]]st [[city]]", entry_placetype_use_the = true, fallback = "thành phố", has_neighborhoods = true, }, ["league"] = { link = true, fallback = "confederation", }, ["legislative capital"] = { link = "separately", fallback = "capital city", }, ["library"] = { link = true, fallback = "building", }, ["lieutenancy area"] = { -- used in the United Kingdom; per Wikipedia: -- In England, lieutenancy areas are colloquially known as the ceremonial counties, although this phrase does -- not appear in any legislation referring to them. The lieutenancy areas of Scotland are subdivisions of -- Scotland that are more or less based on the counties of Scotland, making use of the major cities as separate -- entities.[2] In Wales, the lieutenancy areas are known as the preserved counties of Wales and are based on -- those used for lieutenancy and local government between 1974 and 1996. The lieutenancy areas of Northern -- Ireland correspond to the six counties and two former county boroughs.[3] link = "w", fallback = "ceremonial county", }, ["local authority district"] = { link = "w", fallback = "local government district", }, ["local government area"] = { -- Australia link = "w", preposition = "của", class = "subpolity", }, ["local council"] = { -- Malta; similar to municipalities link = "+w:local councils of Malta", preposition = "của", fallback = "municipality", }, ["local government district"] = { link = "w", preposition = "của", affix_type = "suf", affix = "district", class = "subpolity", }, ["local government district with borough status"] = { link = "[[w:local government district|local government district]] with [[w:borough status|borough status]]", plural = "local government districts with borough status", plural_link = "[[w:local government district|local government districts]] with [[w:borough status|borough status]]", preposition = "của", affix_type = "suf", affix = "district", class = "subpolity", }, ["local urban district"] = { link = "w", fallback = "unincorporated community", }, ["locality"] = { link = "+w:locality (settlement)", -- not necessarily true, but usually is the case fallback = "village", }, ["London borough"] = { link = "w", preposition = "của", affix_type = "pref", affix = "borough", fallback = "local government district with borough status", has_neighborhoods = true, }, ["macroregion"] = { link = true, fallback = "region", }, ["man-made structures!"] = { category_link = "[[w:geographical feature#Engineered constructs|man-made structures]] such as [[airport]]s, [[university|universities]] and [[metro station]]s", bare_category_parent = "places", }, ["manor"] = { -- FIXME: or is this more like a farm? link = true, fallback = "building", }, ["marginal sea"] = { link = true, preposition = "của", fallback = "sea", }, ["market city"] = { link = "+market town", fallback = "thành phố", }, ["market town"] = { link = true, fallback = "town", }, ["massif"] = { link = true, fallback = "mountain", }, ["megacity"] = { link = true, fallback = "thành phố", }, ["metro station"] = { link = true, class = "man-made structure", }, ["metropolitan borough"] = { link = true, preposition = "của", affix_type = "Pref", no_affix_strings = {"borough", "thành phố"}, fallback = "local government district", has_neighborhoods = true, }, ["metropolitan city"] = { -- These exist e.g. in Italy and are more like municipalities or even provinces than cities. link = true, preposition = "của", affix_type = "Pref", no_affix_strings = {"metropolitan", "thành phố"}, class = "subpolity", }, ["metropolitan county"] = { link = true, fallback = "county", }, ["metropolitan municipality"] = { -- In South Africa, metropolitan municipalities group local municipalities and are like districts, between -- provinces and municipalities. -- In Turkey, metropolitan municipalities are provinces-level. link = "w", preposition = "của", affix_type = "Suf", no_affix_strings = {"metropolitan", "municipality"}, fallback = "municipality", class = "subpolity", }, ["microdistrict"] = { -- residential complex in post-Soviet states link = true, fallback = "neighborhood", }, ["micronations!"] = { -- FIXME, merge with microstate category_link = "[[micronation]]s", bare_category_parent = "quốc gia", }, ["microstate"] = { link = true, fallback = "country", }, ["military base"] = { link = "w", class = "settlement", -- or "man-made structure"? default = {true}, }, ["minster town"] = { -- England link = "separately", fallback = "town", }, ["monarchy"] = { link = true, fallback = "polity", }, ["đồng hoang"] = { link = true, class = "natural feature", addl_bare_category_parents = {"địa mạo", "hệ thống sinh thái"}, default = {true}, }, ["thảo nguyên"] = { link = true, fallback = "đồng hoang", }, ["motorway"] = { link = true, fallback = "road", }, ["mountain"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["mountain indigenous district"] = { -- Taiwan link = "+w:district (Taiwan)", fallback = "district", }, ["mountain indigenous township"] = { -- Taiwan link = "+w:township (Taiwan)", fallback = "township", }, ["mountain pass"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "mountain passes", class = "natural feature", addl_bare_category_parents = {"mountains"}, default = {true}, }, ["mountain range"] = { link = true, fallback = "mountain", }, ["mountainous region"] = { link = "separately", fallback = "region", }, ["mukim"] = { -- Malaysia, Brunei, Indonesia, Singapore link = true, preposition = "của", class = "subpolity", }, ["municipal district"] = { link = "w", -- meaning varies depending on the country; for now, assume no neighborhoods. -- FIXME: has_neighborhoods might have to be a function that looks at the containing holonyms. preposition = "của", affix_type = "Pref", no_affix_strings = "district", fallback = "municipality", }, ["municipality"] = { link = true, preposition = "của", has_neighborhoods = true, class = "subpolity", }, ["municipality with city status"] = { link = "[[municipality]] with [[w:city status|city status]]", plural = "municipalities with city status", plural_link = "[[municipality|municipalities]] with [[w:city status|city status]]", fallback = "municipality", }, ["museum"] = { link = true, fallback = "building", }, ["địa danh thần thoại"] = { link = "địa danh thần thoại", former_type = "!", class = "hypothetical location", bare_category_parent = "địa danh", default = {true}, }, ["named bridges!"] = { category_link = "notable [[bridge]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"bridges"}, }, ["named buildings!"] = { category_link = "notable [[house]]s, [[library|libraries]] and other [[building]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"buildings"}, }, ["named roads!"] = { category_link = "notable [[road]]s, [[highway]]s, [[trail]]s and similar linear structures", bare_category_parent = "man-made structures", addl_bare_category_parents = {"roads"}, }, ["national capital"] = { link = "w", fallback = "capital city", }, ["national park"] = { link = true, fallback = "park", }, ["đặc điểm tự nhiên!"] = { category_link = "tổng hợp các yếu tố vật chất hình thành tồn tại", bare_category_parent = "địa danh", }, ["neighborhood"] = { -- The majority of the properties here apply to both `neighborhoods` and `neighbourhoods`; the choice of which -- one to use is made by district_neighborhood_cat_handler() based on the value of `british_spelling` for the -- location (city, political division, etc.) of the holonym that follows the word "neighbo(u)hoods" in the -- category name. It does *NOT* depend on whether the {{place}} call uses "neighborhoods" or "neighbourhoods". -- (In general it can't, because other things like "urban areas", "districts", "subdivisions" and the like also -- categorize as neighbo(u)rhoods.) link = true, -- See below. These are used by category handlers in [[Module:category tree/topic cat/data/Places]]. generic_before_non_cities = "in", generic_before_cities = "của", -- The following text is suitable for the top-level description of a neighborhood as well as categories of the -- form `Neighborhoods in POLDIV` e.g. `Neighborhoods in Illinois, USA` but not for categories of the form -- `Neighborhoods of Chicago`, where we'd get "... and other subportions of [[city|cities]] of [[Chicago]]". category_link = "[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighborhood]]s, [[district]]s and other subportions", -- NOTE: This setting is needed for administrative divisions like barangays that fall back to `neighborhood`, -- when set in [[Module:place/locations]] for a specific country (e.g. the Philippines). The above settings -- for `generic_before_non_cities` and `generic_before_cities` are used by category handlers in -- [[Module:category tree/topic cat/data/Places]] for `Neighborhoods in POLDIV` and `Neighborhoods of CITY` -- categories. In fact, district_neighborhood_cat_handler() does not currently pay attention to them, but -- generates "của" before cities and "in" before non-cities regardless. (FIXME: We should change that.) preposition = "của", class = "non-admin settlement", cat_handler = district_neighborhood_cat_handler, }, ["neighbourhood"] = { link = true, category_link = "[[neighbourhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighbourhood]]s, [[district]]s and other subportions", fallback = "neighborhood", }, ["new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", preposition = "in", class = "subpolity", --? }, ["new town"] = { link = true, fallback = "town", }, ["non-city capital"] = { link = "[[capital]]", entry_placetype_use_the = true, preposition = "của", has_neighborhoods = true, class = "capital", cat_handler = function(data) return capital_city_cat_handler(data, "non-city") end, -- FIXME, do we need the following? default = {true}, }, ["non-metropolitan county"] = { link = "w", fallback = "county", }, ["non-metropolitan district"] = { link = "w", fallback = "local government district", }, ["non-sovereign kingdom"] = { -- especially in Africa and Asia link = "+w:non-sovereign monarchy", generic_before_non_cities = "in", class = "subpolity", ["country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["non-sovereign monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["oblast"] = { link = true, preposition = "của", affix_type = "Suf", class = "subpolity", }, ["oblasts and autonomous republics!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Ukraine. category_link = "[[oblast]]s and [[w:autonomous republic|autonomous republic]]s", class = "subpolity", }, ["đại dương"] = { link = true, class = "natural feature", addl_bare_category_parents = {"biển", "vùng nước"}, default = {true}, }, ["okrug"] = { link = true, preposition = "của", affix_type = "Suf", class = "subpolity", }, ["overseas collectivity"] = { link = "w", fallback = "collectivity", }, ["overseas department"] = { link = "w", fallback = "department", }, ["overseas territory"] = { link = "w", fallback = "dependent territory", }, ["parish"] = { link = true, preposition = "của", affix_type = "suf", class = "subpolity", }, ["parish municipality"] = { -- in Quebec, often similar to a rural village; the famous [[Saint-Louis-du-Ha! Ha!]] is one of them. link = "+w:parish municipality (Quebec)", preposition = "của", fallback = "municipality", has_neighborhoods = true, }, ["parish seat"] = { link = true, entry_placetype_use_the = true, preposition = "của", class = "capital", has_neighborhoods = true, }, ["park"] = { link = true, class = "man-made structure", default = {true}, }, ["pass"] = { link = "+mountain pass", -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "passes", fallback = "mountain pass", }, ["path"] = { link = true, fallback = "road", }, ["peak"] = { link = true, fallback = "mountain", }, ["peninsula"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["periphery"] = { link = true, preposition = "của", class = "subpolity", }, ["địa danh!"] = { generic_before_non_cities = "của", generic_before_cities = "của", class = "generic place", category_link = "[[place]]s of all sorts", -- `category_link_top_level` control the description used in the top-level [[Category:Places]] and -- language-specific variants such as [[Category:en:Places]]. The actual text for a language-spefic variant is -- "{{{langname}}} names of [[geographical]] [[place]]s of all sorts; [[toponym]]s." where the "names of" -- portion is automatically generated by the appropriate handler in -- [[Module:category tree/topic cat/data/Places]]. category_link_top_level = "[[geographical]] [[place]]s of all sorts; [[toponym]]s", bare_category_parent = "tên", }, ["planned community"] = { -- Include this so we don't categorize 'planned community' into villages, as 'community' does. link = true, class = "settlement", has_neighborhoods = true, }, ["plateau"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, -- FIXME: Should generate both "Plateaus" and the appropriate 'geographic and cultural area' category }, ["Polish colony"] = { link = "[[w:colony (Poland)|colony]]", affix_type = "suf", affix = "colony", fallback = "village", has_neighborhoods = true, }, ["political divisions!"] = { category_link = "[[political]] [[division]]s and [[subdivision]]s, such as [[state]]s, [[province]]s, [[county|counties]] or [[district]]s", bare_category_parent = "places", }, ["tổ chức chính trị"] = { link = true, category_link = "[[independent]] or [[semi-]][[independent]] [[polity|polities]]", class = "polity", bare_category_parent = "địa danh", default = {true}, }, ["populated place"] = { link = "+w:populated place", -- not necessarily true, but usually is the case fallback = "village", }, ["port"] = { link = true, class = "man-made structure", default = {true}, }, ["port city"] = { -- FIXME: should categorize into "Ports" as well as "Cities" link = true, fallback = "thành phố", }, ["port town"] = { -- FIXME: should categorize into "Ports" as well as "Towns" link = "w", fallback = "town", }, ["prefecture"] = { -- FIXME! `prefecture` is like a county in Japan and elsewhere but a department capital city in France. -- May need `has_neighborhoods` to be a function. link = true, preposition = "của", display_handler = prefecture_display_handler, class = "subpolity", }, ["prefecture-level city"] = { -- China; they are huge entities with a central city; not cities themselves. link = "w", preposition = "của", class = "subpolity", }, ["preserved county"] = { -- In Wales; they are former counties enshrined in law; there are 8 of them and each consists of one or more -- "principal areas" (styled as "counties" or "county boroughs"), of which there are 22. link = "w", preposition = "của", class = "subpolity", inherently_former = {"FORMER"}, }, ["primary area"] = { -- a grouping of "districts" (neighborhoods) in Gothenburg, Sweden link = "+w:sv:primärområde", fallback = "neighborhood", }, ["principality"] = { link = true, fallback = "monarchy", }, ["promontory"] = { link = true, fallback = "headland", }, ["protectorate"] = { link = true, fallback = "dependent territory", }, ["province"] = { link = true, preposition = "của", display_handler = province_display_handler, class = "subpolity", }, ["provinces and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case China. category_link = "[[province]]s and [[autonomous region]]s", class = "subpolity", }, ["provinces and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Canada and Pakistan. category_link = "[[province]]s and [[territory|territories]]", class = "subpolity", }, ["provincial capital"] = { link = true, fallback = "capital city", }, ["raion"] = { link = true, preposition = "của", affix_type = "Suf", class = "subpolity", }, ["ranch"] = { link = true, fallback = "farm", }, ["range"] = { -- FIXME: Where is this used? Is it a mountain range? link = true, class = "natural feature", }, ["regency"] = { link = true, preposition = "của", class = "subpolity", }, ["region"] = { link = true, preposition = "của", -- If 'region' isn't a specific administrative division, fall back to 'geographic and cultural area' fallback = "geographic and cultural area", -- "former region" is a subpolity but traditional/historic(al)/ancient/medieval/etc. is a geographic region class = "geographic region", }, ["regional capital"] = { link = "separately", fallback = "capital city", }, ["regional county municipality"] = { -- Quebec link = "w", preposition = "của", affix_type = "Suf", no_affix_strings = {"municipality", "county"}, fallback = "municipality", }, ["regional district"] = { link = "w", preposition = "của", affix_type = "Pref", no_affix_strings = "district", fallback = "district", }, ["regional municipality"] = { link = "w", preposition = "của", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", }, ["regional unit"] = { link = "w", preposition = "của", affix_type = "suf", class = "subpolity", }, ["registration county"] = { -- Used in Scotland for land registration purposes; formerly used in England, Wales and Ireland for statistical -- purposes (registration of births, deaths and marriages, and for the output of census information). link = "w", fallback = "county", }, ["republic"] = { -- Of Russia, Yugoslavia, etc. "Republics" in general are sovereign but we use "country" in that case. link = true, fallback = "constituent republic", }, ["research base"] = { link = "+w:research station", fallback = "research station", }, ["research station"] = { link = "w", class = "non-admin settlement", -- or "man-made structure"? default = {true}, }, ["reservoir"] = { link = true, fallback = "lake", }, ["residential area"] = { link = "separately", fallback = "neighborhood", }, ["resort city"] = { link = "w", fallback = "thành phố", }, ["resort town"] = { link = "w", fallback = "town", }, ["sông"] = { link = true, generic_before_non_cities = "của", class = "natural feature", addl_bare_category_parents = {"vùng nước"}, cat_handler = city_type_cat_handler, ["continent/*"] = {true}, default = {true}, }, ["river island"] = { link = "w", fallback = "island", }, ["road"] = { link = true, class = "man-made structure", default = {"Named roads"}, }, ["Roman province"] = { -- FIXME! Eliminate this in favor of 'former province|emp/Roman Empire' link = "w", default = {"Provinces of the Roman Empire"}, class = "subpolity", }, ["royal borough"] = { link = "w", preposition = "của", affix_type = "Pref", no_affix_strings = {"royal", "borough"}, fallback = "local government district with borough status", has_neighborhoods = true, }, ["royal burgh"] = { link = true, fallback = "borough", }, ["royal capital"] = { link = "w", fallback = "capital city", }, ["rural committee"] = { -- Hong Kong; a group of villages link = "w", affix_type = "Suf", has_neighborhoods = true, class = "settlement", }, ["rural community"] = { -- New Brunswick link = "+w:list of municipalities in New_Brunswick#Rural communities", fallback = "municipality", }, ["rural hromada"] = { link = "[[rural]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["rural municipality"] = { link = "w", preposition = "của", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", has_neighborhoods = true, --? }, ["rural township"] = { -- Taiwan link = "+w:rural township (Taiwan)", fallback = "township", }, ["sanctuary"] = { link = true, fallback = "temple", }, ["satrapy"] = { link = true, preposition = "của", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["biển"] = { link = true, class = "natural feature", addl_bare_category_parents = {"vùng nước"}, default = {"Biển"}, }, ["seaport"] = { link = true, fallback = "port", }, ["seat"] = { link = true, fallback = "administrative centre", }, ["self-administered area"] = { -- Myanmar (groups self-administered divisions and zones) link = "+w:self-administered zone", preposition = "của", class = "subpolity", }, ["self-administered division"] = { -- Myanmar (only one of them: Wa Self-Administered Division) link = "w", fallback = "self-administered area", }, ["self-administered zone"] = { -- Myanmar (five of them) link = "w", fallback = "self-administered area", }, ["separatist state"] = { link = "separately", fallback = "unrecognized country", }, ["settlement"] = { link = true, category_link = "[[settlement]]s such as [[city|cities]], [[village]]s and [[farm]]s", bare_category_parent = "places", -- not necessarily true, but usually is the case fallback = "village", }, ["settlement hromada"] = { link = "[[w:Populated places in Ukraine#Rural settlements|settlement]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["sheading"] = { -- Isle of Man link = true, fallback = "district", }, ["sheep station"] = { -- Australia link = true, fallback = "farm", }, ["shire"] = { link = true, fallback = "county", }, ["shire county"] = { link = "w", fallback = "county", }, ["shire town"] = { link = true, fallback = "county seat", }, ["ski resort city"] = { link = "[[ski resort]] [[city]]", fallback = "thành phố", }, ["ski resort town"] = { link = "[[ski resort]] [[town]]", fallback = "town", }, ["spa city"] = { link = "+w:spa town", fallback = "thành phố", }, ["spa town"] = { link = "w", fallback = "town", }, ["space station"] = { link = true, fallback = "research station", }, ["special administrative region"] = { -- in China; in practice they are city-like (Hong Kong, Macau); also [[Oecusse]] in East Timor is formally a -- "special administrative region"; North Korea had one such region planned (Sinuiju) but abandoned; Indonesia -- has similar "special regions" of Jakarta, Yogyakarta and Aceh; and South Sudan has three "special -- administrative areas" link = "+w:special administrative regions of China", preposition = "của", class = "subpolity", has_neighborhoods = true, --? -- no suffix since places in Hong Kong or Macau are listed without China, except Hong Kong and Macau themselves -- they also contain regions (or areas), e.g. [[Kowloon]], so it would be confusing suffix = "", }, ["special collectivity"] = { link = "w", fallback = "collectivity", }, ["special municipality"] = { -- formerly linked to the Taiwan article but there are also special municipalities of the Netherlands link = "w", fallback = "municipality", }, ["special ward"] = { -- Tokyo link = true, fallback = "municipality", }, ["spit"] = { link = true, fallback = "peninsula", }, ["spring"] = { link = true, class = "natural feature", default = {true}, }, ["star"] = { link = true, class = "natural feature", default = {true}, }, ["state"] = { link = true, preposition = "của", class = "subpolity", -- 'former/historical state' could refer either to a state of a country (a division) or a state = sovereign -- entity. The latter appears more common (e.g. in various "ancient states" of East Asia). former_type = "polity", }, ["states and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Australia. category_link = "[[state]]s and [[territory|territories]]", class = "subpolity", }, ["states and union territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case India. category_link = "[[state]]s and [[union territory|union territories]]", class = "subpolity", }, ["state capital"] = { link = true, fallback = "capital city", }, ["state park"] = { link = true, fallback = "park", }, ["state-level new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", fallback = "new area", }, ["statistical region"] = { -- Slovenia link = true, fallback = "administrative region", }, ["statutory city"] = { link = "w", fallback = "thành phố", }, ["statutory town"] = { link = "w", fallback = "town", }, ["strait"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["stream"] = { link = true, fallback = "river", }, ["street"] = { link = true, fallback = "road", }, ["strip"] = { link = true, fallback = "geographic region", }, ["strip of land"] = { link = "[[strip]] of [[land]]", plural = "strips of land", plural_link = "[[strip]]s of [[land]]", fallback = "geographic region", }, ["sub-metropolitan city"] = { link = "+w:List of cities in Nepal#Sub-metropolitan cities", fallback = "thành phố", }, ["sub-prefectural city"] = { link = "w", fallback = "subprovincial city", }, ["subdistrict"] = { link = true, preposition = "của", has_neighborhoods = true, --? -- FIXME: subdistricts can be neighborhood-like (of Jakarta) or larger (in China); need a handler class = "subpolity", default = {true}, }, ["subdivision"] = { link = true, preposition = "của", affix_type = "suf", -- FIXME: subdivisions can be neighborhood-like or larger; need a handler class = "subpolity", cat_handler = district_neighborhood_cat_handler, }, ["submerged ghost town"] = { -- FIXME: Consider just having "submerged" as a qualifier. link = "[[submerged]] [[ghost town]]", fallback = "ghost town", }, ["subnational kingdom"] = { link = "+w:subnational monarchy", fallback = "non-sovereign kingdom", }, ["subnational monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["subprefecture"] = { link = true, affix_type = "suf", preposition = "của", class = "subpolity", }, ["subprovince"] = { link = true, preposition = "của", class = "subpolity", }, ["subprovincial city"] = { link = "w", -- China; special status given to certain prefecture-level cities fallback = "prefecture-level city", }, ["subprovincial district"] = { link = "w", -- China; special status given to Binhai New Area and Pudong New Area, which are county-level districts preposition = "của", class = "subpolity", }, ["subregion"] = { link = true, fallback = "geographic region", }, ["suburb"] = { link = true, -- The following text is suitable for the top-level description of a suburb as well as categories of the form -- 'Suburbs in POLDIV' e.g. 'Suburbs in Illinois, USA' but not for categories of the form 'Suburbs of Chicago', -- where we'd get "[[suburb]]s of [[city|cities]] of [[Chicago]]". category_link = "[[suburb]]s of [[city|cities]]", category_link_before_city = "[[suburb]]s", -- See comments under "neighborhood" for the following three settings. They are used by -- [[Module:category tree/topic cat/data/Places]] for generating the text of 'Suburbs in/of PLACE' categories -- but currently ignored by district_neighborhood_cat_handler (which actually generates the categories for a -- given page), which hardcodes "in" for non-cities and "của" for cities. (FIXME: Change this.) generic_before_non_cities = "in", generic_before_cities = "của", preposition = "của", has_neighborhoods = true, --? class = "non-admin settlement", --? cat_handler = district_neighborhood_cat_handler, }, ["suburban area"] = { link = "w", fallback = "suburb", }, ["subway station"] = { link = "w", fallback = "metro station", }, ["sum"] = { -- In China, Mongolia, Russia; something like a county in Mongolia but a township in China (Inner Mongolia), -- and equivalent to a [[selsoviet]] in the parts of Russia where it's in use (a rural council, below a raion). link = "+w:sum (administrative division)", -- This fallback is somewha arbitrary. We could use "county" but that has a display handler -- which we don't want to be active (FIXME: If the display handler would be active, that's a bug). fallback = "division", }, ["supercontinent"] = { link = true, fallback = "continent", }, ["tehsil"] = { link = true, affix_type = "suf", no_affix_strings = {"tehsil", "tahsil"}, class = "subpolity", }, ["temple"] = { link = true, fallback = "building", }, ["territorial authority"] = { link = "w", fallback = "district", }, ["territory"] = { link = true, preposition = "của", class = "subpolity", }, ["theme"] = { link = "+w:theme (Byzantine district)", preposition = "của", class = "subpolity", }, ["town"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["town with bystatus"] = { -- can't use templates in links currently link = "[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]", plural = "towns with bystatus", plural_link = "[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]", fallback = "town", }, ["township"] = { link = true, has_neighborhoods = true, class = "settlement", --? default = {true}, }, ["township municipality"] = { -- Quebec link = "+w:township municipality (Quebec)", preposition = "của", fallback = "municipality", has_neighborhoods = true, --? }, ["traditional county"] = { link = true, fallback = "county", }, ["traditional region"] = { -- FIXME: Verify this works. Same for 'historic(al) region'. -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["trail"] = { link = true, fallback = "road", }, ["treaty port"] = { link = "w", fallback = "thành phố", class = "settlement", inherently_former = {"FORMER"}, }, ["tributary"] = { link = true, preposition = "của", fallback = "river", }, ["underground station"] = { link = "w", fallback = "metro station", }, ["unincorporated area"] = { link = "w", -- I don't know if this fallback makes sense everywhere. fallback = "unincorporated community", }, ["unincorporated community"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", }, ["unincorporated territory"] = { link = "w", fallback = "territory", }, ["union territory"] = { -- India link = true, preposition = "của", entry_placetype_indefinite_article = "a", class = "subpolity", }, ["unitary authority"] = { -- UK, New Zealand link = true, entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["unitary district"] = { link = "w", entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["united township municipality"] = { -- Quebec link = "+w:united township municipality (Quebec)", entry_placetype_indefinite_article = "a", fallback = "township municipality", has_neighborhoods = true, --? }, ["university"] = { link = true, entry_placetype_indefinite_article = "a", class = "man-made structure", default = {true}, }, ["unrecognised country"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized and nearly unrecognized countries!"] = { category_link = "[[de facto]] [[independent]] [[state]]s with little or no {{w|international recognition}}", bare_category_parent = "country-like entities", }, ["unrecognized country"] = { link = "w", class = "polity", default = {"Unrecognized and nearly unrecognized countries"}, }, ["unrecognised state"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized state"] = { link = "w", fallback = "unrecognized country", }, ["urban area"] = { link = "separately", fallback = "neighborhood", }, ["urban hromada"] = { link = "[[urban]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["urban service area"] = { -- A strange beast existing in Alberta; technically a type of hamlet but in practice used for much larger -- cities and treated equivalent to a city. (There are only two of them, [[Fort McMurray]] and [[Sherwood Park]]). link = "w", fallback = "thành phố", }, ["urban township"] = { link = "w", fallback = "township", }, ["urban-type settlement"] = { -- appears to be a particular type of small urban settlement in post-Soviet states, -- had an administrative function. link = "w", fallback = "town", }, ["valley"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "water"}, default = {true}, }, ["viceroyalty"] = { -- in essence, a type of colony link = true, fallback = "dependent territory", }, ["village"] = { link = true, generic_before_non_cities = "in", category_link = "[[village]]s, [[hamlet]]s, and other small [[community|communities]] and [[settlement]]s", class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["village development committee"] = { -- former administrative structure in Nepal; also exists in India but not as a formal unit link = "+w:village development committee (Nepal)", inherently_former = {"FORMER"}, fallback = "village", }, ["village municipality"] = { -- Quebec link = "+w:village municipality (Quebec)", preposition = "của", fallback = "municipality", has_neighborhoods = true, --? }, ["voivodeship"] = { -- Poland link = true, display_handler = voivodeship_display_handler, preposition = "của", class = "subpolity", }, ["volcano"] = { link = true, plural = "volcanoes", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true, "Mountains"}, }, ["phường"] = { link = true, class = "settlement", -- Wards are formal administrative divisions of a city but have some properties of neighborhoods. fallback = "neighborhood", }, ["watercourse"] = { link = true, fallback = "channel", }, ["Welsh community"] = { -- Wales link = "[[w:community (Wales)|community]]", preposition = "của", affix_type = "suf", affix = "community", has_neighborhoods = true, class = "settlement", }, ["zone"] = { -- administrative division of Ethiopia, Qatar, Nepal, India link = "+w:zone#Place names", preposition = "của", class = "subpolity", }, ---------------------------------------------------------------------------------------------- -- Categories for former places -- ---------------------------------------------------------------------------------------------- ["ANCIENT capital"] = { link = false, entry_placetype_use_the = true, preposition = "của", has_neighborhoods = true, class = "capital", -- FIXME: Consider removing 'ancient settlements' here. Ancient capitals, like former capitals, often still -- exist but just aren't the capital any more. Maybe we should have an 'Ancient capitals' category. default = {"Ancient settlements", "Former capitals"}, }, ["ANCIENT non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "ANCIENT settlement", }, ["ANCIENT settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"Ancient settlements"}, }, ["ancient settlements!"] = { category_link = "former [[city|cities]], [[town]]s and [[village]]s that existed in [[antiquity]]", bare_category_parent = "former settlements", }, ["FORMER capital"] = { link = false, entry_placetype_use_the = true, preposition = "của", has_neighborhoods = true, class = "capital", default = {"Former capitals"}, }, ["former capitals!"] = { category_link = "former [[capital]] [[city|cities]] and [[town]]s", bare_category_parent = "settlements", }, ["former counties and county-level cities!"] = { -- For categorizing former counties and county-level cities of China category_link = "no-longer existing [[county|counties]] and [[county-level city|county-level cities]]", bare_category_breadcrumb = "counties and county-level cities", bare_category_parent = "former political divisions", }, ["FORMER county"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["FORMER county-level city"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["former countries and country-like entities!"] = { category_link = "[[country|countries]] and similar [[polity|polities]] that no longer exist", bare_category_breadcrumb = "countries and country-like entities", bare_category_parent = "former polities", }, ["FORMER country"] = { link = false, class = "polity", default = {"Former countries and country-like entities"}, }, ["former dependent territories!"] = { category_link = "[[w:dependent territory|dependent territories]] (colonies, dependencies, protectorates, etc.) that no longer exist", bare_category_breadcrumb = "dependent territories", bare_category_parent = "former political divisions", }, ["FORMER dependent territory"] = { link = false, preposition = "của", class = "subpolity", default = {"Former dependent territories"}, }, ["former districts!"] = { -- For categorizing former districts of China category_link = "no-longer-existing [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "former political divisions", }, ["FORMER district"] = { -- For categorizing former districts of China link = false, fallback = "FORMER subpolity", }, ["FORMER geographic region"] = { link = false, fallback = "geographic and cultural area", }, ["FORMER man-made structure"] = { link = false, class = "man-made structure", default = {"Former man-made structures"}, }, ["former man-made structures!"] = { category_link = "man-made structures such as [[airport]]s and [[park]]s that no longer exist", bare_category_breadcrumb = "man-made structures", bare_category_parent = "former places", }, ["former municipalities!"] = { -- For categorizing former municipalities of the Netherlands category_link = "no-longer-existing [[municipality|municipalities]]", bare_category_breadcrumb = "municipalities", bare_category_parent = "former political divisions", }, ["FORMER municipality"] = { -- For categorizing former municipalities of the Netherlands link = false, fallback = "FORMER subpolity", }, ["FORMER natural feature"] = { link = false, class = "natural feature", default = {"Former natural features"}, }, ["former natural features!"] = { category_link = "natural features such as [[lake]]s, [[river]]s and [[island]]s that no longer exist", bare_category_breadcrumb = "natural features", bare_category_parent = "former places", }, ["FORMER non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "FORMER settlement", }, ["former places!"] = { category_link = "[[place]]s of all sorts that no longer exist", bare_category_breadcrumb = "former", bare_category_parent = "places", }, ["former political divisions!"] = { category_link = "[[political]] [[division]]s (states, provinces, counties, etc.) that no longer exist", bare_category_breadcrumb = "political divisions", bare_category_parent = "former places", }, ["former polities!"] = { category_link = "[[polity|polities]] (countries, kingdoms, empires, etc.) that no longer exist", bare_category_breadcrumb = "polities", bare_category_parent = "former places", }, ["FORMER polity"] = { link = false, class = "polity", default = {"Former polities"}, }, ["former prefectures!"] = { -- For categorizing former prefectures of China category_link = "no-longer-existing [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "former political divisions", }, ["FORMER prefecture"] = { -- For categorizing former prefectures of China link = false, fallback = "FORMER subpolity", }, ["former provinces!"] = { -- For categorizing former provinces of China, etc. category_link = "no-longer-existing [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "former political divisions", }, ["FORMER province"] = { -- For categorizing ancient/historical/former provinces of the Roman Empire link = false, fallback = "FORMER subpolity", }, ["former region"] = { -- A former region is considered a former political division, but not a 'historical/traditional/etc.' region. link = "separately", preposition = "của", inherently_former = {"FORMER"}, class = "subpolity", }, ["FORMER settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"Former settlements"}, }, ["former settlements!"] = { category_link = "[[city|cities]], [[town]]s and [[village]]s that no longer exist or have been merged or reclassified", bare_category_breadcrumb = "settlements", bare_category_parent = "former political divisions", }, ["FORMER subpolity"] = { link = false, preposition = "của", class = "subpolity", default = {"Former political divisions"}, }, ---------------------------------------------------------------------------------------------- -- form-of categories -- ---------------------------------------------------------------------------------------------- ---------- Abbreviations ---------- ["abbreviations of counties!"] = { -- For categorizing abbreviations of counties of e.g. England full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[county|counties]]", bare_category_breadcrumb = "counties", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[country|countries]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "abbreviations of places", }, ["abbreviations of departments!"] = { -- For categorizing abbreviations of departments of e.g. France full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[department]]s", bare_category_breadcrumb = "departments", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of districts!"] = { -- For categorizing abbreviations of districts of e.g. ??? full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of divisions!"] = { -- For categorizing abbreviations of divisions of e.g. Bangladesh full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[division]]s", bare_category_breadcrumb = "divisions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of former countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "abbreviations of former places", }, ["abbreviations of former places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "abbreviations", bare_category_parent = "former places", addl_bare_category_parents = {{name = "abbreviations of places", sort = "former"}}, }, ["abbreviations of places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "abbreviations", bare_category_parent = "places", }, ["abbreviations of political divisions!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[political]] [[division]]s", bare_category_breadcrumb = "political divisions", bare_category_parent = "abbreviations of places", }, ["abbreviations of prefectures!"] = { -- For categorizing abbreviations of prefectures of e.g. Japan full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces!"] = { -- For categorizing abbreviations of provinces of e.g. Canada full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s and [[territory|territories]]", bare_category_breadcrumb = "provinces and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of regions!"] = { -- For categorizing abbreviations of regions of e.g. Italy full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[administrative region]]s", bare_category_breadcrumb = "regions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states!"] = { -- For categorizing abbreviations of states of e.g. the United States full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[territory|territories]]", bare_category_breadcrumb = "states and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and union territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[union territory|union territories]]", bare_category_breadcrumb = "states and union territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[territory|territories]]", bare_category_breadcrumb = "territories", bare_category_parent = "abbreviations of political divisions", }, ["ABBREVIATION_OF country"] = { link = false, default = {"Abbreviations of countries"}, }, ["ABBREVIATION_OF county"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF department"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF district"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF division"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF FORMER country"] = { link = false, default = {"Abbreviations of former countries"}, }, ["ABBREVIATION_OF FORMER place"] = { link = false, default = {"Abbreviations of former places"}, }, ["ABBREVIATION_OF place"] = { link = false, default = {"Abbreviations of places"}, }, ["ABBREVIATION_OF prefecture"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF province"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF region"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF state"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF subpolity"] = { link = false, default = {"Abbreviations of political divisions"}, }, ["ABBREVIATION_OF territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF union territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ---------- Archaic forms ---------- ["archaic forms of places!"] = { full_category_link = "{{glossary|archaic}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "archaic forms", bare_category_parent = "places", }, ["ARCHAIC_FORM_OF place"] = { link = false, default = {"Archaic forms of places"}, }, ---------- Clippings ---------- ["clippings of places!"] = { full_category_link = "{{glossary|clipping}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "clippings", bare_category_parent = "places", }, ["CLIPPING_OF place"] = { link = false, default = {"Clippings of places"}, }, ---------- Dated forms ---------- ["dated forms of places!"] = { full_category_link = "{{glossary|dated}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "dated forms", bare_category_parent = "places", }, ["DATED_FORM_OF place"] = { link = false, default = {"Dated forms of places"}, }, ---------- Derogatory names ---------- ["derogatory names for cities!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[city|cities]]", bare_category_breadcrumb = "cities", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["derogatory names for continents!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for continents"}, }, ["derogatory names for countries!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[country|countries]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for countries"}, }, ["derogatory names for places!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[place]]s", bare_category_breadcrumb = "derogatory names", bare_category_parent = "nicknames for places", }, ["derogatory names for states!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for states"}, }, ["DEROGATORY_NAME_FOR capital"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR city"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR continent"] = { link = false, default = {"Derogatory names for continents"}, }, ["DEROGATORY_NAME_FOR country"] = { link = false, default = {"Derogatory names for countries"}, }, ["DEROGATORY_NAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "thành phố" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR place"] = { link = false, default = {"Derogatory names for places"}, }, ["DEROGATORY_NAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "thành phố" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR state"] = { link = false, default = {"Derogatory names for states"}, }, ["DEROGATORY_NAME_FOR town"] = { link = false, default = {"Derogatory names for cities"}, }, ---------- Ellipses ---------- ["ellipses of places!"] = { full_category_link = "{{glossary|ellipsis|ellipses}} of [[name]]s of [[place]]s", bare_category_breadcrumb = "ellipses", bare_category_parent = "places", }, ["ELLIPSIS_OF place"] = { link = false, default = {"Ellipses of places"}, }, ---------- Former long-form names ---------- ["former long-form names of countries!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "former long-form names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "long-form"}}, }, ["former long-form names of places!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form", bare_category_parent = "former names of places", }, ["FORMER_LONG_FORM_OF country"] = { link = false, default = {"Former long-form names of countries"}, }, ["FORMER_LONG_FORM_OF place"] = { link = false, default = {"Former long-form names of places"}, }, ---------- Former names ---------- ["former names of capitals!"] = { full_category_link = "[[former]] [[name]]s of [[capital city|capital cities]] that generally still exist but under a different name", bare_category_breadcrumb = "capitals", bare_category_parent = "former names of settlements", }, ["former names of countries!"] = { full_category_link = "[[former]] [[name]]s of [[country|countries]] that generally still exist but under a different name", bare_category_breadcrumb = "quốc gia", bare_category_parent = "former names of places", }, ["former names of places!"] = { full_category_link = "[[former]] [[name]]s of [[place]]s that generally still exist but under a different name", bare_category_breadcrumb = "former names", bare_category_parent = "places", }, ["former names of political divisions!"] = { full_category_link = "[[former]] [[name]]s of [[political]] [[division]]s (states, provinces, counties, etc.) that generally still exist but under a different name", bare_category_breadcrumb = "political divisions", bare_category_parent = "former names of places", }, ["former names of polities!"] = { full_category_link = "[[former]] [[name]]s of [[polity|polities]] (e.g. [[country|countries]]) that generally still exist but under a different name", bare_category_breadcrumb = "polities", bare_category_parent = "former names of places", }, ["former names of settlements!"] = { full_category_link = "[[former]] [[name]]s of [[city|cities]], [[town]]s, [[village]]s, etc. that generally still exist but under a different name", bare_category_breadcrumb = "settlements", bare_category_parent = "former names of political divisions", }, ["FORMER_NAME_OF capital"] = { link = false, default = {"Former names of capitals"}, }, ["FORMER_NAME_OF country"] = { link = false, default = {"Former names of countries"}, }, ["FORMER_NAME_OF place"] = { link = false, default = {"Former names of places"}, }, ["FORMER_NAME_OF polity"] = { link = false, default = {"Former names of polities"}, }, ["FORMER_NAME_OF region"] = { link = false, fallback = "FORMER_NAME_OF subpolity", }, ["FORMER_NAME_OF settlement"] = { link = false, default = {"Former names of settlements"}, }, ["FORMER_NAME_OF subpolity"] = { link = false, default = {"Former names of political divisions"}, }, ---------- Former nicknames ---------- ["former nicknames for cities!"] = { full_category_link = "no-longer-used [[nickname]]s for [[city|cities]], e.g. the [[Eternal City]] for [[Kyoto]] during the {{w|Heian period}} ({{circa2|800–1100|short=yes}} {{AD}})", bare_category_breadcrumb = "cities", bare_category_parent = "former nicknames for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["former nicknames for places!"] = { full_category_link = "no-longer-used [[nickname]]s for [[place]]s", bare_category_breadcrumb = "former", bare_category_parent = "nicknames for places", addl_bare_category_parents = {{name = "former names of places", sort = "nicknames"}}, }, ["FORMER_NICKNAME_FOR capital"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR city"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "thành phố" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR place"] = { link = false, default = {"Former nicknames for places"}, }, ["FORMER_NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "thành phố" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR town"] = { link = false, default = {"Former nicknames for cities"}, }, ---------- Former official names ---------- ["former official names of countries!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "former official names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "official"}}, }, ["former official names of places!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "former names of places", }, ["FORMER_OFFICIAL_NAME_OF country"] = { link = false, default = {"Former official names of countries"}, }, ["FORMER_OFFICIAL_NAME_OF place"] = { link = false, default = {"Former official names of places"}, }, ---------- Long-form names ---------- ["long-form names of countries!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "long-form names of places", }, ["long-form names of places!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form names", bare_category_parent = "places", }, ["LONG_FORM_OF country"] = { link = false, default = {"Long-form names of countries"}, }, ["LONG_FORM_OF place"] = { link = false, default = {"Long-form names of places"}, }, ---------- Nicknames ---------- ["nicknames for cities!"] = { full_category_link = "[[nickname]]s for [[city|cities]], e.g. the [[Big Apple]] for [[New York City]]", bare_category_breadcrumb = "cities", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"cities"}, }, ["nicknames for continents!"] = { full_category_link = "[[nickname]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"continents"}, }, ["nicknames for countries!"] = { full_category_link = "[[nickname]]s for [[country|countries]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"quốc gia"}, }, ["nicknames for places!"] = { full_category_link = "[[nickname]]s for [[place]]s", bare_category_breadcrumb = "places", bare_category_parent = "nicknames", addl_bare_category_parents = {"places"}, }, ["nicknames for states!"] = { -- For categorizing nicknames for states of e.g. the United States full_category_link = "[[nicknames]] for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"states"}, }, ["NICKNAME_FOR capital"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR city"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR continent"] = { link = false, default = {"Nicknames for continents"}, }, ["NICKNAME_FOR country"] = { link = false, default = {"Nicknames for countries"}, }, ["NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "thành phố" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR place"] = { link = false, default = {"Nicknames for places"}, }, ["NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "thành phố" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR state"] = { link = false, default = {"Nicknames for states"}, }, ["NICKNAME_FOR town"] = { link = false, default = {"Nicknames for cities"}, }, ---------- Obsolete forms ---------- ["obsolete forms of places!"] = { full_category_link = "{{glossary|obsolete}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "obsolete forms", bare_category_parent = "places", }, ["OBSOLETE_FORM_OF place"] = { link = false, default = {"Obsolete forms of places"}, }, ---------- Official names ---------- ["official names of countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "official names of places", }, ["official names of former countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "quốc gia", bare_category_parent = "official names of former places", }, ["official names of former places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "official names", bare_category_parent = "former places", addl_bare_category_parents = {{name = "official names of places", sort = "former"}}, }, ["official names of places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official names", bare_category_parent = "places", }, ["OFFICIAL_NAME_OF country"] = { link = false, default = {"Official names of countries"}, }, ["OFFICIAL_NAME_OF FORMER country"] = { link = false, default = {"Official names of former countries"}, }, ["OFFICIAL_NAME_OF FORMER place"] = { link = false, default = {"Official names of former places"}, }, ["OFFICIAL_NAME_OF place"] = { link = false, default = {"Official names of places"}, }, ---------- Official nicknames ---------- ["official nicknames for places!"] = { full_category_link = "[[official]] [[nickname]]s for [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for places", }, ["official nicknames for states!"] = { -- For categorizing official nicknames for states of e.g. the United States full_category_link = "[[official]] [[nicknames]] for [[state]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for states", addl_bare_category_parents = {"states"}, }, ["OFFICIAL_NICKNAME_FOR place"] = { link = false, default = {"Official nicknames for places"}, }, ["OFFICIAL_NICKNAME_FOR state"] = { link = false, default = {"Official nicknames for states"}, }, } export.plural_placetype_to_singular = {} for sg_placetype, spec in pairs(export.placetype_data) do if spec.plural then export.plural_placetype_to_singular[spec.plural] = sg_placetype end end return export ds6sl84dz2mjdi98ilccvxzkanci7q8 Mô đun:place/locations 828 282249 2351289 2350424 2026-05-08T06:00:23Z TheHighFighter2 42988 2351289 Scribunto text/plain local export = {} export.force_cat = false -- set to true to force category generation even on non-mainspace pages local m_table = require("Module:table") local string_utilities_module = "Module:string utilities" local en_utilities_module = "Module:en-utilities" local insert = table.insert local concat = table.concat local dump = mw.dumpObject local unpack = unpack or table.unpack -- Lua 5.2 compatibility --[==[ intro: This module contains data on all known locations, along with some lower-level code to process them (higher-level known-location code is in [[Module:place/placetypes]]). You must load this module using require(), not using mw.loadData(). ===Location data=== '''NOTE: In order to understand the following better, first read the introductory documentation in [[Module:place]], especially the section `More about known locations`.''' The bulk of the code in this module (after some helper functions and placetype tables) describes the known locations and their relationships. Locations are grouped into ''location groups'' that share some common properties (examples are states of the United States and cities in Brazil). Each location group is associated with two tables, a ''data table'' that lists the locations and their individual properties, and a ''metadata table'' that lists group-level properties and defaults for the location properties. Each metadata table points to the associated data table (i.e. contains the data table as its `data` field), and the global `locations` variable holds a list of all group metadata tables. A given location is generally described by three values: (a) the group metadata table for the group the location is part of; (b) the location's canonical ''key'', which is the actual key in the group's data table and is globally unique across all locations; and (c) the location's ''spec'', which is the initialized object describing the properties of the location and comes from the value in the data table corresponding to the canonical key, transformed by the `initialize_spec()` function. These are typically named `group`, `key` and `spec`, respectively and in that order, and are found in the arguments to many functions. In a per-group data table, the keys are either ''canonical keys'' describing locations (which, as mentioned above, must be globally unique) or ''alias keys'' specifying an allowed alias for a given location. There may be multiple aliases for a given location and the alias keys only need to be unique within a particular group data table, not across all groups. It is also possible for the same string to serve as an alias key in one group and a canonical key in another group. (For example, `Newcastle` appears as an alias key in two different groups, referring to two different locations, canonically known as `Newcastle upon Tyne`, for the city in England, and `Newcastle, New South Wales`, for the city in New South Wales, Australia; and `Birmingham` appears both as a canonical key in the group of English cities and an alias key for canonical `Birmingham, Alabama` in the group of US cities.) The corresponding value objects are different for canonical and alias keys. Corresponding to canonical keys are ''location specs'', describing the properies of the location that cannot be derived from default properties of the group or global defaults. Corresponding to alias keys are ''alias specs'', which are highly restricted in the properties they can contain, and whose properties do not have per-group defaults, but only global defaults. The canonical key is always the same as the bare category corresponding to the location, which is one of the reasons it must be globally unique. For example, the country of Georgia uses the canonical key `Georgia` and corresponding bare category [[:Category:Georgia]], while the US state of Georgia uses the canonical key `Georgia, USA` and corresponding bare category [[:Category:Georgia, USA]]. The following conventions are followed in naming keys: * Countries, ''country-like entities'' (which are a mixture of unrecognized de-facto states and dependent territories) and ''former countries'' (which also includes other types of polities, such as the Roman Empire) use their unqualified placename as the canonical key. (See the documentation for [[Module:place]] for the distinction between keys and placenames, which is critical to understand when working with location data.) This also applies to constituent countries (such as England, Aruba and the Faroe Islands) and constituent parts of grouped dependent territories (such as the island of Saint Helena, which is administratively part of the British overseas territory of Saint Helena, Ascension and Tristan da Cunha). * Cities (including prefecture-level cities in China, which behave in most respects more like non-city administrative divisions) also normally use their unqualified placename as the canonical key, but if this causes name conflicts or ambiguities, they use a ''qualified key'' containing either the country name or immediate containing division (if different) following a comma, such as the case of `Newcastle, New South Wales` and `Birmingham, Alabama` above. Examples of name conflicts are the two cities just given; examples of ambiguities are the major cities of León and Mérida in Mexico and city of Cartagena, Colombia, which are given the respective canonical keys of `León, Guanajuato`, `Mérida, Yucatán` and `Cartagena, Colombia` to avoid ambiguity with the well-known respective cities of the same name in Spain, even though none of those cities are large enough to be included as known locations in this module. (The cutoff is generally having a metro area of at least 1,000,000 inhabitants, although there are exceptions.) * Administrative divisions of countries, other than the exceptions noted above for constituent countries and dependent territories, use a qualified key that contains the name of the country or constituent country in it, e.g. `Normandy, France` (a region), `Calvados, France` (a department in the region of Normandy), `Herefordshire, England` (a ceremonial county), `Northwest Territories, Canada` (a territory), `Central Finland, Finland` (a region), `Antalya Province, Turkey` (a province), `Cluj County, Romania` (a county), `County Cork, Ireland` (a county) and `New York, USA` (a state). As shown in these various examples, (a) first and second-level divisions are sometimes both included (as in France, the United Kingdom and China); (b) the qualifier after the comma is sometimes a constituent country (England) instead of a country (United Kingdom), and is sometimes abbreviated (USA rather than United States or Unites States of America); (c) the word `the` is not normally included in the key even if the location is normally preceded by `the` when following a preposition (there is a property in the location and alias specs to indicate this), except in a very few cases (most notably `The Hague`); (d) the country is included as a qualifier even if it creates an apparent redundancy, as with `Central Finland, Finland`; and (e) sometimes the placetype is included in the key, as with provinces in Turkey and several other countries; states in Nigeria; and counties in Ireland, Romania and several other countries. Whether the placetype is included, and whether it follows or precedes the placename, depends on per-country conventions. For example, provinces in Turkey, Iran and several other countries (likewise for states in Nigeria, oblasts in Russia, etc.) conventionally include the word "Province", "State", "Oblast" etc. in their name because they are normally named after the largest city in the division, which would otherwise lead to ambiguity; and counties in Ireland and Northern Ireland (and likewise County Durham, England) normally have the word "County" preceding rather than following them in their conventional name, so we follow this practice. The Wikipedia article naming scheme for a given administrative division is a strong clue as to how the division is normally referred to, and we usually follow this practice. (A minor exception is that the Wikipedia articles for provinces in Iran, Laos and Thailand include the word `province` with an initial lowercase letter while provinces elsewhere, e.g. North and South Korea, Saudi Arabia and Turkey, use uppercase `Province`; we normalize to uppercase `Province` in all cases.) As mentioned above, associated with canonical keys in the group data table are location specs, which are objects containing properties. It is important here to distinguish ''initialized specs'' from ''uninitialized specs''. Unininitialized specs are as directly specified in [[Module:place/locations]], containing only those properties that differ from the per-group or global defaults. Initialized specs result from calling `initialize_spec()` on an uninitialized spec (it is idempotent in that it will do nothing if encountering an already-initialized spec). This copies all group-level defaults that are not overridden in the location spec itself from the group-level metadata table into the location spec, so that in general, no more reference need be made to the group to fetch the correct value of a given location property. (The initialization process also does more transformations in a few cases, noted below.) Note that the default value of a given property is stored under a key in the group metadata table that is preceded by the string `default_`; for example, the default value corresponding to the `placetype` property of a given location is specified in the `default_placetype` key in the group metadata table. The following are the properties of the location spec. * `placetype`: String specifying the placetype of the location (e.g. "quốc gia", "state", province"). This can also be a table of such types; in this case, the first listed type is the canonical type that will be used in descriptions, but the location will be recognized (e.g. in a holonym, or for categorizing into the bare category) when tagged with any of the specified types. The placetype '''must''' be either specified on an individual location or defaulted at the group level, or an error occurs. * `container`: Either a string, a ''canonicalized container'' structure or a list of either type, specifying the immediate ''container'' (or containers) of the given location. A container is another location which this location is considered to be directly part of, either politically or (above the country level) geographically. Some locations belong to multiple immediate containers; this applies especially to transcontinental countries such as Russia and Turkey. Containers can themselves have containers, forming a tree (or more correctly, a [[w:directed acyclic graph]]) of locations. The list of immediate container(s), followed by the container(s) of the container(s), etc., is termed the ''container trail'', and some functions compute and return this trail as part of their operation. When a location spec is initialized, the given container spec is canonicalized into ''canonical container form'', which consists of a list of canonicalized container structures, each of which is of the form `{key = "``container_key``", placetype = "``container_placetype``"}`, where ``container_key`` is a canonical location key and ``container_placetype`` should be the listed placetype for the location, or the first listed placetype if there are multiple. (FIXME: Since the key uniquely identifies the container location, we should eliminate the placetype from the container structure.) The list of canonicalized container structures is stored into the `.containers` field of the location spec (this happens even if the container value is unset in its uninitialized spec form, causing it to default to the corresponding group-level value), and the `.container` field is set to {nil}. The canonicalization process is described in more detail below under [[#Container spec canonicalization]]. * `divs`: List of recognized political divisions; e.g. for the Netherlands, a specification of the form `divs = {"provinces", "municipalities"}` will allow categories such as [[:Category:de:Provinces of the Netherlands]] and [[:Category:pt:Municipalities of the Netherlands]] to be created. Any division that appears here must also be found in `placetype_data`, or an error occurs. The entities appearing in the `divs` list can be structures as well as just strings; this is explained more below under [[#Location divisions]]. Additional political divisions that apply to all locations in a group can be specified at the group level using the group-only property `addl_divs`, which has the same format as `divs`. This is intended to be used in the situation where some division types are shared among all locations in the group and others differ from location to location. An example where this is used is the United States, where `census-designated places` is specified in the group-level `addl_divs` so that all 50 states have census-designated places categorized as e.g. [[:Category:Census-designated places in Arizona, USA]], but `counties` and `county seats` are specified in the group-level `default_divs` because not all states have counties and county seats (Alaska has boroughs and borough seats and Louisiana has parishes and parish seats), and some states have additional divisions (New Jersey and Pennsylvania also have boroughs, while Colorado and Connecticut have municipalities). Note that under most circumstances (particularly, if `container_parent_type` is not set as a property associated with the division type), any division type specified on a sub-country-level location must also be specified on all containers up through the country. For example, since French departments specify `communes` and `municipalities` in `default_divs`, the same division types must be (and are) specified on French regions and for France itself. * `keydesc`: String directly specifying a description of the location, for use in generating the contents of category pages related to the location. In place of a string, a function of three arguments (`group`, `key`, `spec`, as is normal for locations) that computes the location description can also be given. This is used, for example, for Russian federal subjects; see `construct_russia_federal_subject_keydesc`. The special string `+++` contained in the keydesc is replaced with the default value of the location description, which specifies the location's placename, placetype, and the corresponding values for each container in the container trail, generally up through (but not beyond) the country level; see `no_include_container_in_desc` below. The location description is used to construct the full description of various categories, such as bare location categories, whose description generally reads `"{{(((}}langname}}} terms related to the people, culture, or territory of ``keydesc``."` where ``keydesc`` is the specified or auto-constructed location description. * `fulldesc`: String overriding the full description for the bare location category (but not for any other category). This is currently used only for the location `Earth`, at the very top of the tree (because the standard `people, culture or territory of ...` text doesn't make sense here), and for `Antarctica` (because it has no permanent inhabitants). FIXME: This should be renamed `bare_category_fulldesc`. * `addl_parents`: Specify additional parents for the bare location category, in addition to the category or categories generated based on the immediate container(s). For example, `Hawaii, USA` specifies `Polynesia` as an additional parent category; both `North Korea` and `South Korea` specify `Korea` (which is a specially handled location category) as an additional parent; and `Earth` specifies `nature` (not a location category, but still a topic category) as an additional parent (which in this case becomes the first parent, as `Earth` has no container). The only restriction on the categories in `addl_parents` is that they must be topic categories, because each language-specific version of the bare location category gets the corresponding language-specific versions of the categories in `addl_parents`. FIXME: This shoudl be renamed `bare_category_addl_parents`. * `wp`: Spec describing how to construct the Wikipedia article for the location. Each spec is either `true` (equivalent to `"%l"`, i.e. use the full location placename directly) or a string containing formatting directives, indicating how to construct the article name. The allowed formatting directives are `%l` (the full location placename), `%e` (the elliptical location placename) and `%c` (the full placename of the first immediate container). For example, the default value of `wp` for the group of United States cities is `"%l, %c"` since the city articles tend to be named e.g. `Austin, Texas` (but with many exceptions, specified using `wp` fields at the city level). Another example is Thai provinces, which specify a group-level default of `"%e province"` as the Wikipedia articles have lowercase `province` in their name but the Thai province keys specified in this module have uppercase `Province`. Here we have to use `%e` to get the placename without the word `Province` in it. The default is `true`, which simply uses the full location placename as the article name. Note that the Wikipedia article, along with the Wikipedia and Commons category pages, are shown in the upper right of bare category pages. * `wpcat`: Spec describing how to construct the Wikipedia category page for the location (i.e. the page listing articles and categories relevant to the location). The format is the same as with `wp`, and it defaults to the value of `wp`. It rarely needs to be specified because the category page and the article page almost always follow the same format. * `commonscat`: Spec describing how to construct the Commons category page for the location (i.e. the page on the MediaWiki Commons site listing articles and categories relevant to the location). It has the same format as `wp` and `wpcat` and defaults to `wpcat`, which is usually (but not always) correct. * `the`: Boolean specifying whether a location should be preceded by `the` when following a preposition, e.g. in category names such as [[:Category:Cities in the Northern Territory, Australia]] and in old-style place descriptions when the location occurs as the first holonym, such as the city [[Darwin]] described using {{tl|place|city|terr/Northern Territory|c/Australia}}. Note that the global default for this and all Boolean properties is {nil}, which amounts to the same as {false}. * `british_spelling`: Boolean indicating whether the location in question uses British spelling. Currently this only affects whether the spelling `neighborhoods` or `neighbourhoods` is used in categories such as [[:Category:Neighborhoods of New York City]] and [[:Category:Neighbourhoods of Sydney]]. This usually needs to be set only at the top level (i.e. country or country-like entity), because lower-level entities look up the container trail for any container that has `british_spelling = true` set, and if found, assume that British spelling applies. The general principle used in setting this is that all countries in Europe, all dependent territories of any such country, all former British colonies, and any dependent territories of these former colonies, are assumed to use British spelling, while all other countries and associated dependent territories are assumed to use American spelling. This can potentially be modified on a case-by-case basis. * `is_city`: Boolean indicating whether the location in question is a city. This is explicitly set to `true` for city-states (e.g. Monaco and Vatican City), dependent territories that are cities (e.g. Hong Kong, Macau, Bonaire, Gibraltar, etc.), certain city-level administrative divisions (such as `City of Belfast, Northern Ireland`) and (through a group-levell setting) New York boroughs. In addition, it is set to `true` in initialize_spec() whenever the group-level `default_placetype == "thành phố"`, so that all cities get it set without explicitly needing to add a group-level setting for this. Note that the condition `default_placetype == "thành phố"` intentionally excludes Chinese prefecture-level cities, which aren't really cities in that (for example) they don't directly contain neighborhoods, but do contain cities within them. This setting is used in various places: (a) to add cities, rivers, etc. to categories like [[:Category:Rivers in Osaka, Nhật Bản]] and [[:Category:Cities in Wuhan]] for holonyms that are ''not'' cities; (b) to add districts, neighborhoods, and the like to categories like [[:Category:Neighborhoods of Brooklyn]] and [[:Category:Neighborhoods of Monaco]] for holoynms that ''are'' cities; (c) generally, to determine which "generic" placetypes (cities, rivers, neighborhoods, etc.) apply to the location. (Those that can occur with cities have a `generic_before_cities` setting in [[Module:place/placetypes]], and those that can occur with non-cities have a `generic_before_non_cities` setting.) * `is_former_place`: Boolean that should be set on former places such as the Soviet Union and the Roman Empire. For such places, categories such as [[:Category:fr:Rivers in the Soviet Union]] are neither generated nor recognized (more generally, no "generic" placetypes apply except for `places`), and category descriptions include the word `former`. * `overriding_bare_label_parents`: Document me! * `bare_category_parent_type`: Document me! * `no_container_cat`: Document me! * `no_container_parent`: Document me! * `no_generic_place_cat`: Document me! * `no_check_holonym_mismatch`: Document me! * `no_auto_augment_container`: Document me! * `no_include_container_in_desc`: Document me! ====Location divisions==== The `divs` field of a location describes the recognized political division types of that location. Specifying a given division type will cause places defined as being of the specified division type and with the location as a holonym will cause the place to be categorized as ` ``placetypes`` in/of ``location`` `; for example, specifying that the United States has `"states"` as a division will cause anything defined as {{tl|place|fr|state|c/US}} to be categorized under [[:Category:fr:States of the United States]]. Note that you do not have to explicitly specify division types for "generic" placetypes (those that have a `generic_before_non_cities` field if the location is not a city, or that have a `generic_before_cities` field if the location is a city); this includes things like cities, towns, villages, neighbo(u)rhoods and rivers. A given element in the `divs` list is usually a string naming a plural placetype; the placetype is automatically converted to the singular for recognizing the placetype in a {{tl|place}} spec, and irregular plurals such as `kibbutzim` are handled correctly as long as the placetype specifies an appropriate `plural` field (if the `plural` isn't explicitly given, the default singularization algorithm in [[Module:en-utilities]] is run, which gets most things correctly but has problems with `passes` and `fortresses`, which are singularized to `passe` and `fortresse`; for this reason, an explicit plural entry is added to terms in ''-ss''). In place of a string, an object can be given with the plural placetype in the `type` field; this allows additional properties to be specified along with the placetype. An example of this is the `divs` list for Canada: { ["Canada"] = {divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, "counties", "districts", "municipalities", "regional municipalities", "rural municipalities", "parishes", "Indian reserves", "census divisions", {type = "townships", prep = "in"}, }, ...}, } Here, both provinces and territories are set to categorize as `provinces and territories`, meaning that there is a single category [[:Category:Provinces and territories of Canada]] rather than separate categories for provinces and territories. Similar things are done for other countries that have more than one type of first-level administrative division (e.g. Australia, China, India and Pakistan). Note that any placetype listed under `cat_as` must exist in the table of placetypes in [[Module:place/placetypes]], and in fact there is a category-only entry there for `provinces and territories!` (the use of exclamation point following a plural placetype means that the placetype is present only for use in categories and won't be recognized as the placetype field in a {{tl|place}} description). In addition, townships are declared to use `in` rather than `of` as the preposition in the category; hence the category name will be [[:Category:Townships in Canada]] rather than [[:Category:Townships of Canada]]. (The use of `in` vs. `of` is somewhat related to whether a given placetype is an official administrative or statistical division of the location in question and comes in a defined list, in which case `of` should be used, or is more ill-defined, in which case `in` should be used; the default is `of`, and the use of `in` with `townships` is probably by analogy with the use of `in` with cities and towns.) Another more complex example is the divisions given for Quebec: { ["Quebec, Canada"] = {divs = { "counties", {type = "regional county municipalities", container_parent_type = "regional municipalities"}, {type = "regions", container_parent_type = false}, {type = "townships", prep = "in"}, {type = "parish municipalities", cat_as = {{type = "parishes", container_parent_type = "counties"}, "municipalities"}}, {type = "township municipalities", cat_as = {{type = "townships", prep = "in"}, "municipalities"}}, {type = "village municipalities", cat_as = {{type = "villages", prep = "in"}, "municipalities"}}, }, ...}, } Here, `container_parent_type` controls the second parent category of the placetype/location category associated with the entry. In this case, for example, [[:Category:Counties of Quebec, Canada]] will have [[:Category:Counties of Canada]] as its second or ''container-level'' parent. However, this doesn't make sense for `regional county municipalities`, which exist only in Quebec (so the parent category [[:Category:Regional county municipalities of Canada]] would have only one subcategory); but they are similar to regional municipalities in British Columbia, Nova Scotia and Ontario, so the `container_parent_type = "regional municipalities"` spec causes the container-level parent of this category to be [[:Category:Regional municipalities of Canada]]. Likewise, `regions` as administrative divisions (as opposed to mere geographic regions) exist only in Quebec; they have no equivalent elsewhere, so we disable the container-level parent using `container_parent_type = false`. The specs for `parish municipalities`, `township municipalities` and `village municipalities` show both that multiple types can be specified under `cat_as` (here, for example, we categorize `parish municipalities` as both `parishes` and `municipalities`) and that these types can themselves have properties, just as for entries directly under `divs`. Specifically, `{type = "parishes", container_parent_type = "counties"}` means that any place defined as a parish municipality in Quebec will be categorized under both [[:Category:Parishes of Quebec, Canada]] and [[:Category:Municipalities of Quebec, Canada]], and that the former will have a container-level parent of [[:Category:Counties of Canada]] (rather than the default of [[:Category:Parishes of Canada]]). Similarly, `township municipalities` will be categorized under both [[:Category:Townships in Quebec, Canada]] (''not'' [[:Category:Townships of Quebec, Canada]]) and [[:Category:Municipalities of Quebec, Canada]]. ====Container spec canonicalization==== A fully canonicalized container spec for a given location consists of a list of ''canonicalized container objects'', each with a `key` and `placetype` field. The `key` field should name the canonical key of some other location at a higher level (e.g. French cities are contained in French departments, which are contained in French regions, which are contained in France, which is contained in Europe, which is contained in Eurasia, which is contained in the Earth). The `placetype` field should correspond to the first (canonical) placetype listed for the key in question. The process of initializing a locaion spec converts the container spec in `.container` into a canonicalized spec in `.containers` and removes the spec from `.container`. It works as follows: # If the `container` field is missing, and there is a group-level `default_container` field, it is used in its place. For example, none of the Brazilian states listed in `brazil_states` specifies a container, but the group specifies `default_container = "Brazil"`. # A single string or canonicalized container object is allowed and made into a one-element list. # If a list element is a string that did ''not'' come from `default_container`, and there is a group-level `canonicalize_key_container` field, it is assumed to be a one-argument function and is called on the string to get a canonicalized container object. # Any remaining strings are assumed to be countries and are used directly as the `key`, with `placetype` set to `"quốc gia"`. ====Alias keys==== Aliases can be provided for canonical keys using ''alias keys''. Alias keys have a very different location spec structure from canonical keys. This structure does not, in general, have defaults at the group level and is not initialized using `initialize_spec()`, but is used as-is. The following properties are recognized in an alias location spec: * `alias_of`: The canonical key of which this key is an alias. Required. * `the`: If true, this alias key is preceded by `the` following a preposition. Defaults to the group-level `default_the` but does not pay attention to the value of `the` for the corresponding canonical key. * `display`: This is a display alias, meaning that holonyms using the placename corresponding to this alias will be converted to the placename corresponding to the canonical key when formatting the holonym for display. (Otherwise, the aliasing applies only to categorization.) If the value is true, the display canonicalization is to the placename of the canonical key; otherwise, the value should be a key whose corresponding placename is used when display canonicalizing. * `placetype`: The placetype of the alias. Rarely needs to be specified as it defaults to the canonical key's placetype, and if that is unspecified, to the group-level default placetype. ====Location group metadata tables==== As mentioned above, associated with each location group is a ''metadata table'' listing group-level properties. The metadata table contains two types of keys: group-level defaults (named like the corresponding location-level keys but preceded by `default_`, e.g. `default_placetype` corresponding to the location-level `placetype` key) and group-only keys, which are mostly functions. The following are the possible group-only keys: * `data`: This points to the group data table for the group, as described above. * `key_to_placename`: This is a function of one argument to transform the location's key (whether canonical or alias) into the full and elliptical placenames. The difference between full and elliptical placenames is described in the documentation for [[Module:place]], but in essence, it applies for keys that include the placetype in them (e.g. `Phuket Province, Thailand` or `County Mayo, Ireland`), in which case the full placename includes the placetype and the elliptical placename does not. For keys that do not include the placetype in them (e.g. `Arizona, USA` or `Gloucestershire, England`), the full and elliptical placenames are identical. Note that neither the full nor the elliptical placename includes the container in it; hence, for `Phuket Province, Thailand`, the full placename is `Phuket Province` and the elliptical placename is just `Phuket`. (Note that the full vs. elliptical placename distinction is intended only for handling cases where the placetype follows or precedes the raw placename and there is no difference between the two in whether they are normally preceded by `the`. More complex situations, such as `State of Mexico` (which normally takes `the`) vs. just `Mexico` (which doesn't), or `Islamabad Capital Territory` vs. just `Islamabad`, should be handled instead by aliases.) The `key_to_placename` function takes one argument, the key, and returns two arguments, the full and elliptical placenames, respectively. If left undefined, the default is to chop off anything starting with a comma and return the result as both full and elliptical placename, and if specifically set to `false`, the key is used directly as both full and elliptical placename. If it needs to be defined, it is best to use the helper function `make_key_to_placename`, if possible (or `make_irish_type_key_to_placename` in the case of Ireland and Northern Ireland, where `County` precedes), rather than rolling your own. In addition, you should use the global `key_to_placename` function (which takes care of the default implementation and such) rather than directly calling the function in the `key_to_placename` field. * `placename_to_key`: This is approximately the inverse of `key_to_placename`, transforming a placename (which can be either in full or elliptical form) into the corresponding key. As with `key_to_placename`, if you need to define this (generally, when the full and elliptical placenames are different), prefer using `make_placename_to_key` (or `make_irish_type_placename_to_key` for Ireland and Northern Ireland) to rolling your own. In addition, similarly to `key_to_placename`, use the global `placename_to_key` function to convert placenames to keys rather than directly invoking the function in the `placename_to_key` field. If the field is set to `false`, the placename is used unchanged as the key. Otherwise, the default algorithm works as follows: *# If the group-level `default_placetype == "thành phố"`, use the placename unchanged as the key. *# Otherwise, if the group-level `default_container` exists and is a string, append it to the placename after a comma + space and use the result as the key. *# Otherwise, if the group-level `default_container` is a canonical container object (an object with `key` and `placetype` fields), and the `placetype` field is either `country` or `constituent country`, append the `key` field to the placename after a comma + space and use the result as the key. *# Otherwise, use the placename unchanged as the key. * `canonicalize_key_container`: A function of one argument to convert the specified `container` field, when a string, to canonical form. Described in more detail above under [[#Container spec canonicalization]]. It is preferable to construct the function using `make_canonicalize_key_container`, if possible, rather than rolling your own. * `addl_divs`: Additional political divisions appended, for all locations in the group, to the list of divisions derived from the location-level `divs` or group-level `default_divs` fields to get the final list of divisions for the location. See [[#Location divisions]] for more details. ]==] ----------------------------------------------------------------------------------- -- Helper functions -- ----------------------------------------------------------------------------------- --[==[ Throw an error. `fmt` is a format string and the remaining arguments are passed through `mw.dumpObject` and then used to format the format string as if `fmt:format(...)` were called. In general, callers should use `internal_error` unless the error was due to bad user input rather than a logic error (which usually isn't the case in deep back-end code like this). ]==] function export.process_error(fmt, ...) local args = {...} for i = 1, select("#", ...) do args[i] = dump(args[i]) end return error(string.format(fmt, unpack(args))) end --[==[ Throw an internal error (a logic error that should never happen unless there is a bug in the code, as opposed to a user error triggered by bad input or a system error due to something like running out of memory or hitting a time limit). `fmt` is a format string and the remaining arguments are passed through `mw.dumpObject` and then used to format the format string as if `fmt:format(...)` were called. ]==] function export.internal_error(fmt, ...) export.process_error("Internal error: " .. fmt, ...) end local internal_error = export.internal_error -- Return whether `list_or_element` (a list of strings, or a single string) "contains" `item` (a string). If -- `list_or_element` is a list, this returns true if `item` is in the list; otherwise it returns true if `item` -- equals `list_or_element`. local function list_or_element_contains(list_or_element, item) if type(list_or_element) == "table" then return m_table.contains(list_or_element, item) and true or false end return list_or_element == item end --[==[ Call the location group's `key_to_placename` function if it exists (see the comment at the top of [[Module:place]] for the distinction between keys and placenames). Two values are returned, the full and elliptical placenames (e.g. full `"County Durham"` vs. elliptical `"Durham"`). If the group does not define `key_to_placename`, both full and elliptical placenames are computed by chopping off anything starting with a comma. ]==] function export.key_to_placename(group, key) if group.key_to_placename == false then return key, key end if group.key_to_placename then local full_placename, elliptical_placename = group.key_to_placename(key) if type(full_placename) ~= "string" then internal_error("Key %s returned a non-string full placename: %s", key, full_placename) end if type(elliptical_placename) ~= "string" then internal_error("Key %s returned a non-string elliptical placename: %s", key, elliptical_placename) end return full_placename, elliptical_placename end key = key:gsub(",.*", "") return key, key end --[==[ Call the location group's `placename_to_key` function if it exists (see the comment at the top of [[Module:place]] for the distinction between keys and placenames) and return the result. If `placename_to_key` exists with the value `false`, return the placename unchanged. If the group does not define `placename_to_key`, and it defines a `default_container` whose placetype is either `country` or `constituent country`, the container name is appended to the placename after a comma and a space. Otherwise the placename is returned unchanged. ]==] function export.placename_to_key(group, placename) if group.placename_to_key == false then return placename elseif group.placename_to_key then local key = group.placename_to_key(placename) if type(key) ~= "string" then internal_error("Placename %s returned a non-string key: %s", placename, key) end return key elseif group.default_placetype == "thành phố" then return placename else local defcon = group.default_container if not defcon then return placename elseif type(defcon) == "string" then return placename .. ", " .. defcon elseif type(defcon) == "table" and (defcon.placetype == "quốc gia" or defcon.placetype == "constituent country") then return placename .. ", " .. defcon.key else return placename end end end --[==[ Initialize the location spec `spec`, augmenting it with default values taken from `group` if the spec itself doesn't specify values for the properties. This sets `containers` to a canonicalized list of objects, each with `key` and `placetype` keys, describing the immediate containers of the location, and erases (sets to nil) the original non-canonicalized `container` field. (Most locations have only one immediate container but some, e.g. Russia, have more than one. Containers should be carefully distinguished from category parents. Generally the container is the first category parent, or the first ``n`` parents if there are ``n`` containers, but there may be additional category parents, which indicate some sort of relation between the category parent and the location but not necessarily one of containment.) This function is idempotent in that nothing happens if called more than once on the same spec. FIXME: Consider reimplementing this in a more standardly object-oriented way using metatables. ]==] function export.initialize_spec(group, key, spec) if spec.initialized then return end local container = spec.container local containers local container_from_default if not container then container = group.default_container container_from_default = true end if container then if type(container) == "string" or container.key then container = {container} end containers = {} for _, cont in ipairs(container) do if type(cont) == "string" then if group.canonicalize_key_container and not container_from_default then cont = group.canonicalize_key_container(cont) else cont = {key = cont, placetype = "quốc gia"} end end insert(containers, cont) end end spec.containers = containers spec.container = nil local function value_with_default(val, default_val) if val == nil then return default_val else return val end end local function set_or_default(prop) spec[prop] = value_with_default(spec[prop], group["default_" .. prop]) end set_or_default("placetype") if not spec.placetype then internal_error("No placetype found in key %s for spec %s or in group `default_placetype`", key, spec) end set_or_default("divs") spec.addl_divs = group.addl_divs for _, prop in ipairs { "keydesc", "fulldesc", "addl_parents", "overriding_bare_label_parents", "bare_category_parent_type", "wp", "wpcat", "commonscat", "british_spelling", "the", "no_container_cat", "no_container_parent", "no_generic_place_cat", "no_check_holonym_mismatch", "no_auto_augment_container", "no_include_container_in_desc", "is_city", "is_former_place", } do set_or_default(prop) end -- `default_placetype == "thành phố"` is correct; if `default_placetype` has something else like `prefecture-level city` -- as the canonical placetype but also lists `city` (as Chinese prefecture-level cities do), don't mark as -- is_city. spec.is_city = value_with_default(spec.is_city, group.default_placetype == "thành phố") spec.initialized = true end --[=[ Given a location group, key and possible placetypes that the placename must match, check if the key exists in the group with at least one of the group's key's placetypes matching one of the passed-in placetypes. If so, return two values: the group key (which potentially could differ from the passed-in key due to aliases) and the corresponding spec object, which (as with all functions that return spec objects) has been initialized using `initialize_spec()` (i.e. default property values have been copied from the group into the spec, if the spec doesn't itself specify a value for the property in question). `alias_resolution` controls how aliases are resolved. Normally, both display and category aliases are followed, and the returned key will reflect the canonical location key. However, if `alias_resolution` is {"none"}, no alias following happens. In that case, if the key specifies an alias, the spec for the alias rather than the spec for the canonical location is returned, and importantly, it is returned uninitialized, meaning that properties from the group are not copied into the spec. (If the key specifies a canonical location, its spec is returned initialized, as in the normal case where `alias_resolution` is unspecified.) The caller needs to check whether the returned spec is an alias by looking for an `alias_of` property. If `alias_resolution` is {"display"}, the behavior is the same as for {"none"} except that if the alias contains a setting `display = true`, the returned key will reflect the canonical location key, and if the alias contains a setting `display = ``string`` `, the returned key will reflect that string. This is a low-level function meant for internal use; external callers should generally use `get_matching_location` (for internally-derived locations), `find_matching_holonym_location` (for externally-derived locations) or `find_canonical_key` (for known-canonical locations where the placetype isn't known). ]=] local function find_matching_key_in_group(group, placetypes, key, alias_resolution) if alias_resolution ~= nil and alias_resolution ~= "none" and alias_resolution ~= "display" and alias_resolution ~= "all" then internal_error("Bad value for 'alias_resolution': %s", alias_resolution) end local spec = group.data[key] if not spec then return nil end local function check_correct_placetype(placetype) if type(placetype) == "table" then for _, pt in ipairs(placetype) do if list_or_element_contains(placetypes, pt) then return true end end return false else return list_or_element_contains(placetypes, placetype) end end if spec.alias_of then local resolved_key = spec.alias_of local resolved_spec = group.data[resolved_key] if not resolved_spec then internal_error("Key %s is an alias of %s, which doesn't exist", key, resolved_key) elseif resolved_spec.alias_of then internal_error("Key %s is an alias of %s, which is itself an alias; indirect aliasing not allowed", key, resolved_key) end if alias_resolution == "none" or alias_resolution == "display" then -- We could be working with non-initialized/defaulted spec, since we're pulling it directly from the group. local placetype = spec.placetype or resolved_spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s in any of spec %s, alias-resolved spec %s or in group " .. "`default_placetype`", key, spec, resolved_spec) end if not check_correct_placetype(placetype) then return nil end if alias_resolution == "display" then if spec.display == true then key = resolved_key elseif spec.display then key = spec.display end end return key, spec end key = resolved_key spec = resolved_spec end -- We could be working with non-initialized/defaulted spec, since we're pulling it directly from the group. local placetype = spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s in spec %s or group `default_placetype`", key, spec) end if not check_correct_placetype(placetype) then return nil end export.initialize_spec(group, key, spec) return key, spec end --[=[ Given a location group, placename and possible placetypes that the placename must match, check if the placename exists in the group with at least one of the placetypes of the key in the group that corresponds to the placename matching one of the passed-in placetypes. If so, return two values: the key corrsponding to the passed-in placename and the corresponding spec object. This is similar to `find_matching_key_in_group()` but works with placenames rather than keys. `alias_resolution` is as in `find_matching_key_in_group()`. This is a low-level function meant for internal use; external callers should generally use `get_matching_location` (for internally-derived locations), `find_matching_holonym_location` (for externally-derived locations) or `find_canonical_key` (for known-canonical locations where the placetype isn't known). ]=] local function find_matching_placename_in_group(group, placetypes, placename, alias_resolution) local key = export.placename_to_key(group, placename) return find_matching_key_in_group(group, placetypes, key, alias_resolution) end --[==[ If `key` is a canonical known location key (i.e. not an alias), return the corresponding group and initialized spec. If no such key exists, return {nil}. This throws an internal error if two locations with the same key are found. ]==] function export.find_canonical_key(key) local found_locations = {} for _, group in ipairs(export.locations) do local spec = group.data[key] if not spec then -- do nothing elseif spec.alias_of then mw.log(("Skipping alias '%s' of canonical '%s'"):format(key, spec.alias_of)) else insert(found_locations, {group, spec}) end end if not found_locations[1] then return nil elseif found_locations[2] then internal_error("Found multiple matching locations for canonical key %s: %s", key, found_locations) else local group, spec = unpack(found_locations[1]) export.initialize_spec(group, key, spec) return group, spec end end --[==[ Iterator that returns all locations matching a given description, where the description consists of either a placename or a key along with a list of possible placetypes. Usually there will be at most one such location. The iterator returns three values at each iteration: the location group, canonical key by which the location is known and the spec object describing the location. `data` contains the following possible fields: * `placetypes`: A list of possible placetypes, one of which must match one of the location's placetypes; or a string specifying a placetype, which must match one of the location's placetypes. This must be specified. * `placename`: The placename of the location. Either this or `key` must be specified. * `key`: The key of the location. Either this or `placename` must be specified. * `alias_resolution`: If specified, it behaves the same as for `find_matching_key_in_group`. The spec is normally initialized using `initialize_spec()` prior to it being returned (but may not be if `alias_resolution` is given and the specified key or placename is an alias; see the documentation for `find_matching_key_in_group`). ]==] function export.iterate_matching_location(data) local i = 0 local n = #export.locations return function() while true do i = i + 1 if i > n then break end local group = export.locations[i] local key, spec if data.placename then key, spec = find_matching_placename_in_group(group, data.placetypes, data.placename, data.alias_resolution) else if not data.key then internal_error("'.placename' or '.key' must be defined: %s", data) end key, spec = find_matching_key_in_group(group, data.placetypes, data.key, data.alias_resolution) end if key then return group, key, spec end end end end --[==[ Return the location matching a given description, where the description consists of either a placename or a key along with a list of possible placetypes. This is similar to `iterate_matching_location()` but throws an internal error if there is not exactly one location found; as such, it is for use with internally specified locations (such as the containers of known locations) rather than externally specified locations, which may not match a known location and in some cases may match multiple known locations. For finding an externally specified location, consider using `find_matching_holonym_location`, which returns {nil} rather than throwing an error if the location isn't found, but also (more importantly) checks to make sure there are no conflicting holonyms among the user-specified holonyms (e.g. {{tl|place|city|s/Delaware|c/USA|t=Newark}} will not match the known location `Newark` (in New Jersey, not Delaware). ]==] function export.get_matching_location(data) local all_found = {} for group, key, spec in export.iterate_matching_location(data) do insert(all_found, {group, key, spec}) end if not all_found[1] then internal_error("Couldn't find matching location for data %s", data) elseif all_found[2] then internal_error("Found multiple matching locations for data %s: %s", data, all_found) else return unpack(all_found[1]) end end --[==[ Successively iterate over a location's containers, and then the containers of those containers, etc. Keep in mind that locations may have multiple containers (e.g. Russia has both Europe and Asia as containers, and both Europe and Asia have Eurasia as their container). A given container will never be returned twice (e.g. in the case where a specific location A has locations B and C as containers, and B has C as its container, C will not be returned twice). An internal error happens if a container loop is detected. The return value is a list of location objects, each of which contains `group`, `key` and `spec` fields. ]==] function export.iterate_containers(group, key, spec) local keys_seen = {} keys_seen[key] = true local iterations = 0 local last_iteration_containers = {{group = group, key = key, spec = spec}} return function() iterations = iterations + 1 if iterations > 10 then internal_error("Probable loop in containers when processing key %s", key) end local next_iteration_containers = {} for _, location in ipairs(last_iteration_containers) do local containers = location.spec.containers if containers then for _, container in ipairs(containers) do local container_group, container_key, container_spec = export.get_matching_location { placetypes = container.placetype, key = container.key, } if not keys_seen[container_key] then insert(next_iteration_containers, { group = container_group, key = container_key, spec = container_spec }) keys_seen[container_key] = true end end end end if not next_iteration_containers[1] then return nil end last_iteration_containers = next_iteration_containers return next_iteration_containers end end --[==[ Given a placename, convert it into a link (two-part if `display_form` is given and differs from `placename`) and add `"the "` to the beginning if called for in `spec`. ]==] function export.construct_linked_placename(spec, placename, display_form) local linked_placename = display_form and placename ~= display_form and ("[[%s|%s]]"):format(placename, display_form) or ("[[%s]]"):format(placename) if spec.the then linked_placename = "the " .. linked_placename end return linked_placename end --[=[ This is typically used to define `key_to_placename`. It generates a function that chops off parts of a string (a location key), typically at the end, in order to get the full and elliptical versions of a placename. (See the documentation above for `key_to_placename` under "Location group tables" for the difference between full and elliptical placenames.) `container_patterns` is a Lua pattern or a list of possible patterns matching the container at the end of the key, which will be used to remove that container. If multiple patterns are specified, each one is tried until one matches. If `container_patterns` is omitted, this part of the process is skipped. The reulting string becomes the full placename. If `divtype_patterns` is specified, it is likewise either a Lua pattern or list of possible patterns to match and remove the political division affixed onto the end (or possibly the beginning) of the key in the keys of certain countries (such as South Korean and North Korean counties, which include the word "County" in the key). The resulting chopped string becomes the elliptical placename. If `divtype_patterns` is omitted, this part of the process is skipped and the full and elliptical placenames are the same. Typical usage is as follows: ``` key_to_placename = make_key_to_placename(", Anh$"), ``` or (when the political division is part of the key) ``` key_to_placename = make_key_to_placename(", Hàn Quốc$", "$") ``` ]=] local function make_key_to_placename(container_patterns, divtype_patterns) if type(container_patterns) == "string" then container_patterns = {container_patterns} end if type(divtype_patterns) == "string" then divtype_patterns = {divtype_patterns} end return function(key) local full_placename = key if container_patterns then for _, container_pattern in ipairs(container_patterns) do local nsubs full_placename, nsubs = full_placename:gsub(container_pattern, "") if nsubs > 0 then break end end end local elliptical_placename = full_placename if divtype_patterns then for _, divtype_pattern in ipairs(divtype_patterns) do local nsubs elliptical_placename, nsubs = elliptical_placename:gsub(divtype_pattern, "") if nsubs > 0 then break end end end return full_placename, elliptical_placename end end --[=[ This is typically used to define `placename_to_key`. It generates a function that appends a string to the end of a given placename to get the key (see the definition of `placename_to_key` above in the documentation under "Location group tables"). Optional `divtype_suffix` is a raw string (which should not contain hyphens or other characters that have special meaning in Lua patterns) to be appended first to the placename; if already present at the end, it is not appended. `container_suffix` is then added in the same fashion if given. Typical usage is like this: ``` placename_to_key = make_placename_to_key(", Anh") ``` (which will convert e.g. `"Hampshire"` into `"Hampshire, Anh"`) or ``` placename_to_key = make_placename_to_key(", Hàn Quốc", " County") ``` (which will convert e.g. `"Gangwon"` or `"Gangwon County"` into `"Gangwon, Hàn Quốc"`). ]=] local function make_placename_to_key(container_suffix, divtype_suffix) return function(placename) local key = placename if divtype_suffix then if not key:find(divtype_suffix .. "$") then key = key .. divtype_suffix end end if container_suffix then key = key .. container_suffix end return key end end --[=[ This is typically used to define `canonicalize_key_container`, which converts a container as specified in the location data into the canonical form containing both the full container key and its placetype. It generates a function to do the canonicalization of a given container. If the container is a string, `suffix` is appended onto the string (use {nil} or {""} if there is no suffix to append), and the placetype is set to `placetype`. Otherwise the container is left as-is. Typical usage is like this: ``` canonicalize_key_container = make_canonicalize_key_container(", Canada", "province") ``` which will convert e.g. `"Ontario"` into `{key = "Ontario, Canada", placetype = "province"}`. ]=] local function make_canonicalize_key_container(suffix, placetype) return function(container) if type(container) == "string" then return {key = container .. (suffix or ""), placetype = placetype} else return container end end end ----------------------------------------------------------------------------------- -- Top-level tables -- ----------------------------------------------------------------------------------- export.continents = { ["Trái Đất"] = {placetype = "planet", addl_parents = {"tự nhiên"}, fulldesc = "=là hành tinh thứ ba tính từ Mặt Trời", commonscat = "Earth"}, ["châu Phi"] = {placetype = "continent", commonscat = "Africa", container = {key = "Trái Đất", placetype = "planet"}}, ["châu Mỹ"] = {placetype = {"supercontinent", "continent"}, container = {key = "Trái Đất", placetype = "planet"}, keydesc = "[[America]], in the sense of [[North America]] and [[South America]] combined", wp = "Châu Mỹ"}, ["Americas"] = {alias_of = "châu Mỹ"}, ["America"] = {alias_of = "châu Mỹ"}, ["Bắc Mỹ"] = {placetype = "continent", container = {key = "châu Mỹ", placetype = "supercontinent"}}, ["Caribe"] = {the = true, placetype = {"continental region", "region"}, container = {key = "Bắc Mỹ", placetype = "continent"}}, ["Trung Mỹ"] = {placetype = {"continental region", "region"}, container = {key = "Bắc Mỹ", placetype = "continent"}}, ["Nam Mỹ"] = {placetype = "continent", container = {key = "châu Mỹ", placetype = "supercontinent"}}, ["châu Nam Cực"] = {placetype = "continent", container = {key = "Trái Đất", placetype = "planet"}, fulldesc = "=lục địa nằm xa về phía nam và tây nhất trên Trái Đất, chứa Cực Nam địa lý và nằm trong Vùng Nam Cực của Nam Bán cầu"}, ["Đại lục Á Âu"] = {placetype = {"supercontinent", "continent"}, container = {key = "Trái Đất", placetype = "planet"}, keydesc = "một khu vực đất đai rộng lớn, bao gồm châu Âu và châu Á"}, ["châu Á"] = {placetype = "continent", container = {key = "Đại lục Á Âu", placetype = "supercontinent"}}, ["châu Âu"] = {placetype = "continent", container = {key = "Đại lục Á Âu", placetype = "supercontinent"}}, ["châu Đại Dương"] = {placetype = "continent", container = {key = "Trái Đất", placetype = "planet"}}, ["Melanesia"] = {placetype = {"continental region", "region"}, container = {key = "châu Đại Dương", placetype = "continent"}}, ["Micronesia"] = {placetype = {"continental region", "region"}, container = {key = "châu Đại Dương", placetype = "continent"}}, ["Polynesia"] = {placetype = {"continental region", "region"}, container = {key = "châu Đại Dương", placetype = "continent"}}, } export.continents_group = { default_overriding_bare_label_parents = {}, -- container parents should be used default_divs = {{type = "quốc gia", prep = "của"}}, -- It's enough to mention the first-level continent or continent group. It seems excessive to write e.g. -- "El Salvador, a country in Central America, a continental region in North America, a continent in America, ...". default_no_include_container_in_desc = true, default_no_container_cat = true, default_no_container_parent = true, default_no_auto_augment_container = true, default_no_generic_place_cat = true, -- French Guyana is in France but not in Europe, which should not be an issue, so don't check holonym mismatches at -- this level. We also run into problems with supercontinents, which have "continent" as the fallback and cause -- mismatches. default_no_check_holonym_mismatch = true, data = export.continents, } -- Countries: including those with partial recognition that are normally considered countries (e.g. Kosovo, Taiwan). export.countries = { ["Afghanistan"] = {container = "châu Á", divs = {"provinces", "districts"}}, ["Albania"] = {container = "châu Âu", divs = {"counties", "municipalities", "communes", {type = "administrative units", cat_as = "communes"}, }, british_spelling = true}, ["Algeria"] = {container = "châu Phi", divs = {"provinces", "communes", "districts", "municipalities"}}, ["Andorra"] = {container = "châu Âu", divs = {"parishes"}, british_spelling = true}, ["Angola"] = {container = "châu Phi", divs = {"provinces", "municipalities"}}, ["Antigua and Barbuda"] = {container = "Caribe", divs = {"provinces"}, british_spelling = true}, ["Argentina"] = {container = "Nam Mỹ", divs = {"provinces", "departments", "municipalities"}}, ["Armenia"] = {container = {"châu Âu", "châu Á"}, divs = {"provinces", "districts", "municipalities"}, british_spelling = true}, ["Republic of Armenia"] = {alias_of = "Armenia"}, -- differs in "the" -- Both a country and continent ["Úc"] = {container = "châu Đại Dương", divs = { {type = "states", cat_as = "states and territories"}, {type = "territories", cat_as = "states and territories"}, {type = "ABBREVIATION_OF states", cat_as = "abbreviations of states and territories"}, {type = "ABBREVIATION_OF territories", cat_as = "abbreviations of states and territories"}, "local government areas", "dependent territories", }, british_spelling = true}, ["Australia"] = {alias_of = "Úc"}, ["Áo"] = {container = "châu Âu", divs = {"states", "districts", "municipalities"}, british_spelling = true}, ["Azerbaijan"] = {container = {"châu Âu", "châu Á"}, divs = {"districts", "municipalities"}, british_spelling = true}, ["Bahamas"] = {the = true, container = "Caribe", divs = {"districts"}, british_spelling = true, wp = "The %l"}, ["Bahrain"] = {container = "châu Á", divs = {"governorates"}}, ["Bangladesh"] = {container = "châu Á", divs = {"divisions", "districts", "municipalities"}, british_spelling = true}, ["Barbados"] = {container = "Caribe", divs = {"parishes"}, british_spelling = true}, ["Belarus"] = {container = "châu Âu", divs = {"regions", "districts"}, british_spelling = true}, ["Bỉ"] = {container = "châu Âu", divs = {"regions", "provinces", "municipalities"}, british_spelling = true}, ["Belize"] = {container = "Trung Mỹ", divs = {"districts"}, british_spelling = true}, ["Benin"] = {container = "châu Phi", divs = {"departments", "communes"}}, ["Bhutan"] = {container = "châu Á", divs = {"districts", "gewogs"}}, ["Bolivia"] = {container = "Nam Mỹ", divs = {"provinces", "departments", "municipalities"}}, ["Bosna và Hercegovina"] = {container = "châu Âu", divs = {"entities", "cantons", "municipalities"}, british_spelling = true}, ["Bosnia and Hercegovina"] = {alias_of = "Bosna và Hercegovina", display = true}, ["Bosnia và Hercegovina"] = {alias_of = "Bosna và Hercegovina", display = true}, ["Bosnia-Herzegovina"] = {alias_of = "Bosna và Hercegovina", display = true}, ["Bosnia-Hercegovina"] = {alias_of = "Bosna và Hercegovina", display = true}, ["Bosnia"] = {alias_of = "Bosna và Hercegovina", display = true}, ["Botswana"] = {container = "châu Phi", divs = {"districts", "subdistricts"}, british_spelling = true}, ["Brasil"] = {container = "Nam Mỹ", divs = { "states", "municipalities", "macroregions", {type = "ABBREVIATION_OF states", cat_as = "abbreviations of states"}, }}, ["Brazil"] = {alias_of = "Brasil", display = true}, ["Brunei"] = {container = "châu Á", divs = {"districts", "mukims"}, british_spelling = true}, ["Bulgaria"] = {container = "châu Âu", divs = {"provinces", "municipalities"}, british_spelling = true}, ["Burkina Faso"] = {container = "châu Phi", divs = {"regions", "departments", "provinces"}}, ["Burundi"] = {container = "châu Phi", divs = {"provinces", "communes"}}, ["Campuchia"] = {container = "châu Á", divs = {"provinces", "districts"}}, ["Cameroon"] = {container = "châu Phi", divs = {"regions", "departments"}}, ["Canada"] = {container = "Bắc Mỹ", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, {type = "ABBREVIATION_OF provinces", cat_as = "abbreviations of provinces and territories"}, {type = "ABBREVIATION_OF territories", cat_as = "abbreviations of provinces and territories"}, "counties", "districts", "municipalities", "regional municipalities", "rural municipalities", "parishes", -- Don't change the following to something more politically correct (e.g. "First Nations reserves") until/unless -- the Canadian government makes a similar switch (and note that as of Apr 18 2025, the Wikipedia article is -- still at [[w:Indian reserves]]). "Indian reserves", "census divisions", {type = "townships", prep = "in"}, }, british_spelling = true}, ["Cape Verde"] = {container = "châu Phi", divs = {"municipalities", "parishes"}}, ["Cabo Verde"] = {alias_of = "Cape Verde", display = true}, ["Cộng hòa Trung Phi"] = {container = "châu Phi", divs = {"prefectures", "subprefectures"}}, ["CAR"] = {alias_of = "Cộng hòa Trung Phi", display = true}, ["C.A.R"] = {alias_of = "Cộng hòa Trung Phi", display = true}, ["Tchad"] = {container = "châu Phi", divs = {"regions", "departments"}}, ["Chad"] = {alias_of = "Tchad", display = true}, ["Chile"] = {container = "Nam Mỹ", divs = {"regions", "provinces", "communes"}}, ["Trung Quốc"] = {container = "châu Á", divs = { {type = "provinces", cat_as = "provinces and autonomous regions"}, {type = "autonomous regions", cat_as = "provinces and autonomous regions"}, {type = "FORMER provinces", cat_as = "former provinces"}, "special administrative regions", "prefectures", {type = "FORMER prefectures", cat_as = "former prefectures"}, "prefecture-level cities", {type = "counties", cat_as = "counties and county-level cities"}, {type = "county-level cities", cat_as = "counties and county-level cities"}, {type = "FORMER counties", cat_as = "former counties and county-level cities"}, {type = "FORMER county-level cities", cat_as = "former counties and county-level cities"}, -- "towns" (but not "townships") are automatically added as they are specified as generic_before_non_cities. "districts", {type = "FORMER districts", cat_as = "former districts"}, "subdistricts", "townships", "municipalities", {type = "direct-administered municipalities", cat_as = "municipalities"}, }}, ["People's Republic of China"] = {alias_of = "Trung Quốc"}, -- differs in "the" ["Colombia"] = {container = "Nam Mỹ", divs = {"departments", "municipalities"}}, ["Comoros"] = {the = true, container = "châu Phi", divs = {"autonomous islands"}}, ["Costa Rica"] = {container = "Trung Mỹ", divs = {"provinces", "cantons"}}, ["Croatia"] = {container = "châu Âu", divs = {"counties", "municipalities"}, british_spelling = true}, ["Cuba"] = {container = "Caribe", divs = {"provinces", "municipalities"}}, ["Cyprus"] = {container = {"châu Âu", "châu Á"}, divs = {"districts"}, british_spelling = true}, ["Czech Republic"] = {the = true, container = "châu Âu", divs = {"regions", "districts", "municipalities"}, british_spelling = true}, ["Czechia"] = {alias_of = "Czech Republic"}, -- differs in "the" ["Democratic Republic of the Congo"] = {the = true, container = "châu Phi", divs = {"provinces", "territories"}}, ["Congo"] = {alias_of = "Democratic Republic of the Congo", display = true, the = true}, ["DRC"] = {alias_of = "Democratic Republic of the Congo", display = true, the = true}, ["D.R.C"] = {alias_of = "Democratic Republic of the Congo", display = true, the = true}, ["Đan Mạch"] = {container = "châu Âu", divs = {"regions", "municipalities", "dependent territories"}, british_spelling = true, -- Wikipedia separates [[w:Denmark]] (constituent country) from [[w:Danish Realm]] (country) }, ["Djibouti"] = {container = "châu Phi", divs = {"regions", "districts"}}, ["Dominica"] = {container = "Caribe", divs = {"parishes"}, british_spelling = true}, ["Dominican Republic"] = {the = true, container = "Caribe", divs = {"provinces", "municipalities"}, keydesc = "the [[Dominican Republic]], the country that shares the [[Caribbean]] island of [[Hispaniola]] with [[Haiti]]"}, ["Đông Timor"] = {container = "châu Á", divs = {"municipalities"}, wp = "Timor-Leste"}, ["Timor-Leste"] = {alias_of = "Đông Timor", display = true}, ["Ecuador"] = {container = "Nam Mỹ", divs = {"provinces", "cantons"}}, ["Ai Cập"] = {container = "châu Phi", divs = {"governorates", "regions"}, british_spelling = true}, ["El Salvador"] = {container = "Trung Mỹ", divs = {"departments", "municipalities"}}, ["Guinea Xích Đạo"] = {container = "châu Phi", divs = {"provinces"}}, ["Eritrea"] = {container = "châu Phi", divs = {"regions", "subregions"}}, ["Estonia"] = {container = "châu Âu", divs = {"counties", "municipalities"}, british_spelling = true}, ["Eswatini"] = {container = "châu Phi", british_spelling = true}, ["Swaziland"] = {alias_of = "Eswatini", display = true}, ["Ethiopia"] = {container = "châu Phi", divs = {"regions", "zones"}}, ["Federated States of Micronesia"] = {the = true, container = "Micronesia", divs = {"states"}}, ["Micronesia"] = {alias_of = "Federated States of Micronesia"}, ["Fiji"] = {container = "Melanesia", divs = {"divisions", "provinces"}, british_spelling = true}, ["Phần Lan"] = {container = "châu Âu", divs = {"regions", "municipalities"}, british_spelling = true}, ["Pháp"] = {container = "châu Âu", divs = {"regions", "cantons", "collectivities", "communes", {type = "municipalities", cat_as = "communes"}, "departments", {type = "prefectures", cat_as = {"prefectures", "departmental capitals"}}, {type = "French prefectures", cat_as = {"prefectures", "departmental capitals"}}, "dependent territories", "territories", "provinces", }, british_spelling = true}, ["Gabon"] = {container = "châu Phi", divs = {"provinces", "departments"}}, ["Gambia"] = {the = true, container = "châu Phi", divs = {"divisions", "districts"}, british_spelling = true, wp = "The %l"}, ["Georgia"] = {container = {"châu Âu", "châu Á"}, divs = {"regions", "districts"}, keydesc = "the country of [[Georgia]], in [[Eurasia]]", british_spelling = true, wp = "%l (country)"}, ["Đức"] = {container = "châu Âu", divs = { "states", -- Bavaria, Baden-Württemberg, Hesse and North Rhine-Westphalia have administrative regions as divisions, but -- there aren't really enough of them to categorize per state. "regions", "municipalities", "districts"}, british_spelling = true}, ["Ghana"] = {container = "châu Phi", divs = {"regions", "districts"}, british_spelling = true}, ["Hy Lạp"] = {container = "châu Âu", divs = {"regions", "regional units", "municipalities", {type = "peripheries", cat_as = {"regions"}}, }, british_spelling = true}, ["Grenada"] = {container = "Caribe", divs = {"parishes"}, british_spelling = true}, ["Guatemala"] = {container = "Trung Mỹ", divs = {"departments", "municipalities"}}, ["Guinea"] = {container = "châu Phi", divs = {"regions", "prefectures"}}, ["Guinea-Bissau"] = {container = "châu Phi", divs = {"regions"}}, ["Guyana"] = {container = "Nam Mỹ", divs = {"regions"}, british_spelling = true}, ["Haiti"] = {container = "Caribe", divs = {"departments", "arrondissements"}}, ["Honduras"] = {container = "Trung Mỹ", divs = {"departments", "municipalities"}}, ["Hungary"] = {container = "châu Âu", divs = {"counties", "districts"}, british_spelling = true}, ["Iceland"] = {container = "châu Âu", divs = {"regions", "municipalities", "counties"}, british_spelling = true}, ["Ấn Độ"] = {container = "châu Á", divs = { {type = "states", cat_as = "states and union territories"}, {type = "union territories", cat_as = "states and union territories"}, {type = "ABBREVIATION_OF states", cat_as = "abbreviations of states and union territories"}, {type = "ABBREVIATION_OF union territories", cat_as = "abbreviations of states and union territories"}, "divisions", "districts", "municipalities", }, british_spelling = true}, ["Indonesia"] = {container = "châu Á", divs = {"regencies", "provinces", {type = "ABBREVIATION_OF provinces", cat_as = "abbreviations of provinces"}, }}, ["Iran"] = {container = "châu Á", divs = {"provinces", "counties"}}, ["Iraq"] = {container = "châu Á", divs = {"governorates", "districts"}}, ["Ireland"] = {container = "châu Âu", addl_parents = {"British Isles"}, divs = {"counties", "districts", "provinces"}, british_spelling = true, wp = "Republic of %l"}, ["Republic of Ireland"] = {alias_of = "Ireland"}, -- differs in "the" ["Israel"] = {container = "châu Á", divs = {"districts"}}, ["Ý"] = {container = "châu Âu", divs = { "regions", "provinces", "metropolitan cities", "municipalities", {type = "autonomous regions", cat_as = "regions"}, }, british_spelling = true}, ["Bờ Biển Ngà"] = {container = "châu Phi", divs = {"districts", "regions"}}, -- We should really be using Ivory Coast (common name) but there are political ramifications to the use of -- Côte d'Ivoire so don't make it a display alias. ["Côte d'Ivoire"] = {alias_of = "Bờ Biển Ngà"}, ["Jamaica"] = {container = "Caribe", divs = {"parishes"}, british_spelling = true}, ["Nhật Bản"] = {container = "châu Á", divs = {"prefectures", "subprefectures", "municipalities"}}, ["Jordan"] = {container = "châu Á", divs = {"governorates"}}, ["Kazakhstan"] = {container = {"châu Á", "châu Âu"}, divs = {"regions", "districts"}}, ["Kenya"] = {container = "châu Phi", divs = {"counties"}, british_spelling = true}, ["Kiribati"] = {container = "Micronesia", british_spelling = true}, ["Kosovo"] = {container = "châu Âu", divs = {"districts", "municipalities"}, british_spelling = true}, ["Kuwait"] = {container = "châu Á", divs = {"governorates", "areas"}}, ["Kyrgyzstan"] = {container = "châu Á", divs = {"regions", "districts"}}, ["Lào"] = {container = "châu Á", divs = {"provinces", "districts"}}, ["Latvia"] = {container = "châu Âu", divs = {"municipalities"}, british_spelling = true}, ["Lebanon"] = {container = "châu Á", divs = {"governorates", "districts"}}, ["Lesotho"] = {container = "châu Phi", divs = {"districts"}, british_spelling = true}, ["Liberia"] = {container = "châu Phi", divs = {"counties", "districts"}}, ["Libya"] = {container = "châu Phi", divs = {"districts", "municipalities"}}, ["Liechtenstein"] = {container = "châu Âu", divs = {"municipalities"}, british_spelling = true}, ["Litva"] = {container = "châu Âu", divs = {"counties", "municipalities"}, british_spelling = true}, ["Luxembourg"] = {container = "châu Âu", divs = {"cantons", "districts"}, british_spelling = true}, ["Madagascar"] = {container = "châu Phi", divs = {"regions", "districts"}}, ["Malawi"] = {container = "châu Phi", divs = {"regions", "districts"}, british_spelling = true}, ["Malaysia"] = {container = "châu Á", divs = {"states", "federal territories", "districts"}, british_spelling = true}, ["Maldives"] = {the = true, container = "châu Á", divs = {"provinces", "administrative atolls"}, british_spelling = true}, ["Mali"] = {container = "châu Phi", divs = {"regions", "cercles"}}, ["Malta"] = {container = "châu Âu", divs = {"regions", "local councils"}, british_spelling = true}, ["Marshall Islands"] = {the = true, container = "Micronesia", divs = {"municipalities"}}, ["Mauritania"] = {container = "châu Phi", divs = {"regions", "departments"}}, ["Mauritius"] = {container = "châu Phi", divs = {"districts"}, british_spelling = true}, ["Mexico"] = {container = "Bắc Mỹ", addl_parents = {"Trung Mỹ"}, divs = { "states", "municipalities", {type = "ABBREVIATION_OF states", cat_as = "abbreviations of states"}, }}, ["Moldova"] = {container = "châu Âu", divs = { {type = "districts", cat_as = "districts and autonomous territorial units"}, {type = "autonomous territorial units", cat_as = "districts and autonomous territorial units"}, "communes", "municipalities", }, british_spelling = true}, ["Monaco"] = {placetype = {"city-state", "quốc gia"}, container = "châu Âu", -- We want the first placetype to be 'city-state' so the description of Monaco says it's a city-state, but we -- want its parent to be "countries in Europe". bare_category_parent_type = {type = "quốc gia", prep = "của"}, is_city = true, british_spelling = true}, ["Mông Cổ"] = {container = "châu Á", divs = {"provinces", "districts"}}, ["Montenegro"] = {container = "châu Âu", divs = {"municipalities"}}, ["Maroc"] = {container = "châu Phi", divs = {"regions", "prefectures", "provinces"}}, ["Mozambique"] = {container = "châu Phi", divs = {"provinces", "districts"}}, ["Myanmar"] = {container = "châu Á", divs = {"regions", "states", "union territories", {type = "self-administered zones", cat_as = "self-administered areas"}, {type = "self-administered divisions", cat_as = "self-administered areas"}, "districts"}}, ["Burma"] = {alias_of = "Myanmar"}, -- not display-canonicalizing; has political connotations ["Namibia"] = {container = "châu Phi", divs = {"regions", "constituencies"}, british_spelling = true}, ["Nauru"] = {container = "Micronesia", divs = {"districts"}, british_spelling = true}, ["Nepal"] = {container = "châu Á", divs = {"provinces", "districts"}}, ["Netherlands"] = {the = true, placetype = {"quốc gia", "constituent country"}, container = "châu Âu", divs = {"provinces", "municipalities", {type = "FORMER municipalities", cat_as = "former municipalities"}, "dependent territories", "constituent countries"}, british_spelling = true, -- Wikipedia separates [[w:Netherlands]] (constituent country) from [[w:Kingdom of the Netherlands]] -- (country) }, ["New Zealand"] = {container = "Polynesia", divs = { "regions", "dependent territories", "territorial authorities", {type = "districts", cat_as = "territorial authorities"}, }, british_spelling = true}, ["Nicaragua"] = {container = "Trung Mỹ", divs = {"departments", "municipalities"}}, ["Niger"] = {container = "châu Phi", divs = {"regions", "departments"}}, ["Nigeria"] = {container = "châu Phi", divs = { "states", -- Categorize the Federal Capital Territory as a state because there's only one of it; we could categorize -- everything under 'states and territories' but that seems a bit pointless. {type = "federal territories", cat_as = "states"}, "local government areas", }, british_spelling = true}, ["Cộng hòa Dân chủ Nhân dân Triều Tiên"] = {container = "châu Á", addl_parents = {"Korea"}, divs = {"provinces", "counties"}}, ["North Macedonia"] = {container = "châu Âu", divs = {"regions", "municipalities"}, british_spelling = true}, ["Macedonia"] = {alias_of = "North Macedonia", display = true}, ["Republic of North Macedonia"] = {alias_of = "North Macedonia"}, -- differs in "the" ["Republic of Macedonia"] = {alias_of = "North Macedonia"}, -- differs in "the" ["Na Uy"] = {container = "châu Âu", divs = {"counties", "municipalities", "dependent territories", "districts", "unincorporated areas"}, british_spelling = true}, ["Oman"] = {container = "châu Á", divs = {"governorates", "provinces"}}, ["Pakistan"] = {container = "châu Á", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "administrative territories", cat_as = "provinces and territories"}, {type = "federal territories", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, "divisions", "districts", }, british_spelling = true}, ["Palau"] = {container = "Micronesia", divs = {"states"}}, ["Palestine"] = {container = "châu Á", divs = {"governorates"}}, ["State of Palestine"] = {alias_of = "Palestine"}, -- differs in "the" ["Panama"] = {container = "Trung Mỹ", divs = {"provinces", "districts"}}, ["Papua New Guinea"] = {container = "Melanesia", divs = {"provinces", "districts"}, british_spelling = true}, ["Paraguay"] = {container = "Nam Mỹ", divs = {"departments", "districts"}}, ["Peru"] = {container = "Nam Mỹ", divs = {"regions", "provinces", "districts"}}, ["Philippines"] = {the = true, container = "châu Á", divs = {"regions", "provinces", "districts", "municipalities", "barangays"}}, ["Ba Lan"] = {divs = {"voivodeships", "counties", {type = "Polish colonies", cat_as = {{type = "villages", prep = "in"}}}, }, container = "châu Âu", british_spelling = true}, ["Portugal"] = {container = "châu Âu", divs = { {type = "autonomous regions", cat_as = "districts and autonomous regions"}, {type = "districts", cat_as = "districts and autonomous regions"}, "provinces", "municipalities"}, british_spelling = true}, ["Qatar"] = {container = "châu Á", divs = {"municipalities", "zones"}}, ["Republic of the Congo"] = {the = true, container = "châu Phi", divs = {"departments", "districts"}}, ["Congo Republic"] = {alias_of = "Republic of the Congo", display = true, the = true}, ["Romania"] = {container = "châu Âu", divs = { "regions", "counties", "communes", {type = "ABBREVIATION_OF counties", cat_as = "abbreviations of counties"}, }, british_spelling = true}, ["Nga"] = {container = {"châu Âu", "châu Á"}, divs = { "federal subjects", "republics", "autonomous oblasts", "autonomous okrugs", "oblasts", "krais", "federal cities", "districts", "federal districts"}, british_spelling = true}, ["Rwanda"] = {container = "châu Phi", divs = {"provinces", "districts"}}, ["Saint Kitts and Nevis"] = {container = "Caribe", divs = {"parishes"}, british_spelling = true}, ["Saint Kitts"] = {alias_of = "Saint Kitts and Nevis", display = true}, ["Saint Lucia"] = {container = "Caribe", divs = {"districts"}, british_spelling = true}, ["Saint Vincent and the Grenadines"] = {container = "Caribe", divs = {"parishes"}, british_spelling = true}, ["Saint Vincent"] = {alias_of = "Saint Vincent and the Grenadines", display = true}, ["SVG"] = {alias_of = "Saint Vincent and the Grenadines", display = true}, ["S.V.G"] = {alias_of = "Saint Vincent and the Grenadines", display = true}, ["Samoa"] = {container = "Polynesia", divs = {"districts"}, british_spelling = true}, ["San Marino"] = {container = "châu Âu", divs = {"municipalities"}, british_spelling = true}, ["São Tomé and Príncipe"] = {container = "châu Phi", divs = {"districts"}}, ["São Tome and Principe"] = {alias_of = "São Tomé and Príncipe", display = true}, ["São Tomé"] = {alias_of = "São Tomé and Príncipe", display = true}, ["São Tome"] = {alias_of = "São Tomé and Príncipe", display = true}, ["Ả Rập Xê Út"] = {container = "châu Á", divs = {"provinces", "governorates"}}, ["Senegal"] = {container = "châu Phi", divs = {"regions", "departments"}}, ["Serbia"] = {container = "châu Âu", divs = {"districts", "municipalities", "autonomous provinces"}}, ["Seychelles"] = {container = "châu Phi", divs = {"districts"}, british_spelling = true}, ["Sierra Leone"] = {container = "châu Phi", divs = {"provinces", "districts"}, british_spelling = true}, ["Singapore"] = {container = "châu Á", divs = {"districts", "regions"}, british_spelling = true}, ["Slovakia"] = {container = "châu Âu", divs = {"regions", "districts"}, british_spelling = true}, ["Slovenia"] = {container = "châu Âu", divs = {"statistical regions", "municipalities"}, british_spelling = true}, -- Note: While the official name does not include "the" at the beginning, -- it sounds strange in English to leave it out and it's commonly included. ["Solomon Islands"] = {the = true, container = "Melanesia", divs = {"provinces"}, british_spelling = true}, ["Somalia"] = {container = "châu Phi", divs = {"regions", "districts"}}, ["South Africa"] = {container = "châu Phi", divs = { "provinces", "districts", {type = "district municipalities", cat_as = "districts"}, {type = "metropolitan municipalities", cat_as = "districts"}, "municipalities", }, british_spelling = true}, ["Hàn Quốc"] = {container = "châu Á", addl_parents = {"Korea"}, divs = {"provinces", "counties", "districts"}}, ["Nam Sudan"] = {container = "châu Phi", divs = {"regions", "states", "counties"}, british_spelling = true}, ["Tây Ban Nha"] = {container = "châu Âu", divs = {"autonomous communities", "provinces", "municipalities", "comarcas", "autonomous cities"}, british_spelling = true}, ["Sri Lanka"] = {container = "châu Á", divs = {"provinces", "districts"}, british_spelling = true}, ["Sudan"] = {container = "châu Phi", divs = {"states", "districts"}, british_spelling = true}, ["Suriname"] = {container = "Nam Mỹ", divs = {"districts"}}, ["Thụy Điển"] = {container = "châu Âu", divs = {"provinces", "counties", "municipalities"}, british_spelling = true}, ["Switzerland"] = {container = "châu Âu", divs = {"cantons", "municipalities", "districts"}, british_spelling = true}, ["Syria"] = {container = "châu Á", divs = {"governorates", "districts"}}, ["Đài Loan"] = {container = "châu Á", divs = {"counties", "districts", "townships", "special municipalities"}}, ["Republic of China"] = {alias_of = "Đài Loan"}, -- differs in "the", different political connotations ["Tajikistan"] = {container = "châu Á", divs = {"regions", "districts"}}, ["Tanzania"] = {container = "châu Phi", divs = {"regions", "districts"}, british_spelling = true}, ["Thái Lan"] = {container = "châu Á", divs = {"provinces", "districts", "subdistricts"}}, ["Togo"] = {container = "châu Phi", divs = {"provinces", "prefectures"}}, ["Tonga"] = {container = "Polynesia", divs = {"divisions"}, british_spelling = true}, ["Trinidad and Tobago"] = {container = "Caribe", divs = {"regions", "municipalities"}, british_spelling = true}, ["Tunisia"] = {container = "châu Phi", divs = {"governorates", "delegations"}}, ["Thổ Nhĩ Kỳ"] = {container = {"châu Âu", "châu Á"}, divs = {"provinces", "districts"}}, -- Foreign names generally get display-canonicalized. ["Türkiye"] = {alias_of = "Thổ Nhĩ Kỳ", display = true}, ["Turkmenistan"] = {container = "châu Á", divs = { -- The 5 regions are often also called provinces "regions", {type = "provinces", cat_as = "regions"}, "districts"}, }, ["Tuvalu"] = {container = "Polynesia", divs = {"atolls"}, british_spelling = true}, ["Uganda"] = {container = "châu Phi", divs = {"districts", "counties"}, british_spelling = true}, ["Ukraina"] = {container = "châu Âu", divs = { {type = "oblasts", cat_as = "oblasts and autonomous republics"}, {type = "autonomous republics", cat_as = "oblasts and autonomous republics"}, "raions", "hromadas", }, british_spelling = true}, ["United Arab Emirates"] = {the = true, container = "châu Á", divs = {"emirates"}}, -- Abbreviations get display-canonicalized. ["UAE"] = {alias_of = "United Arab Emirates", display = true, the = true}, ["U.A.E."] = {alias_of = "United Arab Emirates", display = true, the = true}, ["United Kingdom"] = {the = true, container = "châu Âu", addl_parents = {"British Isles"}, divs = {"constituent countries", "counties", "districts", "boroughs", "territories", "dependent territories", "traditional counties"}, keydesc = "the [[United Kingdom]] of Great Britain and Northern Ireland", british_spelling = true}, -- Abbreviations get display-canonicalized. ["UK"] = {alias_of = "United Kingdom", display = true, the = true}, ["U.K."] = {alias_of = "United Kingdom", display = true, the = true}, ["Hoa Kỳ"] = {the = true, container = "Bắc Mỹ", divs = {"counties", "county seats", "states", "territories", "dependent territories", {type = "ABBREVIATION_OF states", cat_as = "abbreviations of states"}, {type = "DEROGATORY_NAME_FOR states", cat_as = "derogatory names for states"}, {type = "NICKNAME_FOR states", cat_as = "nicknames for states"}, {type = "OFFICIAL_NICKNAME_FOR states", cat_as = "official nicknames for states"}, {type = "boroughs", prep = "in"}, -- exist in Pennsylvania and New Jersey "municipalities", -- these exist politically at least in Colorado and Connecticut {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, -- Don't change the following to something more politically correct until/unless the US government makes a -- similar switch (and note that as of Apr 18 2025, the Wikipedia article is still at -- [[w:Indian reservations]]). "Indian reservations", }}, -- Abbreviations and long forms (when possible) get display-canonicalized. ["US"] = {alias_of = "Hoa Kỳ", display = true, the = true}, ["U.S."] = {alias_of = "Hoa Kỳ", display = true, the = true}, ["USA"] = {alias_of = "Hoa Kỳ", display = true, the = true}, ["U.S.A."] = {alias_of = "Hoa Kỳ", display = true, the = true}, ["United States of America"] = {alias_of = "Hoa Kỳ", display = true, the = true}, ["Uruguay"] = {container = "Nam Mỹ", divs = {"departments", "municipalities"}}, ["Uzbekistan"] = {container = "châu Á", divs = {"regions", "districts"}}, ["Vanuatu"] = {container = "Melanesia", divs = {"provinces"}, british_spelling = true}, ["Vatican City"] = {placetype = {"city-state", "quốc gia"}, container = "châu Âu", -- First placetype should be 'city-state' for to shown up in its description, -- Its parent should still be "countries in Europe". bare_category_parent_type = {type = "quốc gia", prep = "của"}, addl_parents = {"Rome"}, is_city = true, british_spelling = true}, ["Vatican"] = {alias_of = "Vatican City"}, -- differs in "the" ["Venezuela"] = {container = "Nam Mỹ", divs = {"states", "municipalities"}}, ["Việt Nam"] = {container = "châu Á", divs = {"provinces", "districts", "municipalities"}}, ["Western Sahara"] = {placetype = {"territory", "quốc gia"}, container = "châu Phi", bare_category_parent_type = {type = "quốc gia", prep = "của"}, }, -- Not display-canonicalizable both due to differences in 'the' and the sovereignty dispute over Western Sahara ["Sahrawi Arab Democratic Republic"] = {alias_of = "Western Sahara"}, ["SADR"] = {alias_of = "Sahrawi Arab Democratic Republic", display = true, the = true}, ["Yemen"] = {container = "châu Á", divs = {"governorates", "districts"}}, ["Zambia"] = {container = "châu Phi", divs = {"provinces", "districts"}, british_spelling = true}, ["Zimbabwe"] = {container = "châu Phi", divs = {"provinces", "districts"}, british_spelling = true}, } local function canonicalize_continent_container(key) if type(key) ~= "string" then return key end if export.continents[key] then return {key = key, placetype = export.continents[key].placetype} end internal_error("Unrecognized key %s in `canonicalize_continent_like`", key) end export.countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"+++", "quốc gia"}, default_placetype = "quốc gia", default_no_container_cat = true, default_no_container_parent = true, -- No need to augment country holonyms with continents; not needed for disambiguation. default_no_auto_augment_container = true, data = export.countries, } -- Country-like entities: typically overseas territories or de-facto independent countries, which in both cases -- are not internationally recognized as sovereign nations but which we treat similarly to countries. export.country_like_entities = { -- British Overseas Territory ["Akrotiri and Dhekelia"] = { placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Cyprus", "châu Âu", "châu Á"}, british_spelling = true, }, -- Åland: Listed as a region of Finland. Wikipedia lists this under "dependent territories" in -- [[w:List of sovereign states and dependent territories by continent]]. -- unincorporated territory of the United States ["American Samoa"] = { placetype = {"unincorporated territory", "overseas territory", "territory"}, container = "Hoa Kỳ", addl_parents = {"Polynesia"}, }, -- British Overseas Territory ["Anguilla"] = { placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Caribe"}, british_spelling = true, }, -- de-facto independent state, internationally recognized as part of Georgia ["Abkhazia"] = { placetype = {"unrecognized country", "quốc gia"}, addl_parents = {"Georgia", "châu Âu", "châu Á"}, divs = {"districts"}, keydesc = "the de-facto independent state of [[Abkhazia]], internationally recognized as part of the country of [[Georgia]]", british_spelling = true, }, -- Australian external territory ["Ashmore and Cartier Islands"] = { the = true, placetype = {"external territory", "territory"}, container = "Úc", addl_parents = {"châu Á"}, }, -- constituent country of the Netherlands ["Aruba"] = { placetype = {"constituent country", "quốc gia"}, container = "Netherlands", addl_parents = {"Caribe"}, british_spelling = true, }, -- British Overseas Territory ["Bermuda"] = { placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Bắc Mỹ"}, british_spelling = true, }, -- special municipality of the Netherlands ["Bonaire"] = { placetype = {"special municipality", "municipality", "overseas territory", "territory"}, container = "Netherlands", addl_parents = {"Caribe"}, is_city = true, british_spelling = true, }, -- British Overseas Territory ["British Indian Ocean Territory"] = { the = true, placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"châu Á"}, british_spelling = true, }, -- British Overseas Territory ["British Virgin Islands"] = { the = true, placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Caribe"}, british_spelling = true, }, -- Norwegian dependent territory ["Bouvet Island"] = { placetype = {"dependent territory", "territory"}, container = "Na Uy", addl_parents = {"châu Phi"}, british_spelling = true, }, -- British Overseas Territory ["Cayman Islands"] = { the = true, placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Caribe"}, british_spelling = true, }, -- Australian external territory ["Christmas Island"] = { placetype = {"external territory", "territory"}, container = "Úc", addl_parents = {"châu Á"}, british_spelling = true, }, -- Sui generis French "state private property" per Wikipedia; classify as overseas territory like the -- French Southern and Antarctic Lands. ["Clipperton Island"] = { placetype = {"overseas territory", "territory"}, container = "Pháp", addl_parents = {"Bắc Mỹ"}, }, -- Australian external territory; also called the Keeling Islands or (officially) the Cocos (Keeling) Islands ["Cocos Islands"] = { the = true, placetype = {"external territory", "territory"}, container = "Úc", addl_parents = {"châu Á"}, wp = "Cocos (Keeling) Islands", british_spelling = true, }, ["Cocos (Keeling) Islands"] = {alias_of = "Cocos Islands", display = true, the = true}, ["Keeling Islands"] = {alias_of = "Cocos Islands", display = true, the = true}, -- self-governing but in free association with New Zealand ["Cook Islands"] = { the = true, placetype = {"quốc gia"}, container = "New Zealand", addl_parents = {"Polynesia"}, british_spelling = true, }, -- constituent country of the Netherlands ["Curaçao"] = { placetype = {"constituent country", "quốc gia"}, container = "Netherlands", addl_parents = {"Caribe"}, british_spelling = true, }, -- special territory of Chile ["Easter Island"] = { placetype = {"special territory", "territory"}, container = "Chile", addl_parents = {"Polynesia"}, }, -- British Overseas Territory ["Falkland Islands"] = { the = true, placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Nam Mỹ"}, british_spelling = true, }, -- autonomous territory of Denmark ["Faroe Islands"] = { the = true, placetype = {"autonomous territory", "territory"}, container = "Đan Mạch", addl_parents = {"châu Âu"}, british_spelling = true, }, -- overseas department and region of France ["French Guiana"] = { placetype = {"overseas department", "department", "administrative region", "region"}, container = "Pháp", divs = {"communes"}, addl_parents = {"Nam Mỹ"}, british_spelling = true, }, -- overseas collectivity of France ["French Polynesia"] = { placetype = {"overseas collectivity", "collectivity"}, container = "Pháp", addl_parents = {"Polynesia"}, british_spelling = true, }, -- French overseas territory ["French Southern and Antarctic Lands"] = { the = true, placetype = {"overseas territory", "territory"}, container = "Pháp", addl_parents = {"châu Phi"}, }, -- British Overseas Territory ["Gibraltar"] = { placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"châu Âu"}, is_city = true, british_spelling = true, }, -- autonomous territory of Denmark ["Greenland"] = { placetype = {"autonomous territory", "territory"}, container = "Đan Mạch", addl_parents = {"Bắc Mỹ"}, divs = {"municipalities"}, british_spelling = true, }, -- overseas department and region of France ["Guadeloupe"] = { placetype = {"overseas department", "department", "administrative region", "region"}, container = "Pháp", addl_parents = {"Caribe"}, divs = {"communes"}, british_spelling = true, }, -- unincorporated territory of the United States ["Guam"] = { placetype = {"unincorporated territory", "overseas territory", "territory"}, container = "Hoa Kỳ", addl_parents = {"Micronesia"}, }, -- self-governing British Crown dependency; technically called the Bailiwick of Guernsey ["Guernsey"] = { placetype = {"crown dependency", "dependency", "dependent territory", "bailiwick", "territory"}, container = "United Kingdom", addl_parents = {"British Isles", "châu Âu"}, british_spelling = true, wp = "Bailiwick of %l", }, ["Bailiwick of Guernsey"] = {alias_of = "Guernsey"}, -- Australian external territory ["Heard Island and McDonald Islands"] = { the = true, placetype = {"external territory", "territory"}, container = "Úc", addl_parents = {"châu Phi"}, }, -- special administrative region of China ["Hồng Kông"] = { placetype = {"special administrative region", "thành phố"}, container = "Trung Quốc", is_city = true, british_spelling = true, }, -- self-governing British Crown dependency ["Isle of Man"] = { the = true, placetype = {"crown dependency", "dependency", "dependent territory", "territory"}, container = "United Kingdom", addl_parents = {"British Isles", "châu Âu"}, british_spelling = true, }, -- Norwegian unincorporated area ["Jan Mayen"] = { placetype = {"unincorporated area", "dependent territory", "territory", "island"}, container = "Na Uy", addl_parents = {"châu Âu"}, british_spelling = true, }, -- self-governing British Crown dependency; technically called the Bailiwick of Jersey ["Jersey"] = { placetype = {"crown dependency", "dependency", "dependent territory", "bailiwick", "territory"}, container = "United Kingdom", addl_parents = {"British Isles", "châu Âu"}, british_spelling = true, }, ["Bailiwick of Jersey"] = {alias_of = "Jersey"}, -- special administrative region of China ["Ma Cao"] = { placetype = {"special administrative region", "thành phố"}, container = "Trung Quốc", is_city = true, british_spelling = true, }, -- overseas department and region of France ["Martinique"] = { placetype = {"overseas department", "department", "administrative region", "region"}, container = "Pháp", divs = {"communes"}, addl_parents = {"Caribe"}, british_spelling = true, }, -- overseas department and region of France ["Mayotte"] = { placetype = {"overseas department", "department", "administrative region", "region"}, container = "Pháp", divs = {"communes"}, addl_parents = {"châu Phi"}, british_spelling = true, }, -- British Overseas Territory ["Montserrat"] = { placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Caribe"}, british_spelling = true, }, -- special collectivity of France ["New Caledonia"] = { placetype = {"special collectivity", "collectivity"}, container = "Pháp", addl_parents = {"Melanesia"}, british_spelling = true, }, -- dependent territory of New Zealand ["New Zealand Subantarctic Islands"] = { the = true, placetype = {"dependent territory", "territory"}, container = "New Zealand", addl_parents = {"Antarctica"}, british_spelling = true, }, -- self-governing but in free association with New Zealand ["Niue"] = { placetype = {"quốc gia"}, container = "New Zealand", addl_parents = {"Polynesia"}, british_spelling = true, }, -- Australian external territory ["Norfolk Island"] = { placetype = {"external territory", "territory"}, container = "Úc", addl_parents = {"Polynesia"}, british_spelling = true, }, -- de-facto independent state, internationally recognized as part of Cyprus ["Northern Cyprus"] = { placetype = {"unrecognized country", "quốc gia"}, addl_parents = {"Cyprus", "Thổ Nhĩ Kỳ", "châu Âu", "châu Á"}, divs = {"districts"}, keydesc = "the de-facto independent state of [[Northern Cyprus]], internationally recognized as part of the country of [[Cyprus]]", british_spelling = true, }, -- commonwealth, unincorporated territory of the United States ["Northern Mariana Islands"] = { the = true, placetype = {"commonwealth", "unincorporated territory", "overseas territory", "territory"}, container = "Hoa Kỳ", addl_parents = {"Micronesia"}, }, -- British Overseas Territory ["Pitcairn Islands"] = { the = true, placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Polynesia"}, british_spelling = true, }, -- commonwealth of the United States ["Puerto Rico"] = { placetype = {"commonwealth", "overseas territory", "territory"}, container = "Hoa Kỳ", addl_parents = {"Caribe"}, divs = {"municipalities"}, }, -- overseas department and region of France ["Réunion"] = { placetype = {"overseas department", "department", "administrative region", "region"}, container = "Pháp", divs = {"communes"}, addl_parents = {"châu Phi"}, british_spelling = true, }, -- special municipality of the Netherlands ["Saba"] = { placetype = {"special municipality", "municipality", "overseas territory", "territory"}, container = "Netherlands", addl_parents = {"Caribe"}, is_city = true, british_spelling = true, }, -- overseas collectivity of France ["Saint Barthélemy"] = { placetype = {"overseas collectivity", "collectivity"}, container = "Pháp", addl_parents = {"Caribe"}, british_spelling = true, }, -- British Overseas Territory ["Saint Helena, Ascension and Tristan da Cunha"] = { placetype = {"overseas territory", "territory"}, container = "United Kingdom", divs = {{type = "constituent parts", container_parent_type = false}}, addl_parents = {"Atlantic Ocean", "châu Phi"}, british_spelling = true, }, -- constituent parts of the combined oveseas territory ["Ascension Island"] = { placetype = {"constituent part", "territory", "island"}, container = {key = "Saint Helena, Ascension and Tristan da Cunha", placetype = "overseas territory"}, addl_parents = {"Atlantic Ocean"}, overriding_bare_label_parents = {}, no_container_cat = false, no_container_parent = false, no_auto_augment_container = false, }, ["Saint Helena"] = { placetype = {"constituent part", "territory", "island"}, container = {key = "Saint Helena, Ascension and Tristan da Cunha", placetype = "overseas territory"}, addl_parents = {"Atlantic Ocean"}, overriding_bare_label_parents = {}, no_container_cat = false, no_container_parent = false, no_auto_augment_container = false, }, ["Tristan da Cunha"] = { placetype = {"constituent part", "territory", "archipelago"}, container = {key = "Saint Helena, Ascension and Tristan da Cunha", placetype = "overseas territory"}, addl_parents = {"Atlantic Ocean"}, overriding_bare_label_parents = {}, no_container_cat = false, no_container_parent = false, no_auto_augment_container = false, }, -- overseas collectivity of France ["Saint Martin"] = { placetype = {"overseas collectivity", "collectivity"}, container = "Pháp", addl_parents = {"Caribe"}, british_spelling = true, }, -- overseas collectivity of France ["Saint Pierre and Miquelon"] = { placetype = {"overseas collectivity", "collectivity"}, container = "Pháp", divs = {"communes"}, addl_parents = {"Bắc Mỹ"}, british_spelling = true, }, -- special municipality of the Netherlands ["Sint Eustatius"] = { placetype = {"special municipality", "municipality", "overseas territory", "territory"}, container = "Netherlands", addl_parents = {"Caribe"}, is_city = true, british_spelling = true, }, -- constituent country of the Netherlands ["Sint Maarten"] = { placetype = {"constituent country", "quốc gia"}, container = "Netherlands", addl_parents = {"Caribe"}, british_spelling = true, }, -- de-facto independent state, internationally recognized as part of Somalia ["Somaliland"] = { placetype = {"unrecognized country", "quốc gia"}, addl_parents = {"Somalia", "châu Phi"}, keydesc = "the de-facto independent state of [[Somaliland]], internationally recognized as part of the country of [[Somalia]]", british_spelling = true, }, -- British Overseas Territory -- FIXME: We should form the group "South Georgia and the South Sandwich Islands" like we did for -- "Saint Helena, Ascension and Tristan da Cunha". ["South Georgia"] = { placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Atlantic Ocean"}, british_spelling = true, }, -- de-facto independent state, internationally recognized as part of Georgia ["South Ossetia"] = { placetype = {"unrecognized country", "quốc gia"}, addl_parents = {"Georgia", "châu Âu", "châu Á"}, keydesc = "the de-facto independent state of [[South Ossetia]], internationally recognized as part of the country of [[Georgia]]", british_spelling = true, }, -- British Overseas Territory ["South Sandwich Islands"] = { the = true, placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Atlantic Ocean"}, wp = true, wpcat = "South Georgia and the South Sandwich Islands", british_spelling = true, }, -- Norwegian unincorporated area ["Svalbard"] = { placetype = {"unincorporated area", "dependent territory", "territory", "archipelago"}, container = "Na Uy", addl_parents = {"châu Âu"}, british_spelling = true, }, -- dependent territory of New Zealand ["Tokelau"] = { placetype = {"dependent territory", "territory"}, container = "New Zealand", addl_parents = {"Polynesia"}, british_spelling = true, }, -- de-facto independent state, internationally recognized as part of Moldova ["Transnistria"] = { placetype = {"unrecognized country", "quốc gia"}, addl_parents = {"Moldova", "châu Âu"}, keydesc = "the de-facto independent state of [[Transnistria]], internationally recognized as part of [[Moldova]]", british_spelling = true, }, -- British Overseas Territory ["Turks and Caicos Islands"] = { the = true, placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Caribe"}, british_spelling = true, }, -- unincorporated territory of the United States ["United States Minor Outlying Islands"] = { the = true, placetype = {"unincorporated territory", "overseas territory", "territory"}, container = "Hoa Kỳ", addl_parents = {"Islands", "Micronesia", "Polynesia", "Caribe"}, }, -- FIXME: We should add entries for the other minor outlying islands. -- Baker Island (Oceania) -- Howland Island (Oceania) -- Jarvis Island (Oceania) -- Johnston Atoll (Oceania) -- Kingman Reef (Oceania) -- Midway Atoll (Oceania) -- Navassa Island (Caribbean) -- Palmyra Atoll (Oceania) -- Wake Island (Oceania) ["Wake Island"] = { placetype = {"unincorporated territory", "overseas territory", "territory"}, container = "Hoa Kỳ", addl_parents = {"Micronesia"}, }, -- unincorporated territory of the United States ["United States Virgin Islands"] = { the = true, placetype = {"unincorporated territory", "overseas territory", "territory"}, container = "Hoa Kỳ", addl_parents = {"Caribe"}, }, ["U.S. Virgin Islands"] = {alias_of = "United States Virgin Islands", display = true, the = true}, ["US Virgin Islands"] = {alias_of = "United States Virgin Islands", display = true, the = true}, -- overseas collectivity of France ["Wallis and Futuna"] = { placetype = {"overseas collectivity", "collectivity"}, container = "Pháp", addl_parents = {"Polynesia"}, british_spelling = true, }, } export.country_like_entities_group = { -- don't do any transformations between key and placename; in particular, don't chop off anything from -- "Saint Helena, Ascension and Tristan da Cunha". key_to_placename = false, placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "quốc gia"), default_overriding_bare_label_parents = {"country-like entities"}, default_no_container_cat = true, default_no_container_parent = true, -- These entities often aren't really part of their container; a village in Wallis and Futuna (an overseas -- collectivity of France in Polynesia), for example, shouldn't be treated as a village in France, nor as a village -- in Europe. default_no_auto_augment_container = true, data = export.country_like_entities, } -- Former countries and such; we don't create "Cities in ..." categories because they don't exist anymore export.former_countries = { -- de-facto independent state of Armenian ethnicity, internationally recognized as part of Azerbaijan -- (also known as Nagorno-Karabakh) -- NOTE: Formerly listed Armenia as a parent; this seems politically non-neutral so I've taken it out. ["Artsakh"] = { placetype = {"unrecognized country", "quốc gia"}, addl_parents = {"Azerbaijan", "châu Âu", "châu Á"}, keydesc = "the former de-facto independent state of [[Artsakh]], internationally recognized as part of [[Azerbaijan]]", british_spelling = true, }, ["Nagorno-Karabakh"] = {alias_of = "Artsakh"}, ["Czechoslovakia"] = {container = "châu Âu", british_spelling = true}, ["East Germany"] = {container = "châu Âu", addl_parents = {"Đức"}, british_spelling = true}, ["North Vietnam"] = {container = "châu Á", addl_parents = {"Vietnam"}}, ["Persia"] = {placetype = {"empire", "quốc gia"}, container = "châu Á", divs = {"provinces"}}, ["Byzantine Empire"] = { the = true, placetype = {"empire", "quốc gia"}, container = {"châu Âu", "châu Phi", "châu Á"}, addl_parents = {"Ancient Europe", "Ancient Near East"}, divs = { "provinces", "themes", }}, ["Roman Empire"] = { the = true, placetype = {"empire", "quốc gia"}, container = {"châu Âu", "châu Phi", "châu Á"}, addl_parents = {"Rome"}, divs = { "provinces", {type = "FORMER provinces", cat_as = "provinces"}, }}, ["South Vietnam"] = {container = "châu Á", addl_parents = {"Vietnam"}}, ["Soviet Union"] = { the = true, container = {"châu Âu", "châu Á"}, divs = {"republics", "autonomous republics"}, british_spelling = true}, ["West Germany"] = {container = "châu Âu", addl_parents = {"Đức"}, british_spelling = true}, ["Yugoslavia"] = {container = "châu Âu", divs = {"districts"}, keydesc = "the former [[Kingdom of Yugoslavia]] (1918–1943) or the former [[Socialist Federal Republic of Yugoslavia]] (1943–1992)", british_spelling = true}, } export.former_countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"former countries and country-like entities"}, default_is_former_place = true, default_placetype = "quốc gia", default_no_container_cat = true, default_no_container_parent = true, -- No need to augment country holonyms with continents; not needed for disambiguation. default_no_auto_augment_container = true, data = export.former_countries, } ----------------------------------------------------------------------------------- -- Subpolity tables -- ----------------------------------------------------------------------------------- export.australia_states_and_territories = { ["Australian Capital Territory, Australia"] = {the = true, placetype = "territory"}, ["Jervis Bay Territory, Australia"] = {the = true, placetype = "territory"}, ["New South Wales, Australia"] = {}, ["Northern Territory, Australia"] = {the = true, placetype = "territory"}, ["Queensland, Australia"] = {}, ["South Australia, Australia"] = {}, ["Tasmania, Australia"] = {}, ["Victoria, Australia"] = {}, ["Western Australia, Australia"] = {}, } -- states and territories of Australia export.australia_group = { default_container = "Úc", default_placetype = "state", default_divs = "local government areas", data = export.australia_states_and_territories, } export.austria_states = { ["Vienna, Austria"] = {}, ["Lower Austria, Austria"] = {}, ["Upper Austria, Austria"] = {}, ["Styria, Austria"] = {}, ["Tyrol, Austria"] = {wp = "Tyrol (state)"}, ["Carinthia, Austria"] = {}, ["Salzburg, Austria"] = {wp = "Salzburg (state)"}, ["Vorarlberg, Austria"] = {}, ["Burgenland, Austria"] = {}, } -- states of Austria export.austria_group = { default_container = "Áo", default_placetype = "state", default_divs = "municipalities", data = export.austria_states, } export.bangladesh_divisions = { ["Barisal Division, Bangladesh"] = {}, ["Chittagong Division, Bangladesh"] = {}, ["Dhaka Division, Bangladesh"] = {}, ["Khulna Division, Bangladesh"] = {}, ["Mymensingh Division, Bangladesh"] = {}, ["Rajshahi Division, Bangladesh"] = {}, ["Rangpur Division, Bangladesh"] = {}, ["Sylhet Division, Bangladesh"] = {}, } -- divisions of Bangladesh export.bangladesh_group = { key_to_placename = make_key_to_placename(", Bangladesh$", " Division$"), placename_to_key = make_placename_to_key(", Bangladesh", " Division"), default_container = "Bangladesh", default_placetype = "division", default_divs = "districts", data = export.bangladesh_divisions, } export.brazil_states = { ["Acre, Brazil"] = {wp = "%l (state)"}, ["Alagoas, Brazil"] = {}, ["Amapá, Brazil"] = {}, ["Amazonas, Brazil"] = {wp = "%l (Brazilian state)"}, ["Bahia, Brazil"] = {}, ["Ceará, Brazil"] = {}, ["Distrito Federal, Brazil"] = {wp = "Federal District (Brazil)"}, ["Espírito Santo, Brazil"] = {}, ["Goiás, Brazil"] = {}, ["Maranhão, Brazil"] = {}, ["Mato Grosso, Brazil"] = {}, ["Mato Grosso do Sul, Brazil"] = {}, ["Minas Gerais, Brazil"] = {}, ["Pará, Brazil"] = {}, ["Paraíba, Brazil"] = {}, ["Paraná, Brazil"] = {wp = "%l (state)"}, ["Pernambuco, Brazil"] = {}, ["Piauí, Brazil"] = {}, ["Rio de Janeiro, Brazil"] = {wp = "%l (state)"}, ["Rio Grande do Norte, Brazil"] = {}, ["Rio Grande do Sul, Brazil"] = {}, ["Rondônia, Brazil"] = {}, ["Roraima, Brazil"] = {}, ["Santa Catarina, Brazil"] = {wp = "%l (state)"}, ["São Paulo, Brazil"] = {wp = "%l (state)"}, ["Sergipe, Brazil"] = {}, ["Tocantins, Brazil"] = {}, } -- states of Brazil export.brazil_group = { default_container = "Brazil", default_placetype = "state", default_divs = "municipalities", data = export.brazil_states, } -- provinces (a.k.a. oblasts) of Bulgaria export.bulgaria_provinces = { ["Blagoevgrad Province, Bulgaria"] = {}, ["Burgas Province, Bulgaria"] = {}, ["Dobrich Province, Bulgaria"] = {}, ["Gabrovo Province, Bulgaria"] = {}, ["Haskovo Province, Bulgaria"] = {}, ["Kardzhali Province, Bulgaria"] = {}, ["Kyustendil Province, Bulgaria"] = {}, ["Lovech Province, Bulgaria"] = {}, ["Montana Province, Bulgaria"] = {}, ["Pazardzhik Province, Bulgaria"] = {}, ["Pernik Province, Bulgaria"] = {}, ["Pleven Province, Bulgaria"] = {}, ["Plovdiv Province, Bulgaria"] = {}, ["Razgrad Province, Bulgaria"] = {}, ["Ruse Province, Bulgaria"] = {}, ["Shumen Province, Bulgaria"] = {}, ["Silistra Province, Bulgaria"] = {}, ["Sliven Province, Bulgaria"] = {}, ["Smolyan Province, Bulgaria"] = {}, ["Sofia City Province, Bulgaria"] = {}, ["Sofia Province, Bulgaria"] = {}, ["Stara Zagora Province, Bulgaria"] = {}, ["Targovishte Province, Bulgaria"] = {}, ["Varna Province, Bulgaria"] = {}, ["Veliko Tarnovo Province, Bulgaria"] = {}, ["Vidin Province, Bulgaria"] = {}, ["Vratsa Province, Bulgaria"] = {}, ["Yambol Province, Bulgaria"] = {}, } export.bulgaria_group = { key_to_placename = make_key_to_placename(", Bulgaria$", " Province$"), placename_to_key = make_placename_to_key(", Bulgaria", " Province"), default_container = "Bulgaria", --== source: https://en.wikipedia.org/wiki/NUTS_statistical_regions_of_Bulgaria == divs = {"regions", "planning regions", "provinces", "municipalities", "settlements"}, default_placetype = "province", data = export.bulgaria_provinces, } export.canada_provinces_and_territories = { ["Alberta, Canada"] = {divs = { {type = "municipal districts", container_parent_type = "rural municipalities"}, }}, ["British Columbia, Canada"] = {divs = {type = "regional districts", container_parent_type = false}, "regional municipalities", }, ["Manitoba, Canada"] = {divs = {"rural municipalities"}}, ["New Brunswick, Canada"] = {divs = {"counties", "parishes", {type = "civil parishes", cat_as = "parishes"}}}, ["Newfoundland and Labrador, Canada"] = {}, ["Northwest Territories, Canada"] = {the = true, placetype = "territory"}, ["Nova Scotia, Canada"] = {divs = {"counties", "regional municipalities"}}, ["Nunavut, Canada"] = {placetype = "territory"}, ["Ontario, Canada"] = {divs = {"counties", "regional municipalities", {type = "townships", prep = "in"}}}, ["Prince Edward Island, Canada"] = {divs = {"counties", "parishes", "rural municipalities"}}, ["Saskatchewan, Canada"] = {divs = {"rural municipalities"}}, ["Quebec, Canada"] = {divs = { "counties", {type = "regional county municipalities", container_parent_type = "regional municipalities"}, -- administrative regions have an official (but non-governmental) function but there don't appear to be any -- equivalent regions elsewhere in Canada, so disable the [[Category:Regions of Canada]] grouping {type = "regions", container_parent_type = false}, {type = "townships", prep = "in"}, {type = "parish municipalities", cat_as = {{type = "parishes", container_parent_type = "counties"}, "municipalities"}}, {type = "township municipalities", cat_as = {{type = "townships", prep = "in"}, "municipalities"}}, {type = "village municipalities", cat_as = {{type = "villages", prep = "in"}, "municipalities"}}, }}, ["Yukon, Canada"] = {placetype = "territory"}, ["Yukon Territory, Canada"] = {alias_of = "Yukon, Canada"}, } -- provinces and territories of Canada export.canada_group = { default_container = "Canada", default_placetype = "province", data = export.canada_provinces_and_territories, } export.china_provinces_and_autonomous_regions = { -- direct-administered municipalities are not here but below under prefecture-level cities ["Anhui, China"] = {}, ["Fujian, China"] = {}, ["Fuchien, China"] = {alias_of = "Fujian, China", display = true}, ["Gansu, China"] = {}, ["Guangdong, China"] = {}, ["Guangxi, China"] = {placetype = "autonomous region"}, ["Guizhou, China"] = {}, ["Hainan, China"] = {}, ["Hebei, China"] = {}, ["Heilongjiang, China"] = {}, ["Henan, China"] = {}, ["Hubei, China"] = {}, ["Hunan, China"] = {}, ["Inner Mongolia, China"] = {placetype = "autonomous region"}, ["Jiangsu, China"] = {}, ["Jiangxi, China"] = {}, ["Jilin, China"] = {}, ["Liaoning, China"] = {}, ["Ningxia, China"] = {placetype = "autonomous region"}, ["Qinghai, China"] = {}, ["Shaanxi, China"] = {}, ["Shandong, China"] = {}, ["Shanxi, China"] = {}, ["Sichuan, China"] = {}, ["Tibet, China"] = {placetype = "autonomous region", wp = "Tibet Autonomous Region"}, ["Xinjiang, China"] = {placetype = "autonomous region"}, ["Yunnan, China"] = {}, ["Zhejiang, China"] = {}, } -- provinces and autonomous regions of China export.china_group = { default_container = "Trung Quốc", default_placetype = "province", default_divs = { "prefectures", "prefecture-level cities", "districts", "subdistricts", "townships", {type = "counties", cat_as = "counties and county-level cities"}, {type = "county-level cities", cat_as = "counties and county-level cities"}, }, data = export.china_provinces_and_autonomous_regions, } export.china_prefecture_level_cities = { -- In China, a "prefecture-level city" is not a city in any real sense. It is rather a prefecture, which is an -- administrative unit smaller than a province but bigger than a county, which is administratively controlled by -- the chief city of the prefecture (which bears the same name as the prefecture), in a unified government. Prior -- to the mid-1980's, in fact, prefecture-level cities *were* prefectures, and a few of them (especially in the -- western portion of China) have not yet been converted. Generally a given province is entirely tiled by -- prefecture-level cities, another indication that they should be treated as prefectures and not cities per se. -- Yet another indication is that prefecture-level cities can contain counties and county-level cities (which, much -- like prefecture-level cities, are effectively counties surrounding a chief city of the county, again which bears -- the same name as the county-level city). -- -- For this reason, we treat prefecture-level cities as non-city political divisions, and separately enumerate the -- most populous so we can separately categorize districts and counties under them instead of lumping them at the -- province level. -- -- Note also that China separately distinguishes "urban area" from "metro area". Sometimes the two figures are -- identical but sometimes the metro area is larger (and very occasionally smaller, which I assume is an error). I'm -- guessing that the "urban area" is the contiguous urban area over a certain density while the metro area includes -- all urban areas above a certain density; when the latter is greater, it's because of satellite cities in the -- metro area separated by suburban/exurban or rural land. -- At first I chose all prefecture/province-level cities with a total prefecture/province-level population of at -- least 6,000,000 per the 2020 census with data taken from https://www.citypopulation.de/en/china/admin/ (a total -- of 67, including the four direct-administered municipalities), and also chose all prefecture/province-level -- cities whose "urban population" was at least 2,000,000 per the 2020 census with data taken from Wikipedia -- [[w:List of cities in China by population#Cities and towns by population]] (a total of 61 cities; if we cut off -- at 1.5 million we'd have 84 cities, and if we cut off at 1 million we'd have 105 cities). Merging them produces -- 87 cities. Note that this leaves off a few well-known cities (Guilin, Qiqihar, Kashgar, Lhasa, ...) but includes -- a lot of obscure cities. -- -- At a later date I added all cities from citypopulation.de whose "urban" population per the 2020 China census was -- >= 1 million, and then finally added all urban agglomerations from citypopulation.de whose 2025-01-01 estimate -- was >= 1 million. These are sorted below by the urban agglomeration value (which is generally of the "adm-urb" = -- "administrative area (urban population)" type) and sometimes groups nearby cities into a single agglomeration -- (most notably in the case of the Pearl River Delta, grouped under Guangzhou with an agglomeration population of -- 72,700,000 but including a large number of nearby large cities in the agglomeration (although for some reason not -- Hong Kong, maybe due to the administrative issues involved). In addition, citypopulation.de includes divisions -- under a prefecture-level city if they are city-like and have an agglomeration population of at least 1 million; -- this includes several county-level cities, one county and one district (Wanzhou, a "district" of Chongqing -- despite being 142 miles away). None of the county-level cities or counties have districts under them, only -- subdistricts, towns and townships. ["Guangzhou"] = {container = "Guangdong"}, -- 18.7 prefectural, 18.8 urban; sub-provincial city; 16.097 urban (72.700 adm-urb including Dongguan, Foshan, Huizhou, Jiangmen, Shenzhen, Zhongshan) per citypopulation.de ["Dongguan"] = {container = "Guangdong"}, -- 10.5 prefectural, 10.5 urban; 9.645 per citypopulation.de; included by citypopulation.de in Guangzhou agglomeration ["Foshan"] = {container = "Guangdong"}, -- 9.5 prefectural, 9.5 urban; 9.043 per citypopulation.de; included by citypopulation.de in Guangzhou agglomeration ["Huizhou"] = {container = "Guangdong"}, -- 6.0 prefectural, 2.5 urban; 2.900 per citypopulation.de; included by citypopulation.de in Guangzhou agglomeration ["Jiangmen"] = {container = "Guangdong"}, -- 4.798 prefectural, 2.7 urban; 1.795 per citypopulation.de; included by citypopulation.de in Guangzhou agglomeration ["Shenzhen"] = {container = "Guangdong"}, -- 17.5 prefectural, 14.7 urban; sub-provincial city; 17.445 per citypopulation.de; included by citypopulation.de in Guangzhou agglomeration ["Zhongshan"] = {container = "Guangdong"}, -- 4.418 prefectural, 4.4 urban; 3.842 per citypopulation.de; included by citypopulation.de in Guangzhou agglomeration ["Shanghai"] = {placetype = {"direct-administered municipality", "municipality", "thành phố"}}, -- 24.9 prefectural, 29.9 urban; 21.910 urban (41.600 adm-urb including Changshu, Changzhou, Suzhou, Wuxi) per citypopulation.de ["Changshu"] = {container = "Jiangsu"}, -- 1.231 urban per citypopulation.de; included by citypopulation.de in Shanghai agglomeration -- NOTE: Not to be confused with Cangzhou in Hebei ["Changzhou"] = {container = "Jiangsu"}, -- 5.278 prefectural, 3.6 urban; 3.187 urban per citypopulation.de; included by citypopulation.de in Shanghai agglomeration -- NOTE: There is also a prefecture-level city Suzhou in Anhui with 5.3 million prefectural inhabitants ["Suzhou"] = {container = "Jiangsu"}, -- 12.8 prefectural, 4.3 urban; 5.893 urban per citypopulation.de; included by citypopulation.de in Shanghai agglomeration ["Wuxi"] = {container = "Jiangsu"}, -- 7.5 prefectural, 3.3 urban; 3.957 per citypopulation.de; included by citypopulation.de in Shanghai agglomeration ["Beijing"] = {placetype = {"direct-administered municipality", "municipality", "thành phố"}}, -- 21.9 prefectural, 21.9 urban; 18.961 urban (21.500 adm-urb) per citypopulation.de ["Chengdu"] = {container = "Sichuan"}, -- 20.9 prefectural, 16.9 urban; sub-provincial city; 13.568 urban (18.100 adm-urb) per citypopulation.de ["Xiamen"] = {container = "Fujian"}, -- 5.163 prefectural, 5.2 urban; sub-provincial city; 4.617 urban (15.400 adm-urb including Jinjiang, Quanzhou, Putian) per citypopulation.de ["Jinjiang"] = {container = "Fujian"}, -- 1.416 urban per citypopulation.de; included by citypopulation.de in Xiamen agglomeration ["Quanzhou"] = {container = "Fujian"}, -- 8.8 prefectural, 1.7 urban (6.7 metro); 1.469 urban per citypopulation.de; included by citypopulation.de in Xiamen agglomeration ["Putian"] = {container = "Fujian"}, -- 3.210 prefectural, 2.0 urban; 1.539 urban per citypopulation.de; included by citypopulation.de in Xiamen agglomeration ["Hangzhou"] = {container = "Zhejiang"}, -- 11.9 prefectural, 10.7 urban; sub-provincial city; 9.236 urban (14.600 adm-urb including Shaoxing) per citypopulation.de ["Shaoxing"] = {container = "Zhejiang"}, -- 5.270 prefectural, 2.5 urban; 2.333 urban per citypopulation.de; included by citypopulation.de in Hangzhou agglomeration ["Xi'an"] = {container = "Shaanxi"}, -- 12.1 prefectural, 11.9 urban; sub-provincial city; 9.393 urban (13.400 adm-urb including Xianyang) per citypopulation.de ["Xianyang"] = {container = "Shaanxi"}, -- 1.193 urban per citypopulation.de; included by citypopulation.de in Xi'an agglomeration ["Chongqing"] = {placetype = {"direct-administered municipality", "municipality", "thành phố"}}, -- 32.1 prefectural, 16.9 urban; 9.581 urban (12.900 adm-urb) per citypopulation.de ["Wuhan"] = {container = "Hubei"}, -- 12.4 prefectural, 12.3 urban; sub-provincial city; 10.495 urban (12.600 adm-urb) per citypopulation.de ["Tianjin"] = {placetype = {"direct-administered municipality", "municipality", "thành phố"}}, -- 13.9 prefectural, 13.9 urban; 11.052 urban (11.700 adm-urb) per citypopulation.de ["Changsha"] = {container = "Hunan"}, -- 10.0 prefectural, 6.0 urban; 5.630 urban (11.500 adm-urb including Xiangtan, Zhuzhou) per citypopulation.de -- Changsha County -- 1.024 urban per citypopulation.de ["Zhuzhou"] = {container = "Hunan"}, -- 1.510 urban per citypopulation.de; included by citypopulation.de in Changsha agglomeration ["Zhengzhou"] = {container = "Henan"}, -- 12.6 prefectural, 6.7 urban; 6.461 urban (10.300 adm-urb) per citypopulation.de ["Nanjing"] = {container = "Jiangsu"}, -- 9.3 prefectural, 9.3 urban; sub-provincial city; 7.520 urban (9.500 adm-urb including Ma'anshan) per citypopulation.de ["Shenyang"] = {container = "Liaoning"}, -- 9.1 prefectural, 7.9 urban; sub-provincial city; 7.026 urban (8.800 adm-urb including Fushun) per citypopulation.de ["Fushun"] = {container = "Liaoning"}, -- 1.229 urban per citypopulation.de; included by citypopulation.de in Shenyang agglomeration ["Hefei"] = {container = "Anhui"}, -- 9.4 prefectural, 4.2 urban; 5.056 urban (8.200 adm-urb) per citypopulation.de ["Shantou"] = {container = "Guangdong"}, -- 5.502 prefectural, 4.3 urban; 3.839 urban (8.050 adm-urb including Chaozhou, Jieyang, Puning) per citypopulation.de ["Chaozhou"] = {container = "Guangdong"}, -- 1.254 urban per citypopulation.de; included by citypopulation.de in Shantou agglomeration ["Jieyang"] = {container = "Guangdong"}, -- 1.243 urban per citypopulation.de; included by citypopulation.de in Shantou agglomeration ["Qingdao"] = {container = "Shandong"}, -- 10.1 prefectural, 7.1 urban; sub-provincial city; 6.165 urban (7.700 adm-urb) per citypopulation.de ["Ningbo"] = {container = "Zhejiang"}, -- 9.4 prefectural, 5.1 urban; sub-provincial city; 3.731 urban (7.600 adm-urb including Cixi, Yuyao) per citypopulation.de ["Cixi"] = {container = "Zhejiang"}, -- 1.458 urban per citypopulation.de; included by citypopulation.de in Ningbo agglomeration ["Yuyao"] = {container = "Zhejiang"}, -- 1.014 urban per citypopulation.de; included by citypopulation.de in Ningbo agglomeration -- Hong Kong 7.500 agglomeration per citypopulation.de 2025-01-01 estimate including Kowloon, Victoria ["Wenzhou"] = {container = "Zhejiang"}, -- 9.6 prefectural, 3.6 urban; 2.582 urban (7.000 adm-urb including Rui'an, Cangnan, Pingyang) per citypopulation.de -- Rui'an is a "county-level city" of the "prefecture-level city" of Wenzhou but in fact is 19 miles away from Wenzhou city proper (urban core to urban core). ["Rui'an"] = {placetype = "county-level city", container = {key = "Wenzhou", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}}, -- 1.013 urban per citypopulation.de; included by citypopulation.de in Wenzhou agglomeration ["Kunming"] = {container = "Yunnan"}, -- 8.5 prefectural, 6.0 urban; 5.273 urban (6.800 adm-urb) per citypopulation.de -- includes Láiwú city ["Jinan"] = {container = "Shandong", wp = "%l, %c"}, -- 9.2 prefectural, 8.4 urban; sub-provincial city; 5.648 urban (6.750 adm-urb) per citypopulation.de -- includes Xīnjí city ["Shijiazhuang"] = {container = "Hebei"}, -- 11.2 prefectural, 4.1 urban; 5.090 urban (6.450 adm-urb) per citypopulation.de ["Taiyuan"] = {container = "Shanxi"}, -- 5.304 prefectural, 4.5 urban; 4.304 urban (6.150 adm-urb) per citypopulation.de ["Harbin"] = {container = "Heilongjiang"}, -- 10.0 prefectural, 7.0 urban; sub-provincial city; 5.243 urban (5.550 adm-urb) per citypopulation.de ["Nanning"] = {container = {key = "Guangxi, China", placetype = "autonomous region"}}, -- 8.7 prefectural, 3.8 urban; 4.583 urban (5.550 adm-urb) per citypopulation.de ["Dalian"] = {container = "Liaoning"}, -- 7.5 prefectural, 5.7 urban; sub-provincial city; 4.914 urban (5.400 adm-urb) per citypopulation.de ["Guiyang"] = {container = "Guizhou"}, -- 5.987 prefectural, 3.5 urban; 4.021 urban (5.300 adm-urb) per citypopulation.de ["Changchun"] = {container = "Jilin"}, -- 9.1 prefectural, 5.7 urban; sub-provincial city; 4.557 urban (5.200 adm-urb) per citypopulation.de ["Nanchang"] = {container = "Jiangxi"}, -- 6.3 prefectural, 3.6 (3.9?) urban, 5.3 metro; 3.519 urban (5.150 adm-urb) per citypopulation.de ["Ürümqi"] = {container = {key = "Xinjiang, China", placetype = "autonomous region"}}, -- 4.054 prefectural, 4.3 urban; 3.843 urban (5.000 adm-urb) per citypopulation.de ["Urumqi"] = {alias_of = "Ürümqi", display = true}, ["Fuzhou"] = {container = "Fujian"}, -- 8.3 prefectural, 4.1 urban; 3.723 urban (4.775 adm-urb) per citypopulation.de ["Linyi"] = {container = "Shandong"}, -- 11.0 prefectural, 2.3 urban; 2.744 urban (4.650 adm-urb) per citypopulation.de ["Zibo"] = {container = "Shandong"}, -- 4.704 prefectural, 2.6 urban; 2.750 urban (3.975 adm-urb) per citypopulation.de ["Luoyang"] = {container = "Henan"}, -- 7.1 prefectural, 2.4 urban; 2.231 urban (3.750 adm-urb) per citypopulation.de ["Lanzhou"] = {container = "Gansu"}, -- 4.359 prefectural, 3.1 urban; 3.013 urban (3.575 adm-urb) per citypopulation.de ["Nantong"] = {container = "Jiangsu"}, -- 7.7 prefectural, 2.3 urban; 2.988 urban (3.475 adm-urb) citypopulation.de ["Weifang"] = {container = "Shandong"}, -- 9.4 prefectural, 2.7 urban; 1.998 urban (3.325 adm-urb) per citypopulation.de ["Jiangyin"] = {container = "Jiangsu"}, -- 1.331 urban (3.200 adm-urb including Zhangjiagang) per citypopulation.de ["Zhangjiagang"] = {container = "Jiangsu"}, -- 1.056 urban per citypopulation.de; included in Jiangyin figures ["Xuzhou"] = {container = "Jiangsu"}, -- 9.1 prefectural, 2.6 urban; 2.846 urban (3.150 adm-urb) per citypopulation.de ["Handan"] = {container = "Hebei"}, -- 9.4 prefectural, 2.8 urban; 2.095 urban (2.925 adm-urb) per citypopulation.de ["Hohhot"] = {container = {key = "Inner Mongolia, China", placetype = "autonomous region"}}, -- 3.446 prefectural, 2.7 urban; 2.373 urban (2.850 adm-urb) per citypopulation.de ["Haikou"] = {container = "Hainan"}, -- 2.873 prefectural, 2.3 urban; 2.349 urban (2.800 adm-urb) per citypopulation.de ["Tangshan"] = {container = "Hebei"}, -- 7.7 prefectural, 3.4 urban; 2.550 urban (2.750 adm-urb) per citypopulation.de ["Xinxiang"] = {container = "Henan"}, -- 6.3 prefectural, 1.2 urban, 2.7 metro; 1.271 urban (2.700 adm-urb) per citypopulation.de ["Yiwu"] = {container = "Zhejiang"}, -- 1.481 urban (2.700 adm-urb) per citypopulation.de ["Zhuhai"] = {container = "Guangdong"}, -- 2.439 prefectural, 2.4 urban; 2.207 urban (2.675 adm-urb) per citypopulation.de ["Taizhou, Zhejiang"] = {container = "Zhejiang"}, -- 6.6 prefectural, 1.6 urban; 1.486 urban (2.625 adm-urb) per citypopulation.de ["Taizhou"] = {alias_of = "Taizhou, Zhejiang"}, ["Yantai"] = {container = "Shandong"}, -- 7.1 prefectural, 2.5 urban; 2.312 urban (2.550 adm-urb) per citypopulation.de ["Yinchuan"] = {container = {key = "Ningxia, China", placetype = "autonomous region"}}, -- 1.663 urban (2.525 adm-urb) per citypopulation.de ["Liuzhou"] = {container = {key = "Guangxi, China", placetype = "autonomous region"}}, -- 4.157 prefectural, 2.2 urban; 2.205 urban (2.500 adm-urb) per citypopulation.de ["Anshan"] = {container = "Liaoning"}, -- 1.480 urban (2.350 adm-urb including Liáoyáng) per citypopulation.de ["Yangzhou"] = {container = "Jiangsu"}, -- 2.067 urban (2.300 adm-urb) per citypopulation.de ["Jiaxing"] = {container = "Zhejiang"}, -- 1.188 urban (2.275 adm-urb) per citypopulation.de ["Xining"] = {container = "Qinghai"}, -- 1.677 urban (2.250 adm-urb) per citypopulation.de -- includes Dìngzhōu city and Xióngān Xīnqū ["Baoding"] = {container = "Hebei"}, -- 11.5 prefectural, 2.0 urban; 1.940 urban (2.225 adm-urb) per citypopulation.de ["Baotou"] = {container = {key = "Inner Mongolia, China", placetype = "autonomous region"}}, -- 2.709 prefectural, 2.2 urban; 2.104 urban (2.200 adm-urb) per citypopulation.de ["Ganzhou"] = {container = "Jiangxi"}, -- 9.0 prefectural, 1.6 urban; 1.778 urban (2.150 adm-urb) per citypopulation.de ["Pingdingshan"] = {container = "Henan"}, -- 1.046 urban (2.100 adm-urb) per citypopulation.de ["Zunyi"] = {container = "Guizhou"}, -- 6.6 prefectural, 2.4 urban/metro; 1.675 urban (2.025 adm-urb) per citypopulation.de ["Bengbu"] = {container = "Anhui"}, -- 1.078 urban (2.000 adm-urb) per citypopulation.de ["Datong"] = {container = "Shanxi"}, -- 3.105 prefectural, 2.0 urban; 1.810 urban (2.000 adm-urb) per citypopulation.de ["Anyang"] = {container = "Henan"}, -- 1.188 urban (1.960 adm-urb) per citypopulation.de ["Huai'an"] = {container = "Jiangsu"}, -- 4.556 prefectural, 2.6 urban; 1.805 urban (1.940 adm-urb) per citypopulation.de ["Zaozhuang"] = {container = "Shandong"}, -- 1.350 urban (1.900 adm-urb) per citypopulation.de ["Zhanjiang"] = {container = "Guangdong"}, -- 7.0 prefectural, 1.9 urban; 1.401 urban (1.890 adm-urb) per citypopulation.de ["Huainan"] = {container = "Anhui"}, -- 1.256 urban (1.880 adm-urb) per citypopulation.de ["Jining"] = {container = "Shandong"}, -- 8.4 prefectural, 1.5 urban; 1.700 urban (1.880 adm-urb) per citypopulation.de ["Daqing"] = {container = "Heilongjiang"}, -- 1.604 urban (1.860 adm-urb) per citypopulation.de ["Wuhu"] = {container = "Anhui"}, -- 1.598 urban (1.850 adm-urb) per citypopulation.de ["Guilin"] = {container = {key = "Guangxi, China", placetype = "autonomous region"}}, -- 1.361 urban (1.830 adm-urb) per citypopulation.de ["Mianyang"] = {container = "Sichuan"}, -- 1.549 urban (1.800 adm-urb) per citypopulation.de ["Xiangyang"] = {container = "Hubei"}, -- 1.686 urban (1.800 adm-urb) per citypopulation.de ["Huzhou"] = {container = "Zhejiang"}, -- 1.084 urban (1.750 adm-urb) per citypopulation.de ["Puyang"] = {container = "Henan"}, -- 0.824 urban (1.750 adm-urb) per citypopulation.de ["Shangqiu"] = {container = "Henan"}, -- 7.8 prefectural, 1.9 urban (2.8 metro); 1.031 urban (1.750 adm-urb) per citypopulation.de ["Qinhuangdao"] = {container = "Hebei"}, -- 1.520 urban (1.740 adm-urb) per citypopulation.de ["Xingtai"] = {container = "Hebei"}, -- 7.1 prefectural, 971,000 urban; 1.5 urban (1.700 adm-urb) per citypopulation.de ["Nanyang"] = {container = "Henan", wp = "%l, %c"}, -- 9.7 prefectural, 2.1 urban/metro; 1.481 urban (1.680 adm-urb) per citypopulation.de ["Jiaozuo"] = {container = "Henan"}, -- 0.875 urban (1.640 adm-urb) per citypopulation.de ["Jilin City"] = {container = "Jilin"}, -- 1.509 urban (1.610 adm-urb) per citypopulation.de ["Jilin"] = {alias_of = "Jilin City"}, ["Jinhua"] = {container = "Zhejiang"}, -- 7.1 prefectural, 1.5 urban; 1.041 urban (1.590 adm-urb) per citypopulation.de ["Shangrao"] = {container = "Jiangxi"}, -- 6.5 prefectural, 2.1 urban, 1.3 metro [sic]; 1.342 urban (1.580 adm-urb) per citypopulation.de ["Heze"] = {container = "Shandong"}, -- 8.8 prefectural, 1.3 urban; 1.294 urban (1.570 adm-urb) per citypopulation.de ["Yulin"] = {container = {key = "Guangxi, China", placetype = "autonomous region"}, wp = "%l, %c"}, -- 0.878 urban (1.570 adm-urb) per citypopulation.de ["Tai'an"] = {container = "Shandong"}, -- 1.417 urban (1.560 adm-urb) per citypopulation.de ["Weihai"] = {container = "Shandong"}, -- 1.340 urban (1.510 adm-urb) per citypopulation.de -- Taizhou, Jiangsu would be here (1.490 adm-urb) but moved to china_prefecture_level_cities_2 to avoid clash ["Yancheng"] = {container = "Jiangsu"}, -- 6.7 prefectural, 1.6 urban; 1.353 urban (1.460 adm-urb) per citypopulation.de ["Zhangjiakou"] = {container = "Hebei"}, -- 1.339 urban (1.450 adm-urb) per citypopulation.de ["Maoming"] = {container = "Guangdong"}, -- 6.2 prefectural, 2.5 urban; 1.308 urban (1.440 adm-urb) per citypopulation.de ["Nanchong"] = {container = "Sichuan"}, -- 1.254 urban (1.440 adm-urb) per citypopulation.de ["Fuyang"] = {container = "Anhui", wp = "%l, %c"}, -- 8.2 prefectural, 2.1 urban; 1.191 urban (1.410 adm-urb) per citypopulation.de ["Xuchang"] = {container = "Henan"}, -- 0.850 urban (1.390 adm-urb) per citypopulation.de ["Yichang"] = {container = "Hubei"}, -- 1.284 urban (1.390 adm-urb) per citypopulation.de ["Dazhou"] = {container = "Sichuan"}, -- 1.136 urban (1.380 adm-urb) per citypopulation.de ["Kaifeng"] = {container = "Henan"}, -- 1.194 urban (1.340 adm-urb) per citypopulation.de ["Luzhou"] = {container = "Sichuan"}, -- 1.128 urban (1.340 adm-urb) per citypopulation.de ["Qingyuan"] = {container = "Guangdong"}, -- 1.198 urban (1.340 adm-urb) per citypopulation.de ["Huaibei"] = {container = "Anhui"}, -- 0.831 urban (1.330 adm-urb) per citypopulation.de ["Yibin"] = {container = "Sichuan"}, -- 1.101 urban (1.310 adm-urb) per citypopulation.de ["Lu'an"] = {container = "Anhui"}, -- 1.070 urban (1.300 adm-urb) per citypopulation.de ["Dezhou"] = {container = "Shandong"}, -- 0.843 urban (1.290 adm-urb) per citypopulation.de ["Rizhao"] = {container = "Shandong"}, -- 1.147 urban (1.270 adm-urb) per citypopulation.de ["Changzhi"] = {container = "Shanxi"}, -- 1.047 urban (1.250 adm-urb) per citypopulation.de ["Hengyang"] = {container = "Hunan"}, -- 6.6 prefectural, 1.5 urban; 1.185 urban (1.250 adm-urb) per citypopulation.de ["Jinzhou"] = {container = "Liaoning"}, -- 1.021 urban (1.240 adm-urb) per citypopulation.de ["Liaocheng"] = {container = "Shandong"}, -- 1.020 urban (1.240 adm-urb) per citypopulation.de ["Changde"] = {container = "Hunan"}, -- 1.101 urban (1.230 adm-urb) per citypopulation.de ["Suqian"] = {container = "Jiangsu"}, -- 1.082 urban (1.230 adm-urb) per citypopulation.de ["Xinyang"] = {container = "Henan"}, -- 6.2 prefectural, 1.4 urban/metro; 1.015 urban (1.230 adm-urb) per citypopulation.de ["Baoji"] = {container = "Shaanxi"}, -- 1.108 urban (1.220 adm-urb) per citypopulation.de ["Yueyang"] = {container = "Hunan"}, -- 1.125 urban (1.220 adm-urb) per citypopulation.de ["Zhenjiang"] = {container = "Jiangsu"}, -- 1.124 urban (1.210 adm-urb) per citypopulation.de -- Wanzhou is a "district" of the "direct-administered municipality" of Chongqing but in fact is 142 miles away from Chongqing city proper. ["Wanzhou"] = {placetype = "district", container = {key = "Chongqing", placetype = "direct-administered municipality"}, divs = {"subdistricts", "townships"}, wp = "%l, %c"}, -- 1.078 urban (1.190 adm-urb) per citypopulation.de ["Ulanhad"] = {container = {key = "Inner Mongolia, China", placetype = "autonomous region"}}, -- 1.093 urban (1.180 adm-urb) per citypopulation.de ["Chifeng"] = {alias_of = "Ulanhad"}, ["Ulankhad"] = {alias_of = "Ulanhad", display = true}, ["Ezhou"] = {container = "Hubei"}, -- < 0.750 urban (1.180 adm-urb) per citypopulation.de ["Zhaoqing"] = {container = "Guangdong"}, -- 1.036 urban (1.160 adm-urb) per citypopulation.de ["Lianyungang"] = {container = "Jiangsu"}, -- 4.599 prefectural, 2.0 urban; 1.071 urban (1.150 adm-urb) per citypopulation.de ["Qujing"] = {container = "Yunnan"}, -- 0.976 urban (1.150 adm-urb) per citypopulation.de -- Shuyang is a "county" of the "prefecture-level city" of Suqian but in fact is 38 miles away from Suqian city proper (urban core to urban core). -- The county itself is 37 miles by 34 miles. ["Shuyang"] = {placetype = "county", container = {key = "Suqian", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "%l County"}, -- 0.986 urban (1.120 adm-urb) per citypopulation.de -- Yongkang is a "county-level city" of the "prefecture-level city" of Jinhua but in fact is 32 miles away from Jinhua city proper (urban core to urban core). ["Yongkang"] = {placetype = "county-level city", container = {key = "Jinhua", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "%l, Zhejiang"}, -- < 0.750 urban (1.110 adm-urb) per citypopulation.de ["Zhoukou"] = {container = "Henan"}, -- 9.0 prefectural, 721,000 urban (1.6 metro); < 0.750 urban (1.100 adm-urb) per citypopulation.de ["Beihai"] = {container = {key = "Guangxi, China", placetype = "autonomous region"}}, -- < 1 urban (1.090 adm-urb) per citypopulation.de ["Jiujiang"] = {container = "Jiangxi"}, -- < 0.750 urban (1.080 adm-urb) per citypopulation.de ["Shaoyang"] = {container = "Hunan"}, -- 6.6 prefectural, 802,000 urban, 1.4 metro; < 1 urban (1.080 adm-urb) per citypopulation.de ["Chuzhou"] = {container = "Anhui"}, -- < 0.750 urban (1.070 adm-urb) per citypopulation.de ["Hengshui"] = {container = "Hebei"}, -- 0.885 urban (1.070 adm-urb) per citypopulation.de ["Shiyan"] = {container = "Hubei"}, -- 0.955 urban (1.070 adm-urb) per citypopulation.de ["Huludao"] = {container = "Liaoning"}, -- 0.764 urban (1.060 adm-urb) per citypopulation.de ["Dongying"] = {container = "Shandong"}, -- 0.961 urban (1.050 adm-urb) per citypopulation.de ["Guigang"] = {container = {key = "Guangxi, China", placetype = "autonomous region"}}, -- 0.921 urban (1.050 adm-urb) per citypopulation.de -- Liuyang is a "county-level city" of the "prefecture-level city" of Changsha but in fact is 47 miles away from Changsha city proper (urban core to urban core). ["Liuyang"] = {placetype = "county-level city", container = {key = "Changsha", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}}, -- 0.886 urban (1.040 adm-urb) per citypopulation.de -- NOTE: Not to be confused with Changzhou in Jiangsu ["Cangzhou"] = {container = "Hebei"}, -- 7.3 prefectural, 621,000 urban; 0.759 urban (1.030 adm-urb) per citypopulation.de ["Liupanshui"] = {container = "Guizhou"}, -- < 0.750 urban (1.030 adm-urb) per citypopulation.de ["Panjin"] = {container = "Liaoning"}, -- 0.980 urban (1.030 adm-urb) per citypopulation.de ["Qiqihar"] = {container = "Heilongjiang"}, -- 1.030 urban (1.030 adm-urb) per citypopulation.de ["Linfen"] = {container = "Shanxi"}, -- < 0.750 urban (1.010 adm-urb) per citypopulation.de -- Tengzhou is a "county-level city" of the "prefecture-level city" of Zaozhuang but in fact is 30 miles away from Zaozhuang city proper (urban core to urban core). ["Tengzhou"] = {placetype = "county-level city", container = {key = "Zaozhuang", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}}, -- 0.937 urban (1.010 adm-urb) per citypopulation.de -- 3 extra that got added in earlier incarnations and aren't found in the "major agglomerations of the world" page https://citypopulation.de/en/world/agglomerations/ reference date 2025-01-01 ["Kunshan"] = {container = "Jiangsu"}, -- 1.652 urban (2020 China census) per citypopulation.de ["Zhumadian"] = {container = "Henan"}, -- 7.0 prefectural, 722,000 urban per Wikipedia; 0.754 urban per citypopulation.de ["Bijie"] = {container = "Guizhou"}, -- 6.9 prefectural, ? urban, ? metro (not listed in Wikipedia); < 0.750 urban per citypopulation.de } export.china_prefecture_level_cities_group = { -- don't do any transformations between key and placename; in particular, don't chop off anything from -- "Taizhou, Zhejiang" or "Suzhou, Anhui". key_to_placename = false, placename_to_key = false, -- don't add ", China" to make the key default_container = "Trung Quốc", canonicalize_key_container = make_canonicalize_key_container(", China", "province"), -- Prefecture-level cities aren't really cities but allow them to be identified that way, as many people -- don't understand how Chinese administrative divisions work. default_placetype = {"prefecture-level city", "thành phố"}, default_divs = { -- "towns" (but not "townships") are automatically added as they are specified as generic_before_non_cities, -- and prefecture-level cities (as well as county-level cities) are considered non-cities. "districts", "subdistricts", "townships", {type = "counties", cat_as = "counties and county-level cities"}, {type = "county-level cities", cat_as = "counties and county-level cities"}, }, data = export.china_prefecture_level_cities, } -- Needed to avoid problems with two cities called Taizhou and Suzhou. export.china_prefecture_level_cities_2 = { -- NOTE: There is also a larger and better-known prefecture-level city Taizhou in Zhejiang. ["Taizhou, Jiangsu"] = {container = "Jiangsu"}, -- 1.3 urban (1.490 adm-urb) per citypopulation.de 2020 census ["Taizhou"] = {alias_of = "Taizhou, Jiangsu"}, -- NOTE: There is also a larger and better-known prefecture-level city Suzhou in Jiangsu. ["Suzhou, Anhui"] = {container = "Anhui"}, -- 5.3 prefectural, 1.766 metro and "urban"; < 1 urban (1.010 adm-urb) per citypopulation.de 2020 census -- hopefully this will work because we also have Suzhou as a key by itself for the larger, more-well-known Suzhou in Jiangsu ["Suzhou"] = {alias_of = "Suzhou, Anhui"}, } export.china_prefecture_level_cities_group_2 = { -- don't do any transformations between key and placename; in particular, don't chop off anything from -- "Taizhou, Jiangsu". placename_to_key = false, -- don't add ", China" to make the key default_container = "Trung Quốc", canonicalize_key_container = make_canonicalize_key_container(", China", "province"), -- Prefecture-level cities aren't really cities but allow them to be identified that way, as many people -- don't understand how Chinese administrative divisions work. default_placetype = {"prefecture-level city", "thành phố"}, default_divs = { -- "towns" (but not "townships") are automatically added as they are specified as generic_before_non_cities, -- and prefecture-level cities (as well as county-level cities) are considered non-cities. "districts", "subdistricts", "townships", {type = "counties", cat_as = "counties and county-level cities"}, {type = "county-level cities", cat_as = "counties and county-level cities"}, }, data = export.china_prefecture_level_cities_2, } export.finland_regions = { ["Lapland, Finland"] = {wp = "%l (%c)"}, ["North Ostrobothnia, Finland"] = {}, ["Northern Ostrobothnia, Finland"] = {alias_of = "North Ostrobothnia, Finland", display = true}, ["Kainuu, Finland"] = {}, ["North Karelia, Finland"] = {}, ["Northern Savonia, Finland"] = {}, ["North Savo, Finland"] = {alias_of = "Northern Savonia, Finland", display = true}, ["Southern Savonia, Finland"] = {}, ["South Savo, Finland"] = {alias_of = "Southern Savonia, Finland", display = true}, ["South Karelia, Finland"] = {}, ["Central Finland, Finland"] = {}, ["South Ostrobothnia, Finland"] = {}, ["Southern Ostrobothnia, Finland"] = {alias_of = "South Ostrobothnia, Finland", display = true}, ["Ostrobothnia, Finland"] = {wp = "%l (region)"}, ["Central Ostrobothnia, Finland"] = {}, ["Pirkanmaa, Finland"] = {}, ["Satakunta, Finland"] = {}, ["Päijänne Tavastia, Finland"] = {}, ["Päijät-Häme, Finland"] = {alias_of = "Päijänne Tavastia, Finland", display = true}, ["Tavastia Proper, Finland"] = {}, ["Kanta-Häme, Finland"] = {alias_of = "Tavastia Proper, Finland", display = true}, ["Kymenlaakso, Finland"] = {}, ["Uusimaa, Finland"] = {}, ["Southwest Finland, Finland"] = {}, ["Åland Islands, Finland"] = {the = true, wp = "Åland"}, ["Åland, Finland"] = {alias_of = "Åland Islands, Finland"}, -- differs in "the" } -- regions of Finland export.finland_group = { default_container = "Phần Lan", default_placetype = "region", default_divs = "municipalities", data = export.finland_regions, } export.france_administrative_regions = { ["Auvergne-Rhône-Alpes, France"] = {}, ["Bourgogne-Franche-Comté, France"] = {}, ["Brittany, France"] = {wp = "%l (administrative region)"}, ["Centre-Val de Loire, France"] = {}, ["Corsica, France"] = {}, -- overseas departments are handled in `export.country_like_entities` -- ["French Guiana"] = {}, ["Grand Est, France"] = {}, -- ["Guadeloupe"] = {}, ["Hauts-de-France, France"] = {}, ["Île-de-France, France"] = {}, -- ["Martinique"] = {}, -- ["Mayotte"] = {}, ["Normandy, France"] = {wp = "%l (administrative region)"}, ["Nouvelle-Aquitaine, France"] = {}, ["Occitania, France"] = {wp = "%l (administrative region)"}, ["Occitanie, France"] = {alias_of = "Occitania, France", display = true}, ["Pays de la Loire, France"] = {}, ["Provence-Alpes-Côte d'Azur, France"] = {}, -- ["Réunion"] = {}, } -- administrative regions of France export.france_group = { default_container = "Pháp", -- Canonically these are 'administrative regions' but also treat as 'region' ('administrative region' falls back -- to 'region'). default_placetype = "region", default_divs = { "communes", {type = "municipalities", cat_as = "communes"}, "departments", {type = "prefectures", cat_as = {"prefectures", "departmental capitals"}}, {type = "French prefectures", cat_as = {"prefectures", "departmental capitals"}}, }, data = export.france_administrative_regions, } export.france_departments = { ["Ain, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 01 ["Aisne, France"] = {container = "Hauts-de-France"}, -- 02 ["Allier, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 03 ["Alpes-de-Haute-Provence, France"] = {container = "Provence-Alpes-Côte d'Azur"}, -- 04 ["Hautes-Alpes, France"] = {container = "Provence-Alpes-Côte d'Azur"}, -- 05 ["Alpes-Maritimes, France"] = {container = "Provence-Alpes-Côte d'Azur"}, -- 06 ["Ardèche, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 07 ["Ardennes, France"] = {container = "Grand Est", wp = "%l (department)"}, -- 08 ["Ariège, France"] = {container = "Occitania", wp = "%l (department)"}, -- 09 ["Aube, France"] = {container = "Grand Est"}, -- 10 ["Aude, France"] = {container = "Occitania"}, -- 11 ["Aveyron, France"] = {container = "Occitania"}, -- 12 ["Bouches-du-Rhône, France"] = {container = "Provence-Alpes-Côte d'Azur"}, -- 13 ["Calvados, France"] = {container = "Normandy", wp = "%l (department)"}, -- 14 ["Cantal, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 15 ["Charente, France"] = {container = "Nouvelle-Aquitaine"}, -- 16 ["Charente-Maritime, France"] = {container = "Nouvelle-Aquitaine"}, -- 17 ["Cher, France"] = {container = "Centre-Val de Loire", wp = "%l (department)"}, -- 18 ["Corrèze, France"] = {container = "Nouvelle-Aquitaine"}, -- 19 ["Corse-du-Sud, France"] = {container = "Corsica"}, -- 2A ["Haute-Corse, France"] = {container = "Corsica"}, -- 2B ["Côte-d'Or, France"] = {container = "Bourgogne-Franche-Comté"}, -- 21 ["Côte d'Or, France"] = {alias_of = "Côte-d'Or, France", display = true}, ["Côtes-d'Armor, France"] = {container = "Brittany"}, -- 22 ["Côtes d'Armor, France"] = {alias_of = "Côtes-d'Armor, France", display = true}, ["Creuse, France"] = {container = "Nouvelle-Aquitaine"}, -- 23 ["Dordogne, France"] = {container = "Nouvelle-Aquitaine"}, -- 24 ["Doubs, France"] = {container = "Bourgogne-Franche-Comté"}, -- 25 ["Drôme, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 26 ["Eure, France"] = {container = "Normandy"}, -- 27 ["Eure-et-Loir, France"] = {container = "Centre-Val de Loire"}, -- 28 ["Finistère, France"] = {container = "Brittany"}, -- 29 ["Gard, France"] = {container = "Occitania"}, -- 30 ["Haute-Garonne, France"] = {container = "Occitania"}, -- 31 ["Gers, France"] = {container = "Occitania"}, -- 32 ["Gironde, France"] = {container = "Nouvelle-Aquitaine"}, -- 33 ["Hérault, France"] = {container = "Occitania"}, -- 34 ["Ille-et-Vilaine, France"] = {container = "Brittany"}, -- 35 ["Indre, France"] = {container = "Centre-Val de Loire"}, -- 36 ["Indre-et-Loire, France"] = {container = "Centre-Val de Loire"}, -- 37 ["Isère, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 38 ["Jura, France"] = {container = "Bourgogne-Franche-Comté", wp = "%l (department)"}, -- 39 ["Landes, France"] = {container = "Nouvelle-Aquitaine", wp = "%l (department)"}, -- 40 ["Loir-et-Cher, France"] = {container = "Centre-Val de Loire"}, -- 41 ["Loire, France"] = {container = "Auvergne-Rhône-Alpes", wp = "%l (department)"}, -- 42 ["Haute-Loire, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 43 ["Loire-Atlantique, France"] = {container = "Pays de la Loire"}, -- 44 ["Loiret, France"] = {container = "Centre-Val de Loire"}, -- 45 ["Lot, France"] = {container = "Occitania", wp = "%l (department)"}, -- 46 ["Lot-et-Garonne, France"] = {container = "Nouvelle-Aquitaine"}, -- 47 ["Lozère, France"] = {container = "Occitania"}, -- 48 ["Maine-et-Loire, France"] = {container = "Pays de la Loire"}, -- 49 ["Manche, France"] = {container = "Normandy"}, -- 50 ["Marne, France"] = {container = "Grand Est", wp = "%l (department)"}, -- 51 ["Haute-Marne, France"] = {container = "Grand Est"}, -- 52 ["Mayenne, France"] = {container = "Pays de la Loire"}, -- 53 ["Meurthe-et-Moselle, France"] = {container = "Grand Est"}, -- 54 ["Meuse, France"] = {container = "Grand Est", wp = "%l (department)"}, -- 55 ["Morbihan, France"] = {container = "Brittany"}, -- 56 ["Moselle, France"] = {container = "Grand Est", wp = "%l (department)"}, -- 57 ["Nièvre, France"] = {container = "Bourgogne-Franche-Comté"}, -- 58 ["Nord, France"] = {container = "Hauts-de-France", wp = "%l (French department)"}, -- 59 ["Oise, France"] = {container = "Hauts-de-France"}, -- 60 ["Orne, France"] = {container = "Normandy"}, -- 61 ["Pas-de-Calais, France"] = {container = "Hauts-de-France"}, -- 62 ["Puy-de-Dôme, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 63 ["Pyrénées-Atlantiques, France"] = {container = "Nouvelle-Aquitaine"}, -- 64 ["Hautes-Pyrénées, France"] = {container = "Occitania"}, -- 65 ["Pyrénées-Orientales, France"] = {container = "Occitania"}, -- 66 ["Bas-Rhin, France"] = {container = "Grand Est"}, -- 67 ["Haut-Rhin, France"] = {container = "Grand Est"}, -- 68 ["Rhône, France"] = {container = "Auvergne-Rhône-Alpes", wp = "%l (department)"}, -- 69D ["Metropolis of Lyon, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 69M ["Lyon Metropolis, France"] = {alias_of = "Metropolis of Lyon, France"}, ["Lyon, France"] = {alias_of = "Metropolis of Lyon, France"}, ["Haute-Saône, France"] = {container = "Bourgogne-Franche-Comté"}, -- 70 ["Saône-et-Loire, France"] = {container = "Bourgogne-Franche-Comté"}, -- 71 ["Sarthe, France"] = {container = "Pays de la Loire"}, -- 72 ["Savoie, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 73 ["Haute-Savoie, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 74 ["Paris, France"] = {container = "Île-de-France"}, -- 75 ["Seine-Maritime, France"] = {container = "Normandy"}, -- 76 ["Seine-et-Marne, France"] = {container = "Île-de-France"}, -- 77 ["Yvelines, France"] = {container = "Île-de-France"}, -- 78 ["Deux-Sèvres, France"] = {container = "Nouvelle-Aquitaine"}, -- 79 ["Somme, France"] = {container = "Hauts-de-France", wp = "%l (department)"}, -- 80 ["Tarn, France"] = {container = "Occitania", wp = "%l (department)"}, -- 81 ["Tarn-et-Garonne, France"] = {container = "Occitania"}, -- 82 ["Var, France"] = {container = "Provence-Alpes-Côte d'Azur", wp = "%l (department)"}, -- 83 ["Vaucluse, France"] = {container = "Provence-Alpes-Côte d'Azur"}, -- 84 ["Vendée, France"] = {container = "Pays de la Loire"}, -- 85 ["Vienne, France"] = {container = "Nouvelle-Aquitaine", wp = "%l (department)"}, -- 86 ["Haute-Vienne, France"] = {container = "Nouvelle-Aquitaine"}, -- 87 ["Vosges, France"] = {container = "Grand Est", wp = "%l (department)"}, -- 88 ["Yonne, France"] = {container = "Bourgogne-Franche-Comté"}, -- 89 ["Territoire de Belfort, France"] = {container = "Bourgogne-Franche-Comté"}, -- 90 ["Essonne, France"] = {container = "Île-de-France"}, -- 91 ["Hauts-de-Seine, France"] = {container = "Île-de-France"}, -- 92 ["Seine-Saint-Denis, France"] = {container = "Île-de-France"}, -- 93 ["Val-de-Marne, France"] = {container = "Île-de-France"}, -- 94 ["Val-d'Oise, France"] = {container = "Île-de-France"}, -- 95 --["Guadeloupe"] = {container = "Guadeloupe"}, -- 971 --["Martinique"] = {container = "Martinique"}, -- 972 --["Guyane"] = {container = "French Guiana", wp = "French Guiana"}, -- 973 --["La Réunion"] = {container = "Réunion", wp = "Réunion"}, -- 974 --["Mayotte"] = {container = "Mayotte"}, -- 976 } export.france_departments_group = { placename_to_key = make_placename_to_key(", France"), canonicalize_key_container = make_canonicalize_key_container(", France", "region"), default_placetype = "department", default_divs = { "communes", {type = "municipalities", cat_as = "communes"}, }, data = export.france_departments, } export.germany_states = { ["Baden-Württemberg, Germany"] = {}, ["Bavaria, Germany"] = {}, -- Berlin, Bremen and Hamburg are effectively city-states and don't have districts ([[Kreise]]), so override -- the default_divs setting. Better not to include them at all since they're included as cities down below. -- ["Berlin"] = {divs = {}}, ["Brandenburg, Germany"] = {}, -- ["Bremen"] = {divs = {}}, -- ["Hamburg"] = {divs = {}}, ["Hesse, Germany"] = {}, ["Lower Saxony, Germany"] = {}, ["Mecklenburg-Vorpommern, Germany"] = {}, ["Mecklenburg-Western Pomerania, Germany"] = {alias_of = "Mecklenburg-Vorpommern, Germany", display = true}, ["North Rhine-Westphalia, Germany"] = {}, ["Rhineland-Palatinate, Germany"] = {}, ["Saarland, Germany"] = {}, ["Saxony, Germany"] = {}, ["Saxony-Anhalt, Germany"] = {}, ["Schleswig-Holstein, Germany"] = {}, ["Thuringia, Germany"] = {}, } -- states of Germany export.germany_group = { default_container = "Đức", default_placetype = "state", default_divs = {"districts", "municipalities"}, data = export.germany_states, } export.greece_regions = { ["Attica, Greece"] = {wp = "%l (region)"}, ["Central Greece, Greece"] = {wp = "%l (administrative region)"}, ["Central Macedonia, Greece"] = {}, ["Crete, Greece"] = {}, ["Eastern Macedonia and Thrace, Greece"] = {}, ["Epirus, Greece"] = {wp = "%l (region)"}, ["Ionian Islands, Greece"] = {the = true, wp = "%l (region)"}, ["North Aegean, Greece"] = {the = true}, -- I would expect 'the Peloponnese' but Wikipedia mostly has categories like [[w:Category:Geography of Peloponnese (region)]] -- and [[w:Category:Buildings and structures in Peloponnese (region)]]; only [[w:Category:People from the Peloponnese (region)]] -- has "the" in it. ["Peloponnese, Greece"] = {wp = "%l (region)"}, ["South Aegean, Greece"] = {the = true}, ["Thessaly, Greece"] = {}, ["Western Greece, Greece"] = {}, ["Western Macedonia, Greece"] = {}, ["Mount Athos, Greece"] = {placetype = {"autonomous region", "region"}, wp = "Monastic community of Mount Athos"}, } -- regions of Greece export.greece_group = { default_container = "Hy Lạp", default_placetype = "region", data = export.greece_regions, } local india_polity_with_divisions = {"divisions", "districts"} local india_polity_without_divisions = {"districts"} -- States and union territories of India. Only some of them are divided into divisions. export.india_states_and_union_territories = { ["Andaman and Nicobar Islands, India"] = {the = true, placetype = "union territory", divs = india_polity_without_divisions}, ["Andhra Pradesh, India"] = {divs = india_polity_without_divisions}, ["Arunachal Pradesh, India"] = {divs = india_polity_with_divisions}, ["Assam, India"] = {divs = india_polity_with_divisions}, ["Bihar, India"] = {divs = india_polity_with_divisions}, ["Chandigarh, India"] = {placetype = "union territory", divs = india_polity_without_divisions}, ["Chhattisgarh, India"] = {divs = india_polity_with_divisions}, ["Dadra and Nagar Haveli and Daman and Diu, India"] = {placetype = "union territory", divs = india_polity_without_divisions}, ["Delhi, India"] = {placetype = "union territory", divs = india_polity_with_divisions}, ["Goa, India"] = {divs = india_polity_without_divisions}, ["Gujarat, India"] = {divs = india_polity_without_divisions}, ["Haryana, India"] = {divs = india_polity_with_divisions}, ["Himachal Pradesh, India"] = {divs = india_polity_with_divisions}, ["Jammu and Kashmir, India"] = {placetype = "union territory", divs = india_polity_with_divisions, wp = "%l (union territory)"}, ["Jharkhand, India"] = {divs = india_polity_with_divisions}, ["Karnataka, India"] = {divs = india_polity_with_divisions}, ["Kerala, India"] = {divs = india_polity_without_divisions}, ["Ladakh, India"] = {placetype = "union territory", divs = india_polity_with_divisions}, ["Lakshadweep, India"] = {placetype = "union territory", divs = india_polity_without_divisions}, ["Madhya Pradesh, India"] = {divs = india_polity_with_divisions}, ["Maharashtra, India"] = {divs = india_polity_with_divisions}, ["Manipur, India"] = {divs = india_polity_without_divisions}, ["Meghalaya, India"] = {divs = india_polity_with_divisions}, ["Mizoram, India"] = {divs = india_polity_without_divisions}, ["Nagaland, India"] = {divs = india_polity_with_divisions}, ["Odisha, India"] = {divs = india_polity_with_divisions}, ["Puducherry, India"] = {placetype = "union territory", divs = india_polity_without_divisions, wp = "%l (union territory)"}, ["Pondicherry, India"] = {alias_of = "Puducherry, India", display = true}, ["Punjab, India"] = {divs = india_polity_with_divisions, wp = "%l, %c"}, ["Rajasthan, India"] = {divs = india_polity_with_divisions}, ["Sikkim, India"] = {divs = india_polity_without_divisions}, ["Tamil Nadu, India"] = {divs = india_polity_without_divisions}, ["Telangana, India"] = {divs = india_polity_without_divisions}, ["Tripura, India"] = {divs = india_polity_without_divisions}, ["Uttar Pradesh, India"] = {divs = india_polity_with_divisions}, ["Uttarakhand, India"] = {divs = india_polity_with_divisions}, ["West Bengal, India"] = {divs = india_polity_with_divisions}, } -- states and union territories of India export.india_group = { default_container = "Ấn Độ", default_placetype = "state", data = export.india_states_and_union_territories, } export.indonesia_provinces = { ["Aceh, Indonesia"] = {}, ["Bali, Indonesia"] = {}, ["Bangka Belitung Islands, Indonesia"] = {the = true}, ["Banten, Indonesia"] = {}, ["Bengkulu, Indonesia"] = {}, ["Central Java, Indonesia"] = {}, ["Central Kalimantan, Indonesia"] = {}, ["Central Papua, Indonesia"] = {}, ["Central Sulawesi, Indonesia"] = {}, ["East Java, Indonesia"] = {}, ["East Kalimantan, Indonesia"] = {}, ["East Nusa Tenggara, Indonesia"] = {}, ["Gorontalo, Indonesia"] = {}, ["Highland Papua, Indonesia"] = {wp = "%l"}, ["Special Capital Region of Jakarta, Indonesia"] = {the = true, wp = "Jakarta"}, ["Jakarta, Indonesia"] = {alias_of = "Special Capital Region of Jakarta, Indonesia"}, ["Jambi, Indonesia"] = {}, ["Lampung, Indonesia"] = {}, ["Maluku, Indonesia"] = {}, ["North Kalimantan, Indonesia"] = {}, ["North Maluku, Indonesia"] = {}, ["North Sulawesi, Indonesia"] = {}, ["North Papua, Indonesia"] = {}, ["North Sumatra, Indonesia"] = {}, ["Papua, Indonesia"] = {wp = "%l (province)"}, ["Riau, Indonesia"] = {}, ["Riau Islands, Indonesia"] = {the = true}, ["Southeast Sulawesi, Indonesia"] = {}, ["South Kalimantan, Indonesia"] = {}, ["South Papua, Indonesia"] = {}, ["South Sulawesi, Indonesia"] = {}, ["South Sumatra, Indonesia"] = {}, ["Southwest Papua, Indonesia"] = {}, ["West Java, Indonesia"] = {}, ["West Kalimantan, Indonesia"] = {}, ["West Nusa Tenggara, Indonesia"] = {}, ["West Papua, Indonesia"] = {wp = "%l (province)"}, ["West Sulawesi, Indonesia"] = {}, ["West Sumatra, Indonesia"] = {}, ["Special Region of Yogyakarta, Indonesia"] = {the = true}, ["Yogyakarta, Indonesia"] = {alias_of = "Special Region of Yogyakarta, Indonesia"}, } -- provinces of Indonesia export.indonesia_group = { default_container = "Indonesia", default_placetype = "province", -- per https://www.quora.com/Does-Indonesia-use-British-or-American-English, Indonesia tends to use American -- spellings. data = export.indonesia_provinces, } export.iran_provinces = { ["Alborz Province, Iran"] = {}, -- abbreviation AL, capital [[w:Karaj]] ["Ardabil Province, Iran"] = {}, -- abbreviation AR, capital [[w:Ardabil]] ["Bushehr Province, Iran"] = {}, -- abbreviation BU, capital [[w:Bushehr]] ["Chaharmahal and Bakhtiari Province, Iran"] = {}, -- abbreviation CB, capital [[w:Shahr-e Kord]] ["East Azerbaijan Province, Iran"] = {}, -- abbreviation EA, capital [[w:Tabriz]] ["Fars Province, Iran"] = {}, -- abbreviation FA, capital [[w:Shiraz]] ["Pars Province, Iran"] = {alias_of = "Fars Province, Iran", display = true}, ["Gilan Province, Iran"] = {}, -- abbreviation GN, capital [[w:Rasht]] ["Golestan Province, Iran"] = {}, -- abbreviation GO, capital [[w:Gorgan]] ["Hamadan Province, Iran"] = {}, -- abbreviation HA, capital [[w:Hamadan]] ["Hormozgan Province, Iran"] = {}, -- abbreviation HO, capital [[w:Bandar Abbas]] ["Ilam Province, Iran"] = {}, -- abbreviation IL, capital [[w:Ilam, Iran|Ilam]] ["Isfahan Province, Iran"] = {}, -- abbreviation IS, capital [[w:Isfahan]] ["Kerman Province, Iran"] = {}, -- abbreviation KN, capital [[w:Kerman]] ["Kermanshah Province, Iran"] = {}, -- abbreviation KE, capital [[w:Kermanshah]] ["Khuzestan Province, Iran"] = {}, -- abbreviation KH, capital [[w:Ahvaz]] ["Kohgiluyeh and Boyer-Ahmad Province, Iran"] = {}, -- abbreviation KB, capital [[w:Yasuj]] ["Kurdistan Province, Iran"] = {}, -- abbreviation KU, capital [[w:Sanandaj]] ["Lorestan Province, Iran"] = {}, -- abbreviation LO, capital [[w:Khorramabad]] ["Markazi Province, Iran"] = {}, -- abbreviation MA, capital [[w:Arak, Iran|Arak]] ["Mazandaran Province, Iran"] = {}, -- abbreviation MN, capital [[w:Sari, Iran|Sari]] ["North Khorasan Province, Iran"] = {}, -- abbreviation NK, capital [[w:Bojnord]] ["Qazvin Province, Iran"] = {}, -- abbreviation QA, capital [[w:Qazvin]] ["Qom Province, Iran"] = {}, -- abbreviation QM, capital [[w:Qom]] ["Razavi Khorasan Province, Iran"] = {}, -- abbreviation RK, capital [[w:Mashhad]] ["Semnan Province, Iran"] = {}, -- abbreviation SE, capital [[w:Semnan, Iran|Semnan]] ["Sistan and Baluchestan Province, Iran"] = {}, -- abbreviation SB, capital [[w:Zahedan]] ["South Khorasan Province, Iran"] = {}, -- abbreviation SK, capital [[w:Birjand]] ["Tehran Province, Iran"] = {}, -- abbreviation TE, capital [[w:Tehran]] ["West Azerbaijan Province, Iran"] = {}, -- abbreviation WA, capital [[w:Urmia]] ["Yazd Province, Iran"] = {}, -- abbreviation YA, capital [[w:Yazd]] ["Zanjan Province, Iran"] = {}, -- abbreviation ZA, capital [[w:Zanjan, Iran|Zanjan]] } -- provinces of Iran export.iran_group = { key_to_placename = make_key_to_placename(", Iran", " Province$"), placename_to_key = make_placename_to_key(", Iran", " Province"), default_container = "Iran", default_placetype = "province", -- There aren't nearly enough counties of Iran currently entered in any language to allow for categorizing them -- per-province. (As of 2025-05-09, there are only 6 counties in each of [[Category:en:Counties of Iran]], -- [[Category:fa:Counties of Iran]] and [[Category:ar:Counties of Iran]].) -- default_divs = "counties", -- For obscure reasons, provinces of Iran, Laos, Thailand and Vietnam use lowercase 'province' default_wp = "%e province", data = export.iran_provinces, } export.ireland_counties = { ["County Carlow, Ireland"] = {}, ["County Cavan, Ireland"] = {}, ["County Clare, Ireland"] = {}, ["County Cork, Ireland"] = {}, ["County Donegal, Ireland"] = {}, ["County Dublin, Ireland"] = {}, ["County Galway, Ireland"] = {}, ["County Kerry, Ireland"] = {}, ["County Kildare, Ireland"] = {}, ["County Kilkenny, Ireland"] = {}, ["County Laois, Ireland"] = {}, ["County Leitrim, Ireland"] = {}, ["County Limerick, Ireland"] = {}, ["County Longford, Ireland"] = {}, ["County Louth, Ireland"] = {}, ["County Mayo, Ireland"] = {}, ["County Meath, Ireland"] = {}, ["County Monaghan, Ireland"] = {}, ["County Offaly, Ireland"] = {}, ["County Roscommon, Ireland"] = {}, ["County Sligo, Ireland"] = {}, ["County Tipperary, Ireland"] = {}, ["County Waterford, Ireland"] = {}, ["County Westmeath, Ireland"] = {}, ["County Wexford, Ireland"] = {}, ["County Wicklow, Ireland"] = {}, } local function make_irish_type_key_to_placename(container_pattern) return function(key) key = key:gsub(container_pattern, "") local elliptical_key = key:gsub("^County ", "") return key, elliptical_key end end local function make_irish_type_placename_to_key(container_suffix) return function(placename) if not placename:find("^County ") and not placename:find("^City ") then placename = "County " .. placename end return placename .. container_suffix end end -- counties of Ireland export.ireland_group = { key_to_placename = make_irish_type_key_to_placename(", Ireland$"), placename_to_key = make_irish_type_placename_to_key(", Ireland"), default_container = "Ireland", default_placetype = "county", data = export.ireland_counties, } export.italy_administrative_regions = { ["Abruzzo, Italy"] = {}, ["Aosta Valley, Italy"] = {placetype = {"autonomous region", "administrative region", "region"}}, ["Apulia, Italy"] = {}, ["Basilicata, Italy"] = {}, ["Calabria, Italy"] = {}, ["Campania, Italy"] = {}, ["Emilia-Romagna, Italy"] = {}, ["Friuli-Venezia Giulia, Italy"] = {placetype = {"autonomous region", "administrative region", "region"}}, ["Lazio, Italy"] = {}, ["Liguria, Italy"] = {}, ["Lombardy, Italy"] = {}, ["Marche, Italy"] = {}, ["Molise, Italy"] = {}, ["Piedmont, Italy"] = {}, ["Sardinia, Italy"] = {placetype = {"autonomous region", "administrative region", "region"}}, ["Sicily, Italy"] = {placetype = {"autonomous region", "administrative region", "region"}}, ["Trentino-Alto Adige, Italy"] = {placetype = {"autonomous region", "administrative region", "region"}}, ["Tuscany, Italy"] = {}, ["Umbria, Italy"] = {}, ["Veneto, Italy"] = {}, } -- administrative regions of Italy export.italy_group = { default_container = "Ý", default_placetype = "region", data = export.italy_administrative_regions, } -- table of Japanese prefectures; interpolated into the main 'places' table, but also needed separately export.japan_prefectures = { ["Aichi, Nhật Bản"] = {}, ["Akita, Nhật Bản"] = {}, ["Aomori, Nhật Bản"] = {}, ["Chiba, Nhật Bản"] = {}, ["Ehime, Nhật Bản"] = {}, ["Fukui, Nhật Bản"] = {}, ["Fukuoka, Nhật Bản"] = {}, ["Fukushima, Nhật Bản"] = {}, ["Gifu, Nhật Bản"] = {}, ["Gunma, Nhật Bản"] = {}, ["Hiroshima, Nhật Bản"] = {}, ["Hokkaido, Nhật Bản"] = {divs = "subprefectures", wp = "Hokkaido"}, ["Hyōgo, Nhật Bản"] = {}, ["Hyogo, Nhật Bản"] = {alias_of = "Hyōgo, Nhật Bản", display = true}, ["Ibaraki, Nhật Bản"] = {}, ["Ishikawa, Nhật Bản"] = {}, ["Iwate, Nhật Bản"] = {}, ["Kagawa, Nhật Bản"] = {}, ["Kagoshima, Nhật Bản"] = {}, ["Kanagawa, Nhật Bản"] = {}, ["Kōchi, Nhật Bản"] = {}, ["Kochi, Nhật Bản"] = {alias_of = "Kōchi, Nhật Bản", display = true}, ["Kumamoto, Nhật Bản"] = {}, ["Kyoto, Nhật Bản"] = {}, ["Mie, Nhật Bản"] = {}, ["Miyagi, Nhật Bản"] = {}, ["Miyazaki, Nhật Bản"] = {}, ["Nagano, Nhật Bản"] = {}, ["Nagasaki, Nhật Bản"] = {}, ["Nara, Nhật Bản"] = {}, ["Niigata, Nhật Bản"] = {}, ["Ōita, Nhật Bản"] = {}, ["Oita, Nhật Bản"] = {alias_of = "Ōita, Nhật Bản", display = true}, ["Okayama, Nhật Bản"] = {}, ["Okinawa, Nhật Bản"] = {}, ["Osaka, Nhật Bản"] = {}, ["Saga, Nhật Bản"] = {}, ["Saitama, Nhật Bản"] = {}, ["Shiga, Nhật Bản"] = {}, ["Shimane, Nhật Bản"] = {}, ["Shizuoka, Nhật Bản"] = {}, ["Tochigi, Nhật Bản"] = {}, ["Tokushima, Nhật Bản"] = {}, ["Tottori, Nhật Bản"] = {}, ["Toyama, Nhật Bản"] = {}, ["Wakayama, Nhật Bản"] = {}, ["Yamagata, Nhật Bản"] = {}, ["Yamaguchi, Nhật Bản"] = {}, ["Yamanashi, Nhật Bản"] = {}, } -- prefectures of Japan export.japan_group = { key_to_placename = make_key_to_placename(", Nhật Bản$", " $"), placename_to_key = make_placename_to_key(", Nhật Bản", ""), default_container = "Nhật Bản", default_placetype = "prefecture", data = export.japan_prefectures, } export.laos_provinces = { ["Attapeu Province, Laos"] = {}, ["Bokeo Province, Laos"] = {}, ["Bolikhamxai Province, Laos"] = {}, ["Champasak Province, Laos"] = {}, ["Houaphanh Province, Laos"] = {}, ["Khammouane Province, Laos"] = {}, ["Luang Namtha Province, Laos"] = {}, ["Luang Prabang Province, Laos"] = {}, ["Oudomxay Province, Laos"] = {}, ["Phongsaly Province, Laos"] = {}, ["Salavan Province, Laos"] = {}, ["Savannakhet Province, Laos"] = {}, ["Vientiane Province, Laos"] = {}, ["Vientiane Prefecture, Laos"] = {placetype = "prefecture", wp = "%l"}, ["Sainyabuli Province, Laos"] = {}, ["Sekong Province, Laos"] = {}, ["Xaisomboun Province, Laos"] = {}, ["Xiangkhouang Province, Laos"] = {}, } local function laos_placename_to_key(placename) if placename == "Vientiane Prefecture" then return placename .. ", Laos" end if placename:find(" Province$") then return placename .. ", Laos" end return placename .. " Province, Laos" end -- provinces of Laos export.laos_group = { key_to_placename = make_key_to_placename(", Laos$", {" Province$", " Prefecture$"}), placename_to_key = laos_placename_to_key, default_container = "Lào", default_placetype = "province", -- For obscure reasons, provinces of Iran, Laos, Thailand and Vietnam use lowercase 'province' default_wp = "%e province", data = export.laos_provinces, } export.lebanon_governorates = { ["Akkar Governorate, Lebanon"] = {}, ["Baalbek-Hermel Governorate, Lebanon"] = {}, ["Beirut Governorate, Lebanon"] = {}, ["Beqaa Governorate, Lebanon"] = {}, ["Keserwan-Jbeil Governorate, Lebanon"] = {}, ["Mount Lebanon Governorate, Lebanon"] = {}, ["Nabatieh Governorate, Lebanon"] = {}, -- These two are generic enough that we don't want to automatically augment a use of `gov/North Governorate` or -- `gov/South Governorate` with `c/Lebanon`. ["North Governorate, Lebanon"] = {no_auto_augment_container = true}, ["South Governorate, Lebanon"] = {no_auto_augment_container = true}, } -- governorates of Lebanon export.lebanon_group = { key_to_placename = make_key_to_placename(", Lebanon$", " Governorate$"), placename_to_key = make_placename_to_key(", Lebanon", " Governorate"), default_container = "Lebanon", default_placetype = "governorate", data = export.lebanon_governorates, } export.malaysia_states = { ["Johor, Malaysia"] = {}, ["Kedah, Malaysia"] = {}, ["Kelantan, Malaysia"] = {}, ["Malacca, Malaysia"] = {}, ["Negeri Sembilan, Malaysia"] = {}, ["Pahang, Malaysia"] = {}, ["Penang, Malaysia"] = {}, ["Perak, Malaysia"] = {}, ["Perlis, Malaysia"] = {}, ["Sabah, Malaysia"] = {}, ["Sarawak, Malaysia"] = {}, ["Selangor, Malaysia"] = {}, ["Terengganu, Malaysia"] = {}, } -- states of Malaysia export.malaysia_group = { default_container = "Malaysia", default_placetype = "state", default_wp = "%l, %c", data = export.malaysia_states, } export.malta_regions = { -- Some of the regions are generic enough that we don't want to automatically augment a use of e.g. -- `r/Northern Region` with `c/Malta`. In particular; -- * "Eastern Region" also occurs at least in Ghana, Uganda, Iceland, Nigeria, Venezuela, North Macedonia and -- El Salvador; -- * "Northern Region" also occurs at least in Ghana, Uganda, Malawi, Nigeria, Canada and South Africa; -- * "Western Region" also occurs at least in Abu Dhabi, Bahrain, South Africa, Ghana, Iceland, Nepal, Nigeria, -- Serbia and Uganda; -- * "Southern Region" also occurs at least in Nigeria, Eritrea, Iceland, Ireland, Malawi and Serbia. ["Eastern Region, Malta"] = {no_auto_augment_container = true}, ["Gozo Region, Malta"] = {wp = "%l"}, ["Northern Region, Malta"] = {no_auto_augment_container = true}, ["Port Region, Malta"] = {}, ["Southern Region, Malta"] = {no_auto_augment_container = true}, ["Western Region, Malta"] = {no_auto_augment_container = true}, } -- regions of Malta export.malta_group = { key_to_placename = make_key_to_placename(", Malta$", " Region"), placename_to_key = make_placename_to_key(", Malta", " Region"), default_container = "Malta", default_placetype = "region", default_wp = "%l, %c", default_the = true, data = export.malta_regions, } export.mexico_states = { ["Aguascalientes, Mexico"] = {}, ["Baja California, Mexico"] = {}, -- not display-canonicalizing because the "Norte" could be for emphasis ["Baja California Norte, Mexico"] = {alias_of = "Baja California, Mexico"}, ["Baja California Sur, Mexico"] = {}, ["Campeche, Mexico"] = {}, ["Chiapas, Mexico"] = {}, ["Chihuahua, Mexico"] = {wp = "%l (state)"}, ["Coahuila, Mexico"] = {}, ["Colima, Mexico"] = {}, ["Durango, Mexico"] = {}, ["Guanajuato, Mexico"] = {}, ["Guerrero, Mexico"] = {}, ["Hidalgo, Mexico"] = {wp = "%l (state)"}, ["Jalisco, Mexico"] = {}, ["State of Mexico, Mexico"] = {the = true}, ["Mexico, Mexico"] = {alias_of = "State of Mexico, Mexico"}, -- differs in "the" -- ["Mexico City, Mexico"] = {}, doesn't belong here because it's a city ["Michoacán, Mexico"] = {}, ["Michoacan, Mexico"] = {alias_of = "Michoacán, Mexico", display = true}, ["Morelos, Mexico"] = {}, ["Nayarit, Mexico"] = {}, ["Nuevo León, Mexico"] = {}, ["Nuevo Leon, Mexico"] = {alias_of = "Nuevo León, Mexico", display = true}, ["Oaxaca, Mexico"] = {}, ["Puebla, Mexico"] = {}, ["Querétaro, Mexico"] = {}, ["Queretaro, Mexico"] = {alias_of = "Querétaro, Mexico", display = true}, ["Quintana Roo, Mexico"] = {}, ["San Luis Potosí, Mexico"] = {}, ["San Luis Potosi, Mexico"] = {alias_of = "San Luis Potosí, Mexico", display = true}, ["Sinaloa, Mexico"] = {}, ["Sonora, Mexico"] = {}, ["Tabasco, Mexico"] = {}, ["Tamaulipas, Mexico"] = {}, ["Tlaxcala, Mexico"] = {}, ["Veracruz, Mexico"] = {}, ["Yucatán, Mexico"] = {}, ["Yucatan, Mexico"] = {alias_of = "Yucatán, Mexico", display = true}, ["Zacatecas, Mexico"] = {}, } -- Mexican states export.mexico_group = { default_container = "Mexico", default_placetype = "state", data = export.mexico_states, } export.moldova_districts_and_autonomous_territorial_units = { ["Anenii Noi District, Moldova"] = {}, -- capital [[Anenii Noi]] ["Basarabeasca District, Moldova"] = {}, -- capital [[Basarabeasca]] ["Briceni District, Moldova"] = {}, -- capital [[Briceni]] ["Cahul District, Moldova"] = {}, -- capital [[Cahul]] ["Cantemir District, Moldova"] = {}, -- capital [[Cantemir, Moldova|Cantemir]] ["Călărași District, Moldova"] = {}, -- capital [[Călărași, Moldova|Călărași]] ["Căușeni District, Moldova"] = {}, -- capital [[Căușeni]] ["Cimișlia District, Moldova"] = {}, -- capital [[Cimișlia]] ["Criuleni District, Moldova"] = {}, -- capital [[Criuleni]] ["Dondușeni District, Moldova"] = {}, -- capital [[Dondușeni]] ["Drochia District, Moldova"] = {}, -- capital [[Drochia]] ["Dubăsari District, Moldova"] = {}, -- capital [[Cocieri]] ["Edineț District, Moldova"] = {}, -- capital [[Edineț]] ["Fălești District, Moldova"] = {}, -- capital [[Fălești]] ["Florești District, Moldova"] = {}, -- capital [[Florești, Moldova|Florești]] ["Glodeni District, Moldova"] = {}, -- capital [[Glodeni]] ["Hîncești District, Moldova"] = {}, -- capital [[Hîncești]] ["Ialoveni District, Moldova"] = {}, -- capital [[Ialoveni]] ["Leova District, Moldova"] = {}, -- capital [[Leova]] ["Nisporeni District, Moldova"] = {}, -- capital [[Nisporeni]] ["Ocnița District, Moldova"] = {}, -- capital [[Ocnița]] ["Orhei District, Moldova"] = {}, -- capital [[Orhei]] ["Rezina District, Moldova"] = {}, -- capital [[Rezina]] ["Rîșcani District, Moldova"] = {}, -- capital [[Rîșcani]] ["Sîngerei District, Moldova"] = {}, -- capital [[Sîngerei]] ["Soroca District, Moldova"] = {}, -- capital [[Soroca]] ["Strășeni District, Moldova"] = {}, -- capital [[Strășeni]] ["Șoldănești District, Moldova"] = {}, -- capital [[Șoldănești]] ["Ștefan Vodă District, Moldova"] = {}, -- capital [[Ștefan Vodă]] ["Taraclia District, Moldova"] = {}, -- capital [[Taraclia]] ["Telenești District, Moldova"] = {}, -- capital [[Telenești]] ["Ungheni District, Moldova"] = {}, -- capital [[Ungheni]] ["Chișinău, Moldova"] = {placetype = "municipality"}, ["Bălți, Moldova"] = {placetype = "municipality"}, ["Gagauzia, Moldova"] = {placetype = {"autonomous territorial unit", "autonomous region", "region"}}, -- capital [[Comrat]] -- the remainder are under the de-facto control of the unrecognized state of Transnistria ["Bender, Moldova"] = {placetype = "municipality"}, ["Tighina, Moldova"] = {alias_of = "Bender, Moldova"}, ["Transnistria, Moldova"] = {placetype = {"autonomous territorial unit", "autonomous region", "region"}}, -- capital [[Tiraspol]] ["Left Bank of the Dniester, Moldova"] = {alias_of = "Transnistria, Moldova"}, ["Administrative-Territorial Units of the Left Bank of the Dniester, Moldova"] = {alias_of = "Transnistria, Moldova"}, } local function moldova_placename_to_key(placename) local elliptical_key = placename .. ", Moldova" if export.moldova_districts_and_autonomous_territorial_units[elliptical_key] then return elliptical_key end if placename:find(" District$") then return placename .. ", Moldova" end return placename .. " District, Moldova" end -- Moldovan districts (raions) and autonomous territorial units export.moldova_group = { key_to_placename = make_key_to_placename(", Moldova$", " District"), placename_to_key = moldova_placename_to_key, default_container = "Moldova", default_placetype = {"district", "raion"}, default_divs = "communes", data = export.moldova_districts_and_autonomous_territorial_units, } export.morocco_regions = { ["Tangier-Tetouan-Al Hoceima, Morocco"] = {}, ["Oriental, Morocco"] = {wp = "%l (%c)"}, ["L'Oriental, Morocco"] = {alias_of = "Oriental, Morocco", display = true}, ["Fez-Meknes, Morocco"] = {}, ["Rabat-Sale-Kenitra, Morocco"] = {wp = "Rabat-Salé-Kénitra"}, ["Rabat-Salé-Kénitra, Morocco"] = {alias_of = "Rabat-Sale-Kenitra, Morocco", display = true}, ["Beni Mellal-Khenifra, Morocco"] = {wp = "Béni Mellal-Khénifra"}, ["Béni Mellal-Khénifra, Morocco"] = {alias_of = "Beni Mellal-Khenifra, Morocco", display = true}, ["Casablanca-Settat, Morocco"] = {}, ["Marrakesh-Safi, Morocco"] = {wp = "Marrakesh–Safi"}, -- WP title has en-dash ["Marrakech-Safi, Morocco"] = {alias_of = "Marrakesh-Safi, Morocco", display = true}, ["Draa-Tafilalet, Morocco"] = {wp = "Drâa-Tafilalet"}, ["Drâa-Tafilalet, Morocco"] = {alias_of = "Draa-Tafilalet, Morocco", display = true}, ["Souss-Massa, Morocco"] = {}, ["Guelmim-Oued Noun, Morocco"] = { keydesc = "+++. '''NOTE:''' This region lies partly within the disputed territory of [[Western Sahara]]" }, ["Laayoune-Sakia El Hamra, Morocco"] = { wp = "Laâyoune-Sakia El Hamra", keydesc = "+++. '''NOTE:''' This region lies almost completely within the disputed territory of [[Western Sahara]]", }, ["Laâyoune-Sakia El Hamra, Morocco"] = {alias_of = "Laayoune-Sakia El Hamra, Morocco", display = true}, ["Dakhla-Oued Ed-Dahab, Morocco"] = { keydesc = "+++. '''NOTE:''' This region lies completely within the disputed territory of [[Western Sahara]]", }, } -- regions of Morocco export.morocco_group = { default_container = "Maroc", default_placetype = "region", data = export.morocco_regions, } export.egypt_governorates = { ["Cairo Governorate, Egypt"] = {}, ["Giza Governorate, Egypt"] = {}, ["Sharqia Governorate, Egypt"] = {}, ["Dakahlia Governorate, Egypt"] = {}, ["Beheira Governorate, Egypt"] = {}, ["Minya Governorate, Egypt"] = {}, ["Qalyubia Governorate, Egypt"] = {}, ["Sohag Governorate, Egypt"] = {}, ["Alexandria Governorate, Egypt"] = {}, ["Gharbia Governorate, Egypt"] = {}, ["Asyut Governorate, Egypt"] = {}, ["Monufia Governorate, Egypt"] = {}, ["Faiyum Governorate, Egypt"] = {}, ["Kafr El Sheikh Governorate, Egypt"] = {}, ["Qena Governorate, Egypt"] = {}, ["Beni Suef Governorate, Egypt"] = {}, ["Damietta Governorate, Egypt"] = {}, ["Aswan Governorate, Egypt"] = {}, ["Ismailia Governorate, Egypt"] = {}, ["Luxor Governorate, Egypt"] = {}, ["Suez Governorate, Egypt"] = {}, ["Port Said Governorate, Egypt"] = {}, ["Matrouh Governorate, Egypt"] = {}, ["North Sinai Governorate, Egypt"] = {}, ["Red Sea Governorate, Egypt"] = {}, ["New Valley Governorate, Egypt"] = {}, ["South Sinai Governorate, Egypt"] = {}, } -- governorates of Egypt export.egypt_group = { key_to_placename = make_key_to_placename(", Egypt$", " Governorate$"), placename_to_key = make_placename_to_key(", Egypt", " Governorate"), default_container = "Ai Cập", default_placetype = "governorate", data = export.egypt_governorates, } export.netherlands_provinces = { ["Drenthe, Netherlands"] = {}, ["Flevoland, Netherlands"] = {}, ["Friesland, Netherlands"] = {}, ["Gelderland, Netherlands"] = {}, ["Groningen, Netherlands"] = {wp = "%l (province)"}, ["Limburg, Netherlands"] = {wp = "%l (%c)"}, ["North Brabant, Netherlands"] = {}, -- Foreign forms get display-canonicalized. ["Noord-Brabant, Netherlands"] = {alias_of = "North Brabant, Netherlands", display = true}, ["North Holland, Netherlands"] = {}, ["Noord-Holland, Netherlands"] = {alias_of = "North Holland, Netherlands", display = true}, ["Overijssel, Netherlands"] = {}, ["South Holland, Netherlands"] = {}, ["Zuid-Holland, Netherlands"] = {alias_of = "South Holland, Netherlands", display = true}, ["Utrecht, Netherlands"] = {wp = "%l (province)"}, ["Zeeland, Netherlands"] = {}, } -- provinces of the Netherlands export.netherlands_group = { default_container = "Netherlands", default_placetype = "province", default_divs = "municipalities", data = export.netherlands_provinces, } export.new_zealand_regions = { -- North Island regions ["Northland, New Zealand"] = {wp = "%l Region"}, -- ISO 3166-2 code NZ-NTL, number 1, capital [[Whangārei]] ["Auckland, New Zealand"] = {wp = "%l Region"}, -- ISO 3166-2 code NZ-AUK, number 2, capital [[Auckland]] ["Waikato, New Zealand"] = {}, -- ISO 3166-2 code NZ-WKO, number 3, capital [[Hamilton, New Zealand|Hamilton]] ["Bay of Plenty, New Zealand"] = {the = true, wp = "%l Region"}, -- ISO 3166-2 code NZ-BOP, number 4, capital [[Whakatāne]] ["Gisborne, New Zealand"] = {placetype = {"region", "district"}, wp = "%l District"}, -- ISO 3166-2 code NZ-GIS, number 5, capital [[Gisborne, New Zealand|Gisborne]] ["Hawke's Bay, New Zealand"] = {}, -- ISO 3166-2 code NZ-HKB, number 6, capital [[Napier, New Zealand|Napier]] ["Taranaki, New Zealand"] = {}, -- ISO 3166-2 code NZ-TKI, number 7, capital [[Stratford, New Zealand|Stratford]] ["Manawatū-Whanganui, New Zealand"] = {}, -- ISO 3166-2 code NZ-MWT, number 8, capital [[Palmerston North]] ["Manawatu-Whanganui, New Zealand"] = {alias_of = "Manawatū-Whanganui, New Zealand", display = true}, ["Manawatu-Wanganui, New Zealand"] = {alias_of = "Manawatū-Whanganui, New Zealand", display = true}, ["Wellington, New Zealand"] = {wp = "%l Region"}, -- ISO 3166-2 code NZ-WGN, number 9, capital [[Wellington]] -- South Island regions ["Tasman, New Zealand"] = {placetype = {"region", "district"}, wp = "%l District"}, -- ISO 3166-2 code NZ-TAS, number 10, capital [[Richmond, New Zealand|Richmond]] ["Nelson, New Zealand"] = {placetype = {"region", "thành phố"}, wp = "%l, %c", is_city = true}, -- ISO 3166-2 code NZ-NSN, number 11, capital [[Nelson, New Zealand|Nelson]] ["Marlborough, New Zealand"] = {placetype = {"region", "district"}, wp = "%l District"}, -- ISO 3166-2 code NZ-MBH, number 12, capital [[Blenheim, New Zealand|Blenheim]] ["West Coast, New Zealand"] = {the = true, wp = "%l Region"}, -- ISO 3166-2 code NZ-WTC, number 13, capital [[Greymouth]] ["Canterbury, New Zealand"] = {wp = "%l Region"}, -- ISO 3166-2 code NZ-CAN, number 14, capital [[Christchurch]] ["Otago, New Zealand"] = {}, -- ISO 3166-2 code NZ-OTA, number 15, capital [[Dunedin]] ["Southland, New Zealand"] = {wp = "%l Region"}, -- ISO 3166-2 code NZ-STL, number 16, capital [[Invercargill]] } -- regions of New Zealand export.new_zealand_group = { default_container = "New Zealand", default_placetype = "region", data = export.new_zealand_regions, } export.nigeria_states = { ["Abia State, Nigeria"] = {}, ["Adamawa State, Nigeria"] = {}, ["Akwa Ibom State, Nigeria"] = {}, ["Anambra State, Nigeria"] = {}, ["Bauchi State, Nigeria"] = {}, ["Bayelsa State, Nigeria"] = {}, ["Benue State, Nigeria"] = {}, ["Borno State, Nigeria"] = {}, ["Cross River State, Nigeria"] = {}, ["Delta State, Nigeria"] = {}, ["Ebonyi State, Nigeria"] = {}, ["Edo State, Nigeria"] = {}, ["Ekiti State, Nigeria"] = {}, ["Enugu State, Nigeria"] = {}, ["Federal Capital Territory, Nigeria"] = { -- not a state but allow it to be referenced as one in holonyms placetype = {"federal territory", "territory", "state"}, the = true, wp = "%l (%c)", }, ["Gombe State, Nigeria"] = {}, ["Imo State, Nigeria"] = {}, ["Jigawa State, Nigeria"] = {}, ["Kaduna State, Nigeria"] = {}, ["Kano State, Nigeria"] = {}, ["Katsina State, Nigeria"] = {}, ["Kebbi State, Nigeria"] = {}, ["Kogi State, Nigeria"] = {}, ["Kwara State, Nigeria"] = {}, ["Lagos State, Nigeria"] = {}, ["Nasarawa State, Nigeria"] = {}, ["Niger State, Nigeria"] = {}, ["Ogun State, Nigeria"] = {}, ["Ondo State, Nigeria"] = {}, ["Osun State, Nigeria"] = {}, ["Oyo State, Nigeria"] = {}, ["Plateau State, Nigeria"] = {}, ["Rivers State, Nigeria"] = {}, ["Sokoto State, Nigeria"] = {}, ["Taraba State, Nigeria"] = {}, ["Yobe State, Nigeria"] = {}, ["Zamfara State, Nigeria"] = {}, } -- states of Nigeria export.nigeria_group = { key_to_placename = make_key_to_placename(", Nigeria$", " State$"), placename_to_key = make_placename_to_key(", Nigeria", " State"), default_container = "Nigeria", default_placetype = "state", data = export.nigeria_states, } export.north_korea_provinces = { ["Chagang Province, North Korea"] = {}, ["North Hamgyong Province, North Korea"] = {}, ["South Hamgyong Province, North Korea"] = {}, ["North Hwanghae Province, North Korea"] = {}, ["South Hwanghae Province, North Korea"] = {}, ["Kangwon Province, North Korea"] = {wp = "%l (%c)"}, ["North Pyongan Province, North Korea"] = {}, ["South Pyongan Province, North Korea"] = {}, ["Ryanggang Province, North Korea"] = {}, } -- provinces of North Korea export.north_korea_group = { key_to_placename = make_key_to_placename(", North Korea$", " Province$"), placename_to_key = make_placename_to_key(", North Korea", " Province"), default_container = "Cộng hòa Dân chủ Nhân dân Triều Tiên", default_placetype = "province", data = export.north_korea_provinces, } export.norwegian_counties = { ["Oslo, Norway"] = {}, ["Rogaland, Norway"] = {}, ["Møre og Romsdal, Norway"] = {}, ["Nordland, Norway"] = {}, ["Østfold, Norway"] = {}, ["Akershus, Norway"] = {}, ["Buskerud, Norway"] = {}, -- the following two were merged into Innlandet -- ["Hedmark, Norway"] = {}, -- ["Oppland, Norway"] = {}, ["Innlandet, Norway"] = {}, ["Vestfold, Norway"] = {}, ["Telemark, Norway"] = {}, -- the following two were merged into Agder -- ["Aust-Agder, Norway"] = {}, -- ["Vest-Agder, Norway"] = {}, ["Agder, Norway"] = {}, -- the following two were merged into Vestland -- ["Hordaland, Norway"] = {}, -- ["Sogn og Fjordane, Norway"] = {}, ["Vestland, Norway"] = {}, ["Trøndelag, Norway"] = {}, ["Troms, Norway"] = {}, ["Finnmark, Norway"] = {}, } -- counties of Norway export.norway_group = { default_container = "Na Uy", default_placetype = "county", data = export.norwegian_counties, } export.pakistan_provinces_and_territories = { ["Azad Kashmir, Pakistan"] = { placetype = {"administrative territory", "autonomous territory", "territory"}, }, ["Azad Jammu and Kashmir, Pakistan"] = {alias_of = "Azad Kashmir, Pakistan", display = true}, ["Balochistan, Pakistan"] = {wp = "%l, %c"}, ["Gilgit-Baltistan, Pakistan"] = { placetype = {"administrative territory", "territory"}, }, ["Islamabad Capital Territory, Pakistan"] = { the = true, divs = {}, -- no divisions placetype = {"federal territory", "administrative territory", "territory"}, }, -- Islamabad is an accepted alias for Islamabad Capital Territory given the above placetypes ["Islamabad, Pakistan"] = {alias_of = "Islamabad Capital Territory, Pakistan"}, ["Khyber Pakhtunkhwa, Pakistan"] = {}, ["Punjab, Pakistan"] = {wp = "%l, %c"}, ["Sindh, Pakistan"] = {}, } -- provinces and territories of Pakistan export.pakistan_group = { default_container = "Pakistan", default_placetype = "province", default_divs = "divisions", data = export.pakistan_provinces_and_territories, } export.philippines_provinces = { ["Abra, Philippines"] = {wp = "%l (province)"}, ["Agusan del Norte, Philippines"] = {}, ["Agusan del Sur, Philippines"] = {}, ["Aklan, Philippines"] = {}, ["Albay, Philippines"] = {}, ["Antique, Philippines"] = {wp = "%l (province)"}, ["Apayao, Philippines"] = {}, ["Aurora, Philippines"] = {wp = "%l (province)"}, ["Basilan, Philippines"] = {}, ["Bataan, Philippines"] = {}, ["Batanes, Philippines"] = {}, ["Batangas, Philippines"] = {}, ["Benguet, Philippines"] = {}, ["Biliran, Philippines"] = {}, ["Bohol, Philippines"] = {}, ["Bukidnon, Philippines"] = {}, ["Bulacan, Philippines"] = {}, ["Cagayan, Philippines"] = {}, ["Camarines Norte, Philippines"] = {}, ["Camarines Sur, Philippines"] = {}, ["Camiguin, Philippines"] = {}, ["Capiz, Philippines"] = {}, ["Catanduanes, Philippines"] = {}, ["Cavite, Philippines"] = {}, ["Cebu, Philippines"] = {}, ["Cotabato, Philippines"] = {}, ["Davao de Oro, Philippines"] = {}, ["Davao del Norte, Philippines"] = {}, ["Davao del Sur, Philippines"] = {}, ["Davao Occidental, Philippines"] = {}, ["Davao Oriental, Philippines"] = {}, ["Dinagat Islands, Philippines"] = {the = true}, ["Eastern Samar, Philippines"] = {}, ["Guimaras, Philippines"] = {}, ["Ifugao, Philippines"] = {}, ["Ilocos Norte, Philippines"] = {}, ["Ilocos Sur, Philippines"] = {}, ["Iloilo, Philippines"] = {}, ["Isabela, Philippines"] = {wp = "%l (province)"}, ["Kalinga, Philippines"] = {wp = "%l (province)"}, ["La Union, Philippines"] = {}, ["Laguna, Philippines"] = {wp = "%l (province)"}, ["Lanao del Norte, Philippines"] = {}, ["Lanao del Sur, Philippines"] = {}, ["Leyte, Philippines"] = {wp = "%l (province)"}, ["Maguindanao del Norte, Philippines"] = {}, ["Maguindanao del Sur, Philippines"] = {}, ["Marinduque, Philippines"] = {}, ["Masbate, Philippines"] = {}, ["Misamis Occidental, Philippines"] = {}, ["Misamis Oriental, Philippines"] = {}, ["Mountain Province, Philippines"] = {}, ["Negros Occidental, Philippines"] = {}, ["Negros Oriental, Philippines"] = {}, ["Northern Samar, Philippines"] = {}, ["Nueva Ecija, Philippines"] = {}, ["Nueva Vizcaya, Philippines"] = {}, ["Occidental Mindoro, Philippines"] = {}, ["Oriental Mindoro, Philippines"] = {}, ["Palawan, Philippines"] = {}, ["Pampanga, Philippines"] = {}, ["Pangasinan, Philippines"] = {}, ["Quezon, Philippines"] = {}, ["Quirino, Philippines"] = {}, ["Rizal, Philippines"] = {wp = "%l (province)"}, ["Romblon, Philippines"] = {}, ["Samar, Philippines"] = {wp = "%l (province)"}, ["Sarangani, Philippines"] = {}, ["Siquijor, Philippines"] = {}, ["Sorsogon, Philippines"] = {}, ["South Cotabato, Philippines"] = {}, ["Southern Leyte, Philippines"] = {}, ["Sultan Kudarat, Philippines"] = {}, ["Sulu, Philippines"] = {}, ["Surigao del Norte, Philippines"] = {}, ["Surigao del Sur, Philippines"] = {}, ["Tarlac, Philippines"] = {}, ["Tawi-Tawi, Philippines"] = {}, ["Zambales, Philippines"] = {}, ["Zamboanga del Norte, Philippines"] = {}, ["Zamboanga del Sur, Philippines"] = {}, ["Zamboanga Sibugay, Philippines"] = {}, -- not a province but treated as one; allow it to be referred to as a province in holonyms ["Metro Manila, Philippines"] = {placetype = {"region", "province"}}, } -- provinces of the Philippines export.philippines_group = { default_container = "Philippines", default_placetype = "province", default_divs = {"municipalities", "barangays"}, data = export.philippines_provinces, } export.poland_voivodeships = { ["Lower Silesian Voivodeship, Poland"] = {}, -- abbr DS, code 02, capital Wrocław ["Kuyavian-Pomeranian Voivodeship, Poland"] = {}, -- abbr KP, code 04, capital Bydgoszcz (seat of voivode), Toruń (seat of sejmik and marshal) ["Lublin Voivodeship, Poland"] = {}, -- abbr LU, code 06, capital Lublin ["Lubusz Voivodeship, Poland"] = {}, -- abbr LB, code 08, capital Gorzów Wielkopolski (seat of voivode), Zielona Góra (seat of sejmik and marshal) ["Lodz Voivodeship, Poland"] = {wp = "Łódź Voivodeship"}, -- abbr LD, code 10, capital Łódź ["Łódź Voivodeship, Poland"] = {alias_of = "Lodz Voivodeship, Poland", display = true, display_as_full = true}, ["Lesser Poland Voivodeship, Poland"] = {}, -- abbr MA, code 12, capital Kraków ["Masovian Voivodeship, Poland"] = {}, -- abbr MZ, code 14, capital Warsaw ["Opole Voivodeship, Poland"] = {}, -- abbr OP, code 16, capital Opole ["Subcarpathian Voivodeship, Poland"] = {}, -- abbr PK, code 18, capital Rzeszów ["Podlaskie Voivodeship, Poland"] = {}, -- abbr PD, code 20, capital Białystok ["Pomeranian Voivodeship, Poland"] = {}, -- abbr PM, code 22, capital Gdańsk ["Silesian Voivodeship, Poland"] = {}, -- abbr SL, code 24, capital Katowice ["Holy Cross Voivodeship, Poland"] = {wp = "Świętokrzyskie Voivodeship"}, -- abbr SK, code 26, capital Kielce ["Świętokrzyskie Voivodeship, Poland"] = {alias_of = "Holy Cross Voivodeship, Poland", display = true, display_as_full = true}, ["Warmian-Masurian Voivodeship, Poland"] = {}, -- abbr WN, code 28, capital Olsztyn ["Greater Poland Voivodeship, Poland"] = {}, -- abbr WP, code 30, capital Poznań ["West Pomeranian Voivodeship, Poland"] = {}, -- abbr ZP, code 32, capital Szczecin } -- voivodeships of Poland export.poland_group = { key_to_placename = make_key_to_placename(", Poland$", " Voivodeship$"), placename_to_key = make_placename_to_key(", Poland", " Voivodeship"), default_container = "Ba Lan", default_placetype = "voivodeship", default_divs = { -- "counties", -- not enough of them currently {type = "Polish colonies", cat_as = {{type = "villages", prep = "in"}}}, }, data = export.poland_voivodeships, } export.portugal_districts_and_autonomous_regions = { ["Azores, Portugal"] = {the = true, placetype = {"autonomous region", "region"}}, ["Aveiro District, Portugal"] = {}, ["Beja District, Portugal"] = {}, ["Braga District, Portugal"] = {}, ["Bragança District, Portugal"] = {}, ["Castelo Branco District, Portugal"] = {}, ["Coimbra District, Portugal"] = {}, ["Évora District, Portugal"] = {}, ["Faro District, Portugal"] = {}, ["Guarda District, Portugal"] = {}, ["Leiria District, Portugal"] = {}, ["Lisbon District, Portugal"] = {}, ["Lisboa District, Portugal"] = {alias_of = "Lisbon District, Portugal", display = true}, ["Madeira, Portugal"] = {placetype = {"autonomous region", "region"}}, ["Portalegre District, Portugal"] = {}, ["Porto District, Portugal"] = {}, ["Santarém District, Portugal"] = {}, ["Setúbal District, Portugal"] = {}, ["Viana do Castelo District, Portugal"] = {}, ["Vila Real District, Portugal"] = {}, ["Viseu District, Portugal"] = {}, } local function portugal_placename_to_key(placename) if placename == "Azores" or placename == "Madeira" then return placename .. ", Portugal" end if placename:find(" District$") then return placename .. ", Portugal" end return placename .. " District, Portugal" end -- districts and autonomous regions of Portugal export.portugal_group = { key_to_placename = make_key_to_placename(", Portugal$", " District$"), placename_to_key = portugal_placename_to_key, default_container = "Portugal", default_placetype = "district", default_divs = "municipalities", data = export.portugal_districts_and_autonomous_regions, } export.romania_counties = { ["Alba County, Romania"] = {}, ["Arad County, Romania"] = {}, ["Argeș County, Romania"] = {}, ["Bacău County, Romania"] = {}, ["Bihor County, Romania"] = {}, ["Bistrița-Năsăud County, Romania"] = {}, ["Botoșani County, Romania"] = {}, ["Brașov County, Romania"] = {}, ["Brăila County, Romania"] = {}, -- Bucharest: not in a county ["Buzău County, Romania"] = {}, ["Caraș-Severin County, Romania"] = {}, ["Cluj County, Romania"] = {}, ["Constanța County, Romania"] = {}, ["Covasna County, Romania"] = {}, ["Călărași County, Romania"] = {}, ["Dolj County, Romania"] = {}, ["Dâmbovița County, Romania"] = {}, ["Galați County, Romania"] = {}, ["Giurgiu County, Romania"] = {}, ["Gorj County, Romania"] = {}, ["Harghita County, Romania"] = {}, ["Hunedoara County, Romania"] = {}, ["Ialomița County, Romania"] = {}, ["Iași County, Romania"] = {}, ["Ilfov County, Romania"] = {}, ["Maramureș County, Romania"] = {}, ["Mehedinți County, Romania"] = {}, ["Mureș County, Romania"] = {}, ["Neamț County, Romania"] = {}, ["Olt County, Romania"] = {}, ["Prahova County, Romania"] = {}, ["Satu Mare County, Romania"] = {}, ["Sibiu County, Romania"] = {}, ["Suceava County, Romania"] = {}, ["Sălaj County, Romania"] = {}, ["Teleorman County, Romania"] = {}, ["Timiș County, Romania"] = {}, ["Tulcea County, Romania"] = {}, ["Vaslui County, Romania"] = {}, ["Vrancea County, Romania"] = {}, ["Vâlcea County, Romania"] = {}, } -- counties of Romania export.romania_group = { key_to_placename = make_key_to_placename(", Romania$", " County$"), placename_to_key = make_placename_to_key(", Romania", " County"), default_container = "Romania", default_placetype = "county", default_divs = "communes", data = export.romania_counties, } local function make_russia_federal_subject_spec(spectype, use_the, wp) return { placetype = spectype, the = not not use_the, bare_category_parent_type = {"federal subjects", spectype .. "s"}, wp = wp, } end local russia_autonomous_okrug_no_the = {placetype = {"autonomous okrug", "okrug"}, bare_category_parent_type = {"federal subjects", "autonomous okrugs"}} local russia_autonomous_okrug_the = {placetype = {"autonomous okrug", "okrug"}, bare_category_parent_type = {"federal subjects", "autonomous okrugs"}, the = true} local russia_krai = make_russia_federal_subject_spec("krai") local russia_oblast = make_russia_federal_subject_spec("oblast") local russia_republic_the = make_russia_federal_subject_spec("republic", "use the") local russia_republic_no_the = make_russia_federal_subject_spec("republic") export.russia_federal_subjects = { -- autonomous oblasts ["Jewish Autonomous Oblast, Russia"] = {the = true, placetype = {"autonomous oblast", "oblast"}, bare_category_parent_type = {"federal subjects", "autonomous oblasts"}}, -- autonomous okrugs ["Chukotka Autonomous Okrug, Russia"] = russia_autonomous_okrug_the, ["Chukotka, Russia"] = {alias_of = "Chukotka Autonomous Okrug, Russia"}, ["Khanty-Mansi Autonomous Okrug, Russia"] = russia_autonomous_okrug_the, ["Khanty-Mansia, Russia"] = {alias_of = "Khanty-Mansi Autonomous Okrug, Russia"}, ["Khantia-Mansia, Russia"] = {alias_of = "Khanty-Mansi Autonomous Okrug, Russia"}, ["Yugra, Russia"] = {alias_of = "Khanty-Mansi Autonomous Okrug, Russia"}, ["Nenets Autonomous Okrug, Russia"] = russia_autonomous_okrug_the, ["Nenetsia, Russia"] = {alias_of = "Nenets Autonomous Okrug, Russia"}, ["Yamalo-Nenets Autonomous Okrug, Russia"] = russia_autonomous_okrug_the, ["Yamalia, Russia"] = {alias_of = "Yamalo-Nenets Autonomous Okrug, Russia"}, -- krais ["Altai Krai, Russia"] = russia_krai, ["Kamchatka Krai, Russia"] = russia_krai, ["Khabarovsk Krai, Russia"] = russia_krai, ["Krasnodar Krai, Russia"] = russia_krai, ["Krasnoyarsk Krai, Russia"] = russia_krai, ["Perm Krai, Russia"] = russia_krai, ["Primorsky Krai, Russia"] = russia_krai, ["Stavropol Krai, Russia"] = russia_krai, ["Zabaykalsky Krai, Russia"] = russia_krai, -- oblasts ["Amur Oblast, Russia"] = russia_oblast, ["Arkhangelsk Oblast, Russia"] = russia_oblast, ["Astrakhan Oblast, Russia"] = russia_oblast, ["Belgorod Oblast, Russia"] = russia_oblast, ["Bryansk Oblast, Russia"] = russia_oblast, ["Chelyabinsk Oblast, Russia"] = russia_oblast, ["Irkutsk Oblast, Russia"] = russia_oblast, ["Ivanovo Oblast, Russia"] = russia_oblast, ["Kaliningrad Oblast, Russia"] = russia_oblast, ["Kaluga Oblast, Russia"] = russia_oblast, ["Kemerovo Oblast, Russia"] = russia_oblast, ["Kirov Oblast, Russia"] = russia_oblast, ["Kostroma Oblast, Russia"] = russia_oblast, ["Kurgan Oblast, Russia"] = russia_oblast, ["Kursk Oblast, Russia"] = russia_oblast, ["Leningrad Oblast, Russia"] = russia_oblast, ["Lipetsk Oblast, Russia"] = russia_oblast, ["Magadan Oblast, Russia"] = russia_oblast, ["Moscow Oblast, Russia"] = russia_oblast, ["Murmansk Oblast, Russia"] = russia_oblast, ["Nizhny Novgorod Oblast, Russia"] = russia_oblast, ["Novgorod Oblast, Russia"] = russia_oblast, ["Novosibirsk Oblast, Russia"] = russia_oblast, ["Omsk Oblast, Russia"] = russia_oblast, ["Orenburg Oblast, Russia"] = russia_oblast, ["Oryol Oblast, Russia"] = russia_oblast, ["Penza Oblast, Russia"] = russia_oblast, ["Pskov Oblast, Russia"] = russia_oblast, ["Rostov Oblast, Russia"] = russia_oblast, ["Ryazan Oblast, Russia"] = russia_oblast, ["Sakhalin Oblast, Russia"] = russia_oblast, ["Samara Oblast, Russia"] = russia_oblast, ["Saratov Oblast, Russia"] = russia_oblast, ["Smolensk Oblast, Russia"] = russia_oblast, ["Sverdlovsk Oblast, Russia"] = russia_oblast, ["Tambov Oblast, Russia"] = russia_oblast, ["Tomsk Oblast, Russia"] = russia_oblast, ["Tula Oblast, Russia"] = russia_oblast, ["Tver Oblast, Russia"] = russia_oblast, ["Tyumen Oblast, Russia"] = russia_oblast, ["Ulyanovsk Oblast, Russia"] = russia_oblast, ["Vladimir Oblast, Russia"] = russia_oblast, ["Volgograd Oblast, Russia"] = russia_oblast, ["Vologda Oblast, Russia"] = russia_oblast, ["Voronezh Oblast, Russia"] = russia_oblast, ["Yaroslavl Oblast, Russia"] = russia_oblast, -- republics -- -- We only need to include cases that aren't just shortened versions of the full federal subject name (i.e. where -- words like "Republic" and "Oblast" are omitted but the name is not otherwise modified; these are handled by -- key_to_placename). Non-display-canonicalizing aliases are generally due to differences in the presence or absence -- of "the". ["Adygea, Russia"] = russia_republic_no_the, ["Republic of Adygea, Russia"] = {alias_of = "Adygea, Russia"}, ["Bashkortostan, Russia"] = russia_republic_no_the, ["Republic of Bashkortostan, Russia"] = {alias_of = "Bashkortostan, Russia"}, ["Bashkiria, Russia"] = {alias_of = "Bashkortostan, Russia"}, ["Buryatia, Russia"] = russia_republic_no_the, ["Republic of Buryatia, Russia"] = {alias_of = "Buryatia, Russia"}, ["Dagestan, Russia"] = russia_republic_no_the, ["Republic of Dagestan, Russia"] = {alias_of = "Dagestan, Russia"}, ["Ingushetia, Russia"] = russia_republic_no_the, ["Republic of Ingushetia, Russia"] = {alias_of = "Ingushetia, Russia"}, ["Kalmykia, Russia"] = russia_republic_no_the, ["Republic of Kalmykia, Russia"] = {alias_of = "Kalmykia, Russia"}, ["Karelia, Russia"] = make_russia_federal_subject_spec("republic", nil, "Republic of Karelia"), ["Republic of Karelia, Russia"] = {alias_of = "Karelia, Russia"}, ["Khakassia, Russia"] = russia_republic_no_the, ["Republic of Khakassia, Russia"] = {alias_of = "Khakassia, Russia"}, ["Mordovia, Russia"] = russia_republic_no_the, ["Republic of Mordovia, Russia"] = {alias_of = "Mordovia, Russia"}, ["North Ossetia-Alania, Russia"] = make_russia_federal_subject_spec("republic", nil, "North Ossetia–Alania"), -- with en-dash ["Republic of North Ossetia-Alania, Russia"] = {alias_of = "North Ossetia-Alania, Russia"}, ["North Ossetia, Russia"] = {alias_of = "North Ossetia-Alania, Russia", display = true}, ["Alania, Russia"] = {alias_of = "North Ossetia-Alania, Russia", display = true}, ["Tatarstan, Russia"] = russia_republic_no_the, ["Republic of Tatarstan, Russia"] = {alias_of = "Tatarstan, Russia"}, ["Altai Republic, Russia"] = russia_republic_the, ["Chechnya, Russia"] = russia_republic_no_the, ["Chechen Republic, Russia"] = {alias_of = "Chechnya, Russia"}, ["Chuvashia, Russia"] = russia_republic_no_the, ["Chuvash Republic, Russia"] = {alias_of = "Chuvashia, Russia"}, ["Kabardino-Balkaria, Russia"] = russia_republic_no_the, ["Kabardino-Balkariya, Russia"] = {alias_of = "Kabardino-Balkaria, Russia", display = true}, ["Kabardino-Balkarian Republic, Russia"] = {alias_of = "Kabardino-Balkaria, Russia"}, ["Kabardino-Balkar Republic, Russia"] = {alias_of = "Kabardino-Balkaria, Russia", display = "Kabardino-Balkarian Republic, Russia"}, ["Karachay-Cherkessia, Russia"] = russia_republic_no_the, ["Karachay-Cherkess Republic, Russia"] = {alias_of = "Karachay-Cherkessia, Russia"}, ["Komi, Russia"] = make_russia_federal_subject_spec("republic", nil, "Komi Republic"), ["Komi Republic, Russia"] = {alias_of = "Komi, Russia"}, ["Mari El, Russia"] = russia_republic_no_the, ["Mari El Republic, Russia"] = {alias_of = "Mari El, Russia"}, ["Sakha, Russia"] = make_russia_federal_subject_spec("republic", nil, "Sakha Republic"), ["Sakha Republic, Russia"] = {alias_of = "Sakha, Russia"}, ["Yakutia, Russia"] = {alias_of = "Sakha, Russia"}, ["Yakutiya, Russia"] = {alias_of = "Sakha, Russia", display = "Yakutia, Russia"}, ["Republic of Yakutia (Sakha), Russia"] = {alias_of = "Sakha, Russia", display = "Sakha Republic, Russia", the = true}, ["Tuva, Russia"] = russia_republic_no_the, ["Tyva, Russia"] = {alias_of = "Tuva, Russia", display = true}, ["Tuva Republic, Russia"] = {alias_of = "Tuva, Russia"}, ["Tyva Republic, Russia"] = {alias_of = "Tuva, Russia", display= "Tuva Republic, Russia"}, ["Udmurtia, Russia"] = russia_republic_no_the, ["Udmurt Republic, Russia"] = {alias_of = "Udmurtia, Russia"}, -- Not included due to being unrecognized and only partly controlled: -- ["Crimea, Russia"] = make_russia_federal_subject_spec("republic", nil, "Republic of Crimea (Russia)") -- ["Donetsk People's Republic, Russia"] = russia_republic_the, -- ["Luhansk People's Republic, Russia"] = russia_republic_the, -- ["Zaporozhye Oblast, Russia"] = make_russia_federal_subject_spec("oblast", nil, "Russian occupation of Zaporizhzhia Oblast"), -- ["Kherson Oblast, Russia"] = make_russia_federal_subject_spec("oblast", nil, "Russian occupation of Kherson Oblast"), -- There are also federal cities (not included because they're cities): -- Moscow, Saint Petersburg; Sevastopol (unrecognized; same status as for "Crimea, Russia" above) } local function russia_key_to_placename(key) key = key:gsub(",.*", "") local full_placename = key if key == "Jewish Autonomous Oblast" then return full_placename, full_placename end local elliptical_placename for _, suffix in ipairs({"Krai", "Oblast"}) do elliptical_placename = key:match("^(.*) " .. suffix .. "$") if elliptical_placename then return full_placename, elliptical_placename end end return full_placename, full_placename end local function russia_placename_to_key(placename) local key = placename .. ", Russia" if export.russia_federal_subjects[key] then return key end -- We allow the user to say e.g. "obl/Samara" in place of "obl/Samara Oblast". for _, suffix in ipairs({"Krai", "Oblast"}) do local suffixed_key = placename .. " " .. suffix .. ", Russia" if export.russia_federal_subjects[suffixed_key] then return suffixed_key end end return placename .. ", Russia" end local function construct_russia_federal_subject_keydesc(group, key, spec) local placename = key:gsub(",.*", "") local linked_placename = export.construct_linked_placename(spec, placename) local placetype = spec.placetype if type(placetype) == "table" then placetype = placetype[1] end if placetype == "oblast" then -- Hack: Oblasts generally don't have entries under "Foo Oblast" -- but just under "Foo", so fix the linked key appropriately; -- doesn't apply to the Jewish Autonomous Oblast linked_placename = linked_placename:gsub(" Oblast%]%]", "%]%] Oblast") end return linked_placename .. ", a [[federal subject]] ([[" .. placetype .. "]]) of [[Russia]]" end -- federal subjects of Russia export.russia_group = { key_to_placename = russia_key_to_placename, placename_to_key = russia_placename_to_key, default_container = "Nga", default_keydesc = construct_russia_federal_subject_keydesc, default_overriding_bare_label_parents = {"federal subjects of Russia", "+++"}, data = export.russia_federal_subjects, } export.saudi_arabia_provinces = { ["Riyadh Province, Saudi Arabia"] = {}, ["Mecca Province, Saudi Arabia"] = {}, -- Name is too generic to assume it's in Saudi Arabia if not specified. ["Eastern Province, Saudi Arabia"] = {no_auto_augment_container = true, wp = "%l, %c"}, ["Medina Province, Saudi Arabia"] = {wp = "%l (%c)"}, ["Aseer Province, Saudi Arabia"] = {wp = "Asir"}, ["Asir Province, Saudi Arabia"] = {alias_of = "Aseer Province, Saudi Arabia", display = true}, ["Jazan Province, Saudi Arabia"] = {}, ["Qassim Province, Saudi Arabia"] = {wp = "Al-Qassim Province"}, ["Al-Qassim Province, Saudi Arabia"] = {alias_of = "Qassim Province, Saudi Arabia", display = true}, ["Tabuk Province, Saudi Arabia"] = {}, ["Hail Province, Saudi Arabia"] = {wp = "Ḥa'il Province"}, ["Ha'il Province, Saudi Arabia"] = {alias_of = "Hail Province, Saudi Arabia", display = true}, ["Ḥa'il Province, Saudi Arabia"] = {alias_of = "Hail Province, Saudi Arabia", display = true}, ["Al-Jouf Province, Saudi Arabia"] = {wp = "Al-Jawf Province"}, ["Al-Jawf Province, Saudi Arabia"] = {alias_of = "Al-Jouf Province, Saudi Arabia", display = true}, ["Najran Province, Saudi Arabia"] = {}, ["Northern Borders Province, Saudi Arabia"] = {}, ["Al-Bahah Province, Saudi Arabia"] = {}, } -- provinces of Saudi Arabia export.saudi_arabia_group = { key_to_placename = make_key_to_placename(", Saudi Arabia$", " Province$"), placename_to_key = make_placename_to_key(", Saudi Arabia", " Province"), default_container = "Ả Rập Xê Út", default_placetype = "province", data = export.saudi_arabia_provinces, } export.south_africa_provinces = { ["Eastern Cape, South Africa"] = {the = true}, ["Free State, South Africa"] = {the = true, wp = "%l (province)"}, ["Gauteng, South Africa"] = {}, ["KwaZulu-Natal, South Africa"] = {}, ["Limpopo, South Africa"] = {}, ["Mpumalanga, South Africa"] = {}, -- per Wikipedia and other sources, `North West` doesn't normally have `the` before it ["North West, South Africa"] = {wp = "%l (South African province)"}, ["Northern Cape, South Africa"] = {the = true}, ["Western Cape, South Africa"] = {the = true}, } -- provinces of South Africa export.south_africa_group = { default_container = "South Africa", default_placetype = "province", default_divs = "municipalities", data = export.south_africa_provinces, } export.south_korea_provinces = { ["North Chungcheong Province, South Korea"] = {}, ["South Chungcheong Province, South Korea"] = {}, ["Gangwon Province, South Korea"] = {wp = "%l, %c"}, ["Gyeonggi Province, South Korea"] = {}, ["North Gyeongsang Province, South Korea"] = {}, ["South Gyeongsang Province, South Korea"] = {}, ["North Jeolla Province, South Korea"] = {}, ["South Jeolla Province, South Korea"] = {}, ["Jeju Province, South Korea"] = {}, } -- provinces of South Korea export.south_korea_group = { key_to_placename = make_key_to_placename(", South Korea$", " Province$"), placename_to_key = make_placename_to_key(", South Korea", " Province"), default_container = "Hàn Quốc", default_placetype = "province", data = export.south_korea_provinces, } export.spain_autonomous_communities = { ["Andalusia, Spain"] = {}, ["Aragon, Spain"] = {}, ["Asturias, Spain"] = {}, ["Balearic Islands, Spain"] = {the = true}, ["Basque Country, Spain"] = {the = true, wp = "%l (autonomous community)"}, ["Canary Islands, Spain"] = {the = true}, ["Cantabria, Spain"] = {}, ["Castile and León, Spain"] = {}, ["Castilla-La Mancha, Spain"] = {wp = "Castilla–La Mancha"}, -- with en-dash ["Catalonia, Spain"] = {}, ["Community of Madrid, Spain"] = {the = true}, ["Extremadura, Spain"] = {}, ["Galicia, Spain"] = {wp = "%l (Spain)"}, ["La Rioja, Spain"] = {}, ["Murcia, Spain"] = {wp = "Region of %l"}, ["Navarre, Spain"] = {}, ["Valencia, Spain"] = {wp = "Valencian Community"}, ["Valencian Community, Spain"] = {alias_of = "Valencia, Spain"}, } -- autonomous communities of Spain export.spain_group = { default_container = "Tây Ban Nha", default_placetype = "autonomous community", default_divs = {"municipalities", "comarcas"}, data = export.spain_autonomous_communities, } export.taiwan_counties = { ["Changhua County, Taiwan"] = {}, ["Chiayi County, Taiwan"] = {}, ["Hsinchu County, Taiwan"] = {}, ["Hualien County, Taiwan"] = {}, ["Kinmen County, Taiwan"] = {wp = "Kinmen"}, ["Lienchiang County, Taiwan"] = {wp = "Matsu Islands"}, ["Miaoli County, Taiwan"] = {}, ["Nantou County, Taiwan"] = {}, ["Penghu County, Taiwan"] = {wp = "Penghu"}, ["Pingtung County, Taiwan"] = {}, ["Taitung County, Taiwan"] = {}, ["Yilan County, Taiwan"] = {wp = "%l, %c"}, ["Yunlin County, Taiwan"] = {}, } -- counties of Taiwan export.taiwan_group = { key_to_placename = make_key_to_placename(", Taiwan$", " County$"), placename_to_key = make_placename_to_key(", Taiwan", " County"), default_container = "Đài Loan", default_placetype = "county", default_divs = {"districts", "townships"}, data = export.taiwan_counties, } export.thailand_provinces = { -- Bangkok (special administrative area) ["Amnat Charoen Province, Thailand"] = {}, ["Ang Thong Province, Thailand"] = {}, ["Bueng Kan Province, Thailand"] = {}, ["Buriram Province, Thailand"] = {}, ["Chachoengsao Province, Thailand"] = {}, ["Chai Nat Province, Thailand"] = {}, ["Chaiyaphum Province, Thailand"] = {}, ["Chanthaburi Province, Thailand"] = {}, ["Chiang Mai Province, Thailand"] = {}, ["Chiang Rai Province, Thailand"] = {}, ["Chonburi Province, Thailand"] = {}, ["Chumphon Province, Thailand"] = {}, ["Kalasin Province, Thailand"] = {}, ["Kamphaeng Phet Province, Thailand"] = {}, ["Kanchanaburi Province, Thailand"] = {}, ["Khon Kaen Province, Thailand"] = {}, ["Krabi Province, Thailand"] = {}, ["Lampang Province, Thailand"] = {}, ["Lamphun Province, Thailand"] = {}, ["Loei Province, Thailand"] = {}, ["Lopburi Province, Thailand"] = {}, ["Mae Hong Son Province, Thailand"] = {}, ["Maha Sarakham Province, Thailand"] = {}, ["Mukdahan Province, Thailand"] = {}, ["Nakhon Nayok Province, Thailand"] = {}, ["Nakhon Pathom Province, Thailand"] = {}, ["Nakhon Phanom Province, Thailand"] = {}, ["Nakhon Ratchasima Province, Thailand"] = {}, ["Nakhon Sawon Province, Thailand"] = {}, ["Nakhon Si Thammarat Province, Thailand"] = {}, ["Nan Province, Thailand"] = {}, ["Narathiwat Province, Thailand"] = {}, ["Nong Bua Lamphu Province, Thailand"] = {}, ["Nong Khai Province, Thailand"] = {}, ["Nonthaburi Province, Thailand"] = {}, ["Pathum Thani Province, Thailand"] = {}, ["Pattani Province, Thailand"] = {}, ["Phang Nga Province, Thailand"] = {}, ["Phatthalung Province, Thailand"] = {}, ["Phayao Province, Thailand"] = {}, ["Phetchabun Province, Thailand"] = {}, ["Phetchaburi Province, Thailand"] = {}, ["Phichit Province, Thailand"] = {}, ["Phitsanulok Province, Thailand"] = {}, ["Phra Nakhon Si Ayutthaya Province, Thailand"] = {}, ["Phrae Province, Thailand"] = {}, ["Phuket Province, Thailand"] = {}, ["Prachinburi Province, Thailand"] = {}, ["Prachuap Khiri Khan Province, Thailand"] = {}, ["Ranong Province, Thailand"] = {}, ["Ratchaburi Province, Thailand"] = {}, ["Rayong Province, Thailand"] = {}, ["Roi Et Province, Thailand"] = {}, ["Sa Kaeo Province, Thailand"] = {}, ["Sakon Nakhon Province, Thailand"] = {}, ["Samut Prakan Province, Thailand"] = {}, ["Samut Sakhon Province, Thailand"] = {}, ["Samut Songkhram Province, Thailand"] = {}, ["Saraburi Province, Thailand"] = {}, ["Satun Province, Thailand"] = {}, ["Sing Buri Province, Thailand"] = {}, ["Sisaket Province, Thailand"] = {}, ["Songkhla Province, Thailand"] = {}, ["Sukhothai Province, Thailand"] = {}, ["Suphan Buri Province, Thailand"] = {}, ["Surat Thani Province, Thailand"] = {}, ["Surin Province, Thailand"] = {}, ["Tak Province, Thailand"] = {}, ["Trang Province, Thailand"] = {}, ["Trat Province, Thailand"] = {}, ["Ubon Ratchathani Province, Thailand"] = {}, ["Udon Thani Province, Thailand"] = {}, ["Uthai Thani Province, Thailand"] = {}, ["Uttaradit Province, Thailand"] = {}, ["Yala Province, Thailand"] = {}, ["Yasothon Province, Thailand"] = {}, } -- provinces of Thailand export.thailand_group = { key_to_placename = make_key_to_placename(", Thailand$", " Province$"), placename_to_key = make_placename_to_key(", Thailand", " Province"), default_container = "Thái Lan", default_placetype = "province", default_divs = "districts", -- For obscure reasons, provinces of Iran, Laos, Thailand and Vietnam use lowercase 'province' default_wp = "%e province", data = export.thailand_provinces, } export.turkey_provinces = { ["Adana Province, Turkey"] = {}, -- code 01 ["Adıyaman Province, Turkey"] = {}, -- code 02 ["Afyonkarahisar Province, Turkey"] = {}, -- code 03 ["Ağrı Province, Turkey"] = {}, -- code 04 ["Amasya Province, Turkey"] = {}, -- code 05 ["Ankara Province, Turkey"] = {}, -- code 06 ["Antalya Province, Turkey"] = {}, -- code 07 ["Artvin Province, Turkey"] = {}, -- code 08 ["Aydın Province, Turkey"] = {}, -- code 09 ["Balıkesir Province, Turkey"] = {}, -- code 10 ["Bilecik Province, Turkey"] = {}, -- code 11 ["Bingöl Province, Turkey"] = {}, -- code 12 ["Bitlis Province, Turkey"] = {}, -- code 13 ["Bolu Province, Turkey"] = {}, -- code 14 ["Burdur Province, Turkey"] = {}, -- code 15 ["Bursa Province, Turkey"] = {}, -- code 16 ["Çanakkale Province, Turkey"] = {}, -- code 17 ["Çankırı Province, Turkey"] = {}, -- code 18 ["Çorum Province, Turkey"] = {}, -- code 19 ["Denizli Province, Turkey"] = {}, -- code 20 ["Diyarbakır Province, Turkey"] = {}, -- code 21 ["Edirne Province, Turkey"] = {}, -- code 22 ["Elazığ Province, Turkey"] = {}, -- code 23 ["Elâzığ Province, Turkey"] = {alias_of = "Elazığ Province, Turkey", display = true}, ["Erzincan Province, Turkey"] = {}, -- code 24 ["Erzurum Province, Turkey"] = {}, -- code 25 ["Eskişehir Province, Turkey"] = {}, -- code 26 ["Gaziantep Province, Turkey"] = {}, -- code 27 ["Giresun Province, Turkey"] = {}, -- code 28 ["Gümüşhane Province, Turkey"] = {}, -- code 29 ["Hakkâri Province, Turkey"] = {}, -- code 30 ["Hakkari Province, Turkey"] = {alias_of = "Hakkâri Province, Turkey", display = true}, ["Hatay Province, Turkey"] = {}, -- code 31 ["Isparta Province, Turkey"] = {}, -- code 32 ["Mersin Province, Turkey"] = {}, -- code 33 -- ["Istanbul Province, Turkey"] = {}, -- code 34; this is coextensive with the city itself ["İzmir Province, Turkey"] = {}, -- code 35 ["Izmir Province, Turkey"] = {alias_of = "İzmir Province, Turkey", display = true}, ["Kars Province, Turkey"] = {}, -- code 36 ["Kastamonu Province, Turkey"] = {}, -- code 37 ["Kayseri Province, Turkey"] = {}, -- code 38 ["Kırklareli Province, Turkey"] = {}, -- code 39 ["Kırşehir Province, Turkey"] = {}, -- code 40 ["Kocaeli Province, Turkey"] = {}, -- code 41 ["Konya Province, Turkey"] = {}, -- code 42 ["Kütahya Province, Turkey"] = {}, -- code 43 ["Malatya Province, Turkey"] = {}, -- code 44 ["Manisa Province, Turkey"] = {}, -- code 45 ["Kahramanmaraş Province, Turkey"] = {}, -- code 46 ["Mardin Province, Turkey"] = {}, -- code 47 ["Muğla Province, Turkey"] = {}, -- code 48 ["Muş Province, Turkey"] = {}, -- code 49 ["Nevşehir Province, Turkey"] = {}, -- code 50 ["Niğde Province, Turkey"] = {}, -- code 51 ["Ordu Province, Turkey"] = {}, -- code 52 ["Rize Province, Turkey"] = {}, -- code 53 ["Sakarya Province, Turkey"] = {}, -- code 54 ["Samsun Province, Turkey"] = {}, -- code 55 ["Siirt Province, Turkey"] = {}, -- code 56 ["Sinop Province, Turkey"] = {}, -- code 57 ["Sivas Province, Turkey"] = {}, -- code 58 ["Tekirdağ Province, Turkey"] = {}, -- code 59 ["Tokat Province, Turkey"] = {}, -- code 60 ["Trabzon Province, Turkey"] = {}, -- code 61 ["Tunceli Province, Turkey"] = {}, -- code 62 ["Şanlıurfa Province, Turkey"] = {}, -- code 63 ["Uşak Province, Turkey"] = {}, -- code 64 ["Van Province, Turkey"] = {}, -- code 65 ["Yozgat Province, Turkey"] = {}, -- code 66 ["Zonguldak Province, Turkey"] = {}, -- code 67 ["Aksaray Province, Turkey"] = {}, -- code 68 ["Bayburt Province, Turkey"] = {}, -- code 69 ["Karaman Province, Turkey"] = {}, -- code 70 ["Kırıkkale Province, Turkey"] = {}, -- code 71 ["Batman Province, Turkey"] = {}, -- code 72 ["Şırnak Province, Turkey"] = {}, -- code 73 ["Bartın Province, Turkey"] = {}, -- code 74 ["Ardahan Province, Turkey"] = {}, -- code 75 ["Iğdır Province, Turkey"] = {}, -- code 76 ["Yalova Province, Turkey"] = {}, -- code 77 ["Karabük Province, Turkey"] = {}, -- code 78 ["Kilis Province, Turkey"] = {}, -- code 79 ["Osmaniye Province, Turkey"] = {}, -- code 80 ["Düzce Province, Turkey"] = {}, -- code 81 } -- provinces of Turkey export.turkey_group = { key_to_placename = make_key_to_placename(", Turkey$", " Province$"), placename_to_key = make_placename_to_key(", Turkey", " Province"), default_container = "Thổ Nhĩ Kỳ", default_placetype = "province", default_divs = "districts", data = export.turkey_provinces, } export.ukraine_oblasts = { ["Cherkasy Oblast, Ukraine"] = {}, -- capital [[Cherkasy]], license plate prefix CA, IA ["Chernihiv Oblast, Ukraine"] = {}, -- capital [[Chernihiv]], license plate prefix CB, IB ["Chernivtsi Oblast, Ukraine"] = {}, -- capital [[Chernivtsi]], license plate prefix CE, IE -- apparently will be renamed to 'Dnipro Oblast' ["Dnipropetrovsk Oblast, Ukraine"] = {}, -- capital [[Dnipro]], license plate prefix AE, KE ["Donetsk Oblast, Ukraine"] = {}, -- capital ''[[Donetsk]] ([[Kramatorsk]])'', license plate prefix AH, KH ["Ivano-Frankivsk Oblast, Ukraine"] = {}, -- capital [[Ivano-Frankivsk]], license plate prefix AT, KT ["Kharkiv Oblast, Ukraine"] = {}, -- capital [[Kharkiv]], license plate prefix AX, KX ["Kherson Oblast, Ukraine"] = {}, -- capital ''[[Kherson]]'', license plate prefix ''BT, HT'' ["Khmelnytskyi Oblast, Ukraine"] = {}, -- capital [[Khmelnytskyi]], license plate prefix BX, HX -- apparently will be renamed to 'Kropyvnytskyi Oblast' ["Kirovohrad Oblast, Ukraine"] = {}, -- capital [[Kropyvnytskyi]], license plate prefix BA, HA ["Kyiv Oblast, Ukraine"] = {}, -- capital [[Kyiv]], license plate prefix AI, KI ["Kiev Oblast, Ukraine"] = {alias_of = "Kyiv Oblast, Ukraine", display = true}, ["Luhansk Oblast, Ukraine"] = {}, -- capital ''[[Luhansk]] ([[Sievierodonetsk]])'', license plate prefix BB, HB ["Lviv Oblast, Ukraine"] = {}, -- capital [[Lviv]], license plate prefix BC, HC ["Mykolaiv Oblast, Ukraine"] = {}, -- capital [[Mykolaiv]], license plate prefix BE, HE ["Odesa Oblast, Ukraine"] = {}, -- capital [[Odesa]], license plate prefix BH, HH ["Odessa Oblast, Ukraine"] = {alias_of = "Odesa Oblast, Ukraine", display = true}, ["Poltava Oblast, Ukraine"] = {}, -- capital [[Poltava]], license plate prefix BI, HI ["Rivne Oblast, Ukraine"] = {}, -- capital [[Rivne]], license plate prefix BK, HK ["Sumy Oblast, Ukraine"] = {}, -- capital [[Sumy]], license plate prefix BM, HM ["Ternopil Oblast, Ukraine"] = {}, -- capital [[Ternopil]], license plate prefix BO, HO ["Vinnytsia Oblast, Ukraine"] = {}, -- capital [[Vinnytsia]], license plate prefix AB, KB ["Volyn Oblast, Ukraine"] = {}, -- capital [[Lutsk]], license plate prefix AC, KC ["Zakarpattia Oblast, Ukraine"] = {}, -- capital [[Uzhhorod]], license plate prefix AO, KO ["Zaporizhzhia Oblast, Ukraine"] = {}, -- capital ''[[Zaporizhzhia]]'', license plate prefix AP, KP ["Zaporizhia Oblast, Ukraine"] = {alias_of = "Zaporizhzhia Oblast, Ukraine", display = true}, ["Zhytomyr Oblast, Ukraine"] = {}, -- capital [[Zhytomyr]], license plate prefix AM, KM } -- oblasts of Ukraine export.ukraine_group = { key_to_placename = make_key_to_placename(", Ukraine$", " Oblast$"), placename_to_key = make_placename_to_key(", Ukraine", " Oblast"), default_container = "Ukraina", default_placetype = "oblast", default_divs = {"raions", "hromadas"}, data = export.ukraine_oblasts, } export.united_kingdom_constituent_countries = { ["England"] = {divs = { "counties", "districts", {type = "local government districts", cat_as = "districts"}, { type = "local government districts with borough status", cat_as = {"districts", "boroughs"}, }, {type = "boroughs", cat_as = {"districts", "boroughs"}}, {type = "civil parishes", container_parent_type = false}, }}, ["Northern Ireland"] = { placetype = {"constituent country", "province", "quốc gia"}, divs = {"counties", "districts"}, }, ["Scotland"] = {divs = { {type = "council areas", container_parent_type = false}, "districts", }}, ["Wales"] = {divs = { "counties", {type = "county boroughs", container_parent_type = false}, {type = "communities", container_parent_type = false}, {type = "Welsh communities", cat_as = {{type = "communities", container_parent_type = false}}}, }}, } -- constituent countries and provinces of the United Kingdom export.united_kingdom_group = { placename_to_key = false, default_container = "United Kingdom", default_placetype = {"constituent country", "quốc gia"}, addl_divs = { "traditional counties", {type = "historical counties", cat_as = "traditional counties"}, }, -- Don't create categories like 'Category:en:Towns in the United Kingdom' -- or 'Category:en:Places in the United Kingdom'. default_no_container_cat = true, data = export.united_kingdom_constituent_countries, } export.england_counties = { -- NOTE: We used to have various other "no longer" counties commented out, which seems to refer to counties that -- existed officially at some point between 1889 and 1974, which I have removed. I have only kept the three -- ceremonial counties that existed from 1974 (when ceremonial counties were created) to 1996, as well as those -- still considered "historic counties" per [[w:Historic counties of England]]. -- ["Avon, England"] = {wp = "%l (county)"}, -- no longer (1974 to 1996) ["Bedfordshire, England"] = {}, ["Berkshire, England"] = {}, -- ["Brighton and Hove, England"] = {}, -- city -- ["Bristol, England"] = {}, -- city ["Buckinghamshire, England"] = {}, ["Cambridgeshire, England"] = {}, ["Cheshire, England"] = {}, -- ["Cleveland, England"] = {wp = "%l (county)"}, -- no longer (1974 to 1996) ["Cornwall, England"] = {}, -- ["Cumberland, England"] = {}, -- no longer (historic county) ["Cumbria, England"] = {}, ["Derbyshire, England"] = {}, ["Devon, England"] = {}, ["Dorset, England"] = {}, ["County Durham, England"] = {}, ["East Sussex, England"] = {}, ["Essex, England"] = {}, ["Gloucestershire, England"] = {}, ["Greater London, England"] = {}, ["Greater Manchester, England"] = {}, ["Hampshire, England"] = {}, ["Herefordshire, England"] = {}, ["Hertfordshire, England"] = {}, -- ["Humberside, England"] = {}, -- no longer (1974 to 1996) -- ["Huntingdonshire, England"] = {}, -- no longer (historic county) ["Isle of Wight, England"] = {the = true}, ["Kent, England"] = {}, ["Lancashire, England"] = {}, ["Leicestershire, England"] = {}, ["Lincolnshire, England"] = {}, ["Merseyside, England"] = {}, -- ["Middlesex, England"] = {}, -- no longer (historic county) ["Norfolk, England"] = {}, ["Northamptonshire, England"] = {}, ["Northumberland, England"] = {}, ["North Yorkshire, England"] = {}, ["Nottinghamshire, England"] = {}, ["Oxfordshire, England"] = {}, ["Rutland, England"] = {}, ["Shropshire, England"] = {}, ["Somerset, England"] = {}, ["South Humberside, England"] = {}, ["South Yorkshire, England"] = {}, ["Staffordshire, England"] = {}, ["Suffolk, England"] = {}, ["Surrey, England"] = {}, -- ["Sussex, England"] = {}, -- no longer (historic county) ["Tyne and Wear, England"] = {}, ["Warwickshire, England"] = {}, ["West Midlands, England"] = {the = true, wp = "%l (county)"}, -- ["Westmorland, England"] = {}, -- no longer (historic county) ["West Sussex, England"] = {}, ["West Yorkshire, England"] = {}, ["Wiltshire, England"] = {}, ["Worcestershire, England"] = {}, -- ["Yorkshire, England"] = {}, -- no longer (historic county) ["East Riding of Yorkshire, England"] = {the = true}, } -- counties of England export.england_group = { default_container = {key = "England", placetype = "constituent country"}, default_placetype = "county", default_divs = { "districts", {type = "local government districts", cat_as = "districts"}, { type = "local government districts with borough status", cat_as = {"districts", "boroughs"}, }, {type = "boroughs", cat_as = {"districts", "boroughs"}}, "civil parishes", }, data = export.england_counties, } export.northern_ireland_counties = { ["County Antrim, Northern Ireland"] = {}, ["County Armagh, Northern Ireland"] = {}, ["City of Belfast, Northern Ireland"] = {the = true, is_city = true, wp = "Belfast"}, ["County Down, Northern Ireland"] = {}, ["County Fermanagh, Northern Ireland"] = {}, ["County Londonderry, Northern Ireland"] = {}, ["City of Derry, Northern Ireland"] = {the = true, is_city = true, wp = "Derry"}, ["County Tyrone, Northern Ireland"] = {}, } -- counties of Northern Ireland export.northern_ireland_group = { key_to_placename = make_irish_type_key_to_placename(", Northern Ireland$"), placename_to_key = make_irish_type_placename_to_key(", Northern Ireland"), default_container = {key = "Northern Ireland", placetype = "constituent country"}, default_placetype = "county", data = export.northern_ireland_counties, } export.scotland_council_areas = { ["Aberdeenshire, Scotland"] = {}, ["Angus, Scotland"] = {wp = "%l, %c"}, ["Argyll and Bute, Scotland"] = {}, ["City of Aberdeen, Scotland"] = {the = true, wp = "Aberdeen"}, ["Aberdeen"] = {alias_of = "City of Aberdeen, Scotland"}, ["Aberdeen City"] = {alias_of = "City of Aberdeen, Scotland"}, ["City of Dundee, Scotland"] = {the = true, wp = "Dundee"}, ["Dundee"] = {alias_of = "City of Dundee, Scotland"}, ["Dundee City"] = {alias_of = "City of Dundee, Scotland"}, ["City of Edinburgh, Scotland"] = {the = true, wp = "%l council area"}, ["Edinburgh"] = {alias_of = "City of Edinburgh, Scotland"}, ["City of Glasgow, Scotland"] = {the = true, wp = "Glasgow"}, ["Glasgow"] = {alias_of = "City of Glasgow, Scotland"}, ["Clackmannanshire, Scotland"] = {}, ["Dumfries and Galloway, Scotland"] = {}, ["East Ayrshire, Scotland"] = {}, ["East Dunbartonshire, Scotland"] = {}, ["East Lothian, Scotland"] = {}, ["East Renfrewshire, Scotland"] = {}, ["Falkirk, Scotland"] = {wp = "%l council area"}, ["Fife, Scotland"] = {}, ["Highland, Scotland"] = {wp = "%l council area"}, ["Inverclyde, Scotland"] = {}, ["Midlothian, Scotland"] = {}, ["Moray, Scotland"] = {}, ["North Ayrshire, Scotland"] = {}, ["North Lanarkshire, Scotland"] = {}, ["Orkney Islands, Scotland"] = {the = true}, ["Perth and Kinross, Scotland"] = {}, ["Renfrewshire, Scotland"] = {}, ["Scottish Borders, Scotland"] = {the = true}, ["Shetland Islands, Scotland"] = {the = true}, ["South Ayrshire, Scotland"] = {}, ["South Lanarkshire, Scotland"] = {}, ["Stirling, Scotland"] = {wp = "%l council area"}, ["West Dunbartonshire, Scotland"] = {}, ["West Lothian, Scotland"] = {}, ["Western Isles, Scotland"] = {the = true, wp = "Outer Hebrides"}, ["Na h-Eileanan Siar, Scotland"] = {alias_of = "Western Isles, Scotland"}, } -- council areas of Scotland export.scotland_group = { default_container = {key = "Scotland", placetype = "constituent country"}, default_placetype = "council area", data = export.scotland_council_areas, } export.wales_principal_areas = { ["Blaenau Gwent, Wales"] = {}, ["Bridgend, Wales"] = {wp = "%l County Borough"}, ["Caerphilly, Wales"] = {wp = "%l County Borough"}, -- ["Cardiff, Wales"] = {placetype = "thành phố"}, ["Carmarthenshire, Wales"] = {placetype = "county"}, ["Ceredigion, Wales"] = {placetype = "county"}, ["Conwy, Wales"] = {wp = "%l County Borough"}, ["Denbighshire, Wales"] = {placetype = "county"}, ["Flintshire, Wales"] = {placetype = "county"}, ["Gwynedd, Wales"] = {placetype = "county"}, ["Isle of Anglesey, Wales"] = {the = true, placetype = "county"}, ["Anglesey, Wales"] = {alias_of = "Isle of Anglesey, Wales"}, -- differs in "the" ["Merthyr Tydfil, Wales"] = {wp = "%l County Borough"}, ["Monmouthshire, Wales"] = {placetype = "county"}, ["Neath Port Talbot, Wales"] = {}, -- ["Newport, Wales"] = {placetype = "thành phố", wp = "%l, %c"}, ["Pembrokeshire, Wales"] = {placetype = "county"}, ["Powys, Wales"] = {placetype = "county"}, ["Rhondda Cynon Taf, Wales"] = {}, -- ["Swansea, Wales"] = {placetype = "thành phố"}, ["Torfaen, Wales"] = {}, ["Vale of Glamorgan, Wales"] = {the = true}, ["Wrexham, Wales"] = {wp = "%l County Borough"}, } -- principal areas (cities, counties and county boroughs) of Wales export.wales_group = { default_container = {key = "Wales", placetype = "constituent country"}, default_placetype = "county borough", data = export.wales_principal_areas, } export.united_states_states = { ["Alabama, USA"] = {}, ["Alaska, USA"] = {divs = { {type = "boroughs", container_parent_type = "counties"}, {type = "borough seats", container_parent_type = "county seats"}, }}, ["Arizona, USA"] = {}, ["Arkansas, USA"] = {}, ["California, USA"] = {}, ["Colorado, USA"] = {divs = {"counties", "county seats", "municipalities"}}, ["Connecticut, USA"] = {divs = {"counties", "county seats", "municipalities"}}, ["Delaware, USA"] = {}, ["Florida, USA"] = {}, ["Georgia, USA"] = {wp = "%l (U.S. state)"}, ["Hawaii, USA"] = {addl_parents = {"Polynesia"}}, ["Idaho, USA"] = {}, ["Illinois, USA"] = {}, ["Indiana, USA"] = {}, ["Iowa, USA"] = {}, ["Kansas, USA"] = {}, ["Kentucky, USA"] = {}, ["Louisiana, USA"] = {divs = { {type = "parishes", container_parent_type = "counties"}, {type = "parish seats", container_parent_type = "county seats"}, }}, ["Maine, USA"] = {}, ["Maryland, USA"] = {}, ["Massachusetts, USA"] = {}, ["Michigan, USA"] = {}, ["Minnesota, USA"] = {}, ["Mississippi, USA"] = {}, ["Missouri, USA"] = {}, ["Montana, USA"] = {}, ["Nebraska, USA"] = {}, ["Nevada, USA"] = {}, ["New Hampshire, USA"] = {}, ["New Jersey, USA"] = {divs = { "counties", "county seats", {type = "boroughs", prep = "in"}, }}, ["New Mexico, USA"] = {}, ["New York, USA"] = {wp = "%l (state)"}, ["North Carolina, USA"] = {}, ["North Dakota, USA"] = {}, ["Ohio, USA"] = {}, ["Oklahoma, USA"] = {}, ["Oregon, USA"] = {}, ["Pennsylvania, USA"] = {divs = { "counties", "county seats", {type = "boroughs", prep = "in"}, }}, ["Rhode Island, USA"] = {}, ["South Carolina, USA"] = {}, ["South Dakota, USA"] = {}, ["Tennessee, USA"] = {}, ["Texas, USA"] = {}, ["Utah, USA"] = {}, ["Vermont, USA"] = {}, ["Virginia, USA"] = {}, ["Washington, USA"] = {wp = "%l (state)"}, ["West Virginia, USA"] = {}, ["Wisconsin, USA"] = {}, ["Wyoming, USA"] = {}, } -- states of the United States export.united_states_group = { placename_to_key = make_placename_to_key(", USA"), default_container = "Hoa Kỳ", default_placetype = "state", default_divs = {"counties", "county seats"}, addl_divs = { {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, }, data = export.united_states_states, } export.vietnam_provinces = { -- [[Northeast (Vietnam)|Northeast]] region ["Bắc Giang Province, Vietnam"] = {}, -- capital [[Bắc Giang]] ["Bắc Kạn Province, Vietnam"] = {}, -- capital [[Bắc Kạn]] ["Cao Bằng Province, Vietnam"] = {}, -- capital [[Cao Bằng]] ["Hà Giang Province, Vietnam"] = {}, -- capital [[Hà Giang]] ["Lạng Sơn Province, Vietnam"] = {}, -- capital [[Lạng Sơn]] ["Phú Thọ Province, Vietnam"] = {}, -- capital [[Việt Trì]] ["Quảng Ninh Province, Vietnam"] = {}, -- capital [[Hạ Long]] ["Thái Nguyên Province, Vietnam"] = {}, -- capital [[Thái Nguyên]] ["Tuyên Quang Province, Vietnam"] = {}, -- capital [[Tuyên Quang]] -- [[Northwest (Vietnam)|Northwest]] region ["Lào Cai Province, Vietnam"] = {}, -- capital [[Lào Cai]] ["Yên Bái Province, Vietnam"] = {}, -- capital [[Yên Bái]] ["Điện Biên Province, Vietnam"] = {}, -- capital [[Điện Biên Phủ]] ["Hoà Bình Province, Vietnam"] = {}, -- capital [[Hoà Bình City|Hoà Bình]] ["Hòa Bình Province, Vietnam"] = {alias_of = "Hoà Bình Province, Vietnam", display = true}, ["Lai Châu Province, Vietnam"] = {}, -- capital [[Lai Châu]] ["Sơn La Province, Vietnam"] = {}, -- capital [[Sơn La]] -- [[Red River Delta]] region ["Bắc Ninh Province, Vietnam"] = {}, -- capital [[Bắc Ninh]] ["Hà Nam Province, Vietnam"] = {}, -- capital [[Phủ Lý]] ["Hải Dương Province, Vietnam"] = {}, -- capital [[Hải Dương]] ["Hưng Yên Province, Vietnam"] = {}, -- capital [[Hưng Yên]] ["Nam Định Province, Vietnam"] = {}, -- capital [[Nam Định]] ["Ninh Bình Province, Vietnam"] = {}, -- capital [[Ninh Bình|Hoa Lư]] ["Thái Bình Province, Vietnam"] = {}, -- capital [[Thái Bình]] ["Vĩnh Phúc Province, Vietnam"] = {}, -- capital [[Vĩnh Yên]] -- ["Hanoi"] = {placetype = {"municipality", "thành phố"}}, -- capital [[Hoàn Kiếm district]] -- ["Haiphong"] = {placetype = {"municipality", "thành phố"}}, -- capital [[Hồng Bàng district]] -- [[North Central Coast]] region ["Hà Tĩnh Province, Vietnam"] = {}, -- capital [[Hà Tĩnh]] ["Nghệ An Province, Vietnam"] = {}, -- capital [[Vinh]] ["Quảng Bình Province, Vietnam"] = {}, -- capital [[Đồng Hới]] ["Quảng Trị Province, Vietnam"] = {}, -- capital [[Đông Hà]] ["Thanh Hoá Province, Vietnam"] = {}, -- capital [[Thanh Hoá]] ["Thanh Hóa Province, Vietnam"] = {alias_of = "Thanh Hoá Province, Vietnam", display = true}, -- ["Hue"] = {placetype = {"municipality", "thành phố"}, wp = "Huế"}, -- capital [[Thuận Hoá district]] -- [[Central Highlands (Vietnam)|Central Highlands]] region ["Đắk Lắk Province, Vietnam"] = {}, -- capital [[Buôn Ma Thuột]] ["Đăk Nông Province, Vietnam"] = {}, -- capital [[Gia Nghĩa]] ["Gia Lai Province, Vietnam"] = {}, -- capital [[Pleiku]] ["Kon Tum Province, Vietnam"] = {}, -- capital [[Kon Tum]] ["Lâm Đồng Province, Vietnam"] = {}, -- capital [[Đà Lạt]] -- [[South Central Coast]] region ["Bình Định Province, Vietnam"] = {}, -- capital [[Quy Nhon]] ["Bình Thuận Province, Vietnam"] = {}, -- capital [[Phan Thiết]] ["Khánh Hoà Province, Vietnam"] = {}, -- capital [[Nha Trang]] ["Khánh Hòa Province, Vietnam"] = {alias_of = "Khánh Hoà Province, Vietnam", display = true}, ["Ninh Thuận Province, Vietnam"] = {}, -- capital [[Phan Rang–Tháp Chàm]] ["Phú Yên Province, Vietnam"] = {}, -- capital [[Tuy Hoà]] ["Quảng Nam Province, Vietnam"] = {}, -- capital [[Tam Kỳ]] ["Quảng Ngãi Province, Vietnam"] = {}, -- capital [[Quảng Ngãi]] -- ["Da Nang"] = {placetype = {"municipality", "thành phố"}}, -- capital [[Hải Châu district]] -- [[Southeast (Vietnam)|Southeast]] region ["Bà Rịa–Vũng Tàu Province, Vietnam"] = {}, -- capital [[Bà Rịa]] ["Bình Dương Province, Vietnam"] = {}, -- capital [[Thủ Dầu Một]] ["Bình Phước Province, Vietnam"] = {}, -- capital [[Đồng Xoài]] ["Đồng Nai Province, Vietnam"] = {}, -- capital [[Biên Hoà]] ["Tây Ninh Province, Vietnam"] = {}, -- capital [[Tây Ninh]] -- ["Thành phố Hồ Chí Minh"] = {placetype = {"municipality", "thành phố"}}, -- capital [[District 1, Thành phố Hồ Chí Minh|'''District 1''']] -- [[Mekong Delta]] region ["An Giang Province, Vietnam"] = {}, -- capital [[Long Xuyên]] ["Bạc Liêu Province, Vietnam"] = {}, -- capital [[Bạc Liêu]] ["Bến Tre Province, Vietnam"] = {}, -- capital [[Bến Tre]] ["Cà Mau Province, Vietnam"] = {}, -- capital [[Cà Mau]] ["Đồng Tháp Province, Vietnam"] = {}, -- capital [[Cao Lãnh City|Cao Lãnh]] ["Hậu Giang Province, Vietnam"] = {}, -- capital [[Vị Thanh]] ["Kiên Giang Province, Vietnam"] = {}, -- capital [[Rạch Giá]] ["Long An Province, Vietnam"] = {}, -- capital [[Tân An]] ["Sóc Trăng Province, Vietnam"] = {}, -- capital [[Sóc Trăng]] ["Tiền Giang Province, Vietnam"] = {}, -- capital [[Mỹ Tho]] ["Trà Vinh Province, Vietnam"] = {}, -- capital [[Trà Vinh]] ["Vĩnh Long Province, Vietnam"] = {}, -- capital [[Vĩnh Long]] -- ["Can Tho"] = {placetype = {"municipality", "thành phố"}, wp = "Cần Thơ"}, -- capital [[Ninh Kiều district]] } -- provinces of Vietnam export.vietnam_group = { key_to_placename = make_key_to_placename(", Vietnam$", " Province$"), placename_to_key = make_placename_to_key(", Vietnam", " Province"), default_container = "Việt Nam", default_placetype = "province", -- There may not be enough districts to subcategorize like this. -- default_divs = "districts", -- For obscure reasons, provinces of Iran, Laos, Thailand and Vietnam use lowercase 'province' default_wp = "%e province", data = export.vietnam_provinces, } ----------------------------------------------------------------------------------- -- City data -- ----------------------------------------------------------------------------------- export.australia_cities = { ["Adelaide"] = {container = "South Australia"}, -- 1,450,000 (Agglomeration) ["Brisbane"] = {container = "Queensland"}, -- 3,450,000 (Conglomeration; including the Gold Coast [750,997 2024 estiamte]) ["Canberra"] = {container = {key = "Australian Capital Territory, Australia", placetype = "territory"}}, -- 510,641 (2024 estimate) ["Melbourne"] = {container = "Victoria"}, -- 5,200,000 (Agglomeration) ["Newcastle, New South Wales"] = {container = "New South Wales", wp = "%l, %c"}, -- 534,033 (2024 estimate) ["Newcastle"] = {alias_of = "Newcastle, New South Wales"}, ["Perth"] = {container = "Western Australia"}, -- 2,350,000 (Agglomeration) ["Sydney"] = {container = "New South Wales"}, -- 5,100,000 (Agglomeration) } export.australia_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Australia", "state"), default_placetype = "thành phố", data = export.australia_cities, } export.brazil_cities = { -- Figures from citypopulation.de; retrieved 2025-04-27; reference date 2025-01-01. ["São Paulo"] = {container = "São Paulo"}, -- 22,600,000 (Consolidated Urban Area; including Guarulhos) ["Sao Paulo"] = {alias_of = "São Paulo", display = true}, ["Rio de Janeiro"] = {container = "Rio de Janeiro"}, -- 13,600,000 (Consolidated Urban Area) ["Belo Horizonte"] = {container = "Minas Gerais"}, -- 5,300,000 ["Recife"] = {container = "Pernambuco"}, -- 4,100,000 ["Porto Alegre"] = {container = "Rio Grande do Sul"}, -- 3,950,000 (Consolidated Urban Area) ["Brasília"] = {container = "Distrito Federal"}, -- 3,850,000 ["Brasilia"] = {alias_of = "Brasília", display = true}, ["Fortaleza"] = {container = "Ceará"}, -- 3,825,000 ["Salvador"] = {container = "Bahia", wp = "%l, %c", commonscat = "%l (%c)"}, -- 3,400,000 ["Curitiba"] = {container = "Paraná"}, -- 3,375,000 ["Campinas"] = {container = "São Paulo"}, -- 3,250,000 ["Goiânia"] = {container = "Goiás"}, -- 2,525,000 ["Goiania"] = {alias_of = "Goiânia", display = true}, ["Manaus"] = {container = "Amazonas"}, -- 2,275,000 ["Belém"] = {container = "Pará"}, -- 2,200,000 ["Belem"] = {alias_of = "Belém", display = true}, ["Vitória"] = {container = "Espírito Santo", wp = "%l, %c"}, -- 1,870,000 ["Vitoria"] = {alias_of = "Vitória", display = true}, ["Santos"] = {container = "São Paulo", wp = "%l, %c"}, -- 1,760,000 ["São Luís"] = {container = "Maranhão", wp = "%l, %c"}, -- 1,530,000 ["Sao Luis"] = {alias_of = "São Luís", display = true}, ["Natal"] = {container = "Rio Grande do Norte", wp = "%l, %c"}, -- 1,360,000 ["Florianópolis"] = {container = "Santa Catarina"}, -- 1,260,000 ["Florianopolis"] = {alias_of = "Florianópolis", display = true}, ["Maceió"] = {container = "Alagoas"}, -- 1,220,000 ["Maceio"] = {alias_of = "Maceió", display = true}, ["João Pessoa"] = {container = "Paraíba", wp = "%l, %c"}, -- 1,210,000 ["Joao Pessoa"] = {alias_of = "João Pessoa", display = true}, ["São José dos Campos"] = {container = "São Paulo"}, -- 1,090,000 ["Sao Jose dos Campos"] = {alias_of = "São José dos Campos", display = true}, ["Londrina"] = {container = "Paraná"}, -- 1,050,000 ["Teresina"] = {container = "Piauí"}, -- 1,040,000 } export.brazil_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Brazil", "state"), default_placetype = "thành phố", data = export.brazil_cities, } export.canada_cities = { -- Figures from citypopulation.de; retrieved 2025-04-27; reference date 2025-01-01. ["Toronto"] = {container = "Ontario"}, -- 7,850,000 (Consolidated Urban Area; including Hamilton) ["Montreal"] = {container = "Quebec"}, -- 4,500,000 (Consolidated Urban Area) ["Vancouver"] = {container = "British Columbia"}, -- 3,175,000 (Consolidated Urban Area) ["Calgary"] = {container = "Alberta"}, -- 1,510,000 (Consolidated Urban Area) ["Edmonton"] = {container = "Alberta"}, -- 1,460,000 (Consolidated Urban Area) ["Ottawa"] = {container = "Ontario"}, -- 1,390,000 (Consolidated Urban Area) ["Quebec City"] = {container = "Quebec"}, -- 839,311 metro per Wikipedia (2021 census) ["Winnipeg"] = {container = "Manitoba"}, -- 834,678 metro per Wikipedia (2021 census) ["Hamilton"] = {container = "Ontario", wp = "%l, %c"}, -- 785,184 metro per Wikipedia (2021 census) ["Kitchener"] = {container = "Ontario", wp = "%l, %c"}, -- 575,847 metro per Wikipedia (2021 census) } export.canada_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Canada", "province"), default_placetype = "thành phố", data = export.canada_cities, } export.france_cities = { -- Figures from citypopulation.de unless otherwise indicated; retrieved 2025-04-26; reference date 2025-01-01. ["Paris"] = {container = "Île-de-France"}, -- 11,500,000 (Conglomeration) ["Lyon"] = {container = "Auvergne-Rhône-Alpes"}, -- 2,050,000 (Conglomeration) ["Lyons"] = {alias_of = "Lyon", display = true}, ["Marseille"] = {container = "Provence-Alpes-Côte d'Azur"}, -- 1,710,000 (Conglomeration) ["Marseilles"] = {alias_of = "Marseille", display = true}, ["Lille"] = {container = "Hauts-de-France"}, -- 1,320,000 (Conglomeration) ["Bordeaux"] = {container = "Nouvelle-Aquitaine"}, -- 1,160,000 (Conglomeration) ["Toulouse"] = {container = "Occitania"}, -- 1,150,000 (Conglomeration) ["Nice"] = {container = "Provence-Alpes-Côte d'Azur"}, ["Nantes"] = {container = "Pays de la Loire"}, ["Strasbourg"] = {container = "Grand Est"}, ["Rennes"] = {container = "Brittany"}, } export.france_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", France", "region"), default_placetype = "thành phố", data = export.france_cities, } export.germany_cities = { -- Figures from citypopulation.de unless otherwise indicated; retrieved 2025-04-26; reference date 2025-01-01. -- listed under Rhein-Ruhr Area, total population 10,900,000 (Consolidated Urban Area) ["Cologne"] = {container = "North Rhine-Westphalia"}, ["Köln"] = {alias_of = "Cologne", display = true}, ["Düsseldorf"] = {container = "North Rhine-Westphalia"}, ["Dusseldorf"] = {alias_of = "Düsseldorf", display = true}, ["Dortmund"] = {container = "North Rhine-Westphalia"}, ["Essen"] = {container = "North Rhine-Westphalia"}, ["Duisberg"] = {container = "North Rhine-Westphalia"}, ["Berlin"] = {}, -- 4,700,000 ["Frankfurt"] = {container = "Hesse"}, -- 3,225,000 ["Frankfurt am Main"] = {alias_of = "Frankfurt"}, -- not a display alias as it's longer ["Hamburg"] = {}, -- 2,900,000 ["Munich"] = {container = "Bavaria"}, -- 2,300,000 ["Stuttgart"] = {container = "Baden-Württemberg"}, -- 2,300,000 ["Mannheim"] = {container = "Baden-Württemberg"}, -- 1,550,000 ["Nuremberg"] = {container = "Bavaria"}, -- 1,120,000 ["Hanover"] = {"Lower Saxony"}, -- 1,090,000 ["Bielefeld"] = {container = "North Rhine-Westphalia"}, -- 1,080,000 ["Leipzig"] = {container = "Saxony"}, -- 1,080,000 ["Aachen"] = {container = "North Rhine-Westphalia"}, -- 1,000,000 ["Aix-la-Chapelle"] = {alias_of = "Aachen"}, -- historical; not a display alias ["Bremen"] = {}, } export.germany_cities_group = { default_container = "Đức", canonicalize_key_container = make_canonicalize_key_container(", Germany", "state"), default_placetype = "thành phố", data = export.germany_cities, } export.india_cities = { -- This lists the 65 metro areas per Demographia's 2023 estimates, as found in -- [[w:List_of_million-plus_urban_agglomerations_in_India]]. The last census in India (as of April 2025) was -- conducted in 2011, and the results are not accurate any more. ["Delhi"] = {container = {key = "Delhi, India", placetype = "union territory"}}, -- 31,190,000 ["Mumbai"] = {container = "Maharashtra"}, -- 25,189,000 ["Kolkata"] = {container = "West Bengal"}, -- 21,747,000 ["Bangalore"] = {container = "Karnataka", wp = "Bengaluru"}, -- 15,257,000 ["Bengaluru"] = {alias_of = "Bangalore"}, ["Chennai"] = {container = "Tamil Nadu"}, -- 11,570,000 ["Hyderabad"] = {container = "Telangana"}, -- 9,797,000 ["Ahmedabad"] = {container = "Gujarat"}, -- 8,006,000 ["Pune"] = {container = "Maharashtra"}, -- 6,819,000 ["Surat"] = {container = "Gujarat"}, -- 6,601,000 ["Lucknow"] = {container = "Uttar Pradesh"}, -- 4,661,000 ["Jaipur"] = {container = "Rajasthan"}, -- 4,360,000 ["Kanpur"] = {container = "Uttar Pradesh"}, -- 4,350,000 ["Indore"] = {container = "Madhya Pradesh"}, -- 3,765,000 ["Nagpur"] = {container = "Maharashtra"}, -- 3,493,000 ["Patna"] = {container = "Bihar"}, -- 3,331,000 ["Varanasi"] = {container = "Uttar Pradesh"}, -- 3,229,000 ["Kozhikode"] = {container = "Kerala"}, -- 3,049,000 ["Thiruvananthapuram"] = {container = "Kerala"}, -- 2,851,000 ["Agra"] = {container = "Uttar Pradesh"}, -- 2,737,000 ["Bhopal"] = {container = "Madhya Pradesh"}, -- 2,562,000 ["Coimbatore"] = {container = "Tamil Nadu"}, -- 2,551,000 ["Allahabad"] = {container = "Uttar Pradesh", wp = "Prayagraj"}, -- 2,438,000 ["Prayagraj"] = {alias_of = "Allahabad"}, ["Kochi"] = {container = "Kerala"}, -- 2,381,000 ["Ludhiana"] = {container = "Punjab"}, -- 2,205,000 ["Vadodara"] = {container = "Gujarat"}, -- 2,182,000 ["Chandigarh"] = {container = {key = "Chandigarh, India", placetype = "union territory"}}, -- 2,168,000 ["Madurai"] = {container = "Tamil Nadu"}, -- 2,048,000 ["Meerut"] = {container = "Uttar Pradesh"}, -- 2,011,000 ["Visakhapatnam"] = {container = "Andhra Pradesh"}, -- 2,005,000 ["Jamshedpur"] = {container = "Jharkhand"}, -- 1,925,000 ["Malappuram"] = {container = "Kerala"}, -- 1,868,000 ["Nashik"] = {container = "Maharashtra"}, -- 1,810,000 ["Asansol"] = {container = "West Bengal"}, -- 1,720,000 ["Aligarh"] = {container = "Uttar Pradesh"}, -- 1,660,000 ["Ranchi"] = {container = "Jharkhand"}, -- 1,638,000 ["Thrissur"] = {container = "Kerala"}, -- 1,578,000 ["Kollam"] = {container = "Kerala"}, -- 1,576,000 ["Jabalpur"] = {container = "Madhya Pradesh"}, -- 1,533,000 ["Dhanbad"] = {container = "Jharkhand"}, -- 1,503,000 ["Jodhpur"] = {container = "Rajasthan"}, -- 1,497,000 ["Aurangabad"] = {container = "Maharashtra"}, -- 1,490,000 ["Chhatrapati Sambhajinagar"] = {alias_of = "Aurangabad"}, ["Rajkot"] = {container = "Gujarat"}, -- 1,487,000 ["Gwalior"] = {container = "Madhya Pradesh"}, -- 1,477,000 ["Raipur"] = {container = "Chhattisgarh"}, -- 1,429,000 ["Gorakhpur"] = {container = "Uttar Pradesh"}, -- 1,410,000 ["Kannur"] = {container = "Kerala"}, -- 1,360,000 ["Bareilly"] = {container = "Uttar Pradesh"}, -- 1,355,000 ["Guwahati"] = {container = "Assam"}, -- 1,355,000 ["Moradabad"] = {container = "Uttar Pradesh"}, -- 1,345,000 ["Amritsar"] = {container = "Punjab"}, -- 1,313,000 ["Mysore"] = {container = "Karnataka"}, -- 1,296,000 ["Bhilai"] = {container = "Chhattisgarh"}, -- 1,293,000 ["Durg-Bhilainagar"] = {alias_of = "Bhilai"}, ["Durg-Bhilai"] = {alias_of = "Bhilai"}, ["Durg"] = {alias_of = "Bhilai"}, ["Bhilainagar"] = {alias_of = "Bhilai"}, ["Vijayawada"] = {container = "Andhra Pradesh"}, -- 1,232,000 ["Srinagar"] = {container = {key = "Jammu and Kashmir, India", placetype = "union territory"}}, -- 1,212,000 ["Salem"] = {container = "Tamil Nadu", wp = "%l, %c"}, -- 1,189,000 ["Kota"] = {container = "Rajasthan"}, -- 1,172,000 ["Jalandhar"] = {container = "Punjab"}, -- 1,165,000 ["Saharanpur"] = {container = "Uttar Pradesh"}, -- 1,152,000 ["Dehradun"] = {container = "Uttarakhand"}, -- 1,136,000 ["Tiruchirappalli"] = {container = "Tamil Nadu"}, -- 1,131,000 ["Bhubaneswar"] = {container = "Odisha"}, -- 1,112,000 ["Jammu"] = {container = {key = "Jammu and Kashmir, India", placetype = "union territory"}}, -- 1,103,000 ["Solapur"] = {container = "Maharashtra"}, -- 1,082,000 ["Hubli-Dharwad"] = {container = "Karnataka", wp = "Hubli–Dharwad"}, -- 1,062,000; wp with en dash ["Hubli"] = {alias_of = "Hubli-Dharwad"}, ["Dharwad"] = {alias_of = "Hubli-Dharwad"}, ["Puducherry"] = {container = {key = "Puducherry, India", placetype = "union territory"}}, -- 1,024,000 ["Pondicherry"] = {alias_of = "Puducherry", display = true}, -- satellite/secondary cities of metro area (none in citypopulation.de) ["Ghaziabad"] = {container = "Uttar Pradesh"}, -- 1,729,000 city, 2,358,525 urban agglomeration per 2011 census; 3,406,061 2025 estimate from official website; part of Delhi metro area ["Faridabad"] = {container = "Haryana"}, -- 1,414,050 city per 2011 census; part of Delhi metro area ["Thane"] = {container = "Maharashtra"}, -- 1,841,488 city per 2011 census; part of Mumbai metro area ["Kalyan-Dombivli"] = {container = "Maharashtra"}, -- 1,246,381 city per 2011 census; part of Mumbai metro area ["Kalyan-Dombivali"] = {alias_of = "Kalyan-Dombivli", display = true}, ["Kalyan"] = {alias_of = "Kalyan-Dombivli"}, ["Dombivli"] = {alias_of = "Kalyan-Dombivli"}, ["Dombivali"] = {alias_of = "Kalyan-Dombivli"}, ["Vasai-Virar"] = {container = "Maharashtra"}, -- 1,221,233 city per 2011 census; part of Mumbai metro area ["Vasai"] = {alias_of = "Vasai-Virar"}, ["Virar"] = {alias_of = "Vasai-Virar"}, ["Navi Mumbai"] = {container = "Maharashtra"}, -- 1,120,547 city per 2011 census; part of Mumbai metro area ["Howrah"] = {container = "West Bengal"}, -- 1,077,075 city ("metropolis"), 2,811,344 "metro" per 2011 census; part of Kolkata metro area ["Pimpri-Chinchwad"] = {container = "Maharashtra"}, -- 1,727,692 per 2011 census; part of Pune metro area ["Pimpri Chinchwad"] = {alias_of = "Pimpri-Chinchwad", display = true}, } export.india_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", India", "state"), default_placetype = "thành phố", data = export.india_cities, } export.indonesia_cities = { -- cities where the city proper has more than 1,000,000 people as of mid-2023 estimate ["Jakarta"] = {container = "Special Capital Region of Jakarta", divs = { {type = "subdistricts", container_parent_type = false}, }}, ["Surabaya"] = {container = "East Java"}, ["Bekasi"] = {container = "West Java"}, -- part of Jakarta metro area ["Bandung"] = {container = "West Java"}, ["Medan"] = {container = "North Sumatra"}, ["Depok"] = {container = "West Java"}, -- part of Jakarta metro area ["Tangerang"] = {container = "Banten"}, -- part of Jakarta metro area ["Palembang"] = {container = "South Sumatra"}, ["Semarang"] = {container = "Central Java"}, ["Makassar"] = {container = "South Sulawesi"}, ["South Tangerang"] = {container = "Banten"}, -- part of Jakarta metro area ["Batam"] = {container = "Riau Islands"}, ["Bogor"] = {container = "West Java"}, -- part of Jakarta metro area ["Pekanbaru"] = {container = "Riau"}, ["Bandar Lampung"] = {container = "Lampung"}, -- other metro areas over 1,000,000 people ["Padang"] = {container = "West Sumatra"}, ["Samarinda"] = {container = "East Kalimantan"}, ["Malang"] = {container = "East Java"}, ["Yogyakarta"] = {container = "Special Region of Yogyakarta"}, ["Denpasar"] = {container = "Bali"}, ["Cirebon"] = {container = "West Java"}, ["Surakarta"] = {container = "Central Java"}, ["Banjarmasin"] = {container = "South Kalimantan"}, ["Tasikmalaya"] = {container = "West Java"}, } export.indonesia_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Indonesia", "province"), default_placetype = "thành phố", data = export.indonesia_cities, } export.italy_cities = { -- Data per [[w:List_of_metropolitan_areas_of_Italy]]. There are several lists given; the most recent one, used -- here, only gives estimates as of Jan 1, 2014. ["Milan"] = {container = "Lombardy"}, -- 6,623,798 ["Naples"] = {container = "Campania"}, -- 5,294,546 ["Rome"] = {container = "Lazio"}, -- 4,447,881 ["Turin"] = {container = "Piedmont"}, -- 1,865,284 ["Venice"] = {container = "Veneto"}, -- 1,645,900 ["Florence"] = {container = "Tuscany"}, -- 1,485,030 ["Bari"] = {container = "Apulia"}, -- 1,257,459 ["Palermo"] = {container = "Sicily"}, -- 1,183,084 -- include a few just below 1,000,000 metro area that may be above it by now (depending on the definition). ["Catania"] = {container = "Sicily"}, -- 988,240 ["Brescia"] = {container = "Lombardy"}, -- 924,090 ["Genoa"] = {container = "Liguria"}, -- 861,318 } export.italy_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Italy", "region"), default_placetype = "thành phố", data = export.italy_cities, } export.japan_cities = { -- Population figures from [[w:List of cities in Japan]]. Metro areas from -- [[w:List of metropolitan areas in Japan]]. ["Tokyo"] = {keydesc = "[[Tokyo]] Metropolis, the [[capital city]] and a [[prefecture]] of [[Japan]] (which is a country in [[Asia]])", placetype = {"thành phố", "tỉnh"}, divs = { {type = "quận đặc biệt", container_parent_type = false}, {type = "thành phố", prep = "của"}, }, }, ["Yokohama"] = {container = "Kanagawa"}, -- 3,697,894 ["Osaka"] = {container = "Osaka"}, -- 2,668,586 ["Nagoya"] = {container = "Aichi"}, -- 2,283,289 -- FIXME, Hokkaido is handled specially. ["Sapporo"] = {container = "Hokkaido"}, -- 1,918,096 ["Fukuoka"] = {container = "Fukuoka"}, -- 1,581,527 ["Kobe"] = {container = "Hyōgo"}, -- 1,530,847 ["Kyoto"] = {container = "Kyoto"}, -- 1,474,570 ["Kawasaki"] = {container = "Kanagawa", wp = "%l, Kanagawa"}, -- 1,373,630 ["Saitama"] = {container = "Saitama", wp = "%l (city)", commonscat = "%l, %c"}, -- 1,192,418 ["Hiroshima"] = {container = "Hiroshima"}, -- 1,163,806 ["Sendai"] = {container = "Miyagi"}, -- 1,029,552 -- the remaining cities are considered "central cities" in a 1,000,000+ metro area -- (sometimes there is more than one central city in the area). ["Kitakyushu"] = {container = "Fukuoka"}, -- 986,998 ["Chiba"] = {container = "Chiba", wp = "%l (city)", commonscat = "%l, %c"}, -- 938,695 ["Sakai"] = {container = "Osaka"}, -- 835,333 ["Niigata"] = {container = "Niigata", wp = "%l (city)", commonscat = "%l, %c"}, -- 813,053 ["Hamamatsu"] = {container = "Shizuoka"}, -- 811,431 ["Shizuoka"] = {container = "Shizuoka", wp = "%l (city)", commonscat = "%l, %c"}, -- 710,944 ["Sagamihara"] = {container = "Kanagawa"}, -- 706,342 ["Okayama"] = {container = "Okayama"}, -- 701,293 ["Kumamoto"] = {container = "Kumamoto"}, -- 670,348 ["Kagoshima"] = {container = "Kagoshima"}, -- 605,196 -- skipped 6 cities (Funabashi, Hachiōji, Kawaguchi, Himeji, Matsuyama, Higashiōsaka) -- with population in the range 509k - 587k because not central cities in any -- 1,000,000+ metro area. ["Utsunomiya"] = {container = "Tochigi"}, -- 507,833 } export.japan_cities_group = { default_container = "Nhật Bản", canonicalize_key_container = make_canonicalize_key_container(", Nhật Bản", "prefecture"), default_placetype = "thành phố", data = export.japan_cities, } export.mexico_cities = { ["Mexico City"] = {}, -- its own state ["Monterrey"] = {container = "Nuevo León"}, ["Guadalajara"] = {container = "Jalisco"}, ["Puebla"] = {container = "Puebla", wp = "%l (city)"}, ["Toluca"] = {container = "State of Mexico"}, ["Tijuana"] = {container = "Baja California"}, -- Include the state in the category for León due to possible confusion with León, Spain. ["León, Guanajuato"] = {container = "Guanajuato", wp = "%l, %c"}, ["León"] = {alias_of = "León, Guanajuato"}, ["Leon"] = {alias_of = "León, Guanajuato", display = true}, ["Querétaro"] = {container = "Querétaro", wp = "%l (city)"}, ["Queretaro"] = {alias_of = "Querétaro", display = true}, ["Ciudad Juárez"] = {container = "Chihuahua"}, ["Juárez"] = {alias_of = "Ciudad Juárez"}, ["Juarez"] = {alias_of = "Ciudad Juárez", display = "Juárez"}, ["Torreón"] = {container = "Coahuila"}, ["Torreon"] = {alias_of = "Torreón", display = true}, -- Include the state in the category for Mérida due to possible confusion with Mérida, Spain or -- Mérida, Venezuela. ["Mérida, Yucatán"] = {container = "Yucatán", wp = "%l, %c"}, ["Mérida"] = {alias_of = "Mérida, Yucatán"}, ["Merida"] = {alias_of = "Mérida, Yucatán", display = true}, ["San Luis Potosí"] = {container = "San Luis Potosí", wp = "%l (city)"}, ["San Luis Potosi"] = {alias_of = "San Luis Potosí", display = true}, ["Aguascalientes"] = {container = "Aguascalientes", wp = "%l (city)"}, ["Mexicali"] = {container = "Baja California"}, } export.mexico_cities_group = { default_container = "Mexico", canonicalize_key_container = make_canonicalize_key_container(", Mexico", "state"), default_placetype = "thành phố", data = export.mexico_cities, } export.nigeria_cities = { -- Figures from citypopulation.de unless otherwise indicated; retrieved 2025-04-26; reference date 2025-01-01. ["Lagos"] = {container = "Lagos"}, -- 21,300,000 (unindicated; population of low reliability) ["Kano"] = {container = "Kano", wp = "%l (city)"}, -- 5,350,000 (unindicated; population of low reliability) ["Ibadan"] = {container = "Oyo"}, -- 3,400,000 (unindicated; population of low reliability) ["Abuja"] = {container = {key = "Federal Capital Territory, Nigeria", placetype = "federal territory"}}, -- 3,050,000 (unindicated; population of low reliability) ["Port Harcourt"] = {container = "Rivers"}, -- 2,250,000 (unindicated; population of low reliability) ["Kaduna"] = {container = "Kaduna"}, -- 1,980,000 (unindicated; population of low reliability) ["Benin City"] = {container = "Edo"}, -- 1,790,000 (unindicated; population of low reliability) ["Aba"] = {container = "Abia", wp = "%l, Nigeria"}, -- 1,280,000 (unindicated; population of low reliability) ["Onitsha"] = {container = "Anambra"}, -- 1,230,000 (unindicated; population of low reliability) ["Maiduguri"] = {container = "Borno"}, -- 1,190,000 (unindicated; population of low reliability) ["Ilorin"] = {container = "Kwara"}, -- 1,160,000 (unindicated; population of low reliability) ["Sokoto"] = {container = "Sokoto", wp = "%l (city)"}, -- 1,140,000 (unindicated; population of low reliability) ["Jos"] = {container = "Plateau"}, -- 1,110,000 (unindicated; population of low reliability) ["Zaria"] = {container = "Kaduna"}, -- 1,050,000 (unindicated; population of low reliability) ["Enugu"] = {container = "Enugu", wp = "%l (city)"}, -- 1,010,000 (unindicated; population of low reliability) } export.nigeria_cities_group = { default_container = "Nigeria", canonicalize_key_container = make_canonicalize_key_container(" State, Nigeria", "state"), default_placetype = "thành phố", data = export.nigeria_cities, } export.pakistan_cities = { -- Figures from citypopulation.de; retrieved 2025-04-26; reference date 2025-01-01. ["Karachi"] = {container = "Sindh"}, -- 21,000,000 (Consolidated Urban Area) ["Lahore"] = {container = "Punjab"}, -- 14,600,000 (Consolidated Urban Area) ["Rawalpindi"] = {container = "Punjab"}, -- 5,600,000 (Consolidated Urban Area; including Islamabad) ["Islamabad"] = {container = {key = "Islamabad Capital Territory, Pakistan", placetype = "federal territory"}}, -- 5,600,000 (Consolidated Urban Area; including Rawalpindi) ["Faisalabad"] = {container = "Punjab"}, -- 4,125,000 (Consolidated Urban Area) ["Gujranwala"] = {container = "Punjab"}, -- 3,450,000 (Consolidated Urban Area) -- there is also Hyderabad in India (very confusing) ["Hyderabad, Pakistan"] = {container = "Sindh", wp = "%l, %c"}, -- 2,475,000 (Consolidated Urban Area) ["Hyderabad"] = {alias_of = "Hyderabad, Pakistan"}, ["Multan"] = {container = "Punjab"}, -- 2,425,000 (Consolidated Urban Area) ["Peshawar"] = {container = "Khyber Pakhtunkhwa"}, -- 2,150,000 (Consolidated Urban Area) ["Quetta"] = {container = "Balochistan"}, -- 1,720,000 (Urban Area) ["Sargodha"] = {container = "Punjab"}, -- 1,080,000 (Urban Area) ["Sialkot"] = {container = "Punjab"}, -- 1,050,000 (Consolidated Urban Area) } export.pakistan_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Pakistan", "province"), default_placetype = "thành phố", data = export.pakistan_cities, } export.philippines_cities = { -- Skipped some cities in Metro Manila (Taguig, Pasig) which don't have districts. -- Other cities outside Metro Manila skipped as not central city in their urban area. ["Quezon City"] = {container = {key = "Metro Manila, Philippines", placetype = "region"}}, -- Don't display-canonicalize Foo to Foo City as it may make the display weird. ["Quezon"] = {alias_of = "Quezon City"}, ["Manila"] = {container = {key = "Metro Manila, Philippines", placetype = "region"}}, ["Davao City"] = {container = "Davao del Sur"}, ["Davao"] = {alias_of = "Davao City"}, ["Caloocan"] = {container = {key = "Metro Manila, Philippines", placetype = "region"}}, ["Zamboanga City"] = {container = "Zamboanga del Sur"}, ["Zamboanga"] = {alias_of = "Zamboanga City"}, ["Cebu City"] = {container = "Cebu"}, ["Cebu"] = {alias_of = "Cebu City"}, ["Antipolo"] = {container = "Rizal"}, ["Cagayan de Oro"] = {container = "Misamis Oriental"}, ["Dasmariñas"] = {container = "Cavite"}, ["Dasmarinas"] = {alias_of = "Dasmariñas", display = true}, ["General Santos"] = {container = "South Cotabato"}, ["San Jose del Monte"] = {container = "Bulacan"}, ["Bacolod"] = {container = "Negros Occidental"}, ["Calamba"] = {container = "Laguna", wp = "%l, %c"}, ["Angeles"] = {container = "Pampanga", wp = "Angeles City"}, ["Angeles City"] = {alias_of = "Angeles"}, ["Iloilo City"] = {container = "Iloilo"}, ["Iloilo"] = {alias_of = "Iloilo City"}, } export.philippines_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Philippines", "province"), default_placetype = "thành phố", data = export.philippines_cities, } export.russia_cities = { -- Figures from citypopulation.de; retrieved 2025-04-26; reference date 2025-01-01. ["Moscow"] = {}, -- 18,800,000 (Agglomeration) ["Saint Petersburg"] = {}, -- 6,350,000 (Agglomeration) ["Novosibirsk"] = {container = "Novosibirsk Oblast"}, -- 1,820,000 (Agglomeration) ["Yekaterinburg"] = {container = "Sverdlovsk Oblast"}, -- 1,810,000 (Agglomeration) ["Nizhny Novgorod"] = {container = "Nizhny Novgorod Oblast"}, -- 1,620,000 (Agglomeration) ["Kazan"] = {container = {key = "Tatarstan, Russia", placetype = "republic"}}, -- 1,560,000 (Agglomeration) ["Chelyabinsk"] = {container = "Chelyabinsk Oblast"}, -- 1,430,000 (Agglomeration) ["Rostov-on-Don"] = {container = "Rostov Oblast"}, -- 1,390,000 (Agglomeration) ["Rostov-na-Donu"] = {alias_of = "Rostov-on-Don", display = true}, ["Krasnodar"] = {container = {key = "Krasnodar Krai, Russia", placetype = "krai"}}, -- 1,370,000 (Agglomeration) ["Samara"] = {container = "Samara Oblast"}, -- 1,350,000 (Agglomeration) ["Krasnoyarsk"] = {container = {key = "Krasnoyarsk Krai, Russia", placetype = "krai"}}, -- 1,270,000 (Agglomeration) ["Ufa"] = {container = {key = "Bashkortostan, Russia", placetype = "republic"}}, -- 1,230,000 (Agglomeration) ["Saratov"] = {container = "Saratov Oblast"}, -- 1,170,000 (Agglomeration) ["Omsk"] = {container = "Omsk Oblast"}, -- 1,140,000 (Agglomeration) ["Voronezh"] = {container = "Voronezh Oblast"}, -- 1,130,000 (Agglomeration) ["Volgograd"] = {container = "Volgograd Oblast"}, -- 1,080,000 (Agglomeration) ["Perm"] = {container = {key = "Perm Krai, Russia", placetype = "krai"}, wp = "%l, Russia"}, -- 1,070,000 (Agglomeration) } export.russia_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Russia", "oblast"), default_container = "Nga", default_placetype = "thành phố", data = export.russia_cities, } export.saudi_arabia_cities = { -- Figures for the first five from [[w:List of cities and towns in Saudi Arabia]] as of 2022. Unclear if these are -- metro, urban or city proper figures. ["Riyadh"] = {container = "Riyadh"}, -- 7,000,100; 7,700,000 per citypopulation.de 2025-01-01 (Agglomeration) ["Jeddah"] = {container = "Mecca"}, -- 3,751,917; 3,950,000 per citypopulation.de 2025-01-01 (Agglomeration) ["Jedda"] = {alias_of = "Jeddah", display = true}, ["Jiddah"] = {alias_of = "Jeddah", display = true}, ["Jidda"] = {alias_of = "Jeddah", display = true}, ["Dammam"] = {container = "Eastern"}, -- 2,638,166; 2,925,000 per citypopulation.de 2025-01-01 (Agglomeration) ["Mecca"] = {container = "Mecca"}, -- 2,385,509; 2,675,000 per citypopulation.de 2025-01-01 (Agglomeration) ["Makkah"] = {alias_of = "Mecca", display = true}, ["Medina"] = {container = "Medina"}, -- 1,477,023; 1,530,000 per citypopulation.de 2025-01-01 (City) ["Hofuf"] = {container = "Eastern"}, -- 1,060,000 per citypopulation.de 2025-01-01 (Agglomeration) ["Khamis Mushait"] = {container = "Aseer"}, -- 1,030,000 per citypopulation.de 2025-01-01 (Agglomeration) ["Khamis Mushayt"] = {alias_of = "Khamis Mushait", display = true}, } export.saudi_arabia_cities_group = { canonicalize_key_container = make_canonicalize_key_container(" Province, Saudi Arabia", "province"), default_placetype = "thành phố", data = export.saudi_arabia_cities, } export.south_korea_cities = { -- All cities listed are not associated with any county. ["Seoul"] = {}, ["Busan"] = {}, ["Incheon"] = {}, ["Daegu"] = {}, ["Daejeon"] = {}, ["Gwangju"] = {}, ["Ulsan"] = {}, } export.south_korea_cities_group = { default_container = "Hàn Quốc", canonicalize_key_container = make_canonicalize_key_container(" County, South Korea", "province"), default_placetype = "thành phố", data = export.south_korea_cities, } export.spain_cities = { ["Madrid"] = {container = "Community of Madrid"}, ["Barcelona"] = {container = "Catalonia"}, ["Valencia"] = {container = "Valencia"}, ["Seville"] = {container = "Andalusia"}, ["Bilbao"] = {container = "Basque Country"}, } export.spain_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Spain", "autonomous community"), default_placetype = "thành phố", data = export.spain_cities, } export.taiwan_cities = { ["New Taipei City"] = {}, ["New Taipei"] = {alias_of = "New Taipei City", display = true}, ["Taichung"] = {}, ["Kaohsiung"] = {wp = "%l, Taiwan"}, ["Taipei"] = {}, ["Taoyuan"] = {}, ["Tainan"] = {}, -- these last three are not special municipalities ["Chiayi"] = {placetype = "thành phố"}, ["Hsinchu"] = {placetype = "thành phố"}, ["Keelung"] = {placetype = "thành phố"}, } export.taiwan_cities_group = { placename_to_key = false, -- don't add ", Taiwan" to make the key canonicalize_key_container = make_canonicalize_key_container(", Taiwan", "county"), default_container = "Đài Loan", default_placetype = {"special municipality", "municipality", "thành phố"}, default_is_city = true, default_divs = {"districts"}, data = export.taiwan_cities, } -- NOTE: It's OK to mix cities from different constituent countries; as long as the immediate container is correct, -- everything else will be figured out. export.united_kingdom_cities = { ["London"] = {container = "Greater London"}, ["Manchester"] = {container = "Greater Manchester"}, ["Birmingham"] = {container = "West Midlands"}, ["Liverpool"] = {container = "Merseyside"}, ["Glasgow"] = {container = {key = "City of Glasgow, Scotland", placetype = "council area"}}, ["Leeds"] = {container = "West Yorkshire"}, ["Newcastle upon Tyne"] = {container = "Tyne and Wear"}, ["Newcastle"] = {alias_of = "Newcastle upon Tyne"}, ["Bristol"] = {container = {key = "England", placetype = "constituent country"}}, ["Cardiff"] = {container = {key = "Wales", placetype = "constituent country"}}, ["Portsmouth"] = {container = "Hampshire"}, ["Edinburgh"] = {container = {key = "City of Edinburgh, Scotland", placetype = "council area"}}, -- under 1,000,000 people but principal areas of Wales; requested by [[User:Donnanz]] ["Swansea"] = {container = {key = "Wales", placetype = "constituent country"}}, ["Newport"] = {container = {key = "Wales", placetype = "constituent country"}, wp = "Newport, Wales"}, } export.united_kingdom_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", England", "county"), default_placetype = "thành phố", data = export.united_kingdom_cities, } export.united_states_cities = { -- top 50 CSA's by population, with the top and sometimes 2nd or 3rd city listed ["New York City"] = {container = "New York", wp = "%l", divs = { {type = "boroughs", container_parent_type = false}, }}, -- Don't display-canonicalize as it may make the display weird (e.g. in the context New York, New York). ["New York"] = {alias_of = "New York City"}, ["Newark"] = {container = "New Jersey"}, ["Los Angeles"] = {container = "California", wp = "%l"}, ["Long Beach"] = {container = "California"}, ["Riverside"] = {container = "California"}, ["Chicago"] = {container = "Illinois", wp = "%l"}, ["Washington, D.C."] = {wp = "%l"}, ["Washington, DC"] = {alias_of = "Washington, D.C.", display = true}, ["Washington D.C."] = {alias_of = "Washington, D.C.", display = true}, ["Washington DC"] = {alias_of = "Washington, D.C.", display = true}, -- Don't display-canonicalize as it may make the display weird (e.g. if the holonym is followed by a District of -- Columbia holonym). ["Washington"] = {alias_of = "Washington, D.C."}, ["Baltimore"] = {container = "Maryland", wp = "%l"}, -- to avoid conflict with San Jose in Costa Rica ["San Jose, California"] = {container = "California"}, ["San Jose"] = {alias_of = "San Jose, California"}, ["San Francisco"] = {container = "California", wp = "%l"}, ["Oakland"] = {container = "California"}, ["Boston"] = {container = "Massachusetts", wp = "%l"}, ["Providence"] = {container = "Rhode Island"}, ["Dallas"] = {container = "Texas", wp = "%l", commonscat = "%l, %c"}, ["Fort Worth"] = {container = "Texas"}, ["Philadelphia"] = {container = "Pennsylvania", wp = "%l"}, ["Houston"] = {container = "Texas", wp = "%l"}, ["Miami"] = {container = "Florida", wp = "%l", commonscat = "%l, %c"}, ["Atlanta"] = {container = "Georgia", wp = "%l"}, ["Detroit"] = {container = "Michigan", wp = "%l"}, ["Phoenix"] = {container = "Arizona", wp = "%l", commonscat = "%l, %c"}, ["Mesa"] = {container = "Arizona"}, ["Seattle"] = {container = "Washington", wp = "%l"}, ["Orlando"] = {container = "Florida"}, ["Minneapolis"] = {container = "Minnesota", wp = "%l"}, ["Cleveland"] = {container = "Ohio", wp = "%l", commonscat = "%l, %c"}, ["Denver"] = {container = "Colorado", wp = "%l", commonscat = "%l, %c"}, ["San Diego"] = {container = "California", wp = "%l", commonscat = "%l, %c"}, ["Portland"] = {container = "Oregon"}, ["Tampa"] = {container = "Florida"}, ["St. Louis"] = {container = "Missouri", wp = "%l", commonscat = "%l, %c"}, ["Saint Louis"] = {alias_of = "St. Louis", display = true}, ["Charlotte"] = {container = "North Carolina"}, ["Sacramento"] = {container = "California"}, ["Pittsburgh"] = {container = "Pennsylvania", wp = "%l"}, ["Salt Lake City"] = {container = "Utah", wp = "%l"}, ["San Antonio"] = {container = "Texas", wp = "%l", commonscat = "%l, %c"}, ["Columbus"] = {container = "Ohio"}, ["Kansas City"] = {container = "Missouri", wp = "%l metropolitan area", commonscat = "%l, %c"}, ["Indianapolis"] = {container = "Indiana", wp = "%l"}, ["Las Vegas"] = {container = "Nevada", wp = "%l"}, ["Cincinnati"] = {container = "Ohio", wp = "%l", commonscat = "%l, %c"}, ["Austin"] = {container = "Texas"}, ["Milwaukee"] = {container = "Wisconsin", wp = "%l", commonscat = "%l, %c"}, ["Raleigh"] = {container = "North Carolina"}, ["Nashville"] = {container = "Tennessee"}, ["Virginia Beach"] = {container = "Virginia"}, ["Norfolk"] = {container = "Virginia"}, ["Greensboro"] = {container = "North Carolina"}, ["Winston-Salem"] = {container = "North Carolina"}, ["Jacksonville"] = {container = "Florida"}, ["New Orleans"] = {container = "Louisiana", wp = "%l"}, ["Louisville"] = {container = "Kentucky"}, ["Greenville"] = {container = "South Carolina"}, ["Hartford"] = {container = "Connecticut"}, ["Oklahoma City"] = {container = "Oklahoma", wp = "%l"}, ["Grand Rapids"] = {container = "Michigan"}, ["Memphis"] = {container = "Tennessee"}, ["Birmingham, Alabama"] = {container = "Alabama"}, ["Birmingham"] = {alias_of = "Birmingham, Alabama"}, ["Fresno"] = {container = "California"}, ["Richmond"] = {container = "Virginia"}, ["Harrisburg"] = {container = "Pennsylvania"}, -- any major city of top 50 MSA's that's missed by previous ["Buffalo"] = {container = "New York"}, -- any of the top 50 city by city population that's missed by previous ["El Paso"] = {container = "Texas"}, ["Albuquerque"] = {container = "New Mexico"}, ["Tucson"] = {container = "Arizona"}, ["Colorado Springs"] = {container = "Colorado"}, ["Omaha"] = {container = "Nebraska"}, ["Tulsa"] = {container = "Oklahoma"}, -- skip Arlington, Texas; too obscure and likely to be interpreted as Arlington, Virginia } export.united_states_cities_group = { default_container = "Hoa Kỳ", canonicalize_key_container = make_canonicalize_key_container(", USA", "state"), default_placetype = "thành phố", default_wp = "%l, %c", data = export.united_states_cities, } export.new_york_boroughs = { ["Bronx"] = {the = true, wp = "The Bronx"}, ["Brooklyn"] = {}, ["Manhattan"] = {}, ["Queens"] = {}, ["Staten Island"] = {}, } export.new_york_boroughs_group = { default_container = {key = "New York City", placetype = "thành phố"}, default_placetype = "borough", default_is_city = true, data = export.new_york_boroughs, } export.vietnam_cities = { -- Figures from citypopulation.de (retrieved 2025-04-26; reference date 2025-01-01) unless otherwise indicated. ["Thành phố Hồ Chí Minh"] = {}, -- 14,300,000 (Agglomeration; inclunding Bien Hoa) ["Sài Gòn"] = {alias_of = "Thành phố Hồ Chí Minh"}, ["Hanoi"] = {}, -- 7,350,000 (Agglomeration) ["Da Nang"] = {}, -- 1,500,000 (Agglomeration) ["Danang"] = {alias_of = "Da Nang", display = true}, ["Haiphong"] = {}, -- 1,450,000 (Agglomeration) ["Hai Phong"] = {alias_of = "Haiphong", display = true}, -- This is the one entry in this list that is not a province-level municipality; instead it's a "provincial city" -- meaning it is directly under its province as opposed to being contained in a district. ["Bien Hoa"] = {placetype = "thành phố", container = "Đồng Nai", wp = "Biên Hòa"}, -- 1,272,235 (2022 city population per Wikipedia) ["Biên Hòa"] = {alias_of = "Bien Hoa", display = true}, ["Biên Hoà"] = {alias_of = "Bien Hoa", display = true}, -- These two not in citypopulation.de because the urban population may be slightly under 1,000,000, but they are -- both province-level municipalities and close to the 1,000,000 mark. ["Can Tho"] = {wp = "Cần Thơ"}, -- 1,456,000 municipality (2019 census), 994,704 urban (2022 General Statistics Office of Vietnam estimate); capital [[Ninh Kiều district]] ["Cần Thơ"] = {alias_of = "Can Tho", display = true}, ["Hue"] = {wp = "Huế"}, -- 1,257,000 municipality (2019 census), 840,000 urban (2022 General Statistics Office of Vietnam estimate); -- capital [[Thuận Hóa district]] ["Huế"] = {alias_of = "Hue", display = true}, } export.vietnam_cities_group = { placename_to_key = false, -- don't add ", Vietnam" to make the key default_container = "Vietnam", canonicalize_key_container = make_canonicalize_key_container(" Province, Vietnam", "province"), -- Most of the cities listed are province-level municipalities in addition, which contain a certain amount of -- rural territory surrounding the city, but not enough to separate the municipality from the city as distinct -- known locations. default_placetype = {"municipality", "thành phố"}, default_is_city = true, -- There may not be enough districts to subcategorize like this. -- default_divs = "districts", data = export.vietnam_cities, } export.misc_cities = { ------------------ Africa ------------------- -- Sorted by country and then within the country, by decreasing population; figures from citypopulation.de -- (retrieved 2025-04-26; reference date 2025-01-01) unless otherwise indicated; combined with data from -- [[w:List of urban areas in Africa by population]]. ["Algiers"] = {container = "Algeria"}, -- 4,325,000 (Consolidated Urban Area) ["Oran"] = {container = "Algeria"}, -- 1,640,000 (Consolidated Urban Area) ["Luanda"] = {container = "Angola"}, -- 9,650,000 (Urban Area) ["Benguela"] = {container = "Angola"}, -- 1,420,000 (Urban Area) ["Cotonou"] = {container = "Benin"}, -- 2,150,000 (Agglomeration) ["Ouagadougou"] = {container = "Burkina Faso"}, -- 3,425,000 (Agglomeration) ["Bobo-Dioulasso"] = {container = "Burkina Faso"}, -- 1,100,000 (Agglomeration) ["Bujumbura"] = {container = "Burundi"}, -- 1,143,202 (Urban Area 2023 per PopulationStat, cited in Wikipedia) ["Yaoundé"] = {container = "Cameroon"}, -- 3,975,000 (City) ["Yaounde"] = {alias_of = "Yaoundé", display = true}, ["Douala"] = {container = "Cameroon"}, -- 3,900,000 (City) ["Bangui"] = {container = "Central African Republic"}, -- 1,680,000 (Agglomeration) ["N'Djamena"] = {container = "Chad"}, -- 1,950,000 (City) ["Ndjamena"] = {alias_of = "N'Djamena", display = true}, ["Kinshasa"] = {container = "Democratic Republic of the Congo"}, -- 16,300,000 (City; population of low reliability) ["Lubumbashi"] = {container = "Democratic Republic of the Congo"}, -- 2,875,000 (City; population of low reliability) ["Mbuji-Mayi"] = {container = "Democratic Republic of the Congo"}, -- 2,500,000 (City; population of low reliability) ["Kananga"] = {container = "Democratic Republic of the Congo"}, -- 1,370,000 (City; population of low reliability) ["Kisangani"] = {container = "Democratic Republic of the Congo"}, -- 1,300,000 (City; population of low reliability) ["Bukavu"] = {container = "Democratic Republic of the Congo"}, -- 1,100,000 (City; population of low reliability) ["Goma"] = {container = "Democratic Republic of the Congo"}, -- 1,010,000 (City; population of low reliability) ["Tshikapa"] = {container = "Democratic Republic of the Congo"}, -- 1,020,468 (2023 Wikipedia [[w:List of cities with over one million inhabitants]] from populationstat.com; not in citypopulation.de) ["Cairo"] = {container = "Ai Cập"}, -- 22,800,000 (Agglomeration, including Giza and Subhra El Kheima) ["Alexandria"] = {container = "Ai Cập"}, -- 6,250,000 (Agglomeration) ["Giza"] = {container = "Ai Cập"}, -- 4,458,135 (2023 from citypopulation.de) ["Shubra El Kheima"] = {container = "Ai Cập"}, -- 1,240,239 (2021 from citypopulation.de) ["Asmara"] = {container = "Eritrea"}, -- 1,090,000 (City; population of low reliability) ["Asmera"] = {alias_of = "Asmara", display = true}, ["Addis Ababa"] = {container = "Ethiopia"}, -- 4,825,000 (Agglomeration) ["Banjul"] = {container = "Gambia"}, -- 1,170,000 (Agglomeration) ["Accra"] = {container = "Ghana"}, -- 6,800,000 (Agglomeration) ["Kumasi"] = {container = "Ghana"}, -- 2,900,000 (Agglomeration) ["Conakry"] = {container = "Guinea"}, -- 2,975,000 (Consolidated Urban Area) ["Abidjan"] = {container = "Bờ Biển Ngà"}, -- 7,050,000 (Agglomeration) ["Nairobi"] = {container = "Kenya"}, -- 6,900,000 (unindicated) ["Mombasa"] = {container = "Kenya"}, -- 1,370,000 (City) ["Monrovia"] = {container = "Liberia"}, -- 1,940,000 (Urban Area) ["Tripoli"] = {container = "Libya", wp = "%l, %c"}, -- 1,870,000 (unindicated) ["Antananarivo"] = {container = "Madagascar"}, -- 3,150,000 (Agglomeration) ["Lilongwe"] = {container = "Malawi"}, -- 1,210,000 (City) ["Bamako"] = {container = "Mali"}, -- 5,700,000 (Agglomeration) ["Nouakchott"] = {container = "Mauritania"}, -- 1,500,000 (City) ["Casablanca"] = {container = {key = "Casablanca-Settat, Morocco", placetype = "region"}}, -- 4,450,000 (Municipality (urban population)) ["Rabat"] = {container = {key = "Rabat-Sale-Kenitra, Morocco", placetype = "region"}}, -- 2,125,000 (Municipality (urban population)) ["Tangier"] = {container = {key = "Tangier-Tetouan-Al Hoceima, Morocco", placetype = "region"}}, -- 1,410,000 (Municipality (urban population)) ["Tanger"] = {alias_of = "Tangier", display = true}, ["Tangiers"] = {alias_of = "Tangier", display = true}, ["Fez"] = {container = {key = "Fez-Meknes, Morocco", placetype = "region"}, wp = "%l, Morocco"}, -- 1,310,000 (Municipality (urban population)) ["Fes"] = {alias_of = "Fez", display = true}, ["Fès"] = {alias_of = "Fez", display = true}, ["Agadir"] = {container = {key = "Souss-Massa, Morocco", placetype = "region"}}, -- 1,270,000 (Municipality (urban population)) ["Marrakesh"] = {container = {key = "Marrakesh-Safi, Morocco", placetype = "region"}}, -- 1,140,000 (Municipality (urban population)) ["Marrakech"] = {alias_of = "Marrakesh", display = true}, ["Maputo"] = {container = "Mozambique"}, -- 2,575,000 (Agglomeration) ["Niamey"] = {container = "Niger"}, -- 1,530,000 (City) ["Brazzaville"] = {container = "Republic of the Congo"}, -- 2,475,000 (Agglomeration) ["Pointe-Noire"] = {container = "Republic of the Congo"}, -- 1,480,000 (City) ["Kigali"] = {container = "Rwanda"}, -- 1,960,000 (Municipality (urban population)) ["Dakar"] = {container = "Senegal"}, -- 4,225,000 (Agglomeration) ["Touba"] = {container = "Senegal"}, -- 1,320,000 (Agglomeration) ["Freetown"] = {container = "Sierra Leone"}, -- 1,420,000 (Agglomeration) ["Mogadishu"] = {container = "Somalia"}, -- 2,250,000 (unindicated; population of low reliability) ["Johannesburg"] = {container = {key = "Gauteng, South Africa", placetype = "province"}}, -- 14,800,000 (Consolidated Urban Area; including Pretoria, Soweto, etc.) ["Cape Town"] = {container = {key = "Western Cape, South Africa", placetype = "province"}}, -- 5,100,000 (Consolidated Urban Area) ["Durban"] = {container = {key = "KwaZulu-Natal, South Africa", placetype = "province"}}, -- 3,900,000 (Consolidated Urban Area) ["Pretoria"] = {container = {key = "Gauteng, South Africa", placetype = "province"}}, -- 2,921,488 (2011 census) ["Port Elizabeth"] = {container = {key = "Eastern Cape, South Africa", placetype = "province"}, wp = "Gqeberha"}, -- 1,200,000 (Consolidated Urban Area) ["Gqeberha"] = {alias_of = "Port Elizabeth"}, -- official name; not a display alias ["Khartoum"] = {container = "Sudan"}, -- 7,200,000 (unindicated; population of low reliability) ["Dar es Salaam"] = {container = "Tanzania"}, -- 6,650,000 (Agglomeration) ["Mwanza"] = {container = "Tanzania"}, -- 1,340,000 (Agglomeration) ["Mwanza City"] = {alias_of = "Mwanza", display = true}, ["Arusha"] = {container = "Tanzania"}, -- 1,190,000 (Agglomeration) ["Zanzibar"] = {container = "Tanzania"}, -- 1,030,000 (Agglomeration) ["Lomé"] = {container = "Togo"}, -- 2,625,000 (unindicated) ["Lome"] = {alias_of = "Lomé", display = true}, ["Tunis"] = {container = "Tunisia"}, -- 2,725,000 (Municipality (urban population)) ["Sousse"] = {container = "Tunisia"}, -- 1,180,000 (Municipality (urban population)) ["Soussa"] = {alias_of = "Sousse", display = true}, ["Kampala"] = {container = "Uganda"}, -- 4,300,000 (unindicated) ["Lusaka"] = {container = "Zambia"}, -- 3,000,000 (Consolidated Urban Area) ["Harare"] = {container = "Zimbabwe"}, -- 2,675,000 (Agglomeration) ------------------ Asia ------------------- -- sorted by country and then within the country, by decreasing population; figures from citypopulation.de -- (retrieved 2025-04-26; reference date 2025-01-01) unless otherwise indicated. ["Kabul"] = {container = "Afghanistan"}, -- 5,250,000 (Agglomeration) ["Baku"] = {container = "Azerbaijan"}, -- 3,725,000 (Administrative Area (urban population)) ["Manama"] = {container = "Bahrain"}, -- 1,560,000 (unindicated) ["Dhaka"] = {container = {key = "Dhaka Division, Bangladesh", placetype = "division"}}, -- 23,100,000 (Agglomeration) ["Dacca"] = {alias_of = "Dhaka", display = true}, ["Chittagong"] = {container = {key = "Chittagong Division, Bangladesh", placetype = "division"}}, -- 5,050,000 (Agglomeration) ["Gazipur"] = {container = {key = "Dhaka Division, Bangladesh", placetype = "division"}}, -- 2,674,697 (City per 2022; countied in citypopulation.de as part of Dhaka metro area) ["Khulna"] = {container = {key = "Khulna Division, Bangladesh", placetype = "division"}}, -- 1,210,000 (Agglomeration) ["Phnom Penh"] = {container = "Campuchia"}, -- 2,925,000 (Agglomeration) ["Tehran"] = {container = {key = "Tehran Province, Iran", placetype = "province"}}, -- 16,800,000 (Agglomeration) ["Teheran"] = {alias_of = "Tehran", display = true}, ["Mashhad"] = {container = {key = "Razavi Khorasan Province, Iran", placetype = "province"}}, -- 3,475,000 (Agglomeration) ["Mashad"] = {alias_of = "Mashhad", display = true}, ["Meshhed"] = {alias_of = "Mashhad", display = true}, ["Meshed"] = {alias_of = "Mashhad", display = true}, ["Isfahan"] = {container = {key = "Isfahan Province, Iran", placetype = "province"}}, -- 3,425,000 (Agglomeration) ["Esfahan"] = {alias_of = "Isfahan", display = true}, ["Tabriz"] = {container = {key = "East Azerbaijan Province, Iran", placetype = "province"}}, -- 1,970,000 (Agglomeration) ["Shiraz"] = {container = {key = "Fars Province, Iran", placetype = "province"}}, -- 1,950,000 (Agglomeration) ["Ahvaz"] = {container = {key = "Khuzestan Province, Iran", placetype = "province"}}, -- 1,550,000 (Agglomeration) ["Qom"] = {container = {key = "Qom Province, Iran", placetype = "province"}}, -- 1,450,000 (City) ["Kermanshah"] = {container = {key = "Kermanshah Province, Iran", placetype = "province"}}, -- 1,130,000 (City) ["Baghdad"] = {container = "Iraq"}, -- 7,800,000 (Administrative Area (urban population)) ["Basra"] = {container = "Iraq"}, -- 1,710,000 (Administrative Area (urban population)) ["Mosul"] = {container = "Iraq"}, -- 1,550,000 (Administrative Area (urban population)) ["Erbil"] = {container = "Iraq"}, -- 1,220,000 (Administrative Area (urban population)) ["Kirkuk"] = {container = "Iraq"}, -- 1,160,000 (Administrative Area (urban population)) ["Najaf"] = {container = "Iraq"}, -- 1,050,000 (Administrative Area (urban population)) ["Tel Aviv"] = {container = "Israel"}, -- 3,000,000 (Agglomeration) -- Jerusalem is not recognized internationally as part of either Israel or Palestine, but as a -- [[w:corpus separatum]], so put the container as "châu Á" and list Israel and Palestine as additional parents for -- categorization purposes. ["Jerusalem"] = {container = {key = "châu Á", placetype = "continent"}, addl_parents = {"Israel", "Palestine"}}, -- 1,080,000 (Agglomeration) ["Amman"] = {container = "Jordan"}, -- 6,150,000 (unindicated) ["Irbid"] = {container = "Jordan"}, -- 1,070,000 (unindicated) ["Almaty"] = {container = "Kazakhstan"}, -- 2,700,000 (Agglomeration) ["Alma-Ata"] = {alias_of = "Almaty"}, -- former name, sometimes still used; don't display-canonicalize ["Astana"] = {container = "Kazakhstan"}, -- 1,600,000 (Agglomeration) ["Shymkent"] = {container = "Kazakhstan"}, -- 1,370,000 (Agglomeration) ["Kuwait City"] = {container = "Kuwait"}, -- 5,050,000 (Agglomeration) ["Bishkek"] = {container = "Kyrgyzstan"}, -- 1,540,000 (Agglomeration) ["Beirut"] = {container = "Lebanon"}, -- 1,930,000 (unindicated; population of low reliability) -- Kuala Lumpur is a federal capital city, not in any state ["Kuala Lumpur"] = {container = "Malaysia"}, -- 9,550,000 (Agglomeration) -- there are various George Towns and Georgetowns ["George Town, Malaysia"] = {container = {key = "Penang, Malaysia", placetype = "state"}, wp = "%l, %c"}, -- 2,075,000 (Agglomeration) ["George Town"] = {alias_of = "George Town, Malaysia"}, ["Ulaanbaatar"] = {container = "Mông Cổ"}, -- 1,610,000 (City) ["Ulan Bator"] = {alias_of = "Ulaanbaatar", display = true}, ["Yangon"] = {container = "Myanmar"}, -- 5,650,000 (Municipality (urban population)) ["Rangoon"] = {alias_of = "Yangon", display = true}, ["Mandalay"] = {container = "Myanmar"}, -- 1,600,000 (Municipality (urban population)) ["Kathmandu"] = {container = "Nepal"}, -- 3,175,000 (Agglomeration) -- Pyongyang is a directly governed city, not in any province ["Pyongyang"] = {container = "Cộng hòa Dân chủ Nhân dân Triều Tiên"}, -- 3,025,000 (Administrative Area (urban population)) ["Muscat"] = {container = "Oman"}, -- 1,620,000 (Agglomeration) ["Gaza"] = {container = "Palestine", wp = "Gaza City"}, -- 2,275,000 (unindicated) ["Gaza City"] = {alias_of = "Gaza"}, ["Doha"] = {container = "Qatar"}, -- 2,650,000 (Agglomeration) ["Colombo"] = {container = "Sri Lanka"}, -- 4,975,000 (unindicated) ["Damascus"] = {container = "Syria"}, -- 3,975,000 (unindicated; population of low reliability) ["Aleppo"] = {container = "Syria"}, -- 1,980,000 (unindicated; population of low reliability) ["Dushanbe"] = {container = "Tajikistan"}, -- 1,270,000 (City) ["Bangkok"] = {container = "Thái Lan"}, -- 21,800,000 (Agglomeration) -- Chiang Mai not in citypopulation.de, but 1,198,000 urban population in 2021 per Wikipedia -- [[w:List_of_municipalities_in_Thailand#Largest_cities_by_urban_population]] ["Chiang Mai"] = {container = {key = "Chiang Mai Province, Thailand", placetype = "province"}}, ["Chonburi"] = {container = {key = "Chonburi Province, Thailand", placetype = "province"}}, -- 1,570,000 (Agglomeration; including Pattaya) -- metro area population stats from https://www.statista.com/statistics/255483/biggest-cities-in-turkey/ as of 2021; -- second source is citypopulation.de reference date 2025-01-01. ["Istanbul"] = {placetype = {"thành phố", "province"}, divs = {"districts"}, container = "Thổ Nhĩ Kỳ"}, -- 15.2 million; 16,000,000 (Agglomeration) ["İstanbul"] = {alias_of = "Istanbul", display = true}, ["Ankara"] = {container = {key = "Ankara Province, Turkey", placetype = "province"}}, -- 5.15 million; 5,200,000 (Agglomeration) ["Izmir"] = {container = {key = "İzmir Province, Turkey", placetype = "province"}, wp = "İzmir"}, -- 2.95 million; 3,025,000 (Agglomeration) ["İzmir"] = {alias_of = "Izmir", display = true}, ["Bursa"] = {container = {key = "Bursa Province, Turkey", placetype = "province"}}, -- 2.02 million; 2,200,000 (Agglomeration) ["Adana"] = {container = {key = "Adana Province, Turkey", placetype = "province"}}, -- 1.77 million; 1,780,000 (Agglomeration) ["Gaziantep"] = {container = {key = "Gaziantep Province, Turkey", placetype = "province"}}, -- 1.71 million; 1,750,000 (Agglomeration) ["Antalya"] = {container = {key = "Antalya Province, Turkey", placetype = "province"}}, -- 1.3 million; 1,400,000 (Agglomeration) ["Konya"] = {container = {key = "Konya Province, Turkey", placetype = "province"}}, -- 1.35 million; 1,390,000 (Agglomeration) ["Diyarbakır"] = {container = {key = "Diyarbakır Province, Turkey", placetype = "province"}}, -- 1.07 million; 1,100,000 (Agglomeration) -- Diyarbakır is more common per Ngrams and Google Scholar, but Diyarbakir is the Kurdish form, so we should not -- display-canonicalize to the Turkish form Diyarbakır. ["Diyarbakir"] = {alias_of = "Diyarbakır"}, ["Mersin"] = {container = {key = "Mersin Province, Turkey", placetype = "province"}}, -- 1.03 million; 1,060,000 (Agglomeration) ["Ashgabat"] = {container = "Turkmenistan"}, -- 1,150,000 (Agglomeration) ["Dubai"] = {container = "United Arab Emirates"}, -- 6,050,000 (Agglomeration; including Sharjah) ["Abu Dhabi"] = {container = "United Arab Emirates"}, -- 1,850,000 (City) ["Sharjah"] = {container = "United Arab Emirates"}, -- 1,800,000 (Metro area 2022-2023 per Wikipedia; separate from Dubai) ["Tashkent"] = {container = "Uzbekistan"}, -- 3,850,000 (unindicated) ["Sanaa"] = {container = "Yemen"}, -- 3,275,000 (City; population of low reliability) ["Sana'a"] = {alias_of = "Sanaa", display = true}, ["Aden"] = {container = "Yemen"}, -- 1,079,060 (?; 2023 estimate from World Population Review per Wikipedia) ------------------ Europe or Europe-like (Caucasus etc.) --------------------- ["Yerevan"] = {container = "Armenia"}, -- 1,520,000 (Agglomeration) ["Vienna"] = {container = "Áo"}, -- 2,375,000 (Agglomeration) ["Minsk"] = {container = "Belarus"}, -- 2,100,000 (unindicated) ["Brussels"] = {container = "Bỉ"}, -- 2,800,000 (Consolidated Urban Area) ["Antwerp"] = {container = "Bỉ"}, -- 1,270,000 (Consolidated Urban Area) ["Sofia"] = {container = "Bulgaria"}, -- 1,260,000 (Agglomeration) ["Zagreb"] = {container = "Croatia"}, ["Prague"] = {container = "Czech Republic"}, -- 1,470,000 (Agglomeration) ["Brno"] = {container = "Czech Republic"}, -- 729,405 (metro area per Wikipedia as of 2024-01-01 Czech Statistical Office) ["Olomouc"] = {container = "Czech Republic"}, -- 102,293 (city; included only because someone went crazy creating Olomouc-related terms) ["Copenhagen"] = {container = "Đan Mạch"}, -- 1,800,000 (Consolidated Urban Area) ["Helsinki"] = {container = {key = "Uusimaa, Finland", placetype = "region"}}, -- 1,560,000 (Consolidated Urban Area) ["Tbilisi"] = {container = "Georgia"}, -- 1,430,000 (Agglomeration) ["Athens"] = {container = "Hy Lạp"}, ["Thessaloniki"] = {container = "Hy Lạp"}, ["Budapest"] = {container = "Hungary"}, -- FIXME, per Wikipedia "County Dublin" is now the "Dublin Region" ["Dublin"] = {container = {key = "County Dublin, Ireland", placetype = "county"}}, ["Riga"] = {container = "Latvia"}, ["Amsterdam"] = {container = {key = "North Holland, Netherlands", placetype = "province"}}, ["Rotterdam"] = {container = {key = "South Holland, Netherlands", placetype = "province"}}, ["The Hague"] = {container = {key = "South Holland, Netherlands", placetype = "province"}}, -- Christchurch (metro 546,600) and Wellington (metro 439,800) are too small to make it. ["Auckland"] = {container = {key = "Auckland, New Zealand", placetype = "region"}}, ["Oslo"] = {container = {key = "Oslo, Norway", placetype = "county"}}, ["Warsaw"] = {container = {key = "Masovian Voivodeship, Poland", placetype = "voivodeship"}}, ["Katowice"] = {container = {key = "Silesian Voivodeship, Poland", placetype = "voivodeship"}}, --- Ngrams (up through 2022) and Google Scholar (>= 2024) confirms the common form "Krakow" without accent. ["Krakow"] = {container = {key = "Lesser Poland Voivodeship, Poland", placetype = "voivodeship"}, wp = "Kraków"}, ["Kraków"] = {alias_of = "Krakow", display = true}, ["Cracow"] = {alias_of = "Krakow", display = true}, --- Ngrams (up through 2022) and Google Scholar (>= 2024) confirm "Gdańsk" and "Poznań" with accent. ["Gdańsk"] = {container = {key = "Pomeranian Voivodeship, Poland", placetype = "voivodeship"}}, ["Gdansk"] = {alias_of = "Gdańsk", display = true}, ["Poznań"] = {container = {key = "Greater Poland Voivodeship, Poland", placetype = "voivodeship"}}, ["Poznan"] = {alias_of = "Poznań", display = true}, --- Ngrams (up through 2022) and Google Scholar (>= 2024) confirms the common form "Lodz" without accents. ["Lodz"] = {container = {key = "Lodz Voivodeship, Poland", placetype = "voivodeship"}, wp = "Łódź"}, ["Łódź"] = {alias_of = "Lodz", display = true}, ["Lisbon"] = {container = {key = "Lisbon District, Portugal", placetype = "district"}}, ["Porto"] = {container = {key = "Porto District, Portugal", placetype = "district"}}, ["Oporto"] = {alias_of = "Porto", display = true}, ["Bucharest"] = {container = "Romania"}, ["Belgrade"] = {container = "Serbia"}, ["Stockholm"] = {container = "Thụy Điển"}, ["Zurich"] = {container = "Switzerland"}, --- Ngrams (up through 2022) and Google Scholar (>= 2024) confirms the common form "Zurich" without umlaut. --- Even Wikipedia uses the form without umlaut. ["Zürich"] = {alias_of = "Zurich", display = true}, ["Kyiv"] = {container = "Ukraina"}, -- not in Kyiv Oblast -- Don't display-canonicalize Kiev -> Kyiv because in ancient contexts, Kiev is still more common. ["Kiev"] = {alias_of = "Kyiv"}, ["Kharkiv"] = {container = {key = "Kharkiv Oblast, Ukraine", placetype = "oblast"}}, ["Odessa"] = {container = {key = "Odesa Oblast, Ukraine", placetype = "oblast"}, wp = "Odesa"}, -- Don't display-canonicalize Odesa -> Odessa because it may be interpreted as a political statement. ["Odesa"] = {alias_of = "Odessa"}, ------------------ North America, South America --------------------- -- Primary figures from citypopulation.de retrieved on 2025-04-26 (reference date 2025-01-01); -- Wikipedia metropolitan figures from [[w:List of metropolitan areas in the Americas]] based on per-country data; -- Wikipedia city limits figures from [[w:List of largest cities in the Americas]]. ["Buenos Aires"] = {container = "Argentina"}, -- 16,800,000 (Consolidated Urban Area; 13,985,794 metropolitan area per Wikipedia) ["Córdoba, Argentina"] = {container = "Argentina", wp = "%l, %c"}, -- 1,810,000 (Consolidated Urban Area; 1,505,25 city limits per Wikipedia) -- to avoid confusion with Córdoba in Spain ["Córdoba"] = {alias_of = "Córdoba, Argentina"}, ["Cordoba"] = {alias_of = "Córdoba, Argentina", display = "Córdoba"}, ["Rosario"] = {container = "Argentina", wp = "%l, Santa Fe"}, -- 1,510,000 (Consolidated Urban Area; 1,348,725 metropolitan area per Wikipedia) ["Mendoza"] = {container = "Argentina", wp = "%l, %c"}, -- 1,180,000 (Consolidated Urban Area) ["San Miguel de Tucumán"] = {container = "Argentina"}, -- 1,110,000 (Consolidated Urban Area) ["Tucumán"] = {alias_of = "San Miguel de Tucumán"}, ["Tucuman"] = {alias_of = "San Miguel de Tucumán", display = "Tucumán"}, ["Santa Cruz de la Sierra"] = {container = "Bolivia"}, -- 1,960,000 (Consolidated Urban Area); 1,606,671 (city limits per Wikipedia) ["Santa Cruz"] = {alias_of = "Santa Cruz de la Sierra"}, ["La Paz"] = {container = "Bolivia"}, -- 1,870,000 (Consolidated Urban Area; composed of El Alto, now slightly larger, and La Paz) ["El Alto"] = {container = "Bolivia"}, ["Cochabamba"] = {container = "Bolivia"}, -- 1,280,000 (Consolidated Urban Area) ["Santiago"] = {container = "Chile"}, -- 8,400,000 (Consolidated Urban Area; 6,903,479 city limits? per Wikipedia) ["Valparaíso"] = {container = "Chile"}, -- 1,060,000 (Consolidated Urban Area) ["Valparaiso"] = {alias_of = "Valparaíso"}, -- 1,060,000 (Consolidated Urban Area) ["Bogotá"] = {container = "Colombia"}, -- 10,600,000 (Agglomeration; 12,772,828 metropolitan area per Wikipedia) ["Bogota"] = {alias_of = "Bogotá", display = true}, ["Medellín"] = {container = "Colombia"}, -- 4,350,000 (Agglomeration; 4,068,000 metropolitan area per Wikipedia) ["Medellin"] = {alias_of = "Medellín", display = true}, ["Cali"] = {container = "Colombia"}, -- 2,975,000 (Agglomeration; 2,837,000 metropolitan area per Wikipedia) ["Barranquilla"] = {container = "Colombia"}, -- 2,375,000 (Agglomeration; 1,341,160 city limits per Wikipedia) ["Bucaramanga"] = {container = "Colombia"}, -- 1,380,000 (Agglomeration) ["Cartagena, Colombia"] = {container = "Colombia", wp = "%l, %c"}, -- 1,250,000 (Agglomeration) -- to avoid confusion with Cartagena, Spain ["Cartagena"] = {alias_of = "Cartagena, Colombia"}, ["Cúcuta"] = {container = "Colombia"}, -- 1,130,000 (Agglomeration) ["Cucuta"] = {alias_of = "Cúcuta", display = true}, -- to avoid conflict with San Jose, California ["San José, Costa Rica"] = {container = "Costa Rica", wp = "%l, %c"}, -- 2,450,000 (Municipality (urban population); 3,160,000 metropolitan area per Wikipedia) ["San José"] = {alias_of = "San José, Costa Rica"}, ["San Jose"] = {alias_of = "San José, Costa Rica"}, -- display = "San José"; causes error due to San Jose alias for California city; FIXME ["Havana"] = {container = "Cuba"}, -- 2,150,000 (City; 2,137,847 city limits? per Wikipedia) ["Santo Domingo"] = {container = "Dominican Republic"}, -- 3,900,000 (Municipality (urban population); 4,274,651 ??? per Wikipedia) ["Guayaquil"] = {container = "Ecuador"}, -- 3,350,000 (Agglomeration; 3,092,000 metro area? per Wikipedia) ["Quito"] = {container = "Ecuador"}, -- 2,875,000 (Agglomeration; 2,889,703 metro area? per Wikipedia) ["San Salvador"] = {container = "El Salvador"}, -- 1,580,000 (Municipality (urban population)) ["Guatemala City"] = {container = "Guatemala"}, -- 3,375,000 (Municipality (urban population); 3,160,000 metro area? per Wikipedia) ["Port-au-Prince"] = {container = "Haiti"}, -- 3,050,000 (Agglomeration; population of low reliability; 2,915,000 metro area? per Wikipedia) ["San Pedro Sula"] = {container = "Honduras"}, -- 1,330,000 (Consolidated Urban Area) ["Tegucigalpa"] = {container = "Honduras"}, -- 1,220,000 (Urban Area) ["Managua"] = {container = "Nicaragua"}, -- 1,400,000 (Consolidated Urban Area) ["Panama City"] = {container = "Panama"}, -- 1,430,000 (Urban Area) ["Asunción"] = {container = "Paraguay"}, -- 2,350,000 (Municipality (urban population)) ["Lima"] = {container = "Peru"}, -- 12,000,000 (Agglomeration; 11,283,787 ??? per Wikipedia) ["Arequipa"] = {container = "Peru"}, -- 1,210,000 (Agglomeration) ["San Juan"] = {container = {key = "Puerto Rico", placetype = "commonwealth"}, wp = "%l, %c"}, -- 1,910,000 (Consolidated Urban Area) ["Montevideo"] = {container = "Uruguay"}, -- 1,810,000 (Agglomeration; 1,302,954 ??? per Wikipedia) ["Caracas"] = {container = "Venezuela"}, -- 3,850,000 (Consolidated Urban Area; 5,243,301 ??? per Wikipedia) ["Maracaibo"] = {container = "Venezuela"}, -- 2,825,000 (Consolidated Urban Area; 5,278,448 ??? per Wikipedia) -- to avoid confusion with Valencia (city and autonomous community of Spain) ["Valencia, Venezuela"] = {container = "Venezuela", wp = "%l, %c"}, -- 2,100,000 (Consolidated Urban Area) ["Valencia"] = {alias_of = "Valencia, Venezuela"}, ["Maracay"] = {container = "Venezuela"}, -- 1,480,000 (Consolidated Urban Area) ["Barquisimeto"] = {container = "Venezuela"}, -- 1,360,000 (Consolidated Urban Area) } export.misc_cities_group = { canonicalize_key_container = make_canonicalize_key_container(nil, "quốc gia"), default_placetype = "thành phố", data = export.misc_cities, } --[==[ var: List of all known locations, in groups. The first group lists continents and continental regions, followed by three groups listing top-level locations: countries, "country-like entities" (de-facto/unrecognized/etc. countries and dependent territories) and former polities (countries, empires, etc.). After that come first-level subpolities (administrative divisions) of several, mostly large, countries, followed by groups of cities. China and the United Kingdom include second-level subpolities (in the case of China, only the largest ones as the full list runs in the hundreds). ]==] export.locations = { export.continents_group, export.countries_group, export.country_like_entities_group, export.former_countries_group, export.australia_group, export.austria_group, export.bangladesh_group, export.brazil_group, export.bulgaria_group, export.canada_group, export.china_group, export.china_prefecture_level_cities_group, export.china_prefecture_level_cities_group_2, export.egypt_group, export.finland_group, export.france_group, export.france_departments_group, export.germany_group, export.greece_group, export.india_group, export.indonesia_group, export.iran_group, export.ireland_group, export.italy_group, export.japan_group, export.laos_group, export.lebanon_group, export.malaysia_group, export.malta_group, export.mexico_group, export.moldova_group, export.morocco_group, export.netherlands_group, export.new_zealand_group, export.nigeria_group, export.north_korea_group, export.norway_group, export.pakistan_group, export.philippines_group, export.poland_group, export.portugal_group, export.romania_group, export.russia_group, export.saudi_arabia_group, export.south_africa_group, export.south_korea_group, export.spain_group, export.taiwan_group, export.thailand_group, export.turkey_group, export.ukraine_group, export.united_kingdom_group, export.united_states_group, export.england_group, export.northern_ireland_group, export.scotland_group, export.wales_group, export.vietnam_group, export.australia_cities_group, export.brazil_cities_group, export.canada_cities_group, export.france_cities_group, export.germany_cities_group, export.india_cities_group, export.indonesia_cities_group, export.italy_cities_group, export.japan_cities_group, export.mexico_cities_group, export.nigeria_cities_group, export.pakistan_cities_group, export.philippines_cities_group, export.russia_cities_group, export.saudi_arabia_cities_group, export.south_korea_cities_group, export.spain_cities_group, export.taiwan_cities_group, export.united_kingdom_cities_group, export.united_states_cities_group, export.new_york_boroughs_group, export.vietnam_cities_group, export.misc_cities_group, } return export bt3abpi203abwvezvrjjytenipnlsm9 Thảo luận Thành viên:P. ĐĂNG 3 286760 2351186 2350199 2026-05-07T16:45:19Z MediaWiki message delivery 19980 Mục mới: /* Thư mời cho đề nghị cấp quyền bot */ 2351186 wikitext text/x-wiki <div style="border:1px solid #FDA; vertical-align:top; padding: 0.5em; background: #FFFFE5;"> <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 P. ĐĂNG! 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; background: #FEC; border: 1px solid #FDA; margin-top: 1em; font-size: 1em"> [[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>&nbsp;--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 07:34, ngày 24 tháng 6 năm 2023 (UTC) == BQV == Bạn có muốn làm BQV ở Wiktionary này không? Nếu có hứng thú, mời bạn ra ứng cử ở [[Thảo luận Wiktionary:Bảo quản viên]]. Tôi muốn tuyển thêm BQV cho Wiktionary vì Wiktionary hiện tại không có BQV thường trực. Đây là môi trường thực tập tốt trước khi làm ĐPV bên Wikipedia. Hồi xưa, tôi cũng đóng góp cho cả hai dự án cùng một lúc (Wikipedia + Wiktionary). [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 13:32, ngày 2 tháng 8 năm 2023 (UTC) :@[[Thành viên:Nguyentrongphu|Nguyentrongphu]] Tôi hay hoạt động bên đây thật nhưng bên đây tôi có ít sửa đổi. Chỉ vài tuần trước tôi xin quyền lùi sửa để chống phá hoại nhưng không đủ yêu cầu thì BQV làm sao tôi ứng cử được. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 14:33, ngày 2 tháng 8 năm 2023 (UTC) ::Bên Wiktionary không có yêu cầu tối thiểu để làm BQV. Bạn có đóng góp bên Wikipedia thì ra ứng cử là ok rồi. Quan trọng là bạn có muốn vác tù và hàng tổng không thôi? [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 15:23, ngày 2 tháng 8 năm 2023 (UTC) :::@[[Thành viên:Nguyentrongphu|Nguyentrongphu]] Tất nhiên, nếu có cơ hội được công đồng giao phó thì tôi sẽ làm. Nhưng chắc tôi cần tích cực cày sửa đổi một thời gian vì hiện tại tôi có dưới 300 sửa đổi. Có thể, tôi nghĩ tôi sẽ tích cực bên dự án này vài tuần cái đã. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 15:27, ngày 2 tháng 8 năm 2023 (UTC) ::::Bạn tính vậy cũng được. Cày sửa đổi là dễ mà. 2 tuần sau, mời bạn tự ra ứng cử. Tôi sẽ ủng hộ. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 15:57, ngày 2 tháng 8 năm 2023 (UTC) == Mệt nhỉ? == Tụi này lì như trâu thật, mới chập sáng đòi vặt lông bẻ cổ tổ tông nhà tôi này. – [[Thành viên:Quangkhanhhuynh|Quangkhanhhuynh]] ([[Thảo luận Thành viên:Quangkhanhhuynh|thảo luận]]) 08:43, ngày 3 tháng 8 năm 2023 (UTC) :@[[Thành viên:Quangkhanhhuynh|Quangkhanhhuynh]] Tôi qua đây thì gặp TTS. Haha MTRIRod với bạn Phú nói đúng, tên này ám tôi như ma ám rồi. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 08:44, ngày 3 tháng 8 năm 2023 (UTC) ::Mà hình như bên vi chưa cấm tên [https://vi.wikipedia.org/wiki/%C4%90%E1%BA%B7c_bi%E1%BB%87t:%C4%90%C3%B3ng_g%C3%B3p/%C4%90%E1%BB%ABng_b%C6%A1_S%C6%A1n_n%E1%BB%AFa,_S%C6%A1n_c%C3%B4_%C4%91%C6%A1n_l%E1%BA%AFm! này] thì phải? – [[Thành viên:Quangkhanhhuynh|Quangkhanhhuynh]] ([[Thảo luận Thành viên:Quangkhanhhuynh|thảo luận]]) 08:48, ngày 3 tháng 8 năm 2023 (UTC) :::@[[Thành viên:Quangkhanhhuynh|Quangkhanhhuynh]] Chắc cấm sót, mà TTS chắc không dùng lại tk đó đâu. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 08:50, ngày 3 tháng 8 năm 2023 (UTC) ::::Đâu, vừa nhắc xong thì hình như mới chửi Nguyenmy kìa. – [[Thành viên:Quangkhanhhuynh|Quangkhanhhuynh]] ([[Thảo luận Thành viên:Quangkhanhhuynh|thảo luận]]) 08:52, ngày 3 tháng 8 năm 2023 (UTC) :::::@[[Thành viên:P. ĐĂNG|P. ĐĂNG]] @[[Thành viên:Quangkhanhhuynh|Quangkhanhhuynh]] @[[Thành viên:Tryvix1509|Tryvix1509]] @[[Thành viên:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] Mà không biết tôi có nên đệ đơn cấm chỉ tên TTS này đến Nhóm Tin cậy & An toàn của tổ chức Wikimedia không nhỉ? – [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 09:58, ngày 3 tháng 8 năm 2023 (UTC) ::::::@[[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] Tổ chức này hoạt động như thế nào?. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 10:03, ngày 3 tháng 8 năm 2023 (UTC) :::::::Tôi cũng chỉ [[m:WMF Global Ban Policy/vi|đọc thoáng qua sơ sơ về quy định cấm chỉ toàn hệ thống tổ chức này]], và thấy tổ chức hoạt động qua email ca@wikimedia.org – [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 10:07, ngày 3 tháng 8 năm 2023 (UTC) ::::::::@[[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] Là cấm chỉ một tk toàn cầu bên meta đúng không?. Chắc không cần rồi và cũng không hiệu quả. Tôi nhớ không lầm TTS bị cấm toàn cục từ tk đầu tiên rồi. Hiện giờ dùng proxy thì cấm toàn cục gì nữa. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 10:10, ngày 3 tháng 8 năm 2023 (UTC) :::::::::Các tk rối của TTS như bạn nói chỉ bị khóa toàn cục = TTS vẫn chưa bị cấm chỉ trên toàn hệ thống. Tôi nghĩ biện pháp này là cách hay nhất để răn đe tên này, chắc tôi nghĩ để lúc khác làm sau vậy. – [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 10:17, ngày 3 tháng 8 năm 2023 (UTC) ::::::::::@[[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] Chẳng phải khóa toàn cầu là trên toàn hệ thống Wikipedia? TTS không dùng một tk cố định và dùng proxy. Cấm tk này thì sẽ nhảy qua tk khác bằng một IP khác. Đề xuất của bạn không rõ ràng, tôi chưa hiểu lắm. Nếu được thì làm ngay bây giờ luôn đi. Tôi mới báo cái tk của TTS lên meta cho tiếp viên cấm toàn cầu đấy, hai tk nãy giờ phá hoại hiện đang bị cấm. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 10:25, ngày 3 tháng 8 năm 2023 (UTC) == Bản mẫu cảnh báo mới == Cảm ơn bạn đã tạo bản mẫu cánh báo về việc sử dụng Wiktionary để quảng cáo. Nhưng tôi thấy bên Wikipedia tiếng Việt [[:w:vi:Bản mẫu:Spam|trang Bản mẫu:Spam]] là dùng để báo cáo liên kết rác, vì vậy xin phép tôi được đổi tên bản mẫu [[Đặc biệt:So sánh di động/2119930|từ "spam-1" thành "Cb1-spam"]]. Tôi không biết việc làm của tôi có đúng không do bên Wikipedia tiếng Việt cũng có [[:w:vi:Bản mẫu:Cb1-spam|bản mẫu tên như thế này]] chắc dùng để cảnh báo thành viên về việc thêm liên kết quảng cáo trong bài. Và nếu bạn thấy tôi sai mong bạn hãy lùi lại. Cảm ơn bạn. – [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 16:54, ngày 14 tháng 8 năm 2023 (UTC) :[[Thành viên:DefenderTienMinh07]]: Cảm ơn Tiến Minh. Nhưng lần sau bạn hãy đọc kỹ nội dung bản mẫu, bản mẫu này không phải cảnh báo thêm link spam mà là thông tin quảng cáo, tức là khi tv tạo bài PR (trang mới, PR trong trang thảo luận, hoặc chèn thông tin PR) thì dùng bản mẫu này. Mỗi wiktionary hoạt động độc lập, cộng đồng bên ta vốn nhỏ bé và ít người nên đặt tên bản mẫu đừng thêm vài chữ làm rườm rà khó nhớ, hầu hết thành viên không dùng Twinkle và đặt biển thủ công nên tôi chọn tên ngắn để các bạn dễ dùng. Nhưng nếu bạn đã đổi thì để vậy cũng được vì tôi đang cần làm thêm vài thứ, nâng cấp một vài thứ thiết yếu và để tên tạm như thế cũng được nếu tương lai có phát sinh thêm tôi sẽ thay đổi một vài bản mẫu cho phù hợp và nhất quán. Sẵn đây tôi hỏi bạn có dùng Twinkle không? Nếu có cho tôi xin một vài ý kiến có được không?. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 08:25, ngày 16 tháng 8 năm 2023 (UTC) ::Do dự án đang trong phát triển về mảng tin học nên tôi nghĩ trang global.js trên Meta sẽ là giải pháp hay để cài công cụ. Các công cụ hữu ích tôi vừa tìm được cho dự án: Restorer của BrandonXLF, TwinkleGlobal của Xiplus và WarningDialog.js của Tryvix1509 và nhiều người khác. Tôi chưa hiểu câu hỏi bạn đặt ra cho lắm, nếu bạn đang hỏi về công cụ TwinkleMobile của Plantaest trên dự án này thì tôi nghĩ bạn nên hỏi Plantaest do công cụ vẫn chưa được Plantaest kích hoạt trên đây. – [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 18:07, ngày 17 tháng 8 năm 2023 (UTC) :::@[[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] Ý tôi là việc dùng Twinkle của bạn trên đây có giống bên Wikipedia không? Nó có chức năng gắn biển, cảnh báo hay chỉ dừng lại ở chức năng lùi sửa. Tôi không dùng Twinkle trên đây, nên tôi mới hỏi bạn để biết thêm thông tin do tôi cần nâng cấp một vài bản mẫu và muốn kích hoạt nó vô Twinkle, tôi muốn Twinkle bên đây được cấu hình lại cho tiện và đầy đủ chức năng giống bên các dự án khác cho các bạn dùng. Tôi sẽ làm trong phạm vi có thể, nhưng chắc sẽ cần thời gian. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 10:38, ngày 18 tháng 8 năm 2023 (UTC) ::::Việc dùng Twinkle trên đây của tôi chỉ là để phục vụ mục đích tuần tra TĐGĐ trong việc lùi tất cả sửa đổi không thiện chí do tôi chưa có quyền lùi sửa. Nếu bạn muốn công cụ có thể cảnh báo thành viên thì công cụ WarningDialog.js của Tryvix có thể giúp bạn trong trường hợp này. Bạn nên hỏi Tryvix xem sao (tôi đã ping @[[Thành viên:Tryvix1509|Tryvix1509]]) – [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 17:14, ngày 21 tháng 8 năm 2023 (UTC) ::Quay lại chủ đề bản mẫu cảnh báo vừa tạo không biết có nên dùng bản mẫu '''khi mà trường hợp tài khoản đó bị chặn bởi bộ lọc sai phạm''' không chứ tôi ngày nào mà chả thấy mấy tài khoản spambot dùng Wiktionary để quảng cáo có chèn đường link không à dẫn tới việc bị chặn và bị ghi lại trong bộ lọc sai phạm mà không ai phát hiện ra. (bạn có thể xem đầy đủ tại [[Đặc biệt:Nhật trình sai phạm]]) – [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 17:23, ngày 21 tháng 8 năm 2023 (UTC) :::[[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] Thế thì dùng vậy cũng được, để tôi chỉnh lại bản mẫu cho ý tựu chung hơn. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 04:08, ngày 22 tháng 8 năm 2023 (UTC) == BQV == Rất vui vì bạn đã dũng cảm ra vác tù và hàng tổng. Tôi sẽ ủng hộ. Tuy nhiên, bạn cần gửi thư mời tham gia BQ BQV đến các thành viên trên Wiktionary (tv tích cực lẫn tv thỉnh thoảng xuất hiện). Chúc bạn đắc cử! [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 05:55, ngày 24 tháng 8 năm 2023 (UTC) :Tôi mới cấp quyền cho bạn. Chúc bạn tiếp tục hoạt động tích cực ở cả hai dự án, trao dồi thêm kinh nghiệm bảo quản và vài tháng nữa tự ra ứng cử làm ĐPV ở Wikipedia. Tôi sẽ ủng hộ nếu như không có gì thay đổi. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 20:52, ngày 2 tháng 9 năm 2023 (UTC) == Thư mời tham gia biểu quyết == <div style="padding: 0.5em; background: #f8f8ff; margin-top: 1em; font-size: 1em"> {| class="table" style="width: 80%; background-color: #ACE1AF; border: 1px solid #fceb92; margin: auto; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:Logo vote.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | '''Mời bạn cho ý kiến về việc cấp quyền Bảo quản viên cho thành viên [[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] tại trang [[Thảo luận Wiktionary:Bảo quản viên#DefenderTienMinh07|Thảo luận Wiktionary:Bảo quản viên]]. Xin cảm ơn. <small>Hãy cùng tích cực tham gia các biểu quyết và thảo luận về chúng. Mỗi hành động của bạn sẽ góp phần không nhỏ để xây dựng các mục từ trên Wiktionary - tài sản chung của cộng đồng chúng ta, giúp wiki ta ngày càng phát triển vững mạnh! Thân ái! |} </div> [[User:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[User talk:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 10:25, ngày 24 tháng 8 năm 2023 (UTC) == Bất ngờ chưa! == Tôi tới đây là để thông báo một tin vui cho bạn. {{ý kiến|1=Tin vui là:}} Hiện tại bạn '''đã là BQV trên dự án Wiktionary tiếng Việt'''. Bạn lúc này cảm thấy thể nào? Mong bạn sẽ làm tốt công việc của mình như tôi đã nói lúc bỏ phiếu. – [[Thành viên:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[Thảo luận Thành viên:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 21:02, ngày 2 tháng 9 năm 2023 (UTC) :Tôi cũng không biết nói thế nào, nhưng cảm ơn bạn và Phú cũng như các thành viên khác đã hỗ trợ tôi từ dự án này qua dự án khác. Từ nay, tôi đảm nhận thêm nhiều nhiệm vụ hơn trên Wiktionary nên sẽ cố gắng chọn cách làm hiệu quả tốt nhất cho dự án. Tôi ít nói quá, vài dòng trên là tất cả, tôi không nghĩ thêm được gì để diễn tả hết. Cảm ơn vì thông báo này. Chúc bạn một ngày tốt lành. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 04:50, ngày 3 tháng 9 năm 2023 (UTC) == Một số sửa đổi của bạn gần đây == Chào bạn! Về một số sửa đổi của bạn gần đây, như tại [[khả năng]], [[chứng minh]], ... Nếu phần định nghĩa có các từ kiểu như "nước ta", "nhân dân ta", ... thì ta nên thay bằng các từ khác hoặc xóa đi. Còn nếu nó có ở phần vd thì không cần xóa do phần này chấp nhận chứa các từ như vậy--.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 12:48, ngày 16 tháng 9 năm 2023 (UTC) :@[[Thành viên:TheHighFighter2|TheHighFighter2]] Đúng vậy, tôi đã xoá chúng đi vì Wiktionary:Thái độ trung lập. Wiktionary có quy định về phần vd được phép ngoại lệ này không?. Tôi đã có nói chuyện với HCV Mxn về điều này. Tôi khẳng định nó không trung lập và xoá đi là cần thiết, và sẽ bổ sung phần ví dụ mới vào. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 14:19, ngày 16 tháng 9 năm 2023 (UTC) ::@[[Thành viên:P. ĐĂNG|P. ĐĂNG]] Hiện tại trên dự án không có trang nào tên là [[Wiktionary:Thái độ trung lập]]. Chả là bạn muốn tìm trang quy định liên quan tới vấn đề chăng? – [[Thành viên:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[Thảo luận Thành viên:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 14:29, ngày 16 tháng 9 năm 2023 (UTC) :::@[[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] Chưa có chứ không phải không. Các dự án Wikipedia đều hoạt động hướng đến chung là thái độ trung lập. Wiktionary tiếng Việt không phải Wiktionary Việt Nam. HCV Mxn cũng đi xoá những thứ này. Khi dùng từ như "dân ta, nhân dân ta", khi người nước ngoài đọc, bạn nghĩ sao về điều này? Chúng ta hướng đến một dự án phục vụ mọi người, mọi chủng tộc và quốc gia, không phải riêng một đất nước nào. Vì vậy, mỗi dòng viết ra phải dựa trên thái độ trung lập. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 14:36, ngày 16 tháng 9 năm 2023 (UTC) ::::Bạn nói cũng đúng vì theo quy định bên Wiktionary tiếng Anh "all entries must be written from a '''neutral point of view''', representing views fairly and without bias" (tạm dịch: Mọi nội dung được đưa vào đều phải được viết từ một cái nhìn trung lập, thể hiện cái nhìn công bằng và không thiên kiến). Nhưng tôi nghĩ cũng không nhất thiết lắm phải kiểm tra và sửa lại những nội dung POV vì nội dung không trung lập thường nó cũng không ảnh hưởng gì nhiều đến dự án lắm. – [[Thành viên:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[Thảo luận Thành viên:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 14:46, ngày 16 tháng 9 năm 2023 (UTC) :::::@[[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] Đây là điều đương nhiên. Chúng ta đang hoạt động trên đâu? Wiktionary là dự án bách khoa, nó ưu tiên thái độ trung lập, nơi mà một người Mỹ có thể qua đọc bài viết của một Wikimedia tiếng Đức, tiếng Việt hay tiếng Trung. Khi không trung lập, bạn nói không nhất thiết sửa lại là sao?. Đến nay tôi mới phát hiện Wiktionary tiếng Việt đang có văn phong không trung lập rất nhiều, trích câu Hồ Chí Minh, dùng thơ... Tôi cần BQV TheHighFighter2 phản hồi điều này, lẽ ra phải thảo luận với tôi trước khi lùi sửa, thứ mang tính chất mâu thuẫn. Nếu có quy định nào nói phần ví dụ ta được ngoại lệ thì tôi sẽ xem lại sửa đổi của mình. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 14:53, ngày 16 tháng 9 năm 2023 (UTC) ::::::@[[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] Tôi dám chắc là không có quy định nào về ngoại lệ này cả. Không trung lập mới là đi ngược với quy định của bách khoa. Nội dung trên đây vốn đa phần được sao chép từ FVDP một dự án không có quy định tính trung lập, khi dùng nó đưa vô thì phải xem xét ở một vài khía cạnh chứ không copy là xong được. Wiktionary không phải từ điển của Việt Nam, nó cũng không phải sách giáo khoa, không dùng văn phong thiên vị một phía, thêm thơ lại không trung lập. Bạn sang các Wiktionary tiếng khác xem, có nền tảng wiki nào dùng những câu ví dụ như "nhân dân ta chiến đấu bảo vệ tổ quốc" "chiến tranh chống đế quốc Mỹ", có xuất hiện không?. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 14:58, ngày 16 tháng 9 năm 2023 (UTC) 1. Bên en có rất nhiều mục có vd chứa các từ "[https://en.wiktionary.org/w/index.php?search=%22our+country%22&title=Special:Search&profile=advanced&fulltext=1&ns0=1 our country]", "[https://en.wiktionary.org/w/index.php?search=%22n%C6%B0%E1%BB%9Bc+ta%22&title=Special:Search&ns0=1&searchToken=12thcn782xmsjc7aixwau68ok nước ta]; bên fr có "[https://fr.wiktionary.org/w/index.php?search=%22notre+pays%22&title=Sp%C3%A9cial:Recherche&profile=advanced&fulltext=1&searchengineselect=mediawiki&ns0=1&ns100=1&ns106=1&ns110=1&searchToken=vol8t2pu9urr4hv60l40oom8 notre pays]" (đất nước chúng tôi) 2. Khi lấy vd cho mục "[[Đảng ta]]", "[[Mĩ nguỵ]]", "[[ba que]]" thì ta nên lấy vd như nào? --.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 15:57, ngày 16 tháng 9 năm 2023 (UTC) ::@[[Thành viên:TheHighFighter2|TheHighFighter2]] Xin gửi bạn một phần tin nhắn của tôi với HCB Mxn: "tất cả các câu thí dụ này được nhập từ Dự án Từ điển tiếng Việt miễn phí (FVDP), dự án này sao chép nguyên cả lời định nghĩa từ một số từ điển khác, có lẽ bao gồm những cuốn từ điển trong nước. (FVDP cũng có nhiều danh ngôn của Hồ Chí Minh.) Mấy năm nay tôi cũng muốn gạt đi những câu thí dụ không trung lập hoặc sửa lại theo thuật ngữ trung lập hơn. Đây chỉ là một trong rất nhiều điều thiếu sót của việc nhập FVDP. Nếu bạn có thể giúp dọn dẹp các câu thí dụ và danh ngôn thì tốt quá". Những từ tiếng Việt được xây dựng bên en cũng đa phần dùng bot và người mở rộng có cả những tv người Việt (từ ngoại quốc có thể không bị kiểm duyệt gắt gao khi người kiểm duyệt không am hiểu thứ tiếng, giống như có tv nào tạo bài tiếng phạn hay chữ Hán bên đây chúng ta thì có thể tỷ lệ phần trăm sai phạm bị bỏ qua sẽ nhiều hơn các từ hệ chữ chúng ta dùng). Còn bên fr, bạn xem ví dụ của họ có liên quan đến chủ thể cỡ nào? Nó đáng bao nhiêu phần trăm? Rõ ràng như Wiktionary vi không?. Về trường hợp lấy ví dụ của các từ như "Đảng ta" "Mĩ ngụy" thì đây là một từ, trích quy định "Tất cả các bài viết và các nội dung bách khoa khác tại Wikipedia phải được viết trên một quan điểm trung lập (QDTL), thể hiện một cách công bằng và không thiên vị" tôi nghĩ bạn đủ khả năng tự suy ra hướng tôi đang muốn nói. Khi bạn dùng từ này vô trường hợp như "Mĩ ngụy xâm chiếm nước ta" --> ám chỉ rõ ràng đây là dự án tiếng Việt và nước ta là Việt Nam. Bản chất từ tôi không nói nó vi phạm thái độ trung lập, nhưng tùy ngữ cảnh mà bạn đưa vào là một vấn đề đấy. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 16:18, ngày 16 tháng 9 năm 2023 (UTC) :Thì thế tôi mới nói "không nhất thiết lắm phải kiểm tra và sửa lại những nội dung POV" đó. Nội dung không trung lập không có nghĩa là nội dung đó không hữu ích. Nói chung là tùy trường hợp, hợp lý là được miễn sao nội dung đó không quá khích. – [[Thành viên:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[Thảo luận Thành viên:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 16:12, ngày 16 tháng 9 năm 2023 (UTC) ::@[[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] Bạn có biết đang nói cái gì không vậy? Không trung lập = vi phạm quy định. Sửa đổi sai đang cần sửa nhưng bạn lại nói không cần thiết?. WP:Thái độ trung lập là một trong những trụ cột của Wikimedia, cho dù đó là sửa đổi thiện chí nhưng vi phạm thì cũng không cần. Dự án chúng ta các tv đã không còn khả năng sửa điều này? Nếu không, tại sao chấp nhận nó?. Sao có thể nhưng không thay bằng một nội dung vừa hữu ích vừa phù hợp với chính sách của ta hơn. Tôi không hiểu bạn Tiến Minh nói không nhất thiết giải quyết những điều này là gì? Bên Wikipedia có nhiều tk bị cấm vì thái độ trung lập đấy và thành viên không kiểm soát được điều này nên mấy tk này quay lại và thành rối nằm vùng. Phần nội dung hiện rõ lên vậy, bạn lại nói là không quá khích. Thế nào là quá khích, đủ để các tv bắt tay vào làm? Tôi xin nhắc lại, Wiktionary tiếng Việt không phải Wiktionary Việt Nam. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 16:26, ngày 16 tháng 9 năm 2023 (UTC) Hướng giải quyết: Nếu 1 mục từ bình thường có vd chứa các từ như trên: thay thế vd khác. Còn các từ liên quan đến chính trị, trường hợp đặc biệt khác, thì có thể lấy vd chứa những từ như trên. Bạn thấy thế nào? --.--[[Thành viên:TheHighFighter2|TheHighFighter2]] ([[Thảo luận Thành viên:TheHighFighter2|thảo luận]]) 16:53, ngày 16 tháng 9 năm 2023 (UTC) :@[[Thành viên:TheHighFighter2|TheHighFighter2]] Xin phiền bạn đưa phần tin nhắn này ra trang thảo luận vì Tiến Minh đã gửi thư nên tôi đã di chuyển nó ra thảo để mọi người có thể cùng nhau giải quyết. Cảm ơn bạn. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 17:00, ngày 16 tháng 9 năm 2023 (UTC) :''Đã di chuyển đến [[Wiktionary:Thảo luận#Tính trung lập]].'' &nbsp; – [[Thành viên:Mxn|Nguyễn Xuân Minh]]&nbsp;<sup>[[Thảo luận Thành viên:Mxn|<span style="display: inline-block;">&#x1f4ac;</span>]]</sup> 01:56, ngày 17 tháng 9 năm 2023 (UTC) == [[Cửu đoạn tuyến]] == Phiền bạn check và gỡ một số nội dung không trung lập trong mục từ này (nếu có), tôi thấy có nội dung không trung lập nhưng chưa thể gỡ do liên quan đến mục từ, xin cảm ơn. – [[Thành viên:DefenderTienMinh07|<span style="background:#808080;color:#FFFF00;border-radius:3px;"> '''☀DefenderTienMinh⛤☯☽'''</span>]] ([[Thảo luận Thành viên:DefenderTienMinh07|<span style="font-family:Simhei;color:#808080;">talk</span>]]) 11:34, ngày 10 tháng 10 năm 2023 (UTC) :[[Thành viên:DefenderTienMinh07|DefenderTienMinh07]] Tôi không thấy có thông tin nào là không trung lập, bài viết có nội dung rất ít, đây là bài do bạn khởi tạo. Nếu vẫn còn tin phần nào là không trung lập, bạn cứ thoải mái dẫn vào đây tôi xem. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 15:42, ngày 10 tháng 10 năm 2023 (UTC) == Kay == Kay đang diễn tuồng và giả làm Ti2008. Ti2008 và tôi thật là bạn thân trên Wikipedia và đã biết nhau từ năm 2008 rồi. Cách nói chuyện đó chỉ có thể là Kay. Mai mốt, nếu Kay tái xuất ở đây thì bạn cứ việc cấm vô hạn. Nếu là Ti2008 thật thì bạn ấy sẽ log vào acc Ti2008 để nói chuyện với tôi. [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 23:34, ngày 14 tháng 12 năm 2023 (UTC) == [[Thành viên:WhoAlone]] == Bạn nên đề cử tv này luôn để dự án chúng ta có thêm 2 BQV mới rất tích cực! [[Thành viên:Nguyentrongphu|Nguyentrongphu]] ([[Thảo luận Thành viên:Nguyentrongphu|thảo luận]]) 02:58, ngày 31 tháng 12 năm 2023 (UTC) == Hellu bạn == Nay có nhã hứng ghé qua đây chút, tui đang tính đóng góp dự án này và duy trì bên Wikiquote (bên đó sau vụ thi viết bài là lại vắng). Nên là bạn có thể giới thiệu sơ sơ về cách hoạt động bên này không? [[Thành viên:Pminh141|Pminh141]] ([[Thảo luận Thành viên:Pminh141|thảo luận]]) 18:22, ngày 23 tháng 7 năm 2024 (UTC) :[[Thành viên:Pminh141|Pminh141]] Chỉ cần xem [https://en.wiktionary.org/wiki/Wiktionary:Criteria_for_inclusion# Wiktionary:Độ nổi bật] và [https://en.wiktionary.org/wiki/Wiktionary:Neutral_point_of_view Thái độ trung lập] là có thể đóng góp (có thể tham khảo từ điển để viết). Dự án còn rất sơ khai về mảng quy định, tương lai tôi sẽ dự tính soạn thảo tập trung vô mảng này. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 02:24, ngày 24 tháng 7 năm 2024 (UTC) == Đổi thay == Phiền bạn giúp cấp lại quyền lùi sửa và gỡ quyền tại acc chính với ạ, Bạn có thể xem [[w:en:Wikipedia:Administrators' noticeboard#Unmerge my account from global|tại thảo luận này]], xin cảm ơn. – [[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]] ([[Thảo luận Thành viên:TienMinh-mun6xnChing|thảo luận]]) 12:01, ngày 29 tháng 10 năm 2024 (UTC) :{{Done}} [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 14:54, ngày 29 tháng 10 năm 2024 (UTC) == Các công cụ (tập lệnh) ở Wiktionary == Phiên bản sắp tới của Zinnia sẽ mở rộng cho phép sử dụng ở Wiktionary. Tôi muốn hỏi trong quy trình làm việc ở đây, bạn và mọi người có sử dụng công cụ hay tập lệnh (script) gì không, để bổ sung vào Zinnia. Cảm ơn. [[Thành viên:Plantaest|Plantaest]] ([[Thảo luận Thành viên:Plantaest|thảo luận]]) 13:11, ngày 2 tháng 11 năm 2024 (UTC) : Tag thêm @[[Thành viên:TienMinh-mun6xnChing|TienMinh-mun6xnChing]]. [[Thành viên:Plantaest|Plantaest]] ([[Thảo luận Thành viên:Plantaest|thảo luận]]) 13:11, ngày 2 tháng 11 năm 2024 (UTC) ::[[Thành viên:Plantaest|Plantaest]] Các công cụ hay script để chống phá hoại thông thường các tv sẽ tự cài đặt ở Meta. Vì Wiktionary chỉ có mỗi BQV mới có bộ công cụ đầy đủ chức năng (gồm cả thao tác đánh dấu tuần tra), trừ "lùi sửa" vì có quyền riêng cho tác này. Do khác Wikipedia vấn đề này, tôi nghĩ giao diện cần nghiên cứu thêm nếu áp dụng. P/s Tôi dùng Restorer thay cho Twinkle (khi hồi sửa). [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 14:02, ngày 2 tháng 11 năm 2024 (UTC) == Cần hỗ trợ về quyết định xóa bài == Em đang chỉnh sửa bài đăng và không biết là add vào gây spam, phiền anh hỗ trợ em với ạ – [[Thành viên:Nntrinh76|Nntrinh76]] ([[Thảo luận Thành viên:Nntrinh76|thảo luận]]) 11:34, ngày 17 tháng 12 năm 2024 (UTC) :Theo [https://vi.wiktionary.org/wiki/%C4%90%E1%BA%B7c_bi%E1%BB%87t:Nh%E1%BA%ADt_tr%C3%ACnh/Nntrinh76 nhật trình], bài viết bạn tạo mang nội dung vượt ngoài dự án (Wiktionary chỉ bao gồm các mục từ). Bài viết này cũng có nội dung PR cá nhân. Đó là lý do cho việc nhắc nhở. Mời bạn tham khảo [[Wiktionary:Quy định và hướng dẫn]] để rút kinh nghiệm cho các lần sửa đổi sau. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 13:16, ngày 17 tháng 12 năm 2024 (UTC) ::anh có thể mở để em chỉnh sửa được không ạ? do cũng là lần đầu em viết và em đã dùng 2 ngày tổng hợp.. – [[Thành viên:Nntrinh76|Nntrinh76]] ([[Thảo luận Thành viên:Nntrinh76|thảo luận]]) 15:35, ngày 17 tháng 12 năm 2024 (UTC) :::Trang bạn đã tạo không liên quan gì đến Wiktionary cả, tại vì đây là trang từ điển, không phải là nơi để tạo hoặc chỉnh sửa bài viết. Cho nên tôi, Đăng hoặc bqv khác không thể mở khóa cái trang đó được. – [[Thành viên:Nguyên Hưng Trần|<span style="color:#74a12e;font-family:Georgia, serif;">'''NHT'''</span>]] ([[Thảo luận Thành viên:Nguyên Hưng Trần|💬]]) 16:15, ngày 17 tháng 12 năm 2024 (UTC) == lời cảm ơn == Cảm ơn vì đã trả lời trên [[Thảo_luận:bồ_các]], vì đó là không gian công cộng nên không tiện. Không biết nhấn nút cảm ơn thì kết quả sẽ được chuyển đến người đó hay kq sẽ như thế nào nhỉ, vì nhấn nhiều lần rồi nhưng không biết sẽ như thế nào? Mình có ai cảm ơn đâu, còn IP thì không cảm ơn được. – [[Thành viên:Henrydat|Henrydat]] ([[Thảo luận Thành viên:Henrydat|thảo luận]]) 15:05, ngày 13 tháng 2 năm 2025 (UTC) :Từ người thực hiện, chuyển đến người được nhận. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 16:02, ngày 13 tháng 2 năm 2025 (UTC) == Xin chào == Nếu có thể tôi cần giúp đỡ – [[Thành viên:Henrydat|Henrydat]] ([[Thảo luận Thành viên:Henrydat|thảo luận]]) 17:32, ngày 14 tháng 3 năm 2025 (UTC) :[[Thành viên:Henrydat|Henrydat]] Bạn có thể nêu vấn đề cụ thể. Nếu là các việc liên quan dự án, tôi sẽ giúp trong khả năng. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 17:42, ngày 14 tháng 3 năm 2025 (UTC) ::Ô trời, tim tôi đang đập đây, tôi thấy chữ rối ở đây bạn biết tôi là ai còn hỏi? – [[Thành viên:Henrydat|Henrydat]] ([[Thảo luận Thành viên:Henrydat|thảo luận]]) 17:50, ngày 14 tháng 3 năm 2025 (UTC) :::Này tôi không có thời gian, tới giờ này thì việc này rất gấp? – [[Thành viên:Henrydat|Henrydat]] ([[Thảo luận Thành viên:Henrydat|thảo luận]]) 17:55, ngày 14 tháng 3 năm 2025 (UTC) ::::tất nhiên tôi không có ý nói tôi là rối, tôi chỉ xem lịch sử đóng góp nói vậy thôi, nếu bạn biết trước tôi là ai thì mới giúp được – [[Thành viên:Henrydat|Henrydat]] ([[Thảo luận Thành viên:Henrydat|thảo luận]]) 17:58, ngày 14 tháng 3 năm 2025 (UTC) :::::Rồi xong tôi đã đến lộn chỗ, quyết định không hoạt đông tại dự án này là quyết định đúng đắn – [[Thành viên:Henrydat|Henrydat]] ([[Thảo luận Thành viên:Henrydat|thảo luận]]) 18:02, ngày 14 tháng 3 năm 2025 (UTC) ::::::Cần lưu ý cơ chế cấm người dùng hoạt động độc lập trên mỗi dự án, tức là ngoại trừ việc lạm dụng xuyên wiki hoặc bị cấm chỉ, thành viên vẫn có thể hoạt động và xem như một tài khoản bình thường khi qua dự án khác. Bạn vẫn có thể hoạt động tại đây và tuân theo quy định tại dự án này; ngược lại, bạn có tùy quyền quyết định không tham gia đóng góp. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 07:44, ngày 15 tháng 3 năm 2025 (UTC) :::::::Này chúng ta có thể tiếp tục cuộc trò chuyện sau 7 tháng không, bây giờ có thể là lúc thích hợp hoặc có thể sớm hơn hoặc trễ hơn? Nói như bạn vậy thì dễ quá rồi, tôi hy vọng mình không mắc sai lầm. – [[Thành viên:Henrydat|Henrydat]] ([[Thảo luận Thành viên:Henrydat|thảo luận]]) 15:45, ngày 9 tháng 11 năm 2025 (UTC) == [[Special:Tags]] == Tôi đang test script, nhờ bạn tạo một thẻ với tên thẻ là “twinkle” và tên hiển thị là “Twinkle” để script chạy. Cảm ơn bạn. [[Thành viên:Hide on Rosé|Hide on Rosé]] ([[Thảo luận Thành viên:Hide on Rosé|thảo luận]]) 00:30, ngày 1 tháng 4 năm 2025 (UTC) :[[Thành viên:Hide on Rosé|Hide on Rosé]] {{Tick}} [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 04:08, ngày 1 tháng 4 năm 2025 (UTC) :: Nào bạn rảnh thì bạn sửa lại phần tên hiển thị: Liên kết tới [[Wiktionary:Twinkle]] nhé. [[Thành viên:Hide on Rosé|Hide on Rosé]] ([[Thảo luận Thành viên:Hide on Rosé|thảo luận]]) 09:51, ngày 1 tháng 4 năm 2025 (UTC) [[Tập tin:Wiktionary Deletion Tools 2025.png|nhỏ|250px|phải]] :::[[Thành viên:Hide on Rosé|Hide on Rosé]] Tôi upload màn hình chụp công cụ xóa quản trị viên Wiktionary. Bạn tham khảo. Twinkle hiện tại có vẻ chủ yếu phù hợp bài viết Wikipedia. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 03:34, ngày 2 tháng 4 năm 2025 (UTC) :::: @[[Thành viên:P. ĐĂNG|P. ĐĂNG]] Danh sách xoá mà bạn chụp thì tôi xem được ở đây: [[MediaWiki:Deletereason-dropdown]]. Mô đun này tôi đã sửa theo bộ tiêu chí xoá của dự án này, bạn có thể thử. [[Thành viên:Hide on Rosé|Hide on Rosé]] ([[Thảo luận Thành viên:Hide on Rosé|thảo luận]]) 03:40, ngày 2 tháng 4 năm 2025 (UTC) :::::[[Thành viên:Hide on Rosé|Hide on Rosé]] Công cụ xóa hiện như trang [[MediaWiki:Deletereason-dropdown]] chỉ xuất hiện khi bài viết có tựa đề "Wikitionary" hoặc "MediaWiki"; đối với các mục từ thì như hình chụp. Có vẻ phải chỉnh làm sao khi các thành viên ấn Twinkle gắn bản mẫu xóa trang mục từ thì nó hiện lên các lý do liên quan cho mục từ. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 03:48, ngày 2 tháng 4 năm 2025 (UTC) :::::: Đúng là như vậy. Trang trong không gian chính là mục từ (trừ Trang Chính) và cả Twinkle lẫn MediaWiki đều hiện lý do tương ứn, theo không gian tên,. code trong trang MediaWiki hiện theo không gian tên, bạn có thể xem mã nguồn của nó. [[Thành viên:Hide on Rosé|Hide on Rosé]] ([[Thảo luận Thành viên:Hide on Rosé|thảo luận]]) 05:41, ngày 2 tháng 4 năm 2025 (UTC) :::::: Xem [[Special:Diff/prev/2225367]]. [[Thành viên:Hide on Rosé|Hide on Rosé]] ([[Thảo luận Thành viên:Hide on Rosé|thảo luận]]) 05:44, ngày 2 tháng 4 năm 2025 (UTC) :::::::[[Thành viên:Hide on Rosé|Hide on Rosé]] Ok, đã test. PS Thiếu tiêu chí độ nổi bật. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 10:52, ngày 2 tháng 4 năm 2025 (UTC) :::::::: Tiêu chí đó được quy định ở đâu? Tôi không thấy trong [[Wiktionary:XN]]? [[Thành viên:Hide on Rosé|Hide on Rosé]] ([[Thảo luận Thành viên:Hide on Rosé|thảo luận]]) 10:53, ngày 2 tháng 4 năm 2025 (UTC) :::::::::[[Thành viên:Hide on Rosé|Hide on Rosé]] Tôi xem qua có vẻ đúng thật chưa có trong [[Wiktionary:Quy định xóa trang]], có lẽ trang này đã lâu không cập nhật khi dự án tiến triển. Độ nổi bật các mục từ nằm trong quy định [https://en.wiktionary.org/wiki/Wiktionary:Criteria_for_inclusion này]. Tiêu chí độ nổi bật cũng có trong công cụ xóa của quản trị viên (hình). Ngoài ra, tham khảo thử quy định [https://simple.wiktionary.org/wiki/Wiktionary:Deletion#Articles này] (quy định độ nổi bật của dự án Simple English về một số mục từ). [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 11:19, ngày 2 tháng 4 năm 2025 (UTC) : @[[Thành viên:Hide on Rosé|Hide on Rosé]] Khi tôi gắn biển chất lượng kém bằng Twinkle cho bài [[freeter]] thì xuất hiện vần đề ([[Đặc biệt:Khác/2225470|xem]]). Tôi nghĩ bản mẫu <code><nowiki>{{chất lượng kém}}</nowiki></code> và <code><nowiki>{{Chất lượng kém (nguồn)}}</nowiki></code> có vấn đề rồi. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] 14:01, ngày 2 tháng 4 năm 2025 (UTC) == github.com == Khi dọn bớt trang thảo luận [[Thảo luận Wiktionary:Thảo luận]] để lưu trữ thì có liên kết này bị vào blacklist. Phiền bạn xem xét có thể gỡ liên kết này ra khỏi blacklist được không? [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">femboy_clen</b>]] ([[User talk:Ayane Fumihiro|<span style="color:#008080;">But we got it yeah</span>]]) 16:06, ngày 22 tháng 5 năm 2025 (UTC) :{{Done}} [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 16:17, ngày 22 tháng 5 năm 2025 (UTC) == "ủ ôi" == Từ này hay xuất hiện trong văn nói, đôi khi đọc truyện tranh tôi có bắt gặp, nhưng không biết nên định nghĩa thế nào? Nhờ bạn hỗ trợ tạo trang nếu được. [[Thành viên:Plantaest|Plantaest]] ([[Thảo luận Thành viên:Plantaest|thảo luận]]) 15:37, ngày 23 tháng 7 năm 2025 (UTC) :[[Thành viên:Plantaest|Plantaest]] Đã tạo trang. Từ này nó giống "trời ơi", "trời đất" miền Nam hay gọi thôi. P.S Bạn có câu ví dụ nào hay thì thêm vô nếu muốn (2 đến 3 câu ví dụ đều được, nhưng trung lập và không yếu tố bình luận chính trị). [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 05:38, ngày 24 tháng 7 năm 2025 (UTC) == "clause" == Từ "clause" trong tiếng Anh nên được dịch là "mệnh đề" hay "cú" / "tiểu cú" vậy? Mình thấy các trang web dạy tiếng Anh ở Việt Nam ngày nay đều dịch là mệnh đề, nhưng khi mình tra từ điển ''Thuật ngữ ngôn ngữ học Anh – Việt Việt – Anh'', tr. 44 của Cao Xuân Hạo, Hoàng Dũng thì lại dịch là "tiểu cú". Bên ''Từ điển Khái niệm Ngôn ngữ học'', tr. 136 của Nguyễn Thiện Giáp cũng dịch tương tự. Phiền bạn trợ giúp. --[[Thành viên:I can see my baby swimming|I can see my baby swimming]] ([[Thảo luận Thành viên:I can see my baby swimming|thảo luận]]) 12:30, ngày 31 tháng 7 năm 2025 (UTC) :[[Thành viên:I can see my baby swimming|I can see my baby swimming]] Theo nguồn [https://vjol.info.vn/index.php/sphcm/article/view/27696] (trang 14) và [https://js.vnu.edu.vn/FS/article/view/380] (trang 29), cho thấy đều là cách dịch đúng của "clause". Dịch "mệnh đề" đồng nghĩa "cú/tiểu cú" nhưng cách dịch sau mang tính học thuật chuyên môn. Tôi nghĩ có thể xem xét bối cảnh chọn cách dịch phù hợp. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 08:55, ngày 1 tháng 8 năm 2025 (UTC) == [[Thành viên:Yuki Shiromita/Snowfall.css]] == Nhờ bạn xóa trang này, tôi không cần css để trang trí nữa do rất lag <span style="font-family:Segoe UI Light">[[User:Yuki Shiromita|<b style="color:#FF69B4">nettai</b>]] [[Special:Contributions/Yuki Shiromita|<b style="color:#FF964F">no</b>]] [[User talk:Yuki Shiromita|<b style="color:#93E7FB">shirayukihime</b>]]</span> 06:48, ngày 30 tháng 8 năm 2025 (UTC) :{{Done}} [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 16:05, ngày 30 tháng 8 năm 2025 (UTC) ==Happy Holidays== <div style="border-style:solid; border-color:violet; background-color:#fff; border-width:2px; text-align:left; padding:8px;" class="plainlinks"> {| style="border: 5px dotted #H1790; background-color: #DDDDDD; padding:4px" | rowspan="2" valign="left" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Christmas Tree 2011-12-24.jpg|left|300px|link=]]<span style="display:block;padding-top:10px;clear:both"> | <span style="font-family: Georgia; font-size: 98%; color: #190a89;">Chúc bạn P. ĐĂNG có một mùa '''Giáng sinh''' an lành, ấm áp và tràn ngập yêu thương bên gia đình!<br/> Bước sang '''năm mới''' 2026, chúc bạn gặp nhiều may mắn,<br/> gặt hái được nhiều thành công trong công việc và học tập.<br/> Một lần nữa chúc bạn sẽ có một năm mới thật an khang, hạnh phúc và vạn sự như ý!!</span> <br /> <span style="font-family: Georgia; font-size: 92%;"> | rowspan="2" valign="right" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Atlantic Firework Festival 2016 (53368638571).jpg|left|360px|link=]]<span style="display:block;padding-top:10px;clear:both"> |}</div> Lời chúc chân thành từ: <span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px">&nbsp;[[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]&#124;[[User talk:Kelly zhrm|&#248;]]&nbsp;</span>&nbsp; 05:54, ngày 24 tháng 12 năm 2025 (UTC) :[[Thành viên:Kelly zhrm|Kelly zhrm]] Cảm ơn cực muộn :D. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 10:11, ngày 9 tháng 1 năm 2026 (UTC) == a đuồi == Đôi khi tôi thấy từ này, nhưng không chắc định nghĩa nó thế nào? [[Thành viên:Plantaest|Plantaest]] ([[Thảo luận Thành viên:Plantaest|thảo luận]]) 08:01, ngày 30 tháng 12 năm 2025 (UTC) :[[Thành viên:Plantaest|Plantaest]] Dùng khi người nói biểu thị hàm ý nhưng không muốn diễn đạt rõ sự việc ám chỉ bằng cách nói thông thường và người nghe nhiều khả năng "sẽ" hiểu. Sau kết quả [https://www.google.com/search?q=a+%C4%91u%E1%BB%93i&sca_esv=fdc603a36385362d&rlz=1C1GCEA_enVN1050VN1050&biw=1536&bih=730&aic=0&sxsrf=ANbL-n6bNxATTi-Ja0wA8rmwvQPrO6MF7Q%3A1767953043675&ei=k9Jgae77KLCp4-EP1-n-6AI&ved=0ahUKEwiukZepmv6RAxWw1DgGHde0Hy0Q4dUDCBE tra cứu], tôi tham khảo một số trang web có nhắc đến cụm từ này và hiểu được như trên. Ngoài ra, một số ngữ cảnh được hiểu theo cách [https://www.hieuchua.com/define/A%20%C4%90u%E1%BB%93i này]. Các trang này chưa đủ uy tín để dùng "giải nghĩa" nhưng nó là tất cả trong khả năng có thể dùng tìm hiểu hiện tại. Hy vọng hữu ích đến bạn. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 11:07, ngày 9 tháng 1 năm 2026 (UTC) == PANG450a, b, c, d, e == Yummie giả dạng rối PANG450v của PVR từ lúc hắn tạo tài khoản PANG450a sao?? Tôi tưởng PVR tạo rối sửa đổi ở đây chứ! Mà khoan, Yummie hắn thường spam đường link tới các wiki Fandom, Miraheze và trang đóng góp của tài khoản hắn giả dạng (PANG450v) hả? – [[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|🌸]]) 16:20, ngày 21 tháng 1 năm 2026 (UTC) : Cái trò [[mượn gió bẻ măng]] của Yummie quá cũ rồi. Thật không còn gì đáng bàn. [[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>]] 17:01, ngày 21 tháng 1 năm 2026 (UTC) :[[Thành viên:Higashizakura|Higashizakura]] Phạm Văn Rạng là rối sửa bài viết chính trị (khá nghiêm túc và có khả năng biên tập; chỉ hoạt động tại các dự án Wikipedia vì mục đích chính sửa bài viết chính trị); Yummie là rối spam phá hoại. Có thể dựa vào nhật trình sửa đổi của tk nhận dạng. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 06:48, ngày 22 tháng 1 năm 2026 (UTC) == [[porfolio]] và [[portfolio]] == Từ đầu có vẻ là sai chính tả, qua enwikt thì đó là tiếng Tây Ban Nha. [[Thành viên:Plantaest|Plantaest]] ([[Thảo luận Thành viên:Plantaest|thảo luận]]) 04:19, ngày 24 tháng 2 năm 2026 (UTC) :[[Thành viên:Plantaest|Plantaest]] Tra theo cú pháp "'Porfolio' (Conjunto de fotografías o grabados de diferentes clases que forman un tomo o volumen encuadernable)", thấy ghi nhận cơ bản là mục từ tiếng Tây Ban Nha phỏng theo tiếng Anh và Pháp đã bỏ âm "t" sau khi nước này đưa vào từ điển sử dụng. [[Thành viên:Hiyuune|Hiyuune]] đã giúp sửa. P.S Có vẻ cách dịch nghĩa hiện tại trong bài sai so với nguồn (nguồn [https://www.scribd.com/document/378489759/SUSTANTIVOS-COLECTIVOS#content=query:porfolio,pageNum:1,indexOnPage:0,bestMatch:false này] cũng không thấy theo nghĩa dịch vậy). [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 04:23, ngày 25 tháng 2 năm 2026 (UTC) == Thư mời cho đề nghị cấp quyền bot == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:OOjs UI icon advanced.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|trang đề nghị cấp quyền bot]] của "'''[[User:BlueShurikenNinjaBot|BlueShurikenNinjaBot]]'''" tại '''[[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|đây]]'''. <small>Kính mong bạn xem xét và thảo luận về đề nghị cấp quyền bot này! Thân ái!</small> |} &nbsp;Mong bạn cho ý kiến ạ. [[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]]) 16:45, ngày 7 tháng 5 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:Kateru Zakuro@viwiktionary gửi cho mọi người trong danh sách tại https://vi.wiktionary.org/w/index.php?title=Wiktionary:Danh_s%C3%A1ch_th%C6%B0&oldid=2323217 --> l412yp1wxcw30lmdrkbesdm5stxemxn hiếu thuận 0 302615 2351327 2152461 2026-05-08T07:36:30Z Hiyuune 50834 2351327 wikitext text/x-wiki =={{langname|vi}}== ==={{section|etym}}=== {{vi-etym-sino|孝順}}. ==={{section|pron}}=== {{vi-pron}} ==={{section|adj}}=== {{vi-adj}} # Kính yêu đối với [[cha]] mẹ của mình. 6mcevjm2v6jb6ijjip5yqctdcf3ul4p Thể loại:en:Quốc gia của châu Á 14 305681 2351307 2161505 2026-05-08T06:37:28Z TheHighFighter2 42988 TheHighFighter2 đã đổi [[Thể loại:Quốc gia châu Á/Tiếng Anh]] thành [[Thể loại:en:Quốc gia của châu Á]] (đã tắt đổi hướng) 2161505 wikitext text/x-wiki [[Thể loại:Quốc gia châu Á|A]] [[Thể loại:Quốc gia/Tiếng Anh]] 9fimrd7ppm5ykerl1ezswnfymfb19kp 2351308 2351307 2026-05-08T06:37:49Z TheHighFighter2 42988 /* */ 2351308 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Bản mẫu:sid 10 307031 2351199 2167619 2026-05-07T22:07:34Z Kateru Zakuro 34522 Đổi hướng đến [[Bản mẫu:senseid]] 2351199 wikitext text/x-wiki #đổi [[Template:senseid]] 6bhnwl7brcfb18cshx3snln3qhfajpy udan 0 307490 2351147 2243023 2026-05-07T14:53:01Z Hiyuune 50834 2351147 wikitext text/x-wiki {{also|udán}} =={{langname|alj}}== ==={{ĐM|etym}}=== {{inh+|alj|phi-pro|*qudan|*qudán|mưa}}, từ {{inh|alj|poz-pro|*quzan||mưa}}, từ {{inh|alj|map-pro|*quzaN||mưa}}. ==={{ĐM|noun}}=== {{head|alj|Danh từ|head=udán}} # [[mưa|Mưa]]. {{c|alj|Mưa}} =={{langname|kak}}== ==={{ĐM|etym}}=== Từ {{inherited|kak|map-pro|*quzał}}. ==={{ĐM|noun}}=== {{head|kak|Danh từ}} # [[mưa|Mưa]]. =={{langname|fos}}== ==={{ĐM|alt}}=== * {{alter|fos|udal}} ==={{ĐM|etym}}=== Từ {{inherited|fos|map-pro|*quzał}}. ==={{ĐM|noun}}=== {{head|fos|Danh từ}} # [[mưa|Mưa]]. ==={{ĐM|ref}}=== * Alexander Adelaar, [https://web.archive.org/web/20210106115554/https://www.soas.ac.uk/taiwanstudies/eats/eats2005/file24063.pdf The Austronesian languages of Taiwan, with special reference to Siraya] 9cw3r350slbxdeqglo9wh9wv589w3og モンゴル 0 307939 2351293 2170795 2026-05-08T06:11:25Z TheHighFighter2 42988 /* */ 2351293 wikitext text/x-wiki =={{langname|ja}}== {{slim-wikipedia|ja:}} ==={{ĐM|alternative form}}=== * {{ja-r|蒙%古|^もう%こ}} ==={{ĐM|etym}}=== Từ {{borrowed|ja|mn|ᠮᠣᠩᠭᠣᠯ}}, {{mention|mn|Монгол}}. ==={{ĐM|pr-noun}}=== {{ja-pos|proper}} # [[Mông Cổ]]. ===={{ĐM|derived}}==== * {{ja-r|モンゴル人|^モンゴル-じん|[[người Mông Cổ]]}} * {{ja-r|モンゴル語|^モンゴル-ご|[[tiếng Mông Cổ]]}} ==={{ĐM|see}}=== * [[Phụ lục:Các quốc gia và vùng lãnh thổ trên thế giới|Các quốc gia và vùng lãnh thổ trên thế giới]] * {{list:countries of Asia/ja}} {{C|ja|Mông Cổ|Quốc gia của châu Á}} =={{langname|ryu}}== ==={{ĐM|etym}}=== Từ {{borrowed|ryu|mn|ᠮᠣᠩᠭᠣᠯ}}, {{mention|mn|Монгол}}. ==={{ĐM|pr-noun}}=== {{ryu-head|proper noun}} # [[Mông Cổ]]. #: {{synonyms|ryu|蒙古|tr=Mūku}} dfgyh382n7z2van9fr5m4pw0ju7564k Thể loại:ja:Quốc gia của châu Á 14 308635 2351294 2317819 2026-05-08T06:13:03Z TheHighFighter2 42988 TheHighFighter2 đã đổi [[Thể loại:ja:Quốc gia châu Á]] thành [[Thể loại:ja:Quốc gia của châu Á]] (đã tắt đổi hướng) 2172583 wikitext text/x-wiki [[Thể loại:Quốc gia châu Á|N]] [[Thể loại:Quốc gia/Tiếng Nhật]] 362tlxcwobtjhn0mbcbkbf41n4kh9nh 2351295 2351294 2026-05-08T06:13:30Z TheHighFighter2 42988 /* */ 2351295 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thảo luận Thành viên:Hiyuune 3 308784 2351184 2342253 2026-05-07T16:45:19Z MediaWiki message delivery 19980 Mục mới: /* Thư mời cho đề nghị cấp quyền bot */ 2351184 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>}} }} <div style="padding: 25px; background: #fe2f1ed; {{Round corners}}"> <center> <div class="name"><div style="font-size: 200%";center><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">'''Hiyuune ♡'''</span></div></div> [[Thảo luận thành viên:Hiyuune|<b style="font-family:Segoe UI Light;color:#96C8A2;letter-spacing:">Talk</b>]] - [[Đặc biệt:Đóng góp/Hiyuune|<b style="font-family:Segoe UI Light;color:#FFB3AE;letter-spacing:">Contribution</b>]] - [[Đặc biệt:CentralAuth/Hiyuune|<b style="font-family:Segoe UI Light;color:#FFF7AD;letter-spacing:">CentralAuth</b>]] - [[Đặc biệt:Thay đổi gần đây|<b style="font-family:Segoe UI Light;color:#C19A6B;letter-spacing:">Recent Changes</b>]] - [[Đặc biệt:Trang đặc biệt|<b style="font-family:Segoe UI Light;color:#8C92AC;letter-spacing:">SpecialPages</b>]] </center> </div> <div style="font-family: Segoe UI Light;color:#DEA5A4"> == <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">Message</span> == === Tên === Không rõ là mục đích đổi tên của bạn là gì? Hình như là rối cũng biết lần theo nhật trình để phá bạn thì phải. – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 08:07, ngày 4 tháng 11 năm 2025 (UTC) : @[[Thành viên:Nvdtn19|Nvdtn19]] Tần suất tên này quấy phá đã tăng gấp đôi so với lần trước đó. Tôi đổi tên thông qua [[Đặc biệt:Yêu cầu đổi tên toàn cục]], có vẻ tôi không còn mặn mà với tên cũ và không muốn sự việc trong quá khứ đeo bám tôi kéo dài. [[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>]] 08:18, ngày 4 tháng 11 năm 2025 (UTC) === Thông báo === Bạn có thư từ @[[Thành viên:Kateru Zakuro|Kateru Zakuro]], hãy xem thư và phản hồi. – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 12:47, ngày 6 tháng 11 năm 2025 (UTC) : Đã phản hổi. [[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>]] 13:34, ngày 6 tháng 11 năm 2025 (UTC) === "Động từ liên kết" === Từ đâu ra mà bạn dịch thuật ngữ "converb" thành "động từ liên kết" vậy? – [[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|🌸]]) 04:58, ngày 12 tháng 11 năm 2025 (UTC) : Tạm thời xóa chữ "liên kết" do có vẻ tôi đã nhầm sang linking verb. [[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>]] 06:41, ngày 12 tháng 11 năm 2025 (UTC) ::Hmm…, tôi nghĩ hình như bạn đang coi bài đăng trên Reddit mà tự động được dịch sang tiếng Việt (lưu ý là dịch máy của Reddit có thể mắc lỗi). Theo tôi là tạm thời nên dịch "converb" thành "phó động từ". – [[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|🌸]]) 10:30, ngày 12 tháng 11 năm 2025 (UTC) ::: Tạm thời cứ dịch như vậy đã, đúng là có một số thuật ngữ trong ngôn ngữ học mà chưa có bản dịch chính thức bằng tiếng Việt. [[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>]] 10:47, ngày 12 tháng 11 năm 2025 (UTC) === Yummie === [[w:Thảo luận Thành viên:Higashizakura|Xem trang thảo luận của tôi trên Wikipedia]], theo tôi là việc gắn biển rối trên trang Yummie như vậy là đủ rồi. Càng gắn thêm nó sẽ càng hung hơn. – [[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|🌸]]) 08:21, ngày 13 tháng 1 năm 2026 (UTC) : Nếu vậy thì không cần thiết phải gắn biển con rối nữa, nhưng mà phải đề phòng. Rối này đã phá sang không gian bản mẫu (xem [[Đặc biệt:Khác/2319455|Bản mẫu:âm thanh]]), rồi sau này nó còn phá hết tất cả không gian dự án này luôn (đặc biệt là mô đun). [[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>]] 08:28, ngày 13 tháng 1 năm 2026 (UTC) === "indicative" === Từ điển của ông Cao Xuân Hạo định nghĩa thuật ngữ này là "thức trần thuật", cho nên thay vì "lối trình bày" thì bạn nên dịch nó thành "trần thuật". – [[Thành viên:Higashizakura|<span style="color:black; font-family:Noto Serif JP, serif;">'''Đông Anh'''🌸</span>]]<sup style="font-family:Noto Serif JP, serif">[[Thảo luận Thành viên:Higashizakura|話す]]</sup> 05:56, ngày 4 tháng 4 năm 2026 (UTC) : Tôi thấy cách dịch này có hợp lý, sẽ điều chỉnh lại các bản mẫu chia động từ nếu cầ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:08, ngày 4 tháng 4 năm 2026 (UTC) == <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">Special topic</span> == === [[Bản mẫu:acronym of]] === Mình dịch theo [[acronym]], dựa trên bản dịch của FVDP. Không rõ bạn chuộng bản dịch của FVDP hay bản dịch theo nghiên cứu của Bộ Giáo dục, nhưng theo mình, cách gọi hiện tại ngắn gọn hơn nhiều so với cụm “Từ viết tắt từ những chữ đầu với cách đọc như một từ”. Cụm này nghe vừa nặng tính học thuật, vừa giống như đang giải nghĩa tiếng Việt của từ acronym hơn là bản dịch chính thức của từ acronym. Trong khi đó, tên “Từ cấu tạo” đã có từ trước và có vẻ đã được lựa chọn là bản dịch của acronym trên Wiki, nên theo nguyên tắc đồng thuận dùng tên có sẫn trước đây và yêu cầu tên thể loại phải ngắn gọn, mình thấy tên này hợp nhất. Thì đó là lý do mình đổi tên trong Bản mẫu acronym of, nếu bạn có ý kiến cứ nói ra, nếu không thống nhất được, có thể hỏi cộng đồng (thật ra cộng đồng ở đây không tích cực lắm nên mình hạn chế hỏi các vấn đề này rộng rãi mà để biên tập viên quyết định). – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 17:39, ngày 16 tháng 11 năm 2025 (UTC) : Mỗi khi tôi đi tìm bản dịch cho một thuật ngữ là rối tung cả lên, mà tôi hay thường chuộng các bản dịch của [[Bản mẫu:R:Cao Xuân Hạo, Hoàng Dũng 2004|Cao Xuân Hạo, Hoàng Dũng 2004]] hơn. Liệu "Từ viết tắt từ chữ đầu" có phù hợp? [[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>]] 02:00, ngày 17 tháng 11 năm 2025 (UTC) ::Có 2 cái khái niệm là "acronym" và "initialism", cả 2 đều có thể hiểu đơn giản là "từ viết tắt từ chữ đầu", nhưng có điểm khác nhau giữa chúng. "Acronym" là cái mà phát âm không cần phải đánh vần từng chữ cái (vd: NASA), còn "initialism" là đánh vần từng chữ cái một (vd: LGBT). Xem bài viết phân biệt tại [https://www.languagehumanities.org/what-is-the-difference-between-an-acronym-alphabetism-and-initialism.htm đây]. Cả 2 lần lượt được nhóm CXH dịch là "tên gọi tắt (bằng chữ đầu)" & "(tập quán viết tắt) giữ chữ đầu từ". ::Về "từ cấu tạo", không rõ có nguồn hàn lâm nào sử dụng nó với nghĩa "acronym" chưa, theo kết quả tra [https://www.google.com/search?q=%22t%E1%BB%AB+c%E1%BA%A5u+t%E1%BA%A1o%22&client=ms-android-oppo&sca_esv=e3edc11b94ccb9d1&udm=36&ei=LFcbaaD-OZW60-kPyvq7yQw&oq=%22t%E1%BB%AB+c%E1%BA%A5u+t%E1%BA%A1o%22&gs_lp=EhNtb2JpbGUtZ3dzLW1vZGVsZXNzIhIidOG7qyBj4bqldSB04bqhbyJI0dYUUNOMFFiQ0xRwCXgAkAEBmAGnAaAB5RiqAQUxNi4xNbgBA8gBAPgBAZgCHaAC-hbCAgsQABiABBiwAxiiBMICCBAAGLADGO8FwgIHEAAYgAQYDcICBhAAGAcYHsICChAAGIAEGEMYigXCAggQABiABBixA8ICCBAAGAcYChgewgIFEAAYgATCAgsQABiABBixAxiDAcICBBAAGAPCAgQQABgewgIGEAAYBRgewgIIEAAYBRgHGB7CAggQABgHGAgYHsICBhAAGAgYHsICBRAhGKABwgIFEAAY7wXCAggQABiABBiiBJgDAIgGAZAGBZIHBjkuMTkuMaAHl4MBsgcGMC4xOS4xuAfJFMIHCDMtMS4yNS4zyAeRBg&sclient=mobile-gws-modeless#ip=1 Gg Book] thì hầu hết nó được dùng với nghĩa khác. ::Vấn đề này cần trao đổi thêm để đưa ra phương án cuối cùng--.--[[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]]) 17:48, ngày 17 tháng 11 năm 2025 (UTC) :::Theo thông tin bài viết [https://thanhnien.vn/lat-leo-chu-nghia-tu-nguyen-cua-vip-185855107.htm này], tiếng Việt đến nay chưa có một thuật ngữ tương ứng thực sự thích hợp để đối dịch "acronym", ông An Chi đề xuất dịch thành "đỉnh danh", tuy nhiên nó là cách dịch riêng của tác giả và không thấy dùng ở đâu khác. Do đó theo tôi, nên dùng cách dịch diễn giải để làm rõ sự khác biệt của 2 khái niệm. Có thể rút ngắn "từ viết tắt từ những chữ đầu với cách đọc như một từ" thành "'''viết tắt chữ đầu loại đọc thành từ'''", và "[[Bản mẫu:initialism of|từ viết tắt từ chữ đầu với cách đọc từng chữ cái]]" thành "'''viết tắt chữ đầu loại đọc từng chữ'''". Ý kiến các bạn thế nào?--.--[[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]]) 16:24, ngày 18 tháng 11 năm 2025 (UTC) :::"Từ cấu tạo" thật ra là từ do [https://vi.wiktionary.org/w/index.php?title=Th%E1%BB%83_lo%E1%BA%A1i:T%E1%BB%AB_c%E1%BA%A5u_t%E1%BA%A1o_theo_ng%C3%B4n_ng%E1%BB%AF&action=history một thành viên đời đầu của Wiki đặt ra từ sơ khai mới thành lập], vì thế độ chính xác có lẽ hơi đáng ngờ. Thật ra nhiều thuật ngữ do các thành viên đời đầu tạo ra hầu hết đều không có nguồn dẫn chứng cụ thể, chủ yếu là bản dịch cá nhân hoặc từ bản dịch của FVDP (mà FVDP được biết là nhiều mục từ có cách dịch không được đúng lắm). Sau này chúng ta cập nhật đại tu thể loại thì mới thay đổi và đưa về tên đúng. Theo giải thích của bác, em thấy cũng hợp lý, nếu @[[Thành viên:Hiyuune|Hiyuune]] và @[[Thành viên:TheHighFighter2|TheHighFighter2]] đồng ý, em cũng coi như đã đồng thuận và sẽ đổi tên lại cho hợp lý. – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 16:43, ngày 18 tháng 11 năm 2025 (UTC) == Nhờ == [[Mô đun:category tree/etymology]] đã được sửa, nhờ bác xem dịch lại tên cho chuẩn xác với đổi thể loại về tên đúng nhé, cảm ơn bác. – [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 07:08, ngày 22 tháng 12 năm 2025 (UTC) : Khi nào rảnh rỗi thì tôi sẽ thực hiện đồng bộ hóa thể loại. Thanks. [[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:59, ngày 22 tháng 12 năm 2025 (UTC) ==Happy Holidays== <div style="border-style:solid; border-color:#b88d00; background-color: var(--wikt-palette-gold, #F9F9F9); border-width:2px; text-align:left; padding:8px;" class="plainlinks"> {| style="border: 5px dotted #H1790; background-color: var(--wikt-palette-gold, #F9F9F9);color:inherit padding:4px" | rowspan="2" valign="left" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Christmas Tree 2011-12-24.jpg|left|300px|link=]]<span style="display:block;padding-top:10px;clear:both"> | <span style="font-family: Georgia; font-size: 98%; color: #190a89;">Chúc bạn Hiyuune có một mùa '''Giáng sinh''' an lành, ấm áp và tràn ngập yêu thương bên gia đình!<br/> Bước sang '''năm mới''' 2026, chúc bạn gặp nhiều may mắn,<br/> gặt hái được nhiều thành công trong công việc và học tập.<br/> Một lần nữa chúc bạn sẽ có một năm mới thật an khang, hạnh phúc và vạn sự như ý!!</span> <br /> <span style="font-family: Georgia; font-size: 92%;"> | rowspan="2" valign="right" |<span style="margin:0px 10px 10px 0px;box-shadow:0px 3px 4px rgba(0, 0, 0, 0.45);display:inline-block;">[[File:Atlantic Firework Festival 2016 (53368638571).jpg|left|360px|link=]]<span style="display:block;padding-top:10px;clear:both"> |}</div> Lời chúc chân thành từ: <span style="background:#978FF;border:solid 1px;border-radius:8px;box-shadow:darkblue 2px 2px 2px">&nbsp;[[User:Kelly zhrm|<span style="font-family:Old English Text MT;color:#C90">Yellow</span>]]&#124;[[User talk:Kelly zhrm|&#248;]]&nbsp;</span>&nbsp; 05:39, ngày 24 tháng 12 năm 2025 (UTC) : Cảm ơn you nhiều nha. [[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>]] 05:55, ngày 24 tháng 12 năm 2025 (UTC) </div> == Thư mời cho đề nghị cấp quyền bot == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:OOjs UI icon advanced.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|trang đề nghị cấp quyền bot]] của "'''[[User:BlueShurikenNinjaBot|BlueShurikenNinjaBot]]'''" tại '''[[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|đây]]'''. <small>Kính mong bạn xem xét và thảo luận về đề nghị cấp quyền bot này! Thân ái!</small> |} &nbsp;Mong bạn cho ý kiến ạ. [[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]]) 16:45, ngày 7 tháng 5 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:Kateru Zakuro@viwiktionary gửi cho mọi người trong danh sách tại https://vi.wiktionary.org/w/index.php?title=Wiktionary:Danh_s%C3%A1ch_th%C6%B0&oldid=2323217 --> 9s9zdd8yshjkbcloudot088ddttgd2s ベトナム語 0 313970 2351232 2242060 2026-05-08T02:55:04Z TheHighFighter2 42988 /* Tiếng Nhật */ 2351232 wikitext text/x-wiki =={{langname|ja}}== {{jpn-kanjitab|ご|yomi=goon}} ==={{ĐM|etym}}=== Từ {{suffix|ja|ベトナム|語|t1=[[Việt Nam]]|t2=[[ngôn ngữ]]|tr1=Betonamu|tr2=go}}. ==={{ĐM|pron}}=== {{jpn-pron|acc=0|ベトナム ご}} ==={{ĐM|pr-noun}}=== {{jpn-pos|proper|^ベトナム-ご}} # [[tiếng Việt|Tiếng Việt]]. {{C|ja|Tên ngôn ngữ}} qydfi5achx0osrpn8n2hjztfcalfdyt Thể loại:ja:Myanmar 14 314449 2351138 2267639 2026-05-07T14:48:58Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Myanmar/Tiếng Nhật]] thành [[Thể loại:ja:Myanmar]] 2267639 wikitext text/x-wiki [[Thể loại:Quốc gia của châu Á/Tiếng Nhật]] [[Thể loại:Quốc gia/Tiếng Nhật]] [[Thể loại:Danh sách chủ đề thuộc nhóm liên quan/Tiếng Nhật]] [[Thể loại:Myanmar|N]] sfrdbd2sjzhj40ayuu1aarpidwyw487 2351140 2351138 2026-05-07T14:49:23Z Hiyuune 50834 2351140 wikitext text/x-wiki [[Thể loại:ja:Quốc gia của châu Á]] [[Thể loại:ja:Quốc gia]] [[Thể loại:ja:Danh sách chủ đề thuộc nhóm liên quan]] [[Thể loại:Myanmar|N]] 25cf8m7rihgnsxfslcl6h5usd952smc 2351311 2351140 2026-05-08T06:47:55Z TheHighFighter2 42988 /* */ 2351311 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Vần:Tiếng Séc/ɛliː 14 314642 2351266 2182475 2026-05-08T04:31:39Z Kelly zhrm 58416 Kelly zhrm đã đổi [[Thể loại:Vần tiếng Séc/ɛliː]] thành [[Thể loại:Vần:Tiếng Séc/ɛliː]] 2182475 wikitext text/x-wiki [[Thể loại:Vần tiếng Séc]] i5hxd42yi8cxyib4v053ui91de0mv0z 2351268 2351266 2026-05-08T04:31:57Z Kelly zhrm 58416 2351268 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Vần:Tiếng Séc/ɛliː/3 âm tiết 14 314643 2351269 2182476 2026-05-08T04:32:28Z Kelly zhrm 58416 Kelly zhrm đã đổi [[Thể loại:Vần tiếng Séc/ɛliː/3 âm tiết]] thành [[Thể loại:Vần:Tiếng Séc/ɛliː/3 âm tiết]] 2182476 wikitext text/x-wiki [[Thể loại:Vần tiếng Séc/ɛliː]] ejzbl8cpy660x5ctfl84xcmsi2rn6eq 2351271 2351269 2026-05-08T04:32:46Z Kelly zhrm 58416 2351271 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Vần:Tiếng Séc/oliː 14 315554 2351273 2183984 2026-05-08T04:34:54Z Kelly zhrm 58416 Kelly zhrm đã đổi [[Thể loại:Vần tiếng Séc/oliː]] thành [[Thể loại:Vần:Tiếng Séc/oliː]] 2183984 wikitext text/x-wiki [[Thể loại:Vần tiếng Séc]] i5hxd42yi8cxyib4v053ui91de0mv0z 2351275 2351273 2026-05-08T04:35:08Z Kelly zhrm 58416 2351275 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Vần:Tiếng Séc/oliː/3 âm tiết 14 315555 2351277 2183985 2026-05-08T04:35:34Z Kelly zhrm 58416 Kelly zhrm đã đổi [[Thể loại:Vần tiếng Séc/oliː/3 âm tiết]] thành [[Thể loại:Vần:Tiếng Séc/oliː/3 âm tiết]] 2183985 wikitext text/x-wiki [[Thể loại:Vần tiếng Séc/oliː]] izv436agj3amdtnhwi88n7tmnqq8a39 2351279 2351277 2026-05-08T04:35:50Z Kelly zhrm 58416 2351279 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx ミャンマー連邦共和国 0 316424 2351292 2342258 2026-05-08T06:06:19Z TheHighFighter2 42988 /* Danh từ riêng */ 2351292 wikitext text/x-wiki =={{langname|ja}}== {{ja-kanjitab|れん|ほう|k2=ぽう|きょう|わ|こく|yomi=o2,kanon,goon,o}} ==={{ĐM|etym}}=== {{affix|ja|ミャンマー|連邦|共和国|tr1=Myanmā|t1=[[Myanmar]]|tr2=renpō|t2=[[liên bang]]|tr3=kyōwakoku|t3=[[cộng hòa]]}} ==={{ĐM|pr-noun}}=== {{ja-pos|proper|ミャンマー れんぽう きょうわこく}} # {{w|Cộng hòa Liên bang Myanmar}} {{C|ja|Quốc gia của châu Á|Myanmar}} p4od3aqaz7islu2vj4665n1h7mf2not Thể loại:fr:Lục địa 14 319031 2351324 2190807 2026-05-08T07:15:15Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Lục địa/Tiếng Pháp]] thành [[Thể loại:fr:Lục địa]] 2190807 wikitext text/x-wiki [[Thể loại:Địa điểm/Tiếng Pháp]] [[Thể loại:Danh sách bộ chủ đề/Tiếng Pháp]] [[Thể loại:Lục địa]] 95wdkjyhiminmkq1kraa8auq8k25ivw Thể loại:lv:Cây mọng nước 14 319282 2351321 2191475 2026-05-08T07:14:46Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Cây mọng nước/Tiếng Latvia]] thành [[Thể loại:lv:Cây mọng nước]] 2191475 wikitext text/x-wiki [[Thể loại:Thực vật/Tiếng Latvia]] [[Thể loại:Danh sách bộ chủ đề/Tiếng Latvia]] [[Thể loại:Cây mọng nước]] qryz4v240qlqpk82srh5ggrzpqnrwhl 2351323 2351321 2026-05-08T07:14:59Z Hiyuune 50834 Thay cả nội dung bằng “{{auto cat}}” 2351323 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Vần:Tiếng Catalan/anes 14 319656 2351101 2192169 2026-05-07T14:22:29Z Kelly zhrm 58416 Kelly zhrm đã đổi [[Thể loại:Vần tiếng Catalan/anes]] thành [[Thể loại:Vần:Tiếng Catalan/anes]] 2192169 wikitext text/x-wiki [[Thể loại:Vần tiếng Catalan]] b7lrib37sfmkiovqme23j1wmbcrwpbf 2351103 2351101 2026-05-07T14:22:48Z Kelly zhrm 58416 2351103 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Vần:Tiếng Catalan/anes/4 âm tiết 14 319657 2351086 2192170 2026-05-07T14:00:16Z Kelly zhrm 58416 Kelly zhrm đã đổi [[Thể loại:Vần tiếng Catalan/anes/4 âm tiết]] thành [[Thể loại:Vần:Tiếng Catalan/anes/4 âm tiết]] 2192170 wikitext text/x-wiki [[Thể loại:Vần tiếng Catalan/anes]] rj6xs2y44y2ya0az49p9iqmsdcii7f4 2351088 2351086 2026-05-07T14:00:44Z Kelly zhrm 58416 2351088 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Vần:Tiếng Catalan/anes/9 âm tiết 14 319658 2351098 2192171 2026-05-07T14:21:54Z Kelly zhrm 58416 Kelly zhrm đã đổi [[Thể loại:Vần tiếng Catalan/anes/9 âm tiết]] thành [[Thể loại:Vần:Tiếng Catalan/anes/9 âm tiết]] 2192171 wikitext text/x-wiki [[Thể loại:Vần tiếng Catalan/anes]] rj6xs2y44y2ya0az49p9iqmsdcii7f4 2351100 2351098 2026-05-07T14:22:06Z Kelly zhrm 58416 2351100 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Vần:Tiếng Catalan/anes/8 âm tiết 14 319659 2351095 2192172 2026-05-07T14:21:06Z Kelly zhrm 58416 Kelly zhrm đã đổi [[Thể loại:Vần tiếng Catalan/anes/8 âm tiết]] thành [[Thể loại:Vần:Tiếng Catalan/anes/8 âm tiết]] 2192172 wikitext text/x-wiki [[Thể loại:Vần tiếng Catalan/anes]] rj6xs2y44y2ya0az49p9iqmsdcii7f4 2351097 2351095 2026-05-07T14:21:23Z Kelly zhrm 58416 2351097 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Vần:Tiếng Catalan/anes/7 âm tiết 14 319929 2351089 2192629 2026-05-07T14:01:40Z Kelly zhrm 58416 Kelly zhrm đã đổi [[Thể loại:Vần tiếng Catalan/anes/7 âm tiết]] thành [[Thể loại:Vần:Tiếng Catalan/anes/7 âm tiết]] 2192629 wikitext text/x-wiki [[Thể loại:Vần tiếng Catalan/anes]] rj6xs2y44y2ya0az49p9iqmsdcii7f4 2351091 2351089 2026-05-07T14:01:54Z Kelly zhrm 58416 2351091 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Mô đun:category tree/topic/data 828 324836 2351287 2313674 2026-05-08T05:55:34Z TheHighFighter2 42988 2351287 Scribunto text/plain local labels = {} local handlers = {} local top_level_data_module = "Module:category tree/topic/data" local data_module_prefix = "Module:category tree/topic/" local subpages = { "Animals", "Asia", "Body", "Buildings and structures", "Communication", "Culture", "Religion", "Food and drink", "Games", "History", "Human", "People", "Lifeforms", "Mathematics", "Music", "Names", "Nature", "Numbers", "Philosophy", "Places", "Plants", "Sciences", "Sex", "Society", "Sports", "Technology", "Time", "Transport", } labels["Tất cả chủ đề"] = { type = "toplevel", description = "Liệt kê các từ {{{langname}}} được xếp theo chủ đề, có thể là \"Gia đình\", \"Hóa học\", \"Hành tinh\", \"Họ Chó\", \"Địa danh\" hoặc \"Thành phố của Việt Nam\".", parents = {{name = "{{{langcat}}}", nontopic = true}}, } for _, typ in ipairs { "chủ đề thuộc nhóm liên quan", "chủ đề thuộc nhóm tập hợp", "chủ đề thuộc nhóm loại hình", "chủ đề thuộc nhóm tên gọi", "chủ đề phân nhóm", "chủ đề thuộc nhóm hỗn hợp"} do labels["Danh sách " .. typ] = { type = "toplevel", description = "Tất cả " .. typ .. " có sẵn trong {{{langname}}}.", parents = {{name = "Tất cả chủ đề", sort = " *"}}, } end labels["chủ đề thuộc nhóm hỗn hợp"] = { type = "toplevel", description = "All categories currently available in {{{langname}}} that belong to more than one type.", parents = {{name = "Tất cả chủ đề", sort = " *"}}, } for label, data in pairs(labels) do data.module = top_level_data_module end -- Don't throw error on every single category, but on a subset of them, especially the top-level ones. local function should_throw_error() local title = mw.title.getCurrentTitle().text return title:find("Danh sách ") or title:find("Tất cả ") or title:find(" mục từ") end -- Import subpages for _, subpage in ipairs(subpages) do local datamodule = data_module_prefix .. subpage local retval = require(datamodule) if not retval["LABELS"] then retval = {LABELS = retval} end for label, data in pairs(retval["LABELS"]) do if labels[label] and not retval["IGNOREDUP"] then -- Avoid throwing an error on every single topic category and any other invoking category that calls the -- topic code. if should_throw_error() then error("Nhãn " .. label .. " trùng lặp ở [[" .. datamodule .. "]] và [[" .. labels[label].module .. "]].") end end data.module = datamodule labels[label] = data end if retval["HANDLERS"] then for _, handler in ipairs(retval["HANDLERS"]) do table.insert(handlers, { module = datamodule, handler = handler }) end end end return {LABELS = labels, HANDLERS = handlers} 6u5suou41r9zf9l0sropf0iizv4nnuj 2351368 2351287 2026-05-08T11:57:50Z TheHighFighter2 42988 Đã lùi lại sửa đổi [[Special:Diff/2351287|2351287]] của [[Special:Contributions/TheHighFighter2|TheHighFighter2]] ([[User talk:TheHighFighter2|thảo luận]]) 2351368 Scribunto text/plain local labels = {} local handlers = {} local top_level_data_module = "Module:category tree/topic/data" local data_module_prefix = "Module:category tree/topic/" local subpages = { "Animals", "Body", "Buildings and structures", "Communication", "Culture", "Religion", "Food and drink", "Games", "History", "Human", "People", "Lifeforms", "Mathematics", "Music", "Names", "Nature", "Numbers", "Philosophy", "Places", "Plants", "Sciences", "Sex", "Society", "Sports", "Technology", "Time", "Transport", } labels["Tất cả chủ đề"] = { type = "toplevel", description = "Liệt kê các từ {{{langname}}} được xếp theo chủ đề, có thể là \"Gia đình\", \"Hóa học\", \"Hành tinh\", \"Họ Chó\", \"Địa danh\" hoặc \"Thành phố của Việt Nam\".", parents = {{name = "{{{langcat}}}", nontopic = true}}, } for _, typ in ipairs { "chủ đề thuộc nhóm liên quan", "chủ đề thuộc nhóm tập hợp", "chủ đề thuộc nhóm loại hình", "chủ đề thuộc nhóm tên gọi", "chủ đề phân nhóm", "chủ đề thuộc nhóm hỗn hợp"} do labels["Danh sách " .. typ] = { type = "toplevel", description = "Tất cả " .. typ .. " có sẵn trong {{{langname}}}.", parents = {{name = "Tất cả chủ đề", sort = " *"}}, } end labels["chủ đề thuộc nhóm hỗn hợp"] = { type = "toplevel", description = "All categories currently available in {{{langname}}} that belong to more than one type.", parents = {{name = "Tất cả chủ đề", sort = " *"}}, } for label, data in pairs(labels) do data.module = top_level_data_module end -- Don't throw error on every single category, but on a subset of them, especially the top-level ones. local function should_throw_error() local title = mw.title.getCurrentTitle().text return title:find("Danh sách ") or title:find("Tất cả ") or title:find(" mục từ") end -- Import subpages for _, subpage in ipairs(subpages) do local datamodule = data_module_prefix .. subpage local retval = require(datamodule) if not retval["LABELS"] then retval = {LABELS = retval} end for label, data in pairs(retval["LABELS"]) do if labels[label] and not retval["IGNOREDUP"] then -- Avoid throwing an error on every single topic category and any other invoking category that calls the -- topic code. if should_throw_error() then error("Nhãn " .. label .. " trùng lặp ở [[" .. datamodule .. "]] và [[" .. labels[label].module .. "]].") end end data.module = datamodule labels[label] = data end if retval["HANDLERS"] then for _, handler in ipairs(retval["HANDLERS"]) do table.insert(handlers, { module = datamodule, handler = handler }) end end end return {LABELS = labels, HANDLERS = handlers} 591u6dn2oxm53359oqp3djwf593vel7 Mô đun:category tree/topic/Plants 828 324856 2351320 2328732 2026-05-08T07:14:36Z Hiyuune 50834 2351320 Scribunto text/plain local labels = {} labels["Thực vật"] = { type = "chủ đề thuộc nhóm loại hình", description = "default", parents = {"Sinh vật"}, wpcat = true, commonscat = "Plantae", } labels["Chi Keo"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants of the [[genus]] ''[[Acacia]]'' in its former sense, including what are now related genera such as ''[[Acaciella]]'', ''[[Senegalia]]'' and ''[[Vachellia]]'' – the [[tribe]] [[Acacieae]] in some classifications", parents = {"Phân họ Trinh nữ"}, } labels["Họ Ô rô"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[acanthus]]es, [[aphelandra]]s, [[clock vine]], [[Malabar nut]], [[water willow]], and other plants in the [[family]] [[Acanthaceae]]", parents = {"Bộ Hoa môi"}, } labels["agavoideae subfamily plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[agave]]s, [[camas]]es, [[soap plant]]s, [[tuberose]]s, [[rush lily|rush lilies]], [[yucca]]s, and other plants in the [[subfamily]] [[Agavoideae]] of the [[family]] [[Asparagaceae]]", parents = {"Họ Măng tây", "cây mọng nước"}, } labels["Aizoaceae family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the [[family]] [[Aizoaceae]], most of which are [[succulent]]s", parents = {"Caryophyllales order plants", "cây mọng nước"}, } labels["ajugoideae subfamily plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bluecurls]], [[bugle]], [[cat thyme]], [[germander]], [[pagoda flower]], [[wood sage]], and other plants in the [[subfamily]] [[Ajugoideae]] of the mint family, [[Lamiaceae]]", parents = {"mint family plants"}, } labels["Alismatales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[anacharis]], [[arrowgrass]]es, [[arrowhead]]s, [[arum]]s, [[burhead]]s, [[eelgrass]]es, [[flowering rush]], [[frogbit]], [[hydrilla]], [[Neptune grass]], [[philodendron]], [[pondweed]]s, [[seagrass]]es, [[taro]], [[velvetleaf]]s, [[water nymph]]s, [[water plantain]]s, [[waterpoppy]], and other plants in the [[order]] [[Alismatales]]", parents = {"water plants"}, } labels["alliums"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[chive]]s, [[garlic]], [[leek]]s, [[onion]]s, [[scallion]]s, [[shallot]]s, and other plants in the [[genus]] ''[[Allium]]''", parents = {"amaryllis family plants", "root vegetables", "spices and herbs"}, } labels["amaranth subfamily plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[achyranthe]], [[amaranth]], [[celosia]], [[goldenrod tree]], [[love-lies-bleeding]], [[marog]], [[prince's plume]], [[tampala]], [[waterhemp]], and other plants in the [[subfamily]] [[Amaranthoideae]] of the [[family]] [[Amaranthaceae]]", parents = {"amaranths and goosefoots"}, } labels["amaranths and goosefoots"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[amaranth]]s, [[beet]]s, [[blite]]s, [[glasswort]]s, [[lamb's quarters]], [[saltbush]]es, [[spinach]] and other plants in the [[family]] [[Amaranthaceae]], including the former family [[Chenopodiaceae]]", parents = {"Caryophyllales order plants"}, } labels["amaryllis family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[amaryllis]]es, [[daffodil]]s, [[garlic]], [[lily of the Nile]], [[rain lily|rain lilies]], [[snowdrops]], [[spider lily|spider lilies]] and other plants in the [[family]] [[Amaryllidaceae]], including the former family [[Alliaceae]]", parents = {"Bộ Măng tây", "flowers"}, } labels["Anemoneae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[anemone]]s or [[windflower]]s, [[clematis]]es ([[old man's beard]], [[traveller's joy]], [[virgin's bower]], etc.), [[hepatica]]s or [[liverwort]]s, [[pasque flower]]s and other plants in the [[tribe]] [[Anemoneae]] of the [[family]] [[Ranunculaceae]]", parents = {"buttercup family plants"}, } labels["Anthemideae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[camomile]]s, [[chrysanthemum]]s, [[dogfennel]], [[feverfew]], [[lavender cotton]], [[oxeye daisy]], [[marguerite]]s, [[pellitory of Spain]], [[pineapple weed]], [[pyrethrum]], [[sagebrush]]es, [[sneezeweed]], [[sweet maudlin]], [[tansy]], [[wormwood]]s, [[yarrow]]s, and other plants in the [[tribe]] [[Anthemideae]] of the [[family]] [[Asteraceae]]", parents = {"composites"}, } labels["Tông Andropogoneae"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bluestem]], [[broomsedge]], [[centipede grass]], [[cogon]], [[gama grass]], [[Job's tears]], [[Johnson grass]], [[lemongrass]], [[maize]], [[plume grass]], [[rosha grass]], [[sorghum]], [[sudangrass]], [[sugar cane]], [[susuki grass]], [[vetiver]], and other grasses in the tribe [[Andropogoneae]]", parents = {"Cỏ"}, } labels["Apiales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[anise]], [[apple-berry]], [[aralia]]s, [[carrot]]s, [[celery]], [[cumin]], [[ginseng]], [[hemlock]], [[ivy]], [[parsley]], [[pennywort]]s, [[pittosporum]]s, [[samphire]], [[sea holly]], [[sweet bursaria]], and other plants in the [[order]] [[Apiales]]", parents = {"plants", "shrubs", "spices and herbs"}, } labels["Apieae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bishop's-weed]], [[celery]], [[dill]], [[fennel]], [[parsley]] and other plants in the [[tribe]] [[Apieae]] of the celery [[family]], [[Apiaceae]]", parents = {"celery family plants"}, } labels["aralia family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[aralia]]s, [[ginseng]], [[eleuthero]], [[ivy]], [[umbrella tree]], [[parasol tree]], and other plants in the [[family]] [[Araliaceae]]", parents = {"plants"}, } labels["araucarians"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=primitive [[conifer]]s in the [[genus|genera]] ''[[Agathis]]'', ''[[Araucaria]]'' and ''[[Wollemia]]'' in the family [[Araucariaceae]]", parents = {"conifers"}, } labels["artemisias"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[mugwort]]s, [[sagebrush]]es, [[southernwood]], [[tarragon]], [[wormwood]], and other plants in the [[genus]] ''[[Artemisia]]''", parents = {"Anthemideae tribe plants", "herbs"}, } labels["arum family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[arum]]s, [[duckweed]]s, [[Jack-in-the-pulpit]], [[philodendron]]s, [[skunk cabbage]], [[taro]], and other plants in the family [[Araceae]]", parents = {"Alismatales order plants"}, } labels["Bộ Măng tây"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[agave]]s. [[allium]]s, [[aloe]]s, [[amaryllis]]es, [[asparagus]], [[crocus]]es, [[day lily|day lilies]], [[iris]]es, [[orchid]]s and other plants in the [[order]] [[Asparagales]]", parents = {"Thực vật"}, } labels["Họ Măng tây"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[agave]]s, [[asparagus]], [[bluebell]]s, [[butcher's broom]], [[dracaena]]s, [[hosta]]s, [[hyacinth]]s, [[lily of the valley]], [[Solomon's seal]]s, [[ti]], [[tuberose]], and other plants in the [[family]] [[Asparagaceae]], including those formerly in families such as the [[Agavaceae]], [[Hyacinthaceae]] and [[Ruscaceae]]", parents = {"Bộ Măng tây", "cây mọng nước", "Hoa"}, } labels["Bộ Cúc"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[artichoke]]s, [[aster]]s, [[buckbean]]s, [[chamomile]], [[bellflower]]s, [[daisy|daisies]], [[dandelion]]s, [[lobelia]]s, [[sunflower]]s, [[thistle]]s, [[wormwood]]s and many other plants in the [[order]] [[Asterales]]", parents = {"Thực vật"}, } labels["Astereae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[aster]]s, [[daisy|daisies]], [[fleabane]]s, [[goldenrod]]s, [[grindelia]]s, [[horseweed]]s, [[Michaelmas daisy]], [[muskwood]], [[rabbitbrush]]es, [[sharewort]], [[stabwort]], and other plants in the [[tribe]] [[Astereae]] of the [[family]] [[Asteraceae]]", parents = {"composites"}, } labels["bamboos"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=grasses in the [[subfamily]] [[Bambusoideae]]", parents = {"grasses"}, } labels["barberry family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[barberry|barberrie]]s, [[blue cohosh]], [[mayapple]], [[Oregon grape]]s, [[twinleaf]], and other plants in the [[family]] [[Berberidaceae]]", parents = {"Ranunculales order plants", "shrubs"}, } labels["beech family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[beech]]es, [[chestnut]]s, [[oak]]s, and other plants in the family [[Fagaceae]]", parents = {"Fagales order plants"}, } labels["bignonia family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bignonia]]s, [[Cape honeysuckle]], [[catalpa]]s, [[jacaranda]]s, [[sausage tree]], [[trumpet vine]] and other plants in the family [[Bignoniaceae]]", parents = {"Bộ Hoa môi", "shrubs", "flowers"}, } labels["birch family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[birch]]es, [[alder]]s, [[hazel]]s, [[hornbeam]]s and other plants in the family [[Betulaceae]]", parents = {"Fagales order plants"}, } labels["blueberry tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bilberry|bilberries]], [[blueberry|blueberries]], [[buckberry|buckberries]], [[cranberry|cranberries]], [[huckleberry|huckleberries]], [[lingonberry|lingonberries]], [[ohelo]], [[whortleberry|whortleberries]] and other plants in the [[heather]] [[family]] [[tribe]] [[Vaccinieae]]", parents = {"heather family plants", "fruits"}, } labels["borage family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[alkanet]], [[borage]], [[comfrey]], [[fiddleneck]]s, [[forget-me-not]]s, [[heliotrope]]s, [[honeywort]]s, [[hound's tongue]], [[lungwort]], [[scorpionweed]], [[sebesten]], and other plants in the family [[Boraginaceae]]", parents = {"plants"}, } labels["Chi Mâm xôi"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[blackberry|blackberries]], [[cloudberry|cloudberries]], [[dewberry|dewberries]], [[raspberry|raspberries]], [[thimbleberry|thimbleberries]], and other plants in the [[genus]] ''[[Rubus]]''", parents = {"Họ Hoa hồng", "quả mọng"}, } labels["Bộ Cải"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[beachwort]], [[bladderpod]], [[cabbage]]s, [[caper]]s, [[cress]]es, [[meadowfoam]]s, [[mustard]]s, [[nasturtium]]s, [[papaya]]s, [[radish]]es, [[wallflower]]s, [[weld]] and other plants in the [[order]] [[Brassicales]]", parents = {"Thực vật"}, } labels["brassicas"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[cabbage]]s, [[mustard]]s, and other plants in the genus ''[[Brassica]]''", parents = {"crucifers"}, } labels["Họ Dứa"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[pineapple]]s, and other plants in the family [[Bromeliaceae]]", parents = {"Nhánh Thài lài"}, } labels["broomrape family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[broomrape]]s or [[broom rape]]s, [[beechdrops]], [[cow-wheat]], [[eyebright]]s, [[Indian paintbrush]]es, [[lousewort]]s, [[rattle]]s, [[witchweed]]s, and other plants in the family [[Orobanchaceae]]", parents = {"Bộ Hoa môi"}, } labels["buckthorn family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[buckthorn]], [[ceanothus]]es, [[chewstick]], [[jujube]], and other plants in the [[family]] [[Rhamnaceae]]", parents = {"Rosales order plants", "shrubs", "trees"}, } labels["buckwheat family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[buckwheat]], [[coral vine]], [[dock]], [[knotweed]], [[rhubarb]], [[sea grape]], [[smartweed]], [[sorrel]] and other plants in the [[family]] [[Polygonaceae]]", parents = {"Caryophyllales order plants"}, } labels["buttercup family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the family [[Ranunculaceae]]", parents = {"Ranunculales order plants"}, } labels["Buxales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the [[order]] [[Buxales]]", parents = {"plants", "shrubs", "trees"}, } labels["cacti"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Caryophyllales order plants", "cây mọng nước"}, } labels["Phân họ Vang"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[brazilwood]], [[carob]], [[honey locust]]s, [[Kentucky coffeetree]], [[logwood]], [[paloverde]]s, [[poinciana]]s, [[redbud]]s, [[senna]]s, [[tamarind]]s, and other plants in the [[subfamily]] [[Caesalpinioideae]] of the [[family]] [[Fabaceae]]", parents = {"Cây họ đậu"}, } labels["caltrop family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bean-caper]], [[caltrop]], [[creosote bush]], [[lignum vitae]], and other plants in the [[family]] [[Zygophyllaceae]]", parents = {"plants", "shrubs", "trees"}, } labels["Cardamineae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bittercress]], [[dame's rocket]], [[horseradish]], [[lady's smock]], [[toothwort]], [[watercress]], [[wintercress]], and other plants in the [[brassicaceous]] [[tribe]] [[Cardamineae]]", parents = {"crucifers"}, } labels["carnation family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[baby's breath]], [[campion]]s, [[carnation]]s, [[chickweed]], [[knawel]]s, [[sandwort]]s, [[pink]]s, [[rupturewort]]s, [[soapwort]] and other plants in the [[family]] [[Caryophyllaceae]]", parents = {"Caryophyllales order plants"}, } labels["carnivorous plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bladderwort]]s, [[butterwort]]s, [[pitcher plant]]s, [[sundew]]s, [[Venus flytrap]]s, and other plants that trap and obtain nutrients from animals", parents = {"plants"}, } labels["Caryophyllales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[amaranth]]s, [[buckwheat]], [[cacti]], [[carnation]]s, [[dock]], [[four-o'clock]]s, [[glasswort]], [[goosefoot]]s, [[greasewood]], [[ice plant]]s, [[jojoba]], [[knotweed]]s, [[Malabar spinach]], [[miner's lettuce]], [[plumbago]]s, [[pokeweed]], [[ragged robin]], [[rhubarb]], [[statice]], [[purslane]], [[saltbush]]es, [[spinach]], [[thrift]], [[tamarisk]], [[Venus flytrap]], and other plants in the [[order]] [[Caryophyllales]]", parents = {"plants"}, } labels["celery family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[ajwain]], [[anise]], [[arracacha]], [[asafoetida]], [[carrot]]s, [[celery]], [[chuchupate]], [[coriander]], [[cumin]], [[dill]], [[galbanum]], [[hemlock]], [[hogweed]], [[lovage]], [[masterwort]], [[parsley]], [[parsnip]]s, [[samphire]], [[sanicle]]s, [[sea holly]], [[yampah]] and other plants in the [[family]] [[Apiaceae]], also known as the [[Umbelliferae]]", parents = {"Apiales order plants"}, } labels["Chickpeas"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[chickpea]]s", parents = {"Cây họ đậu"}, } labels["Cichorieae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[chicory|chicories]], [[dandelion]]s, [[endive]], [[hawkweed]]s, [[lettuce]]s, [[murnong]], [[nipplewort]], [[oxtongue]], [[salsify]], [[sow thistle]]s, [[succory]], and other plants in the [[tribe]] [[Cichorieae]] of the [[family]] [[Asteraceae]]", parents = {"composites"}, } labels["citrus subfamily plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[citrus]] and other plants in the subfamily [[Aurantioideae]] of the rue family, [[Rutaceae]]", parents = {"rue family plants", "trees", "shrubs"}, } labels["club mosses"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the [[family]] [[Lycopodiaceae]]", parents = {"Thực vật bào tử"}, } labels["Clusiaceae family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the [[family]] [[Clusiaceae]]", parents = {"Bộ Sơ ri"}, } labels["combretum family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[arjuna]], [[bushwillow]]s, [[leadwood]], [[myrobalan]]s, [[Rangoon creeper]], [[tropical almond]], [[white mangrove]], and other plants in the [[family]] [[Combretaceae]]", parents = {"Myrtales order plants", "trees", "shrubs"}, } labels["Nhánh Thài lài"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[arrowroot]]s, [[bamboo]]s, [[banana]]s, [[bird of paradise|birds of paradise]], [[bloodwort]]s, [[bromeliad]]s, [[canna]]s, [[cattail]]s, [[ginger]]s, [[grass]]es, [[kangaroo paw]], [[palm]]s, [[reed]]s, [[rush]]es, [[sedge]]s, [[spiderwort]]s, [[tule]]s, [[water hyacinth]]s, and other plants in the [[commelinid]] [[clade]]", parents = {"Thực vật"}, } labels["Họ Cúc"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[artichoke]]s, [[aster]]s, [[chamomile]], [[chrysanthemum]]s, [[daisy|daisies]], [[dandelion]]s, [[marigold]]s, [[sunflower]]s, [[thistle]]s, [[wormwood]]s and many other plants in the [[family]] [[Asteraceae]], also known as the [[Compositae]]", parents = {"Bộ Cúc"}, } labels["conifers"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"gymnosperms", "trees", "shrubs"}, } labels["Coreopsideae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[beggar's ticks]] or [[bur marigold]]s, [[calliopsis]], [[coreopsis]], [[cosmos]], [[cota]], [[dahlia]]s, [[tickseed]]s and other plants in the [[tribe]] [[Coreopsideae]] of the daisy family, [[Asteraceae]]", parents = {"composites"}, } labels["Cornales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[assegai]], [[blazing star]], [[bunchberry]], [[cornel]], [[dogwood]]s, [[hydrangea]]s, [[tupelo]]s, and other plants in the [[order]] [[Cornales]]", parents = {"plants", "trees", "shrubs"}, } labels["Họ Cải"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[alyssum]], [[cabbage]]s, [[cress]]es, [[mustard]]s, [[radish]]es, [[rocket]]s, [[stock]]s, [[turnip]]s, [[wallflower]]s and other plants in the [[family]] [[Brassicaceae]] (formerly known as the [[Cruciferae]])", parents = {"Bộ Cải"}, } labels["Bộ Bầu bí"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the [[order]] [[Cucurbitales]]", parents = {"Thực vật"}, } labels["Cucurbitas"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[marrow]]s, [[pumpkin]]s, [[squash]]es and other plants in the [[genus]] ''[[Cucurbita]]''", parents = {"Họ Bầu bí"}, } labels["Họ Na"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=trees and shrubs in the [[family]] [[Annonaceae]]", parents = {"Phân lớp Mộc lan", "Cây", "Cây bụi"}, } labels["cycads"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=primitive palm-tree-like [[gymnosperm]]s in the [[division]] [[Cycadophyta]]", parents = {"gymnosperms"}, } labels["cypress family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[alerce]]s, [[arborvitae]]s, [[bald cypress]]es, [[cryptomeria]]s, [[cunninghamia]]s, [[cypress]]es, [[incense cedar]]s, [[juniper]]s, [[redwood]]s, [[sandarac]]s, and other trees and shrubs in the [[family]] [[Cupressaceae]]", parents = {"conifers"}, } labels["Cynodonteae tribe grasses"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[Bermuda grass]], [[deergrass]], [[goosegrass]], [[finger millet]], [[grama]], [[muhly]], [[saltgrass]], [[scratchgrass]], and other grasses in the [[tribe]] [[Cynodonteae]]", parents = {"grasses"}, } labels["Dalbergieae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[ambatch]], [[cocuswood]], [[deervetch]], [[padauk]], [[pallisander]], [[peanut]]s, [[pencil flower]]s, [[red sanders]], [[rosewood]]s, [[shola]], [[sissoo]], [[Tahitian chestnut]], [[tipu]], and other plants in the [[tribe]] [[Dalbergieae]] of the [[family]] [[Fabaceae]]", parents = {"Cây họ đậu"}, } labels["Daturas"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the [[genus]] ''[[Datura]]''", parents = {"Họ Cà", "recreational drugs"}, } labels["Detarioideae subfamily plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the [[subfamily]] [[Detarioideae]] of the [[family]] [[Fabaceae]]", parents = {"Cây họ đậu"}, } labels["Dioscoreales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[black bryony]], [[bog asphodel]]s, [[Polynesian arrowroot]], [[unicorn root]], [[yam]]s, and other plants in the [[order]] [[Dioscoreales]]", parents = {"plants"}, } labels["dillenia family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the [[family]] [[Dilleniaceae]]", parents = {"plants"}, } labels["dogbane family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[carrion flower]]s, [[desert rose]], [[dogbane]]s, [[hoodia]], [[hoya]]s, [[milkweed]]s, [[Natal plum]], [[oleander]]s, [[periwinkle]]s, [[plumeria]]s and other plants in the [[family]] [[Apocynaceae]] (including the former family [[Asclepiadaceae]])", parents = {"Gentianales order plants"}, } labels["ebony family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[ebony]], [[black sapote]] and [[persimmon]]s in the [[genus]] ''[[Diospyros]]'', [[guarri]] in the genus ''[[Euclea]]'', and other plants in the family [[Ebenaceae]]", parents = {"Ericales order plants"}, } labels["ephedras"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the [[genus]] ''[[Ephedra]]'', the only members of the [[gymnosperm]] [[family]] [[Ephedraceae]]", parents = {"gymnosperms"}, } labels["Ericales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[arbutus]], [[benjamin]], [[blueberry|blueberries]], [[brazil nut]]s, [[boojum]], [[camellia]]s, [[cobra lily]], [[cyclamen]]s, [[ebony]], [[jewelweed]], [[kiwi fruit]], [[manzanita]]s, [[ocotillo]], [[persimmon]]s, [[phlox]]es, [[pipsissewa]], [[pitcher plant]]s, [[primrose]]s, [[rhododendron]]s, [[sapote]], [[shea]] tree, [[snowbell]]s, [[summersweet]], [[tea]], and other plants in the [[order]] [[Ericales]]", parents = {"plants", "trees", "shrubs"}, } labels["eucalypts"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[eucalypt]]s – woody plants with capsule-fruiting bodies belonging to seven closely related genera found across Australasia: ''Eucalyptus'', ''Corymbia'', ''Angophora'', ''Stockwellia'', ''Allosyncarpia'', ''Eucalyptopsis'' and ''Arillastrum''", parents = {"Myrtle family plants", "trees"}, } labels["Eupatorieae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[ageratum]]s, [[blazing star]]s, [[bonechủ đề thuộc nhóm tập hợp]]s, [[deer's tongue]], [[hempvine]], [[joe-pye weed]], [[stevia]], [[thoroughwort]]s, [[trumpetweed]]s, and other plants in the [[composite]] tribe Eupatorieae", parents = {"composites"}, } labels["evening primrose family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[clarkia]]s, [[enchanter's nightshade]], [[evening primrose]]s, [[fuchsia]]s, [[suncup]]s, [[willowherb]]s and other plants in the [[family]] [[Onagraceae]] (not to be confused with the true [[primrose]]s in the family [[Primulaceae]])", parents = {"Myrtales order plants", "flowers"}, } labels["Bộ Đậu"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the [[order]] [[Fabales]]", parents = {"Thực vật"}, } labels["Fabeae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[beach pea]]s, [[fava bean]]s, [[lentil]]s, [[pea]]s, [[sweet pea]]s, [[vetch]]es, and other plants in the [[tribe]] [[Fabeae]] of the [[family]] [[Fabaceae]]", parents = {"Cây họ đậu"}, } labels["Fagales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[alder]]s, [[bayberry|bayberries]], [[beech]]es, [[birch]]es, [[butternut]]s, [[chestnut]]s, [[hazel]]s, [[hickory|hickories]], [[hornbeam]]s, [[oak]]s, [[pecan]]s, [[she-oak]]s, [[sweet gale]], [[walnut]]s, [[wingnut]]s, and other plants in the [[order]] [[Fagales]]", parents = {"plants", "trees", "shrubs"}, } labels["ferns"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Thực vật bào tử"}, } labels["fig trees"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"mulberry family plants", "trees"}, } labels["figwort family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[figwort]]s, [[butterfly bush]]es, [[emu bush]]es, [[mudwort]]s, [[mullein]]s, [[myoporum]]s, [[nemesia]]s, and many other plants in the [[family]] [[Scrophulariaceae]], but not including many such as [[foxglove]]s and [[snapdragon]]s that are now in the [[Plantaginaceae]] as well as [[Indian paintbrush]]es and [[lousewort]]s/[[wood betony|wood betonies]], now in the [[Orobanchaceae]]", parents = {"Bộ Hoa môi"}, } labels["Hoa"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Thực vật"}, } labels["four o'clock family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bougainvillea]]s, [[cabbagewood]], [[four o'clock]]s, [[mauka]], [[pisonia]]s, [[punarnava]], [[sand verbena]]s, [[spiderling]]s, [[tarvine]]s, [[wishbone bush]], and other plants in the [[family]] [[Nyctaginaceae]]", parents = {"Caryophyllales order plants"}, } labels["Galegeae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[goat's rue]], [[bladder senna]], [[glory pea]], [[kakabeak]], [[licorice]], [[locoweed]] or [[milkvetch]], [[tragacanth]] and other plants in the [[tribe]] [[Galegeae]] of the [[family]] [[Fabaceae]]", parents = {"Cây họ đậu"}, } labels["Garcinieae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[saptree]]s, [[mangosteen]]s, and other plants in the [[tribe]] [[Garcinieae]] of the [[family]] [[Clusiaceae]]", parents = {"Clusiaceae family plants"}, } labels["Genisteae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[broom]]s, [[furze]]/[[gorse]], [[laburnum]], [[lupine]]s, [[tagasaste]], [[whin]], [[woad-waxen]], and other plants in the [[tribe]] [[Genisteae]] of the [[family]] [[Fabaceae]]", parents = {"Cây họ đậu"}, } labels["gentian family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[gentian]]s, [[bitterwort]], [[canchalagua]], [[centaury|centauries]], [[fieldwort]]s, [[yellowwort]], and other plants in the [[family]] [[Gentianaceae]]", parents = {"Gentianales order plants"}, } labels["Gentianales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the order [[Gentianales]]", parents = {"plants"}, } labels["Geraniales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[cranesbill]]s, [[filaree]]s, [[francoa]]s, [[geranium]]s, [[herb Robert]], [[honeybush]], [[pelargonium]]s, [[storksbill]]s, and other plants in the [[order]] [[Geraniales]]", parents = {"plants"}, } labels["ginger family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "= [[cardamom]], [[galangal]], [[ginger]]s, [[grains of paradise]], [[turmeric]], [[zedoary]], and other plants in the family [[Zingiberaceae]]", parents = {"Bộ Gừng", "spices and herbs"}, } labels["Gnaphalieae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[billy buttons]], [[cudweed]]s, [[everlasting]]s, [[curry plant]], [[pussytoes]], [[strawflower]]s, [[vegetable sheep]] and other plants in the [[composite]] [[tribe]] [[Gnaphalieae]]", parents = {"composites"}, } labels["goosefoot subfamily plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[epazote]], [[hopsage]], [[lamb's quarters]], [[orach]], [[quinoa]], [[saltbush]], [[spinach]], [[winterfat]] and other plants in the [[subfamily]] [[Chenopodioideae]] of the [[family]] [[Amaranthaceae]]", parents = {"amaranths and goosefoots"}, } labels["Họ Bầu bí"] = { type = "chủ đề thuộc nhóm tập hợp", description = "= [[cucumber]]s, [[gourd]]s, [[melon]]s, [[squash]]es, and other plants in the family [[Cucurbitaceae]]", parents = {"Bộ Bầu bí"}, } labels["grape family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[grapevine]]s, [[Boston ivy]], [[Virginia creeper]]. and other plants in the family [[Vitaceae]]", parents = {"plants"}, } labels["grapevines"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"grape family plants", "wine"}, } labels["Cỏ"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Nhánh Thài lài"}, } labels["groundcherries"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[groundcherry|groundcherries]], [[alkekengi]]s, [[Cape gooseberry|Cape gooseberries]], [[Chinese lantern]]s, [[goldenberry|goldenberries]], [[tomatillo]]s, and other plants in the [[genus]] ''[[Physalis]]'' and related [[genera]] in the [[nightshade]] [[subtribe]] [[Physalinae]], notable for bearing a [[tomato]]like fruit enclosed in a papery husk.", parents = {"Họ Cà"}, } labels["gymnosperms"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=various unrelated groups of [[seed plant]]s other than the [[flowering plant]]s", parents = {"plants"}, } labels["heather family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[heather]]s, [[blueberry|blueberries]], [[rhododendron]]s, [[wintergreen]], and other plants in the family [[Ericaceae]]", parents = {"Ericales order plants"}, } labels["Heliantheae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[balsamroot]]s, [[brittlebush]], [[burrobrush]], [[cocklebur]]s, [[coneflower]]s, [[echinacea]], [[guayule]], [[Jerusalem artichoke]]s, [[mule's ears]], [[ox-eye daisy|ox-eye daisies]], [[pilotweed]]s, [[ragweed]]s, [[rosinweed]]s, [[sunflower]]s, [[tithonia]]s, [[zinnia]]s and other [[plant]]s in the [[composite]] [[tribe]] [[Heliantheae]]", parents = {"composites"}, } labels["hemp family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[hemp]], [[hops]], [[hackberries]], and other plants in the family [[Cannabaceae]]", parents = {"Rosales order plants"}, } labels["herbs"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"plants", "spices and herbs"}, } labels["hollies"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"plants", "shrubs", "trees"}, } labels["honeysuckle family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[abelia]]s, [[cornsalad]], [[honeysuckle]]s, [[scabious]], [[snowberry|snowberries]], [[spikenard]], [[teasel]]s, [[twinflower]]s, [[valerian]]s, and other plants in the [[family]] [[Caprifoliaceae]], including those in the former families [[Dipsacaceae]], [[Linnaeaceae]], and [[Valerianaceae]]", parents = {"plants", "shrubs"}, } labels["Hordeeae tribe grasses"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[barley]], [[emmer]], [[foxtail barley]], [[goatgrass]], [[lyme grass]], [[medusahead]], [[quackgrass]], [[rye]], [[spelt]], [[squirreltail]], [[wheat]], [[wheatgrass]], [[wild rye]], and other grasses in the [[tribe]] [[Hordeeae]], also known as the [[Triticeae]]", parents = {"grasses"}, } labels["horchủ đề thuộc nhóm tập hợpails"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[horchủ đề thuộc nhóm tập hợpail]]s, [[calamite]]s, and other plants in the [[taxon]] known as the [[subclass]] [[Equichủ đề thuộc nhóm tập hợpidae]] or either the [[class]] [[Equichủ đề thuộc nhóm tập hợpopsida]] or the class [[Sphenopsida]], depending on the classification system used", parents = {"Thực vật bào tử"}, } labels["incense tree family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[abilo]], [[Chinese olive]], [[elephant tree]], [[frankincense]], [[gumbo limbo]], [[myrrh]], [[pili nut]]s, and other plants in the family [[Burseraceae]]", parents = {"plants", "shrubs", "trees"}, } labels["iris family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[crocus]]es, [[freesia]]s, [[gladiolus]]es, [[iris]]es, [[ixia]]s, [[sparaxis]], [[watsonia]]s, and other plants in the family [[Iridaceae]]", parents = {"Bộ Măng tây", "flowers"}, } labels["Bộ Hoa môi"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[acanthus]]es, [[African violet]]s, [[ash]]es, [[betony]], [[brooklime]], [[butterfly bush]], [[catalpa]]s, [[chaste tree]], [[devil's claw]], [[eyebright]], [[foxglove]]s, [[hyssop]]s, [[jasmine]]s, [[lavender]]s, [[lilac]]s, [[lousewort]]s, [[mare's tail]], [[mint]]s, [[monkeyflower]]s, [[mullein]], [[olive]]s, [[oregano]]s, [[plantain]]s, [[privet]]s, [[sage]]s, [[sesame]], [[skullcap]]s, [[snapdragon]]s, [[teak]], [[thyme]]s, [[verbena]]s and other plants in the [[order]] [[Lamiales]]", parents = {"Thực vật", "Cây bụi", "Cây"}, } labels["Lamioideae subfamily plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bells of Ireland]], [[betony]], [[crosne]], [[deadnettle]], [[hemp-nettle]], [[henbit]], [[horehound]], [[ironwort]], [[Jerusalem sage]], [[lamb's ears]], [[lion's ear]], [[motherwort]], [[mountain tea]], [[obedient plant]], [[patchouli]], and other plants in the [[subfamily]] [[Lamioideae]] of the mint family, [[Lamiaceae]]", parents = {"mint family plants"}, } labels["laurel family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the family [[Lauraceae]]", parents = {"Magnoliids", "trees", "shrubs"}, } labels["Cây họ đậu"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the family [[Fabaceae]], also known as the [[Leguminosae]]", parents = {"Bộ Đậu", "Cây bụi", "Cây"}, } labels["Liliales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[beargrass]], [[death camas]], [[false hellebore]], [[greenbrier]], [[herb Paris]], [[lily|lilies]], [[meadow saffron]], [[supplejack]], [[sarsparilla]], [[trillium]]s, [[tulip]]s, [[turkey's beard]], and other plants, in the [[order]] [[Liliales]]", parents = {"plants"}, } labels["lily family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the family [[Liliaceae]]", parents = {"Liliales order plants", "flowers"}, } labels["madder family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bedstraw]], [[cinchona]], [[coffee]], [[gardenia]]s, [[ipecacuanha]], [[madder]], [[noni]], [[woodruff]], and other plants in the [[family]] [[Rubiaceae]]", parents = {"Gentianales order plants", "shrubs"}, } -- FIXME, should be lowercase. labels["Phân lớp Mộc lan"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[allspice]], [[avocado]]s, [[black pepper]], [[champac]], [[cinnamon]], [[custard apple]]s, [[kava]], [[laurel]]s, [[magnolia]]s, [[nutmeg]], [[pipevine]]s, [[sassafras]]es, [[sweetshrub]]s, [[star anise]], [[tulip tree]], [[Winter's bark]], [[yerba mansa]], [[ylang-ylang]], and other plants in the [[Magnoliids]] [[clade]]", parents = {"Thực vật"}, wpcat = true, } labels["mahogany family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[chinaberry]], [[langsat]], [[mahogany]], [[neem]], [[Spanish cedar]]s, [[toon]], [[santol]], and other plants in the [[family]] [[Meliaceae]]", parents = {"trees", "shrubs"}, } labels["maize (plant)"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[maize]] (''[[Zea mays]]'') as a plant, and for its various types", additional = "For maize as a crop, see [[:Category:Maize (crop)]] and for maize as a food, see [[:Category:Maize (food)]].", parents = {"Andropogoneae tribe grasses", "grains"}, } labels["Họ Cẩm quỳ"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[balsa]], [[cacao]], [[cotton]], [[durian]]s, [[jute]], [[kola]]s, [[kurrajong]]s, [[hibiscus]]es, [[linden]]s, [[mallow]]s, [[peanut tree]]s, [[phalsa]], [[silk-cotton tree]]s, and other plants in the current [[family]] [[Malvaceae]], including a number of former families such as the [[Bombacaceae]], [[Sterculiaceae]], and the [[Tiliaceae]]", parents = {"Bộ Cẩm quỳ", "Cây bụi"}, } labels["mallow subfamily plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[abelmosk]], [[cotton]], [[hibiscus]]es, [[hollyhock]]s, [[mallow]]s, [[okra]], and other plants in the traditional [[family]] [[Malvaceae]], which is now considered to be the [[subfamily]] [[Malvoideae]] within the current [[Malvaceae]]", parents = {"Họ Cẩm quỳ"}, } labels["Bộ Sơ ri"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the order [[Malpighiales]]", parents = {"Thực vật"}, } labels["Bộ Cẩm quỳ"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[agalloch]], [[annatto]], [[balsa]], [[cacao]], [[cotton]], [[daphne]]s, [[durian]]s, [[jute]], [[hibiscus]]es, [[linden]]s, [[mallow]]s, [[rockrose]]s, [[sal]], [[silk-cotton tree]]s, [[tie bush]], and other plants in the [[order]] [[Malvales]]", parents = {"Thực vật", "Cây bụi", "Cây"}, } labels["maples"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"soapberry family plants", "trees"}, } labels["Menthinae subtribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[American pennyroyal]], [[basil thyme]], [[bee balm]], [[calamint]], [[horsemint]], [[mint]]s, [[marjoram]], [[mountain mint]], [[oregano]], [[savory|savories]], [[thyme]]s and other plants in the [[subtribe]] [[Menthinae]] of the mint family, [[Lamiaceae]]", parents = {"mint family plants", "spices and herbs"}, } labels["Phân họ Trinh nữ"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[acacia]]s, [[ice-cream bean]]s, [[mesquite]]s, [[mimosa]]s, [[rain tree]]s, and other plants in the [[subfamily]] [[Mimosoideae]] of the [[family]] [[Fabaceae]], which has been reclassified as a [[clade]] within the [[subfamily]] [[Caesalpinioideae]]", parents = {"Cây họ đậu", "Phân họ Vang"}, } labels["mint family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[balms]], [[basil]]s, [[betony]], [[coleus]]es, [[deadnettle]]s, [[ground ivy]], [[hyssop]]s, [[lavender]]s, [[mint]]s, [[oregano]]s, [[patchouli]], [[perilla]], [[sage]]s, [[savory|savories]], [[selfheal]], [[skullcap]]s, [[thyme]]s, and other plants in the [[family]] [[Lamiaceae]], also known as the [[Labiatae]]", parents = {"Bộ Hoa môi", "spices and herbs"}, } labels["mints"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=the true [[mint]]s, plants in the [[genus]] ''[[Mentha]]''", parents = {"mint family plants", "Menthinae subtribe plants"}, } labels["morning glory family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bindweed]]s, [[dichondra]], [[dodder]], [[morning glory|morning glories]], [[sweet potato|sweet potatoes]], [[wood rose]]s and other plants in the [[family]] [[Convolvulaceae]]", parents = {"plants"}, } labels["moschatel family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[elderberry|elderberries]], [[moschatel]], [[viburnum]]s, and other plants in the [[family]] [[Adoxaceae]]", parents = {"plants", "shrubs", "trees"}, } labels["Rêu"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=true [[moss]]es, plants in the [[division]] [[Bryophyta]] (excluding [[hornwort]]s and [[liverwort]]s), which doesn't include [[lichen]]s, [[club moss]]es, [[spike moss]]es, [[algae]], or mossy [[flowering plant]]s such as [[Irish moss]], or [[Spanish moss]]", parents = {"Thực vật bào tử", "Rêu học"}, } labels["mulberry family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[mulberry|mulberries]], [[breadfruit]], [[fig]]s and other trees in the family [[Moraceae]]", parents = {"Rosales order plants", "trees"}, } labels["Myrtales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[allspice]], [[arjuna]], [[bottlebrush]], [[clove]]s, [[eucalyptus]]es, [[evening primrose]]s, [[guava]]s, [[henna]], [[leadwood]], [[lilly-pilly]], [[loosestrife]]s, [[myrobalan]]s, [[myrtle]]s, [[pomegranate]]s, [[quaruba]], [[Rangoon creeper]], [[rose apple]]s, [[tea tree]], [[tropical almond]]s, [[water caltrop]]s, [[white mangrove]]s, [[willowherb]]s, and other plants, shrubs and trees in the [[order]] [[Myrtales]]", parents = {"plants", "shrubs", "trees"}, } labels["myrtle family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the [[family]] [[Myrtaceae]]", parents = {"Myrtales order plants", "trees", "shrubs"}, } labels["Nepetinae subtribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[anise hyssop]], [[catnip]], [[dragonhead]], [[ground-ivy]], [[hyssop]], [[Korean mint]], [[licorice mint]], and other plants in the [[subtribe]] [[Nepetinae]] of the mint family, [[Lamiaceae]]", parents = {"mint family plants"}, } labels["nettle family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[baby's tears]], [[clearweed]], [[nettle]]s, [[ramie]], and other plants in the [[family]] [[Urticaceae]]", parents = {"Rosales order plants"}, } labels["Họ Cà"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[ashwagandha]], [[black nightshade]], [[boxthorn]]s, [[datura]]s, [[deadly nightshade]], [[eggplant]]s, [[goji]], [[henbane]], [[mandrake]], [[matrimony vine]], [[pepper]]s, [[petunia]]s, [[potato]]es, [[tobacco]], [[tomatillo]]s, [[tomato]]es and other plants in the family [[Solanaceae]]", parents = {"Thực vật"}, } labels["Nymphaeales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[fanwort]]s, [[foxnut]]s, [[spatterdock]]s, [[water lily|water lilies]], [[water-shield]]s, and other plants in the [[order]] [[Nymphaeales]]", parents = {"water plants"}, } labels["oaks"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[oak]]s.\n\nMany languages recognize two main types: those with flat, [[deciduous]] leaves, and those with curled, often prickly, [[evergreen]] leaves (live oaks)", parents = {"beech family plants", "trees"}, } labels["olive family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[olive]]s, [[ash]]es, [[jasmine]]s, [[lilac]]s, [[privet]]s and other plants in the family [[Oleaceae]]", parents = {"Bộ Hoa môi"}, } labels["Họ Lan"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the [[family]] [[Orchidaceae]]", parents = {"Bộ Măng tây", "Hoa"}, } labels["Oryzeae tribe grasses"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[cutgrass]], [[rice]], [[wild rice]], and other grasses in the tribe [[Oryzeae]]", parents = {"grasses"}, } labels["Oxalidales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bilimbi]], [[coachwood]], [[cudgerie]], [[makomako]], [[quandong]], [[rudraksha]], [[star fruit]], [[wood sorrel]]s, and other plants in the [[order]] [[Oxalidales]]", parents = {"plants", "trees"}, } labels["Họ Cau"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[palm]]s", parents = {"Nhánh Thài lài", "Cây"}, } labels["Pandanales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[kiekie]], [[Panama hat palm]], [[pandanus]], [[stemona]], and other plants in the [[order]] [[Pandanales]]", parents = {"plants", "trees"}, } labels["Paniceae tribe grasses"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[burgrass]], [[basketgrass]], [[bristlegrass]]es, [[buffelgrass]], [[common millet]], [[crabgrass]], [[elephant grass]], [[foxtail millet]], [[fountaingrass]], [[Kikuyu grass]], [[Napier grass]], [[panicgrass]], [[Pará grass]], [[pigeongrass]], [[sandbur]], [[spinifex]], [[switchgrass]], [[watergrass]], and other grasses in the tribe [[Paniceae]]", parents = {"grasses"}, } labels["passion vine family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[barbadine]]s, [[damiana]], [[granadilla]]s, [[maracock]]s, [[maypop]]s, [[passionflower]]s, [[water lemon]]s, and other plants in the [[family]] [[Passifloraceae]]", parents = {"Bộ Sơ ri"}, } labels["peppers"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[aji]]s, [[chile]]s, [[pimiento]]s, [[sweet pepper]]s, and other plants in the [[genus]] ''[[Capsicum]]''", parents = {"Họ Cà", "vegetables", "spices and herbs"}, } labels["Phaseoleae"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[azuki bean]]s, [[catjang]]s, [[Bambara groundnut]]s, [[Calabar bean]]s, [[coral tree]]s, [[green bean]]s, [[groundnut]]s, [[hyacinth bean]]s, [[jicama]], [[kidney bean]]s, [[kudzu]], [[mung bean]]s, [[pigeon pea]]s, [[runner bean]]s, [[snailflower]], [[soybean]]s, [[tepary]], [[winged bean]]s, [[yardlong bean]]s and other plants in the [[tribe]] [[Phaseoleae]] of the [[family]] [[Fabaceae]]", parents = {"Cây họ đậu"}, } labels["Phaseolus beans"] = { type = "chủ đề thuộc nhóm tập hợp", displaytitle = "''Phaseolus'' beans", description = "=plants in the [[New World]] [[legume]] [[genus]] ''[[Phaseolus]]''", parents = {"Phaseoleae", "vegetables"}, } labels["pines"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"conifers"}, } labels["Piperales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[betel pepper]], [[black pepper]], [[cubeb]], [[hoja santa]], [[kava]], [[lizard tail]], [[long pepper]], [[pipevine]], [[radiator plant]], [[wild ginger]], [[yerba mansa]], and other plants in the [[order]] [[Piperales]]", parents = {"Magnoliids"}, } labels["plantain family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bacopa]]s, [[brooklime]], [[foxglove]]s, [[mare's tail]], [[penstemon]]s, [[plantain]]s, [[snapdragon]]s, and many other plants in the [[family]] [[Plantaginaceae]], including many formerly included in the [[Scrophulariaceae]] and the [[Hippuridaceae]]", parents = {"Bộ Hoa môi", "flowers"}, } labels["podocarpus family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=conifers in the family [[Podocarpaceae]]", parents = {"conifers"}, } labels["Poeae tribe grasses"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[beachgrass]], [[bentgrass]], [[bluegrass]], [[canary grass]], [[darnel]], [[fescue]], [[goldseed]], [[hair grass]], [[marram]], [[muttongrass]], [[nitgrass]], [[oat]]s, [[ribbongrass]], [[sweetgrass]], [[timothy]], and other grasses in the [[tribe]] [[Poeae]], including the former tribe [[Aveneae]]", parents = {"grasses"}, } labels["polynesian canoe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[Polynesian]] [[canoe plant]]s, plants which the Polynesians are believed to have spread between islands before European contact", parents = {"plants"}, } labels["Quả pome"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[apple]]s, [[hawthorn]]s, [[pear]]s, [[quince]]s, [[serviceberry|serviceberries]] and other plants in [[subtribe]] [[Malinae]] of the family [[Rosaceae]]", parents = {"Họ Hoa hồng", "Cây", "Cây bụi"}, } labels["poppies"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bleeding heart]], [[bloodroot]], [[celandine]], [[fumitory]], [[poppy|poppies]], and other plants in the family [[Papaveraceae]]", parents = {"Ranunculales order plants"}, } labels["primrose family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[brookweed]], [[cyclamen]]s, [[marlberry]], [[pimpernel]]s, [[primrose]]s, [[shooting star]]s, [[snowbell]]s, [[starflower]]s and other plants in the family [[Primulaceae]], including the former [[family]] [[Myrsinaceae]]", parents = {"Ericales order plants", "flowers"}, } labels["proteales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[banksia]]s, [[grevillea]]s, [[hakea]]s, [[lotus]]es, [[macadamia]]s, [[plane]] trees, [[protea]]s, [[silk oak]]s, [[waratah]], and other plants in the [[order]] [[Proteales]]", parents = {"plants", "trees", "shrubs"}, } labels["Chi Mận mơ"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[almond]]s, [[apricot]]s, [[cherry|cherries]], [[peach]]es, [[plum]]s and other plants in the genus ''[[Prunus]]''", parents = {"Họ Hoa hồng", "Quả hạch"}, } labels["Cải củ"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Họ Cải", "Rau"}, } labels["Ranunculales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[akebia]], [[barberry|barberries]], [[buttercup]]s, [[calumba]], [[moonseed]]s, [[poppy|poppies]], [[serendipity berry]], and other plants in the [[order]] [[Ranunculales]]", parents = {"plants"}, } labels["Bộ Hoa hồng"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[agrimony]], [[almond]]s, [[apple]]s, [[baby's tears]], [[blackberry|blackberries]], [[breadfruit]], [[buffaloberry|buffaloberries]], [[buckthorn]]s, [[cherry|cherries]], [[elm]]s, [[fig]]s, [[hackberries]], [[hemp]], [[hop]]s, [[jujube]]s, [[mulberry|mulberries]], [[nettle]]s, [[oleaster]]s, [[Osage orange]], [[pilea]]s, [[plum]]s, [[rose]]s, [[spirea]]s, [[strawberry|strawberries]], [[zelkova]]s, and many other plants, trees and shrubs in the [[order]] [[Rosales]]", parents = {"Thực vật"}, } labels["Họ Hoa hồng"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[agrimony]], [[almond]]s, [[apple]]s, [[blackberry|blackberries]], [[cherry|cherries]], [[cinquefoil]]s, [[hawthorn]]s, [[meadowsweet]], [[rose]]s, [[strawberry|strawberries]], and many other plants, trees and shrubs in the family [[Rosaceae]]", parents = {"Bộ Hoa hồng"}, } labels["roses"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"rose family plants", "flowers"}, } labels["rue family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[Amur cork tree]], [[boronia]]s, [[breath of heaven]], [[buchu]], [[citrus]]es, [[hoptree]], [[jaborandi]], [[prickly ash]]es, [[rue]], [[satinwood]]s, [[Sichuan pepper]], [[torchwood]]s, [[white sapote]]s and other plants in the [[family]] [[Rutaceae]]", parents = {"Sapindales order plants", "trees", "shrubs"}, } labels["rushes"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the family [[Juncaceae]]", parents = {"Nhánh Thài lài", "water plants"}, } labels["sages"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the [[genus]] ''[[Salvia]]'' (not to be confused with [[sagebrush]])", parents = {"mint family plants", "herbs"}, } labels["Santalales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[mistletoe]]s, [[quandong]], [[sandalwood]]s, and other plants in the [[order]] [[Santalales]]", parents = {"plants"}, } labels["Sapindales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[cashew]]s, [[Chinese olive]]s, [[chinaberry]], [[citrus]]es, [[frankincense]], [[jaborandi]], [[lychee]]s, [[mahogany]], [[mango]]s, [[maple]]s, [[myrrh]], [[neem]], [[pistachio]]s, [[poison ivy]], [[quassia]], [[rambutan]], [[rue]], [[Sichuan pepper]], [[soapberry]], [[sumac]]s, [[tamarind]], [[tree of heaven]], and many other plants, trees and shrubs in the [[order]] [[Sapindales]]", parents = {"plants", "trees", "shrubs"}, } labels["sapote family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=trees and shrubs in the family [[Sapotaceae]]", parents = {"Ericales order plants"}, } labels["Saxifragales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[alumroot]]s, [[astilbe]]s, [[currant]]s, [[foamflower]]s, [[gooseberry|gooseberries]], [[Indian rhubarb]], [[katsura]], [[London pride]], [[miterwort]]s, [[peony|peonies]], [[rockfoil]]s, [[saxifrage]]s, [[stonecrop]]s, [[sweet gum]]s, [[watermilfoil]]s, [[witch hazel]]s, [[youth-on-age]], and other plants in the [[order]] [[Saxifragales]]", parents = {"plants", "trees", "shrubs"}, } labels["Scandiceae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[asafoetida]], [[carrot]]s, [[chervil]], [[cicely]], [[cumin]], [[lady's comb]], [[laserwort]], and other plants in the [[tribe]] [[Scandiceae]] of the celery [[family]], [[Apiaceae]]", parents = {"celery family plants"}, } labels["sedges"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the family [[Cyperaceae]]", parents = {"Nhánh Thài lài"}, } labels["Selineae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[angelica]], [[arracacha]], [[biscuitroot]], [[dog parsley]], [[dong quai]], [[hog fennel]], [[masterwort]], and other plants in the [[tribe]] [[Selineae]] of the celery [[family]], [[Apiaceae]]", parents = {"celery family plants"}, } labels["Senecioneae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[butterbur]]s, [[cineraria]]s, [[coltsfoot]]s, [[dusty miller]], [[groundsel]]s, [[leopardsbane]], [[ragwort]]s, [[string of pearls]], and other plants in the [[composite]] tribe [[Senecioneae]]", parents = {"composites"}, } labels["Cây bụi"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Thực vật"}, wpcat = true, commonscat = "Shrubs", } labels["soapberry family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the family [[Sapindaceae]]", parents = {"Sapindales order plants", "trees", "shrubs"}, } labels["Chi Cà"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bittersweet]], [[black nightshade]] [[buffalo bur]], [[eggplant]]s, [[Jerusalem cherry]], [[kangaroo apple]], [[pepino melon]], [[potato]]es, [[tamarillo]], [[tomato]]es, [[wonderberry]] and other plants in the [[genus]] ''[[Solanum]]''", parents = {"Họ Cà", "Rau"}, } labels["Thực vật bào tử"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=a number of unrelated true plants that reproduce by [[spore]]s, such as [[moss]]es, [[liverwort]]s, [[horchủ đề thuộc nhóm tập hợpail]]s and [[fern]]s, formerly classified as [[cryptogam]]s", parents = {"Thực vật"}, } labels["spurges"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[candlenut]]s, [[cassava]], [[castor bean]]s, [[croton]]s, [[poinchủ đề thuộc nhóm tập hợptia]]s, [[rubber tree]]s, [[spurge]]s, [[tallow tree]]s, and other plants in the [[family]] [[Euphorbiaceae]]", parents = {"Bộ Sơ ri"}, } labels["staff vine family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[bittersweet]], [[burning bush]], [[candlewood]], [[grass of Parnassus]], [[khat]], [[mayten]], [[paxistima]]s, [[spindle tree]]s, [[staff vine]]s, [[thunder god vine]], [[wahoo]], and other plants in the family [[Celastraceae]]", parents = {"plants", "shrubs"}, } labels["Quả hạch"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=fruit which are [[drupe]]s (having a [[fleshy]] portion surrounding a hard [[pit#Noun|pit]] or [[stone#Noun|stone]] containing a [[seed#Noun|seed]]). Plants that produce drupes include [[cashew]], [[coffee]], [[jujube]], [[mango]], [[olive]], most [[palm#Noun|palms]] (including [[açaí]], [[coconut]], [[date#Noun|date]], [[oil palm]]s, and [[sabal]]), [[pistachio]], and all members of the [[genus]] ''[[Prunus]]'' (including the [[almond]], [[apricot]], [[cherry]], [[damson]], [[nectarine]], [[peach]], and [[plum#Noun|plum]])", parents = {"Trái cây", "Cây bụi", "Cây"}, } labels["stonecrop family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[succulent]]s in the family [[Crassulaceae]]", parents = {"Saxifragales order plants", "cây mọng nước"}, } labels["cây mọng nước"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants with thickened, fleshy leaves or stems for storing water", parents = {"Thực vật"}, } labels["sumac family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[sumac]]s, [[cashew]]s, [[pistachio]]s, [[poison ivy]] and other plants in the family [[Anacardiaceae]]", parents = {"Sapindales order plants", "trees", "shrubs"}, } labels["thistles"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[artichoke]]s, [[burdock]]s, [[cardoon]]s, [[costus]], [[knapweed]]s, [[safflower]], [[sawwort]], [[thistle]]s and other plants in the [[tribe]] [[Cynareae]] (also known as the [[Cardueae]]) of the [[family]] [[Asteraceae]]", parents = {"composites"}, } labels["tomatoes"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the cultivated [[species]] ''[[Solanum lycopersicum]]'' and its wild relative, ''[[Solanum pimpinellifolium]]''", parents = {"Họ Cà", "Chi Cà", "vegetables"}, } labels["Cây"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Thực vật"}, wpcat = true, commonscat = true, } labels["Trifolieae tribe plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[alfalfa]], [[alsike]], [[burclover]], [[clover]], [[fenugreek]], [[medick]], [[melilot]], [[restharrow]], and other plants in the [[tribe]] [[Trifolieae]] of the [[family]] [[Fabaceae]]", parents = {"Cây họ đậu"}, } labels["Chi Đậu"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the Asian [[legume]] [[genus]] ''[[Vigna]]'', including [[black-eyed pea]]s, [[Bambara groundnut]]s and what are variously called [[bean]]s, [[dal]]s or [[gram]]s", parents = {"Phaseoleae", "Rau"}, } labels["violet family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[Johnny-jump-up]]s, [[mahoe]], [[pansy|pansies]], [[viola]]s, [[violet]]s, [[whiteywood]] and other plants in the family [[Violaceae]]", parents = {"Bộ Sơ ri"}, } labels["Vitales order plants"] = { type = "chủ đề thuộc nhóm tập hợp", displaytitle = "''Vitales'' order plants", description = "=[[grape]]s and other plants in the ''[[Vitales]]'' order", parents = {"plants"}, } labels["walnut family plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[walnut]]s, [[butternut]]s, [[hickory|hickories]], [[pecan]]s, and other trees in the family [[Juglandaceae]]", parents = {"trees", "nuts"}, } labels["water plants"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"plants"}, } labels["willows and poplars"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=plants in the family [[Salicaceae]]", parents = {"Bộ Sơ ri", "trees"}, } labels["Bộ Gừng"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[arrowroot]], [[banana]]s, [[bird of paradise|birds of paradise]], [[canna]]s, [[ginger]]s, [[prayer plant]], and other plants in the [[order]] [[Zingiberales]]", parents = {"Nhánh Thài lài"}, } return labels iergitpdnzm4nawowda65ksz8l5nis2 Mô đun:category tree/topic/Places 828 324859 2351367 2350214 2026-05-08T11:56:33Z TheHighFighter2 42988 2351367 Scribunto text/plain local labels = {} local handlers = {} local m_table = require("Module:table") local en_utilities_module = "Module:en-utilities" local string_utilities_module = "Module:string utilities" local m_locations = require("Module:place/locations") local m_placetypes = require("Module:place/placetypes") local placetype_data = m_placetypes.placetype_data local internal_error = m_locations.internal_error local dump = mw.dumpObject local insert = table.insert local concat = table.concat local is_callable = require("Module:fun").is_callable --[==[ intro: This module is part of the category tree code and contains code to generate the descriptions of place-related categories such as [[Category:de:Hokkaido Prefecture, Japan]], [[Category:es:Cities in France]], [[Category:pt:Municipalities of Tocantins, Brazil]], etc.). Note that this module doesn't actually create the categories; that must be done separately, with the text "{{tl|auto cat}}" as the definition of the category. (This process should automatically happen periodically for non-empty categories, because they will appear in [[Special:WantedCategories]] and a bot will periodically examine that list and create any needed category.) There are two ways that category descriptions are specified: (1) by manually adding an entry to the `labels` table, keyed by the label (the category minus the language code) with a value consisting of a Lua table specifying the description text and the category's parents; (2) through handlers (pieces of Lua code) added to the `handlers` list, which recognize labels of a specific type (e.g. `Cities in France`) and generate the appropriate specification for that label on-the-fly. See [[Module:place]] for an introduction to the terminology associated with places along with a list of all the relevant modules, along with for more specific information on types of toponyms and placetypes and how their categorization works. ]==] local function lcfirst(label) return mw.getContentLanguage():lcfirst(label) end local function gsub_literally(str, from, to) local m_strutils = require(string_utilities_module) return (str:gsub(m_strutils.pattern_escape(from), m_strutils.replacement_escape(to))) end local class_to_bare_category_parent = { ["polity"] = "tổ chức chính trị", ["subpolity"] = "political divisions", ["settlement"] = "settlements", ["non-admin settlement"] = "settlements", ["capital"] = "capital cities", ["natural feature"] = "đặc điểm tự nhiên", ["man-made structure"] = "man-made structures", ["geographic region"] = "geographic and cultural areas", } local class_is_political_division = { ["polity"] = true, -- strictly false but there are placetypes ambiguous between polity and subpolity ["subpolity"] = true, ["settlement"] = true, ["non-admin settlement"] = false, ["capital"] = true, ["natural feature"] = false, ["man-made structure"] = false, ["geographic region"] = false, ["generic place"] = false, } local capital_cat_to_placetype = {} for placetype, capital_cat in pairs(m_placetypes.placetype_to_capital_cat) do capital_cat_to_placetype[capital_cat] = placetype end -- Handler for bare categories for all types of capitals. This needs to precede the handler for bare placetype -- categories as some of the types of capitals exist as placetypes as well. insert(handlers, function(label) label = lcfirst(label) local capital_placetype = capital_cat_to_placetype[label] if capital_placetype then local pl_placetype = m_placetypes.pluralize_placetype(capital_placetype) local linkdesc = m_placetypes.get_placetype_display_form(pl_placetype, "top-level") if linkdesc == nil then internal_error("Unrecognized placetype %s when processing label %s", capital_placetype, label) end if linkdesc == false then mw.log(("Display form for pl_placetype %s is false, can't categorize"):format(dump(pl_placetype))) return nil end return { type = "chủ đề thuộc nhóm tên gọi", topic = label, description = "{{{langname}}} names of [[capital]]s of " .. linkdesc .. ".", parents = {"capital cities"}, } end end) -- Handler for bare placetype categories. FIXME: Add wpcat= and commonscat= info. Previously we had it for various -- so-called "generic" placetypes, but sometimes the categories were wrong. insert(handlers, function(label) for _, canon_label in ipairs { lcfirst(label), label } do local ptdesc, ptdata = m_placetypes.get_placetype_display_form(canon_label, "top-level", "return full") if ptdesc then local from_category_props = { from_category = true, no_split_qualifiers = true, } local bare_category_parent = m_placetypes.get_equiv_placetype_prop(canon_label, function(pt) local bare_category_parent = m_placetypes.get_placetype_prop(pt, "bare_category_parent") if bare_category_parent then return bare_category_parent end local class = m_placetypes.get_placetype_prop(pt, "class") if class then if class_to_bare_category_parent[class] == nil then internal_error("Saw unknown category class %s derived from placetype %s", class, canon_label) end return class_to_bare_category_parent[class] end end, from_category_props) if not bare_category_parent then internal_error("Saw placetype %s without a `class` or `bare_category_parent` setting, either " .. "directly or through a fallback", canon_label) end local addl_bare_category_parents = m_placetypes.get_equiv_placetype_prop(canon_label, function(pt) return m_placetypes.get_placetype_prop(pt, "addl_bare_category_parents") end, from_category_props) local bare_category_breadcrumb = m_placetypes.get_equiv_placetype_prop(canon_label, function(pt) return m_placetypes.get_placetype_prop(pt, "bare_category_breadcrumb") end, from_category_props) if type(bare_category_parent) == "string" and bare_category_breadcrumb then bare_category_parent = {name = bare_category_parent, sort = bare_category_breadcrumb} end local parents = {bare_category_parent} if addl_bare_category_parents then m_table.extend(parents, addl_bare_category_parents) end return { type = "chủ đề thuộc nhóm tên gọi", topic = canon_label, description = "{{{langname}}} " .. ptdesc .. ".", breadcrumb = bare_category_breadcrumb, parents = parents, } elseif ptdesc == false then mw.log(("Display form for canon_label %s is false, can't categorize"):format(dump(canon_label))) end end end) local function fetch_primary_placetype(key, spec) local placetype = spec.placetype if type(placetype) == "table" then placetype = placetype[1] end if not placetype then internal_error("No placetype specified or defaulted for key %s, spec %s", key, spec) end return placetype end --[==[ Construct an appropriately linked location based on the full or elliptical placename, preceded by `"the "`` if appropriate. Specifically: Fetch the full and elliptical_placenames. If they are the same, just link to the placename directly. Otherwise, check if the full placename exists; if so link to it. Otherwise, if the elliptical placename exists, link to it but display it as the full placename. Finally, if neither full placename nor elliptical placename exists, fall back to linking to the full placename. That way, we prefer full placenames to elliptical placenames if both or neither exist as Wiktionary entries, but if only one exists, we link to that one rather than have a red link. ]==] local function construct_linked_location(group, key, spec) local full_placename, elliptical_placename = m_locations.key_to_placename(group, key) local linked_placename if elliptical_placename ~= full_placename then local full_placename_title = mw.title.new(full_placename) if full_placename_title and full_placename_title.exists then linked_placename = m_locations.construct_linked_placename(spec, full_placename) else local elliptical_placename_title = mw.title.new(elliptical_placename) if elliptical_placename_title and elliptical_placename_title.exists then linked_placename = m_locations.construct_linked_placename(spec, elliptical_placename, full_placename) end end end return linked_placename or m_locations.construct_linked_placename(spec, full_placename) end --[==[ Construct the description of a location, including its container trail either to the end or until we encounter a `no_include_container_in_desc` setting. For example, for the city of [[Birmingham]], the description will read `"[[Birmingham]], a [[city]] in the [[West Midlands]] (which is a [[county]] of [[England]], which is a [[constituent country]] of the [[United Kingdom]], which is a [[country]] in [[Europe]])"`. FIXME: Possibly we should adopt the way city descriptions used to read, which was similar to `"the city of [[Birmingham]], in the county of the [[West Midlands]], in the [[constituent country]] of [[England]], in the [[country]] of the [[United Kingdom]], in [[Europe]]"`. ]==] local function construct_location_desc(group, key, spec) local parts = {} local function ins(txt) insert(parts, txt) end ins(construct_linked_location(group, key, spec)) local iteration = 0 local need_closing_paren = false local containers = {{group = group, key = key, spec = spec}} local container_iterator = m_locations.iterate_containers(group, key, spec) while true do iteration = iteration + 1 local include_container_in_desc = false for _, container in ipairs(containers) do if not container.spec.no_include_container_in_desc then include_container_in_desc = true break end end if not include_container_in_desc then break end local next_containers = container_iterator() if not next_containers then break end local is_former = nil for _, container in ipairs(containers) do local this_is_former = container.spec.is_former_place if is_former == nil then is_former = this_is_former elseif is_former ~= this_is_former then internal_error("When processing container trail of key %s, found a mixture of former and non-former " .. "containers: %s", key, containers) end end if #containers > 1 then local placetypes = {} local prepositions = {} for _, container in ipairs(containers) do local container_type = fetch_primary_placetype(container.key, container.spec) m_table.insertIfNot(placetypes, m_placetypes.pluralize_placetype(container_type)) m_table.insertIfNot(prepositions, m_placetypes.get_placetype_entry_preposition(container_type)) end if iteration == 1 then ins(", ") elseif iteration == 2 then ins(" (which are ") need_closing_paren = true else ins(", which are ") end if is_former then ins("former ") end ins(m_table.serialCommaJoin(placetypes)) ins(" ") ins(concat(prepositions, "/")) else if iteration == 1 then ins(", ") elseif iteration == 2 then ins(" (which is ") need_closing_paren = true else ins(", which is ") end local container_type = fetch_primary_placetype(containers[1].key, containers[1].spec) if is_former then ins("a former ") else ins(m_placetypes.get_placetype_article(container_type)) ins(" ") end ins(container_type) ins(" ") ins(m_placetypes.get_placetype_entry_preposition(container_type)) end ins(" ") first_container = false containers = next_containers local container_locations = {} for _, container in ipairs(containers) do insert(container_locations, construct_linked_location(container.group, container.key, container.spec)) end ins(m_table.serialCommaJoin(container_locations)) end if need_closing_paren then ins(")") end return concat(parts) end -- Fetch or construct the description of the location specified by `key`. If the `keydesc` property is specified, -- use it directly but substitute any occurrence of `+++` with the auto-constructed location description, which -- mentions the placename corresponding to the key, its placetype and container, and repeats the description up -- the container trail until either there are no more containers or (more usually) the `no_include_container_in_desc` -- setting is found (which is set on all continents and continent-level regions). local function fetch_or_construct_location_desc(group, key, spec) local val = spec.keydesc if is_callable(val) then val = val(group, key, spec) spec.keydesc = val end val = val or "+++" if val:find("%+%+%+") then val = gsub_literally(val, "+++", construct_location_desc(group, key, spec)) end return val end local function normalize_cat_as(cat_as, div) if type(cat_as) ~= "table" or cat_as.type then cat_as = {cat_as} end local ret_cat_as = {} for _, pt_cat_as in ipairs(cat_as) do if type(pt_cat_as) == "string" then pt_cat_as = {type = pt_cat_as} end insert(ret_cat_as, {type = pt_cat_as.type, prep = pt_cat_as.prep or div.prep or "của"}) end return ret_cat_as end -- Find the specified plural placetype among the divs for a given known location. Return a list of cat_as specs, where -- each spec is of the form {type = "PLURAL_PLACETYPE", prep = "PREP"} indicating the plural placetype to use when -- categorizing and the preposition to follow. local function find_placetype_cat_as(divs, pl_placetype) if divs then if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) == "string" then div = {type = div} end if div.type == pl_placetype then local cat_as = div.cat_as or div.type return normalize_cat_as(cat_as, div) end end end return nil end -- Handler for bare placename categories for known locations in `locations` in [[Module:place/locations]]. insert(handlers, function(label) for _, canon_label in ipairs { label, lcfirst(label) } do local group, spec = m_locations.find_canonical_key(canon_label) if group then -- wp= defaults to true (Wikipedia article matches location's full placename) local wp = spec.wp if wp == nil then wp = true end -- wpcat= defaults to wp= (if Wikipedia article has its own name, Wikipedia category and Commons category -- generally follow) local wpcat = spec.wpcat if wpcat == nil then wpcat = wp end -- commonscat= defaults to wpcat= (if Wikipedia category has its own name, Commons category generally -- follows) local commonscat = spec.commonscat if commonscat == nil then commonscat = wpcat end local parents = {} local bare_label_parents = spec.overriding_bare_label_parents local container_iterator = m_locations.iterate_containers(group, canon_label, spec) local containers = container_iterator() if not bare_label_parents then bare_label_parents = {"+++"} end local full_location_placename, elliptical_location_placename = m_locations.key_to_placename(group, canon_label) local full_container_placename if containers then full_container_placename, _ = m_locations.key_to_placename(containers[1].group, containers[1].key) end local inserted_containers = false for _, parent in ipairs(bare_label_parents) do if parent == "+++" then parent = "PL_PLACETYPE PREP CONTAINER" end if parent:find("CONTAINER") then if not containers then internal_error("Parent category %s needs the container of %s but no containers specified: %s", parent, canon_label, spec) end local location_type = fetch_primary_placetype(canon_label, spec) local pl_location_type = m_placetypes.pluralize_placetype(location_type) for _, container in ipairs(containers) do local per_container_parent = parent local cat_as_list if per_container_parent:find("PL_PLACETYPE") then if spec.bare_category_parent_type then cat_as_list = normalize_cat_as(spec.bare_category_parent_type, spec) else cat_as_list = find_placetype_cat_as(container.spec.divs, pl_location_type) or find_placetype_cat_as(container.spec.addl_divs, pl_location_type) end end if not cat_as_list then local canon_placetype, ptdata, ptmatch = m_placetypes.get_placetype_data(location_type, "from category") if not canon_placetype or not (ptdata.generic_before_non_cities or ptdata.generic_before_cities) then internal_error("Unable to locate plural location type %s among the divs or addl_divs " .. "for container key %s spec %s, and the location type is either not in placetype_data or " .. "not identified as a generic placetype", pl_location_type, container.key, container.spec) end cat_as_list = {{type = pl_location_type, prep = m_placetypes.get_placetype_entry_preposition(location_type)}} end local prefixed_key = m_placetypes.get_prefixed_key(container.key, container.spec) per_container_parent = gsub_literally(per_container_parent, "CONTAINER", prefixed_key) for _, cat_as in ipairs(cat_as_list) do local per_container_per_placetype_parent = per_container_parent per_container_per_placetype_parent = gsub_literally(per_container_per_placetype_parent, "PL_PLACETYPE", cat_as.type) per_container_per_placetype_parent = gsub_literally(per_container_per_placetype_parent, "PREP", cat_as.prep) m_table.insertIfNot(parents, per_container_per_placetype_parent) end end inserted_containers = true else m_table.insertIfNot(parents, parent) end end if not inserted_containers and containers then -- If we didn't insert the containers above in some form, insert them now as bare categories. Note that -- this may be different categories from the container categories inserted above. for _, container in ipairs(containers) do m_table.insertIfNot(parents, container.key) end end if spec.addl_parents then for _, parent in ipairs(spec.addl_parents) do m_table.insertIfNot(parents, parent) end end local function format_boxval(val, specname) if val == true then val = "%l" end if type(val) == "string" then val = gsub_literally(val, "%l", full_location_placename) val = gsub_literally(val, "%e", elliptical_location_placename) if val:find("%%c") then if not full_container_placename then internal_error("Wikipedia/Commons spec %s = %s has %%c in it but key %s has no " .. "containers: %s", specname, val, canon_label, spec) end val = gsub_literally(val, "%c", full_container_placename) end end return val end local description = spec.fulldesc or ( "{{{langname}}} terms related to the people, culture, or territory of " .. fetch_or_construct_location_desc(group, canon_label, spec) .. ".") local full_placename, _ = m_locations.key_to_placename(group, canon_label) return { type = "chủ đề", description = description, breadcrumb = full_placename, parents = parents, wp = format_boxval(wp, "wp"), wpcat = format_boxval(wpcat, "wpcat"), commonscat = format_boxval(commonscat, "commonscat"), } end end end) local function find_canonical_key_from_place(place, canon_label) local has_the = false local key if place:find("^ ") then key = place:gsub("^ ", "") has_the = true else key = place end local group, spec = m_locations.find_canonical_key(key) if group then local requires_the = spec.the or false if has_the ~= requires_the then if has_the then mw.log(("Mismatch in category name '%s', has 'the' in the category when it should not"):format( canon_label)) else mw.log(("Mismatch in category name '%s', should have 'the' in the category but does not"): format(canon_label)) end return nil end return group, key, spec end return nil end -- Handler for generic placetypes (those whose categories are added through category generation handlers or through -- explicit category specs in the placetype data) for known locations in [[Module:place/locations]]. All such -- placetypes have either a `generic_before_non_cities` setting (meaning they can occur before non-city locations) or -- `generic_before_cities` setting (meaning they can occur before cities), or both. Examples of such categories are -- "cities in the Bahamas" or "rivers in Western Australia, Australia", or (for city locations) -- "neighbourhoods of Hong Kong" or "places in Melbourne". insert(handlers, function(label) for _, canon_label in ipairs { lcfirst(label), label } do local placetype, in_of, place = canon_label:match("^([A-Za-z%- ]-) (của) (.*)$") if not placetype then placetype, in_of, place = canon_label:match("^([A-Za-z%- ]-) (của) (.*)$") end if placetype then local normalized_placetype = placetype == "neighbourhoods" and "neighborhoods" or placetype local canon_placetype, ptdata, ptmatch = m_placetypes.get_placetype_data(normalized_placetype, "from category") if canon_placetype and (ptdata.generic_before_non_cities or ptdata.generic_before_cities) then local group, key, spec = find_canonical_key_from_place(place, canon_label) if group then -- Check whether the location uses British spelling, but also check all containers, because -- it's too hard to keep in sync the `british_spelling` setting for locations at all different -- levels (e.g. cities of various countries, first and second level administrative division, etc.), -- so we just set it at top level on the country. local uses_british_spelling = spec.british_spelling if uses_british_spelling == nil then for containers in m_locations.iterate_containers(group, key, spec) do local must_outer_break = false for _, container in ipairs(containers) do if container.spec.british_spelling ~= nil then uses_british_spelling = container.spec.british_spelling must_outer_break = true break end end if must_outer_break then break end end end local allow_cat = true if placetype == "neighborhoods" and uses_british_spelling or placetype == "neighbourhoods" and not uses_british_spelling then mw.log(("Mismatch in spelling of placetype '%s' in category '%s', should be '%s'"):format( placetype, canon_label, uses_british_spelling and "neighbourhoods" or "neighborhoods")) allow_cat = false end if spec.is_former_place and placetype ~= "địa danh" then allow_cat = false end local expected_prep if spec.is_city then expected_prep = ptdata.generic_before_cities else expected_prep = ptdata.generic_before_non_cities end if not expected_prep then allow_cat = false end if allow_cat then if expected_prep ~= in_of then mw.log(("Mismatch in category name '%s', has '%s' when it should have '%s'"):format( canon_label, in_of, expected_prep)) return nil end local linkdesc = m_placetypes.get_placetype_display_form(placetype, spec.is_city and "city" or "noncity", "return full") if linkdesc == false then mw.log(("Display form for placetype %s is false, can't categorize"):format(dump(placetype))) return nil end if not linkdesc then internal_error("Unrecognized placetype %s when processing key %s, data %s, label %s", placetype, key, spec, canon_label) end desc = linkdesc .. " " .. in_of .. " " .. fetch_or_construct_location_desc(group, key, spec) desc = "{{{langname}}} " .. desc .. "." local parents = {} insert(parents, key) if spec.no_container_parent then -- top-level country, constituent country, continent or the like insert(parents, {name = normalized_placetype, sort = key}) if spec.placetype == "quốc gia" or m_table.contains(spec.placetype, "quốc gia") then local category_class = m_placetypes.get_equiv_placetype_prop(normalized_placetype, function(pt) return m_placetypes.get_placetype_prop(pt, "class") end, { from_category = true, no_split_qualifiers = true, }) if not category_class then internal_error("Saw placetype %s that is either unknown or has no `class` " .. "setting in `placetype_data`", normalized_placetype) end if class_is_political_division[category_class] == nil then internal_error("Saw unknown category class %s derived from placetype %s", category_class, normalized_placetype) end if class_is_political_division[category_class] then insert(parents, "đơn vị hành chính theo quốc gia cụ thể") end end else local container_iterator = m_locations.iterate_containers(group, key, spec) local next_containers = container_iterator() if next_containers then for _, container in ipairs(next_containers) do local container_prep if container.spec.is_city then container_prep = ptdata.generic_before_cities else container_prep = ptdata.generic_before_non_cities end if not container_prep then internal_error("For container key %s spec %s defines is_city = %s but " .. "there is no corresponding `generic_before_*` setting in the " .. "placedata for placetype %s", container.key, container.spec, container.spec.is_city, placetype) end insert(parents, { name = placetype .. " " .. container_prep .. " " .. m_placetypes.get_prefixed_key( container.key, container.spec), sort = key }) end else -- unrecognized countries or the like insert(parents, {name = normalized_placetype, sort = key}) end end return { type = "chủ đề thuộc nhóm tên gọi", topic = canon_label, description = desc, breadcrumb = placetype, parents = parents, } end end end end end end) -- Handler for "state capitals of the United States", "provincial capitals of Canada", etc. This must precede the next -- handler for specific political and misc (non-political) divisions of polities and subpolities, such as -- "provinces of the Philippines", because "departmental capitals" is listed in cat_as for French prefectures and so -- will trigger an error if that handler runs before this one. insert(handlers, function(label) label = lcfirst(label) local capital_cat, place = label:match("^([a-z%- ]- capitals) of (.*)$") -- Make sure we recognize the type of capital. if place and capital_cat_to_placetype[capital_cat] then local placetype = capital_cat_to_placetype[capital_cat] local pl_placetype = m_placetypes.pluralize_placetype(placetype) -- Locate the container, fetch its known political divisions, and make sure the placetype corresponding to the -- type of capital is among the list. local group, key, spec = find_canonical_key_from_place(place, canon_label) if group and (spec.divs or spec.addl_divs) then local saw_match = false local variant_matches = {} local divlists = {} if spec.divs then insert(divlists, spec.divs) end if spec.addl_divs then insert(divlists, spec.addl_divs) end for _, divlist in ipairs(divlists) do if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end -- HACK. Currently if we don't find a match for the placetype, we map e.g. 'autonomous region' -- -> 'regional capitals' and 'union territory' -> 'territorial capitals'. When encountering a -- political division like 'autonomous region' or 'union territory', chop off everything up -- through a space to make things match. To make this clearer, we record all such -- "variant match" cases, and down below we insert a note into the category text indicating that -- such "variant matches" are included among the category. if pl_placetype == div.type or pl_placetype == div.type:gsub("^.* ", "") then saw_match = true if pl_placetype ~= div.type then insert(variant_matches, div.type) end end end end if saw_match then -- Everything checks out, construct the category description. local placetype_desc = m_placetypes.get_placetype_display_form(pl_placetype, placetype.is_city and "city" or "noncity") if placetype_desc == false then mw.log(("Display form for pl_placetype %s is false, can't categorize"):format(dump(pl_placetype))) return nil end if not placetype_desc then internal_error("Unrecognized plural placetype %s, generated as the plural of %s, which " .. "was found as the placetype of capital placetype %s in label %s", pl_placetype, placetype, capital_cat, label) end local variant_match_text = "" if variant_matches[1] then local real_variant_match_descs = {} for i, variant_match in ipairs(variant_matches) do local variant_match_desc = m_placetypes.get_placetype_display_form(variant_match, placetype.is_city and "city" or "noncity") if variant_match_desc == nil then internal_error("Unrecognized variant match plural placetype %s, coming from " .. "place key %s, data %s in label %s", variant_match, key, spec, label) end if variant_match_desc then -- skip those for which the description is `false`, like `ABBREVIATION_OF states` -- in the United States divs. insert(real_variant_match_descs, variant_match_desc) end end if real_variant_match_descs[1] then variant_match_text = " (bao gồm " .. m_table.serialCommaJoin(real_variant_match_descs) .. ")" end end local desc = "Tên gọi {{{langname}}} về thủ đô của " .. placetype_desc .. variant_match_text .. " trong " .. fetch_or_construct_location_desc(group, key, spec) .. "." local full_placename, _ = m_locations.key_to_placename(group, key) local parents = {} if spec.no_container_parent then -- top-level country, constituent country, continent or the like insert(parents, {name = capital_cat, sort = key}) else local container_iterator = m_locations.iterate_containers(group, key, spec) local next_containers = container_iterator() if next_containers then for _, container in ipairs(next_containers) do insert(parents, { name = capital_cat .. " của " .. m_placetypes.get_prefixed_key( container.key, container.spec), sort = key }) end else -- unrecognized countries or the like insert(parents, {name = capital_cat, sort = key}) end end insert(parents, key) return { type = "chủ đề thuộc nhóm tên gọi", topic = label, description = desc, breadcrumb = full_placename, parents = parents, } end end end end) local overriding_category_descriptions = { ["autonomous cities of Spain"] = "the [[w:Autonomous communities of Spain#Autonomous_cities|autonomous cities of Spain]]", ["regions of Greece"] = "the regions ([[periphery|peripheries]]) of [[Greece]]", ["regions of North Macedonia"] = "the regions ([[periphery|peripheries]]) of [[North Macedonia]]", ["subprefectures of Japan"] = "[[subprefecture]]s of [[Japan]]ese [[prefecture]]s", } -- Handler for specific political and misc (non-political) divisions of locations (polities, subpolities, cities, etc.), -- such as "provinces of the Philippines", "counties of Wales", "municipalities of Tocantins, Brazil", -- "boroughs of New York City", etc. This does not handle categories for generic placetypes (cities, rivers, etc.) of -- locations, which are handled by different handlers above. insert(handlers, function(label) -- The label comes with an initial capitalization but we have to check both lowercase-initial and capital-initial -- versions of the placetype to handle e.g. [[:Category:en:Indian reserves of Canada]]. for _, canon_label in ipairs { label, lcfirst(label) } do for _, minimal_placetype in ipairs { true, false } do local match_quantifier = minimal_placetype and "-" or "+" -- Some categories have two "of"s in them, and depending on the category, it's correct to do either a greedy -- ([[:Category:en:Abbreviations of states of the United States]], with placetype `abbreviations of states`) -- or non-greedy ([[:Category:en:Provinces of the Democratic Republic of the Congo]], with placetype -- `provinces`) match. We can't know in advance which is correct so we try both possibilities, doing the -- non-greedy one first as it seems more common (there are many locations with "of" in them, but currently -- only `abbreviations of states` occurs with a following location). local placetype, in_of, place = canon_label:match("^([A-Za-z%- ]" .. match_quantifier .. ") (của) (.*)$") if not placetype then placetype, in_of, place = canon_label:match("^([A-Za-z%- ]" .. match_quantifier .. ") (ở) (.*)$") end if placetype then local group, key, spec = find_canonical_key_from_place(place, canon_label) if group then local function find_placetype(divs) if divs then if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) == "string" then div = {type = div} end local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" then cat_as = {cat_as} end for _, pt_cat_as in ipairs(cat_as) do if type(pt_cat_as) == "string" then pt_cat_as = {type = pt_cat_as} end if placetype == pt_cat_as.type then local div_parent = pt_cat_as.container_parent_type if div_parent == nil then -- allow false div_parent = div.container_parent_type end if div_parent == nil then div_parent = placetype end return div_parent, pt_cat_as.prep or div.prep or "của" end end end end return nil end local div_parent, div_prep = find_placetype(spec.divs) if div_parent == nil then -- allow false div_parent, div_prep = find_placetype(spec.addl_divs) end if div_parent == nil then -- allow false div_parent, div_prep = find_placetype(spec.addl_divs_for_categorization) end if div_parent ~= nil then if div_prep ~= in_of then mw.log(("Mismatch in category name '%s', has '%s' when it should have '%s'"):format( canon_label, in_of, div_prep)) return nil end local linkdesc = m_placetypes.get_placetype_display_form(placetype, spec.is_city and "city" or "noncity", "return full") if linkdesc == false then mw.log(("Display form for placetype %s is false, can't categorize"):format(dump(placetype))) return nil end if not linkdesc then internal_error("Unrecognized placetype %s when processing key %s, data %s, label %s", placetype, key, spec, canon_label) end local desc = overriding_category_descriptions[canon_label] if not desc then desc = linkdesc .. " " .. in_of .. " " .. fetch_or_construct_location_desc(group, key, spec) end desc = desc .. " {{{langname}}}." local parents = {} insert(parents, key) if div_parent then -- div_parent may be `false` if spec.no_container_parent then -- top-level country, constituent country, continent or the like insert(parents, {name = placetype, sort = " " .. key}) if spec.placetype == "quốc gia" or m_table.contains(spec.placetype, "quốc gia") then insert(parents, "đơn vị hành chính theo quốc gia cụ thể") end else local container_iterator = m_locations.iterate_containers(group, key, spec) local next_containers = container_iterator() if next_containers then for _, container in ipairs(next_containers) do insert(parents, { name = div_parent .. " " .. in_of .. " " .. m_placetypes.get_prefixed_key( container.key, container.spec), sort = key }) end else -- unrecognized countries or the like insert(parents, {name = placetype, sort = " " .. key}) end end end return { type = "chủ đề thuộc nhóm tên gọi", topic = canon_label, description = desc, breadcrumb = placetype, parents = parents, } end end end end end end) labels["ngoại danh"] = { type = "chủ đề thuộc nhóm tên gọi", -- special-cased description description = "{{{langname}}} [[exonym]]s.", parents = {"địa danh"}, } labels["đơn vị hành chính theo quốc gia cụ thể"] = { type = "chủ đề phân nhóm", description = "{{{langname}}} categories for political divisions of specific countries.", parents = {"địa danh"}, } -- Misc. FIXME: Remove the need for this. labels["nomes of Ancient Egypt"] = { type = "chủ đề thuộc nhóm tên gọi", -- special-cased description description = "{{{langname}}} names of the [[nome]]s of [[Ancient Egypt]].", breadcrumb = "nomes", parents = {"Ancient Egypt"}, } -- Sui generis place categories (mostly cross-jurisdictional subcontinental/transcontinental regions) -- FIXME: Everything here has been moved from [[Module:category tree/topic/Earth]]. Most should be removed. labels["Atlantic Ocean"] = { type = "related-to", description = "default with the", parents = {"Earth"}, } labels["British Isles"] = { type = "related-to", description = "=the people, culture, or territory of [[Great Britain]], [[Ireland]], and other nearby islands", parents = {"Europe", "islands"}, } labels["European Union"] = { type = "related-to", description = "default with the", parents = {"Europe"}, } labels["Gascony"] = { type = "related-to", description = "default", parents = {"Occitania, France"}, } labels["Indian subcontinent"] = { type = "related-to", description = "default with the", parents = {"South Asia"}, } labels["Bengal"] = { type = "related-to", description = "{{{langname}}} terms related to the people, culture, or territory of [[Bengal]].", parents = {"Indian subcontinent"}, } labels["Kashmir"] = { type = "related-to", description = "{{{langname}}} terms related to the people, culture, or territory of [[Kashmir]].", parents = {"Indian subcontinent"}, } labels["Kashmir, India"] = { type = "related-to", description = "{{{langname}}} names of places in {{w|Kashmir, India}}.", parents = {"India", "Kashmir"}, } labels["Korea"] = { type = "related-to", description = "=the people, culture, or territory of [[Korea]]", parents = {"Asia"}, } labels["Languedoc"] = { type = "related-to", description = "default", parents = {"Occitania, France"}, } labels["Lapland"] = { type = "related-to", description = "=[[Lapland]], a region in northernmost Europe", parents = {"Europe", "Finland", "Norway", "Russia", "Sweden"}, } labels["Middle East"] = { type = "related-to", description = "default with the", parents = {"Africa", "Asia"}, } labels["Netherlands Antilles"] = { type = "related-to", description = "=the people, culture, or territory of the [[Netherlands Antilles]]", parents = {"Netherlands", "North America"}, } labels["Overseas France"] = { type = "related-to", description = "={{w|Overseas France}} ({{m|fr||France d'outre-mer}})", parents = {"France"}, } labels["Provence"] = { type = "related-to", description = "default", parents = {"Provence-Alpes-Côte d'Azur, France"}, } labels["Polish People's Republic"] = { type = "related-to", description = "default", parents = {"Poland"}, } labels["South Asia"] = { type = "related-to", description = "default", parents = {"Eurasia", "Asia"}, } labels["quốc gia của châu Á"] = { type = "chủ đề thuộc nhóm tên gọi", description = "default", breadcrumb = "Quốc gia", parents = {"Châu Á"}, } return {LABELS = labels, HANDLERS = handlers} meov7s6adpo512ismx7xfeyp4uuyfhc Thảo luận Thành viên:Kelly zhrm 3 327780 2351182 2294447 2026-05-07T16:45:19Z MediaWiki message delivery 19980 Mục mới: /* Thư mời cho đề nghị cấp quyền bot */ 2351182 wikitext text/x-wiki <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 Kelly zhrm! 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>&nbsp; [[Thành_viên:Kateru Zakuro|<span style="color:#EE1D25;">'''Kateru'''</span> <span style="color:#EE1D25;">'''Zakuro'''</span>]] ([[Thảo luận Thành viên:Kateru Zakuro|thảo luận]]) 15:14, ngày 5 tháng 10 năm 2025 (UTC) == Tiếng Pháp == Lần tới khi tạo mục từ tiếng Pháp em có thể thêm IPA vào là được. [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">Ayane</b>]] <span style="color:Plum">aka.</span> [[:m:User talk:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#ADD8E6;letter-spacing:">eunn</b>]] 12:43, ngày 26 tháng 1 năm 2025 (UTC) :Ok – [[Thành viên:Kelly zhrm|Kelly zhrm]] ([[Thảo luận Thành viên:Kelly zhrm|thảo luận]]) 12:44, ngày 26 tháng 1 năm 2025 (UTC) ::Xin phiền [[Thành viên:Ayane Fumihiro|Ayane Fumihiro]]. Tôi khá hoài nghi thành viên này với một tài khoản rối đã gặp từ trước (nhận thấy khá tương đồng). Để xóa tan mọi nghi ngờ, đồng thời, để cho các thành viên dự án có thể thoải mái trong hoạt động. Phiền bạn hồi đáp bạn có biết thành viên này? Hay là một tài khoản người thân? [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 14:34, ngày 26 tháng 1 năm 2025 (UTC) :::@[[Thành viên:P. ĐĂNG|P. ĐĂNG]] Tôi không chắc thành viên này là rối. – [[User:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#FF69B4;letter-spacing:">Ayane</b>]] <span style="color:Plum">aka.</span> [[:m:User talk:Ayane Fumihiro|<b style="font-family:Segoe UI Light;color:#ADD8E6;letter-spacing:">eunn</b>]] 15:23, ngày 26 tháng 1 năm 2025 (UTC) ::::Cảm ơn bạn [[Thành viên:Ayane Fumihiro|Ayane Fumihiro]] đã phản hồi. Tôi sẽ theo dõi vấn đề này. [[Thành viên:P. ĐĂNG|Phong Đăng]] ([[Thảo luận Thành viên:P. ĐĂNG|thảo luận]]) 16:50, ngày 26 tháng 1 năm 2025 (UTC) :::::@[[Thành viên:Kelly zhrm|Kelly zhrm]] Không rõ là bạn có nhu cầu khiếu nại lệnh cấm trên Wikipedia không? Nếu cứ để yên đó có thể sẽ khiến người khác có thể nghi ngờ về bạn, tôi cũng không hiểu vì sao bạn bị cấm. – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 14:55, ngày 26 tháng 10 năm 2025 (UTC) ::::::Tôi cũng không biết nữa, chắc có lẽ là do lúc đó tôi chưa thực sự hiểu rõ về Wikipedia nên thực hiện một số chỉnh sửa không đúng hoặc giống với một số thành viên rối bị cấm nên chắc bị BQV cấm, còn việc khiếu nại lệnh cấm thì tôi không biết:(). Với lại tôi cũng nghĩ đến việc bị các thành viên khác nghi ngờ. – [[Thành viên:Kelly zhrm|Kelly zhrm]] ([[Thảo luận Thành viên:Kelly zhrm|thảo luận]]) 04:16, ngày 27 tháng 10 năm 2025 (UTC) :::::::Nếu muốn khiếu nại thì có thể nhờ một BQV khác mở lại trang thảo luận của bạn, có thể liên hệ [[m:User talk:Bluetpp|Bluetpp]] hoặc [[m:User talk:Plantaest|Plantaest]] trên Meta – [[Thành viên:Nvdtn19|Nvdtn19]] ([[Thảo luận Thành viên:Nvdtn19|thảo luận]]) 06:59, ngày 27 tháng 10 năm 2025 (UTC) == Thư mời cho đề nghị cấp quyền bot == {| class="table" align="center" style="width: 80%; background-color: #FAFAD2; border: 1px solid #fceb92; margin-bottom: 10px" | style="vertical-align: middle; padding: 10px;" | [[Tập tin:OOjs UI icon advanced.svg|80px|link=]] | style="vertical-align: middle; padding: 15px 10px 10px 0;" | Mời bạn cho nhận xét ở [[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|trang đề nghị cấp quyền bot]] của "'''[[User:BlueShurikenNinjaBot|BlueShurikenNinjaBot]]'''" tại '''[[Wiktionary:Bot/Xin_phép#BlueShurikenNinjaBot|đây]]'''. <small>Kính mong bạn xem xét và thảo luận về đề nghị cấp quyền bot này! Thân ái!</small> |} &nbsp;Mong bạn cho ý kiến ạ. [[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]]) 16:45, ngày 7 tháng 5 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:Kateru Zakuro@viwiktionary gửi cho mọi người trong danh sách tại https://vi.wiktionary.org/w/index.php?title=Wiktionary:Danh_s%C3%A1ch_th%C6%B0&oldid=2323217 --> t391s9rzhtdl9votdcn4kg2zlfly46k Thể loại:en:Địa danh của Tokyo 14 332769 2351117 2256564 2026-05-07T14:43:41Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh của Tokyo/Tiếng Anh]] thành [[Thể loại:en:Địa danh của Tokyo]] 2256564 wikitext text/x-wiki [[Thể loại:Tokyo/Tiếng Anh]] [[Thể loại:Địa danh của Nhật Bản/Tiếng Anh]] [[Thể loại:Danh sách chủ đề thuộc nhóm tên gọi/Tiếng Anh]] [[Thể loại:Địa danh của Tokyo|A]] 0e009cqkwj871j1myeln9y3tw7q989s 2351119 2351117 2026-05-07T14:44:03Z Hiyuune 50834 2351119 wikitext text/x-wiki [[Thể loại:en:Tokyo]] [[Thể loại:en:Địa danh của Nhật Bản]] [[Thể loại:en:Danh sách chủ đề thuộc nhóm tên gọi]] [[Thể loại:Địa danh của Tokyo|A]] 91pp289lfh4c7wtq3bcxg3l7krbe4ue haricots de Lima 0 335283 2351235 2221443 2026-05-08T03:05:22Z TheHighFighter2 42988 /* Tiếng Pháp */ 2351235 wikitext text/x-wiki =={{langname|fr}}== ==={{ĐM|n}}=== {{head|fr|Biến thể hình thái danh từ}} # {{plural of|fr|haricot de Lima}}. s8xbabr4dsxbtect2qh6d50b0gdnm2x 明仁 0 338738 2351234 2227760 2026-05-08T02:59:15Z TheHighFighter2 42988 2351234 wikitext text/x-wiki =={{langname|ja}}== {{ja-kanjitab|あき|ひと}} ==={{ĐM|pr-noun}}=== {{ja-pos|proper|あきひと}} # {{given name|ja|nam|sort=あきひと}}. krqwne3t95a4bqgsrssaescnrazfk2x Jōkō 0 338885 2351233 2228076 2026-05-08T02:57:05Z TheHighFighter2 42988 /* Tiếng Nhật */ 2351233 wikitext text/x-wiki {{also|joko|Joko|jōko|jōkō}} =={{langname|ja}}== ==={{ĐM|rom}}=== {{ja-romaji}} # {{ja-romanization of|じょうこう}}. j1f6uo0gudtncye8ei35q76wwp7qnlx Mô đun:nl-verbs 828 340273 2351313 2263640 2026-05-08T06:52:46Z Hiyuune 50834 2351313 Scribunto text/plain local m_utilities = require("Module:utilities") local m_links = require("Module:links") local m_table = require("Module:table") local lang = require("Module:languages").getByCode("nl") local export = {} -- Functions that do the actual inflecting by creating the forms of a basic term. local inflections = {} local irregular = {} -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local infl_type = frame.args[1] or error("Loại biến tố không được chỉ rõ. Vui lòng thêm tham số đầu tiên để gọi mô đun.") if not inflections[infl_type] then error("Không rõ loại biến tố '" .. infl_type .. "'") end local params = { ["aux"] = {}, ["aux2"] = {}, ["bot"] = {type = "boolean"}, ["pref"] = {}, ["sep"] = {}, ["trans"] = {}, ["trans2"] = {}, ["vnoun"] = {}, ["vnoung"] = {}, ["vnoun2"] = {}, } for key, val in pairs(inflections[infl_type].params) do params[key] = val end local args = require("Module:parameters").process(frame:getParent().args, params) local data = {forms = {}, title = nil, categories = {}} inflections[infl_type].func(args, data) postprocess(args, data) if (args["bot"] or "") ~= "" then return make_bot_list(data, args["sep"]) else return make_table(data, args["sep"]) .. m_utilities.format_categories(data.categories, lang) end end function postprocess(args, data) -- Verbal noun local vnoun = args["vnoun"] local vnoun2 = args["vnoun2"] if vnoun then data.forms["vnoun"] = {vnoun, vnoun2} end -- Prefixed and separable local pref = args["pref"] local sep = args["sep"] if pref then table.insert(data.categories, "Động từ có tiền tố tiếng Hà Lan") table.insert(data.categories, "Động từ có tiền tố " .. pref .. " tiếng Hà Lan") data.title = data.title .. ", tiền tố" end if sep then table.insert(data.categories, "Động từ có thể tách rời tiếng Hà Lan") table.insert(data.categories, "Động từ có thể tách rời " .. sep .. " tiếng Hà Lan") data.title = data.title .. ", có thể tách rời" end if not pref and not sep then table.insert(data.categories, "Động từ cơ bản tiếng Hà Lan") end local abbr = args["abbr"] add_pref(data, pref, abbr) add_sep(data, sep, pref, abbr) data.aux = args["aux"] or "hebben" if args["aux"] then if args["aux"] == "zijn" then require("Module:debug").track("nl-verb/zijn") else require("Module:debug").track("nl-verb/aux") end end if args["aux2"] then require("Module:debug").track("nl-verb/aux2") end data.trans = args["trans"] if data.trans then if data.trans == "acc" then table.insert(data.categories, "Động từ đối cách tiếng Hà Lan") elseif data.trans == "erg" then table.insert(data.categories, "Động từ khiển cách tiếng Hà Lan") elseif data.trans == "unerg" then table.insert(data.categories, "Động từ bất khiển cách tiếng Hà Lan") elseif data.trans == "unacc" then table.insert(data.categories, "Động từ bất đối cách tiếng Hà Lan") else error("The \"trans=\" parameter has an invalid value. Valid are: acc, erg, unerg, unacc.") end end data.trans2 = args["trans2"] if data.trans2 then if data.trans2 == "acc" then table.insert(data.categories, "Động từ đối cách tiếng Hà Lan") elseif data.trans2 == "erg" then table.insert(data.categories, "Động từ khiển cách tiếng Hà Lan") elseif data.trans2 == "unerg" then table.insert(data.categories, "Động từ bất khiển cách tiếng Hà Lan") elseif data.trans2 == "unacc" then table.insert(data.categories, "Động từ bất đối cách tiếng Hà Lan") else error("The \"trans2=\" parameter has an invalid value. Valid are: acc, erg, unerg, unacc.") end end if not args["trans"] then require("Module:debug").track("nl-verb/no trans") end end -- Add the unstressed prefix to all the verb forms, or -- if there is no prefix, add ge- to the past participle function add_pref(data, pref, abbr) if pref then -- Add prefix before every form for key, form in pairs(data.forms) do for i, subform in ipairs(form) do -- Add hyphen if abbr=1 data.forms[key][i] = not abbr and pref .. subform or pref .. "-" .. subform end end else -- Add ge- prefix before past participle if data.forms["past_ptc"] then for i, subform in ipairs(data.forms["past_ptc"]) do if not abbr then -- Place a diaeresis on the initial vowel of the stem if necessary if mw.ustring.find(subform, "^[eiu]") and not mw.ustring.find(subform, "^ij") then subform = subform:gsub("^e", "ë"):gsub("^i", "ï"):gsub("^u", "ü") end end -- Add hyphen if abbr=1 data.forms["past_ptc"][i] = not abbr and "ge" .. subform or "ge-" .. subform end end end end -- Add the separable part to all the verb forms function add_sep(data, sep, pref, abbr) if not sep then return end -- Add main clause forms local mainforms = {} for key, form in pairs(data.forms) do if (key:find("^pres_") or key:find("^past_")) and not key:find("_ptc$") then mainforms[key .. "_main"] = mw.clone(form) end end for key, form in pairs(mainforms) do data.forms[key] = form end -- Add separable part to forms for key, form in pairs(data.forms) do if key:find("_main$") or key:find("^impr_") then -- For main-clause finite forms, add the separable part after the form, separated by a space for i, subform in ipairs(data.forms[key]) do data.forms[key][i] = data.forms[key][i] .. " " .. sep end else -- For all other forms, add the separable part before the form, with no space for i, subform in ipairs(data.forms[key]) do -- Add a hyphen after the separable part if it ends with the same vowel -- that the main/prefixed verb begins with, for verbs like na-apen, -- also if abbr=1 but not for the past participle if (mw.ustring.find("aeiou", sep:sub(-1)) and sep:sub(-1) == subform:sub(1, 1)) or (abbr and key ~= "past_ptc" and not pref) then subform = sep .. "-" .. subform else subform = sep .. subform end data.forms[key][i] = subform end end end end --[=[ *** REGULAR VERBS (mostly) *** ]=]-- local function addform(data, key, form, index) if data.forms[key] then if index then table.insert(data.forms[key], index, form) else table.insert(data.forms[key], form) end else data.forms[key] = {form} end end -- Conjugate a weak verb inflections["weak"] = { params = { [1] = {required = true}, [2] = {}, [3] = {}, ["dt"] = {}, ["abbr"] = {type = "boolean"}, }, func = function(args, data) table.insert(data.categories, "Động từ yếu tiếng Hà Lan") data.title = "yếu" local stems = {} local abbr = args["abbr"] stems["pres"] = args[1] or "{{{1}}}" if not abbr then stems["pres_e"] = args[2] present(data, stems) local dt = args["dt"] or (stems["pres_e"]:find("[cfhkpqstx]e$") and "t" or "d") stems["past"] = stems["pres"]:gsub("([^aeiou])i$", "%1ie") .. dt .. "e" past(data, stems) stems["past_ptc"] = args[3] or make_long(stems["pres"]) .. (stems["pres"]:find("[dt]$") and "" or dt) data.forms["past_ptc"] = {stems["past_ptc"]} if stems["past_ptc"]:find("n$") then table.insert(data.categories, "Động từ yếu với phân từ quá khứ mạnh tiếng Hà Lan") data.title = data.title .. " với phân từ quá khứ mạnh" end -- "zeggen" has an irregular past tense alongside the regular one if stems["pres"] == "zeg" then past(data, {["past"] = "zei", ["past_e"] = "zeide", ["past_t"] = "zeidt"}, 1) table.insert(data.categories, "Động từ bất quy tắc tiếng Hà Lan") data.title = data.title .. ", bất quy tắc" end else stems["pres_e"] = stems["pres"] .. "'e" stems["pres_t"] = stems["pres"] .. "'t" present(data, stems) local dt = args["dt"] or (stems["pres"]:find("[fpsxFPSX]$") and "t" or "d") stems["past"] = stems["pres"] .. "'" .. dt .. "e" past(data, stems) stems["past_ptc"] = stems["pres"] .. "'" .. dt data.forms["past_ptc"] = {stems["past_ptc"]} end end } -- Conjugate a weak verb with a past tense in -cht inflections["weak-cht"] = { params = { [1] = {required = true}, [2] = {}, [3] = {required = true}, }, func = function(args, data) table.insert(data.categories, "Động từ yếu (-cht) tiếng Hà Lan") data.title = "yếu với quá khứ kết thúc bằng ''-cht''" local stems = {} stems["pres"] = args[1] or "{{{1}}}" stems["pres_e"] = args[2] present(data, stems) stems["past"] = (args[3] or "{{{3}}}") .. "cht" past(data, stems) stems["past_ptc"] = stems["past"] data.forms["past_ptc"] = {stems["past_ptc"]} end } local syncopic_verbs = m_table.listToSet { "houd", "glijd", "rijd", "snijd" } -- Conjugate a strong verb inflections["strong"] = { params = { [1] = {required = true}, [2] = {required = true}, [3] = {required = true}, [4] = {}, [5] = {}, [6] = {}, ["class"] = {}, }, func = function(args, data) local class = args["class"] table.insert(data.categories, "Động từ mạnh" .. (class and " lớp " .. class or "") .. " tiếng Hà Lan") data.title = "mạnh" .. (class and " lớp " .. class or "") local stems = {} stems["pres"] = args[1] or "{{{1}}}" stems["pres_e"] = args[4] present(data, stems) stems["past"] = args[2] or "{{{2}}}" stems["past_e"] = args[5] stems["past_t"] = args[6] past(data, stems) stems["past_ptc"] = args[3] or "{{{3}}}" data.forms["past_ptc"] = {stems["past_ptc"]} -- If the final consonant of the past participle is not n, then it is a weak past participle. if not stems["past_ptc"]:find("n$") then table.insert(data.categories, "Dutch strong verbs with weak past participles") data.title = data.title .. " with weak past participle" end -- some verbs have alternative forms without the final -d if syncopic_verbs[stems["pres"]] then local syncopic_form = stems["pres"]:sub(1,-2) addform(data, "pres_indc_1sg", syncopic_form, 1) addform(data, "pres_indc_jij_inversion", syncopic_form, 1) addform(data, "impr_sg", syncopic_form, 1) table.insert(data.categories, "Dutch irregular strong verbs") data.title = data.title .. ", slightly irregular" elseif stems["pres"] == "scheid" and args["sep"] == "uit" then addform(data, "pres_indc_1sg", "schei", 1) addform(data, "pres_indc_jij_inversion", "schei", 1) addform(data, "impr_sg", "schei", 1) addform(data, "past_indc_sg", "schee", 1) addform(data, "past_indc_pl", "scheeën", 1) addform(data, "past_ptc", "scheeën", 1) table.insert(data.categories, "Dutch irregular strong verbs") data.title = data.title .. ", slightly irregular" -- If the initial or final consonants of the present stem don't match, then this verb is irregular. elseif stems["pres"]:match("^([^aeiouyj]*)") ~= stems["past"]:match("^([^aeiouyj]*)") or stems["pres"]:match("([^aeiouyj]*)$") ~= stems["past"]:match("([^aeiouyj]*)$") then table.insert(data.categories, "Dutch irregular strong verbs") data.title = data.title .. ", irregular" end end } -- Conjugate an irregular verb inflections["irregular"] = { params = { [1] = {required = true}, }, func = function(args, data) local base = args[1] or "zijn" if irregular[base] then irregular[base](data) else error("Unknown irregular verb '" .. base .. "'.") end end } --[=[ *** IRREGULAR VERB TYPES *** ]=]-- irregular["doen"] = function(data) table.insert(data.categories, "Động từ bất quy tắc tiếng Hà Lan") data.title = "bất quy tắc" present(data, {["pres"] = "doe", ["pres_e"] = "doe"}) past(data, {["past"] = "deed", ["past_e"] = "dede"}) data.forms["past_ptc"] = {"daan"} data.forms["pres_indc_u"] = {"doet"} data.forms["pres_indc_3sg"] = {"doet"} end irregular["hebben"] = function(data) table.insert(data.categories, "Động từ yếu bất quy tắc tiếng Hà Lan") data.title = "yếu, bất quy tắc" present(data, {["pres"] = "heb", ["pres_e"] = "hebbe"}) past(data, {["past"] = "had", ["past_e"] = "hadde"}) data.forms["past_ptc"] = {"had"} data.forms["pres_indc_u"] = {"hebt", "heeft"} data.forms["pres_indc_3sg"] = {"heeft"} end irregular["durven"] = function(data) table.insert(data.categories, "Dutch preterite-present verbs") data.title = "preterite-present" present(data, {["pres"] = "durf", ["pres_e"] = "durve", ["pres_t"] = "durft"}) past(data, {["past"] = "dorst"}) data.forms["past_ptc"] = {"durfd"} end irregular["kunnen"] = function(data) table.insert(data.categories, "Dutch preterite-present verbs") data.title = "preterite-present" present(data, {["pres"] = "kan", ["pres_e"] = "kunne", ["pres_t"] = "kunt"}) past(data, {["past"] = "kon", ["past_e"] = "konde", ["past_t"] = "kondt"}) addform(data, "pres_indc_jij", "kan") addform(data, "pres_indc_u", "kan") data.forms["pres_indc_jij_inversion"] = {"kun"} data.forms["pres_indc_3sg"] = {"kan"} data.forms["past_ptc"] = {"kund"} end irregular["moeten"] = function(data) table.insert(data.categories, "Dutch preterite-present verbs") data.title = "preterite-present" present(data, {["pres"] = "moet"}) past(data, {["past"] = "moest"}) data.forms["past_ptc"] = {"moeten"} end irregular["mogen"] = function(data) table.insert(data.categories, "Dutch preterite-present verbs") data.title = "preterite-present" present(data, {["pres"] = "mag", ["pres_e"] = "moge", ["pres_t"] = "moogt"}) past(data, {["past"] = "mocht"}) data.forms["pres_indc_jij"] = {"mag"} data.forms["pres_indc_u"] = {"mag"} data.forms["pres_indc_3sg"] = {"mag"} data.forms["past_ptc"] = {"mogen"} end irregular["weten"] = function(data) table.insert(data.categories, "Dutch preterite-present verbs") data.title = "preterite-present" present(data, {["pres"] = "weet", ["pres_e"] = "wete"}) past(data, {["past"] = "wist"}) data.forms["past_ptc"] = {"weten"} end irregular["willen"] = function(data) table.insert(data.categories, "Động từ bất quy tắc tiếng Hà Lan") data.title = "bất quy tắc" present(data, {["pres"] = "wil", ["pres_e"] = "wille"}) past(data, {["past"] = "wilde"}) past(data, {["past"] = "wou", ["past_e"] = "woude", ["past_t"] = "woudt"}) data.forms["past_ptc"] = {"wild"} addform(data, "pres_indc_jij", "wil") addform(data, "pres_indc_u", "wil") data.forms["pres_indc_3sg"] = {"wil"} end irregular["zijn"] = function(data) table.insert(data.categories, "Động từ bất quy tắc tiếng Hà Lan") table.insert(data.categories, "Dutch suppletive verbs") data.title = "bất quy tắc, suppletive" present(data, {["pres"] = "ben", ["pres_e"] = "zij", ["pres_t"] = "zijt"}) past(data, {["past"] = "was", ["past_e"] = "ware", ["past_t"] = "waart"}) data.forms["past_ptc"] = {"weest"} data.forms["pres_indc_jij"] = {"bent"} data.forms["pres_indc_u"] = {"bent", "is"} data.forms["pres_indc_3sg"] = {"is"} addform(data, "impr_sg", "wees", 1) addform(data, "impr_pl", "weest", 1) end irregular["zullen"] = function(data) table.insert(data.categories, "Dutch preterite-present verbs") data.title = "preterite-present" present(data, {["pres"] = "zal", ["pres_e"] = "zulle", ["pres_t"] = "zult"}) past(data, {["past"] = "zou", ["past_e"] = "zoude", ["past_t"] = "zoudt"}) data.forms["pres_indc_jij"] = {"zult", "zal"} data.forms["pres_indc_jij_inversion"] = {"zul"} data.forms["pres_indc_u"] = {"zult", "zal"} data.forms["pres_indc_3sg"] = {"zal"} end irregular["wezen"] = function(data) table.insert(data.categories, "Dutch irregular verbs") data.title = "irregular" present(data, {["pres"] = "wees", ["pres_e"] = "weze", ["pres_t"] = "weest"}) past(data, {["past"] = "was", ["past_e"] = "ware", ["past_t"] = "waart"}) data.forms["past_ptc"] = {"weest"} data.forms["pres_indc_jij"] = {"weest"} data.forms["pres_indc_u"] = {"weest"} data.forms["pres_indc_3sg"] = {"weest"} end --[=[ *** HELPER FUNCTIONS *** ]=]-- -- Create regular present-tense forms function present(data, stems, index) if not stems["pres_e"] then stems["pres_e"] = stems["pres"] .. "e" end if not stems["pres_t"] then if mw.ustring.find(stems["pres"], "t$") then stems["pres_t"] = make_long(stems["pres"]) else stems["pres_t"] = make_long(stems["pres"]) .. "t" end end addform(data, "pres_indc_1sg", stems["pres"], index) addform(data, "pres_indc_jij", stems["pres_t"], index) if mw.ustring.find(stems["pres"], "t$") or mw.ustring.find(stems["pres"], "mag$") or mw.ustring.find(stems["pres"], "wil$") then -- do nothing else addform(data, "pres_indc_jij_inversion", stems["pres"], index) end addform(data, "pres_indc_gij", stems["pres_t"], index) addform(data, "pres_indc_u" , stems["pres_t"], index) addform(data, "pres_indc_3sg", stems["pres_t"], index) addform(data, "pres_indc_pl" , make_long(stems["pres_e"]) .. "n", index) addform(data, "pres_subj_sg" , stems["pres_e"], index) addform(data, "impr_sg", stems["pres"], index) addform(data, "impr_pl", stems["pres_t"], index) addform(data, "infinitive", make_long(stems["pres_e"]) .. "n", index) addform(data, "pres_ptc", make_long(stems["pres_e"]) .. "nd", index) end -- Create regular past-tense forms function past(data, stems, index) if not stems["past_e"] then if mw.ustring.find(stems["past"], "e$") then stems["past_e"] = stems["past"] else stems["past_e"] = stems["past"] .. "e" end end if not stems["past_t"] then if mw.ustring.find(stems["past"], "[^eio]e$") or mw.ustring.find(stems["past"], "[të]$") then stems["past_t"] = stems["past"] else stems["past_t"] = stems["past"] .. "t" end end addform(data, "past_indc_sg" , stems["past"], index) addform(data, "past_indc_gij" , stems["past_t"], index) addform(data, "past_indc_pl" , stems["past_e"] .. "n", index) addform(data, "past_subj_sg" , stems["past_e"], index) end -- A small helper function for those few verbs that have a stem ending in a -- vowel (like gaan, staan, skiën, echoën). This lengthens the stem-final vowel. function make_long(form) return (form:gsub("([^aeou])([aou])$", "%1%2%2"):gsub("([^aeiou])i$", "%1ie")) end -- Make the table function make_table(data, hasSep) local function show_form(form, inversion) if not form then return "&mdash;" elseif type(form) ~= "table" then error("a non-table value was given in the list of inflected forms.") end local ret = {} for key, subform in ipairs(form) do table.insert(ret, m_links.full_link({lang = lang, term = subform})) end if inversion then return table.concat(ret, "<sup>2</sup>, ") else return table.concat(ret, ", ") end end local function repl(param) if param == "lemma" then return m_links.full_link({lang = lang, alt = mw.title.getCurrentTitle().text}, "term") elseif param == "info" then return data.title and " (" .. data.title .. ")" or "" elseif param:find("inversion") then return show_form(data.forms[param], true) else return show_form(data.forms[param], false) end end local wikicode = [=[ {| style="border:1px solid var(--wikt-palette-indigo-3,#CCCCFF); text-align:center; line-height:125%" class="inflection-table vsSwitcher" data-toggle-category="inflection" cellspacing="1" cellpadding="3" |- style="background: var(--wikt-palette-indigo-3,#CCCCFF);color:inherit;" ! colspan="5" class="vsToggleElement" style="text-align: left" | Bảng chia động từ của {{{lemma}}}{{{info}}} |- class="vsShow" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#dạng nguyên mẫu|nguyên mẫu]] | style="min-width: 12em;" | {{{infinitive}}} |- class="vsShow" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#thì quá khứ|quá khứ]]&nbsp;[[Phụ lục:Từ điển thuật ngữ#số ít|số ít]] | ]=] .. (hasSep and "{{{past_indc_sg_main}}}" or "{{{past_indc_sg}}}") .. [=[ |- class="vsShow" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#thì quá khứ|quá khứ]]&nbsp;[[Phụ lục:Từ điển thuật ngữ#phân từ|phân từ]] | {{{past_ptc}}} |- class="vsHide" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#dạng nguyên mẫu|nguyên mẫu]] | colspan="4" | {{{infinitive}}} |- class="vsHide" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#danh động từ|danh động từ]] | colspan="4" | {{{infinitive}}} ]=] .. require("Module:gender and number").format_list({"n"}) .. (hasSep and [=[ |- class="vsHide" style="background: var(--wikt-palette-indigo-1,#E6E6FF);color:inherit;" | ! colspan="2" style="font-weight: bold;" | [[Phụ lục:Từ điển thuật ngữ#mệnh đề chính|mệnh đề chính]] ! colspan="2" style="font-weight: bold;" | [[Phụ lục:Từ điển thuật ngữ#mệnh đề phụ|mệnh đề phụ]] |- class="vsHide" style="background: var(--wikt-palette-indigo-1,#E6E6FF);color:inherit;" | ! style="min-width: 12em; font-weight: bold" | [[Phụ lục:Từ điển thuật ngữ#thì hiện tại|hiện tại]] ! style="min-width: 12em; font-weight: bold" | [[Phụ lục:Từ điển thuật ngữ#thì quá khứ|quá khứ]] ! style="min-width: 12em; font-weight: bold" | [[Phụ lục:Từ điển thuật ngữ#thì hiện tại|hiện tại]] ! style="min-width: 12em; font-weight: bold" | [[Phụ lục:Từ điển thuật ngữ#thì quá khứ|quá khứ]]]=] or [=[ |- class="vsHide" style="background: var(--wikt-palette-indigo-1,#E6E6FF);color:inherit;" | ! style="min-width: 12em; font-weight: bold" | [[Phụ lục:Từ điển thuật ngữ#thì hiện tại|hiện tại]] ! style="min-width: 12em; font-weight: bold" | [[Phụ lục:Từ điển thuật ngữ#thì quá khứ|quá khứ]] |-]=]) .. [=[ |- class="vsHide" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#ngôi thứ nhất|ngôi thứ nhất]]&nbsp;[[Phụ lục:Từ điển thuật ngữ#số ít|số ít]] | ]=] .. (hasSep and "{{{pres_indc_1sg_main}}} || {{{past_indc_sg_main}}} || " or "") .. [=[{{{pres_indc_1sg}}} || {{{past_indc_sg}}} |- class="vsHide" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#ngôi thứ hai|ngôi thứ hai]]&nbsp;[[Phụ lục:Từ điển thuật ngữ#số ít|số ít]]&nbsp;(<span lang="nl">[[jij#Dutch|jij]]</span>) | ]=] .. (hasSep and "{{{pres_indc_jij_main}}}, {{{pres_indc_jij_inversion_main}}}<sup>2</sup> || {{{past_indc_sg_main}}} || " or "") .. (hasSep and "{{{pres_indc_jij}}} || {{{past_indc_sg}}} " or "{{{pres_indc_jij}}}, {{{pres_indc_jij_inversion}}}<sup>2</sup> || {{{past_indc_sg}}}") .. [=[ |- class="vsHide" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#ngôi thứ hai|ngôi thứ hai]]&nbsp;[[Phụ lục:Từ điển thuật ngữ#số ít|số ít]]&nbsp;(<span lang="nl">[[u#Dutch|u]]</span>) | ]=] .. (hasSep and "{{{pres_indc_u_main}}} || {{{past_indc_sg_main}}} || " or "") .. [=[{{{pres_indc_u}}} || {{{past_indc_sg}}} |- class="vsHide" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#ngôi thứ hai|ngôi thứ hai]]&nbsp;[[Phụ lục:Từ điển thuật ngữ#số ít|số ít]]&nbsp;(<span lang="nl">[[gij#Dutch|gij]]</span>) | ]=] .. (hasSep and "{{{pres_indc_gij_main}}} || {{{past_indc_gij_main}}} || " or "") .. [=[{{{pres_indc_gij}}} || {{{past_indc_gij}}} |- class="vsHide" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#ngôi thứ ba|ngôi thứ ba]]&nbsp;[[Phụ lục:Từ điển thuật ngữ#số ít|số ít]] | ]=] .. (hasSep and "{{{pres_indc_3sg_main}}} || {{{past_indc_sg_main}}} || " or "") .. [=[{{{pres_indc_3sg}}} || {{{past_indc_sg}}} |- class="vsHide" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#số nhiều|số nhiều]] | ]=] .. (hasSep and "{{{pres_indc_pl_main}}} || {{{past_indc_pl_main}}} || " or "") .. [=[{{{pres_indc_pl}}} || {{{past_indc_pl}}} |- class="vsHide" style="background: var(--wikt-palette-indigo-1,#E6E6FF);color:inherit; height: 0.5em" | | colspan="2" |]=] .. (hasSep and [=[ || colspan="2" |]=] or "") .. [=[ |- class="vsHide" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#thức giả định|giả định]]&nbsp;[[Phụ lục:Từ điển thuật ngữ#số ít|số ít]]<sup>1</sup> | ]=] .. (hasSep and "{{{pres_subj_sg_main}}} || {{{past_subj_sg_main}}} || " or "") .. [=[{{{pres_subj_sg}}} || {{{past_subj_sg}}} |- class="vsHide" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#thức giả định|giả định]]&nbsp;[[Phụ lục:Từ điển thuật ngữ#số nhiều|số nhiều]]<sup>1</sup> | ]=] .. (hasSep and "{{{pres_indc_pl_main}}} || {{{past_indc_pl_main}}} || " or "") .. [=[{{{pres_indc_pl}}} || {{{past_indc_pl}}} |- class="vsHide" style="background: var(--wikt-palette-indigo-1,#E6E6FF);color:inherit; height: 0.5em" | | colspan="2" |]=] .. (hasSep and [=[ || rowspan="5" colspan="2" |]=] or "") .. [=[ |- class="vsHide" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#thức mệnh lệnh|mệnh lệnh]]&nbsp;[[Phụ lục:Từ điển thuật ngữ#số ít|số ít]] | {{{impr_sg}}} | rowspan="2" style="background: var(--wikt-palette-indigo-1,#E6E6FF);color:inherit;" | |- class="vsHide" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#thức mệnh lệnh|mệnh lệnh]]&nbsp;[[Phụ lục:Từ điển thuật ngữ#số nhiều|số nhiều]]<sup>1</sup> | {{{impr_pl}}} |- class="vsHide" style="background: var(--wikt-palette-indigo-1,#E6E6FF);color:inherit; height: 0.5em" | | colspan="2" | |- class="vsHide" style="background: var(--wikt-palette-indigo-0,#F2F2FF);color:inherit;" ! style="background: var(--wikt-palette-indigo-2,#CCCCFF);color:inherit;" | [[Phụ lục:Từ điển thuật ngữ#phân từ|phân từ]] | {{{pres_ptc}}} || {{{past_ptc}}} |- class="vsHide" style="background: var(--wikt-palette-indigo-1,#E6E6FF);color:inherit;" | colspan="5" style="text-align:left; vertical-align:top; font-size: smaller; line-height: 1em"| <sup>1)</sup> [[Phụ lục:Từ điển thuật ngữ#cổ|Dạng cổ]]. <sup>2)</sup> Trong trường hợp [[Phụ lục:Từ điển thuật ngữ#đảo ngữ|đảo ngữ]]. |}]=] wikicode = mw.ustring.gsub(wikicode, "{{{([a-z0-9_]+)}}}", repl) -- remove 'empty' 2sg forms (duplicates in case of inversion) + note if mw.ustring.find(wikicode, ", &mdash;<sup>2</sup>") then wikicode = mw.ustring.gsub(wikicode, ', &mdash;<sup>2</sup>', '') wikicode = mw.ustring.gsub(wikicode, ' <sup>2%)</sup> Trong trường hợp %[%[Phụ lục:Từ điển thuật ngữ#đảo ngữ|đảo ngữ%]%]%.', '') end return wikicode end function make_bot_list(data, hasSep) local ret = "" if hasSep then ret = ret .. "* sep=1\n" end for key, form in pairs(data.forms) do if type(form) == "table" then for key2, subform in ipairs(form) do ret = ret .. "* " .. key .. "_" .. key2 .. "=" .. subform .. "\n" end else ret = ret .. "* " .. key .. "=" .. form .. "\n" end end return ret end return export 7eh39rqyhdxy6wbfu2jrhlt5k8udzgs Mô đun:category tree/topic 828 342422 2351285 2350130 2026-05-08T05:43:44Z TheHighFighter2 42988 2351285 Scribunto text/plain local raw_handlers = {} local raw_categories = {} --[=[ This module implements the topic category subsystem. It is currently implemented with a single raw handler that handlers both language-specific and umbrella topic categories, and a corresponding handler for thesaurus categories. The topmost topic category [[:Category:All topics]] is special and potentially could be handled as a separate raw category, but currently it's handled as part of the raw topic handler. The topmost thesaurus category [[:Category:Thesaurus]] is in fact handled as a raw category. ]=] local functions_module = "Module:fun" local labels_utilities_module = "Module:labels/utilities" local languages_module = "Module:languages" local string_pattern_escape_module = "Module:string/patternEscape" local string_replacement_escape_module = "Module:string/replacementEscape" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local topic_data_module = "Module:category tree/topic/data" local topic_utilities_module = "Module:category tree/topic/utilities" local thesaurus_data_module = "Module:category tree/topic/thesaurus data" local concat = table.concat local insert = table.insert local dump = mw.dumpObject local is_callable = require(functions_module).is_callable local pattern_escape = require(string_pattern_escape_module) local replacement_escape = require(string_pattern_escape_module) local split = require(string_utilities_module).split local type_data = { ["chủ đề thuộc nhóm liên quan"] = { desc = "Mục từ liên quan đến", additional = "'''LƯU Ý''': Đây là chủ đề thuộc nhóm liên quan. Nó chỉ nên chứa các mục từ liên quan đến " .. "{{{topic}}}. Vui lòng không đưa các mục từ chỉ có liên quan nhỏ đến chủ đề {{{topic}}}. " .. "Để ý các mục từ liên quan đến loại hoặc ví dụ liên quan đến chủ đề này thường có thể đưa vào một thể loại khác.", }, ["chủ đề thuộc nhóm tập hợp"] = { desc = "Mục từ chủ đề thuộc nhóm tập hợp", additional = "'''LƯU Ý''': Đây là chủ đề thuộc nhóm tập hợp. It should contain terms for {{{topic}}}, not merely " .. "terms related to {{{topic}}}. It may contain more general terms (e.g. types of {{{topic}}}) or more " .. "specific terms (e.g. names of specific {{{topic}}}), although there may be related categories ".. "specifically for these types of terms.", }, ["chủ đề thuộc nhóm tên gọi"] = { desc = "Mục từ chủ đề thuộc nhóm tên gọi", additional = "'''LƯU Ý''': This is a name category. It should contain names of specific {{{topic}}}, not " .. "merely terms related to {{{topic}}}, and should also not contain general terms for types of {{{topic}}}.", }, ["chủ đề thuộc nhóm loại hình"] = { desc = "Mục từ chủ đề thuộc nhóm loại hình", additional = "'''LƯU Ý''': This is a type category. It should contain terms for types of {{{topic}}}, not " .. "merely terms related to {{{topic}}}, and should also not contain names of specific {{{topic}}}.", }, ["chủ đề phân nhóm"] = { desc = "categories concerning more specific variants of", additional = "'''LƯU Ý''': This is a grouping category. It should not directly contain any terms, but " .. "only subcategories. If there are any terms directly in this category, please move them to a subcategory.", }, toplevel = { desc = "UNUSED", -- all categories of this type hardcode their description additional = "'''LƯU Ý''': Đây là chủ đề thuộc nhóm hàng đầu. Nó không chứa trực tiếp các mục từ, và " .. "chỉ có ở {{{topic}}}.", }, ["chủ đề thuộc nhóm hỗn hợp"] = { desc = "Tất cả chủ đề khả dụng ở nhiều lĩnh vực khác nhau {{{langname}}}.", }, } local function invalid_type(types) local valid_types = {} for typ, _ in pairs(type_data) do insert(valid_types, ("'%s'"):format(typ)) end error(("Loại chủ đề không hợp lệ: '%s'; bắt buộc phải là một trong các nhóm sau đây: %s") :format(types, mw.text.listToText(valid_types))) end local function split_types(types) types = types or "topic" local splitvals = split(types, "%s*,%s*") for i, typ in ipairs(splitvals) do -- FIXME: Temporary if typ == "topic" then typ = "chủ đề thuộc nhóm liên quan" end if not type_data[typ] then invalid_type(types) end splitvals[i] = typ end return splitvals end local function gsub_escaping_replacement(str, from, to) return (str:gsub(pattern_escape(from), replacement_escape(to))) end function ucfirst(txt) local italics, raw_txt = txt:match("^('*)(.-)$") return italics .. mw.getContentLanguage():ucfirst(raw_txt) end function lcfirst(txt) local italics, raw_txt = txt:match("^('*)(.-)$") return italics .. mw.getContentLanguage():lcfirst(raw_txt) end local function convert_spec_to_string(data, desc) if not desc then return desc end local desc_type = type(desc) if desc_type == "string" then return desc elseif desc_type == "number" then return tostring(desc) elseif not is_callable(desc) then error("Internal error: `desc` must be a string, number, function, callable table or nil; received a " .. desc_type) end desc = desc { lang = data.lang, sc = data.sc, label = data.label, category = data.category, topic_data = data.topdata, } if not desc then return desc end desc_type = type(desc) if desc_type == "string" then return desc end error("Internal error: the value returned by `desc` must be a string or nil; received a " .. desc_type) end local function get_and_cache(data, obj, key) local val = convert_spec_to_string(data, obj[key]) obj[key] = val return val end local function process_default(desc) local stripped_desc = desc local no_singularize, wikify, add_the while true do local new_stripped_desc = stripped_desc:match("^(.+) no singularize$") if new_stripped_desc then no_singularize = true end if not new_stripped_desc then new_stripped_desc = stripped_desc:match("^(.+) wikify$") if new_stripped_desc then wikify = true end end if not new_stripped_desc then new_stripped_desc = stripped_desc:match("^(.+) with the$") if new_stripped_desc then add_the = true end end if new_stripped_desc then stripped_desc = new_stripped_desc else break end end if stripped_desc == "default" then return true, no_singularize, wikify, add_the else return false end end local function format_desc(data, desc) local desc_parts = {} local types = split_types(data.topdata.type) for _, typ in ipairs(types) do insert(desc_parts, type_data[typ].desc .. " " .. desc) end return require(table_module).serialCommaJoin(desc_parts) .. " {{{langname}}}." end local substitute_template_specs local function format_displaytitle(data, include_lang_prefix, upcase) local topdata, lang, label = data.topdata, data.lang, data.label local displaytitle = substitute_template_specs(data, topdata.displaytitle) if not displaytitle then return nil end if upcase then displaytitle = ucfirst(displaytitle) end if include_lang_prefix and lang then displaytitle = ("%s:%s"):format(lang:getCode(), displaytitle) end return displaytitle end local function get_breadcrumb(data) local topdata, lang, label = data.topdata, data.lang, data.label local ret if lang then ret = topdata.breadcrumb or format_displaytitle(data, false, "upcase") else ret = topdata.umbrella and topdata.umbrella.breadcrumb or topdata.breadcrumb or format_displaytitle(data, false, "upcase") end if not ret then ret = label end if type(ret) == "string" or type(ret) == "number" then ret = {name = ret} end local name = substitute_template_specs(data, ret.name) local nocap = ret.nocap return {name = name, nocap = nocap} end local function make_category_name(lang, label) if lang then return lang:getCode() .. ":" .. ucfirst(label) else return ucfirst(label) end end local function replace_special_descriptions(data, desc) if not desc then return desc end if desc:find("^=") then desc = desc:gsub("^=", "") return format_desc(data, desc) end local is_default, no_singularize, wikify, add_the = process_default(desc) if is_default then local linked_label = require(topic_utilities_module).link_label(data.label, no_singularize, wikify) if add_the then linked_label = "the " .. linked_label end return format_desc(data, linked_label) else return desc end end local function get_displaytitle_or_label(data) return format_displaytitle(data, false) or data.label end local function process_default_add_the(data, topic) local is_default, _, _, add_the = process_default(topic) if is_default then topic = get_displaytitle_or_label(data) if add_the then topic = "the " .. topic end end return topic, is_default end substitute_template_specs = function(data, desc) desc = convert_spec_to_string(data, desc) if not desc then return nil end local topdata, lang, label = data.topdata, data.lang, data.label if desc:find("{{{umbrella_msg}}}") then local catname = ucfirst(label) desc = gsub_escaping_replacement(desc, "{{{umbrella_msg}}}", "This category contains no dictionary entries, only other categories. The subcategories are of two " .. "sorts:\n\n* Subcategories named like \"{{{thespref}}}aa:" .. catname .. "\" (with a prefixed language code) are categories of terms in specific languages. " .. "You may be interested especially in [[:Category:{{{thespref}}}en:" .. catname .. "]], for English terms.\n" .. "* Subcategories of this one named without the prefixed language code are further categories just like " .. "this one, but devoted to finer topics." ) end if desc:find("{{{topic}}}") then -- Compute the value for {{{topic}}}. If the user specified `topic`, use it. (If we're an umbrella category, -- allow a separate value for `umbrella.topic`, falling back to `topic`.) Otherwise, see if the description -- was specified as 'default' or a variant; if so, parse it to determine whether to add "the" to the label. -- Otherwise, just use the label directly. local topic = not lang and topdata.umbrella and topdata.umbrella.topic or topdata.topic if topic then topic = process_default_add_the(data, topic) else local desc if not lang then desc = topdata.umbrella and get_and_cache(data, topdata.umbrella, "description") or get_and_cache(data, topdata, "umbrella_description") end desc = desc or get_and_cache(data, topdata, "description") local defaulted_desc, is_default = process_default_add_the(data, desc) if is_default then topic = defaulted_desc else topic = get_displaytitle_or_label(data) end end desc = gsub_escaping_replacement(desc, "{{{topic}}}", topic) end desc = desc:gsub("{{{thespref}}}", data.thesaurus_data and "Kho từ vựng:" or "") return desc end local function process_box(data, def_topright_parts, val, pattern) if not val then return end local defval = ucfirst(data.label) if type(val) ~= "table" then val = {val} end for _, v in ipairs(val) do if v == true then insert(def_topright_parts, pattern:format(defval)) else insert(def_topright_parts, pattern:format(v)) end end end local function get_topright(data) local topdata, lang = data.topdata, data.lang local def_topright_parts = {} process_box(data, def_topright_parts, topdata.wp, "{{wikipedia|%s}}") process_box(data, def_topright_parts, topdata.wpcat, "{{wikipedia|category=%s}}") process_box(data, def_topright_parts, topdata.commonscat, "{{commonscat|%s}}") local def_topright if #def_topright_parts > 0 then def_topright = concat(def_topright_parts, "\n") end if lang then return substitute_template_specs(data, topdata.topright or def_topright) else return topdata.umbrella and substitute_template_specs(data, topdata.umbrella.topright) or substitute_template_specs(data, def_topright) end end local function remove_lang_params(desc) desc = desc:gsub("^{{{langname}}} ", "") desc = desc:gsub("{{{langcode}}}:", "") desc = desc:gsub("^{{{langcode}}} ", "") desc = desc:gsub("^{{{langcat}}} ", "") return desc end local function get_additional_msg(data) local types = split_types(data.topdata.type) if #types > 1 then local parts = {"'''NOTE''': This is a mixed category. It may contain terms of any of the following category types:"} for i, typ in ipairs(types) do insert(parts, ("* %s {{{topic}}}%s"):format(type_data[typ].desc, i == #types and "." or ";")) end insert(parts, "'''WARNING''': Such categories are strongly dispreferred and should be split into separate per-type categories.") return concat(parts, "\n") elseif label == "Tất cả chủ đề" then return "'''NOTE''': This is the topmost topic category for {{{langname}}}. It should not directly contain " .. "any terms, but only lists of topic categories organized by type." else return type_data[types[1]].additional end end local function get_labels_categorizing(data) local m_labels_utilities = require(labels_utilities_module) return m_labels_utilities.format_labels_categorizing( m_labels_utilities.find_labels_for_category(data.label, "chủ đề thuộc nhóm liên quan", data.lang), nil, data.lang) end -- Return the description along with the text following and preceding the description. The description and additional -- (i.e. following) text are returned in the form of closures so the work of calculating the text (which can be -- expensive, especially in the case of the additional text, where get_labels_categorizing() scans the entire set of -- labels for any that categorize into this category) is not done when not needed, e.g. in higher levels of the -- breadcrumb chain, where only the breadcrumb and parents (in fact, really just the first parent) are actually needed. local function get_description_additional_preceding(data) local topdata, lang, label = data.topdata, data.lang, data.label local desc, additional, preceding -- This is kind of hacky, but it works for now. local function postprocess_thesaurus(txt) if not txt then return nil end if not data.thesaurus_data then return txt end txt = txt:gsub(" terms([ .,])", " thesaurus entries%1") return txt end if lang then desc = function() return postprocess_thesaurus(substitute_template_specs(data, replace_special_descriptions(data, get_and_cache(data, topdata, "description")))) end preceding = topdata.preceding additional = function() local additional_parts = {} if topdata.additional then insert(additional_parts, topdata.additional) end if not data.thesaurus_data then insert(additional_parts, get_additional_msg(data)) local labels_msg = get_labels_categorizing(data) if labels_msg then insert(additional_parts, labels_msg) end end return postprocess_thesaurus(substitute_template_specs(data, concat(additional_parts, "\n\n"))) end else if label == "Tất cả chủ đề" then desc = "Dưới đây là các chủ đề dành cho tất cả ngôn ngữ trên Wiktionary." additional = "It contains no dictionary entries, only other categories. The subcategories are of two " .. "sorts:\n\n" .. "* Subcategories listed at the beginning, without a prefixed language code, are grouping " .. "categories similar to this category, but are devoted to general subject areas. Under them are " .. "finer-grained subject areas.\n" .. "* Subcategories named like \"aa:All topics\" (with a prefixed language code) are top-level " .. "categories like this one, but for specific languages. You may be interested especially in " .. "[[:Thể loại:Tất cả chủ đề/Tiếng Việt]], đối với mục từ tiếng Việt.\n" .. "Note that categories under this tree categorize terms semantically rather than grammatically. " .. "Grammatical categories (such as all French verbs, or all English irregular plural forms) " .. "have a different naming structure, with the language name spelled out, such as " .. "[[:Thể loại:Động từ tiếng Pháp]] hoặc [[:Thể loại:Động từ bất quy tắc tiếng Anh]]." return desc, additional end -- Assume that if the description field contains a function, the function will return non-nil, so we don't -- have to call the function at this point (in case it is heavyweight). local has_umbrella_desc = topdata.umbrella and topdata.umbrella.description or topdata.umbrella_description desc = function() local desc = topdata.umbrella and get_and_cache(data, topdata.umbrella, "description") or get_and_cache(data, topdata, "umbrella_description") if not desc then desc = get_and_cache(data, topdata, "description") if desc then desc = replace_special_descriptions(data, desc) desc = remove_lang_params(desc) desc = desc:gsub("%.$", "") desc = "Chủ đề của thể loại này là: " .. desc .. "." end end if not desc then desc = "Categories concerning " .. label .. " in various specific languages." end return postprocess_thesaurus(substitute_template_specs(data, desc)) end preceding = topdata.umbrella and topdata.umbrella.preceding or not has_umbrella_desc and topdata.preceding if preceding then preceding = remove_lang_params(preceding) end additional = function() local additional_parts = {} local topdata_additional = topdata.umbrella and topdata.umbrella.additional or not has_umbrella_desc and topdata.additional if topdata_additional then insert(additional_parts, remove_lang_params(topdata_additional)) end insert(additional_parts, "{{{umbrella_msg}}}") if not data.thesaurus_data then insert(additional_parts, get_additional_msg(data)) local labels_msg = get_labels_categorizing(data) if labels_msg then insert(additional_parts, labels_msg) end end return postprocess_thesaurus(substitute_template_specs(data, concat(additional_parts, "\n\n"))) end end preceding = substitute_template_specs(data, preceding) return desc, additional, preceding end local function normalize_sort_key(data, sort) local lang, label = data.lang, data.label if not sort then -- When defaulting sort key to label, strip 'The ' (e.g. in 'The Matrix', 'The Hunger Games') -- and 'A ' (e.g. in 'A Song of Ice and Fire', 'A Christmas Carol') from label. local stripped_sort = label:match("^[Tt]he (.*)$") if stripped_sort then sort = stripped_sort end if not stripped_sort then stripped_sort = label:match("^[Aa] (.*)$") if stripped_sort then sort = stripped_sort end end if not stripped_sort then sort = label end end sort = substitute_template_specs(data, sort) if not lang then sort = " " .. sort end return sort end local function get_topic_parents(data) local topdata, lang, label = data.topdata, data.lang, data.label local parents = topdata.parents if not lang and label == "Tất cả chủ đề" then return {{ name = "Category:Tất cả", sort = "topics" }} end if not parents or #parents == 0 then return nil end local ret = {} for _, parent in ipairs(parents) do parent = mw.clone(parent) if type(parent) ~= "table" then parent = {name = parent} end parent.sort = normalize_sort_key(data, parent.sort) if type(parent.name) ~= "string" then error(("Internal error: parent.name is not a string: parent = %s"):format(dump(parent))) end if parent.name:find("^Thể loại:") or parent.nontopic then -- leave as-is parent.nontopic = nil else parent.name = make_category_name(lang, parent.name) end parent.name = substitute_template_specs(data, parent.name) insert(ret, parent) end local function make_list_of_type_parent(typ) return { name = make_category_name(lang, ("Danh sách %s"):format(typ)), sort = (not lang and " " or "") .. label, } end if topdata.type ~= "toplevel" then local types = split_types(topdata.type) for _, typ in ipairs(types) do insert(ret, make_list_of_type_parent(typ)) end if #types > 1 then insert(ret, make_list_of_type_parent("chủ đề thuộc nhóm hỗn hợp")) end end -- Add umbrella category. if lang then insert(ret, { name = make_category_name(nil, label), sort = lang:getCanonicalName(), }) end return ret end local function get_thesaurus_parents(data) local topdata, lang, label = data.topdata, data.lang, data.label local parent_substitutions = data.thesaurus_data.parent_substitutions local parents = topdata.parents if not parents or #parents == 0 then return nil end local ret = {} for _, parent in ipairs(parents) do -- Process parent categories as follows: -- 1. skip non-topic cats and meta-categories that start with "List of" -- 2. map "en:All topics" to "English thesaurus entries" (and same for other languages), but map "All topics" itself to the root "Thesaurus" category -- 3. check if this parent is to be substituted, if so, substitute it -- 4. prepend "Thesaurus:" to all other category names parent = mw.clone(parent) if type(parent) ~= "table" then parent = {name = parent} end parent.sort = normalize_sort_key(data, parent.sort) if type(parent.name) ~= "string" then error(("Internal error: parent.name is not a string: parent = %s"):format(dump(parent))) end if parent.name:find("^Thể loại:") or parent.nontopic then -- skip elseif parent.name == "Tất cả chủ đề" or parent_substitutions[parent.name] == "Tất cả chủ đề" then if not lang then insert(ret, { name = "Thesaurus", sort = label, }) else insert(ret, { name = "Kho từ vựng", sort = parent.sort, lang = lang:getCode(), is_label = true, }) end else parent.name = "Kho từ vựng:" .. make_category_name(lang, parent_substitutions[parent.name] or parent.name) parent.name = substitute_template_specs(data, parent.name) insert(ret, parent) end end -- Add the non-thesaurus version of this category as a parent, unless it is a thesaurus-only category. if not topdata.thesaurusonly then insert(ret, { name = make_category_name(lang, label), sort = " " }) end -- Add umbrella category. if lang then insert(ret, { name = "Kho từ vựng:" .. make_category_name(nil, label), sort = lang:getCanonicalName(), }) end return ret end local function generate_spec(category, lang, upcase_label, thesaurus_data) local label_data = require(topic_data_module) local label -- Convert label to lowercase if possible local lowercase_label = mw.getContentLanguage():lcfirst(upcase_label) -- Check if the label exists local labels = label_data["LABELS"] if labels[lowercase_label] then label = lowercase_label else label = upcase_label end local topdata = labels[label] -- Go through handlers if not topdata then for _, handler in ipairs(label_data["HANDLERS"]) do topdata = handler.handler(label) if topdata then topdata.module = handler.module break end end end if not topdata then return nil end local data = { category = category, lang = lang, label = label, topdata = topdata, thesaurus_data = thesaurus_data, } local description, additional, preceding = get_description_additional_preceding(data) local parents if thesaurus_data then parents = get_thesaurus_parents(data) else parents = get_topic_parents(data) end return { lang = lang and lang:getCode() or nil, description = description, additional = additional, preceding = preceding, parents = parents, breadcrumb = get_breadcrumb(data), displaytitle = format_displaytitle(data, "include lang prefix", "upcase"), topright = get_topright(data), module = topdata.module, can_be_empty = not lang, hidden = false, } end -- Handler for `Thesaurus:...` categories. table.insert(raw_handlers, function(data) local code, upcase_label = data.category:match("^Kho từ vựng:(%l[%a-]*%a):(.+)$") local lang if code then lang = require(languages_module).getByCode(code) if not lang then mw.log(("Category '%s' looks like a language-specific thesaurus category but unable to match language prefix"): format(data.category)) return nil end else upcase_label = data.category:match("^Kho từ vựng:(.+)$") end if upcase_label then local thesaurus_data = require(thesaurus_data_module) -- substituted category names are not allowed if thesaurus_data.parent_substitutions[lcfirst(upcase_label)] then error(("Category is not allowed as a Thesaurus category: %s (see the list of parent substitutions at " .. "[[Module:category tree/topic/thesaurus]])"):format(data.category)) end return generate_spec(data.category, lang, upcase_label, thesaurus_data) end end) -- Handler for regular topic categories. table.insert(raw_handlers, function(data) local code, upcase_label = data.category:match("^(%l[%a-]*%a):(.+)$") local lang if code then lang = require(languages_module).getByCode(code) if not lang then mw.log(("Category '%s' looks like a language-specific topic category but unable to match language prefix"): format(data.category)) return nil end else upcase_label = data.category end return generate_spec(data.category, lang, upcase_label) end) ----------------------------------------------------------------------------- -- -- -- RAW CATEGORIES -- -- -- ----------------------------------------------------------------------------- raw_categories["Kho từ vựng"] = { description = "Category for entries of the Wiktionary thesaurus, located in a separate namespace.", additional = [=[ Có 3 cách để duyệt Kho từ vựng: * Nhấn vào '''[[:Thể loại:Kho từ vựng theo ngôn ngữ]]''' để bắt đầu. * Sử dụng hộp tìm kiếm ở dưới. * Browse the thesaurus by topic using the links under "Subcategories" below. Trang chính dự án này là [[Wiktionary:Kho từ vựng]]. {{ws header|<nowiki/>|link=}}]=], parents = { "Category:Tất cả", "Category:Dự án Wiktionary", }, } return {RAW_CATEGORIES = raw_categories, RAW_HANDLERS = raw_handlers} q8qw5blv8052g5dtgp9fn7f80yl5yqj 2351286 2351285 2026-05-08T05:45:31Z TheHighFighter2 42988 Đã lùi lại sửa đổi [[Special:Diff/2351285|2351285]] của [[Special:Contributions/TheHighFighter2|TheHighFighter2]] ([[User talk:TheHighFighter2|thảo luận]]) 2351286 Scribunto text/plain local raw_handlers = {} local raw_categories = {} --[=[ This module implements the topic category subsystem. It is currently implemented with a single raw handler that handlers both language-specific and umbrella topic categories, and a corresponding handler for thesaurus categories. The topmost topic category [[:Category:All topics]] is special and potentially could be handled as a separate raw category, but currently it's handled as part of the raw topic handler. The topmost thesaurus category [[:Category:Thesaurus]] is in fact handled as a raw category. ]=] local functions_module = "Module:fun" local labels_utilities_module = "Module:labels/utilities" local languages_module = "Module:languages" local string_pattern_escape_module = "Module:string/patternEscape" local string_replacement_escape_module = "Module:string/replacementEscape" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local topic_data_module = "Module:category tree/topic/data" local topic_utilities_module = "Module:category tree/topic/utilities" local thesaurus_data_module = "Module:category tree/topic/thesaurus data" local concat = table.concat local insert = table.insert local dump = mw.dumpObject local is_callable = require(functions_module).is_callable local pattern_escape = require(string_pattern_escape_module) local replacement_escape = require(string_pattern_escape_module) local split = require(string_utilities_module).split local type_data = { ["chủ đề thuộc nhóm liên quan"] = { desc = "Mục từ liên quan đến", additional = "'''LƯU Ý''': Đây là chủ đề thuộc nhóm liên quan. Nó chỉ nên chứa các mục từ liên quan đến " .. "{{{topic}}}. Vui lòng không đưa các mục từ chỉ có liên quan nhỏ đến chủ đề {{{topic}}}. " .. "Để ý các mục từ liên quan đến loại hoặc ví dụ liên quan đến chủ đề này thường có thể đưa vào một thể loại khác.", }, ["chủ đề thuộc nhóm tập hợp"] = { desc = "Mục từ chủ đề thuộc nhóm tập hợp", additional = "'''LƯU Ý''': Đây là chủ đề thuộc nhóm tập hợp. It should contain terms for {{{topic}}}, not merely " .. "terms related to {{{topic}}}. It may contain more general terms (e.g. types of {{{topic}}}) or more " .. "specific terms (e.g. names of specific {{{topic}}}), although there may be related categories ".. "specifically for these types of terms.", }, ["chủ đề thuộc nhóm tên gọi"] = { desc = "Mục từ chủ đề thuộc nhóm tên gọi", additional = "'''LƯU Ý''': This is a name category. It should contain names of specific {{{topic}}}, not " .. "merely terms related to {{{topic}}}, and should also not contain general terms for types of {{{topic}}}.", }, ["chủ đề thuộc nhóm loại hình"] = { desc = "Mục từ chủ đề thuộc nhóm loại hình", additional = "'''LƯU Ý''': This is a type category. It should contain terms for types of {{{topic}}}, not " .. "merely terms related to {{{topic}}}, and should also not contain names of specific {{{topic}}}.", }, ["chủ đề phân nhóm"] = { desc = "categories concerning more specific variants of", additional = "'''LƯU Ý''': This is a grouping category. It should not directly contain any terms, but " .. "only subcategories. If there are any terms directly in this category, please move them to a subcategory.", }, toplevel = { desc = "UNUSED", -- all categories of this type hardcode their description additional = "'''LƯU Ý''': Đây là chủ đề thuộc nhóm hàng đầu. Nó không chứa trực tiếp các mục từ, và " .. "chỉ có ở {{{topic}}}.", }, ["chủ đề thuộc nhóm hỗn hợp"] = { desc = "Tất cả chủ đề khả dụng ở nhiều lĩnh vực khác nhau {{{langname}}}.", }, } local function invalid_type(types) local valid_types = {} for typ, _ in pairs(type_data) do insert(valid_types, ("'%s'"):format(typ)) end error(("Loại chủ đề không hợp lệ: '%s'; bắt buộc phải là một trong các nhóm sau đây: %s") :format(types, mw.text.listToText(valid_types))) end local function split_types(types) types = types or "chủ đề" local splitvals = split(types, "%s*,%s*") for i, typ in ipairs(splitvals) do -- FIXME: Temporary if typ == "chủ đề" then typ = "chủ đề thuộc nhóm liên quan" end if not type_data[typ] then invalid_type(types) end splitvals[i] = typ end return splitvals end local function gsub_escaping_replacement(str, from, to) return (str:gsub(pattern_escape(from), replacement_escape(to))) end function ucfirst(txt) local italics, raw_txt = txt:match("^('*)(.-)$") return italics .. mw.getContentLanguage():ucfirst(raw_txt) end function lcfirst(txt) local italics, raw_txt = txt:match("^('*)(.-)$") return italics .. mw.getContentLanguage():lcfirst(raw_txt) end local function convert_spec_to_string(data, desc) if not desc then return desc end local desc_type = type(desc) if desc_type == "string" then return desc elseif desc_type == "number" then return tostring(desc) elseif not is_callable(desc) then error("Internal error: `desc` must be a string, number, function, callable table or nil; received a " .. desc_type) end desc = desc { lang = data.lang, sc = data.sc, label = data.label, category = data.category, topic_data = data.topdata, } if not desc then return desc end desc_type = type(desc) if desc_type == "string" then return desc end error("Internal error: the value returned by `desc` must be a string or nil; received a " .. desc_type) end local function get_and_cache(data, obj, key) local val = convert_spec_to_string(data, obj[key]) obj[key] = val return val end local function process_default(desc) local stripped_desc = desc local no_singularize, wikify, add_the while true do local new_stripped_desc = stripped_desc:match("^(.+) no singularize$") if new_stripped_desc then no_singularize = true end if not new_stripped_desc then new_stripped_desc = stripped_desc:match("^(.+) wikify$") if new_stripped_desc then wikify = true end end if not new_stripped_desc then new_stripped_desc = stripped_desc:match("^(.+) with the$") if new_stripped_desc then add_the = true end end if new_stripped_desc then stripped_desc = new_stripped_desc else break end end if stripped_desc == "default" then return true, no_singularize, wikify, add_the else return false end end local function format_desc(data, desc) local desc_parts = {} local types = split_types(data.topdata.type) for _, typ in ipairs(types) do insert(desc_parts, type_data[typ].desc .. " " .. desc) end return require(table_module).serialCommaJoin(desc_parts) .. " {{{langname}}}." end local substitute_template_specs local function format_displaytitle(data, include_lang_prefix, upcase) local topdata, lang, label = data.topdata, data.lang, data.label local displaytitle = substitute_template_specs(data, topdata.displaytitle) if not displaytitle then return nil end if upcase then displaytitle = ucfirst(displaytitle) end if include_lang_prefix and lang then displaytitle = ("%s:%s"):format(lang:getCode(), displaytitle) end return displaytitle end local function get_breadcrumb(data) local topdata, lang, label = data.topdata, data.lang, data.label local ret if lang then ret = topdata.breadcrumb or format_displaytitle(data, false, "upcase") else ret = topdata.umbrella and topdata.umbrella.breadcrumb or topdata.breadcrumb or format_displaytitle(data, false, "upcase") end if not ret then ret = label end if type(ret) == "string" or type(ret) == "number" then ret = {name = ret} end local name = substitute_template_specs(data, ret.name) local nocap = ret.nocap return {name = name, nocap = nocap} end local function make_category_name(lang, label) if lang then return lang:getCode() .. ":" .. ucfirst(label) else return ucfirst(label) end end local function replace_special_descriptions(data, desc) if not desc then return desc end if desc:find("^=") then desc = desc:gsub("^=", "") return format_desc(data, desc) end local is_default, no_singularize, wikify, add_the = process_default(desc) if is_default then local linked_label = require(topic_utilities_module).link_label(data.label, no_singularize, wikify) if add_the then linked_label = "the " .. linked_label end return format_desc(data, linked_label) else return desc end end local function get_displaytitle_or_label(data) return format_displaytitle(data, false) or data.label end local function process_default_add_the(data, topic) local is_default, _, _, add_the = process_default(topic) if is_default then topic = get_displaytitle_or_label(data) if add_the then topic = "the " .. topic end end return topic, is_default end substitute_template_specs = function(data, desc) desc = convert_spec_to_string(data, desc) if not desc then return nil end local topdata, lang, label = data.topdata, data.lang, data.label if desc:find("{{{umbrella_msg}}}") then local catname = ucfirst(label) desc = gsub_escaping_replacement(desc, "{{{umbrella_msg}}}", "This category contains no dictionary entries, only other categories. The subcategories are of two " .. "sorts:\n\n* Subcategories named like \"{{{thespref}}}aa:" .. catname .. "\" (with a prefixed language code) are categories of terms in specific languages. " .. "You may be interested especially in [[:Category:{{{thespref}}}en:" .. catname .. "]], for English terms.\n" .. "* Subcategories of this one named without the prefixed language code are further categories just like " .. "this one, but devoted to finer topics." ) end if desc:find("{{{topic}}}") then -- Compute the value for {{{topic}}}. If the user specified `topic`, use it. (If we're an umbrella category, -- allow a separate value for `umbrella.topic`, falling back to `topic`.) Otherwise, see if the description -- was specified as 'default' or a variant; if so, parse it to determine whether to add "the" to the label. -- Otherwise, just use the label directly. local topic = not lang and topdata.umbrella and topdata.umbrella.topic or topdata.topic if topic then topic = process_default_add_the(data, topic) else local desc if not lang then desc = topdata.umbrella and get_and_cache(data, topdata.umbrella, "description") or get_and_cache(data, topdata, "umbrella_description") end desc = desc or get_and_cache(data, topdata, "description") local defaulted_desc, is_default = process_default_add_the(data, desc) if is_default then topic = defaulted_desc else topic = get_displaytitle_or_label(data) end end desc = gsub_escaping_replacement(desc, "{{{topic}}}", topic) end desc = desc:gsub("{{{thespref}}}", data.thesaurus_data and "Kho từ vựng:" or "") return desc end local function process_box(data, def_topright_parts, val, pattern) if not val then return end local defval = ucfirst(data.label) if type(val) ~= "table" then val = {val} end for _, v in ipairs(val) do if v == true then insert(def_topright_parts, pattern:format(defval)) else insert(def_topright_parts, pattern:format(v)) end end end local function get_topright(data) local topdata, lang = data.topdata, data.lang local def_topright_parts = {} process_box(data, def_topright_parts, topdata.wp, "{{wikipedia|%s}}") process_box(data, def_topright_parts, topdata.wpcat, "{{wikipedia|category=%s}}") process_box(data, def_topright_parts, topdata.commonscat, "{{commonscat|%s}}") local def_topright if #def_topright_parts > 0 then def_topright = concat(def_topright_parts, "\n") end if lang then return substitute_template_specs(data, topdata.topright or def_topright) else return topdata.umbrella and substitute_template_specs(data, topdata.umbrella.topright) or substitute_template_specs(data, def_topright) end end local function remove_lang_params(desc) desc = desc:gsub("^{{{langname}}} ", "") desc = desc:gsub("{{{langcode}}}:", "") desc = desc:gsub("^{{{langcode}}} ", "") desc = desc:gsub("^{{{langcat}}} ", "") return desc end local function get_additional_msg(data) local types = split_types(data.topdata.type) if #types > 1 then local parts = {"'''NOTE''': This is a mixed category. It may contain terms of any of the following category types:"} for i, typ in ipairs(types) do insert(parts, ("* %s {{{topic}}}%s"):format(type_data[typ].desc, i == #types and "." or ";")) end insert(parts, "'''WARNING''': Such categories are strongly dispreferred and should be split into separate per-type categories.") return concat(parts, "\n") elseif label == "Tất cả chủ đề" then return "'''NOTE''': This is the topmost topic category for {{{langname}}}. It should not directly contain " .. "any terms, but only lists of topic categories organized by type." else return type_data[types[1]].additional end end local function get_labels_categorizing(data) local m_labels_utilities = require(labels_utilities_module) return m_labels_utilities.format_labels_categorizing( m_labels_utilities.find_labels_for_category(data.label, "chủ đề thuộc nhóm liên quan", data.lang), nil, data.lang) end -- Return the description along with the text following and preceding the description. The description and additional -- (i.e. following) text are returned in the form of closures so the work of calculating the text (which can be -- expensive, especially in the case of the additional text, where get_labels_categorizing() scans the entire set of -- labels for any that categorize into this category) is not done when not needed, e.g. in higher levels of the -- breadcrumb chain, where only the breadcrumb and parents (in fact, really just the first parent) are actually needed. local function get_description_additional_preceding(data) local topdata, lang, label = data.topdata, data.lang, data.label local desc, additional, preceding -- This is kind of hacky, but it works for now. local function postprocess_thesaurus(txt) if not txt then return nil end if not data.thesaurus_data then return txt end txt = txt:gsub(" terms([ .,])", " thesaurus entries%1") return txt end if lang then desc = function() return postprocess_thesaurus(substitute_template_specs(data, replace_special_descriptions(data, get_and_cache(data, topdata, "description")))) end preceding = topdata.preceding additional = function() local additional_parts = {} if topdata.additional then insert(additional_parts, topdata.additional) end if not data.thesaurus_data then insert(additional_parts, get_additional_msg(data)) local labels_msg = get_labels_categorizing(data) if labels_msg then insert(additional_parts, labels_msg) end end return postprocess_thesaurus(substitute_template_specs(data, concat(additional_parts, "\n\n"))) end else if label == "Tất cả chủ đề" then desc = "Dưới đây là các chủ đề dành cho tất cả ngôn ngữ trên Wiktionary." additional = "It contains no dictionary entries, only other categories. The subcategories are of two " .. "sorts:\n\n" .. "* Subcategories listed at the beginning, without a prefixed language code, are grouping " .. "categories similar to this category, but are devoted to general subject areas. Under them are " .. "finer-grained subject areas.\n" .. "* Subcategories named like \"aa:All topics\" (with a prefixed language code) are top-level " .. "categories like this one, but for specific languages. You may be interested especially in " .. "[[:Thể loại:Tất cả chủ đề/Tiếng Việt]], đối với mục từ tiếng Việt.\n" .. "Note that categories under this tree categorize terms semantically rather than grammatically. " .. "Grammatical categories (such as all French verbs, or all English irregular plural forms) " .. "have a different naming structure, with the language name spelled out, such as " .. "[[:Thể loại:Động từ tiếng Pháp]] hoặc [[:Thể loại:Động từ bất quy tắc tiếng Anh]]." return desc, additional end -- Assume that if the description field contains a function, the function will return non-nil, so we don't -- have to call the function at this point (in case it is heavyweight). local has_umbrella_desc = topdata.umbrella and topdata.umbrella.description or topdata.umbrella_description desc = function() local desc = topdata.umbrella and get_and_cache(data, topdata.umbrella, "description") or get_and_cache(data, topdata, "umbrella_description") if not desc then desc = get_and_cache(data, topdata, "description") if desc then desc = replace_special_descriptions(data, desc) desc = remove_lang_params(desc) desc = desc:gsub("%.$", "") desc = "Chủ đề của thể loại này là: " .. desc .. "." end end if not desc then desc = "Categories concerning " .. label .. " in various specific languages." end return postprocess_thesaurus(substitute_template_specs(data, desc)) end preceding = topdata.umbrella and topdata.umbrella.preceding or not has_umbrella_desc and topdata.preceding if preceding then preceding = remove_lang_params(preceding) end additional = function() local additional_parts = {} local topdata_additional = topdata.umbrella and topdata.umbrella.additional or not has_umbrella_desc and topdata.additional if topdata_additional then insert(additional_parts, remove_lang_params(topdata_additional)) end insert(additional_parts, "{{{umbrella_msg}}}") if not data.thesaurus_data then insert(additional_parts, get_additional_msg(data)) local labels_msg = get_labels_categorizing(data) if labels_msg then insert(additional_parts, labels_msg) end end return postprocess_thesaurus(substitute_template_specs(data, concat(additional_parts, "\n\n"))) end end preceding = substitute_template_specs(data, preceding) return desc, additional, preceding end local function normalize_sort_key(data, sort) local lang, label = data.lang, data.label if not sort then -- When defaulting sort key to label, strip 'The ' (e.g. in 'The Matrix', 'The Hunger Games') -- and 'A ' (e.g. in 'A Song of Ice and Fire', 'A Christmas Carol') from label. local stripped_sort = label:match("^[Tt]he (.*)$") if stripped_sort then sort = stripped_sort end if not stripped_sort then stripped_sort = label:match("^[Aa] (.*)$") if stripped_sort then sort = stripped_sort end end if not stripped_sort then sort = label end end sort = substitute_template_specs(data, sort) if not lang then sort = " " .. sort end return sort end local function get_topic_parents(data) local topdata, lang, label = data.topdata, data.lang, data.label local parents = topdata.parents if not lang and label == "Tất cả chủ đề" then return {{ name = "Category:Tất cả", sort = "topics" }} end if not parents or #parents == 0 then return nil end local ret = {} for _, parent in ipairs(parents) do parent = mw.clone(parent) if type(parent) ~= "table" then parent = {name = parent} end parent.sort = normalize_sort_key(data, parent.sort) if type(parent.name) ~= "string" then error(("Internal error: parent.name is not a string: parent = %s"):format(dump(parent))) end if parent.name:find("^Thể loại:") or parent.nontopic then -- leave as-is parent.nontopic = nil else parent.name = make_category_name(lang, parent.name) end parent.name = substitute_template_specs(data, parent.name) insert(ret, parent) end local function make_list_of_type_parent(typ) return { name = make_category_name(lang, ("Danh sách %s"):format(typ)), sort = (not lang and " " or "") .. label, } end if topdata.type ~= "toplevel" then local types = split_types(topdata.type) for _, typ in ipairs(types) do insert(ret, make_list_of_type_parent(typ)) end if #types > 1 then insert(ret, make_list_of_type_parent("chủ đề thuộc nhóm hỗn hợp")) end end -- Add umbrella category. if lang then insert(ret, { name = make_category_name(nil, label), sort = lang:getCanonicalName(), }) end return ret end local function get_thesaurus_parents(data) local topdata, lang, label = data.topdata, data.lang, data.label local parent_substitutions = data.thesaurus_data.parent_substitutions local parents = topdata.parents if not parents or #parents == 0 then return nil end local ret = {} for _, parent in ipairs(parents) do -- Process parent categories as follows: -- 1. skip non-topic cats and meta-categories that start with "List of" -- 2. map "en:All topics" to "English thesaurus entries" (and same for other languages), but map "All topics" itself to the root "Thesaurus" category -- 3. check if this parent is to be substituted, if so, substitute it -- 4. prepend "Thesaurus:" to all other category names parent = mw.clone(parent) if type(parent) ~= "table" then parent = {name = parent} end parent.sort = normalize_sort_key(data, parent.sort) if type(parent.name) ~= "string" then error(("Internal error: parent.name is not a string: parent = %s"):format(dump(parent))) end if parent.name:find("^Thể loại:") or parent.nontopic then -- skip elseif parent.name == "Tất cả chủ đề" or parent_substitutions[parent.name] == "Tất cả chủ đề" then if not lang then insert(ret, { name = "Thesaurus", sort = label, }) else insert(ret, { name = "Kho từ vựng", sort = parent.sort, lang = lang:getCode(), is_label = true, }) end else parent.name = "Kho từ vựng:" .. make_category_name(lang, parent_substitutions[parent.name] or parent.name) parent.name = substitute_template_specs(data, parent.name) insert(ret, parent) end end -- Add the non-thesaurus version of this category as a parent, unless it is a thesaurus-only category. if not topdata.thesaurusonly then insert(ret, { name = make_category_name(lang, label), sort = " " }) end -- Add umbrella category. if lang then insert(ret, { name = "Kho từ vựng:" .. make_category_name(nil, label), sort = lang:getCanonicalName(), }) end return ret end local function generate_spec(category, lang, upcase_label, thesaurus_data) local label_data = require(topic_data_module) local label -- Convert label to lowercase if possible local lowercase_label = mw.getContentLanguage():lcfirst(upcase_label) -- Check if the label exists local labels = label_data["LABELS"] if labels[lowercase_label] then label = lowercase_label else label = upcase_label end local topdata = labels[label] -- Go through handlers if not topdata then for _, handler in ipairs(label_data["HANDLERS"]) do topdata = handler.handler(label) if topdata then topdata.module = handler.module break end end end if not topdata then return nil end local data = { category = category, lang = lang, label = label, topdata = topdata, thesaurus_data = thesaurus_data, } local description, additional, preceding = get_description_additional_preceding(data) local parents if thesaurus_data then parents = get_thesaurus_parents(data) else parents = get_topic_parents(data) end return { lang = lang and lang:getCode() or nil, description = description, additional = additional, preceding = preceding, parents = parents, breadcrumb = get_breadcrumb(data), displaytitle = format_displaytitle(data, "include lang prefix", "upcase"), topright = get_topright(data), module = topdata.module, can_be_empty = not lang, hidden = false, } end -- Handler for `Thesaurus:...` categories. table.insert(raw_handlers, function(data) local code, upcase_label = data.category:match("^Kho từ vựng:(%l[%a-]*%a):(.+)$") local lang if code then lang = require(languages_module).getByCode(code) if not lang then mw.log(("Category '%s' looks like a language-specific thesaurus category but unable to match language prefix"): format(data.category)) return nil end else upcase_label = data.category:match("^Kho từ vựng:(.+)$") end if upcase_label then local thesaurus_data = require(thesaurus_data_module) -- substituted category names are not allowed if thesaurus_data.parent_substitutions[lcfirst(upcase_label)] then error(("Category is not allowed as a Thesaurus category: %s (see the list of parent substitutions at " .. "[[Module:category tree/topic/thesaurus]])"):format(data.category)) end return generate_spec(data.category, lang, upcase_label, thesaurus_data) end end) -- Handler for regular topic categories. table.insert(raw_handlers, function(data) local code, upcase_label = data.category:match("^(%l[%a-]*%a):(.+)$") local lang if code then lang = require(languages_module).getByCode(code) if not lang then mw.log(("Category '%s' looks like a language-specific topic category but unable to match language prefix"): format(data.category)) return nil end else upcase_label = data.category end return generate_spec(data.category, lang, upcase_label) end) ----------------------------------------------------------------------------- -- -- -- RAW CATEGORIES -- -- -- ----------------------------------------------------------------------------- raw_categories["Kho từ vựng"] = { description = "Category for entries of the Wiktionary thesaurus, located in a separate namespace.", additional = [=[ Có 3 cách để duyệt Kho từ vựng: * Nhấn vào '''[[:Thể loại:Kho từ vựng theo ngôn ngữ]]''' để bắt đầu. * Sử dụng hộp tìm kiếm ở dưới. * Browse the thesaurus by topic using the links under "Subcategories" below. Trang chính dự án này là [[Wiktionary:Kho từ vựng]]. {{ws header|<nowiki/>|link=}}]=], parents = { "Category:Tất cả", "Category:Dự án Wiktionary", }, } return {RAW_CATEGORIES = raw_categories, RAW_HANDLERS = raw_handlers} ohqwfb3a3s3mdhu2qs84hyh82lml9uj Mô đun:category tree/poscatboiler/data/lang-specific/jpx 828 342501 2351358 2234721 2026-05-08T09:17:33Z Hiyuune 50834 Thay đổi trang đích của đổi hướng từ [[Mô đun:category tree/lang/jpx]] sang [[Mô đun:category tree/fam/jpx]] 2351358 Scribunto text/plain return require [[Mô đun:category tree/fam/jpx]] ews1yutxylwe69pv3nq923wsk39692l Mô đun:category tree/topic/Nature 828 343314 2351148 2348939 2026-05-07T14:53:48Z Hiyuune 50834 2351148 Scribunto text/plain local labels = {} local unpack = unpack or table.unpack -- Lua 5.2 compatibility labels["Tự nhiên"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Tất cả chủ đề"}, wpcat = true, } labels["Môi trường"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Tự nhiên"}, wpcat = true, } labels["Acid"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Vật chất"}, } labels["actinide series chemical elements"] = { breadcrumb = "actinide series", type = "chủ đề thuộc nhóm tập hợp", description = "{{{langname}}} terms for those chemical elements in the {{w|f-block}} of the [[periodic table]] with [[atomic number]]s from 89 to 103.", parents = {"chemical elements", "Kim loại", "Phóng xạ"}, } labels["air"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"atmosphere"}, } labels["alkali metals"] = { type = "chủ đề thuộc nhóm tập hợp", description = "{{{langname}}} terms for [[alkali metal]]s, chemical elements in [[w:Group (periodic table)|group]] 1 of the [[periodic table]], which all have one [[valence electron]].", parents = {"chemical elements", "Kim loại"}, } labels["alkaline earth metals"] = { type = "chủ đề thuộc nhóm tập hợp", description = "{{{langname}}} terms for [[alkaline earth metal]]s, chemical elements in [[w:Group (periodic table)|group]] 2, which all have two [[valence electron]]s.", parents = {"chemical elements", "Kim loại"}, } labels["alkaloids"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Hợp chất hữu cơ"}, } labels["alloys"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Kim loại"}, } labels["aluminium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"boron group elements"}, } labels["amino acids"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Acid carboxylic"}, } labels["Âm thanh động vật"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Tiếng", "Tiếng kêu"}, } labels["animal welfare"] = { type = "chủ đề thuộc nhóm liên quan", description = "{{{langname}}} terms closely associated with [[animal welfare]].", parents = {"ethics"}, } labels["antimatter"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"matter"}, } labels["antimony"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"pnictogens"}, } labels["argon"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"noble gases"}, } labels["arsenic"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"pnictogens"}, } labels["astatine"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"halogens"}, } labels["asteroids"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"celestial bodies"}, } labels["khí quyển"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"tự nhiên"}, } labels["hiện tượng khí quyển"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[hiện tượng]] [[khí quyển]]", parents = {"khí quyển"}, } labels["autumn"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"seasons"}, } labels["barium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"alkaline earth metals"}, } labels["baryons"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"hadrons"}, } labels["beryllium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"alkaline earth metals"}, } labels["birth"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"reproduction"}, } labels["bismuth"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"pnictogens"}, } labels["boron"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"boron group elements"}, } labels["boron group elements"] = { breadcrumb = "boron group", type = "chủ đề thuộc nhóm tập hợp", description = "{{{langname}}} terms for chemical elements in [[w:Group (periodic table)|group]] 13 of the [[periodic table]], which all have three [[valence electron]]s.", parents = {"chemical elements"}, } labels["bosons"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"subatomic particles"}, } labels["bromine"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"halogens"}, } labels["cadmium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["calcium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"alkaline earth metals"}, } labels["carbohydrates"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Hợp chất hữu cơ"}, } labels["carbon"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"carbon group elements"}, } labels["carbon group elements"] = { breadcrumb = "carbon group", type = "chủ đề thuộc nhóm tập hợp", description = "{{{langname}}} terms for chemical elements in [[w:Group (periodic table)|group]] 14 of the [[periodic table]], which all have four [[valence electron]]s.", parents = {"chemical elements"}, } labels["Acid carboxylic"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Acid", "Hợp chất hữu cơ"}, } labels["Thiên thể"] = { type = "chủ đề thuộc nhóm tập hợp", description = "{{{langname}}} terms for varous [[celestial body|celestial bodies]]; things found in outer space.", parents = {"Không gian"}, } labels["cerium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"lanthanide series chemical elements"}, } labels["cesium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"alkali metals"}, } labels["chalcogens"] = { type = "chủ đề thuộc nhóm tập hợp", description = "{{{langname}}} terms for chemical elements in [[w:Group (periodic table)|group]] 16 of the [[periodic table]], which all have 6 [[valence electron]]s.", parents = {"chemical elements"}, } labels["nguyên tố hóa học"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Vật chất"}, } for period = 1, 7 do local key = ("Nguyên tố chu kì %d"):format(period) if not labels[key] then labels[key] = { type = "chủ đề thuộc nhóm tập hợp", description = ("{{{langname}}} terms for [[chemical element]]s in period %d of the [[periodic table]]."):format(period), parents = {"nguyên tố hóa học"}, } end end labels["chemical isomers"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"matter", "physical chemistry", "shapes"}, } labels["Quá trình hóa học"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[quá trình]] [[hóa học]]", parents = {"Tự nhiên"}, } labels["chlorine"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"halogens"}, } labels["chromium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["classical planets"] = { type = "name", description = "{{{langname}}} names for the [[classical planet]]s of our Solar System.", parents = {"celestial bodies"}, } labels["climate change"] = { type = "chủ đề thuộc nhóm liên quan", description = "=[[anthropogenic]] [[climate change]]", parents = {"tự nhiên"}, } labels["clouds"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"hiện tượng khí quyển"}, } labels["coal"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"fossil fuels"}, } labels["cobalt"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["coenzymes"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"enzymes"}, } labels["Màu sắc"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Ánh sáng", "Thị giác"}, } for _, color_etc in ipairs { {"Màu đen"}, {"blue"}, {"brown"}, {"green"}, {"grey", "[[grey]] ([[gray]])"}, {"orange"}, {"pink"}, {"purple"}, {"red"}, {"white"}, {"yellow"}, } do local color, desc = unpack(color_etc) desc = desc or ("[[%s]]"):format(color) labels[color] = { type = "chủ đề thuộc nhóm tập hợp", description = ("=shades of the [[color]] %s"):format(desc), parents = {"Màu sắc"}, } end labels["Màu sắc of the rainbow"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[color]]s of the [[rainbow]]", parents = {"Màu sắc"}, } labels["Cháy"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Quá trình hóa học"}, } labels["điểm la bàn"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[điểm]] [[la bàn]]", parents = {"phương hướng", "định hướng"}, } labels["copper"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["crystal"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"matter", "physical chemistry"}, } labels["darkness"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Ánh sáng"}, } labels["deuterium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"hydrogen", "two", "isotopes"} } labels["phương hướng"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"tự nhiên"}, } labels["distance"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"tự nhiên"}, } labels["Chất gây nghiện"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Vật chất", "Dược lý học"}, } labels["dryness"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"liquids"}, } labels["dwarf planets of the Solar System"] = { type = "name", description = "=[[dwarf planet]]s of our [[Solar System]]", parents = {"celestial bodies"}, } labels["Nhuộm"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Vật chất", "Sắc tố"}, } labels["Năng lượng"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Tự nhiên"}, } labels["enzymes"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"proteins", "catalysis"}, } labels["europium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"lanthanide series chemical elements"}, } labels["explosives"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"matter", "weapons"}, } labels["eye Màu sắc"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[color]]s that are mostly or exclusively used of [[eye]]s", parents = {"Màu sắc", "eyes"}, } labels["Acid béo"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Acid carboxylic"}, } labels["fermions"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"subatomic particles"}, } labels["fictional materials"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"science fiction", "materials"}, } labels["Lửa"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Cháy", "Nguồn ánh sáng"}, wp = "Lửa", } labels["fluorine"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"halogens"}, } labels["fog"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"weather", "water"}, } labels["fossil fuels"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"carbon", "Năng lượng", "natural resources"}, } labels["francium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"alkali metals"}, } labels["gadolinium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"lanthanide series chemical elements"}, } labels["galaxies"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"celestial bodies"}, } labels["gallium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"boron group elements"}, } labels["gases"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"matter"}, } labels["germanium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"carbon group elements"}, } labels["gold"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["hadrons"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"subatomic particles"}, } labels["hair Màu sắc"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[color]]s that are mostly or exclusively used of [[hair]]", parents = {"Màu sắc", "hair"}, } labels["halogens"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[chemical element]]s in [[w:Group (periodic table)|group]] 17 of the [[periodic table]], which all have 7 [[valence electron]]s", parents = {"chemical elements"}, } labels["helium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"noble gases"}, } labels["heroin"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"recreational drugs"}, } labels["height"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"distance"}, } labels["horse Màu sắc"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[color]]s that are mostly or exclusively used of [[horse]]s", parents = {"Màu sắc", "horses"}, } labels["hydrogen"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"chemical elements"}, } labels["hypothetical chemical elements"] = { breadcrumb = "hypothetical", type = "chủ đề thuộc nhóm tập hợp", description = "{{{langname}}} terms for types or instances of [[chemical element]]s which have been hypothesized to exist, but not (yet) discovered.", parents = {"chemical elements", "fictional materials"}, } labels["ice"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"water"}, } labels["indium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"boron group elements"}, } labels["Hợp chất vô cơ"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Vật chất"}, } labels["iodine"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"halogens"}, } labels["ions"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"matter", "chemistry", "electricity"}, } labels["iridium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["iron"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["isotopes"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"chemical elements"}, } labels["krypton"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"noble gases"}, } labels["lanthanide series chemical elements"] = { breadcrumb = "lanthanide series", type = "chủ đề thuộc nhóm tập hợp", description = "=[[chemical element]]s in the {{w|f-block}} of the [[periodic table]] with [[atomic number]]s from 57 to 71", parents = {"chemical elements"}, } labels["lanthanum"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"lanthanide series chemical elements"}, } labels["lead"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"carbon group elements"}, } labels["length"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"distance"}, } labels["leptons"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"fermions"}, } labels["Sự sống"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Tự nhiên"}, } labels["Ánh sáng"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Năng lượng"}, } labels["Nguồn ánh sáng"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Ánh sáng"}, } labels["Tia sét"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"hiện tượng khí quyển", "weather", "electricity", "Nguồn ánh sáng"}, } labels["Chất lỏng"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", -- At what temperature? parents = {"Vật chất"}, } labels["lithium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"alkali metals"}, } labels["magnesium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"alkaline earth metals"}, } labels["manganese"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["Mars (planet)"] = { type = "chủ đề thuộc nhóm liên quan", description = "=the planet [[Mars]]", parents = {"planets of the Solar System"}, } labels["marijuana"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"hemp family plants", "recreational drugs"}, } labels["Vật chất"] = { type = "chủ đề thuộc nhóm liên quan", description = "=physical [[matter]]", parents = {"Tự nhiên", "Hóa học"}, } labels["mercury (element)"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["mesons"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"hadrons"}, } labels["metalloids"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"chemical elements"}, } labels["Kim loại"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Vật chất", "Luyện kim"}, } labels["Khoáng chất"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Vật chất", "Khoáng vật học"}, } labels["molybdenum"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["moon"] = { type = "chủ đề thuộc nhóm liên quan", description = "=the [[Moon]], Earth's only natural satellite", parents = {"tự nhiên", "Ánh sáng", "celestial bodies", "moons"}, } labels["moons"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"celestial bodies"}, } for _, planet in ipairs {"Mars", "Haumea", "Jupiter", "Saturn", "Neptune", "Uranus", "Pluto"} do labels["moons of " .. planet] = { type = "name", description = ("=[[moon]]s that orbit [[%s]]"):format(planet), parents = {"moons"}, } end labels["natural products (Chemistry)"] = { type = "name", description = "=[[organic compound]]s produced by living [[organism]]s", parents = {"Hợp chất hữu cơ"}, } labels["natural resources"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"matter"}, } labels["neodymium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"lanthanide series chemical elements"}, } labels["neon"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"noble gases"}, } labels["neurotoxins"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"poisons", "neuroscience"}, } labels["nickel"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["niobium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["nitrogen"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"pnictogens"}, } labels["noble gases"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[chemical element]]s in [[w:Group (periodic table)|group]] 18 of the [[periodic table]], which all have a full chủ đề thuộc nhóm tập hợp of [[valence electron]]s: 2 for helium and 8 for the others", parents = {"chemical elements", "gases"}, } labels["Hợp chất hữu cơ"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Vật chất"}, } labels["osmium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["oxygen"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"chalcogens"}, } labels["palladium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["petroleum"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"fossil fuels", "liquids"}, } labels["pharmaceutical drugs"] = { type = "chủ đề thuộc nhóm tập hợp", description = "{{{langname}}} names for [[pharmaceutical#Adjective|pharmaceutical]] [[drug#Noun|drugs]].", parents = {"drugs"}, } labels["pharmaceutical effects"] = { type = "chủ đề thuộc nhóm tập hợp", description = "{{{langname}}} names for [[pharmaceutical#Adjective|pharmaceutical]] [[effect#Noun|effects]].", parents = {"pharmacology"}, } labels["phosphorus"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"pnictogens"}, } labels["Sắc tố"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Màu sắc"}, } labels["planetoids"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"celestial bodies"}, } labels["Hành tinh"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Thiên thể"}, } labels["Hành tinh trong hệ Mặt Trời"] = { type = "chủ đề thuộc nhóm tên gọi", description = "=hành tinh trong hệ Mặt Trời", parents = {"Hành tinh"}, } labels["platinum"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["Pluto"] = { type = "chủ đề thuộc nhóm liên quan", description = "=the dwarf planet [[Pluto]]", parents = {"dwarf planets of the Solar System"}, } labels["pnictogens"] = { type = "chủ đề thuộc nhóm tập hợp", description = "=[[chemical element]]s in [[w:Group (periodic table)|group]] 15 of the [[periodic table]], which all have 5 [[valence electron]]s", parents = {"chemical elements"}, } labels["poisons"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"matter"}, } labels["potassium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"alkali metals"}, } labels["praseodymium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"lanthanide series chemical elements"}, } labels["promethium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"lanthanide series chemical elements"}, } labels["quarks"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"fermions"}, } labels["Bức xạ"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Năng lượng"}, } labels["Phóng xạ"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Bức xạ", "Vật lý hạt nhân"}, } labels["radium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"alkaline earth metals"}, } labels["radon"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"noble gases"}, } labels["mưa"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Thời tiết", "Nước"}, } labels["Chất hướng thần"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Chất gây nghiện"}, } labels["rhodium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["rubidium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"alkali metals"}, } labels["ruthenium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["salt"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Khoáng chất", "condiments"}, } labels["samarium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"lanthanide series chemical elements"}, } labels["scandium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["selenium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"chalcogens"}, } labels["shadow"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"darkness"}, } labels["silence"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"sound"}, } labels["silicon"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"carbon group elements"}, } labels["silver"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["Kích thước"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Tự nhiên"}, } labels["snow"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"weather", "water"}, } labels["sodium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"alkali metals"}, } labels["Âm thanh"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Năng lượng"}, wpcat = true, } labels["Tiếng"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Âm thanh"}, } labels["Không gian"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Tự nhiên"}, wpcat = true, } labels["spring"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"seasons"}, } labels["squarks"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"fermions"}, } labels["Sao"] = { type = "chủ đề thuộc nhóm tập hợp", description = "{{{langname}}} names of individual [[star]]s, not including the [[Sun]].", parents = {"Thiên thể"}, } labels["steel"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"iron", "alloys"}, } labels["steroids"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Hợp chất hữu cơ"}, } labels["strength"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"tự nhiên", "health"}, } labels["strontium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"alkaline earth metals"}, } labels["subatomic particles"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"matter", "particle physics"}, } labels["sugar acids"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Acid carboxylic", "carbohydrates"}, } labels["sugars"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"carbohydrates"}, } labels["sulfur"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"chalcogens"}, } labels["summer"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"seasons"}, } labels["sun"] = { type = "chủ đề thuộc nhóm liên quan", description = "=the [[Sun]]", parents = {"tự nhiên", "Ánh sáng", "celestial bodies"}, } labels["supposed chemical elements"] = { breadcrumb = "supposed", type = "chủ đề thuộc nhóm tập hợp", description = "{{{langname}}} terms for types or instances of [[chemical element]]s which were erroneously identified.", parents = {"chemical elements", "obsolete scientific theories"}, } labels["tantalum"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["technetium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["tellurium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"chalcogens"}, } labels["temperature"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"tự nhiên", "weather"}, } labels["teratogens"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"poisons"}, } labels["thalium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"boron group elements"}, } labels["thorium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"actinide series chemical elements"}, } labels["tin"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"carbon group elements"}, } labels["titanium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["tobacco"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"nightshades", "recreational drugs", "smoking"}, } labels["transition metals"] = { type = "chủ đề thuộc nhóm tập hợp", description = "{{{langname}}} terms for [[chemical element]]s in [[w:Group (periodic table)|group]]s 3 to 12 of the [[periodic table]], which are also in the {{w|d-block}} of the [[periodic table]] ", parents = {"chemical elements", "Kim loại"}, } labels["tritium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"hydrogen", "three", "isotopes"}, } labels["tungsten"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["types of planets"] = { type = "type", topic = "planets", description = "=[[planet]]s", parents = {"planets"}, } labels["uranium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"actinide series chemical elements"}, } labels["vanadium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["Tiếng kêu"] = { type = "chủ đề thuộc nhóm tập hợp", description = "default", parents = {"Tiếng", "Giao tiếp"}, } labels["Nước"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Chất lỏng"}, } labels["waterfalls"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"water"}, } labels["Thời tiết"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Khí quyển"}, } labels["weight"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"tự nhiên"}, } labels["wetlands"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"bodies of water", "ecosystems"}, } labels["wetness"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"liquids"}, } labels["wind"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"weather"}, } labels["Mùa đông"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Mùa"}, } labels["xenon"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"noble gases"}, } labels["yttrium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["zinc"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["zirconium"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"transition metals"}, } labels["exoplanets"] = { type = "name", description = "default", parents = {"planets"}, } return labels 4ctinuoxxzopgsm20n0e9fdipswip2b Mô đun:category tree/pragmatic properties 828 350444 2351317 2332745 2026-05-08T06:58:16Z Hiyuune 50834 2351317 Scribunto text/plain local labels = {} local raw_categories = {} local string_utilities_module = "Module:string utilities" local ucfirst = require(string_utilities_module).ucfirst ----------------------------------------------------------------------------- -- -- -- LABELS -- -- -- ----------------------------------------------------------------------------- labels["Từ theo cách sử dụng"] = { description = "{{{langname}}} terms categorized by the manner and context in which they are used by speakers.", umbrella_parents = "Tất cả", parents = {{name = "{{{langcat}}}", raw = true}}, } local function generate_category_with_senses(typ, desc, distinguish, other_types_in_group) if distinguish then distinguish = "\n\n" .. distinguish else distinguish = "" end local function make_preceding(pos) if not other_types_in_group then return nil end local cats = {} for _, other_type in ipairs(other_types_in_group) do table.insert(cats, "Thể loại:" .. ucfirst((pos .. " {{{langname}}}"):format(other_type))) end return ("{{also|%s}}"):format(table.concat(cats, "|")) end local function make_umbrella_preceding(pos) if not other_types_in_group then return nil end local cats = {} for _, other_type in ipairs(other_types_in_group) do table.insert(cats, "Thể loại:" .. ucfirst((pos .. " theo ngôn ngữ"):format(other_type))) end return ("{{also|%s}}"):format(table.concat(cats, "|")) end labels[("Từ %s"):format(typ)] = { description = ("{{{langname}}} terms that %s."):format(desc), additional = ("To categorize into this category, use {{tl|tlb|{{{langcode}}}|%s}} (template '''tlb''', not '''lb'''), " .. "which should typically be placed next to the headword.\n\nIf the term is merely a variant (alternative form) of a term " .. "in general use, it should be categorized instead in {{cl|{{{langname}}} %s forms}} (using " .. "{{tl|%s form of|{{{langcode}}}|...}} or {{tl|%s spelling of|{{{langcode}}}|...}}). If only some senses of the term are %s, " .. "it should be categorized instead in {{cl|{{{langname}}} terms with %s senses}}, using {{tl|lb|{{{langcode}}}|%s}} " .. "(template '''lb''' instead of '''tlb'''), which should typically be placed next to the individual sense.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "terms")), parents = {"Từ theo cách sử dụng"}, preceding = make_preceding("từ %s"), umbrella = { preceding = make_umbrella_preceding("từ %s"), additional = ("To categorize into this category, use <code><nowiki>{{</nowiki>tlb|<var>langcode</var>|%s}}</code> " .. "(template '''tlb''', not '''lb'''), which should typically be placed next to the headword. " .. "(<code><var>langcode</var></code> is the appropriate language code for the language in question; see [[Wiktionary:List of languages]].)\n\n" .. "If the term is merely a variant (alternative form) of a term in general use, it should be categorized instead in " .. "{{cl|<var>langname</var> %s forms}} (using <code><nowiki>{{</nowiki>%s form of|<var>langcode</var>|...}}</code> " .. "or <code><nowiki>{{</nowiki>%s spelling of|<var>langcode</var>|...}}</code>). " .. "If only some senses of the term are %s, it should be categorized instead in {{cl|<var>langname</var> terms with %s senses}}, " .. "using <code><nowiki>{{</nowiki>lb|<var>langcode</var>|%s}}</code> (template '''lb''' instead of '''tlb'''), which should " .. "typically be placed next to the individual sense.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "terms")), } } labels[("Từ mang nghĩa %s"):format(typ)] = { description = ("{{{langname}}} terms with individual senses that %s."):format(desc), additional = ("To categorize into this category, use {{tl|lb|{{{langcode}}}|%s}} (template '''lb''', not '''tlb'''), " .. "which should typically be placed next to the individual sense.\n\nIf the term itself, in all its senses, is %s, " .. "it should be placed in {{cl|{{{langname}}} %s terms}} instead, using {{tl|tlb|{{{langcode}}}|%s}} " .. "(template '''tlb''' instead of '''lb'''), which should typically be placed next to the headword. " .. "If the term is merely a variant (alternative form) of a term in general use, it should be categorized in " .. "{{cl|{{{langname}}} %s forms}} (using {{tl|%s form of|{{{langcode}}}|...}} or {{tl|%s spelling of|{{{langcode}}}|...}}).%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "senses")), parents = {{name = "Từ theo cách sử dụng", sort = ("%s senses"):format(typ)}}, breadcrumb = ("với nghĩa %s"):format(typ), preceding = make_preceding("từ mang nghĩa %s"), umbrella = { preceding = make_umbrella_preceding("từ mang nghĩa %s"), additional = ("To categorize into this category, use <code><nowiki>{{</nowiki>lb|<var>langcode</var>|%s}}</code> " .. "(template '''lb''', not '''tlb'''), which should typically be placed next to the individual sense. " .. "(<code><var>langcode</var></code> is the appropriate language code for the language in question; see [[Wiktionary:List of languages]].)\n\n" .. "If the term itself, in all its senses, is %s, it should be placed in {{cl|<var>langname</var> %s terms}} instead, using " .. "<code><nowiki>{{</nowiki>tlb|<var>langcode</var>|%s}}</code> (template '''tlb''' instead of '''lb'''), which should " .. "typically be placed next to the headword. If the term is merely a variant (alternative form) of a term in general use, " .. "it should be categorized in {{cl|<var>langname</var> %s forms}} (using <code><nowiki>{{</nowiki>%s form of|<var>langcode</var>|...}}</code> " .. "or <code><nowiki>{{</nowiki>%s spelling of|<var>langcode</var>|...}}</code>.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "senses")), } } labels[("Hình thức %s"):format(typ)] = { description = ("{{{langname}}} forms that %s; and serve as alternative forms of the same terms in general use."):format(desc), additional = ("To categorize into this category, use {{tl|%s form of|{{{langcode}}}|...}} or {{tl|%s spelling of|{{{langcode}}}|...}}.\n\n" .. "If the term is not merely a variant (alternative form) of a term in general use, it should be placed in {{cl|{{{langname}}} %s terms}} " .. "instead; to do this, use {{tl|tlb|{{{langcode}}}|%s}} (template '''tlb''', not '''lb'''), which should typically be placed next to the " .. "headword. If only some senses of the term are %s, it should be categorized instead in {{cl|{{{langname}}} terms with %s senses}}, " .. "using {{tl|lb|{{{langcode}}}|%s}} (template '''lb''' instead of '''tlb'''), which should typically be placed next to the individual sense.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "forms")), parents = {{name = ("%s terms"):format(typ), sort = "forms"}}, breadcrumb = "forms", preceding = make_preceding("hình thức %s"), umbrella = { preceding = make_umbrella_preceding("hình thức %s"), additional = ("To categorize into this category, use <code><nowiki>{{</nowiki>%s form of|<var>langcode</var>|...}}</code> " .. "or <code><nowiki>{{</nowiki>%s spelling of|<var>langcode</var>|...}}</code>. (<code><var>langcode</var></code> is the " .. "appropriate language code for the language in question; see [[Wiktionary:List of languages]].)\n\n" .. "If the term is not merely a variant (alternative form) of a term in general use, it should be placed in {{cl|<var>langname</var> %s terms}} " .. "instead; to do this, use <code><nowiki>{{</nowiki>lb|<var>langcode</var>|%s}}</code> (template '''tlb''', not '''lb'''), " .. "which should typically be placed next to the headword. If only some senses of the term are %s, it should be categorized instead " .. "in {{cl|<var>langname</var> terms with %s senses}}, using <code><nowiki>{{</nowiki>lb|<var>langcode</var>|%s}}</code> " .. "(template '''lb''' instead of '''tlb'''), which should typically be placed next to the individual sense.%s"):format( typ, typ, typ, typ, typ, typ, typ, distinguish:gsub("POS", "forms")), } } end local function generate_related_categories_with_senses(info) for typ, spec in pairs(info) do local other_types = {} for other_type, _ in pairs(info) do if other_type ~= typ then table.insert(other_types, other_type) end end table.sort(other_types) generate_category_with_senses(typ, spec.desc, spec.distinguish, other_types) end end generate_related_categories_with_senses { ["cổ xưa"] = { desc = "are no longer in general use but still encountered in older literature, sometimes still used for special effect, and typically recognized by native speakers", distinguish = "Archaic POS should be distinguished from dated POS, which are merely [[unfashionable]] and [[anachronistic]] but still sometimes used, especially by older speakers; and on the other hand from obsolete POS, which are no longer in use at all and are not usually recognized by native speakers.", }, ["lỗi thời"] = { desc = "are no longer fashionable and thus are [[anachronistic]], but still sometimes in use, especially by older speakers", distinguish = "Dated POS should be distinguished from archaic POS, which are no longer in use (except occasionally for special effect) but are still sometimes encountered in older literature and are typically recognized by native speakers; and obsolete POS, which are no longer in use at all and are not usually recognized by native speakers.", }, ["không còn dùng"] = { desc = "are no longer in use and not usually recognized by native speakers, but still sometimes found in older literature", distinguish = "Obsolete POS should be distinguished from archaic POS, which, although no longer in general use, are still occasionally used for special effect and are typically recognized by native speakers; and dated POS, which are merely [[unfashionable]] and [[anachronistic]] but still sometimes used, especially by older speakers.", }, } generate_related_categories_with_senses { ["hiếm"] = { desc = "are rarely found in general use and may not be recognized by some native speakers", distinguish = "Rare POS should be distinguished from uncommon POS, which are not common but used enough to be generally recognized.", }, ["không phổ biến"] = { desc = "are in general use but not common", distinguish = "Uncommon POS should be distinguished from rare POS, which are infrequent enough that they are sometimes not recognized by native speakers.", }, } labels["2channel slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the website {{w|2channel}}.", parents = {"Từ lóng Internet"}, } labels["4chan slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the website {{w|4chan}}.", parents = {"Từ lóng Internet"}, } labels["4chan /lgbt/ slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the /lgbt/ board of the website {{w|4chan}}.", parents = {"4chan slang", "LGBTQ slang"}, } labels["angry register terms"] = { description = "{{{langname}}} terms belonging to an angry linguistic register, used only when the speaker is angry.", parents = {"Từ theo cách sử dụng"}, } labels["anti-LGBTQ slurs"] = { description = "{{{langname}}} terms that are intended to offend [[LGBTQ]] people.", parents = {"offensive terms"}, } labels["Từ tự tả"] = { description = "{{{langname}}} terms that possess the property they themselves describe.", parents = {"Từ theo cách sử dụng"}, } labels["back slang"] = { description = "{{{langname}}} terms in which the written word is spoken phonemically backwards to form a coded language.", parents = {"cant"}, } labels["cant"] = { description = "{{{langname}}} terms used to form secret languages that are typically restricted to members of a specific group.", parents = {"Từ lóng"}, } labels["censored spellings"] = { description = "{{{langname}}} spellings where some characters have been changed in an effort to reduce the shock value of the original term.", parents = {"Từ theo cách sử dụng"}, } labels["Từ ngôn ngữ trẻ con"] = { description = "{{{langname}}} terms that are typically only used by, or to, children.", parents = {"Từ theo cách sử dụng", "Từ không trang trọng"}, } labels["Từ thông tục"] = { description = "{{{langname}}} terms that are likely to be used primarily in casual conversation rather than in more formal written works, speeches, and discourse.", parents = {"Từ theo cách sử dụng"}, } labels["corporate jargon"] = { description = "{{{langname}}} terms (typically for non-business-specific concepts) that are used especially in a [[business]] or [[corporate]] [[context]].", additional = "See also [[:Category:Businesses]], [[:Category:Business]] and language-specific categories thereof for terms related to business-specific concepts.", parents = {"Từ theo cách sử dụng"}, } labels["criminal slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to criminals.", parents = {"Từ lóng"}, } labels["derogatory terms"] = { description = "{{{langname}}} terms that are intended to [[disparage]], [[demean]], [[insult]] or [[offend]].", parents = {"Từ theo cách sử dụng"}, } labels["Từ phương ngữ"] = { description = "{{{langname}}} terms that are not used in standard language but only in dialects.", parents = {"Từ theo cách sử dụng"}, } labels["dis legomena"] = { description = "{{{langname}}} terms that are attested only twice in the entire corpus.", parents = {"Từ theo cách sử dụng"}, } labels["drag slang"] = { description = "{{{langname}}} [[slang]] terms used in the [[drag]] community.", parents = {"LGBTQ slang"}, } labels["ecclesiastical terms"] = { description = "{{{langname}}} terms used only by religious figures.", parents = {"Từ theo cách sử dụng"}, } labels["eggcorns"] = { description = "{{{langname}}} [[eggcorn]]s, terms which are misconstructed.", parents = {"misconstructions"}, } labels["emoticons"] = { description = "{{{langname}}} characters, or sequences of characters, that imitate expressions and other objects by means of [[pareidolia]].", parents = {"Từ lóng Internet", "text messaging slang"}, } labels["endearing terms"] = { description = "{{{langname}}} terms that are used to show affection or endearment to another person.", parents = {"Từ theo cách sử dụng"}, } labels["ethnic slurs"] = { description = "{{{langname}}} terms that are intended to offend certain ethnic groups.", parents = {"offensive terms"}, } labels["expressive terms"] = { description = "{{{langname}}} terms with additional expressive content compared with the basic meaning of the term.", additional = "This term is common in Slavic lexicography and is found in most Czech, Slovak and Polish dictionaries, but there is no exact equivalent in English lexicography. The closest equivalents might be a combination of ''colloquial'' and either ''endearing'' or ''pejorative'', as the case may be.", parents = {"Từ theo cách sử dụng"}, } labels["eye dialect"] = { description = "{{{langname}}} nonstandard spellings, which however do not change pronunciation, deliberately used by an author to indicate that the speaker uses a nonstandard or dialectal speech.", parents = {"Hình thái không tiêu chuẩn", "terms by orthographic property"}, } labels["familiar terms"] = { description = "{{{langname}}} terms whose use is typically to contexts of friendly intimacy.", parents = {"Từ theo cách sử dụng"}, } labels["fandom slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to fans of one or more works of fiction.", parents = {"Từ lóng"}, } labels["filter-avoidance spellings"] = { description = "Deliberate misspellings of {{{langname}}} terms that are used to avoid [[w:Wordfilter|wordfilters]].", parents = {"deliberate misspellings"}, } labels["folk poetic terms"] = { description = "{{{langname}}} terms whose usage is typically restricted to works of oral or folk poetry.", parents = {"Từ theo cách sử dụng", "poetic terms"}, } labels["Từ trang trọng"] = { description = "{{{langname}}} terms whose use is typically restricted to polite, ceremonious, non-casual contexts.", parents = {"Từ theo cách sử dụng"}, } labels["gay slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to homosexual people.", parents = {"LGBTQ slang"}, } labels["gender-critical slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to gender-critical feminists.", parents = {"Từ lóng", "Category:{{{langcode}}}:Gender-critical feminism"}, } labels["gender-neutral terms"] = { description = "{{{langname}}} terms that are applicable to all people, independent of gender.", parents = {"Từ theo cách sử dụng"}, } labels["graffiti slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to creators of [[graffiti#Noun|graffiti]].", parents = {"Từ lóng", "Category:{{{langcode}}}:Art"}, } labels["higher register terms"] = { description = "{{{langname}}} terms belonging to a higher linguistic register, such as literary terms; such terms are somewhat less common or known.", parents = {"Từ theo cách sử dụng"}, } labels["Từ lịch sử"] = { description = "{{{langname}}} terms that refer to obsolete things or concepts.", parents = {"Từ theo cách sử dụng"}, } labels["honorific terms"] = { description = "{{{langname}}} [[honorific]] terms, which are used to show deference and respect.", parents = {"Từ theo cách sử dụng"}, } labels["polite terms"] = { description = "{{{langname}}} [[polite]] terms, which are used to show deference and respect.", parents = {"Từ theo cách sử dụng"}, } labels["hapax legomena"] = { description = "{{{langname}}} terms that are attested only once in the entire corpus.", parents = {"Từ theo cách sử dụng"}, } labels["humble terms"] = { description = "{{{langname}}} [[humble]] terms, which are used to show humility towards the addressee, indicating that the speaker has a lower social standing.", parents = {"honorific terms"}, } labels["Siêu chỉnh"] = { description = "Các hình thái {{{langname}}} do áp dụng sai quy tắc ngữ pháp hoặc chính tả của những từ ngữ khác mà thành.", parents = {"Từ không tiêu chuẩn", "Hình thái không tiêu chuẩn"}, } labels["hyperforeign terms"] = { description = "{{{langname}}} terms created by misapplying the perceived grammatical, orthographical or phonetical rules of another language.", parents = {"Siêu chỉnh"}, } labels["incel slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to incels.", parents = {"Từ lóng", "Category:{{{langcode}}}:Incel community"}, } labels["imperfective forms"] = { description = "{{{langname}}} verbs that serve as imperfective variants of perfective verbs, sharing the same base set of meanings.", parents = {"Từ theo cách sử dụng"}, } labels["informal forms"] = { description = "{{{langname}}} terms that can be used in casual, non-ceremonious conversations as alternative forms of other terms.", additional = "Informal non-lemma form variants also belong here.", parents = {"informal terms"}, } labels["Từ không trang trọng"] = { description = "{{{langname}}} terms whose use is typically restricted to casual, non‐ceremonious conversations.", parents = {"Từ theo cách sử dụng"}, } labels["deliberate misspellings"] = { description = "Deliberate misspellings of {{{langname}}} terms.", parents = {"misspellings"}, } labels["internet laughter slang"] = { description = "{{{langname}}} [[slang]] terms that are used as substitutes for laughter in internet-related contexts.", additional = "::''Note: The majority of items that <u>could</u> be here do not meet Wiktionary's [[WT:CFI|criteria for inclusion]].''", parents = {"Từ lóng Internet"}, } labels["Từ lóng Internet"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to internet users.", parents = {"Từ lóng"}, } labels["Từ hài hước"] = { description = "{{{langname}}} terms that are humorous, amusing or joking.", parents = {"Từ theo cách sử dụng"}, } labels["journalistic terms"] = { description = "{{{langname}}} terms that are used especially in [[journalistic]] language, i.e. in newspapers and magazines.", parents = {"Từ theo cách sử dụng"}, } labels["kennings"] = { description = "{{{langname}}} metaphorical compounds or phrases describing basic objects in an allusive fashion, used especially in Germanic poetry.", parents = {"poetic terms"}, } labels["leetspeak"] = { description = "{{{langname}}} which are used in [[leetspeak]], a variety of internet slang that focuses on substitution of letters by other characters which are similar in appearance.", parents = {"Từ lóng Internet"}, } labels["Từ lóng LGBT"] = { description = "{{{langname}}} [[slang]] terms which are used predominantly among [[LGBTQ]] people.", parents = {"Từ lóng", "Category:{{{langcode}}}:LGBTQ"}, } labels["literary terms"] = { description = "{{{langname}}} terms whose usage is typically restricted to works of literature.", parents = {"higher register terms"}, } labels["medical slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to medical doctors, such as physicians and surgeons.", parents = {"Từ lóng"}, } labels["military slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to military personnel.", parents = {"Từ lóng"}, } labels["misconstructions"] = { description = "Terms wrongly built due to a misunderstanding of their parts.", parents = {"Hình thái không tiêu chuẩn"}, } labels["misromanizations"] = { description = "Common misromanizations of {{{langname}}} terms.", parents = {"Hình thái không tiêu chuẩn"}, } labels["misspellings"] = { description = "Common accidental misspellings of {{{langname}}} terms and some terms which are deliberate misspellings.", parents = {"Hình thái không tiêu chuẩn"}, } labels["multiplicity slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to the {{l|en|multiplicity|id=multiple personalities}} [[community]].", parents = {"Từ lóng", "Category:{{{langcode}}}:Multiplicity (psychology)"}, } labels["naval slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to naval personnel.", parents = {"military slang"}, } labels["Hình thái không tiêu chuẩn"] = { description = "{{{langname}}} forms of standard terms that are considered improper, incorrect or commonly misused.", parents = {"Từ không tiêu chuẩn"}, } labels["Từ không tiêu chuẩn"] = { description = "{{{langname}}} terms that are considered improper, incorrect or commonly misused.", parents = {"Từ theo cách sử dụng"}, } labels["numismatic slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to numismatists.", parents = {"Từ lóng", "Category:{{{langcode}}}:Currency"}, } labels["offensive terms"] = { description = "{{{langname}}} terms that are typically considered to offend people.", parents = {"Từ theo cách sử dụng"}, } labels["officialese terms"] = { description = "{{{langname}}} terms that are chiefly used by official sources, and are often bureaucratic-sounding.", parents = {"Từ theo cách sử dụng"}, } labels["OpenStreetMap jargon"] = { description = "{{{langname}}} terms that are used in [[w:OpenStreetMap|OpenStreetMap]].", parents = {"Từ theo cách sử dụng"}, } labels["oxymorons"] = { description = "{{{langname}}} terms that are juxtapositions of opposing ideas.", parents = {"Từ theo cách sử dụng"}, } labels["perfective forms"] = { description = "{{{langname}}} verbs that serve as perfective variants of imperfective verbs, sharing the same base set of meanings.", parents = {"Từ theo cách sử dụng"}, } labels["placeholder terms"] = { description = "{{{langname}}} terms used to refer to items for which one does not know or cannot recall the name, or is unable to or does not care to specify precisely.", parents = {"Từ theo cách sử dụng"}, } labels["poetic forms"] = { description = "{{{langname}}} terms that can be used in works of poetry as poetic alternative forms of other terms.", additional = "Poetic non-lemma form variants also belong here.", parents = {"poetic terms"}, } labels["poetic terms"] = { description = "{{{langname}}} terms whose usage is typically restricted to works of poetry.", parents = {"Từ theo cách sử dụng", "literary terms"}, } labels["post-nominal letters"] = { description = "{{{langname}}} Post-nominal letters - also called post-nominal initials, post-nominal titles or designatory letters are letters placed after the name of a person to indicate that the individual holds a position, educational degree, accreditation, office, military decoration, or honour, or is a member of a religious institute or fraternity.", parents = {"Từ theo cách sử dụng"}, } labels["prison slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to detainees in correctional institutions.", parents = {"Từ lóng"}, } labels["Từ không nên dùng"] = { description = "{{{langname}}} terms whose usage is proscribed; thus, they are considered wrong according to prescriptive sources.", parents = {"Từ theo cách sử dụng", "Từ không tiêu chuẩn"}, } labels["puristic terms"] = { description = "{{{langname}}} terms adopted for [[w:Linguistic purism|linguistic purism]].", parents = {"Từ theo cách sử dụng"}, } labels["radio slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to radio communication.", parents = {"Từ lóng"}, } labels["Reddit slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the website {{w|Reddit}}.", parents = {"Từ lóng Internet"}, } labels["religious slurs"] = { description = "{{{langname}}} terms that are intended to offend members of certain religions.", parents = {"offensive terms"}, } labels["reverential terms"] = { description = "{{{langname}}} [[reverential]] terms, which are used to exalt the addressee, indicating that they have a higher social standing than the speaker.", parents = {"honorific terms"}, } labels["royal terms"] = { description = "{{{langname}}} terms used only by royalty.", parents = {"Từ theo cách sử dụng"}, } labels["rustic terms"] = { description = "{{{langname}}} terms whose use is typically restricted rural speech.", parents = {"Từ theo cách sử dụng"}, } labels["school slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to schools and school pupils.", parents = {"Từ lóng"}, } labels["self-deprecatory terms"] = { description = "{{{langname}}} [[self-deprecatory]] terms.", parents = {"Từ theo cách sử dụng"}, } labels["short forms"] = { description = "{{{langname}}} terms that are [[short form]]s of other terms, often used informally.", parents = {"Từ theo cách sử dụng", "shortenings"}, } labels["Từ lóng"] = { description = "{{{langname}}} [[colloquial]] terms that are typically used to mark membership in a cultural subgroup.", parents = {"Từ theo cách sử dụng"}, } labels["solemn terms"] = { description = "{{{langname}}} terms that are used to instill a sense of somberness.", parents = {"Từ theo cách sử dụng"}, } labels["student slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to colleges, universities, and their students.", parents = {"Từ lóng"}, } labels["superseded forms"] = { description = "{{{langname}}} forms that have been superseded by other forms due to changes in spelling conventions.", parents = {"Từ theo cách sử dụng", "terms by orthographic property"}, } labels["swear words"] = { description = "{{{langname}}} terms that are used to swear, such as to express strong anger or frustration.", parents = {"Từ xúc phạm"}, } labels["technical terms"] = { description = "{{{langname}}} terms that are usually or exclusively used in technical/scientific writing.", parents = {"Từ theo cách sử dụng"}, } labels["terms of address"] = { description = "{{{langname}}} terms used to refer to another person.", parents = {"Từ theo cách sử dụng"}, } labels["terms used in hendiadys"] = { description = "{{{langname}}} words or senses which are used only in {{w|hendiadys}}.", parents = {"Từ theo cách sử dụng"}, } labels["terms with historical senses"] = { description = "{{{langname}}} terms with senses that refer to things or concepts mainly known for their historical value.", parents = {"Từ theo cách sử dụng"}, } labels["terms with transferred senses"] = { description = "{{{langname}}} terms with [[Appendix:Glossary#transferred senses|transferred senses]].", parents = {"Từ theo cách sử dụng"}, } labels["terms with uncertain meaning"] = { description = "{{{langname}}} terms whose meaning is unknown or disputed.", parents = {"Từ theo cách sử dụng"}, } labels["text messaging slang"] = { description = "{{{langname}}} terms used for [[text messaging]] on mobile phones or similar devices, usually consisting of heavily abbreviated forms.", parents = {"Từ lóng"}, } labels["tone indicators"] = { description = "{{{langname}}} symbols used to denote or clarify the intent of a preceeding or occasionally following message.", parents = {"Từ lóng Internet"}, } labels["trademarks"] = { description = "{{{langname}}} terms that identify legal entities, their products and services, by means of legal protection — to some extent, in a number of jurisdictions — against unauthorized use of the terms.", parents = {"Từ theo cách sử dụng"}, } labels["transgender slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to transgender people.", parents = {"LGBTQ slang", "Category:{{{langcode}}}:Transgender"}, } labels["TV Tropes slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of the website {{w|TV Tropes}}.", parents = {"Từ lóng Internet"}, } labels["umlautless spellings"] = { description = "{{{langname}}} terms that are the result of the original terms' [[umlaut]]s being substituted.", parents = {"Hình thái không tiêu chuẩn", "terms by orthographic property"}, } labels["Usenet slang"] = { description = "{{{langname}}} [[slang]] terms whose usage is typically restricted to users of {{w|Usenet}}.", parents = {"Từ lóng Internet"}, } labels["men's speech terms"] = { description = "{{{langname}}} terms and forms used in [[Appendix:Glossary#men's speech|men's speech]].", parents = {"Từ theo cách sử dụng"}, } labels["women's speech terms"] = { description = "{{{langname}}} terms and forms used in [[Appendix:Glossary#women's speech|women's speech]].", parents = {"Từ theo cách sử dụng"}, } labels["Từ xúc phạm"] = { description = "{{{langname}}} terms whose tone (rather than the meaning) is offensive to polite company.", parents = {"Từ theo cách sử dụng"}, } -- Add 'umbrella_parents' key if not already present. for key, data in pairs(labels) do if not data.umbrella_parents then data.umbrella_parents = "Từ theo thể loại con cách sử dụng theo ngôn ngữ" end end ----------------------------------------------------------------------------- -- -- -- RAW CATEGORIES -- -- -- ----------------------------------------------------------------------------- raw_categories["Từ theo thể loại con cách sử dụng theo ngôn ngữ"] = { description = "Umbrella categories covering topics related to terms categorized by their usage, such as slang, obsolete or archaic forms and vulgarities.", additional = "{{{umbrella_meta_msg}}}", parents = { "Siêu thể loại chung", {name = "Từ theo cách sử dụng", is_label = true, sort = " "}, }, } return {LABELS = labels, RAW_CATEGORIES = raw_categories} d71cs0qz40psmohwdxkxbzkcmhaxkig Mô đun:category tree/topic/Asia 828 354277 2351288 2257678 2026-05-08T05:57:30Z TheHighFighter2 42988 2351288 Scribunto text/plain local labels = {} labels["Quốc gia của châu Á"] = { type = "chủ đề thuộc nhóm tên gọi", description = "default", breadcrumb = "Quốc gia", parents = {"Châu Á"}, } labels["Việt Nam"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Quốc gia của châu Á"}, wp = true, wpcat = true, commonscat = "Vietnam", } labels["Đài Loan"] = { type = "chủ đề thuộc nhóm liên quan", description = "default", parents = {"Quốc gia của châu Á"}, wp = true, wpcat = true, commonscat = "Taiwan", } return labels 8wh35wtjnw93bsr4jqeiu66yvzcicus Thể loại:ja:Địa danh của Shizuoka, Nhật Bản 14 355505 2351126 2259052 2026-05-07T14:45:49Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh của Shizuoka, Nhật Bản/Tiếng Nhật]] thành [[Thể loại:ja:Địa danh của Shizuoka, Nhật Bản]] 2259052 wikitext text/x-wiki [[Thể loại:Shizuoka, Nhật Bản/Tiếng Nhật]] [[Thể loại:Địa danh của Nhật Bản/Tiếng Nhật]] [[Thể loại:Danh sách chủ đề thuộc nhóm tên gọi/Tiếng Nhật]] [[Thể loại:Địa danh của Shizuoka, Nhật Bản|N]] igx4u7hy8tp0ygwl2f08krvgf2qi82t 2351128 2351126 2026-05-07T14:46:10Z Hiyuune 50834 2351128 wikitext text/x-wiki [[Thể loại:ja:Shizuoka, Nhật Bản]] [[Thể loại:ja:Địa danh của Nhật Bản]] [[Thể loại:ja:Danh sách chủ đề thuộc nhóm tên gọi]] [[Thể loại:Địa danh của Shizuoka, Nhật Bản|N]] tmh3p74j0hr18n7jnkxs96bbpzmbss8 Thể loại:tuw-bal:Địa danh của Trung Quốc 14 355512 2351111 2259072 2026-05-07T14:42:05Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh của Trung Quốc/Tiếng Bala]] thành [[Thể loại:tuw-bal:Địa danh của Trung Quốc]] 2259072 wikitext text/x-wiki [[Thể loại:Trung Quốc/Tiếng Bala]] [[Thể loại:Địa danh/Tiếng Bala]] [[Thể loại:Danh sách chủ đề thuộc nhóm tên gọi/Tiếng Bala]] [[Thể loại:Địa danh của Trung Quốc|B]] qbibnmtahlclf1rkdr6i4ixx3vdj7yj 2351115 2351111 2026-05-07T14:42:54Z Hiyuune 50834 2351115 wikitext text/x-wiki [[Thể loại:tuw-bal:Trung Quốc]] [[Thể loại:tuw-bal:Địa danh]] [[Thể loại:tuw-bal:Danh sách chủ đề thuộc nhóm tên gọi]] [[Thể loại:Địa danh của Trung Quốc|B]] 60cz8j7xwms57ea2jjg58vb4a95e72v Thể loại:vi:Địa danh của Thái Bình, Việt Nam 14 355787 2351120 2261172 2026-05-07T14:44:24Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh của Thái Bình, Việt Nam/Tiếng Việt]] thành [[Thể loại:vi:Địa danh của Thái Bình, Việt Nam]] 2261172 wikitext text/x-wiki [[Thể loại:Thái Bình, Việt Nam/Tiếng Việt]] [[Thể loại:Địa danh của Việt Nam/Tiếng Việt|T]] [[Thể loại:Danh sách chủ đề thuộc nhóm tên gọi/Tiếng Việt|T]] [[Thể loại:Địa danh của Thái Bình, Việt Nam|V]] 7z6od9k8hiw4ajoyvniqj0jtw3l5sxa 2351122 2351120 2026-05-07T14:45:06Z Hiyuune 50834 2351122 wikitext text/x-wiki [[Thể loại:vi:Thái Bình, Việt Nam]] [[Thể loại:vi:Địa danh của Việt Nam|T]] [[Thể loại:vi:Danh sách chủ đề thuộc nhóm tên gọi|T]] [[Thể loại:Địa danh của Thái Bình, Việt Nam|V]] cy1uriqf1gb8ng5hpvxt7wzdsxxcdhv Thể loại:vi:Thái Bình, Việt Nam 14 355788 2351123 2259790 2026-05-07T14:45:14Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Thái Bình, Việt Nam/Tiếng Việt]] thành [[Thể loại:vi:Thái Bình, Việt Nam]] 2259790 wikitext text/x-wiki [[Thể loại:Tỉnh của Việt Nam/Tiếng Việt]] [[Thể loại:Danh sách chủ đề thuộc nhóm liên quan/Tiếng Việt]] [[Thể loại:Thái Bình, Việt Nam|V]] 0jj5o43i8xhrnlu54l1en47u6cbvjlb 2351125 2351123 2026-05-07T14:45:33Z Hiyuune 50834 2351125 wikitext text/x-wiki [[Thể loại:vi:Tỉnh của Việt Nam]] [[Thể loại:vi:Danh sách chủ đề thuộc nhóm liên quan]] [[Thể loại:Thái Bình, Việt Nam|V]] 0j1dc00bl3yed5vrc2mxavwi5q2kqq4 Thể loại:ar:Địa danh của Pháp 14 356152 2351129 2260694 2026-05-07T14:46:52Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh của Pháp/Tiếng Ả Rập]] thành [[Thể loại:ar:Địa danh của Pháp]] 2260694 wikitext text/x-wiki [[Thể loại:Pháp/Tiếng Ả Rập]] [[Thể loại:Địa danh/Tiếng Ả Rập|P]] [[Thể loại:Danh sách chủ đề thuộc nhóm tên gọi/Tiếng Ả Rập]] [[Thể loại:Địa danh của Pháp|A]] lrceadecv0ufiqbkqsnzrfgwr9nfcqe 2351131 2351129 2026-05-07T14:47:17Z Hiyuune 50834 2351131 wikitext text/x-wiki [[Thể loại:ar:Pháp]] [[Thể loại:ar:Địa danh|P]] [[Thể loại:ar:Danh sách chủ đề thuộc nhóm tên gọi]] [[Thể loại:Địa danh của Pháp|A]] du8byn4di22pv7crvkkst0jk20c3a8x Thể loại:ar:Địa danh 14 356153 2351132 2260695 2026-05-07T14:47:24Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh/Tiếng Ả Rập]] thành [[Thể loại:ar:Địa danh]] 2260695 wikitext text/x-wiki [[Thể loại:Tên/Tiếng Ả Rập]] [[Thể loại:Danh sách chủ đề thuộc nhóm tên gọi/Tiếng Ả Rập]] [[Thể loại:Địa danh|A]] 1p1dcbuo2e2wkjiwd19vu01cullm0vw 2351134 2351132 2026-05-07T14:47:37Z Hiyuune 50834 Thay cả nội dung bằng “{{auto cat}}” 2351134 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:ja:California, Hoa Kỳ 14 356268 2351144 2260858 2026-05-07T14:50:25Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:California, Hoa Kỳ/Tiếng Nhật]] thành [[Thể loại:ja:California, Hoa Kỳ]] 2260858 wikitext text/x-wiki [[Thể loại:Tiểu bang của Hoa Kỳ/Tiếng Nhật|C]] [[Thể loại:Danh sách chủ đề thuộc nhóm liên quan/Tiếng Nhật|C]] [[Thể loại:California, Hoa Kỳ|N]] p4fzcx540l7ayhojz17sqbyupvwg7vt 2351146 2351144 2026-05-07T14:50:56Z Hiyuune 50834 2351146 wikitext text/x-wiki [[Thể loại:en:Tiểu bang của Hoa Kỳ|C]] [[Thể loại:en:Danh sách chủ đề thuộc nhóm liên quan|C]] [[Thể loại:California, Hoa Kỳ|N]] bvvjyuggwmww0haa8wjt0mo6cr7pgja Thể loại:ja:Địa danh của California, Hoa Kỳ 14 358285 2351141 2266338 2026-05-07T14:49:44Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh của California, Hoa Kỳ/Tiếng Nhật]] thành [[Thể loại:ja:Địa danh của California, Hoa Kỳ]] 2266338 wikitext text/x-wiki [[Thể loại:California, Hoa Kỳ/Tiếng Nhật]] [[Thể loại:Địa danh của Hoa Kỳ/Tiếng Nhật]] [[Thể loại:Danh sách chủ đề thuộc nhóm tên gọi/Tiếng Nhật]] [[Thể loại:Địa danh của California, Hoa Kỳ|N]] mva3hacrfz9ymoihnv6el5tjm59qlx7 2351143 2351141 2026-05-07T14:50:06Z Hiyuune 50834 2351143 wikitext text/x-wiki [[Thể loại:ja:California, Hoa Kỳ]] [[Thể loại:ja:Địa danh của Hoa Kỳ]] [[Thể loại:ja:Danh sách chủ đề thuộc nhóm tên gọi]] [[Thể loại:Địa danh của California, Hoa Kỳ|N]] 7fcdj1h62r541ogu8c1qa12zoggavru Thể loại:ja:Địa danh của Myanmar 14 358634 2351135 2267638 2026-05-07T14:48:10Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh của Myanmar/Tiếng Nhật]] thành [[Thể loại:ja:Địa danh của Myanmar]] 2267638 wikitext text/x-wiki [[Thể loại:Myanmar/Tiếng Nhật]] [[Thể loại:Địa danh/Tiếng Nhật]] [[Thể loại:Danh sách chủ đề thuộc nhóm tên gọi/Tiếng Nhật]] [[Thể loại:Địa danh của Myanmar|N]] q1jwu9olhpcml106ffc7rpcj4zgbbhm 2351137 2351135 2026-05-07T14:48:32Z Hiyuune 50834 2351137 wikitext text/x-wiki [[Thể loại:ja:Myanmar]] [[Thể loại:ja:Địa danh]] [[Thể loại:ja:Danh sách chủ đề thuộc nhóm tên gọi]] [[Thể loại:Địa danh của Myanmar|N]] abf9q78udgpfjpu5dtkk27nogzu70no đâng 0 381136 2351092 2350622 2026-05-07T14:07:34Z TheHighFighter2 42988 2351092 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "dang"}} =={{langname|vi}}== {{wp}} [[Tập tin:Rhizopora stylosa Found in Mangrove of Cilintang, Taman Nasional Ujung Kulon, Banten.jpg|nhỏ|Cây '''đâng''' trong {{w|vườn quốc gia Ujung Kulon}}, [[Java]].]] ==={{ĐM|pron}}=== {{vi-IPA}} ==={{ĐM|noun}}=== {{vi-noun|cls=cây}} # {{taxlink|Rhizophora stylosa|loài}}, một loài [[cây thân gỗ]] có kích thước từ nhỏ cho đến trung bình, thường mọc ở vùng ven biển ngập mặn. #* {{quote-web|vi|url=https://baoquangninh.vn/dau-xua-hon-gai-2356674.html|date=09-09-2017|title=Dấu xưa Hòn Gai|author=Nguyễn Gia Phong|site=Quảng Ninh điện tử|passage=Vụng '''Đâng''' chỉ là một vụng nhỏ bên bờ Cửa Lục, có cây '''đâng''' được ngư dân bóc vỏ nấu thành một thứ nước màu nâu để nhuộm buồm.}} ===={{ĐM|syn}}==== * {{l|vi|đước vòi}} * {{l|vi|đước chằng}} ===={{ĐM|trans}}==== {{trans-top|''Rhizophora stylosa''}} * {{langname|en}}: {{t|en|spotted mangrove}}, {{t|en|red mangrove}}, {{t|en|small stilted mangrove}}, {{t|en|stilt-root mangrove}} {{trans-bottom}} =={{langname|tyz}}== ==={{ĐM|pron}}=== * {{tyz-IPA}} ==={{ĐM|prep}}=== {{tyz-prep}} # [[trong|Trong]]. #: {{uxi|tyz|chang '''đâng'''|bên '''trong'''}} #: {{uxi|tyz|'''đâng''' rườn|'''trong''' nhà}} #: {{ux|tyz|Đây noọc đoóc '''đâng'''.|Ngoài thì tốt, mục nát bên '''trong'''.}} ===={{ĐM|syn}}==== * {{l|tyz|đâư}} ===={{ĐM|ref}}==== * {{R:tyz:Hoàng Văn Ma, Lục Văn Pảo, Hoàng Chí}} * {{R:tyz:Lương Bèn}} * {{R:tyz:tdcnt}} m4e4yd2hh58mfgo5cwktfatcxdexo8r Thể loại:vi:Quốc gia của châu Á 14 384831 2351305 2330311 2026-05-08T06:35:08Z TheHighFighter2 42988 TheHighFighter2 đã đổi [[Thể loại:vi:Quốc gia của Châu Á]] thành [[Thể loại:vi:Quốc gia của châu Á]] (đã tắt đổi hướng) 2330311 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx ペルシア 0 386509 2351291 2333529 2026-05-08T06:05:40Z TheHighFighter2 42988 2351291 wikitext text/x-wiki =={{langname|ja}}== {{swp|ja:}} ==={{ĐM|alter form}}=== * {{ja-r|^ペルシャ}} ==={{ĐM|etym}}=== Từ {{bor|ja|en|Persia}}. ==={{ĐM|pron}}=== {{ja-pron}} ==={{ĐM|pr-noun}}=== {{ja-pos|proper}} # {{lb|ja|historical}} [[Ba Tư]]. ===={{ĐM|see also}}==== * {{ja-r|^イラン}} {{C|ja|Ba Tư|Quốc gia của châu Á}} 6j68rir6vrnp6584h8c6gu0wz9j37ca パレスチナ 0 386511 2351290 2333527 2026-05-08T06:05:10Z TheHighFighter2 42988 2351290 wikitext text/x-wiki =={{langname|ja}}== {{swp|ja:}} ==={{ĐM|alter form}}=== * {{ja-r|^パレスティナ}} ==={{ĐM|etym}}=== {{lbor|ja|la|Palaestīna}}.<ref>{{R:Daijisen}}</ref><ref>{{R:Kojien}}</ref> ==={{ĐM|pron}}=== {{ja-pron|acc=2|acc2=3|acc_ref=SMK5|acc2_ref=SMK5|devm=3}} ==={{ĐM|pr-noun}}=== {{ja-pos|proper}} # {{place|ja|quốc gia|cont/châu Á|t=Palestine}}. ===={{ĐM|derived}}==== * {{ja-r|パレスチナ国|^パレスチナ-こく|[[Nhà nước Palestine]]}} ==={{ĐM|ref}}=== <references/> {{c|ja|Palestine|Quốc gia của châu Á}} mjbaai29g478d3w7xrg8d204nz36dld Thể loại:Quốc gia của châu Á 14 391803 2351309 2343275 2026-05-08T06:40:56Z TheHighFighter2 42988 TheHighFighter2 đã đổi [[Thể loại:Quốc gia của Châu Á]] thành [[Thể loại:Quốc gia của châu Á]] (đã tắt đổi hướng) 2343275 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx sarkofago 0 395919 2351221 2350416 2026-05-08T01:15:03Z Hiyuune 50834 /* Tiếng Quốc tế ngữ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]) 2351221 wikitext text/x-wiki =={{langname|io}}== ==={{section|n}}=== {{io-noun|sarkofag}} # [[quách|Quách]]. =={{langname|eo}}== {{wikipedia|eo:}} [[File:Sarcophagus.jpg|thumb|Sarkofago]] ==={{section|etym}}=== Từ {{etym-bor|eo|la|sarcophagus}}. ==={{section|pron}}=== {{eo-IPA|a=LL-Q143 (epo)-Lepticed7-sarkofago.wav}} ==={{section|n}}=== {{eo-head}} # [[quách|Quách]]. ===={{section|drv}}==== * {{l|eo|sarkofaga}} an6192o4f1g54zba0ita5vxquyooizd Bản mẫu:es-prop 10 395990 2351094 2026-05-07T14:18:48Z TheHighFighter2 42988 Đổi hướng đến [[Bản mẫu:es-proper noun]] 2351094 wikitext text/x-wiki #đổi [[Bản mẫu:es-proper noun]] 50kmmyjqadugl23tkfqxhrbumch8w86 Thể loại:Vần tiếng Catalan/anes 14 395993 2351102 2026-05-07T14:22:29Z Kelly zhrm 58416 Kelly zhrm đã đổi [[Thể loại:Vần tiếng Catalan/anes]] thành [[Thể loại:Vần:Tiếng Catalan/anes]] 2351102 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:Vần:Tiếng Catalan/anes}} kgl1hn5ui78tbaz2ezteqsy4vl5xbj0 Thể loại:Vần:Tiếng Catalan/anes/5 âm tiết 14 395994 2351104 2026-05-07T14:23:55Z Kelly zhrm 58416 Trang mới: “{{auto cat}}” 2351104 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Bản mẫu:acronym 10 395995 2351110 2026-05-07T14:40:16Z TheHighFighter2 42988 Trang mới: “{{#invoke:etymology/templates|misc_variant|text=[[Phụ lục:Từ điển thuật ngữ#acronym|{{#if:{{{nocap|}}}|v|V}}iết tắt chữ đầu loại đọc thành từ]]|cat=Viết tắt chữ đầu loại đọc thành từ|conj=hoặc}}<noinclude>{{documentation}}</noinclude>” 2351110 wikitext text/x-wiki {{#invoke:etymology/templates|misc_variant|text=[[Phụ lục:Từ điển thuật ngữ#acronym|{{#if:{{{nocap|}}}|v|V}}iết tắt chữ đầu loại đọc thành từ]]|cat=Viết tắt chữ đầu loại đọc thành từ|conj=hoặc}}<noinclude>{{documentation}}</noinclude> 384p7vm9xxcec53wa88wh9uli317sqo Thể loại:Địa danh của Trung Quốc/Tiếng Bala 14 395996 2351112 2026-05-07T14:42:05Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh của Trung Quốc/Tiếng Bala]] thành [[Thể loại:tuw-bal:Địa danh của Trung Quốc]] 2351112 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:tuw-bal:Địa danh của Trung Quốc}} c7bm7qmuflnqu4z82w3unw6a76rah2a Thể loại:Địa danh/Tiếng Bala 14 395997 2351114 2026-05-07T14:42:16Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh/Tiếng Bala]] thành [[Thể loại:tuw-bal:Địa danh]] 2351114 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:tuw-bal:Địa danh}} h04smhfprv8747celhi1ja5peiihvbr Thể loại:Địa danh của Tokyo/Tiếng Anh 14 395998 2351118 2026-05-07T14:43:41Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh của Tokyo/Tiếng Anh]] thành [[Thể loại:en:Địa danh của Tokyo]] 2351118 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:en:Địa danh của Tokyo}} ee65f68i3ehpbvnj88lj5hrre18rs8u Thể loại:Địa danh của Thái Bình, Việt Nam/Tiếng Việt 14 395999 2351121 2026-05-07T14:44:24Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh của Thái Bình, Việt Nam/Tiếng Việt]] thành [[Thể loại:vi:Địa danh của Thái Bình, Việt Nam]] 2351121 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:vi:Địa danh của Thái Bình, Việt Nam}} 7c7yrk9dtvx6s09fbt1zmmz5tajmpyn Thể loại:Thái Bình, Việt Nam/Tiếng Việt 14 396000 2351124 2026-05-07T14:45:15Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Thái Bình, Việt Nam/Tiếng Việt]] thành [[Thể loại:vi:Thái Bình, Việt Nam]] 2351124 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:vi:Thái Bình, Việt Nam}} ml0ia4nlqfm581nujcdhlszd9aykf63 Thể loại:Địa danh của Shizuoka, Nhật Bản/Tiếng Nhật 14 396001 2351127 2026-05-07T14:45:49Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh của Shizuoka, Nhật Bản/Tiếng Nhật]] thành [[Thể loại:ja:Địa danh của Shizuoka, Nhật Bản]] 2351127 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:ja:Địa danh của Shizuoka, Nhật Bản}} iai3bb7odtfsrlgdvq7fqwp1yl6zhur Thể loại:Địa danh của Pháp/Tiếng Ả Rập 14 396002 2351130 2026-05-07T14:46:52Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh của Pháp/Tiếng Ả Rập]] thành [[Thể loại:ar:Địa danh của Pháp]] 2351130 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:ar:Địa danh của Pháp}} 57zf6b4sfvltuywhkznk78k1nxf58t6 Thể loại:Địa danh/Tiếng Ả Rập 14 396003 2351133 2026-05-07T14:47:24Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh/Tiếng Ả Rập]] thành [[Thể loại:ar:Địa danh]] 2351133 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:ar:Địa danh}} od3d0iuw4e3x0o1ynyhuhnyoqkstavt Thể loại:Địa danh của Myanmar/Tiếng Nhật 14 396004 2351136 2026-05-07T14:48:10Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh của Myanmar/Tiếng Nhật]] thành [[Thể loại:ja:Địa danh của Myanmar]] 2351136 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:ja:Địa danh của Myanmar}} bhc4z1j2htd0ybpsiyazu2to695d9nz Thể loại:Myanmar/Tiếng Nhật 14 396005 2351139 2026-05-07T14:48:58Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Myanmar/Tiếng Nhật]] thành [[Thể loại:ja:Myanmar]] 2351139 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:ja:Myanmar}} ohwnf4z2i3cqlzakxtefkf4omak1cnh Thể loại:Địa danh của California, Hoa Kỳ/Tiếng Nhật 14 396006 2351142 2026-05-07T14:49:44Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Địa danh của California, Hoa Kỳ/Tiếng Nhật]] thành [[Thể loại:ja:Địa danh của California, Hoa Kỳ]] 2351142 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:ja:Địa danh của California, Hoa Kỳ}} 7uzsvcthsb63jno8w22zvj2ieh9yihq Thể loại:California, Hoa Kỳ/Tiếng Nhật 14 396007 2351145 2026-05-07T14:50:25Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:California, Hoa Kỳ/Tiếng Nhật]] thành [[Thể loại:ja:California, Hoa Kỳ]] 2351145 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:ja:California, Hoa Kỳ}} jikh0tnghdr1dsmrgld74fneedun0e4 Thể loại:alj:Mưa 14 396008 2351149 2026-05-07T14:53:53Z Hiyuune 50834 Trang mới: “{{auto cat}}” 2351149 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:alj:Thời tiết 14 396009 2351150 2026-05-07T14:54:17Z Hiyuune 50834 Trang mới: “{{auto cat}}” 2351150 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:alj:Khí quyển 14 396010 2351151 2026-05-07T14:54:42Z Hiyuune 50834 Trang mới: “{{auto cat}}” 2351151 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx abdicare 0 396011 2351153 2026-05-07T15:07:36Z Hiyuune 50834 Trang mới: “{{also|abdicaré}} =={{langname|la}}== {{etymon|la|abdicō}} ==={{section|v}}=== {{head|la|Biến thể hình thái động từ|head=abdicāre}} # {{inflection of|la|[[abdicō|abdicō, abdicāre]]||pres|actv|ở|inf|;|imp//indc|pres|pass|ở|2|s}} ==={{section|v}}=== {{head|la|Biến thể hình thái động từ|head=abdīcāre}} # {{inflection of|la|[[abdīcō|abdīcō, abdīcere]]||subj|pres|pass|ở|2s}} =={{langname|it}}== ==={{section|etym}}=== {{etymon|it|:…” 2351153 wikitext text/x-wiki {{also|abdicaré}} =={{langname|la}}== {{etymon|la|abdicō}} ==={{section|v}}=== {{head|la|Biến thể hình thái động từ|head=abdicāre}} # {{inflection of|la|[[abdicō|abdicō, abdicāre]]||pres|actv|ở|inf|;|imp//indc|pres|pass|ở|2|s}} ==={{section|v}}=== {{head|la|Biến thể hình thái động từ|head=abdīcāre}} # {{inflection of|la|[[abdīcō|abdīcō, abdīcere]]||subj|pres|pass|ở|2s}} =={{langname|it}}== ==={{section|etym}}=== {{etymon|it|:bor|la:abdicāre}} {{bor+|it|la|abdicāre}}. ==={{section|pron}}=== {{it-pr}} ==={{section|v}}=== {{it-verb|a/à}} {{tlb|it|intransitive}} # [[từ bỏ|Từ bỏ]]. # [[không|Không]] [[thừa nhận]] {{+obj|it|:a}} ===={{section|forms}}==== {{it-conj|a/à}} lax5l8num3icl8yobu2mpojqgr8umhw 2351154 2351153 2026-05-07T15:08:34Z Hiyuune 50834 /* Động từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]) 2351154 wikitext text/x-wiki {{also|abdicaré}} =={{langname|la}}== {{etymon|la|abdicō}} ==={{section|v}}=== {{head|la|Biến thể hình thái động từ|head=abdicāre}} # {{inflection of|la|[[abdicō|abdicō, abdicāre]]||pres|actv|ở|inf|;|imp//indc|pres|pass|ở|2|s}} ==={{section|v}}=== {{head|la|Biến thể hình thái động từ|head=abdīcāre}} # {{inflection of|la|[[abdīcō|abdīcō, abdīcere]]||subj|pres|pass|ở|2s}} =={{langname|es}}== ==={{section|v}}=== {{head|es|Biến thể hình thái động từ}} # {{es-verb form of|abdicar}} =={{langname|it}}== ==={{section|etym}}=== {{etymon|it|:bor|la:abdicāre}} {{bor+|it|la|abdicāre}}. ==={{section|pron}}=== {{it-pr}} ==={{section|v}}=== {{it-verb|a/à}} {{tlb|it|intransitive}} # [[từ bỏ|Từ bỏ]]. # [[không|Không]] [[thừa nhận]] {{+obj|it|:a}} ===={{section|forms}}==== {{it-conj|a/à}} 5dhs206pmqqoguczrg4qhgk8ujw89m2 commanditant 0 396012 2351156 2026-05-07T15:12:31Z Hiyuune 50834 Trang mới: “=={{langname|fr}}== ==={{section|ptcp}}=== {{head|fr|Phân từ hiện tại}} # {{present participle of|fr|commanditer}}” 2351156 wikitext text/x-wiki =={{langname|fr}}== ==={{section|ptcp}}=== {{head|fr|Phân từ hiện tại}} # {{present participle of|fr|commanditer}} qyty5yrmqaxrg6xcdc96iywlvtqdme3 commandité 0 396013 2351157 2026-05-07T15:13:10Z Hiyuune 50834 Trang mới: “=={{langname|fr}}== ==={{section|ptcp}}=== {{fr-past participle}} # {{past participle of|fr|commanditer}} ==={{section|further}}=== * {{R:fr:TLFi}}” 2351157 wikitext text/x-wiki =={{langname|fr}}== ==={{section|ptcp}}=== {{fr-past participle}} # {{past participle of|fr|commanditer}} ==={{section|further}}=== * {{R:fr:TLFi}} jx9k9gsi3zpctd84j6jhbdgoe1wa8m8 commanditée 0 396014 2351158 2026-05-07T15:13:56Z Hiyuune 50834 + fr 2351158 wikitext text/x-wiki =={{langname|fr}}== ==={{section|ptcp}}=== {{head|fr|Biến thể hình thái phân từ quá khứ|g=f-s}} # {{feminine singular of|fr|commandité}} ==={{section|further}}=== * {{R:fr:TLFi}} 9q1bm9u83722dbi9l8hxcyz28oavibd commandités 0 396015 2351159 2026-05-07T15:14:49Z Hiyuune 50834 + fr 2351159 wikitext text/x-wiki {{also|commandites}} =={{langname|fr}}== ==={{section|ptcp}}=== {{head|fr|Biến thể hình thái phân từ quá khứ|g=m-p}} # {{masculine plural of|fr|commandité}} 9wog1pomjmi9tqi1ch3t6oo4wzmuh0l commanditées 0 396016 2351160 2026-05-07T15:15:28Z Hiyuune 50834 + fr 2351160 wikitext text/x-wiki =={{langname|fr}}== ==={{section|ptcp}}=== {{head|fr|Biến thể hình thái phân từ quá khứ|g=f-p}} # {{feminine plural of|fr|commandité}} kibjrp04x14aepcdsnjblqnn5z5jnj6 commandites 0 396017 2351162 2026-05-07T15:20:35Z Hiyuune 50834 + fr 2351162 wikitext text/x-wiki {{also|commandités}} =={{langname|fr}}== ==={{section|v}}=== {{head|fr|Biến thể hình thái động từ}} # {{inflection of|fr|commanditer||ind//sub|pres|ở|2s}} kcii94nxwwaiewntimc537aa74gccea ସିଂହ 0 396018 2351163 2026-05-07T15:25:32Z Kelly zhrm 58416 Trang mới: “=={{langname|or}}== ==={{ĐM|etym}}=== Vay mượn từ {{bor|or|sa|सिंह}}, từ {{der|or|iir-pro|*sinȷ́ʰás}}, từ {{der|or|ine-pro|*sinǵʰo-}}. ==={{ĐM|pron}}=== {{or-IPA}} * {{audio|or|LL-Q33810 (ori)-Psubhashish-ସିଂହ.wav}} ==={{ĐM|n}}=== {{head|or|Danh từ}} # [[sư tử|Sư tử]].” 2351163 wikitext text/x-wiki =={{langname|or}}== ==={{ĐM|etym}}=== Vay mượn từ {{bor|or|sa|सिंह}}, từ {{der|or|iir-pro|*sinȷ́ʰás}}, từ {{der|or|ine-pro|*sinǵʰo-}}. ==={{ĐM|pron}}=== {{or-IPA}} * {{audio|or|LL-Q33810 (ori)-Psubhashish-ସିଂହ.wav}} ==={{ĐM|n}}=== {{head|or|Danh từ}} # [[sư tử|Sư tử]]. eir59jflj98h4menfasz54d5uh2rjxn commanditons 0 396019 2351164 2026-05-07T15:28:24Z Hiyuune 50834 + fr 2351164 wikitext text/x-wiki =={{langname|fr}}== ==={{section|v}}=== {{head|fr|Biến thể hình thái động từ}} # {{inflection of|fr|commanditer||indc|pres|ở|1p|;|impr|ở|1s}} 28vkg8qbdops30oortyl3ln3ub0f4m6 commanditez 0 396020 2351165 2026-05-07T15:30:22Z Hiyuune 50834 + fr 2351165 wikitext text/x-wiki =={{langname|fr}}== ==={{section|v}}=== {{head|fr|Biến thể hình thái động từ}} # {{inflection of|fr|commanditer||indc|pres|ở|2p|;|impr|ở|2p}} b73dkz4fiq9kd3jl2yailgib18yg7n5 commanditent 0 396021 2351166 2026-05-07T15:31:48Z Hiyuune 50834 + fr 2351166 wikitext text/x-wiki =={{langname|fr}}== ==={{section|v}}=== {{head|fr|Biến thể hình thái động từ}} # {{inflection of|fr|commanditer||ind//sub|pres|ở|3p}} ikk7mg9i5yi49oxaoko3s5v4v042fny commanditais 0 396022 2351167 2026-05-07T15:33:56Z Hiyuune 50834 + fr 2351167 wikitext text/x-wiki =={{langname|fr}}== ==={{section|v}}=== {{head|fr|Biến thể hình thái động từ}} # {{inflection of|fr|commanditer||indc|impf|ở|1//2|s}} 2925j7vszlkl0qdplvhw3oacuxretsv commanditait 0 396023 2351168 2026-05-07T15:35:14Z Hiyuune 50834 + fr 2351168 wikitext text/x-wiki =={{langname|fr}}== ==={{section|v}}=== {{head|fr|Biến thể hình thái động từ}} # {{inflection of|fr|commanditer||indc|impf|ở|3|s}} 5h6vl855xfa1rndwbyo8kocs3mpe8r6 Từ tái tạo:Tiếng Ấn-Iran nguyên thủy/sinȷ́ʰás 0 396024 2351169 2026-05-07T15:39:18Z Hiyuune 50834 Trang mới: “{{reconstructed}} =={{langname|iir-pro}}== ==={{section|n}}=== '''*sinȷ́ʰás''' {{g|m}}<ref>{{cite-book|author={{w|Michael Witzel|Witzel, Michael}}|title=Substrate Languages in Old Indo-Aryan (Ṛgvedic, Middle and Late Vedic)|url=http://www.randevu-zip.narod.ru/caucase/addon/substrat.pdf|year=1999}}</ref> {{cln|iir-pro|Mục từ|Danh từ|Danh từ giống đực}} # [[sư tử|Sư tử]]. ===={{section|decl}}==== {{iir-decl-noun}} ===={{section|desc}}==== * {{de…” 2351169 wikitext text/x-wiki {{reconstructed}} =={{langname|iir-pro}}== ==={{section|n}}=== '''*sinȷ́ʰás''' {{g|m}}<ref>{{cite-book|author={{w|Michael Witzel|Witzel, Michael}}|title=Substrate Languages in Old Indo-Aryan (Ṛgvedic, Middle and Late Vedic)|url=http://www.randevu-zip.narod.ru/caucase/addon/substrat.pdf|year=1999}}</ref> {{cln|iir-pro|Mục từ|Danh từ|Danh từ giống đực}} # [[sư tử|Sư tử]]. ===={{section|decl}}==== {{iir-decl-noun}} ===={{section|desc}}==== * {{desc|inc-pro|*sinźʰás}} ** {{desc|sa|सिंह|tr=siṁhá}} {{see desc}} ==={{section|ref}}=== * {{R:ine:EWAia|vol=II|page=727}} * {{cite-book|author={{w|Michael Witzel|Witzel, Michael}}|title=Aryan and non-Aryan names in Vedic India: data for the linguistic situation, c. 1900-500 BC|year=1999|url=http://www.people.fas.harvard.edu/~witzel/Lingsit.pdf|page=5}} <references /> {{C|iir-pro|Lớp Thú}} [[en:Reconstruction:Proto-Indo-Iranian/sinȷ́ʰás]] __HIDDENCAT__ {{catname|Trang có|đề mục ngôn ngữ}} {{catname|Trang có|1 đề mục ngôn ngữ}} dc9jtq32a4qvxer313m95dcmbnbgu97 Mô đun:iir-decl-noun 828 396025 2351170 2026-05-07T15:45:19Z Hiyuune 50834 Trang mới: “local export = {} local m_links = require("Module:links") local m_utils = require("Module:utilities") local decl_data = require("Module:iir-decl-noun/data") local decl_data_irreg = require("Module:iir-decl-noun/data/irreg") local lang = require("Module:languages").getByCode("iir-pro") local endings = { ["ás"] = "a-m", ["as"] = "a-m", ["ám"] = "a-n", ["am"] = "a-n", ["áH"] = "aH-f", ["aH"] = "aH-f", ["íš"] = "i-mf", ["iš"] = "i-mf", ["i"] = "i-n", ["íH"] = "y…” 2351170 Scribunto text/plain local export = {} local m_links = require("Module:links") local m_utils = require("Module:utilities") local decl_data = require("Module:iir-decl-noun/data") local decl_data_irreg = require("Module:iir-decl-noun/data/irreg") local lang = require("Module:languages").getByCode("iir-pro") local endings = { ["ás"] = "a-m", ["as"] = "a-m", ["ám"] = "a-n", ["am"] = "a-n", ["áH"] = "aH-f", ["aH"] = "aH-f", ["íš"] = "i-mf", ["iš"] = "i-mf", ["i"] = "i-n", ["íH"] = "yaH-f", ["iH"] = "yaH-f", ["íHs"] = "iH-f", ["iHs"] = "iH-f", ["úš"] = "u-mf", ["uš"] = "u-mf", ["ú"] = "u-n", ["u"] = "u-n", ["úHs"] = "uH-f", ["uHs"] = "uH-f", } local endings_reverse = { ["a-m"] = "ás", ["a-m"] = "as", ["a-n"] = "ám", ["a-n"] = "am", ["aH-f"] = "áH", ["aH-f"] = "aH", ["i-mf"] = "íš", ["i-mf"] = "iš", ["i-m"] = "íš", ["i-m"] = "iš", ["i-f"] = "íš", ["i-f"] = "iš", ["i-n"] = "i", ["yaH-f"] = "íH", ["yaH-f"] = "iH", ["iH-f"] = "íHs", ["iH-f"] = "iHs", ["u-mf"] = "uš", ["u-m"] = "uš", ["u-f"] = "uš", ["u-n"] = "u", ["uH-f"] = "úHs", ["uH-f"] = "uHs", ["r-n"] = "ā́", ["r-n"] = "ā", ["cons-n"] = "", } local function detect_decl(word, stem, gender) if stem and gender then local decl = stem .. "-" .. gender return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(endings_reverse[decl]) + 1))} elseif stem == "r" and mw.ustring.sub(word, -2) == "ā́" then --r-stem return "r-n", {mw.ustring.sub(word, 1, -3)} elseif stem == "s" and mw.ustring.sub(word, -2) == "as" then return "s-n", {mw.ustring.sub(word, 1, -3)} elseif stem == "cons" then if gender == "n" then return "cons-n" else return "cons-mf" end else for ending, decl in pairs(endings) do if mw.ustring.find(word, ending .. "$") then return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(ending) + 1))} end end -- No matches, assume consonant stem. local stem stem = mw.ustring.sub(word, 1, -2) return (gender and "cons-" .. gender or "cons-mf"), {stem} end end function syllabify(text) -- Supposed to syllabify resonants when appropriate if mw.ustring.find(text, "[ʰmnrsšHptćčkbdȷǰgw][ȷ́]?[u]?[mnrŕwy][ʰmnrsšHptćčkbdȷǰg][ȷ́]?") then local pref, syllabic, suf = mw.ustring.match(text, "([ʰmnrsšHptćčkbdȷǰgw][ȷ́]?)([u]?[mnrŕwy])([ʰmnrsšHptćčkbdȷǰg][ȷ́]?)") syllabic = syllabic:gsub("[mn]", "a") :gsub("w", "u") :gsub("y", "i") :gsub("ua", "wa") syllabic = mw.ustring.gsub(syllabic, "[rŕ]", {["r"] = "r̥", ["ŕ"] = "ŕ̥"}) local syllabified = pref .. syllabic .. suf text = mw.ustring.gsub(text, "[ʰmnrsšHptćčkbdȷǰgw][ȷ́]?[u]?[mnrŕwy][ʰmnrsšHptćčkbdȷǰg][ȷ́]?", syllabified) end if mw.ustring.find(text, "iw[ʰmnsšHptćčkbdȷǰg][ȷ́]?") then text = text:gsub("iw", "yu") end if mw.ustring.find(text, "ŕ[aāáiíuú]") then text = mw.ustring.gsub(text, "ŕ", "r") end if mw.ustring.find(text, "[ʰmnrsšHptćčkbdȷǰgw][ȷ́]?[wyr]$") then text = mw.ustring.gsub(text, "[wyr]$", {["w"] = "u", ["y"] = "i", ["r"] = "r̥"}) end return text end function ruki(text) text = mw.ustring.gsub(text, "[rŕwukćčǰȷyisšbd][ŕ̥]?ʰ?s", { ["rs"] = "rš", ["r̥s"] = "r̥š", ["ŕ̥s"] = "ŕ̥š", ["ws"] = "wš", ["us"] = "uš", ["ks"] = "kš", ["ćs"] = "ćš", ["ǰs"] = "kš", ["ys"] = "yš", ["is"] = "iš", ["ss"] = "s", ["šs"] = "š", ["čs"] = "kš", ["ǰʰs"] = "kš", ["ȷ́s"] = "ćš", ["ȷ́ʰs"] = "ćš", ["ds"] = "ts", ["dʰs"] = "ts", ["bʰs"] = "ps" }) return text end function dorsal_b(text) text = mw.ustring.gsub(text, "[kčǰ]ʰ?b", "gb") text = mw.ustring.gsub(text, "[ćptšs]b", { ["ćb"] = "ȷ́b", ["pb"] = "bb", ["tb"] = "db", ["sb"] = "zb", ["šb"] = "žb" }) return text end function destress(text) -- Suppresses default ending accent if accent is detected on a preceding stem. -- It does this by checking the provided form to see if it has two accents. If the form does have two accents, the rightmost accent is isolated and removed. -- The little mark on ȷ́ is identical to the combining accent mark; it needs to be ignored during the accent check. text = text:gsub("ȷ́", "ȷ") if mw.ustring.find(text, "[áíúŕ́].+[áíúŕ́]") then local initial, final = mw.ustring.match(text, "^(.-[áíúŕ́])(.*)") final = mw.ustring.gsub(final, "[áíúŕ́]", {["á"] = "a", ["í"] = "i", ["ú"] = "u", ["ŕ"] = "r", ["́"] = ""}) text = initial .. final end -- Suppress default ending accent if the page name has no accent specified local word = mw.loadData("Module:headword/data").pagename local jword = word:gsub("ȷ́", "ȷ") if not mw.ustring.find(jword, "[áíúŕ́]") then text = mw.ustring.gsub(text, "[áíúŕ́]", {["á"] = "a", ["í"] = "i", ["ú"] = "u", ["ŕ"] = "r", ["́"] = ""}) end -- Readd accent mark to the resulting dotless J after the accent check text = text:gsub("ȷ", "ȷ́") return text end function vocstem(stem) -- Enforces first-syllable accent in vocatives. -- It does this by checking to see if a form has no accent. -- Vocatives in the data submodule specifically have no accent specified on their endings, so unaccented stem + unaccented ending = unaccented word. -- If there is no accent, the function parks the accent on the first available vowel. local vocstem if not mw.ustring.find(stem, "[áóÁíúŕ́]") then if mw.ustring.find(stem, "^[ʰmnrsšHptćčkbdȷ́ǰwg]-r̥") then local pref, suf = mw.ustring.match(stem, "^([ʰmnrsšHptćčkbdȷ́ǰwg]-r̥)(.+)") pref = mw.ustring.gsub(pref, "r̥$", "ŕ̥") vocstem = pref .. suf else local pref, firstvowel, suf = mw.ustring.match(stem, "^(.-)([aāiu])(.*)") firstvowel = mw.ustring.gsub(firstvowel, "[aāiu]", {["a"] = "á", ["ā"] = "ā́", ["i"] = "í", ["u"] = "ú"}) vocstem = pref .. firstvowel .. suf end else vocstem = stem end return vocstem end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local parent_args = frame:getParent().args local stems = nil local decl_type = {} local word = mw.loadData("Module:headword/data").pagename local args = {} if not decl_data_irreg[word] then if frame.args.decl then decl_type = frame.args.decl else if parent_args.stem and parent_args.g and parent_args[1] then decl_type = parent_args.stem .. "-" .. parent_args.g stems = {parent_args[1]} elseif parent_args[1] and not parent_args.stem then decl_type = detect_decl(word, parent_args.stem, parent_args.g) stems = {parent_args[1]} else decl_type, stems = detect_decl(word, parent_args.stem, parent_args.g) end end if not decl_type then error("Unknown declension '" .. decl_type .. "'") end args = require("Module:parameters").process(parent_args, decl_data[decl_type].params, true) if stems then for i, stem in ipairs(stems) do args[i] = stem end end end local data = {forms = {}, categories = {}} data.head = parent_args["head"] or nil -- Generate the forms if decl_data_irreg[word] then table.insert(data.categories, "Danh từ bất quy tắc tiếng Ấn-Iran nguyên thủy") decl_data_irreg[word](parent_args, data) else decl_data[decl_type](args, data) end -- Make the table return make_table(data) end function make_table(data) local function show_form(form) if not form then return "—" end local ret = {} for key, subform in ipairs(form) do if subform ~= "—" then -- Post-processing of data subform = syllabify(subform) subform = ruki(subform) subform = dorsal_b(subform) subform = vocstem(subform) subform = destress(subform) subform = "*" .. subform end table.insert(ret, subform) end return table.concat(ret, ", ") end local function repl(param) if param == "decl_type" then return data.decl_type elseif param == "title" then return "*" .. data.forms.nom_sg[1] else return show_form(data.forms[param]) end end local function make_cases(data) local cases = {"nominative", "vocative", "accusative", "instrumental", "ablative", "dative", "genitive", "locative"} local ret = {} for _, case in ipairs(cases) do local case_short = mw.ustring.sub(case, 1, 3) -- assert(false, case_short) table.insert(ret, "|- " .. ((case_short == "nom" or case_short == "gen") and "" or "class=\"vsHide\"") .. " \n! style=\"background:var(--wikt-palette-lighterblue);color:inherit\" | " .. case .. "\n") table.insert(ret, "| style=\"background:var(--wikt-palette-lavender);color:inherit\" | " .. show_form(data.forms[case_short .. "_sg"]) .. "\n") table.insert(ret, "| class=\"vsHide\" style=\"background:var(--wikt-palette-lavender);color:inherit\" | " .. show_form(data.forms[case_short .. "_du"]) .. "\n") if data.forms[case_short .. "_pl"] then table.insert(ret, "| class=\"vsHide\" style=\"background:var(--wikt-palette-lavender);color:inherit\" | " .. show_form(data.forms[case_short .. "_pl"]) .. "\n") end end return table.concat(ret) end local no_plural = data.forms.nom_pl == nil local wikicode = [=[ {| class="inflection-table vsSwitcher" data-toggle-category="inflection" style="background:var(--wikt-palette-white);color:inherit; border: 1px solid var(--wikt-palette-lightgrey); text-align: left;" cellspacing="1" cellpadding="2" |- ! style="background:var(--wikt-palette-lightblue);color:inherit;" class="vsToggleElement" colspan="]=] .. (no_plural and "3" or "4") .. [=[" | {{{decl_type}}} |- | style="min-width: 8em; background:var(--wikt-palette-lightblue);color:inherit" | ! style="min-width: 11em; background:var(--wikt-palette-lightblue);color:inherit" | số ít ! class="vsHide" style="min-width: 11em; background:var(--wikt-palette-lightblue);color:inherit" | số đôi]=] .. (no_plural and "\n" or [=[ ! class="vsHide" style="min-width: 11em; background:var(--wikt-palette-lightblue);color:inherit" | số nhiều ]=]) .. make_cases(data) .. [=[ |}]=] return (mw.ustring.gsub(wikicode, "{{{([a-z0-9_]+)}}}", repl)) .. m_utils.format_categories(data.categories, lang) end return export sjxa6d16hfwhb6xt9jhogy7s0j5arvj 2351174 2351170 2026-05-07T15:55:28Z Hiyuune 50834 2351174 Scribunto text/plain local export = {} local m_links = require("Module:links") local m_utils = require("Module:utilities") local decl_data = require("Module:iir-decl-noun/data") local decl_data_irreg = require("Module:iir-decl-noun/data/irreg") local lang = require("Module:languages").getByCode("iir-pro") local endings = { ["ás"] = "a-m", ["as"] = "a-m", ["ám"] = "a-n", ["am"] = "a-n", ["áH"] = "aH-f", ["aH"] = "aH-f", ["íš"] = "i-mf", ["iš"] = "i-mf", ["i"] = "i-n", ["íH"] = "yaH-f", ["iH"] = "yaH-f", ["íHs"] = "iH-f", ["iHs"] = "iH-f", ["úš"] = "u-mf", ["uš"] = "u-mf", ["ú"] = "u-n", ["u"] = "u-n", ["úHs"] = "uH-f", ["uHs"] = "uH-f", } local endings_reverse = { ["a-m"] = "ás", ["a-m"] = "as", ["a-n"] = "ám", ["a-n"] = "am", ["aH-f"] = "áH", ["aH-f"] = "aH", ["i-mf"] = "íš", ["i-mf"] = "iš", ["i-m"] = "íš", ["i-m"] = "iš", ["i-f"] = "íš", ["i-f"] = "iš", ["i-n"] = "i", ["yaH-f"] = "íH", ["yaH-f"] = "iH", ["iH-f"] = "íHs", ["iH-f"] = "iHs", ["u-mf"] = "uš", ["u-m"] = "uš", ["u-f"] = "uš", ["u-n"] = "u", ["uH-f"] = "úHs", ["uH-f"] = "uHs", ["r-n"] = "ā́", ["r-n"] = "ā", ["cons-n"] = "", } local function detect_decl(word, stem, gender) if stem and gender then local decl = stem .. "-" .. gender return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(endings_reverse[decl]) + 1))} elseif stem == "r" and mw.ustring.sub(word, -2) == "ā́" then --r-stem return "r-n", {mw.ustring.sub(word, 1, -3)} elseif stem == "s" and mw.ustring.sub(word, -2) == "as" then return "s-n", {mw.ustring.sub(word, 1, -3)} elseif stem == "cons" then if gender == "n" then return "cons-n" else return "cons-mf" end else for ending, decl in pairs(endings) do if mw.ustring.find(word, ending .. "$") then return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(ending) + 1))} end end -- No matches, assume consonant stem. local stem stem = mw.ustring.sub(word, 1, -2) return (gender and "cons-" .. gender or "cons-mf"), {stem} end end function syllabify(text) -- Supposed to syllabify resonants when appropriate if mw.ustring.find(text, "[ʰmnrsšHptćčkbdȷǰgw][ȷ́]?[u]?[mnrŕwy][ʰmnrsšHptćčkbdȷǰg][ȷ́]?") then local pref, syllabic, suf = mw.ustring.match(text, "([ʰmnrsšHptćčkbdȷǰgw][ȷ́]?)([u]?[mnrŕwy])([ʰmnrsšHptćčkbdȷǰg][ȷ́]?)") syllabic = syllabic:gsub("[mn]", "a") :gsub("w", "u") :gsub("y", "i") :gsub("ua", "wa") syllabic = mw.ustring.gsub(syllabic, "[rŕ]", {["r"] = "r̥", ["ŕ"] = "ŕ̥"}) local syllabified = pref .. syllabic .. suf text = mw.ustring.gsub(text, "[ʰmnrsšHptćčkbdȷǰgw][ȷ́]?[u]?[mnrŕwy][ʰmnrsšHptćčkbdȷǰg][ȷ́]?", syllabified) end if mw.ustring.find(text, "iw[ʰmnsšHptćčkbdȷǰg][ȷ́]?") then text = text:gsub("iw", "yu") end if mw.ustring.find(text, "ŕ[aāáiíuú]") then text = mw.ustring.gsub(text, "ŕ", "r") end if mw.ustring.find(text, "[ʰmnrsšHptćčkbdȷǰgw][ȷ́]?[wyr]$") then text = mw.ustring.gsub(text, "[wyr]$", {["w"] = "u", ["y"] = "i", ["r"] = "r̥"}) end return text end function ruki(text) text = mw.ustring.gsub(text, "[rŕwukćčǰȷyisšbd][ŕ̥]?ʰ?s", { ["rs"] = "rš", ["r̥s"] = "r̥š", ["ŕ̥s"] = "ŕ̥š", ["ws"] = "wš", ["us"] = "uš", ["ks"] = "kš", ["ćs"] = "ćš", ["ǰs"] = "kš", ["ys"] = "yš", ["is"] = "iš", ["ss"] = "s", ["šs"] = "š", ["čs"] = "kš", ["ǰʰs"] = "kš", ["ȷ́s"] = "ćš", ["ȷ́ʰs"] = "ćš", ["ds"] = "ts", ["dʰs"] = "ts", ["bʰs"] = "ps" }) return text end function dorsal_b(text) text = mw.ustring.gsub(text, "[kčǰ]ʰ?b", "gb") text = mw.ustring.gsub(text, "[ćptšs]b", { ["ćb"] = "ȷ́b", ["pb"] = "bb", ["tb"] = "db", ["sb"] = "zb", ["šb"] = "žb" }) return text end function destress(text) -- Suppresses default ending accent if accent is detected on a preceding stem. -- It does this by checking the provided form to see if it has two accents. If the form does have two accents, the rightmost accent is isolated and removed. -- The little mark on ȷ́ is identical to the combining accent mark; it needs to be ignored during the accent check. text = text:gsub("ȷ́", "ȷ") if mw.ustring.find(text, "[áíúŕ́].+[áíúŕ́]") then local initial, final = mw.ustring.match(text, "^(.-[áíúŕ́])(.*)") final = mw.ustring.gsub(final, "[áíúŕ́]", {["á"] = "a", ["í"] = "i", ["ú"] = "u", ["ŕ"] = "r", ["́"] = ""}) text = initial .. final end -- Suppress default ending accent if the page name has no accent specified local word = mw.loadData("Module:headword/data").pagename local jword = word:gsub("ȷ́", "ȷ") if not mw.ustring.find(jword, "[áíúŕ́]") then text = mw.ustring.gsub(text, "[áíúŕ́]", {["á"] = "a", ["í"] = "i", ["ú"] = "u", ["ŕ"] = "r", ["́"] = ""}) end -- Readd accent mark to the resulting dotless J after the accent check text = text:gsub("ȷ", "ȷ́") return text end function vocstem(stem) -- Enforces first-syllable accent in vocatives. -- It does this by checking to see if a form has no accent. -- Vocatives in the data submodule specifically have no accent specified on their endings, so unaccented stem + unaccented ending = unaccented word. -- If there is no accent, the function parks the accent on the first available vowel. local vocstem if not mw.ustring.find(stem, "[áóÁíúŕ́]") then if mw.ustring.find(stem, "^[ʰmnrsšHptćčkbdȷ́ǰwg]-r̥") then local pref, suf = mw.ustring.match(stem, "^([ʰmnrsšHptćčkbdȷ́ǰwg]-r̥)(.+)") pref = mw.ustring.gsub(pref, "r̥$", "ŕ̥") vocstem = pref .. suf else local pref, firstvowel, suf = mw.ustring.match(stem, "^(.-)([aāiu])(.*)") firstvowel = mw.ustring.gsub(firstvowel, "[aāiu]", {["a"] = "á", ["ā"] = "ā́", ["i"] = "í", ["u"] = "ú"}) vocstem = pref .. firstvowel .. suf end else vocstem = stem end return vocstem end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local parent_args = frame:getParent().args local stems = nil local decl_type = {} local word = mw.loadData("Module:headword/data").pagename local args = {} if not decl_data_irreg[word] then if frame.args.decl then decl_type = frame.args.decl else if parent_args.stem and parent_args.g and parent_args[1] then decl_type = parent_args.stem .. "-" .. parent_args.g stems = {parent_args[1]} elseif parent_args[1] and not parent_args.stem then decl_type = detect_decl(word, parent_args.stem, parent_args.g) stems = {parent_args[1]} else decl_type, stems = detect_decl(word, parent_args.stem, parent_args.g) end end if not decl_type then error("Không rõ biến cách '" .. decl_type .. "'") end args = require("Module:parameters").process(parent_args, decl_data[decl_type].params, true) if stems then for i, stem in ipairs(stems) do args[i] = stem end end end local data = {forms = {}, categories = {}} data.head = parent_args["head"] or nil -- Generate the forms if decl_data_irreg[word] then table.insert(data.categories, "Danh từ bất quy tắc tiếng Ấn-Iran nguyên thủy") decl_data_irreg[word](parent_args, data) else decl_data[decl_type](args, data) end -- Make the table return make_table(data) end function make_table(data) local function show_form(form) if not form then return "—" end local ret = {} for key, subform in ipairs(form) do if subform ~= "—" then -- Post-processing of data subform = syllabify(subform) subform = ruki(subform) subform = dorsal_b(subform) subform = vocstem(subform) subform = destress(subform) subform = "*" .. subform end table.insert(ret, subform) end return table.concat(ret, ", ") end local function repl(param) if param == "decl_type" then return data.decl_type elseif param == "title" then return "*" .. data.forms.nom_sg[1] else return show_form(data.forms[param]) end end local function make_cases(data) local cases = {"danh cách", "hô cách", "đối cách", "cách công cụ", "ly cách", "dữ cách", "sinh cách", "định vị cách"} local case_codes = {"nom", "voc", "acc", "ins", "abl", "dat", "gen", "loc"} local ret = {} for i, case in ipairs(cases) do local case_short = case_codes[i] -- assert(false, case_short) table.insert(ret, "|- " .. ((case_short == "nom" or case_short == "gen") and "" or "class=\"vsHide\"") .. " \n! style=\"background:var(--wikt-palette-lighterblue);color:inherit\" | " .. case .. "\n") table.insert(ret, "| style=\"background:var(--wikt-palette-lavender);color:inherit\" | " .. show_form(data.forms[case_short .. "_sg"]) .. "\n") table.insert(ret, "| class=\"vsHide\" style=\"background:var(--wikt-palette-lavender);color:inherit\" | " .. show_form(data.forms[case_short .. "_du"]) .. "\n") if data.forms[case_short .. "_pl"] then table.insert(ret, "| class=\"vsHide\" style=\"background:var(--wikt-palette-lavender);color:inherit\" | " .. show_form(data.forms[case_short .. "_pl"]) .. "\n") end end return table.concat(ret) end local no_plural = data.forms.nom_pl == nil local wikicode = [=[ {| class="inflection-table vsSwitcher" data-toggle-category="inflection" style="background:var(--wikt-palette-white);color:inherit; border: 1px solid var(--wikt-palette-lightgrey); text-align: left;" cellspacing="1" cellpadding="2" |- ! style="background:var(--wikt-palette-lightblue);color:inherit;" class="vsToggleElement" colspan="]=] .. (no_plural and "3" or "4") .. [=[" | {{{decl_type}}} |- | style="min-width: 8em; background:var(--wikt-palette-lightblue);color:inherit" | ! style="min-width: 11em; background:var(--wikt-palette-lightblue);color:inherit" | số ít ! class="vsHide" style="min-width: 11em; background:var(--wikt-palette-lightblue);color:inherit" | số đôi]=] .. (no_plural and "\n" or [=[ ! class="vsHide" style="min-width: 11em; background:var(--wikt-palette-lightblue);color:inherit" | số nhiều ]=]) .. make_cases(data) .. [=[ |}]=] return (mw.ustring.gsub(wikicode, "{{{([a-z0-9_]+)}}}", repl)) .. m_utils.format_categories(data.categories, lang) end return export shm2dyh510dc0dsqywb7ns5sy8iibcc 2351175 2351174 2026-05-07T16:03:45Z Hiyuune 50834 2351175 Scribunto text/plain local export = {} local m_links = require("Module:links") local m_utils = require("Module:utilities") local decl_data = require("Module:iir-decl-noun/data") local decl_data_irreg = require("Module:iir-decl-noun/data/irreg") local lang = require("Module:languages").getByCode("iir-pro") local endings = { ["ás"] = "a-m", ["as"] = "a-m", ["ám"] = "a-n", ["am"] = "a-n", ["áH"] = "aH-f", ["aH"] = "aH-f", ["íš"] = "i-mf", ["iš"] = "i-mf", ["i"] = "i-n", ["íH"] = "yaH-f", ["iH"] = "yaH-f", ["íHs"] = "iH-f", ["iHs"] = "iH-f", ["úš"] = "u-mf", ["uš"] = "u-mf", ["ú"] = "u-n", ["u"] = "u-n", ["úHs"] = "uH-f", ["uHs"] = "uH-f", } local endings_reverse = { ["a-m"] = "ás", ["a-m"] = "as", ["a-n"] = "ám", ["a-n"] = "am", ["aH-f"] = "áH", ["aH-f"] = "aH", ["i-mf"] = "íš", ["i-mf"] = "iš", ["i-m"] = "íš", ["i-m"] = "iš", ["i-f"] = "íš", ["i-f"] = "iš", ["i-n"] = "i", ["yaH-f"] = "íH", ["yaH-f"] = "iH", ["iH-f"] = "íHs", ["iH-f"] = "iHs", ["u-mf"] = "uš", ["u-m"] = "uš", ["u-f"] = "uš", ["u-n"] = "u", ["uH-f"] = "úHs", ["uH-f"] = "uHs", ["r-n"] = "ā́", ["r-n"] = "ā", ["cons-n"] = "", } local function detect_decl(word, stem, gender) if stem and gender then local decl = stem .. "-" .. gender return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(endings_reverse[decl]) + 1))} elseif stem == "r" and mw.ustring.sub(word, -2) == "ā́" then --r-stem return "r-n", {mw.ustring.sub(word, 1, -3)} elseif stem == "s" and mw.ustring.sub(word, -2) == "as" then return "s-n", {mw.ustring.sub(word, 1, -3)} elseif stem == "cons" then if gender == "n" then return "cons-n" else return "cons-mf" end else for ending, decl in pairs(endings) do if mw.ustring.find(word, ending .. "$") then return decl, {mw.ustring.sub(word, 1, -(mw.ustring.len(ending) + 1))} end end -- No matches, assume consonant stem. local stem stem = mw.ustring.sub(word, 1, -2) return (gender and "cons-" .. gender or "cons-mf"), {stem} end end function syllabify(text) -- Supposed to syllabify resonants when appropriate if mw.ustring.find(text, "[ʰmnrsšHptćčkbdȷǰgw][ȷ́]?[u]?[mnrŕwy][ʰmnrsšHptćčkbdȷǰg][ȷ́]?") then local pref, syllabic, suf = mw.ustring.match(text, "([ʰmnrsšHptćčkbdȷǰgw][ȷ́]?)([u]?[mnrŕwy])([ʰmnrsšHptćčkbdȷǰg][ȷ́]?)") syllabic = syllabic:gsub("[mn]", "a") :gsub("w", "u") :gsub("y", "i") :gsub("ua", "wa") syllabic = mw.ustring.gsub(syllabic, "[rŕ]", {["r"] = "r̥", ["ŕ"] = "ŕ̥"}) local syllabified = pref .. syllabic .. suf text = mw.ustring.gsub(text, "[ʰmnrsšHptćčkbdȷǰgw][ȷ́]?[u]?[mnrŕwy][ʰmnrsšHptćčkbdȷǰg][ȷ́]?", syllabified) end if mw.ustring.find(text, "iw[ʰmnsšHptćčkbdȷǰg][ȷ́]?") then text = text:gsub("iw", "yu") end if mw.ustring.find(text, "ŕ[aāáiíuú]") then text = mw.ustring.gsub(text, "ŕ", "r") end if mw.ustring.find(text, "[ʰmnrsšHptćčkbdȷǰgw][ȷ́]?[wyr]$") then text = mw.ustring.gsub(text, "[wyr]$", {["w"] = "u", ["y"] = "i", ["r"] = "r̥"}) end return text end function ruki(text) text = mw.ustring.gsub(text, "[rŕwukćčǰȷyisšbd][ŕ̥]?ʰ?s", { ["rs"] = "rš", ["r̥s"] = "r̥š", ["ŕ̥s"] = "ŕ̥š", ["ws"] = "wš", ["us"] = "uš", ["ks"] = "kš", ["ćs"] = "ćš", ["ǰs"] = "kš", ["ys"] = "yš", ["is"] = "iš", ["ss"] = "s", ["šs"] = "š", ["čs"] = "kš", ["ǰʰs"] = "kš", ["ȷ́s"] = "ćš", ["ȷ́ʰs"] = "ćš", ["ds"] = "ts", ["dʰs"] = "ts", ["bʰs"] = "ps" }) return text end function dorsal_b(text) text = mw.ustring.gsub(text, "[kčǰ]ʰ?b", "gb") text = mw.ustring.gsub(text, "[ćptšs]b", { ["ćb"] = "ȷ́b", ["pb"] = "bb", ["tb"] = "db", ["sb"] = "zb", ["šb"] = "žb" }) return text end function destress(text) -- Suppresses default ending accent if accent is detected on a preceding stem. -- It does this by checking the provided form to see if it has two accents. If the form does have two accents, the rightmost accent is isolated and removed. -- The little mark on ȷ́ is identical to the combining accent mark; it needs to be ignored during the accent check. text = text:gsub("ȷ́", "ȷ") if mw.ustring.find(text, "[áíúŕ́].+[áíúŕ́]") then local initial, final = mw.ustring.match(text, "^(.-[áíúŕ́])(.*)") final = mw.ustring.gsub(final, "[áíúŕ́]", {["á"] = "a", ["í"] = "i", ["ú"] = "u", ["ŕ"] = "r", ["́"] = ""}) text = initial .. final end -- Suppress default ending accent if the page name has no accent specified local word = mw.loadData("Module:headword/data").pagename local jword = word:gsub("ȷ́", "ȷ") if not mw.ustring.find(jword, "[áíúŕ́]") then text = mw.ustring.gsub(text, "[áíúŕ́]", {["á"] = "a", ["í"] = "i", ["ú"] = "u", ["ŕ"] = "r", ["́"] = ""}) end -- Readd accent mark to the resulting dotless J after the accent check text = text:gsub("ȷ", "ȷ́") return text end function vocstem(stem) -- Enforces first-syllable accent in vocatives. -- It does this by checking to see if a form has no accent. -- Vocatives in the data submodule specifically have no accent specified on their endings, so unaccented stem + unaccented ending = unaccented word. -- If there is no accent, the function parks the accent on the first available vowel. local vocstem if not mw.ustring.find(stem, "[áóÁíúŕ́]") then if mw.ustring.find(stem, "^[ʰmnrsšHptćčkbdȷ́ǰwg]-r̥") then local pref, suf = mw.ustring.match(stem, "^([ʰmnrsšHptćčkbdȷ́ǰwg]-r̥)(.+)") pref = mw.ustring.gsub(pref, "r̥$", "ŕ̥") vocstem = pref .. suf else local pref, firstvowel, suf = mw.ustring.match(stem, "^(.-)([aāiu])(.*)") firstvowel = mw.ustring.gsub(firstvowel, "[aāiu]", {["a"] = "á", ["ā"] = "ā́", ["i"] = "í", ["u"] = "ú"}) vocstem = pref .. firstvowel .. suf end else vocstem = stem end return vocstem end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local parent_args = frame:getParent().args local stems = nil local decl_type = {} local word = mw.loadData("Module:headword/data").pagename local args = {} if not decl_data_irreg[word] then if frame.args.decl then decl_type = frame.args.decl else if parent_args.stem and parent_args.g and parent_args[1] then decl_type = parent_args.stem .. "-" .. parent_args.g stems = {parent_args[1]} elseif parent_args[1] and not parent_args.stem then decl_type = detect_decl(word, parent_args.stem, parent_args.g) stems = {parent_args[1]} else decl_type, stems = detect_decl(word, parent_args.stem, parent_args.g) end end if not decl_type then error("Không rõ biến cách '" .. decl_type .. "'") end args = require("Module:parameters").process(parent_args, decl_data[decl_type].params, true) if stems then for i, stem in ipairs(stems) do args[i] = stem end end end local data = {forms = {}, categories = {}} data.head = parent_args["head"] or nil -- Generate the forms if decl_data_irreg[word] then table.insert(data.categories, "Danh từ bất quy tắc tiếng Ấn-Iran nguyên thủy") decl_data_irreg[word](parent_args, data) else decl_data[decl_type](args, data) end -- Make the table return make_table(data) end function make_table(data) local function show_form(form) if not form then return "—" end local ret = {} for key, subform in ipairs(form) do if subform ~= "—" then -- Post-processing of data subform = syllabify(subform) subform = ruki(subform) subform = dorsal_b(subform) subform = vocstem(subform) subform = destress(subform) subform = "*" .. subform end table.insert(ret, subform) end return table.concat(ret, ", ") end local function repl(param) if param == "decl_type" then return data.decl_type elseif param == "title" then return "*" .. data.forms.nom_sg[1] else return show_form(data.forms[param]) end end local function make_cases(data) local cases = {"danh cách", "hô cách", "đối cách", "cách công cụ", "ly cách", "dữ cách", "sinh cách", "định vị cách"} local case_codes = {"nom", "voc", "acc", "ins", "abl", "dat", "gen", "loc"} local ret = {} for i, case in ipairs(cases) do local case_short = case_codes[i] -- assert(false, case_short) table.insert(ret, "|- " .. ((case_short == "nom" or case_short == "gen") and "" or "class=\"vsHide\"") .. " \n! style=\"background:var(--wikt-palette-red-1, #3e0c11);color:inherit\" | " .. case .. "\n") table.insert(ret, "| style=\"background:var(--wikt-palette-red-0, #28070a);color:inherit\" | " .. show_form(data.forms[case_short .. "_sg"]) .. "\n") table.insert(ret, "| class=\"vsHide\" style=\"background:var(--wikt-palette-red-0, #28070a);color:inherit\" | " .. show_form(data.forms[case_short .. "_du"]) .. "\n") if data.forms[case_short .. "_pl"] then table.insert(ret, "| class=\"vsHide\" style=\"background:var(--wikt-palette-red-0, #28070a);color:inherit\" | " .. show_form(data.forms[case_short .. "_pl"]) .. "\n") end end return table.concat(ret) end local no_plural = data.forms.nom_pl == nil local wikicode = [=[ {| class="inflection-table vsSwitcher" data-toggle-category="inflection" style="background:var(--wikt-palette-red-0, #28070a);color:inherit; border: 1px solid var(--wikt-palette-red-2, #5a131a); text-align: left;" cellspacing="1" cellpadding="2" |- ! style="background:var(--wikt-palette-red-2, #5a131a);color:inherit;" class="vsToggleElement" colspan="]=] .. (no_plural and "3" or "4") .. [=[" | {{{decl_type}}} |- | style="min-width: 8em; background:var(--wikt-palette-red-2, #5a131a);color:inherit" | ! style="min-width: 11em; background:var(--wikt-palette-red-2, #5a131a);color:inherit" | số ít ! class="vsHide" style="min-width: 11em; background:var(--wikt-palette-red-2, #5a131a);color:inherit" | số đôi]=] .. (no_plural and "\n" or [=[ ! class="vsHide" style="min-width: 11em; background:var(--wikt-palette-red-2, #5a131a);color:inherit" | số nhiều ]=]) .. make_cases(data) .. [=[ |}]=] return (mw.ustring.gsub(wikicode, "{{{([a-z0-9_]+)}}}", repl)) .. m_utils.format_categories(data.categories, lang) end return export 04ovttyrkqsowaspr5srlylmlen2rbv Mô đun:iir-decl-noun/data 828 396026 2351171 2026-05-07T15:48:00Z Hiyuune 50834 Trang mới: “local decl_data = {} decl_data["a-m"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["a-m"], {__call = function(self, args, data) local stem = args[1] data.decl_type = "masculine a-stem" data.forms["nom_sg"] = {args[1] .. "ás"} data.forms["voc_sg"] = {args[1] .. "a"} data.forms["acc_sg"] = {args[1] .. "ám"} data.forms["ins_sg"] = {args[1] .. "áH"} data.forms["abl_sg"] = {args[1] .. "ā́t"} data.forms["dat_sg"] = {args[1] .. "ā…” 2351171 Scribunto text/plain local decl_data = {} decl_data["a-m"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["a-m"], {__call = function(self, args, data) local stem = args[1] data.decl_type = "masculine a-stem" data.forms["nom_sg"] = {args[1] .. "ás"} data.forms["voc_sg"] = {args[1] .. "a"} data.forms["acc_sg"] = {args[1] .. "ám"} data.forms["ins_sg"] = {args[1] .. "áH"} data.forms["abl_sg"] = {args[1] .. "ā́t"} data.forms["dat_sg"] = {args[1] .. "ā́y"} data.forms["gen_sg"] = {args[1] .. "ásya"} data.forms["loc_sg"] = {args[1] .. "áy"} data.forms["nom_du"] = {args[1] .. "ā́(w)"} data.forms["voc_du"] = {args[1] .. "ā(w)"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args[1] .. "áybʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {args[1] .. "áyās"} data.forms["loc_du"] = {args[1] .. "áyaw"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ā́s(as)"} data.forms["voc_pl"] = {args[1] .. "ās(as)"} data.forms["acc_pl"] = {args[1] .. "ā́ns"} data.forms["ins_pl"] = {args[1] .. "ā́yš"} data.forms["abl_pl"] = {args[1] .. "áybʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "ā́naHam"} data.forms["loc_pl"] = {args[1] .. "áyšu"} end table.insert(data.categories, "Danh từ thân từ a tiếng Ấn-Iran nguyên thủy") end }) decl_data["a-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["a-n"], {__call = function(self, args, data) decl_data["a-m"](args, data) data.decl_type = "neuter a-stem" data.forms["nom_sg"] = data.forms["acc_sg"] data.forms["voc_sg"] = {args[1] .. "am"} data.forms["nom_du"] = {args[1] .. "áy"} data.forms["voc_du"] = {args[1] .. "ay"} data.forms["acc_du"] = data.forms["nom_du"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "áH"} data.forms["voc_pl"] = {args[1] .. "aH"} data.forms["acc_pl"] = data.forms["nom_pl"] end end }) decl_data["cons-mf"] = { params = { [1] = {}, [2] = {}, ["nopl"] = {}, ["nomsg"] = {}, ["accsg"] = {}, ["locsg"] = {}, ["insdu"] = {}, ["inspl"] = {}, ["ablpl"] = {}, ["locpl"] = {}, ["oblplc"] = {}, }, } setmetatable(decl_data["cons-mf"], {__call = function(self, args, data) local pagename = mw.loadData("Module:headword/data").pagename data.decl_type = "thân từ phụ âm" local strong = args[2] or args[1] debrugmann = mw.ustring.gsub(strong, ".", {["o"] = "a", ["ó"] = "á",}) debrugmann2 = mw.ustring.gsub(debrugmann, "á", "a") -- Implements Brugmann's law in the acc. sg.; trigger this by inputting, into the strong stem, *o for any vowels that you want the law to affect -- The "de-brugmann" process will turn the o back to *a for use in loc. and voc. sg. brugmann = mw.ustring.gsub(strong, ".", {["ó"] = "ā́", ["o"] = "ā"}) brugmann_voc = mw.ustring.gsub(strong, ".", {["ó"] = "ā", ["o"] = "ā", ["á"] = "a"}) local weak = args[1] -- For r-stems if mw.ustring.find(weak, "[rŕ]$") then gen_sg_ending = "š" else gen_sg_ending = "ás" end -- Forms the nom. sg. of n-stems and r-stems if args[2] then if mw.ustring.find(args[2], "[rn]$") then local rnnom = mw.ustring.gsub(args[2], "[aáoó][rn]$", "") args.nomsg = rnnom .. "ā́" end end data.forms["nom_sg"] = {args.nomsg or brugmann .. "s"} data.forms["voc_sg"] = {debrugmann2} data.forms["acc_sg"] = {args.accsg or brugmann .. "ám"} data.forms["ins_sg"] = {weak .. "áH"} data.forms["abl_sg"] = {weak .. gen_sg_ending} data.forms["dat_sg"] = {weak .. "áy"} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = {args.locsg or debrugmann .. "í"} data.forms["nom_du"] = {brugmann .. "ā́(w)"} data.forms["voc_du"] = {brugmann_voc .. "ā(w)"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args.insdu or (args.oblplc or weak) .. "bʰyā́(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {weak .. "Hā́s"} data.forms["loc_du"] = {weak .. "Háw"} if not args.nopl then data.forms["nom_pl"] = {brugmann .. "ás"} data.forms["voc_pl"] = {brugmann_voc .. "as"} data.forms["acc_pl"] = {weak .. "ás"} data.forms["ins_pl"] = {args.inspl or (args.oblplc or weak) .. "bʰíš"} data.forms["abl_pl"] = {args.ablpl or (args.oblplc or weak) .. "bʰyáH"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {weak .. "áHam"} data.forms["loc_pl"] = {args.locpl or (args.oblplc or weak) .. "sú"} end table.insert(data.categories, "Danh từ thân từ phụ âm tiếng Ấn-Iran nguyên thủy") end }) decl_data["cons-n"] = { params = { [1] = {}, [2] = {}, ["altgsg"] = {}, ["nomsg"] = {}, ["locsg"] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["cons-n"], {__call = function(self, args, data) decl_data["cons-mf"](args, data) data.decl_type = "neuter consonant stem" if args["altgsg"] then gen_sg_ending = "ás" else gen_sg_ending = "s" end local nom_sg local nom_pl local strongdu local loc_stem local resyll local title = mw.loadData("Module:headword/data").pagename if mw.ustring.find(title, "r̥?$") and mw.ustring.find(args[1], "n$") then nom_sg = title nom_pl = mw.ustring.gsub(title, "a?r̥?$", "ār") strongdu = mw.ustring.gsub(title, "a?r̥?$", "n") loc_sg_stem = mw.ustring.gsub(args[1], "[áa]?n$", "án") if destress(args[1] .. "á") == (args[1] .. "á") then resyll = mw.ustring.gsub(args[1], "n$", "á") elseif mw.ustring.find(args[1], "án$") then resyll = mw.ustring.gsub(args[1], "án$", "á") else resyll = args[1] end elseif mw.ustring.find(args[1], "man$") then nom_sg = string.gsub(args[1], "man$", "ma") nom_pl = mw.ustring.gsub(args[1], "man$", "mān") strongdu = args[1] loc_sg_stem = args[1] resyll = nom_sg else nom_sg = title nom_pl = args[2] .. "i" -- HSK 41.3 pp. 1882-1883 strongdu = args[2] loc_sg_stem = args[2] resyll = args[1] end data.forms["nom_sg"] = {nom_sg} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["abl_sg"] = {args[1] .. gen_sg_ending} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = {args.locsg or (loc_sg_stem .. "(i)")} data.forms["nom_du"] = {strongdu .. "iH"} data.forms["voc_du"] = data.forms["nom_du"] data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {resyll .. "bʰyā́(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] if not args.nopl then data.forms["nom_pl"] = {nom_pl} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["ins_pl"] = {resyll .. "bʰíš"} data.forms["abl_pl"] = {resyll .. "bʰyáH"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "áHam"} data.forms["loc_pl"] = {resyll .. "sú"} end end }) decl_data["s-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["s-n"], {__call = function(self, args, data) data.decl_type = "neuter as-stem" local stem2 if mw.ustring.find(args[1], "gʰ?$") then stem2 = mw.ustring.gsub(args[1], "g(ʰ?)$", "ǰ%1") else stem2 = args[1] end data.forms["nom_sg"] = {args[1] .. "as"} data.forms["voc_sg"] = {args[1] .. "as"} data.forms["acc_sg"] = {args[1] .. "as"} data.forms["ins_sg"] = {stem2 .. "asaH"} data.forms["abl_sg"] = {stem2 .. "asas"} data.forms["dat_sg"] = {stem2 .. "asay"} data.forms["gen_sg"] = {stem2 .. "asas"} data.forms["loc_sg"] = {stem2 .. "asi"} data.forms["nom_du"] = {stem2 .. "asiH"} data.forms["voc_du"] = {stem2 .. "asiH"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {stem2 .. "azbʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {stem2 .. "asHās"} data.forms["loc_du"] = {stem2 .. "asHaw"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ās"} data.forms["voc_pl"] = {args[1] .. "ās"} data.forms["acc_pl"] = {args[1] .. "ās"} data.forms["ins_pl"] = {stem2 .. "azbʰiš"} data.forms["abl_pl"] = {stem2 .. "azbʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {stem2 .. "asaHam"} data.forms["loc_pl"] = {stem2 .. "asu"} end table.insert(data.categories, "Danh từ thân từ as tiếng Ấn-Iran nguyên thủy") end }) decl_data["i-mf"] = { params = { [1] = {}, ["nopl"] = {}, ["g"] = {}, }, } setmetatable(decl_data["i-mf"], {__call = function(self, args, data) data.decl_type = "masculine/feminine i-stem" data.forms["nom_sg"] = {args[1] .. "íš"} data.forms["voc_sg"] = {args[1] .. "ay"} data.forms["acc_sg"] = {args[1] .. "ím"} data.forms["ins_sg"] = {args[1] .. "íH"} data.forms["abl_sg"] = {args[1] .. "áyš"} data.forms["dat_sg"] = {args[1] .. "áyay"} data.forms["gen_sg"] = {args[1] .. "áyš"} data.forms["loc_sg"] = {args[1] .. "ā́y"} -- HCHIEL p.1895: loc. *(H)agnā́y data.forms["nom_du"] = {args[1] .. "íH"} data.forms["voc_du"] = {args[1] .. "iH"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args[1] .. "íbʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {args[1] .. "iyā́s"} data.forms["loc_du"] = {args[1] .. "iyáw"} -- HCHIEL p.1895: du.loc. *(H)agniy-áw if not args.nopl then data.forms["nom_pl"] = {args[1] .. "áyas"} data.forms["voc_pl"] = {args[1] .. "ayas"} data.forms["acc_pl"] = {args[1] .. "ínš"} data.forms["ins_pl"] = {args[1] .. "íbʰiš"} data.forms["abl_pl"] = {args[1] .. "íbʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "iHnáHam"} data.forms["loc_pl"] = {args[1] .. "íšu"} end table.insert(data.categories, "Danh từ thân từ i tiếng Ấn-Iran nguyên thủy") end }) decl_data["i-n"] = { params = { [1] = {}, ["nopl"] = {}, ["j"] = {}, }, } setmetatable(decl_data["i-n"], {__call = function(self, args, data) decl_data["i-m"](args, data) data.decl_type = "neuter i-stem" data.forms["nom_sg"] = {args[1] .. "í"} data.forms["voc_sg"] = {args[1] .. "i"} data.forms["acc_sg"] = data.forms["nom_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "íH"} data.forms["voc_pl"] = {args[1] .. "iH"} data.forms["acc_pl"] = data.forms["nom_pl"] end end }) decl_data["iH-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["iH-f"], {__call = function(self, args, data) data.decl_type = "feminine iH-stem" data.forms["nom_sg"] = {args[1] .. "íHs"} data.forms["voc_sg"] = {args[1] .. "i"} data.forms["acc_sg"] = {args[1] .. "íHam"} data.forms["ins_sg"] = {args[1] .. "íHaH"} data.forms["abl_sg"] = {args[1] .. "íHas"} data.forms["dat_sg"] = {args[1] .. "íHay"} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = {args[1] .. "íH"} -- HCHIEL p.1896 loc. *wr̥kī́ data.forms["nom_du"] = {args[1] .. "íHaH"} data.forms["voc_du"] = {args[1] .. "iHaH"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args[1] .. "íHbʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {args[1] .. "íHās"} data.forms["loc_du"] = {args[1] .. "íHaw"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "íHas"} data.forms["voc_pl"] = {args[1] .. "iHas"} data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["ins_pl"] = {args[1] .. "íHbʰiš"} data.forms["abl_pl"] = {args[1] .. "íHbʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "íHnaHam"} data.forms["loc_pl"] = {args[1] .. "íHsu"} end table.insert(data.categories, "Danh từ thân từ iH tiếng Ấn-Iran nguyên thủy") end }) decl_data["aH-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["aH-f"], {__call = function(self, args, data) data.decl_type = "aH-stem" data.forms["nom_sg"] = {args[1] .. "áH"} data.forms["voc_sg"] = {args[1] .. "ay"} data.forms["acc_sg"] = {args[1] .. "ā́m"} data.forms["ins_sg"] = {args[1] .. "áH, -áyaH"} data.forms["abl_sg"] = {args[1] .. "áyaHs"} data.forms["dat_sg"] = {args[1] .. "áyaHy"} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = {args[1] .. "áyaH"} data.forms["nom_du"] = {args[1] .. "áy"} data.forms["voc_du"] = {args[1] .. "ay"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args[1] .. "áHbʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {args[1] .. "áyHās"} data.forms["loc_du"] = {args[1] .. "áyHaw"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ā́s"} data.forms["voc_pl"] = {args[1] .. "ās"} data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["ins_pl"] = {args[1] .. "áHbʰiš"} data.forms["abl_pl"] = {args[1] .. "áHbʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "áHnaHam"} data.forms["loc_pl"] = {args[1] .. "áHsu"} end table.insert(data.categories, "Danh từ thân từ aH tiếng Ấn-Iran nguyên thủy") end }) decl_data["yaH-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["yaH-f"], {__call = function(self, args, data) data.decl_type = "yaH-stem" data.forms["nom_sg"] = {args[1] .. "íH"} data.forms["voc_sg"] = {args[1] .. "i"} data.forms["acc_sg"] = {args[1] .. "íHm"} data.forms["ins_sg"] = {args[1] .. "yáH"} data.forms["abl_sg"] = {args[1] .. "yáHs"} data.forms["dat_sg"] = {args[1] .. "yáy"} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = data.forms["ins_sg"] data.forms["nom_du"] = {args[1] .. "íH"} data.forms["voc_du"] = {args[1] .. "iH"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args[1] .. "íHbʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {args[1] .. "íHās"} data.forms["loc_du"] = {args[1] .. "íHaw"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "íHš"} data.forms["voc_pl"] = {args[1] .. "iHš"} data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["ins_pl"] = {args[1] .. "íHbʰiš"} data.forms["abl_pl"] = {args[1] .. "íHbʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "íHnaHam"} data.forms["loc_pl"] = {args[1] .. "íHsu"} end table.insert(data.categories, "Danh từ thân từ yaH tiếng Ấn-Iran nguyên thủy") end }) decl_data["uH-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["uH-f"], {__call = function(self, args, data) data.decl_type = "uH-stem" data.forms["nom_sg"] = {args[1] .. "úHs"} data.forms["voc_sg"] = {args[1] .. "u"} data.forms["acc_sg"] = {args[1] .. "úHam"} data.forms["ins_sg"] = {args[1] .. "úHaH"} data.forms["abl_sg"] = {args[1] .. "úHas"} data.forms["dat_sg"] = {args[1] .. "úHay"} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = {args[1] .. "úH"} -- HCHIEL p.1896 loc. *tanū́ if not args.nopl then data.forms["nom_pl"] = {args[1] .. "úHas"} data.forms["voc_pl"] = {args[1] .. "uHas"} data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["ins_pl"] = {args[1] .. "úHbʰiš"} data.forms["abl_pl"] = {args[1] .. "úHbʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "úHnaHam"} data.forms["loc_pl"] = {args[1] .. "úHsu"} end table.insert(data.categories, "Danh từ thân từ uH tiếng Ấn-Iran nguyên thủy") end }) decl_data["u-mf"] = { params = { [1] = {}, [2] = {}, ["stem"] = {}, ["altgsg"] = {}, ["nopl"] = {}, ["g"] = {}, }, } setmetatable(decl_data["u-mf"], {__call = function(self, args, data) data.decl_type = "masculine u-stem" local title = mw.loadData("Module:headword/data").pagename local stem = mw.ustring.gsub(title, "[uú]š$", "") if not args[1] then args[1] = stem end local gen_sg_ending if args["altgsg"] then gen_sg_ending = "wás" else gen_sg_ending = "áwš" end data.forms["nom_sg"] = {stem .. "úš"} data.forms["voc_sg"] = {stem .. "aw"} data.forms["acc_sg"] = {stem .. "úm"} data.forms["ins_sg"] = {args[1] .. "úH"} data.forms["abl_sg"] = {args[1] .. gen_sg_ending} data.forms["dat_sg"] = {args[1] .. "áway"} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = {args[1] .. "ā́w"} data.forms["nom_du"] = {stem .. "úH"} data.forms["voc_du"] = {stem .. "uH"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args[1] .. "úbʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {args[1] .. "uwā́s"} data.forms["loc_du"] = {args[1] .. "uwáw"} if not args.nopl then data.forms["nom_pl"] = {stem .. "áwas"} data.forms["voc_pl"] = {stem .. "awas"} data.forms["acc_pl"] = {stem .. "únš"} data.forms["ins_pl"] = {args[1] .. "úbʰiš"} data.forms["abl_pl"] = {args[1] .. "úbʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "uHnáHam"} data.forms["loc_pl"] = {args[1] .. "úšu"} end table.insert(data.categories, "Danh từ thân từ u tiếng Ấn-Iran nguyên thủy") end }) decl_data["u-n"] = { params = { [1] = {}, [2] = {}, ["stem"] = {}, ["altgsg"] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["u-n"], {__call = function(self, args, data) decl_data["u-mf"](args, data) local title = mw.loadData("Module:headword/data").pagename local stem = mw.ustring.gsub(title, "[uú]$", "") data.decl_type = "neuter u-stem" data.forms["nom_sg"] = {stem .. "ú"} data.forms["voc_sg"] = {stem .. "u"} data.forms["acc_sg"] = data.forms["nom_sg"] if mw.ustring.find(stem, "ā́") then debrugmann = mw.ustring.gsub(stem, "ā́", "á") end if debrugmann then strongdu = debrugmann else strongdu = stem end data.forms["nom_du"] = {strongdu .. "wiH"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["voc_du"] = data.forms["nom_du"] if not args.nopl then data.forms["nom_pl"] = {stem .. "úH"} data.forms["voc_pl"] = {stem .. "uH"} data.forms["acc_pl"] = data.forms["nom_pl"] end end }) decl_data["n-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } decl_data["r-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["r-n"], {__call = function(self, args, data) data.decl_type = "r-stem" data.forms["nom_sg"] = {args[1] .. "ā́"} data.forms["voc_sg"] = {args[1] .. "ar"} data.forms["acc_sg"] = {args[1] .. "áram, *-ā́ram, *-r̥m"} data.forms["ins_sg"] = {args[1] .. "ráH"} data.forms["abl_sg"] = {args[1] .. "ŕ̥š, *-rás"} data.forms["dat_sg"] = {args[1] .. "ráy"} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = {args[1] .. "ári"} data.forms["nom_du"] = {args[1] .. "áraH, -ā́raH"} data.forms["voc_du"] = {args[1] .. "araH, -āraH"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args[1] .. "ŕ̥bʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {args[1] .. "rā́s"} data.forms["loc_du"] = {args[1] .. "ráw"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "áras, -ā́ras"} data.forms["voc_pl"] = {args[1] .. "aras, -āras"} data.forms["acc_pl"] = {args[1] .. "ŕ̥nš"} data.forms["ins_pl"] = {args[1] .. "ŕ̥bʰiš"} data.forms["abl_pl"] = {args[1] .. "ŕ̥bʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "r̥náHam"} data.forms["loc_pl"] = {args[1] .. "ŕ̥šu"} end table.insert(data.categories, "Danh từ thân từ r tiếng Ấn-Iran nguyên thủy") end }) decl_data["irreg"] = {} setmetatable(decl_data["irreg"], {__call = function(self, args, data) local word = mw.loadData("Module:headword/data").pagename irreg_data = require("Module:iir-decl-noun/data/irreg") if irreg_data.irreg[word] then irreg_data.irreg[word](args, data) else error("Irregular inflection not found. Please check Module:iir-decl-noun/data.") end table.insert(data.categories, "Danh từ bất quy tắc tiếng Ấn-Iran nguyên thủy") end }) return decl_data 1sgl4ho1ha7vmkei660wh6fmngwu068 2351177 2351171 2026-05-07T16:05:35Z Hiyuune 50834 2351177 Scribunto text/plain local decl_data = {} decl_data["a-m"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["a-m"], {__call = function(self, args, data) local stem = args[1] data.decl_type = "thân từ a, giống đực" data.forms["nom_sg"] = {args[1] .. "ás"} data.forms["voc_sg"] = {args[1] .. "a"} data.forms["acc_sg"] = {args[1] .. "ám"} data.forms["ins_sg"] = {args[1] .. "áH"} data.forms["abl_sg"] = {args[1] .. "ā́t"} data.forms["dat_sg"] = {args[1] .. "ā́y"} data.forms["gen_sg"] = {args[1] .. "ásya"} data.forms["loc_sg"] = {args[1] .. "áy"} data.forms["nom_du"] = {args[1] .. "ā́(w)"} data.forms["voc_du"] = {args[1] .. "ā(w)"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args[1] .. "áybʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {args[1] .. "áyās"} data.forms["loc_du"] = {args[1] .. "áyaw"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ā́s(as)"} data.forms["voc_pl"] = {args[1] .. "ās(as)"} data.forms["acc_pl"] = {args[1] .. "ā́ns"} data.forms["ins_pl"] = {args[1] .. "ā́yš"} data.forms["abl_pl"] = {args[1] .. "áybʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "ā́naHam"} data.forms["loc_pl"] = {args[1] .. "áyšu"} end table.insert(data.categories, "Danh từ thân từ a tiếng Ấn-Iran nguyên thủy") end }) decl_data["a-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["a-n"], {__call = function(self, args, data) decl_data["a-m"](args, data) data.decl_type = "neuter a-stem" data.forms["nom_sg"] = data.forms["acc_sg"] data.forms["voc_sg"] = {args[1] .. "am"} data.forms["nom_du"] = {args[1] .. "áy"} data.forms["voc_du"] = {args[1] .. "ay"} data.forms["acc_du"] = data.forms["nom_du"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "áH"} data.forms["voc_pl"] = {args[1] .. "aH"} data.forms["acc_pl"] = data.forms["nom_pl"] end end }) decl_data["cons-mf"] = { params = { [1] = {}, [2] = {}, ["nopl"] = {}, ["nomsg"] = {}, ["accsg"] = {}, ["locsg"] = {}, ["insdu"] = {}, ["inspl"] = {}, ["ablpl"] = {}, ["locpl"] = {}, ["oblplc"] = {}, }, } setmetatable(decl_data["cons-mf"], {__call = function(self, args, data) local pagename = mw.loadData("Module:headword/data").pagename data.decl_type = "thân từ phụ âm" local strong = args[2] or args[1] debrugmann = mw.ustring.gsub(strong, ".", {["o"] = "a", ["ó"] = "á",}) debrugmann2 = mw.ustring.gsub(debrugmann, "á", "a") -- Implements Brugmann's law in the acc. sg.; trigger this by inputting, into the strong stem, *o for any vowels that you want the law to affect -- The "de-brugmann" process will turn the o back to *a for use in loc. and voc. sg. brugmann = mw.ustring.gsub(strong, ".", {["ó"] = "ā́", ["o"] = "ā"}) brugmann_voc = mw.ustring.gsub(strong, ".", {["ó"] = "ā", ["o"] = "ā", ["á"] = "a"}) local weak = args[1] -- For r-stems if mw.ustring.find(weak, "[rŕ]$") then gen_sg_ending = "š" else gen_sg_ending = "ás" end -- Forms the nom. sg. of n-stems and r-stems if args[2] then if mw.ustring.find(args[2], "[rn]$") then local rnnom = mw.ustring.gsub(args[2], "[aáoó][rn]$", "") args.nomsg = rnnom .. "ā́" end end data.forms["nom_sg"] = {args.nomsg or brugmann .. "s"} data.forms["voc_sg"] = {debrugmann2} data.forms["acc_sg"] = {args.accsg or brugmann .. "ám"} data.forms["ins_sg"] = {weak .. "áH"} data.forms["abl_sg"] = {weak .. gen_sg_ending} data.forms["dat_sg"] = {weak .. "áy"} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = {args.locsg or debrugmann .. "í"} data.forms["nom_du"] = {brugmann .. "ā́(w)"} data.forms["voc_du"] = {brugmann_voc .. "ā(w)"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args.insdu or (args.oblplc or weak) .. "bʰyā́(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {weak .. "Hā́s"} data.forms["loc_du"] = {weak .. "Háw"} if not args.nopl then data.forms["nom_pl"] = {brugmann .. "ás"} data.forms["voc_pl"] = {brugmann_voc .. "as"} data.forms["acc_pl"] = {weak .. "ás"} data.forms["ins_pl"] = {args.inspl or (args.oblplc or weak) .. "bʰíš"} data.forms["abl_pl"] = {args.ablpl or (args.oblplc or weak) .. "bʰyáH"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {weak .. "áHam"} data.forms["loc_pl"] = {args.locpl or (args.oblplc or weak) .. "sú"} end table.insert(data.categories, "Danh từ thân từ phụ âm tiếng Ấn-Iran nguyên thủy") end }) decl_data["cons-n"] = { params = { [1] = {}, [2] = {}, ["altgsg"] = {}, ["nomsg"] = {}, ["locsg"] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["cons-n"], {__call = function(self, args, data) decl_data["cons-mf"](args, data) data.decl_type = "neuter consonant stem" if args["altgsg"] then gen_sg_ending = "ás" else gen_sg_ending = "s" end local nom_sg local nom_pl local strongdu local loc_stem local resyll local title = mw.loadData("Module:headword/data").pagename if mw.ustring.find(title, "r̥?$") and mw.ustring.find(args[1], "n$") then nom_sg = title nom_pl = mw.ustring.gsub(title, "a?r̥?$", "ār") strongdu = mw.ustring.gsub(title, "a?r̥?$", "n") loc_sg_stem = mw.ustring.gsub(args[1], "[áa]?n$", "án") if destress(args[1] .. "á") == (args[1] .. "á") then resyll = mw.ustring.gsub(args[1], "n$", "á") elseif mw.ustring.find(args[1], "án$") then resyll = mw.ustring.gsub(args[1], "án$", "á") else resyll = args[1] end elseif mw.ustring.find(args[1], "man$") then nom_sg = string.gsub(args[1], "man$", "ma") nom_pl = mw.ustring.gsub(args[1], "man$", "mān") strongdu = args[1] loc_sg_stem = args[1] resyll = nom_sg else nom_sg = title nom_pl = args[2] .. "i" -- HSK 41.3 pp. 1882-1883 strongdu = args[2] loc_sg_stem = args[2] resyll = args[1] end data.forms["nom_sg"] = {nom_sg} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["abl_sg"] = {args[1] .. gen_sg_ending} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = {args.locsg or (loc_sg_stem .. "(i)")} data.forms["nom_du"] = {strongdu .. "iH"} data.forms["voc_du"] = data.forms["nom_du"] data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {resyll .. "bʰyā́(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] if not args.nopl then data.forms["nom_pl"] = {nom_pl} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["ins_pl"] = {resyll .. "bʰíš"} data.forms["abl_pl"] = {resyll .. "bʰyáH"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "áHam"} data.forms["loc_pl"] = {resyll .. "sú"} end end }) decl_data["s-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["s-n"], {__call = function(self, args, data) data.decl_type = "neuter as-stem" local stem2 if mw.ustring.find(args[1], "gʰ?$") then stem2 = mw.ustring.gsub(args[1], "g(ʰ?)$", "ǰ%1") else stem2 = args[1] end data.forms["nom_sg"] = {args[1] .. "as"} data.forms["voc_sg"] = {args[1] .. "as"} data.forms["acc_sg"] = {args[1] .. "as"} data.forms["ins_sg"] = {stem2 .. "asaH"} data.forms["abl_sg"] = {stem2 .. "asas"} data.forms["dat_sg"] = {stem2 .. "asay"} data.forms["gen_sg"] = {stem2 .. "asas"} data.forms["loc_sg"] = {stem2 .. "asi"} data.forms["nom_du"] = {stem2 .. "asiH"} data.forms["voc_du"] = {stem2 .. "asiH"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {stem2 .. "azbʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {stem2 .. "asHās"} data.forms["loc_du"] = {stem2 .. "asHaw"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ās"} data.forms["voc_pl"] = {args[1] .. "ās"} data.forms["acc_pl"] = {args[1] .. "ās"} data.forms["ins_pl"] = {stem2 .. "azbʰiš"} data.forms["abl_pl"] = {stem2 .. "azbʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {stem2 .. "asaHam"} data.forms["loc_pl"] = {stem2 .. "asu"} end table.insert(data.categories, "Danh từ thân từ as tiếng Ấn-Iran nguyên thủy") end }) decl_data["i-mf"] = { params = { [1] = {}, ["nopl"] = {}, ["g"] = {}, }, } setmetatable(decl_data["i-mf"], {__call = function(self, args, data) data.decl_type = "masculine/feminine i-stem" data.forms["nom_sg"] = {args[1] .. "íš"} data.forms["voc_sg"] = {args[1] .. "ay"} data.forms["acc_sg"] = {args[1] .. "ím"} data.forms["ins_sg"] = {args[1] .. "íH"} data.forms["abl_sg"] = {args[1] .. "áyš"} data.forms["dat_sg"] = {args[1] .. "áyay"} data.forms["gen_sg"] = {args[1] .. "áyš"} data.forms["loc_sg"] = {args[1] .. "ā́y"} -- HCHIEL p.1895: loc. *(H)agnā́y data.forms["nom_du"] = {args[1] .. "íH"} data.forms["voc_du"] = {args[1] .. "iH"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args[1] .. "íbʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {args[1] .. "iyā́s"} data.forms["loc_du"] = {args[1] .. "iyáw"} -- HCHIEL p.1895: du.loc. *(H)agniy-áw if not args.nopl then data.forms["nom_pl"] = {args[1] .. "áyas"} data.forms["voc_pl"] = {args[1] .. "ayas"} data.forms["acc_pl"] = {args[1] .. "ínš"} data.forms["ins_pl"] = {args[1] .. "íbʰiš"} data.forms["abl_pl"] = {args[1] .. "íbʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "iHnáHam"} data.forms["loc_pl"] = {args[1] .. "íšu"} end table.insert(data.categories, "Danh từ thân từ i tiếng Ấn-Iran nguyên thủy") end }) decl_data["i-n"] = { params = { [1] = {}, ["nopl"] = {}, ["j"] = {}, }, } setmetatable(decl_data["i-n"], {__call = function(self, args, data) decl_data["i-m"](args, data) data.decl_type = "neuter i-stem" data.forms["nom_sg"] = {args[1] .. "í"} data.forms["voc_sg"] = {args[1] .. "i"} data.forms["acc_sg"] = data.forms["nom_sg"] if not args.nopl then data.forms["nom_pl"] = {args[1] .. "íH"} data.forms["voc_pl"] = {args[1] .. "iH"} data.forms["acc_pl"] = data.forms["nom_pl"] end end }) decl_data["iH-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["iH-f"], {__call = function(self, args, data) data.decl_type = "feminine iH-stem" data.forms["nom_sg"] = {args[1] .. "íHs"} data.forms["voc_sg"] = {args[1] .. "i"} data.forms["acc_sg"] = {args[1] .. "íHam"} data.forms["ins_sg"] = {args[1] .. "íHaH"} data.forms["abl_sg"] = {args[1] .. "íHas"} data.forms["dat_sg"] = {args[1] .. "íHay"} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = {args[1] .. "íH"} -- HCHIEL p.1896 loc. *wr̥kī́ data.forms["nom_du"] = {args[1] .. "íHaH"} data.forms["voc_du"] = {args[1] .. "iHaH"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args[1] .. "íHbʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {args[1] .. "íHās"} data.forms["loc_du"] = {args[1] .. "íHaw"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "íHas"} data.forms["voc_pl"] = {args[1] .. "iHas"} data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["ins_pl"] = {args[1] .. "íHbʰiš"} data.forms["abl_pl"] = {args[1] .. "íHbʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "íHnaHam"} data.forms["loc_pl"] = {args[1] .. "íHsu"} end table.insert(data.categories, "Danh từ thân từ iH tiếng Ấn-Iran nguyên thủy") end }) decl_data["aH-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["aH-f"], {__call = function(self, args, data) data.decl_type = "aH-stem" data.forms["nom_sg"] = {args[1] .. "áH"} data.forms["voc_sg"] = {args[1] .. "ay"} data.forms["acc_sg"] = {args[1] .. "ā́m"} data.forms["ins_sg"] = {args[1] .. "áH, -áyaH"} data.forms["abl_sg"] = {args[1] .. "áyaHs"} data.forms["dat_sg"] = {args[1] .. "áyaHy"} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = {args[1] .. "áyaH"} data.forms["nom_du"] = {args[1] .. "áy"} data.forms["voc_du"] = {args[1] .. "ay"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args[1] .. "áHbʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {args[1] .. "áyHās"} data.forms["loc_du"] = {args[1] .. "áyHaw"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "ā́s"} data.forms["voc_pl"] = {args[1] .. "ās"} data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["ins_pl"] = {args[1] .. "áHbʰiš"} data.forms["abl_pl"] = {args[1] .. "áHbʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "áHnaHam"} data.forms["loc_pl"] = {args[1] .. "áHsu"} end table.insert(data.categories, "Danh từ thân từ aH tiếng Ấn-Iran nguyên thủy") end }) decl_data["yaH-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["yaH-f"], {__call = function(self, args, data) data.decl_type = "yaH-stem" data.forms["nom_sg"] = {args[1] .. "íH"} data.forms["voc_sg"] = {args[1] .. "i"} data.forms["acc_sg"] = {args[1] .. "íHm"} data.forms["ins_sg"] = {args[1] .. "yáH"} data.forms["abl_sg"] = {args[1] .. "yáHs"} data.forms["dat_sg"] = {args[1] .. "yáy"} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = data.forms["ins_sg"] data.forms["nom_du"] = {args[1] .. "íH"} data.forms["voc_du"] = {args[1] .. "iH"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args[1] .. "íHbʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {args[1] .. "íHās"} data.forms["loc_du"] = {args[1] .. "íHaw"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "íHš"} data.forms["voc_pl"] = {args[1] .. "iHš"} data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["ins_pl"] = {args[1] .. "íHbʰiš"} data.forms["abl_pl"] = {args[1] .. "íHbʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "íHnaHam"} data.forms["loc_pl"] = {args[1] .. "íHsu"} end table.insert(data.categories, "Danh từ thân từ yaH tiếng Ấn-Iran nguyên thủy") end }) decl_data["uH-f"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["uH-f"], {__call = function(self, args, data) data.decl_type = "uH-stem" data.forms["nom_sg"] = {args[1] .. "úHs"} data.forms["voc_sg"] = {args[1] .. "u"} data.forms["acc_sg"] = {args[1] .. "úHam"} data.forms["ins_sg"] = {args[1] .. "úHaH"} data.forms["abl_sg"] = {args[1] .. "úHas"} data.forms["dat_sg"] = {args[1] .. "úHay"} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = {args[1] .. "úH"} -- HCHIEL p.1896 loc. *tanū́ if not args.nopl then data.forms["nom_pl"] = {args[1] .. "úHas"} data.forms["voc_pl"] = {args[1] .. "uHas"} data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["ins_pl"] = {args[1] .. "úHbʰiš"} data.forms["abl_pl"] = {args[1] .. "úHbʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "úHnaHam"} data.forms["loc_pl"] = {args[1] .. "úHsu"} end table.insert(data.categories, "Danh từ thân từ uH tiếng Ấn-Iran nguyên thủy") end }) decl_data["u-mf"] = { params = { [1] = {}, [2] = {}, ["stem"] = {}, ["altgsg"] = {}, ["nopl"] = {}, ["g"] = {}, }, } setmetatable(decl_data["u-mf"], {__call = function(self, args, data) data.decl_type = "masculine u-stem" local title = mw.loadData("Module:headword/data").pagename local stem = mw.ustring.gsub(title, "[uú]š$", "") if not args[1] then args[1] = stem end local gen_sg_ending if args["altgsg"] then gen_sg_ending = "wás" else gen_sg_ending = "áwš" end data.forms["nom_sg"] = {stem .. "úš"} data.forms["voc_sg"] = {stem .. "aw"} data.forms["acc_sg"] = {stem .. "úm"} data.forms["ins_sg"] = {args[1] .. "úH"} data.forms["abl_sg"] = {args[1] .. gen_sg_ending} data.forms["dat_sg"] = {args[1] .. "áway"} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = {args[1] .. "ā́w"} data.forms["nom_du"] = {stem .. "úH"} data.forms["voc_du"] = {stem .. "uH"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args[1] .. "úbʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {args[1] .. "uwā́s"} data.forms["loc_du"] = {args[1] .. "uwáw"} if not args.nopl then data.forms["nom_pl"] = {stem .. "áwas"} data.forms["voc_pl"] = {stem .. "awas"} data.forms["acc_pl"] = {stem .. "únš"} data.forms["ins_pl"] = {args[1] .. "úbʰiš"} data.forms["abl_pl"] = {args[1] .. "úbʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "uHnáHam"} data.forms["loc_pl"] = {args[1] .. "úšu"} end table.insert(data.categories, "Danh từ thân từ u tiếng Ấn-Iran nguyên thủy") end }) decl_data["u-n"] = { params = { [1] = {}, [2] = {}, ["stem"] = {}, ["altgsg"] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["u-n"], {__call = function(self, args, data) decl_data["u-mf"](args, data) local title = mw.loadData("Module:headword/data").pagename local stem = mw.ustring.gsub(title, "[uú]$", "") data.decl_type = "neuter u-stem" data.forms["nom_sg"] = {stem .. "ú"} data.forms["voc_sg"] = {stem .. "u"} data.forms["acc_sg"] = data.forms["nom_sg"] if mw.ustring.find(stem, "ā́") then debrugmann = mw.ustring.gsub(stem, "ā́", "á") end if debrugmann then strongdu = debrugmann else strongdu = stem end data.forms["nom_du"] = {strongdu .. "wiH"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["voc_du"] = data.forms["nom_du"] if not args.nopl then data.forms["nom_pl"] = {stem .. "úH"} data.forms["voc_pl"] = {stem .. "uH"} data.forms["acc_pl"] = data.forms["nom_pl"] end end }) decl_data["n-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } decl_data["r-n"] = { params = { [1] = {}, ["nopl"] = {}, }, } setmetatable(decl_data["r-n"], {__call = function(self, args, data) data.decl_type = "r-stem" data.forms["nom_sg"] = {args[1] .. "ā́"} data.forms["voc_sg"] = {args[1] .. "ar"} data.forms["acc_sg"] = {args[1] .. "áram, *-ā́ram, *-r̥m"} data.forms["ins_sg"] = {args[1] .. "ráH"} data.forms["abl_sg"] = {args[1] .. "ŕ̥š, *-rás"} data.forms["dat_sg"] = {args[1] .. "ráy"} data.forms["gen_sg"] = data.forms["abl_sg"] data.forms["loc_sg"] = {args[1] .. "ári"} data.forms["nom_du"] = {args[1] .. "áraH, -ā́raH"} data.forms["voc_du"] = {args[1] .. "araH, -āraH"} data.forms["acc_du"] = data.forms["nom_du"] data.forms["ins_du"] = {args[1] .. "ŕ̥bʰyā(m)"} data.forms["abl_du"] = data.forms["ins_du"] data.forms["dat_du"] = data.forms["ins_du"] data.forms["gen_du"] = {args[1] .. "rā́s"} data.forms["loc_du"] = {args[1] .. "ráw"} if not args.nopl then data.forms["nom_pl"] = {args[1] .. "áras, -ā́ras"} data.forms["voc_pl"] = {args[1] .. "aras, -āras"} data.forms["acc_pl"] = {args[1] .. "ŕ̥nš"} data.forms["ins_pl"] = {args[1] .. "ŕ̥bʰiš"} data.forms["abl_pl"] = {args[1] .. "ŕ̥bʰyas"} data.forms["dat_pl"] = data.forms["abl_pl"] data.forms["gen_pl"] = {args[1] .. "r̥náHam"} data.forms["loc_pl"] = {args[1] .. "ŕ̥šu"} end table.insert(data.categories, "Danh từ thân từ r tiếng Ấn-Iran nguyên thủy") end }) decl_data["irreg"] = {} setmetatable(decl_data["irreg"], {__call = function(self, args, data) local word = mw.loadData("Module:headword/data").pagename irreg_data = require("Module:iir-decl-noun/data/irreg") if irreg_data.irreg[word] then irreg_data.irreg[word](args, data) else error("Irregular inflection not found. Please check Module:iir-decl-noun/data.") end table.insert(data.categories, "Danh từ bất quy tắc tiếng Ấn-Iran nguyên thủy") end }) return decl_data fakl1en19m3orrytxyoin286tclneqf Mô đun:iir-decl-noun/data/irreg 828 396027 2351172 2026-05-07T15:48:30Z Hiyuune 50834 Trang mới: “irreg_data = {} ------ a-stems ------ irreg_data["blōþą"] = function(args, data) data.decl_type = "neuter a-stem" data.forms["nom_sg"] = {"blōþą"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"blōþas", "blōþis"} data.forms["dat_sg"] = {"blōþai"} data.forms["ins_sg"] = {"blōþō"} data.forms["nom_pl"] = {"blōdō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"]…” 2351172 Scribunto text/plain irreg_data = {} ------ a-stems ------ irreg_data["blōþą"] = function(args, data) data.decl_type = "neuter a-stem" data.forms["nom_sg"] = {"blōþą"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"blōþas", "blōþis"} data.forms["dat_sg"] = {"blōþai"} data.forms["ins_sg"] = {"blōþō"} data.forms["nom_pl"] = {"blōdō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"blōdǫ̂"} data.forms["dat_pl"] = {"blōdamaz"} data.forms["ins_pl"] = {"blōdamiz"} table.insert(data.categories, "Proto-Germanic a-stem nouns") end irreg_data["glasą"] = function(args, data) data.decl_type = "neuter a-stem" data.forms["nom_sg"] = {"glasą"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"glasas", "glasis"} data.forms["dat_sg"] = {"glasai"} data.forms["ins_sg"] = {"glasō"} data.forms["nom_pl"] = {"glazō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"glazǫ̂"} data.forms["dat_pl"] = {"glazamaz"} data.forms["ins_pl"] = {"glazamiz"} table.insert(data.categories, "Proto-Germanic a-stem nouns") end irreg_data["gulþą"] = function(args, data) data.decl_type = "neuter a-stem" data.forms["nom_sg"] = {"gulþą"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"gulþas", "gulþis"} data.forms["dat_sg"] = {"gulþai"} data.forms["ins_sg"] = {"gulþō"} data.forms["nom_pl"] = {"guldō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"guldǫ̂"} data.forms["dat_pl"] = {"guldamaz"} data.forms["ins_pl"] = {"guldamiz"} table.insert(data.categories, "Proto-Germanic a-stem nouns") end irreg_data["hwehwlą"] = function(args, data) data.decl_type = "neuter a-stem" data.forms["nom_sg"] = {"hwehwlą"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"hwehwlas", "hwihwlis"} data.forms["dat_sg"] = {"hwihwlai"} data.forms["ins_sg"] = {"hwehwlō"} data.forms["nom_pl"] = {"hweulō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"hweulǫ̂"} data.forms["dat_pl"] = {"hweulamaz"} data.forms["ins_pl"] = {"hweulamiz"} table.insert(data.categories, "Proto-Germanic a-stem nouns") end irreg_data["jehwlą"] = function(args, data) data.decl_type = "neuter a-stem" data.forms["nom_sg"] = {"jehwlą"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"jehwlas", "jihwlis"} data.forms["dat_sg"] = {"jihwlai"} data.forms["ins_sg"] = {"jehwlō"} data.forms["nom_pl"] = {"jeulō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"jeulǫ̂"} data.forms["dat_pl"] = {"jeulamaz"} data.forms["ins_pl"] = {"jeulamiz"} table.insert(data.categories, "Proto-Germanic a-stem nouns") end irreg_data["tahrą"] = function(args, data) data.decl_type = "neuter a-stem" data.forms["nom_sg"] = {"tahrą"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"tahras", "tahris"} data.forms["dat_sg"] = {"tahrai"} data.forms["ins_sg"] = {"tahrō"} data.forms["nom_pl"] = {"tagrō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"tagrǫ̂"} data.forms["dat_pl"] = {"tagramaz"} data.forms["ins_pl"] = {"tagramiz"} table.insert(data.categories, "Proto-Germanic a-stem nouns") end ------ Consonant stems ------ irreg_data["aigin"] = function(args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {"aigin"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"aiginþiz"} data.forms["dat_sg"] = {"aiginþi"} data.forms["ins_sg"] = {"aiginþē"} data.forms["nom_pl"] = {"aiginþ"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"aiginþǫ̂"} data.forms["dat_pl"] = {"aiginþumaz"} data.forms["ins_pl"] = {"aiginþumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["alu"] = function(args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {"alu"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"aluþiz"} data.forms["dat_sg"] = {"aluþi"} data.forms["ins_sg"] = {"aluþē"} data.forms["nom_pl"] = {"aluþ"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"aluþǫ̂"} data.forms["dat_pl"] = {"aluþumaz"} data.forms["ins_pl"] = {"aluþumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["arô"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"arô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"arnų"} data.forms["gen_sg"] = {"arniz"} data.forms["dat_sg"] = {"arni"} data.forms["ins_sg"] = {"arnē"} data.forms["nom_pl"] = {"arniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"arnunz"} data.forms["gen_pl"] = {"arnǫ̂"} data.forms["dat_pl"] = {"arnumaz"} data.forms["ins_pl"] = {"arnumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["asunz"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"asunz"} data.forms["voc_sg"] = {"asų"} data.forms["acc_sg"] = {"asnų"} data.forms["gen_sg"] = {"asniz"} data.forms["dat_sg"] = {"asni"} data.forms["ins_sg"] = {"asnē"} data.forms["nom_pl"] = {"asniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"asnunz"} data.forms["gen_pl"] = {"asnǫ̂"} data.forms["dat_pl"] = {"asnumaz"} data.forms["ins_pl"] = {"asnumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["berô"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"berô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"bernų"} data.forms["gen_sg"] = {"berniz"} data.forms["dat_sg"] = {"berni"} data.forms["ins_sg"] = {"bernē"} data.forms["nom_pl"] = {"berniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"bernunz"} data.forms["gen_pl"] = {"bernǫ̂"} data.forms["dat_pl"] = {"bernumaz"} data.forms["ins_pl"] = {"bernumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["ēbanþs"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"ēbanþs"} data.forms["voc_sg"] = {"ēbanþ"} data.forms["acc_sg"] = {"ēbanþų"} data.forms["gen_sg"] = {"ēbundiz"} data.forms["dat_sg"] = {"ēbundi"} data.forms["ins_sg"] = {"ēbundē"} data.forms["nom_pl"] = {"ēbanþiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"ēbanþunz"} data.forms["gen_pl"] = {"ēbundǫ̂"} data.forms["dat_pl"] = {"ēbundumaz"} data.forms["ins_pl"] = {"ēbundumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["ili"] = function(args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {"ili"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"iliþiz"} data.forms["dat_sg"] = {"iliþi"} data.forms["ins_sg"] = {"iliþē"} data.forms["nom_pl"] = {"iliþ"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"iliþǫ̂"} data.forms["dat_pl"] = {"iliþumaz"} data.forms["ins_pl"] = {"iliþumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["kūz"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"kūz"} data.forms["voc_sg"] = {"kū"} data.forms["acc_sg"] = {"kwǭ"} data.forms["gen_sg"] = {"kwōiz"} data.forms["dat_sg"] = {"kwōi"} data.forms["ins_sg"] = {"kwōē"} data.forms["nom_pl"] = {"kwōiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"kwōnz"} data.forms["gen_pl"] = {"kwōǫ̂"} data.forms["dat_pl"] = {"kwōmaz"} data.forms["ins_pl"] = {"kwōmiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["mann-"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"mann-", "manô", "mannô"} data.forms["voc_sg"] = {"mann"} data.forms["acc_sg"] = {"mannǭ"} data.forms["gen_sg"] = {"manniz"} data.forms["dat_sg"] = {"manni"} data.forms["ins_sg"] = {"mannē"} data.forms["nom_pl"] = {"manniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"mannunz"} data.forms["gen_pl"] = {"mannǫ̂"} data.forms["dat_pl"] = {"mannumaz"} data.forms["ins_pl"] = {"mannumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["metaþs"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"metaþs"} data.forms["voc_sg"] = {"metaþ"} data.forms["acc_sg"] = {"metaþų"} data.forms["gen_sg"] = {"metadiz"} data.forms["dat_sg"] = {"metadi"} data.forms["ins_sg"] = {"metadē"} data.forms["nom_pl"] = {"metaþiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"metaþunz"} data.forms["gen_pl"] = {"metadǫ̂"} data.forms["dat_pl"] = {"metadumaz"} data.forms["ins_pl"] = {"metadumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["mili"] = function(args, data) data.decl_type = "neuter consonant stem" data.forms["nom_sg"] = {"mili"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"milidiz"} data.forms["dat_sg"] = {"milidi"} data.forms["ins_sg"] = {"milidē"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["stuþs"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"stuþs"} data.forms["voc_sg"] = {"stuþ"} data.forms["acc_sg"] = {"stuþų"} data.forms["gen_sg"] = {"studiz"} data.forms["dat_sg"] = {"studi"} data.forms["ins_sg"] = {"studē"} data.forms["nom_pl"] = {"stuþiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"stuþunz"} data.forms["gen_pl"] = {"studǫ̂"} data.forms["dat_pl"] = {"studumaz"} data.forms["ins_pl"] = {"studumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["sūz"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"sūz"} data.forms["voc_sg"] = {"sū"} data.forms["acc_sg"] = {"suwų"} data.forms["gen_sg"] = {"suwiz"} data.forms["dat_sg"] = {"suwi"} data.forms["ins_sg"] = {"sūē"} data.forms["nom_pl"] = {"suwiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"suwunz"} data.forms["gen_pl"] = {"sūǫ̂"} data.forms["dat_pl"] = {"suwumaz"} data.forms["ins_pl"] = {"suwumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["tanþs"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"tanþs"} data.forms["voc_sg"] = {"tanþ"} data.forms["acc_sg"] = {"tanþų"} data.forms["gen_sg"] = {"tundiz"} data.forms["dat_sg"] = {"tundi"} data.forms["ins_sg"] = {"tundē"} data.forms["nom_pl"] = {"tanþiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"tanþunz"} data.forms["gen_pl"] = {"tundǫ̂"} data.forms["dat_pl"] = {"tundumaz"} data.forms["ins_pl"] = {"tundumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end irreg_data["wrōts"] = function(args, data) data.decl_type = "consonant stem" data.forms["nom_sg"] = {"wrōts"} data.forms["voc_sg"] = {"wrōt"} data.forms["acc_sg"] = {"wrōtų"} data.forms["gen_sg"] = {"wurtiz"} data.forms["dat_sg"] = {"wurti"} data.forms["ins_sg"] = {"wurtē"} data.forms["nom_pl"] = {"wrōtiz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"wrōtunz"} data.forms["gen_pl"] = {"wurtǫ̂"} data.forms["dat_pl"] = {"wurtumaz"} data.forms["ins_pl"] = {"wurtumiz"} table.insert(data.categories, "Proto-Germanic consonant stem nouns") end ------ i-stems ------ irreg_data["burþiz"] = function(args, data) if not args[1] then irreg_data["burþiz"]({""}, data) return end data.decl_type = "i-stem" data.forms["nom_sg"] = {args[1] .. "burþiz"} data.forms["voc_sg"] = {args[1] .. "burþi"} data.forms["acc_sg"] = {args[1] .. "burþį"} data.forms["gen_sg"] = {args[1] .. "burdīz"} data.forms["dat_sg"] = {args[1] .. "burdī"} data.forms["ins_sg"] = {args[1] .. "burdī"} data.forms["nom_pl"] = {args[1] .. "burþīz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {args[1] .. "burþīnz"} data.forms["gen_pl"] = {args[1] .. "burdijǫ̂"} data.forms["dat_pl"] = {args[1] .. "burdimaz"} data.forms["ins_pl"] = {args[1] .. "burdimiz"} table.insert(data.categories, "Proto-Germanic i-stem nouns") end irreg_data["fraburþiz"] = function(args, data) irreg_data["burþiz"]({"fra"}, data) end irreg_data["gaburþiz"] = function(args, data) irreg_data["burþiz"]({"ga"}, data) end irreg_data["kinþiz"] = function(args, data) data.decl_type = "i-stem" data.forms["nom_sg"] = {"kinþiz"} data.forms["voc_sg"] = {"kinþi"} data.forms["acc_sg"] = {"kinþį"} data.forms["gen_sg"] = {"kundīz"} data.forms["dat_sg"] = {"kundī"} data.forms["ins_sg"] = {"kundī"} data.forms["nom_pl"] = {"kinþīz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"kinþīnz"} data.forms["gen_pl"] = {"kundijǫ̂"} data.forms["dat_pl"] = {"kundimaz"} data.forms["ins_pl"] = {"kundimiz"} table.insert(data.categories, "Proto-Germanic i-stem nouns") end irreg_data["kumþiz"] = function(args, data) data.decl_type = "i-stem" data.forms["nom_sg"] = {"kumþiz"} data.forms["voc_sg"] = {"kumþi"} data.forms["acc_sg"] = {"kumþį"} data.forms["gen_sg"] = {"kundīz"} data.forms["dat_sg"] = {"kundī"} data.forms["ins_sg"] = {"kundī"} data.forms["nom_pl"] = {"kumþīz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"kumþīnz"} data.forms["gen_pl"] = {"kundijǫ̂"} data.forms["dat_pl"] = {"kundimaz"} data.forms["ins_pl"] = {"kundimiz"} table.insert(data.categories, "Proto-Germanic i-stem nouns") end ------ i/jo stems ------ irreg_data["akwisī"] = function(args, data) data.decl_type = "ī/jō-stem" data.forms["nom_sg"] = {"akwisī"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"akuzijǭ"} data.forms["gen_sg"] = {"akuzijōz"} data.forms["dat_sg"] = {"akuzijōi"} data.forms["ins_sg"] = {"akuzijō"} data.forms["nom_pl"] = {"akuzijôz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"akuzijōz"} data.forms["gen_pl"] = {"akuzijǫ̂"} data.forms["dat_pl"] = {"akuzijōmaz"} data.forms["ins_pl"] = {"akuzijōmiz"} table.insert(data.categories, "Proto-Germanic ī/jō-stem nouns") end ------ n-stems ------ irreg_data["abô"] = function(args, data) data.decl_type = "masculine an-stem" data.forms["nom_sg"] = {"abô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"abanų"} data.forms["gen_sg"] = {"abniz"} data.forms["dat_sg"] = {"abni"} data.forms["ins_sg"] = {"abnē"} data.forms["nom_pl"] = {"abniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"abnuz"} data.forms["gen_pl"] = {"abnǫ̂"} data.forms["dat_pl"] = {"abnamaz"} data.forms["ins_pl"] = {"abnamiz"} table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["namô"] = function(args, data) data.decl_type = "neuter an-stem" data.forms["nom_sg"] = {"namô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"namniz"} data.forms["dat_sg"] = {"namni"} data.forms["ins_sg"] = {"namnē"} data.forms["nom_pl"] = {"namnō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"namnǫ̂"} data.forms["dat_pl"] = {"namnamaz"} data.forms["ins_pl"] = {"namnamiz"} table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["sēmô"] = function(args, data) data.decl_type = "neuter an-stem" data.forms["nom_sg"] = {"sēmô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"sēmniz"} data.forms["dat_sg"] = {"sēmni"} data.forms["ins_sg"] = {"sēmnē"} data.forms["nom_pl"] = {"sēmnō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"sēmnǫ̂"} data.forms["dat_pl"] = {"sēmnamaz"} data.forms["ins_pl"] = {"sēmnamiz"} table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["uhsô"] = function(args, data) data.decl_type = "masculine an-stem" data.forms["nom_sg"] = {"uhsô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"uhsanų"} data.forms["gen_sg"] = {"uhsniz"} data.forms["dat_sg"] = {"uhsni"} data.forms["ins_sg"] = {"uhsnē"} data.forms["nom_pl"] = {"uhsniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"uhsnuz"} data.forms["gen_pl"] = {"uhsnǫ̂"} data.forms["dat_pl"] = {"uhsnamaz"} data.forms["ins_pl"] = {"uhsnamiz"} table.insert(data.categories, "Proto-Germanic an-stem nouns") end irreg_data["hesô"] = function(args, data) data.decl_type = "masculine an-stem" data.forms["nom_sg"] = {"hesô"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"hesanų"} data.forms["gen_sg"] = {"hazniz"} data.forms["dat_sg"] = {"hazni"} data.forms["ins_sg"] = {"haznē"} data.forms["nom_pl"] = {"hesniz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"hesnuz"} data.forms["gen_pl"] = {"haznǫ̂"} data.forms["dat_pl"] = {"haznamaz"} data.forms["ins_pl"] = {"haznamiz"} table.insert(data.categories, "Proto-Germanic an-stem nouns") end ------ o-stems ------ irreg_data["mēþwō"] = function(args, data) data.decl_type = "o-stem" data.forms["nom_sg"] = {"mēþwō"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = {"mēþwǭ"} data.forms["gen_sg"] = {"madwōz"} data.forms["dat_sg"] = {"madwōi"} data.forms["ins_sg"] = {"madwō"} data.forms["nom_pl"] = {"mēþwôz"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = {"mēþwōz"} data.forms["gen_pl"] = {"madwǫ̂"} data.forms["dat_pl"] = {"madwōmaz"} data.forms["ins_pl"] = {"madwōmiz"} table.insert(data.categories, "Proto-Germanic o-stem nouns") end ------ Miscellaneous ------ irreg_data["fōr"] = function(args, data) data.decl_type = "paradigm " .. args[1] data.forms["nom_sg"] = {"fōr"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] if args[1] == "1" then data.forms["gen_sg"] = {"funiz"} data.forms["dat_sg"] = {"funi"} data.forms["ins_sg"] = {"funē"} elseif args[1] == "2" then data.forms["gen_sg"] = {"fuiniz"} data.forms["dat_sg"] = {"fuini"} data.forms["ins_sg"] = {"fuinē"} elseif args[1] == "3" then data.forms["gen_sg"] = {"funiniz"} data.forms["dat_sg"] = {"funini"} data.forms["ins_sg"] = {"funinē"} end end irreg_data["watōr"] = function(args, data) data.decl_type = "heteroclitic, irregular" data.forms["nom_sg"] = {"watōr"} data.forms["voc_sg"] = data.forms["nom_sg"] data.forms["acc_sg"] = data.forms["nom_sg"] data.forms["gen_sg"] = {"watiniz"} data.forms["dat_sg"] = {"watini"} data.forms["ins_sg"] = {"watinē"} data.forms["nom_pl"] = {"watnō"} data.forms["voc_pl"] = data.forms["nom_pl"] data.forms["acc_pl"] = data.forms["nom_pl"] data.forms["gen_pl"] = {"watnǫ̂"} data.forms["dat_pl"] = {"watnamaz"} data.forms["ins_pl"] = {"watnamiz"} end return irreg_data strlhgpatefuesuz4fry10buiseeaqy Bản mẫu:iir-decl-noun 10 396028 2351173 2026-05-07T15:49:08Z Hiyuune 50834 Trang mới: “{{#invoke:iir-decl-noun|show}}<!-- --><noinclude>{{documentation}}</noinclude>” 2351173 wikitext text/x-wiki {{#invoke:iir-decl-noun|show}}<!-- --><noinclude>{{documentation}}</noinclude> jvsvc9vb7ncachidbw73y0ymjk251n4 網誌 0 396031 2351211 2026-05-07T22:38:33Z Kateru Zakuro 34522 Trang mới: “{{also|网志}} =={{langname|zh}}== {{zh-forms|s=网志}} ==={{ĐM|pronunciation}}=== {{zh-pron |m=wǎngzhì |c=mong5 zi3 |mn=bāng-chì |md=uōng-cé |cat=n }} ==={{ĐM|noun}}=== {{head|zh|noun}} # [[nhật ký|Nhật ký]] [[mạng]], [[blog]] ===={{ĐM|syn}}==== * {{qualifier|Mainland China}} {{zh-l|博客}} * {{qualifier|Taiwan}} {{zh-l|部落格}} {{C|zh|Internet|Blog}}” 2351211 wikitext text/x-wiki {{also|网志}} =={{langname|zh}}== {{zh-forms|s=网志}} ==={{ĐM|pronunciation}}=== {{zh-pron |m=wǎngzhì |c=mong5 zi3 |mn=bāng-chì |md=uōng-cé |cat=n }} ==={{ĐM|noun}}=== {{head|zh|noun}} # [[nhật ký|Nhật ký]] [[mạng]], [[blog]] ===={{ĐM|syn}}==== * {{qualifier|Mainland China}} {{zh-l|博客}} * {{qualifier|Taiwan}} {{zh-l|部落格}} {{C|zh|Internet|Blog}} 39dwh8z2f20qqwxv1dte0jva4kbumb2 2351212 2351211 2026-05-07T22:38:50Z Kateru Zakuro 34522 2351212 wikitext text/x-wiki {{also|网志}} =={{langname|zh}}== {{zh-forms|s=网志}} ==={{ĐM|pronunciation}}=== {{zh-pron |m=wǎngzhì |c=mong5 zi3 |mn=bāng-chì |md=uōng-cé |cat=n }} ==={{ĐM|noun}}=== {{head|zh|noun}} # [[nhật ký|Nhật ký]] [[mạng]], [[blog]] ===={{ĐM|syn}}==== * {{qualifier|Trung Quốc Đại Lục}} {{zh-l|博客}} * {{qualifier|Taiwan}} {{zh-l|部落格}} {{C|zh|Internet|Blog}} eg0c7inc0d0xi5bl2k09rg4y2i5xknw 2351213 2351212 2026-05-07T22:39:01Z Kateru Zakuro 34522 2351213 wikitext text/x-wiki {{also|网志}} =={{langname|zh}}== {{zh-forms|s=网志}} ==={{ĐM|pronunciation}}=== {{zh-pron |m=wǎngzhì |c=mong5 zi3 |mn=bāng-chì |md=uōng-cé |cat=n }} ==={{ĐM|noun}}=== {{head|zh|noun}} # [[nhật ký|Nhật ký]] [[mạng]], [[blog]] ===={{ĐM|syn}}==== * {{qualifier|Trung Quốc Đại Lục}} {{zh-l|博客}} * {{qualifier|Đài Loan}} {{zh-l|部落格}} {{C|zh|Internet|Blog}} gg45aedduc88jzcpppsxp3rdt72cszc paellas 0 396032 2351216 2026-05-08T01:05:19Z Hiyuune 50834 Trang mới: “{{also|paëllas}} =={{langname|en}}== ==={{section|n}}=== {{head|en|Biến thể hình thái danh từ}} # {{plural of|en|paella}} ==={{section|ana}}=== * {{anagrams|en|a=aaellps|Laelaps|pasella}} =={{langname|gl}}== ==={{section|n}}=== {{head|gl|Biến thể hình thái danh từ}} # {{plural of|gl|paella}} =={{langname|fr}}== ==={{section|n}}=== {{head|fr|Biến thể hình thái danh từ|g=f}} # {{plural of|fr|paella}} =={{langname|es}}== ==={{section|n}}==…” 2351216 wikitext text/x-wiki {{also|paëllas}} =={{langname|en}}== ==={{section|n}}=== {{head|en|Biến thể hình thái danh từ}} # {{plural of|en|paella}} ==={{section|ana}}=== * {{anagrams|en|a=aaellps|Laelaps|pasella}} =={{langname|gl}}== ==={{section|n}}=== {{head|gl|Biến thể hình thái danh từ}} # {{plural of|gl|paella}} =={{langname|fr}}== ==={{section|n}}=== {{head|fr|Biến thể hình thái danh từ|g=f}} # {{plural of|fr|paella}} =={{langname|es}}== ==={{section|n}}=== {{head|es|Biến thể hình thái danh từ|g=f-p}} # {{plural of|es|paella}} i7qgryrtyo5nfkpojva8jmcvlsvgyqd paellan 0 396033 2351217 2026-05-08T01:08:17Z Hiyuune 50834 Trang mới: “=={{langname|fi}}== ==={{section|n}}=== {{head|fi|Biến thể hình thái danh từ}} # {{infl of|fi|paella||gen//acc|s}}” 2351217 wikitext text/x-wiki =={{langname|fi}}== ==={{section|n}}=== {{head|fi|Biến thể hình thái danh từ}} # {{infl of|fi|paella||gen//acc|s}} ag8zamxcrl2v7ahn1zc4wcl0yf9mchs paellaa 0 396034 2351218 2026-05-08T01:09:04Z Hiyuune 50834 + fi 2351218 wikitext text/x-wiki =={{langname|fi}}== ==={{section|n}}=== {{head|fi|Biến thể hình thái danh từ}} # {{infl of|fi|paella||ptv|s}} m296c3mqffsa8gu2nbhb6cyhzsllar4 paellaan 0 396035 2351219 2026-05-08T01:10:09Z Hiyuune 50834 + fi 2351219 wikitext text/x-wiki =={{langname|fi}}== ==={{section|n}}=== {{head|fi|Biến thể hình thái danh từ}} # {{infl of|fi|paella||ill|s}} 99r0oy02bx4g10s8g899ku4b8jubs7b paellą 0 396036 2351220 2026-05-08T01:10:58Z Hiyuune 50834 + pl 2351220 wikitext text/x-wiki =={{langname|pl}}== ==={{section|pron}}=== {{pl-pr}} ==={{section|n}}=== {{head|pl|Biến thể hình thái danh từ}} # {{infl of|pl|paella||ins|s}} 2khttseewgklbgp95rvln8s25kytnem sarkofagon 0 396037 2351222 2026-05-08T01:15:23Z Hiyuune 50834 Trang mới: “=={{langname|eo}}== ==={{section|n}}=== {{eo-head}} # {{eo-form of|sarkofag|on}}” 2351222 wikitext text/x-wiki =={{langname|eo}}== ==={{section|n}}=== {{eo-head}} # {{eo-form of|sarkofag|on}} dq20epg7vxx1aibhyipjlu4n8mk6tsf skanꜩ 0 396038 2351223 2026-05-08T01:32:19Z Hiyuune 50834 Trang mới: “=={{langname|sv}}== ==={{section|n}}=== {{head|sv|Danh từ}} [[File:Stockholms skärgård (A3) 1644–1652 (Skanꜩen crop).tif|thumb|'''Skanꜩen''' (xác định)]] # {{lb|sv|historical}} {{alternative form of|sv|skans}}” 2351223 wikitext text/x-wiki =={{langname|sv}}== ==={{section|n}}=== {{head|sv|Danh từ}} [[File:Stockholms skärgård (A3) 1644–1652 (Skanꜩen crop).tif|thumb|'''Skanꜩen''' (xác định)]] # {{lb|sv|historical}} {{alternative form of|sv|skans}} 2zlg5378olflu756qq6hf0uuv4aorbq Mô đun:zh/data/dial-syn/聖訓 828 396039 2351224 2026-05-08T01:34:43Z Hiyuune 50834 Trang mới: “local export = {} export.list = { ["title"] = "", ["meaning"] = "hadith", ["note"] = "", ["Classical"] = { "" }, ["Formal"] = { "聖訓" }, ["Taxonomic"] = { "" }, ["Beijing"] = { "孩兒低斯" }, ["Beijing-PG"] = { "" }, ["Beijing-MY"] = { "" }, ["Beijing-HR"] = { "" }, ["Beijing-YQ"] = { "" }, ["Beijing-CP"] = { "" }, ["Beijing-MTG"] = { "" }, ["Beijing-FS"] = { "" }, ["Taiwan"] = { "聖訓" }, ["T…” 2351224 Scribunto text/plain local export = {} export.list = { ["title"] = "", ["meaning"] = "hadith", ["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"] = { "" }, ["Jingzhou-SS"] = { "" }, ["Malaysia-M"] = { "" }, ["Singapore-M"] = { "" }, ["Taz"] = { "" }, ["Tianjin"] = { "" }, ["Tianjin-JZ"] = { "" }, ["Tianjin-BD"] = { "" }, ["Tianjin-NH"] = { "" }, ["Tianjin-HG"] = { "" }, ["Tianjin-TG"] = { "" }, ["Tianjin-DG"] = { "" }, ["Tianjin-JN"] = { "" }, ["Tianjin-DL"] = { "" }, ["Tianjin-JH"] = { "" }, ["Tianjin-XQ"] = { "" }, ["Tianjin-BC"] = { "" }, ["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"] = { "" }, ["Chengyang"] = { "" }, ["Jimo"] = { "" }, ["Laixi"] = { "" }, ["Pingdu"] = { "" }, ["Jiaozhou"] = { "" }, ["Jiaonan"] = { "" }, ["Hanting"] = { "" }, ["Changyi"] = { "" }, ["Gaomi"] = { "" }, ["Zhucheng"] = { "" }, ["Anqiu"] = { "" }, ["Linqu"] = { "" }, ["Qingzhou"] = { "" }, ["Yishui"] = { "" }, ["Hulin-XL"] = { "" }, ["Linjiang"] = { "" }, ["Ji'an-M"] = { "" }, ["Luoyang"] = { "" }, ["Luoning"] = { "" }, ["Sanmenxia"] = { "" }, ["Lingbao"] = { "" }, ["Luohe"] = { "" }, ["Zhumadian"] = { "" }, ["Biyang"] = { "" }, ["Zhoukou"] = { "" }, ["Dancheng"] = { "" }, ["Xuchang"] = { "" }, ["Changge"] = { "" }, ["Pingdingshan"] = { "" }, ["Lushan-M"] = { "" }, ["Nanyang"] = { "" }, ["Xixia"] = { "" }, ["Dengzhou"] = { "" }, ["Zaozhuang"] = { "" }, ["Ningyang"] = { "" }, ["Jining-M"] = { "" }, ["Linyi"] = { "" }, ["Heze"] = { "" }, ["Daming"] = { "" }, ["Yuncheng"] = { "" }, ["Wenxi"] = { "" }, ["Longxing"] = { "" }, ["Yongji"] = { "" }, ["Wanrong"] = { "" }, ["Ronghe"] = { "" }, ["Linfen"] = { "" }, ["Jixian"] = { "" }, ["Huozhou"] = { "" }, ["Hongtong"] = { "" }, ["Shangqiu"] = { "" }, ["Yongcheng"] = { "" }, ["Yuanyang"] = { "" }, ["Zhengzhou"] = { "" }, ["Kaifeng"] = { "" }, ["Lankao"] = { "" }, ["Changyuan"] = { "" }, ["Xunxian"] = { "" }, ["Puyang"] = { "" }, ["Fanxian"] = { "" }, ["Xinyang"] = { "" }, ["Gushi"] = { "" }, ["Shangluo"] = { "" }, ["Luonan"] = { "" }, ["Danfeng"] = { "" }, ["Shangnan"] = { "" }, ["Shanyang"] = { "" }, ["Zhen'an"] = { "" }, ["Hanbin"] = { "" }, ["Hanbin-XH"] = { "" }, ["Baihe"] = { "" }, ["Baihe-MP"] = { "" }, ["Pingli"] = { "" }, ["Xunyang"] = { "" }, ["Lueyang"] = { "" }, ["Mianxian"] = { "" }, ["Yangxian"] = { "" }, ["Xi'an"] = { "" }, ["Weiyang"] = { "" }, ["Baqiao"] = { "" }, ["Yanliang"] = { "" }, ["Lintong"] = { "" }, ["Chang'an"] = { "" }, ["Huyi"] = { "" }, ["Gaoling"] = { "" }, ["Zhouzhi"] = { "" }, ["Lantian"] = { "" }, ["Xianyang"] = { "" }, ["Xingping"] = { "" }, ["Wugong"] = { "" }, ["Qianxian"] = { "" }, ["Liquan"] = { "" }, ["Jingyang"] = { "" }, ["Sanyuan-M"] = { "" }, ["Yongshou"] = { "" }, ["Changwu"] = { "" }, ["Tongchuan"] = { "" }, ["Yaozhou"] = { "" }, ["Yijun"] = { "" }, ["Weinan"] = { "" }, ["Weinan-HZ"] = { "" }, ["Hancheng"] = { "" }, ["Huayin"] = { "" }, ["Tongguan"] = { "" }, ["Dali-SX"] = { "" }, ["Heyang"] = { "" }, ["Chengcheng"] = { "" }, ["Baishui"] = { "" }, ["Pucheng-M"] = { "" }, ["Fuping"] = { "" }, ["Huanglong"] = { "" }, ["Yichuan"] = { "" }, ["Huangling"] = { "" }, ["Luochuan"] = { "" }, ["Fuxian"] = { "" }, ["Dingbian"] = { "" }, ["Baoji"] = { "" }, ["Baoji-CC"] = { "" }, ["Fengxiang"] = { "" }, ["Qishan"] = { "" }, ["Fufeng"] = { "" }, ["Meixian-M"] = { "" }, ["Taibai"] = { "" }, ["Fengxian-SX"] = { "" }, ["Qianyang"] = { "" }, ["Longxian"] = { "" }, ["Linyou"] = { "" }, ["Tongxin"] = { "" }, ["Yanchi"] = { "" }, ["Guyuan"] = { "" }, ["Xiji"] = { "" }, ["Longde"] = { "" }, ["Jingyuan"] = { "" }, ["Tianshui"] = { "" }, ["Hezuo"] = { "" }, ["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"] = { "" }, ["Lingwu"] = { "哈爾笛斯" }, ["Najiahu"] = { "" }, ["Wuzhong"] = { "" }, ["Zhongwei"] = { "" }, ["Bayanhot"] = { "" }, ["Lanzhou"] = { "" }, ["Jiuquan"] = { "" }, ["Dunhuang"] = { "" }, ["Shandan"] = { "" }, ["Wuwei-GS"] = { "" }, ["Wuwei-GS-ZY"] = { "" }, ["Tianzhu"] = { "" }, ["Hami"] = { "" }, ["Changji"] = { "" }, ["Ürümqi"] = { "" }, ["Dabancheng-XG"] = { "" }, ["Midong-CSZ"] = { "" }, ["Ürümqi-BFG"] = { "" }, ["Jimsar"] = { "" }, ["Chengdu"] = { "" }, ["Xindu"] = { "" }, ["Xindu-XF"] = { "" }, ["Huayang"] = { "" }, ["Pidu"] = { "" }, ["Wenjiang"] = { "" }, ["Shuangliu"] = { "" }, ["Xinjin"] = { "" }, ["Jintang"] = { "" }, ["Pengzhou"] = { "" }, ["Dujiangyan"] = { "" }, ["Chongzhou"] = { "" }, ["Dayi"] = { "" }, ["Pujiang-M"] = { "" }, ["Qionglai"] = { "" }, ["Jianyang-M"] = { "" }, ["Xiaojin"] = { "" }, ["Jinchuan"] = { "" }, ["Songpan"] = { "" }, ["Maoxian"] = { "" }, ["Lixian"] = { "" }, ["Wenchuan"] = { "" }, ["Deyang"] = { "" }, ["Luojiang"] = { "" }, ["Mianzhu"] = { "" }, ["Shifang"] = { "" }, ["Guanghan"] = { "" }, ["Zhongjiang"] = { "" }, ["Ziyang-SC"] = { "" }, ["Anyue"] = { "" }, ["Lezhi"] = { "" }, ["Mianyang"] = { "" }, ["Anzhou"] = { "" }, ["Zitong"] = { "" }, ["Jiangyou"] = { "" }, ["Jiangyou-ZM"] = { "" }, ["Pingwu"] = { "" }, ["Beichuan"] = { "" }, ["Yanting"] = { "" }, ["Santai"] = { "" }, ["Guangyuan"] = { "" }, ["Zhaohua"] = { "" }, ["Cangxi"] = { "" }, ["Jiange"] = { "" }, ["Meishan"] = { "" }, ["Pengshan"] = { "" }, ["Danling"] = { "" }, ["Hongya"] = { "" }, ["Qingshen"] = { "" }, ["Renshou"] = { "" }, ["Luzhou"] = { "" }, ["Naxi"] = { "" }, ["Luxian"] = { "" }, ["Xuyong"] = { "" }, ["Gulin"] = { "" }, ["Hejiang"] = { "" }, ["Yibin"] = { "" }, ["Nanxi"] = { "" }, ["Pingshan-M"] = { "" }, ["Gaoxian"] = { "" }, ["Changning-M"] = { "" }, ["Gongxian"] = { "" }, ["Xingwen-GS"] = { "" }, ["Xingwen-BWS"] = { "" }, ["Jiang'an"] = { "" }, ["Junlian"] = { "" }, ["Leshan"] = { "" }, ["Jiajiang"] = { "" }, ["Emeishan"] = { "" }, ["Ebian"] = { "" }, ["Qianwei"] = { "" }, ["Mabian"] = { "" }, ["Jingyan"] = { "" }, ["Neijiang"] = { "" }, ["Zizhong"] = { "" }, ["Weiyuan"] = { "" }, ["Longchang"] = { "" }, ["Suining-SC"] = { "" }, ["Pengxi"] = { "" }, ["Shehong"] = { "" }, ["Guang'an"] = { "" }, ["Yuechi"] = { "" }, ["Wusheng"] = { "" }, ["Linshui"] = { "" }, ["Nanchong"] = { "" }, ["Nanbu"] = { "" }, ["Langzhong"] = { "" }, ["Yilong"] = { "" }, ["Yingshan"] = { "" }, ["Peng'an"] = { "" }, ["Dazhou"] = { "" }, ["Dazhu"] = { "" }, ["Kaijiang"] = { "" }, ["Wanyuan"] = { "" }, ["Xuanhan"] = { "" }, ["Bazhong"] = { "" }, ["Tongjiang"] = { "" }, ["Nanjiang"] = { "" }, ["Hanyuan"] = { "" }, ["Xichang"] = { "" }, ["Zigong"] = { "" }, ["Fushun"] = { "" }, ["Rongxian-M"] = { "" }, ["Muli"] = { "" }, ["Leibo"] = { "" }, ["Chongqing"] = { "" }, ["Chongqing-JB"] = { "" }, ["Chongqing-JLP"] = { "" }, ["Chongqing-DDK"] = { "" }, ["Chongqing-SPB"] = { "" }, ["Chongqing-BN"] = { "" }, ["Chongqing-NA"] = { "" }, ["Chongqing-QIJ"] = { "" }, ["Chongqing-QJ-WS"] = { "" }, ["Chongqing-YB"] = { "" }, ["Chongqing-BB"] = { "" }, ["Chongqing-NC"] = { "" }, ["Chongqing-WL"] = { "" }, ["Chongqing-DZ"] = { "" }, ["Chongqing-RC"] = { "" }, ["Chongqing-YC"] = { "" }, ["Chongqing-BS"] = { "" }, ["Chongqing-TL"] = { "" }, ["Chongqing-TN"] = { "" }, ["Chongqing-HC"] = { "" }, ["Chongqing-CS"] = { "" }, ["Chongqing-FL"] = { "" }, ["Chongqing-JJ"] = { "" }, ["Chongqing-WZ"] = { "" }, ["Chongqing-SZ"] = { "" }, ["Chongqing-KZ"] = { "" }, ["Chongqing-CK"] = { "" }, ["Chongqing-DJ"] = { "" }, ["Chongqing-LP"] = { "" }, ["Chongqing-FD"] = { "" }, ["Chongqing-ZX"] = { "" }, ["Chongqing-QJ"] = { "" }, ["Chongqing-PS"] = { "" }, ["Chongqing-YY"] = { "" }, ["Chongqing-XS"] = { "" }, ["Chongqing-YNY"] = { "" }, ["Chongqing-WX"] = { "" }, ["Chongqing-FJ"] = { "" }, ["Chongqing-WS"] = { "" }, ["Wuhan"] = { "" }, ["Jiangxia"] = { "" }, ["Caidian"] = { "" }, ["Xinzhou-HB"] = { "" }, ["Huangpi"] = { "" }, ["Hanchuan"] = { "" }, ["Suizhou"] = { "" }, ["Suixian"] = { "" }, ["Yichang"] = { "" }, ["Dangyang"] = { "" }, ["Zhijiang"] = { "" }, ["Yidu"] = { "" }, ["Changyang"] = { "" }, ["Xingshan"] = { "" }, ["Zigui"] = { "" }, ["Wufeng"] = { "" }, ["Enshi"] = { "" }, ["Hefeng"] = { "" }, ["Badong"] = { "" }, ["Xuan'en"] = { "" }, ["Laifeng"] = { "" }, ["Lichuan-M"] = { "" }, ["Jianshi"] = { "" }, ["Xianfeng"] = { "" }, ["Xiangyang"] = { "" }, ["Laohekou"] = { "" }, ["Baokang"] = { "" }, ["Nanzhang"] = { "" }, ["Zaoyang"] = { "" }, ["Yicheng"] = { "" }, ["Gucheng"] = { "" }, ["Jingzhou"] = { "" }, ["Jiangling"] = { "" }, ["Shishou"] = { "" }, ["Gong'an"] = { "" }, ["Songzi"] = { "" }, ["Jingmen"] = { "" }, ["Zhongxiang"] = { "" }, ["Jingshan"] = { "" }, ["Tianmen"] = { "" }, ["Xiantao"] = { "" }, ["Qianjiang"] = { "" }, ["Shennongjia"] = { "" }, ["Shiyan"] = { "" }, ["Zhuxi"] = { "" }, ["Zhushan"] = { "" }, ["Yunxi"] = { "" }, ["Yunyang"] = { "" }, ["Danjiangkou"] = { "" }, ["Fangxian"] = { "" }, ["Lhasa"] = { "" }, ["Guiyang"] = { "" }, ["Huaxi"] = { "" }, ["Zunyi"] = { "" }, ["Tongzi"] = { "" }, ["Renhuai"] = { "" }, ["Bijie"] = { "" }, ["Jinsha-M"] = { "" }, ["Dafang"] = { "" }, ["Weining"] = { "" }, ["Liupanshui"] = { "" }, ["Liuzhi"] = { "" }, ["Xingyi"] = { "" }, ["Anshun"] = { "" }, ["Duyun"] = { "" }, ["Pingtang"] = { "" }, ["Fuquan"] = { "" }, ["Weng'an"] = { "" }, ["Kaili"] = { "" }, ["Liping-GZ"] = { "" }, ["Zhenyuan"] = { "" }, ["Tongren"] = { "" }, ["Sinan"] = { "" }, ["Yuping"] = { "" }, ["Liping"] = { "" }, ["Zhaotong"] = { "" }, ["Shuifu"] = { "" }, ["Daguan"] = { "" }, ["Baoshan-M"] = { "" }, ["Dali"] = { "" }, ["Kunming"] = { "" }, ["Qujing"] = { "" }, ["Wenshan"] = { "" }, ["Mengzi"] = { "" }, ["Lancang"] = { "" }, ["Weixi"] = { "" }, ["Pu'er"] = { "" }, ["Lincang"] = { "" }, ["Guilin"] = { "" }, ["Lingui"] = { "" }, ["Guanyang"] = { "" }, ["Lipu"] = { "" }, ["Pingle"] = { "" }, ["Yangshuo"] = { "" }, ["Liuzhou"] = { "" }, ["Liuzhou-LR"] = { "" }, ["Luzhai"] = { "" }, ["Sanjiang-DZ"] = { "" }, ["Nanning-M"] = { "" }, ["Yongning-FJ"] = { "" }, ["Wuming"] = { "" }, ["Wuming-FC"] = { "" }, ["Binyang-M"] = { "" }, ["Shanglin"] = { "" }, ["Yizhou"] = { "" }, ["Jinchengjiang"] = { "" }, ["Luocheng"] = { "" }, ["Fengshan"] = { "" }, ["Tianlin-LP"] = { "" }, ["Tianlin-PT"] = { "" }, ["Leye"] = { "" }, ["Lingyun"] = { "" }, ["Longlin"] = { "" }, ["Xilin"] = { "" }, ["Xiangzhou-NL"] = { "" }, ["Jishou"] = { "" }, ["Changde"] = { "" }, ["Zhangjiajie"] = { "" }, ["Yongzhou"] = { "" }, ["Chenzhou"] = { "" }, ["Huaihua"] = { "" }, ["Huitong"] = { "" }, ["Xiangtan-JN"] = { "" }, ["Ganzhou-M"] = { "" }, ["Shiquan"] = { "" }, ["Ziyang"] = { "" }, ["Ningshan"] = { "" }, ["Langao"] = { "" }, ["Zhenping"] = { "" }, ["Hanzhong"] = { "" }, ["Nanzheng"] = { "" }, ["Ningqiang"] = { "" }, ["Liuba"] = { "" }, ["Chenggu"] = { "" }, ["Foping"] = { "" }, ["Xixiang"] = { "" }, ["Zhenba"] = { "" }, ["Anji-HB"] = { "" }, ["Kokang"] = { "" }, ["Dagudi"] = { "" }, ["Reshuitang"] = { "" }, ["Mae Salong"] = { "" }, ["Mae Sai"] = { "" }, ["Oudomxay"] = { "" }, ["Siantar"] = { "" }, ["Nanjing"] = { "" }, ["Pukou"] = { "" }, ["Luhe-M"] = { "" }, ["Lishui-M"] = { "" }, ["Yangzhou"] = { "" }, ["Jiangdu"] = { "" }, ["Baoying"] = { "" }, ["Gaoyou"] = { "" }, ["Yizheng"] = { "" }, ["Taizhou-M"] = { "" }, ["Taixing"] = { "" }, ["Jiangyan"] = { "" }, ["Jingjiang-DX"] = { "" }, ["Zhenjiang"] = { "" }, ["Jurong"] = { "" }, ["Yangzhong"] = { "" }, ["Jintan-XG"] = { "" }, ["Lianyungang"] = { "" }, ["Haizhou"] = { "" }, ["Guanyun"] = { "" }, ["Guannan"] = { "" }, ["Huai'an"] = { "" }, ["Huai'an-HA"] = { "" }, ["Huaiyin"] = { "" }, ["Hongze"] = { "" }, ["Lianshui"] = { "" }, ["Xuyi"] = { "" }, ["Jinhu"] = { "" }, ["Xinghua"] = { "" }, ["Nantong"] = { "" }, ["Rugao"] = { "" }, ["Rudong"] = { "" }, ["Hai'an"] = { "" }, ["Yancheng"] = { "" }, ["Dongtai"] = { "" }, ["Binhai"] = { "" }, ["Sheyang"] = { "" }, ["Dafeng"] = { "" }, ["Funing"] = { "" }, ["Jianhu"] = { "" }, ["Xiangshui"] = { "" }, ["Shuyang"] = { "" }, ["Sihong"] = { "" }, ["Siyang"] = { "" }, ["Anqing"] = { "" }, ["Tongcheng"] = { "" }, ["Zongyang"] = { "" }, ["Chizhou"] = { "" }, ["Qingyang"] = { "" }, ["Wuhu"] = { "" }, ["Wuhu-QS"] = { "" }, ["Wanzhi"] = { "" }, ["Jinghu"] = { "" }, ["Fanchang"] = { "" }, ["Wuwei"] = { "" }, ["Hanshan"] = { "" }, ["Hexian"] = { "" }, ["Ma'anshan"] = { "" }, ["Dangtu"] = { "" }, ["Xuancheng"] = { "" }, ["Langxi"] = { "" }, ["Guangde"] = { "" }, ["Tongling"] = { "" }, ["Hefei"] = { "" }, ["Feidong"] = { "" }, ["Feixi"] = { "" }, ["Chaohu"] = { "" }, ["Lujiang"] = { "" }, ["Changfeng"] = { "" }, ["Huainan"] = { "" }, ["Lu'an"] = { "" }, ["Jin'an-QSH"] = { "" }, ["Shucheng"] = { "" }, ["Huoshan"] = { "" }, ["Chuzhou"] = { "" }, ["Lai'an"] = { "" }, ["Quanjiao"] = { "" }, ["Mingguang"] = { "" }, ["Tianchang"] = { "" }, ["Echeng"] = { "" }, ["Huangshi"] = { "" }, ["Huanggang"] = { "" }, ["Hong'an"] = { "" }, ["Macheng"] = { "" }, ["Luotian"] = { "" }, ["Yingshan-HB"] = { "" }, ["Xishui"] = { "" }, ["Huangmei"] = { "" }, ["Wuxue"] = { "" }, ["Qichun"] = { "" }, ["Xiaogan"] = { "" }, ["Anlu"] = { "" }, ["Yingcheng"] = { "" }, ["Yunmeng"] = { "" }, ["Dawu"] = { "" }, ["Guangshui"] = { "" }, ["Zhashui"] = { "" }, ["Jiujiang"] = { "" }, ["Ruichang"] = { "" }, ["Anji-AQ"] = { "" }, ["Jinhua-M-SDJ"] = { "" }, ["Dianbai-Jun"] = { "" }, ["Qinzhou-M"] = { "" }, ["Pinghai-Jun"] = { "" }, ["Ningguo-GK"] = { "" }, ["Changle-QJ"] = { "" }, ["Yanping"] = { "" }, ["Wuping-ZS-Jun"] = { "" }, ["Jiangshan-M-NBD"] = { "" }, ["Kaihua-M-HB"] = { "" }, ["Yushan-M-HY"] = { "" }, ["Juexi"] = { "" }, ["Taiyuan"] = { "" }, ["Jiancaoping"] = { "" }, ["Jinyuan"] = { "" }, ["Qingxu"] = { "" }, ["Loufan"] = { "" }, ["Taigu"] = { "" }, ["Pingyao"] = { "" }, ["Heshun"] = { "" }, ["Qixian"] = { "" }, ["Yangyuan"] = { "" }, ["Datong"] = { "" }, ["Yunzhou"] = { "" }, ["Yunzhou-XCT"] = { "" }, ["Tianzhen"] = { "" }, ["Guangling"] = { "" }, ["Shuozhou"] = { "" }, ["Shanyin"] = { "" }, ["Pinglu"] = { "" }, ["Pingding"] = { "" }, ["Xinzhou"] = { "" }, ["Wutai"] = { "" }, ["Daixian"] = { "" }, ["Wuzhai"] = { "" }, ["Lishi"] = { "" }, ["Shilou"] = { "" }, ["Fenyang"] = { "" }, ["Lanxian"] = { "" }, ["Linxian"] = { "" }, ["Wenshui"] = { "" }, ["Xiaoyi"] = { "" }, ["Fenxi"] = { "" }, ["Xixian"] = { "" }, ["Changzhi"] = { "" }, ["Tunliu"] = { "" }, ["Shangdang"] = { "" }, ["Baochang"] = { "" }, ["Linhe"] = { "" }, ["Pingshun"] = { "" }, ["Zhangzi"] = { "" }, ["Qinxian"] = { "" }, ["Jincheng"] = { "" }, ["Lingchuan"] = { "" }, ["Yangcheng"] = { "" }, ["Gaoping"] = { "" }, ["Jining"] = { "" }, ["Liangcheng"] = { "" }, ["Hohhot"] = { "" }, ["Baotou"] = { "" }, ["Dongsheng"] = { "" }, ["Haibowan"] = { "" }, ["Erenhot"] = { "" }, ["Pingshan"] = { "" }, ["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-HS"] = { "" }, ["Cangnan-JX"] = { "" }, ["Cangnan-PC"] = { "" }, ["Pingyang"] = { "" }, ["Taishun"] = { "" }, ["Wencheng"] = { "" }, ["Lishui"] = { "" }, ["Qingtian"] = { "" }, ["Jinyun"] = { "" }, ["Xuanping"] = { "" }, ["Songyang-XP"] = { "" }, ["Songyang-GS"] = { "" }, ["Yunhe"] = { "" }, ["Jingning"] = { "" }, ["Qingyuan-W"] = { "" }, ["Longquan"] = { "" }, ["Quzhou"] = { "" }, ["Qujiang-DZ"] = { "" }, ["Suichang"] = { "" }, ["Jiangshan"] = { "" }, ["Changshan"] = { "" }, ["Kaihua"] = { "" }, ["Longyou"] = { "" }, ["Jinhua"] = { "" }, ["Tangxi"] = { "" }, ["Yiwu"] = { "" }, ["Yongkang"] = { "" }, ["Pujiang"] = { "" }, ["Dongyang"] = { "" }, ["Pan'an"] = { "" }, ["Wuyi"] = { "" }, ["Lanxi"] = { "" }, ["Shangrao"] = { "" }, ["Shangrao-Rail"] = { "" }, ["Shangrao-ZF"] = { "" }, ["Guangfeng"] = { "" }, ["Yushan"] = { "" }, ["Yanshan-JC"] = { "" }, ["Hengfeng-GY"] = { "" }, ["Xuancheng-YC"] = { "" }, ["Xuancheng-JP"] = { "" }, ["Wuhu-LL"] = { "" }, ["Tongling-W"] = { "" }, ["Nanling"] = { "" }, ["Yi'an-WS"] = { "" }, ["Huangshan"] = { "" }, ["Jingxian"] = { "" }, ["Jingxian-ZJ"] = { "" }, ["Shitai-JZ"] = { "" }, ["Pucheng"] = { "" }, ["Changsha"] = { "" }, ["Yiyang-X"] = { "" }, ["Liuyang-YA"] = { "" }, ["Xiangtan"] = { "" }, ["Xiangtan-CES"] = { "" }, ["Miluo-CL"] = { "" }, ["Xiangxiang"] = { "" }, ["Xiangxiang-MQ"] = { "" }, ["Loudi"] = { "" }, ["Shuangfeng"] = { "" }, ["Xinhua"] = { "" }, ["Lianyuan"] = { "" }, ["Shaoyang"] = { "" }, ["Lengshuitan"] = { "" }, ["Zhuzhou"] = { "" }, ["Longhui"] = { "" }, ["Suining-X"] = { "" }, ["Dongkou-HQ"] = { "" }, ["Wugang"] = { "" }, ["Hengyang"] = { "" }, ["Hengyang County"] = { "" }, ["Hengshan"] = { "" }, ["Hengshan-BG"] = { "" }, ["Qiyang"] = { "" }, ["Quanzhou-X"] = { "" }, ["Guanyang-X"] = { "" }, ["Qinglong-CL"] = { "" }, ["Nanchong-CL"] = { "" }, ["Nanchang"] = { "" }, ["Xinjian-WC"] = { "" }, ["Nanchang-TC"] = { "" }, ["Anyi"] = { "" }, ["Hukou"] = { "" }, ["Lushan"] = { "" }, ["Yongxiu"] = { "" }, ["Gongqingcheng-JY"] = { "" }, ["Xiushui"] = { "" }, ["Pengze"] = { "" }, ["Duchang"] = { "" }, ["Duchang-TT"] = { "" }, ["Duchang-YF"] = { "" }, ["Wuning-QK"] = { "" }, ["Poyang"] = { "" }, ["Poyang-MT"] = { "" }, ["Yugan"] = { "" }, ["Wannian"] = { "" }, ["Yiyang"] = { "" }, ["Hengfeng"] = { "" }, ["Yanshan-HK"] = { "" }, ["Yanshan-YP"] = { "" }, ["Shangrao-SX"] = { "" }, ["Shangrao-HM"] = { "" }, ["Yushan-G"] = { "" }, ["Jingdezhen"] = { "" }, ["Leping"] = { "" }, ["Yichun"] = { "" }, ["Yifeng"] = { "" }, ["Gao'an"] = { "" }, ["Fengxin"] = { "" }, ["Shanggao"] = { "" }, ["Wanzai"] = { "" }, ["Fengcheng"] = { "" }, ["Fengcheng-ST"] = { "" }, ["Xinyu"] = { "" }, ["Fuzhou-G"] = { "" }, ["Linchuan-SDD"] = { "" }, ["Dongxiang"] = { "" }, ["Nancheng"] = { "" }, ["Nanfeng"] = { "" }, ["Yihuang"] = { "" }, ["Lichuan"] = { "" }, ["Chongren"] = { "" }, ["Pingxiang"] = { "" }, ["Lianhua"] = { "" }, ["Luxi"] = { "" }, ["Ji'an"] = { "" }, ["Jishui-LT"] = { "" }, ["Yongfeng"] = { "" }, ["Taihe"] = { "" }, ["Xiajiang"] = { "" }, ["Yongxin"] = { "" }, ["Yingtan"] = { "" }, ["Yujiang"] = { "" }, ["Guixi"] = { "" }, ["Susong"] = { "" }, ["Susong-HT"] = { "" }, ["Susong-GL"] = { "" }, ["Wangjiang"] = { "" }, ["Qianshan"] = { "" }, ["Huaining"] = { "" }, ["Huaining-SP"] = { "" }, ["Yuexi"] = { "" }, ["Taihu"] = { "" }, ["Dongzhi"] = { "" }, ["Shitai"] = { "" }, ["Yangxin"] = { "" }, ["Yangxin-GH"] = { "" }, ["Daye"] = { "" }, ["Xianning"] = { "" }, ["Xianning-MQ"] = { "" }, ["Jiayu"] = { "" }, ["Chongyang"] = { "" }, ["Chibi"] = { "" }, ["Tongshan"] = { "" }, ["Tongcheng-G"] = { "" }, ["Jianli"] = { "" }, ["Yueyang"] = { "" }, ["Yueyang-BX"] = { "" }, ["Linxiang"] = { "" }, ["Pingjiang-XJ"] = { "" }, ["Pingjiang-NJ"] = { "" }, ["Liuyang"] = { "" }, ["Liuyang-DY"] = { "" }, ["Liuyang-FY"] = { "" }, ["Liling-BTT"] = { "" }, ["Liling-BS"] = { "" }, ["Youxian"] = { "" }, ["Chaling"] = { "" }, ["Changning"] = { "" }, ["Changning-TS"] = { "" }, ["Leiyang"] = { "" }, ["Anren"] = { "" }, ["Zixing-XN"] = { "" }, ["Longhui-LDZ"] = { "" }, ["Dongkou"] = { "" }, ["Dongkou-SJ"] = { "" }, ["Jianning"] = { "" }, ["Taining"] = { "" }, ["Hanbin-NT"] = { "" }, ["Jinxian"] = { "" }, ["Jinxi"] = { "" }, ["Le'an"] = { "" }, ["Guangchang"] = { "" }, ["Anfu"] = { "" }, ["Suichuan"] = { "" }, ["Wan'an"] = { "" }, ["Jing'an"] = { "" }, ["Zhangshu"] = { "" }, ["Xingan"] = { "" }, ["Fenyi"] = { "" }, ["Meixian"] = { "" }, ["Xingning"] = { "" }, ["Dabu"] = { "" }, ["Dabu-XH"] = { "" }, ["Dabu-TY"] = { "" }, ["Dabu-GB"] = { "" }, ["Fengshun-TK"] = { "" }, ["Fengshun-LH"] = { "" }, ["Fengshun-HJ"] = { "" }, ["Fengshun-FL"] = { "" }, ["Fengshun-PT"] = { "" }, ["Huizhou"] = { "" }, ["Huizhou-SK"] = { "" }, ["Huizhou-HL"] = { "" }, ["Huiyang"] = { "" }, ["Huidong-PS"] = { "" }, ["Huidong-DL"] = { "" }, ["Dongguan-H"] = { "" }, ["Longmen-PL"] = { "" }, ["Longmen-LX"] = { "" }, ["Boluo"] = { "" }, ["Shenzhen-H"] = { "" }, ["Shenzhen-H-LH"] = { "" }, ["Shenzhen-HG"] = { "" }, ["Zengcheng-ZG"] = { "" }, ["Zhongshan-WGS"] = { "" }, ["Zhongshan-NLHS"] = { "" }, ["Wuhua-SZ"] = { "" }, ["Wuhua-HC"] = { "" }, ["Wuhua-CB"] = { "" }, ["Wuhua-MY"] = { "" }, ["Wuhua-ML"] = { "" }, ["Heyuan"] = { "" }, ["Zijin"] = { "" }, ["Zijin-GZ"] = { "" }, ["Longchuan-TC"] = { "" }, ["Longchuan-SD"] = { "" }, ["Heping-LZ"] = { "" }, ["Lianping"] = { "" }, ["Lianping-ZX"] = { "" }, ["Lianping-LJ"] = { "" }, ["Wengyuan"] = { "" }, ["Nanxiong-ZJ"] = { "" }, ["Qujiang"] = { "" }, ["Lechang-MH"] = { "" }, ["Xinfeng-MT"] = { "" }, ["Xinfeng-DX"] = { "" }, ["Xiaosanjiang"] = { "" }, ["Liannan"] = { "" }, ["Conghua-H"] = { "" }, ["Jiexi"] = { "" }, ["Jiexi-HZ"] = { "" }, ["Luhe"] = { "" }, ["Raoping-XF"] = { "" }, ["Xiuzhuan"] = { "" }, ["Pinghe-JF"] = { "" }, ["Nanjing-ML"] = { "" }, ["Nanjing-BL"] = { "" }, ["Changting"] = { "" }, ["Shanghang"] = { "" }, ["Shanghang-GT"] = { "" }, ["Yongding"] = { "" }, ["Yongding-XY"] = { "" }, ["Yongding-GB"] = { "" }, ["Yongding-HK"] = { "" }, ["Longyan-WA"] = { "" }, ["Wuping"] = { "" }, ["Wuping-ZS"] = { "" }, ["Wuping-Y"] = { "" }, ["Wuping-WD"] = { "" }, ["Pingyu"] = { "" }, ["Liancheng"] = { "" }, ["Liancheng-PT"] = { "" }, ["Liancheng-JX"] = { "" }, ["Liancheng-ZB"] = { "" }, ["Liancheng-LY"] = { "" }, ["Ninghua"] = { "" }, ["Qingliu"] = { "" }, ["Yudu"] = { "" }, ["Ningdu"] = { "" }, ["Ruijin"] = { "" }, ["Shicheng"] = { "" }, ["Shangyou"] = { "" }, ["Sandu"] = { "" }, ["Ganzhou-PL"] = { "" }, ["Nankang"] = { "" }, ["Dayu"] = { "" }, ["Quannan"] = { "" }, ["Dingnan"] = { "" }, ["Longnan"] = { "" }, ["Xunwu"] = { "" }, ["Anyuan"] = { "" }, ["Huichang"] = { "" }, ["Chongyi"] = { "" }, ["Xingguo"] = { "" }, ["Yunhe-JST"] = { "" }, ["Tonggu"] = { "" }, ["Fengxin-ZX"] = { "" }, ["Miaoli"] = { "" }, ["Zaoqiao"] = { "" }, ["Touwu"] = { "" }, ["Nanzhuang"] = { "" }, ["Shitan"] = { "" }, ["Sanwan"] = { "" }, ["Toufen"] = { "" }, ["Gongguan"] = { "" }, ["Taoyuan"] = { "" }, ["Longtan"] = { "" }, ["Zhuolan-SX"] = { "" }, ["Guanxi"] = { "" }, ["Changhua-PT"] = { "" }, ["Liudui"] = { "" }, ["Wuluo"] = { "" }, ["Daluguan"] = { "" }, ["Jiadong"] = { "" }, ["Meinong"] = { "" }, ["Shanlin"] = { "" }, ["Hsinchu"] = { "" }, ["Guanxi-DP"] = { "" }, ["Guanxi-LQW"] = { "" }, ["Xinwu-HL"] = { "" }, ["Dongshi"] = { "" }, ["Raoping"] = { "" }, ["Guanxi-RP"] = { "" }, ["Hukou-RP"] = { "" }, ["Liujia-RP"] = { "" }, ["Zhongli-ZB-RP"] = { "" }, ["Zhongli-XN-RP"] = { "" }, ["Zhongli-GL-RP"] = { "" }, ["Pingzhen-NS-RP"] = { "" }, ["Xinwu-TZ-RP"] = { "" }, ["Guanyin-XP-RP"] = { "" }, ["Zhuolan-RP"] = { "" }, ["Yunlin"] = { "" }, ["Daxi"] = { "" }, ["Guoxing"] = { "" }, ["Hong Kong-H"] = { "" }, ["Tangkou"] = { "" }, ["Sanjia"] = { "" }, ["Sihe"] = { "" }, ["Qianpai"] = { "" }, ["Xindong"] = { "" }, ["Shalang"] = { "" }, ["Xin'an"] = { "" }, ["Shijiao"] = { "" }, ["Qingping"] = { "" }, ["Xihe"] = { "" }, ["Fumian-XS"] = { "" }, ["Luchuan-LC"] = { "" }, ["Luchuan-DQ"] = { "" }, ["Luchuan-SH"] = { "" }, ["Luchuan-WS"] = { "" }, ["Bobai-SH"] = { "" }, ["Bobai-LT"] = { "" }, ["Bobai-LP"] = { "" }, ["Bobai-LJ"] = { "" }, ["Bobai-CT"] = { "" }, ["Tang'an"] = { "" }, ["Beiliu-GH"] = { "" }, ["Beiliu-MM"] = { "" }, ["Xingye-GF"] = { "" }, ["Rongxian-XD"] = { "" }, ["Mashan-PL"] = { "" }, ["Binyang-WL"] = { "" }, ["Hengxian-XY"] = { "" }, ["Guigang-H-WL"] = { "" }, ["Guigang-H-QX"] = { "" }, ["Guigang-H-BT"] = { "" }, ["Guiping-H-JT"] = { "" }, ["Guiping-H-DX"] = { "" }, ["Pingnan-H-GA"] = { "" }, ["Lingui-H-XJ"] = { "" }, ["Lipu-SDT"] = { "" }, ["Lipu-DSG"] = { "" }, ["Pingle-H"] = { "" }, ["Yangshuo-JB"] = { "" }, ["Tianlin-GL"] = { "" }, ["Qinzhou-H"] = { "" }, ["Guidong"] = { "" }, ["Rongchang-PL"] = { "" }, ["Chengdu-H-LT"] = { "" }, ["Longquanyi-H-SL"] = { "" }, ["Qingbaijiang-H-LW"] = { "" }, ["Xindu-H-SBT"] = { "" }, ["Xindu-H-HXC"] = { "" }, ["Xindu-H-XD"] = { "" }, ["Weiyuan-H"] = { "" }, ["Yilong-H"] = { "" }, ["Xichang-H"] = { "" }, ["Sabah-B"] = { "" }, ["Sabah-L"] = { "" }, ["Sabah-HY"] = { "" }, ["Sabah-HP"] = { "" }, ["Kuala Lumpur-H-HY"] = { "" }, ["Kuala Lumpur-H"] = { "" }, ["Senai"] = { "" }, ["Senai-JX"] = { "" }, ["Kuching"] = { "" }, ["Sungai Tapang"] = { "" }, ["Singkawang"] = { "" }, ["Pontianak-MX"] = { "" }, ["Mempawah"] = { "" }, ["Metal"] = { "" }, ["Singapore-MX"] = { "" }, ["Singapore-DB"] = { "" }, ["Belait-H"] = { "" }, ["Bangkok-MX"] = { "" }, ["Bangkok-FS"] = { "" }, ["Bangkok-JX"] = { "" }, ["Yangon-H"] = { "" }, ["Ho Chi Minh City-H"] = { "" }, ["Jixi"] = { "" }, ["Shexian"] = { "" }, ["Shexian-XG"] = { "" }, ["Shexian-DGY"] = { "" }, ["Shexian-SY"] = { "" }, ["Tunxi"] = { "" }, ["Huizhou-HZ"] = { "" }, ["Xiuning"] = { "" }, ["Yixian"] = { "" }, ["Qimen"] = { "" }, ["Qimen-AL-Min"] = { "" }, ["Wuyuan"] = { "" }, ["Wuyuan-QK"] = { "" }, ["Wuyuan-JW"] = { "" }, ["Fuliang"] = { "" }, ["Fuliang-EH"] = { "" }, ["Dexing"] = { "" }, ["Dexing-ZC"] = { "" }, ["Jingde"] = { "" }, ["Zhanda"] = { "" }, ["Chun'an"] = { "" }, ["Sui'an"] = { "" }, ["Jiande"] = { "" }, ["Shouchang"] = { "" }, ["Guangzhou"] = { "" }, ["Hong Kong"] = { "" }, ["HK Weitou"] = { "" }, ["Kam Tin"] = { "" }, ["Shek Pik"] = { "" }, ["Ting Kok"] = { "" }, ["Tung Ping Chau"] = { "" }, ["Sam Mun Tsai"] = { "" }, ["Macau"] = { "" }, ["Macau-Tanka"] = { "" }, ["Guangzhou-XJ"] = { "" }, ["Guangzhou-LX"] = { "" }, ["Guangzhou-HP"] = { "" }, ["Luogang"] = { "" }, ["Guangzhou-LH"] = { "" }, ["Guangzhou-MT"] = { "" }, ["Guangzhou-JS"] = { "" }, ["Guangzhou-XS"] = { "" }, ["Guangzhou-SJ"] = { "" }, ["Guangzhou-JC"] = { "" }, ["Guangzhou-LG"] = { "" }, ["Guangzhou-RH"] = { "" }, ["Guangzhou-ZL"] = { "" }, ["Guangzhou-ZLT"] = { "" }, ["Guangzhou-JF"] = { "" }, ["Panyu"] = { "" }, ["Huadu"] = { "" }, ["Conghua"] = { "" }, ["Zengcheng"] = { "" }, ["Zengcheng-XT"] = { "" }, ["Foshan"] = { "" }, ["Nanhai"] = { "" }, ["Shunde"] = { "" }, ["Sanshui"] = { "" }, ["Gaoming"] = { "" }, ["Zhongshan"] = { "" }, ["Zhongshan-HC"] = { "" }, ["Zhongshan-NL"] = { "" }, ["Zhongshan-CKM"] = { "" }, ["Zhongshan-XL"] = { "" }, ["Zhongshan-DS"] = { "" }, ["Zhongshan-TB"] = { "" }, ["Zhongshan-HL"] = { "" }, ["Zhongshan-DF"] = { "" }, ["Zhongshan-NT"] = { "" }, ["Zhongshan-FS"] = { "" }, ["Zhongshan-SL"] = { "" }, ["Zhongshan-GK"] = { "" }, ["Zhongshan-HP"] = { "" }, ["Zhongshan-SJ"] = { "" }, ["Zhongshan-LW"] = { "" }, ["Zhongshan-MZ"] = { "" }, ["Zhongshan-GZ"] = { "" }, ["Zhongshan-BF"] = { "" }, ["Zhongshan-TZ"] = { "" }, ["Zhongshan-TG"] = { "" }, ["Zhuhai"] = { "" }, ["Zhuhai-TJW"] = { "" }, ["Doumen-T"] = { "" }, ["Doumen-S"] = { "" }, ["Jiangmen"] = { "" }, ["Xinhui"] = { "" }, ["Taishan"] = { "" }, ["Taishan-GH"] = { "" }, ["Kaiping"] = { "" }, ["Enping"] = { "" }, ["Heshan"] = { "" }, ["Heshan-SP"] = { "" }, ["Malan"] = { "" }, ["Malan-BTQ"] = { "" }, ["Malan-MHD"] = { "" }, ["Malan-SZP"] = { "" }, ["Malan-BLH"] = { "" }, ["Dongguan"] = { "" }, ["Shenzhen-C-LH"] = { "" }, ["Shenzhen-NT"] = { "" }, ["Shenzhen-XX"] = { "" }, ["Bao'an"] = { "" }, ["Yantian"] = { "" }, ["Dapeng"] = { "" }, ["Shenzhen-PD"] = { "" }, ["Pingshan-ZM"] = { "" }, ["Ebu-ZM"] = { "" }, ["Longmen"] = { "" }, ["Qingyuan"] = { "" }, ["Fogang"] = { "" }, ["Yingde"] = { "" }, ["Yangshan"] = { "" }, ["Lianshan"] = { "" }, ["Lianshan-YH"] = { "" }, ["Lianzhou"] = { "" }, ["Shaoguan"] = { "" }, ["Qujiang-C"] = { "" }, ["Renhua"] = { "" }, ["Lechang"] = { "" }, ["Gaoyao"] = { "" }, ["Sihui"] = { "" }, ["Guangning"] = { "" }, ["Deqing"] = { "" }, ["Huaiji"] = { "" }, ["Huaiji-LC"] = { "" }, ["Fengkai"] = { "" }, ["Fengkai-JK"] = { "" }, ["Fengkai-LD"] = { "" }, ["Yunfu"] = { "" }, ["Xinxing"] = { "" }, ["Luoding"] = { "" }, ["Luoding-SL"] = { "" }, ["Yunan"] = { "" }, ["Yangjiang"] = { "" }, ["Yangdong"] = { "" }, ["Yangdong-YS"] = { "" }, ["Yangchun"] = { "" }, ["Yangxi"] = { "" }, ["Xinyi"] = { "" }, ["Maoming"] = { "" }, ["Maoming-YJ"] = { "" }, ["Gaozhou"] = { "" }, ["Huazhou"] = { "" }, ["Huazhou-CQ"] = { "" }, ["Zhanjiang"] = { "" }, ["Lianjiang"] = { "" }, ["Lianjiang-CB"] = { "" }, ["Wuchuan"] = { "" }, ["Wuchuan-ML"] = { "" }, ["Nanning"] = { "" }, ["Nanning-Tanka"] = { "" }, ["Wuzhou"] = { "" }, ["Wuzhou-LX"] = { "" }, ["Cangwu-SQ"] = { "" }, ["Cangwu-LB"] = { "" }, ["Tengxian"] = { "" }, ["Yulin"] = { "" }, ["Rongxian"] = { "" }, ["Hepu"] = { "" }, ["Hepu-ST"] = { "" }, ["Guiping"] = { "" }, ["Guiping-JT"] = { "" }, ["Guiping-JK"] = { "" }, ["Guiping-MD"] = { "" }, ["Guiping-ML"] = { "" }, ["Pingnan-PN"] = { "" }, ["Pingnan-DZ"] = { "" }, ["Pingnan-GC"] = { "" }, ["Mengshan"] = { "" }, ["Mengshan-XX"] = { "" }, ["Mengshan-CT"] = { "" }, ["Guigang-GC"] = { "" }, ["Guigang-NJ"] = { "" }, ["Guigang-PD"] = { "" }, ["Beiliu"] = { "" }, ["Beiliu-TL"] = { "" }, ["Beiliu-XC"] = { "" }, ["Baise"] = { "" }, ["Tiandong"] = { "" }, ["Tiandong-LF"] = { "" }, ["Tianyang"] = { "" }, ["Pingguo"] = { "" }, ["Pingguo-SX"] = { "" }, ["Bobai"] = { "" }, ["Lingshan"] = { "" }, ["Pubei"] = { "" }, ["Qinzhou"] = { "" }, ["Qinzhou-XD"] = { "" }, ["Qinzhou-CT"] = { "" }, ["Qinzhou-NS"] = { "" }, ["Qinzhou-XNJ"] = { "" }, ["Beihai"] = { "" }, ["Beihai-NK"] = { "" }, ["Beihai-YP"] = { "" }, ["Beihai-QG"] = { "" }, ["Beihai-QG-CB"] = { "" }, ["Ningming"] = { "" }, ["Hengxian"] = { "" }, ["Pumen"] = { "" }, ["Zhaoping"] = { "" }, ["Fangchenggang-FC"] = { "" }, ["Dongxing"] = { "" }, ["Chongzuo-LT"] = { "" }, ["Fusui-QJ"] = { "" }, ["Lingchuan-C-YJ"] = { "" }, ["Pingle-C-MJ"] = { "" }, ["Pingle-C-SS"] = { "" }, ["Lipu-ZC"] = { "" }, ["Danzhou"] = { "" }, ["Sanya-YL"] = { "" }, ["Kuala Lumpur"] = { "" }, ["Penang-C"] = { "" }, ["Ipoh"] = { "" }, ["Sarikei-C"] = { "" }, ["Singapore-C"] = { "" }, ["Jakarta-C"] = { "" }, ["Ho Chi Minh City"] = { "" }, ["Mong Cai"] = { "" }, ["Phnom Penh-C"] = { "" }, ["Yangon-C"] = { "" }, ["Mandalay-C"] = { "" }, ["Bangkok-C"] = { "" }, ["Betong"] = { "" }, ["Manila-C"] = { "" }, ["Nanning-P"] = { "" }, ["Nanning-P-SJ"] = { "" }, ["Nanning-P-GJY"] = { "" }, ["Nanning-P-ZGL"] = { "" }, ["Nanning-P-XXJD"] = { "" }, ["Nanning-P-SL"] = { "" }, ["Nanning-P-XX"] = { "" }, ["Nanning-P-SC"] = { "" }, ["Binyang"] = { "" }, ["Binyang-XQ"] = { "" }, ["Hengxian-P"] = { "" }, ["Wuxuan-JJ"] = { "" }, ["Wuxuan-ZC"] = { "" }, ["Chongzuo-P"] = { "" }, ["Chongzuo-P-XH"] = { "" }, ["Fusui-P"] = { "" }, ["Liucheng-P"] = { "" }, ["Liucheng-P-GZ"] = { "" }, ["Liucheng-P-DP"] = { "" }, ["Rongshui"] = { "" }, ["Yizhou-P-DS"] = { "" }, ["Luocheng-P"] = { "" }, ["Baise-P"] = { "" }, ["Guilin-P"] = { "" }, ["Guilin-P-CY"] = { "" }, ["Guilin-P-DBZ"] = { "" }, ["Guilin-P-ZY"] = { "" }, ["Guilin-P-DB"] = { "" }, ["Guilin-P-YJ"] = { "" }, ["Guilin-P-QJ"] = { "" }, ["Lingui-P-WT"] = { "" }, ["Lingui-P-HS"] = { "" }, ["Lingui-P-LJ"] = { "" }, ["Lingui-P-LT"] = { "" }, ["Lingchuan-P"] = { "" }, ["Lingchuan-P-GQ"] = { "" }, ["Lingchuan-P-GD"] = { "" }, ["Lingchuan-P-TX"] = { "" }, ["Lingchuan-P-SZ"] = { "" }, ["Lingchuan-P-GP"] = { "" }, ["Lingchuan-P-LT"] = { "" }, ["Guanyang-P"] = { "" }, ["Quanzhou-P"] = { "" }, ["Pingle-P"] = { "" }, ["Pingle-P-XTM"] = { "" }, ["Yangshuo-P"] = { "" }, ["Yangshuo-P-PT"] = { "" }, ["Yongfu-P-JX"] = { "" }, ["Yongfu-P-CS"] = { "" }, ["Zhongshan-GA"] = { "" }, ["Xiamen"] = { "" }, ["Xiamen-HS"] = { "" }, ["Tong'an"] = { "" }, ["Quanzhou"] = { "" }, ["Jinjiang"] = { "" }, ["Nan'an"] = { "" }, ["Shishi"] = { "" }, ["Hui'an"] = { "" }, ["Anxi"] = { "" }, ["Yongchun"] = { "" }, ["Dehua"] = { "" }, ["Zhangzhou"] = { "" }, ["Longhai"] = { "" }, ["Changtai"] = { "" }, ["Hua'an"] = { "" }, ["Nanjing-MN"] = { "" }, ["Pinghe"] = { "" }, ["Zhangpu"] = { "" }, ["Yunxiao"] = { "" }, ["Zhao'an"] = { "" }, ["Zhao'an-SD"] = { "" }, ["Zhao'an-TY"] = { "" }, ["Zhao'an-WS"] = { "" }, ["Dongshan"] = { "" }, ["Taipei"] = { "" }, ["Wanhua"] = { "" }, ["Tamsui"] = { "" }, ["Sanxia"] = { "" }, ["Pingxi"] = { "" }, ["Kaohsiung"] = { "" }, ["Cijin"] = { "" }, ["Hongmaogang"] = { "" }, ["Dalinpu"] = { "" }, ["Tianliao"] = { "" }, ["Cieding"] = { "" }, ["Xinwu-YX"] = { "" }, ["Yilan"] = { "" }, ["Luodong"] = { "" }, ["Toucheng"] = { "" }, ["Lukang"] = { "" }, ["Yongjing-MN"] = { "" }, ["Caotun"] = { "" }, ["Taichung"] = { "" }, ["Wuqi"] = { "" }, ["Tainan"] = { "" }, ["Anping"] = { "" }, ["Shanhua"] = { "" }, ["Jiali"] = { "" }, ["Taitung"] = { "" }, ["Green Island"] = { "" }, ["Hsinchu-MN"] = { "" }, ["Miaoli-MN"] = { "" }, ["Mailiao"] = { "" }, ["Taixi"] = { "" }, ["Lunbei"] = { "" }, ["Chiayi"] = { "" }, ["Chiayi-TB"] = { "" }, ["Chiayi-SS"] = { "" }, ["Chiayi-ZP"] = { "" }, ["Chiayi-DP"] = { "" }, ["Chiayi-ZQ"] = { "" }, ["Chiayi-DL"] = { "" }, ["Chiayi-XK"] = { "" }, ["Chiayi-MX"] = { "" }, ["Chiayi-PZ"] = { "" }, ["Chiayi-LJ"] = { "" }, ["Chiayi-ST"] = { "" }, ["Chiayi-FL"] = { "" }, ["Chiayi-ALS"] = { "" }, ["Chiayi-LC"] = { "" }, ["Chiayi-YZ"] = { "" }, ["Chiayi-XG"] = { "" }, ["Chiayi-MS"] = { "" }, ["Chiayi-DS"] = { "" }, ["Chiayi-BD"] = { "" }, ["Chiayi-WL"] = { "" }, ["Pingtung"] = { "" }, ["Baoli"] = { "" }, ["Liuqiu"] = { "" }, ["Gabulong"] = { "" }, ["Kinmen"] = { "" }, ["Jinsha"] = { "" }, ["Magong"] = { "" }, ["Pengnan"] = { "" }, ["Xiyu"] = { "" }, ["Huxi"] = { "" }, ["Wangan"] = { "" }, ["Cimei"] = { "" }, ["Huayu"] = { "" }, ["Zhongtun"] = { "" }, ["Houliao"] = { "" }, ["Tongliang"] = { "" }, ["Jibei"] = { "" }, ["Malaysia-MN"] = { "" }, ["Melaka"] = { "" }, ["Labuan"] = { "" }, ["Klang"] = { "" }, ["Singapore-MN"] = { "" }, ["Philippine-MN"] = { "" }, ["Medan"] = { "" }, ["Seri Begawan"] = { "" }, ["Ho Chi Minh City-MN"] = { "" }, ["Yangon-MN"] = { "" }, ["Longyan"] = { "" }, ["Shizhong"] = { "" }, ["Zhangping"] = { "" }, ["Yongfu"] = { "" }, ["Datian"] = { "" }, ["Datian-GP"] = { "" }, ["Youxi-JM"] = { "" }, ["Youxi-XQ"] = { "" }, ["Shunchang-PS"] = { "" }, ["Xiapu-SS"] = { "" }, ["Putian-MN"] = { "" }, ["Pingnan"] = { "" }, ["Pingnan-PT"] = { "" }, ["Pingnan-SJ"] = { "" }, ["Guiping-XW"] = { "" }, ["Guiping-DS"] = { "" }, ["Guilin-MN-BYG"] = { "" }, ["Pingle-MN"] = { "" }, ["Qinzhou-MN"] = { "" }, ["Lechang-TT"] = { "" }, ["Renhua-CSB"] = { "" }, ["Yingde-YZ"] = { "" }, ["Yunan-LT"] = { "" }, ["Heyuan-NJ"] = { "" }, ["Hangzhou-PF"] = { "" }, ["Cangnan-MN"] = { "" }, ["Yuhuan-KM"] = { "" }, ["Wenling-RS"] = { "" }, ["Yixing-SB"] = { "" }, ["Guangfeng-NSD"] = { "" }, ["Hengfeng-YJ"] = { "" }, ["Yushan-ZH"] = { "" }, ["Langxi-FL"] = { "" }, ["Chaozhou"] = { "" }, ["Raoping-MN-T"] = { "" }, ["Shantou"] = { "" }, ["Chenghai"] = { "" }, ["Chenghai-DX"] = { "" }, ["Chaoyang"] = { "" }, ["Nan'ao-HZ"] = { "" }, ["Nan'ao-YA"] = { "" }, ["Jieyang"] = { "" }, ["Puning"] = { "" }, ["Lufeng"] = { "" }, ["Haifeng"] = { "" }, ["Fengshun-MN-LH"] = { "" }, ["Fengshun-MN-HJ"] = { "" }, ["Yuen Chau Tsai-MN"] = { "" }, ["Sha Tau Kok-MN"] = { "" }, ["Thailand-MN-T"] = { "" }, ["Chiang Mai-MN-T"] = { "" }, ["Hat Yai-MN-T"] = { "" }, ["Cambodia-MN-T"] = { "" }, ["Ho Chi Minh City-MN-T"] = { "" }, ["Vientiane-MN-T"] = { "" }, ["Johor Bahru"] = { "" }, ["Penang-MN-T"] = { "" }, ["Singapore-MN-T"] = { "" }, ["Batam-MN-T"] = { "" }, ["Pontianak-MN-T"] = { "" }, ["Leizhou"] = { "" }, ["Dianbai-XD"] = { "" }, ["Wenchang"] = { "" }, ["Haikou"] = { "" }, ["Chengmai"] = { "" }, ["Qionghai"] = { "" }, ["Wanning"] = { "" }, ["Tunchang"] = { "" }, ["Singapore-MN-H"] = { "" }, ["Belait-MN-H"] = { "" }, ["Putian"] = { "" }, ["Putian-DH"] = { "" }, ["Putian-JK"] = { "" }, ["Putian-NR"] = { "" }, ["Xianyou"] = { "" }, ["Xianyou-FT"] = { "" }, ["Xianyou-YY"] = { "" }, ["Fuding-AY"] = { "" }, ["Shaxi"] = { "" }, ["Sanxiang"] = { "" }, ["Nanlang"] = { "" }, ["Fuzhou"] = { "" }, ["Changle"] = { "" }, ["Lianjiang-MD"] = { "" }, ["Tailu"] = { "" }, ["Minhou"] = { "" }, ["Fuqing"] = { "" }, ["Pingtan"] = { "" }, ["Yongtai"] = { "" }, ["Minqing"] = { "" }, ["Gutian"] = { "" }, ["Pingnan-MD"] = { "" }, ["Luoyuan"] = { "" }, ["Fu'an"] = { "" }, ["Ningde"] = { "" }, ["Xiapu"] = { "" }, ["Zherong"] = { "" }, ["Shouning"] = { "" }, ["Zhouning"] = { "" }, ["Fuding"] = { "" }, ["Youxi"] = { "" }, ["Youxi-XY"] = { "" }, ["Youxi-YZ"] = { "" }, ["Youxi-TC"] = { "" }, ["Youxi-ZX"] = { "" }, ["Matsu"] = { "" }, ["Taishun-MD"] = { "" }, ["Cangnan-MD"] = { "" }, ["Guanhaiwei"] = { "" }, ["Longyou-LS"] = { "" }, ["Singapore-MD-FQ"] = { "" }, ["Sitiawan-MD-GT"] = { "" }, ["Sibu-MD-MQ"] = { "" }, ["Jian'ou"] = { "" }, ["Dikou"] = { "" }, ["Yanping-XY"] = { "" }, ["Yanping-XD"] = { "" }, ["Songxi"] = { "" }, ["Zhenghe"] = { "" }, ["Zhenqian"] = { "" }, ["Shunchang-YD"] = { "" }, ["Jianyang"] = { "" }, ["Huangkeng"] = { "" }, ["Wuyishan"] = { "" }, ["Shibei"] = { "" }, ["Yong'an"] = { "" }, ["Sanyuan"] = { "" }, ["Shaxian"] = { "" }, ["Yanping-WT"] = { "" }, ["Shaowu"] = { "" }, ["Guangze"] = { "" }, ["Jiangle"] = { "" }, ["Mingxi"] = { "" }, ["Shunchang"] = { "" }, ["Ningde-She"] = { "" }, ["Fu'an-She"] = { "" }, ["Fuding-She"] = { "" }, ["Zhouning-She"] = { "" }, ["Xiapu-She"] = { "" }, ["Shouning-She"] = { "" }, ["Gutian-She"] = { "" }, ["Luoyuan-She"] = { "" }, ["Sanming-She"] = { "" }, ["Shunchang-She"] = { "" }, ["Hua'an-She"] = { "" }, ["Zhangping-She"] = { "" }, ["Guixi-She"] = { "" }, ["Yanshan-She"] = { "" }, ["Wuning-She"] = { "" }, ["Cangnan-She"] = { "" }, ["Jingning-She"] = { "" }, ["Jingning-ZK-She"] = { "" }, ["Lishui-She"] = { "" }, ["Longyou-She"] = { "" }, ["Lin'an-She"] = { "" }, ["Jiande-She"] = { "" }, ["Jinhua-She"] = { "" }, ["Ningguo-She"] = { "" }, ["Chaozhou-She"] = { "" }, ["Fengshun-She"] = { "" }, ["Guzhang-WX"] = { "" }, ["Yuanling-WX"] = { "" }, ["Luxi-WX"] = { "" }, ["Luxi-WX-LJT"] = { "" }, ["Luxi-WX-LJT-2"] = { "" }, ["Chengbu-WX"] = { "" }, ["Jiande-JXYM"] = { "" }, ["Jinhua-JXYM"] = { "" }, ["Lanxi-JXYM"] = { "" }, ["Tunxi-JXYM"] = { "" }, ["Jiangyong"] = { "" }, ["Dong'an"] = { "" }, ["Qujiang-DC"] = { "" }, ["Wujiang-XY"] = { "" }, ["Zhenjiang-SB"] = { "" }, ["Renhua-ZT"] = { "" }, ["Renhua-ST"] = { "" }, ["Ruyuan-GT"] = { "" }, ["Lechang-CL"] = { "" }, ["Lechang-BX"] = { "" }, ["Lechang-HP"] = { "" }, ["Lechang-GT"] = { "" }, ["Lechang-SX"] = { "" }, ["Lianzhou-XZ"] = { "" }, ["Lianzhou-BA"] = { "" }, ["Lianzhou-YC"] = { "" }, ["Lianzhou-XA"] = { "" }, ["Lianzhou-FY"] = { "" }, } return export ikfws6wvub6je8127fm40hsvcmbrpfu 聖訓 0 396040 2351225 2026-05-08T01:36:07Z Hiyuune 50834 + ja 2351225 wikitext text/x-wiki =={{langname|ja}}== {{ja-kanjitab|きよ|のり|yomi=n}} ==={{section|pr-noun}}=== {{ja-pos|proper|きよのり}} # {{given name|ja|nam|sort=きよのり}} 182pgwwbm0uxwokqsy9e4l5dupa1n62 網絡日誌 0 396041 2351227 2026-05-08T01:37:01Z Hiyuune 50834 Trang mới: “=={{langname|zh}}== {{zh-see|网络日志}}” 2351227 wikitext text/x-wiki =={{langname|zh}}== {{zh-see|网络日志}} i0expch7gcqwaekfgvoe6cgykb9rojb 0 396042 2351228 2026-05-08T01:38:13Z Hiyuune 50834 Trang mới: “{{also|善}} {{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=149|rad=言|as=13|sn=20|four=|canj=TQYRR|ids=⿻羊誩}} ===={{section|drv}}==== * {{charlist|sc=Hani|𭀒𭶩𦏬𦏯}} ===={{section|ref}}==== {{Han ref|kx=1184.010|dkj=36028|dj=1647.060|hdz=64025.140|uh=8B71}}” 2351228 wikitext text/x-wiki {{also|善}} {{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=149|rad=言|as=13|sn=20|four=|canj=TQYRR|ids=⿻羊誩}} ===={{section|drv}}==== * {{charlist|sc=Hani|𭀒𭶩𦏬𦏯}} ===={{section|ref}}==== {{Han ref|kx=1184.010|dkj=36028|dj=1647.060|hdz=64025.140|uh=8B71}} g4l2bstr6zb664eko0lxhw2b4ip8ws4 𭀒 0 396043 2351229 2026-05-08T01:38:55Z Hiyuune 50834 Trang mới: “{{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=9|rad=人|as=20|sn=|four=|canj=|ids=⿰亻譱}} ===={{section|ref}}==== * {{Han ref|kx=|dkj=|dj=|hdz=|uh=2D012}}” 2351229 wikitext text/x-wiki {{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=9|rad=人|as=20|sn=|four=|canj=|ids=⿰亻譱}} ===={{section|ref}}==== * {{Han ref|kx=|dkj=|dj=|hdz=|uh=2D012}} si4s64aihfxigsmhm7zhorkj438l1k1 bāng-chì 0 396044 2351230 2026-05-08T01:39:36Z Hiyuune 50834 Trang mới: “=={{langname|nan-hbl}}== {{zh-see|網誌|poj}}” 2351230 wikitext text/x-wiki =={{langname|nan-hbl}}== {{zh-see|網誌|poj}} csdojfbqbx59i5ebodhqdadl836v4zy ພາສາມື 0 396045 2351231 2026-05-08T01:42:17Z Hiyuune 50834 Trang mới: “=={{langname|lo}}== ==={{section|etym}}=== {{com|lo|ພາສາ|ມື}} ==={{section|pron}}=== {{lo-pron|ພາ-ສາ-ມື}} ==={{section|n}}=== {{lo-noun}} # [[ngôn ngữ|Ngôn ngữ]] [[ký hiệu]].” 2351231 wikitext text/x-wiki =={{langname|lo}}== ==={{section|etym}}=== {{com|lo|ພາສາ|ມື}} ==={{section|pron}}=== {{lo-pron|ພາ-ສາ-ມື}} ==={{section|n}}=== {{lo-noun}} # [[ngôn ngữ|Ngôn ngữ]] [[ký hiệu]]. obq498fnokjylh4d97wk955gkd17qpy Thể loại:Vần tiếng Séc/ɛliː 14 396074 2351267 2026-05-08T04:31:39Z Kelly zhrm 58416 Kelly zhrm đã đổi [[Thể loại:Vần tiếng Séc/ɛliː]] thành [[Thể loại:Vần:Tiếng Séc/ɛliː]] 2351267 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:Vần:Tiếng Séc/ɛliː}} l0p9puks6uxh3upnpxbo2e47ws7mpjk Thể loại:Vần tiếng Séc/oliː 14 396076 2351274 2026-05-08T04:34:54Z Kelly zhrm 58416 Kelly zhrm đã đổi [[Thể loại:Vần tiếng Séc/oliː]] thành [[Thể loại:Vần:Tiếng Séc/oliː]] 2351274 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:Vần:Tiếng Séc/oliː}} 0hz7fkqyz0kjvv8asbzyumw0en94tq0 take revenge 0 396078 2351283 2026-05-08T05:06:01Z Kelly zhrm 58416 Trang mới: “=={{langname|en}}== ==={{ĐM|pron}}=== * {{audio|en|LL-Q1860 (eng)-Vealhurl-take revenge.wav|a=Southern England}} ==={{ĐM|v}}=== {{en-verb|<,,took,taken>}} # [[trả thù|Trả thù]], [[báo thù]], [[phục thù]]. ===={{ĐM|syn}}==== * Xem thêm [[Kho từ vựng:avenge]]” 2351283 wikitext text/x-wiki =={{langname|en}}== ==={{ĐM|pron}}=== * {{audio|en|LL-Q1860 (eng)-Vealhurl-take revenge.wav|a=Southern England}} ==={{ĐM|v}}=== {{en-verb|<,,took,taken>}} # [[trả thù|Trả thù]], [[báo thù]], [[phục thù]]. ===={{ĐM|syn}}==== * Xem thêm [[Kho từ vựng:avenge]] 1nuor0tyvc1ke4kdsasj3o2hyyvgwxz 0 396079 2351284 2026-05-08T05:05:59Z Lcsnes 40261 Trang mới: “{{-Hani-}} {{zho-prefix}} {{character info}} {{character info|0xf9e2}} {{zh-forms|alt=棃,梸}} ==={{ĐM|han}}=== {{Han char|rn=75|rad=木|as=07|sn=11|four=22904|canj=HND,XHND|ids=⿱利木}} ==={{ĐM|ref}}=== {{Han ref|kx=0530.120|dkj=14873|dj=0918.100|hdz=21215.100|uh=68A8}} {{Han ref|uh=F9E2}} =={{langname|vi}}== {{quốc ngữ|lê}} ==={{ĐM|nôm}}=== {{head|vi|Chữ Nôm}} *{{vie-Nom form of|lê}} *:{{RQ:Truyện Kiều|year_published=1866|line=226|passage={{vi-ruby…” 2351284 wikitext text/x-wiki {{-Hani-}} {{zho-prefix}} {{character info}} {{character info|0xf9e2}} {{zh-forms|alt=棃,梸}} ==={{ĐM|han}}=== {{Han char|rn=75|rad=木|as=07|sn=11|four=22904|canj=HND,XHND|ids=⿱利木}} ==={{ĐM|ref}}=== {{Han ref|kx=0530.120|dkj=14873|dj=0918.100|hdz=21215.100|uh=68A8}} {{Han ref|uh=F9E2}} =={{langname|vi}}== {{quốc ngữ|lê}} ==={{ĐM|nôm}}=== {{head|vi|Chữ Nôm}} *{{vie-Nom form of|lê}} *:{{RQ:Truyện Kiều|year_published=1866|line=226|passage={{vi-ruby|牟花'''梨'''唉滛湜湥湄|Màu hoa '''lê''' hãy dầm dề giọt mưa?}}}} ==={{ĐM|ref}}=== *{{Chú thích sách|author=Hồ Lê (chủ biên)|title=Bảng tra chữ nôm|year=1976|location=[[Hà Nội]]|publisher=Viện Ngôn ngữ học, Uỷ ban khoa học xã hội Việt Nam|page=131|pageurl=https://www.nomfoundation.org/data/btcn/BTCN-0131.jpg}} *{{Chú thích sách|author=Trần Văn Kiệm|year=2004|publisher=Nhà xuất bản Đà Nẵng|page=535|pageurl=https://archive.org/details/giupdocnomvahanviet/page/535|title=Giúp đọc Nôm và Hán Việt}} =={{langname|ja}}== ==={{ĐM|kanji}}=== {{ja-kanji}} #[[lê|Lê]] ===={{ĐM|reading}}==== {{ja-readings |goon=り |kanon=り |kun=なし- |nanori=か }} ==={{ĐM|etym}} 1=== {{wp|ja:ナシ}} {{wp|Pyrus pyrifolia}} [[File:Pear-tree,katori-city,japan.JPG|thumb|250px|{{mention|ja|梨|tr=nashi}}: [[cây]] và [[trái]] '''[[lê]]''']] {{ja-kanjitab|なし|yomi=kun}} Từ {{inherited|ja|ojp|-}}, được chứng thực trong [[w:Vạn diệp tập|''Vạn diệp tập'']]. Chưa rõ gốc từ xa hơn. ===={{ĐM|pron}}==== {{ja-pron|acc=2|acc_ref=DJR|acc2=0|acc2_ref=DJR|なし}} ===={{ĐM|n}}==== {{ja-noun|なし|ナシ}} #Cây, trái [[lê]] #Cụ thể hơn là lê Nhật hoặc lê Á. ====={{ĐM|usage}}===== *{{U:ja:biology|ナシ}} ====={{ĐM|der}}===== {{col|ja |{{ja-r|梨%河%豚|なし%ふ%ぐ}} |{{ja-r|梨子%地|なし%じ}}, {{ja-r|梨%地|なし%じ}}: [[nashiji]], kỹ thuật [[sơn mài]] dùng bột hoặc mảnh vàng bạc |{{ja-r|青梨|あお なし}}: {{vern|Pyrus ussuriensis}}, {{vern|Pyrus pyrifolia}} ({{taxlink|Pyrus ussuriensis var. hondoensis|variety}}) |{{ja-r|玄%圃梨|けん%ぽ なし}}: {{vern|Hovenia dulcis}} ({{taxlink|Hovenia dulcis|species}}) |{{ja-r|猿梨|さる なし}}: {{vern|Actinidia arguta}} ({{taxlink|Actinidia arguta|species}}) |{{ja-r|西洋梨|せいよう なし}}: {{vern|Pyrus communis}} |{{ja-r|浜梨|はま なし}}: {{vern|Rosa rugosa}} |{{ja-r|山梨|やま なし}} |{{ja-r|山梨県|^やまなし-けん}}: {{w|Yamanashi}} |{{ja-r|洋梨|ようなし}}: {{vern|Pyrus communis}} |{{ja-r|鰐梨|わに なし}}: [[bơ]] hoặc [[lê]] [[tàu]] }} ==={{ĐM|etym}} 2=== {{ja-kanjitab|yomi=on|り}} Từ {{derived|ja|ltc|-|sort=り}} {{ltc-l|梨}}. Đối chiếu với {{cognate|cmn|梨}} hiện đại. ===={{ĐM|pron}}==== {{ja-pron|り}} ===={{ĐM|affix}}==== {{ja-pos|affix|り}} #Cây, trái [[lê]] #Cụ thể hơn là lê Nhật hoặc lê Á. ====={{ĐM|der}}===== {{col|ja |{{ja-r|梨%園|り%えん}}: lê viên |{{ja-r|梨%果|り%か}}: [[táo]] |{{ja-r|梨%花|り%か}}, {{ja-r|梨%華|り%か}}, {{ja-r|梨%英|り%か}}: [[hoa]] [[lê]], lê [[nở]] |{{ja-r|梨%状%筋|り%じょう%きん}}: cơ hình lê |{{ja-r|鳳%梨|ほう%り}}: [[dứa]] {{qualifier|obsolete}} }} ==={{ĐM|ref}}=== <references/> :*{{R:Kanjipedia Kotoba|0005391700}} =={{langname|ojp}}== ==={{ĐM|pron}}=== *{{IPA4|ojp|[ɾʲi]}} ==={{ĐM|n}}=== {{head|ojp|Danh từ|tr=ri}} #[[lê|Lê]]. #:''~'' '''759''', ''{{w|Vạn diệp tập}}'', [[s:ja:万葉集/第十三巻|tập 13, bài 3251]] #::{{quote|ojp|大舟能 思憑 君故尓 盡心者 惜雲'''梨'''|tr=大船の思ひ頼める君ゆゑに尽す心は惜しけくもな'''し'''|Thuyền lớn vững chãi, thiếp dựa vào chàng, tình trao dốc hết, chẳng hề hối tiếc}} =={{langname|tyz}}== ==={{ĐM|pron}}=== {{tyz-IPA|lì}} ==={{ĐM|n}}=== {{head|tyz|Danh từ|tr=lì}} *{{tyz-Nom form of|lì|[[lê]]}} ::{{quote|tyz|枯𫇥'''梨'''𫮐本|tr=Co bioóc '''lì''' thua bản|Cây hoa '''lê''' đầu làng (then ''Quẻn lẩu'')|inline=1}} ==={{ĐM|ref}}=== *{{R:tyz:tdcnt}} =={{langname|ko}}== ==={{ĐM|pron}}=== {{ko-hanja-pron|리|이}} ==={{ĐM|hanja}}=== {{pn}} (''eumhun'' '''[[배]][[나무]] [[리]]''') #{{hanja form of|[[리]]/[[이]]|cây [[lê]]}} #:{{ux|ko|'''梨'''花|tr='''이'''화|[[hoa]] [[lê]]|inline=1}} ==={{ĐM|ref}}=== *{{R:hanjadoc|5040}} =={{langname|okm}}== ==={{ĐM|etym}}=== {{etym-from|lang=ltc|term=梨}} ===={{ĐM|hanja}}==== {{head|okm|Hán tự|tr=ni}} #Dạng Hán tự của {{l|okm|니}}. #:{{quote-book|okm|year=Thế kỷ 16|author=Trịnh Triệt ({{lang|okm|[[w:ko:정철|정철]]}})|title=Tùng giang ca từ ({{lang|okm|[[w:ko:송강가사|송강가사]]}})|chapter=[[s:ko:송강가사/관동별곡|관동별곡]]|passage='''梨'''니花화ᄂᆞᆫᄇᆞᆯ셔디고졉동새슬피울제|translation=Hoa lê rụng tự bao giờ, chim tử quy hót bi ai}} =={{langname|zh}}== ==={{ĐM|glyph origin}}=== {{Han etym}} {{Han compound|利|木|ls=psc|c1=p|c2=s}}. ==={{ĐM|etym}}=== {{unknown|zh}}. Cũng tìm thấy trong {{cognate|hmx-pro|*rəj}}; từ nguyên dân gian cho rằng phái sinh từ {{och-l|利|sắc}} ({{zh-ref|Schuessler, 2007}}). ==={{ĐM|pron}}=== {{zh-pron |m=lí |m-s=ni2 |m-x=lí |dg=ли1 |c=lei4,lei4-2 |ca=LL-Q9186-Luilui6666-梨.wav |c-dg=ngai4 |c-t=lei3 |g=li4 |h=pfs=lì;hrs=h:li;gd=li2 |j=li1 |mb=lî |md=lì/lài |md_note=lì - “lê”; lài - used in {{zh-l|*黃梨}} |mn=ml,tw,sg:lâi/lê |mn_note=lâi - bạch thoại; lê - văn ngôn |mn-t=lai5 |mn-l=lai5/li5 |mn-l_note=lai5 - bạch thoại; li5 - văn ngôn |px=pt,jk,nr,xy,yy,ft:lai2/pt,jk,xy,yy:le2/pt,jk,nr,xy,yy,ft:li2 |px_note=lai2 - bạch thoại (ví dụ {{zh-l|*王梨}}); le2 - bạch thoại (e.g. {{lw|zh|樊梨花}}); li2 - văn ngôn (e.g. {{zh-l|*梨花}}) |sp=li4 |w=sh:6li;jd,sj,cm,sz,cz,jx,hz,sx,nb:2li |w-j=2li |x=li2 |mc=y |oc=y |cat=n,v,pn }} ==={{ĐM|dfn}}=== [[Image:Pears.jpg|thumb|梨]] {{head|zh|Chữ Hán}} #[[lê|Lê]] {{zh-mw|m,c:個|c:隻}} #{{label|zh|obs-std}} {{alt form|zh|剺|t=[[cắt]]}} #{{surname|zh}}: Họ [[w:Lê (họ)|Lê]]. ==={{ĐM|com}}=== {{col3|zh|梨乾兒|梨膏|梨木|梨園|梨園戲|梨園子弟|交梨火棗|不查梨|孔融讓梨|梨頰微渦|梨花大鼓|白梨|梨雲|梨棗|災梨禍棗|梨花片|破麥破梨|梨樹|梨花簡|查梨|禍棗災梨|棠梨|梨園弟子|玉嬌梨|梨糕|梨子|梨園行|杏雨梨雲|楓梨|士多啤梨|梨渦|梨花帶雨|紅梨記|鴨兒梨|鳳梨|花梨|訶梨勒|雪梨|酪梨|鵝梨|鳥梨|雨打梨花|讓棗推梨|阿闍梨|鴨兒廣梨|賣查梨|梨山|香梨|鴨梨|不賣查梨|乳梨|伽梨|僧伽梨|僧迦梨|冰梨|凍梨|剖梨|合梨|含消梨|哀家梨|哀梨|因提梨|地梨|山梨|御梨|推梨讓棗|杜梨|查梨相|桑梨|梨乾|梨元|梨圈|梨園榜|梨庶|梨板|梨果|梨栗|梨栗兒|梨條|梨氓|梨狗|梨眉艾髮|梨窩|梨筒|梨肉|梨膏糖|梨花|梨花凍|梨花夢|梨花春|梨花月|梨花板|梨花槍|梨花盞|梨花粉|梨花蜜|梨花釀|梨花雨|梨花雲|梨花香|梨花鼓|梨英|梨萌|梨蓋|梨蕊|梨雪|梨雲夢|梨霜|梨面|梨頭|梨頰|梨顆|梨飣坐|棗梨|棠梨宫|棠梨宮|棠梨館|楞梨|樊梨花|沙梨|海棠梨|消梨|消梨花|災梨|狐梨|獼猴梨|疾梨|胡梨|臘梨|蒸梨|蛤梨|訶梨|訶梨子|訶梨怛雞|語兒梨|讓梨|賣楂梨|迦梨迦|迦梨郊|鄭州梨|釘坐梨|釘座梨|鐵腳梨|闍梨|阿梨|阿梨姨|霜梨|頗梨|食蛤梨|飣坐梨|飣座梨|香水梨|鳳栖梨|鳳棲梨|鵝梨角兒|鹿梨|麵梨|黃梨|鼠梨|齧梨|高接梨|水梨}} ==={{ĐM|desc}}=== * {{desc|ms|lai|t=lê|bor=1}} * {{desc|hmx-pro|*rəj|t=lê|bor=1}} ==={{ĐM|ref}}=== *{{R:yue:Hanzi}} *{{Chú thích sách|author=Viện Khoa học Xã hội Việt Nam|title=Từ điển Trung Việt|year=2006|location=[[Hà Nội]]|publisher=Nhà xuất bản Khoa học Xã hội|page=739|pageurl=https://archive.org/details/tu-dien-trung-viet-nxb-khxh/page/739}} lur77rvupfquq8b8gzz6ywrikb5y0g5 consacreren 0 396080 2351310 2026-05-08T06:47:54Z Hiyuune 50834 + nl 2351310 wikitext text/x-wiki =={{langname|nl}}== ==={{section|pron}}=== * {{IPA4|nl|/kɔnsaːˈkreːrə(n)/}} * {{audio|nl|Nl-consacreren.ogg}} * {{hyphenation|nl|con|sa|cre|ren}} ===={{section|v}}==== {{nl-verb}} # {{lb|nl|transitive}} [[cúng|Cúng]], [[thánh hóa]] ====={{section|forms}}===== {{nl-conj-wk|consacreer|consacrere}} ohigzdygacfncx6mrxiw9nzfor3t9ib 2351312 2351310 2026-05-08T06:48:05Z Hiyuune 50834 /* Tiếng Hà Lan */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]) 2351312 wikitext text/x-wiki =={{langname|nl}}== ==={{section|pron}}=== * {{IPA4|nl|/kɔnsaːˈkreːrə(n)/}} * {{audio|nl|Nl-consacreren.ogg}} * {{hyphenation|nl|con|sa|cre|ren}} ==={{section|v}}=== {{nl-verb}} # {{lb|nl|transitive}} [[cúng|Cúng]], [[thánh hóa]]. ====={{section|forms}}===== {{nl-conj-wk|consacreer|consacrere}} 9s4wfsa6x2orti4hnzvr9z6v31tafyd heteroslop 0 396081 2351316 2026-05-08T06:57:37Z Hiyuune 50834 Trang mới: “=={{langname|en}}== ==={{section|etym}}=== Từ {{affix|en|hetero-|slop}}. ==={{section|n}}=== {{en-noun|-}} # {{lb|en|internet slang|từ lóng LGBT|derogatory}} {{syn of|en|hetslop}}.” 2351316 wikitext text/x-wiki =={{langname|en}}== ==={{section|etym}}=== Từ {{affix|en|hetero-|slop}}. ==={{section|n}}=== {{en-noun|-}} # {{lb|en|internet slang|từ lóng LGBT|derogatory}} {{syn of|en|hetslop}}. 059awfnwf2qiiiynid9g2qdz9mk78km Thể loại:Từ lóng LGBT tiếng Anh 14 396082 2351318 2026-05-08T06:58:34Z Hiyuune 50834 Trang mới: “{{auto cat}}” 2351318 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Cây mọng nước/Tiếng Latvia 14 396083 2351322 2026-05-08T07:14:46Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Cây mọng nước/Tiếng Latvia]] thành [[Thể loại:lv:Cây mọng nước]] 2351322 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:lv:Cây mọng nước}} pk1qtpc127cyaofeqo0ql5ftrhc9mwa Thể loại:Lục địa/Tiếng Pháp 14 396084 2351325 2026-05-08T07:15:15Z Hiyuune 50834 Hiyuune đã đổi [[Thể loại:Lục địa/Tiếng Pháp]] thành [[Thể loại:fr:Lục địa]] 2351325 wikitext text/x-wiki {{Đổi hướng thể loại|Thể loại:fr:Lục địa}} njp6cwloqcle7539kemt5shg0dd8gt6 žurnāls 0 396085 2351329 2026-05-08T07:46:08Z Hiyuune 50834 Trang mới: “=={{langname|lv}}== {{wp|lv:}} [[File:German Printmagazines.jpg|thumb|žurnāli]] ==={{section|etym}}=== {{rfe|lv}} ==={{section|pron}}=== * {{lv-IPA|ˈʒurnaːls}} * {{hyph|lv|žur|nāls}} ==={{section|n}}=== {{lv-noun|m|1}} # [[tạp chí|Tạp chí]] # [[sổ tay]]; sổ [[ghi chép]]. #: {{syn|lv|burtnīca|klade}} # {{lb|lv|computing}} [[nhật trình|Nhật trình]], [[tệp]] [[nhật ký]]. ===={{section|decl}}==== {{lv-decl-noun|žurnāl|s|1st}} ==={{section…” 2351329 wikitext text/x-wiki =={{langname|lv}}== {{wp|lv:}} [[File:German Printmagazines.jpg|thumb|žurnāli]] ==={{section|etym}}=== {{rfe|lv}} ==={{section|pron}}=== * {{lv-IPA|ˈʒurnaːls}} * {{hyph|lv|žur|nāls}} ==={{section|n}}=== {{lv-noun|m|1}} # [[tạp chí|Tạp chí]] # [[sổ tay]]; sổ [[ghi chép]]. #: {{syn|lv|burtnīca|klade}} # {{lb|lv|computing}} [[nhật trình|Nhật trình]], [[tệp]] [[nhật ký]]. ===={{section|decl}}==== {{lv-decl-noun|žurnāl|s|1st}} ==={{section|further}}=== * {{R:SDTV}} {{C|lv|Sách|Giấy|Xuất bản phẩm định kỳ}} qoubqoqxu8qq2re0lrdqjryo93v14yl 2351334 2351329 2026-05-08T07:56:28Z Hiyuune 50834 /* Danh từ */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]) 2351334 wikitext text/x-wiki =={{langname|lv}}== {{wp|lv:}} [[File:German Printmagazines.jpg|thumb|žurnāli]] ==={{section|etym}}=== {{rfe|lv}} ==={{section|pron}}=== * {{lv-IPA|ˈʒurnaːls}} * {{hyph|lv|žur|nāls}} ==={{section|n}}=== {{lv-noun|m|1}} # [[tạp chí|Tạp chí]] # [[sổ tay|Sổ tay]]; sổ [[ghi chép]]. #: {{syn|lv|burtnīca|klade}} # {{lb|lv|computing}} [[nhật trình|Nhật trình]], [[tệp]] [[nhật ký]]. ===={{section|decl}}==== {{lv-decl-noun|žurnāl|s|1st}} ==={{section|further}}=== * {{R:SDTV}} {{C|lv|Sách|Giấy|Xuất bản phẩm định kỳ}} tgf2mg15ccfj309qc560d29ww5i60v2 žurnāli 0 396086 2351330 2026-05-08T07:52:12Z Hiyuune 50834 + lv 2351330 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|žurnāls||nom//voc|p}} kr6unhk6a9gdndci2rd5ifxltskrndn žurnāla 0 396087 2351331 2026-05-08T07:53:36Z Hiyuune 50834 Trang mới: “=={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|žurnāls||gen|s}}” 2351331 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|žurnāls||gen|s}} 08cf63g6tjlavt5rbvejydfgl74s9tk žurnālu 0 396088 2351332 2026-05-08T07:54:12Z Hiyuune 50834 + lv 2351332 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|žurnāls||gen|p|;|acc//ins|s}} 98yyu5d849kb8044xxlqb8b3x3kqvxs žurnālam 0 396089 2351333 2026-05-08T07:55:31Z Hiyuune 50834 Trang mới: “=={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|žurnāls||dat|s}}” 2351333 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|žurnāls||dat|s}} cjchxxa5osa0iuedc88mbv6hgnywk4u žurnāliem 0 396090 2351335 2026-05-08T07:56:56Z Hiyuune 50834 Trang mới: “=={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|žurnāls||dat//ins|p}}” 2351335 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|žurnāls||dat//ins|p}} sa6pcj7fegfi4uijl7euphykuhp1855 žurnālus 0 396091 2351336 2026-05-08T07:57:25Z Hiyuune 50834 Trang mới: “=={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|žurnāls||acc|p}}” 2351336 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|žurnāls||acc|p}} 47rkg3b1hy3zx6xdqam52wnmo0zbjzj žurnālā 0 396092 2351337 2026-05-08T07:59:05Z Hiyuune 50834 + lv 2351337 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|žurnāls||loc|s}} n5a9wm66bjvd3tg8agto6i88zplub5o žurnālos 0 396093 2351338 2026-05-08T07:59:38Z Hiyuune 50834 + lv 2351338 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|žurnāls||loc|p}} 6qpug6pbj1pz8gqz5wllzgo3st23nrl žurnāl 0 396094 2351339 2026-05-08T08:00:54Z Hiyuune 50834 + lv 2351339 wikitext text/x-wiki =={{langname|lv}}== ==={{ĐM|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|žurnāls||voc|s}} 6lki9jgi6ne6medyh2yqdvfcex6l2h1 demogrāfija 0 396095 2351340 2026-05-08T08:02:07Z Hiyuune 50834 Trang mới: “=={{langname|lv}}== {{wp|lv:}} ==={{section|etym}}=== {{intnat|lv}}, cuối cùng từ {{affix|lv|grc:δῆμος|grc:γράφω}}. ==={{section|n}}=== {{lv-noun|f|4}} # [[nhân khẩu học|Nhân khẩu học]]. ===={{section|decl}}==== {{lv-decl-noun|demogrāfij|a|4th||||proper|extrawidth=-60}}” 2351340 wikitext text/x-wiki =={{langname|lv}}== {{wp|lv:}} ==={{section|etym}}=== {{intnat|lv}}, cuối cùng từ {{affix|lv|grc:δῆμος|grc:γράφω}}. ==={{section|n}}=== {{lv-noun|f|4}} # [[nhân khẩu học|Nhân khẩu học]]. ===={{section|decl}}==== {{lv-decl-noun|demogrāfij|a|4th||||proper|extrawidth=-60}} 7olcaau3c6po85dzq60ogeiir2yrxqf demogrāfijas 0 396096 2351341 2026-05-08T08:03:11Z Hiyuune 50834 + lv 2351341 wikitext text/x-wiki =={{langname|lv}}== ==={{DM|n}}=== {{head|lv|noun form}} # {{infl of|lv|demogrāfija||nom//acc//voc|p|;|gen|s}} am120u9etspvxmm4w7ezbvdtbgb083a 2351342 2351341 2026-05-08T08:03:29Z Hiyuune 50834 /* Tiếng Latvia */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]) 2351342 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|demogrāfija||nom//acc//voc|p|;|gen|s}} n1co5x2h7ukdqa5ljm2wtdx9sc3up32 demogrāfiju 0 396097 2351343 2026-05-08T08:08:01Z Hiyuune 50834 + lv 2351343 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|demogrāfija||gen|p|;|acc//ins|s}} guiknejnv996rvh69w75c0ced3vdexu demogrāfijai 0 396098 2351344 2026-05-08T08:15:46Z Hiyuune 50834 Trang mới: “=={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|demogrāfija||dat|s}}” 2351344 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|demogrāfija||dat|s}} d3wef303lw2254polvjnvyzwgy6igyw demogrāfijām 0 396099 2351345 2026-05-08T08:16:28Z Hiyuune 50834 Trang mới: “=={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|demogrāfija||dat//ins|p}}” 2351345 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|demogrāfija||dat//ins|p}} h21xxhbgxe7cmdk9i6bv0399ysvjtrm demogrāfijā 0 396100 2351346 2026-05-08T08:17:03Z Hiyuune 50834 + lv 2351346 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|demogrāfija||loc|s}} opakrcpip7rm6scz8txmpfwrx336dcu demogrāfijās 0 396101 2351347 2026-05-08T08:18:40Z Hiyuune 50834 + lv 2351347 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|demogrāfija||loc|p}} o6sgbl8nvsuet85l2l5z3yci2fnuuxz anagrammas 0 396102 2351348 2026-05-08T08:21:37Z Hiyuune 50834 + lv 2351348 wikitext text/x-wiki =={{langname|lv}}== ==={{section|n}}=== {{head|lv|Biến thể hình thái danh từ}} # {{infl of|lv|anagramma||nom//acc//voc|p|;|gen|s}} 3te8j9bjgpkzovils2z643fghaoqx9r anagramma 0 396103 2351349 2026-05-08T08:26:00Z Hiyuune 50834 Trang mới: “=={{langname|pl}}== ==={{section|pron}}=== {{pl-pr}} ==={{section|n}}=== {{pl-noun|n}} # {{obs form|pl|anagram}} =={{langname|hu}}== {{swp|hu:}} ==={{section|etym}}=== Từ {{der|hu|la|anagramma}}, từ {{der|hu|grc|ἀνά||đảo ngược}} + {{mention|grc|γράμμα||chữ cái}}.<ref>{{R:TotfalusiEty 2005}}</ref> ==={{section|pron}}=== * {{hu-IPA}} * {{rhymes|hu|mɒ|s=4}} * {{hyphenation|hu|anag|ram|ma}} * {{hu-syll|a|nag|ram|ma}} ==={{section|n}}=== {{hu-nou…” 2351349 wikitext text/x-wiki =={{langname|pl}}== ==={{section|pron}}=== {{pl-pr}} ==={{section|n}}=== {{pl-noun|n}} # {{obs form|pl|anagram}} =={{langname|hu}}== {{swp|hu:}} ==={{section|etym}}=== Từ {{der|hu|la|anagramma}}, từ {{der|hu|grc|ἀνά||đảo ngược}} + {{mention|grc|γράμμα||chữ cái}}.<ref>{{R:TotfalusiEty 2005}}</ref> ==={{section|pron}}=== * {{hu-IPA}} * {{rhymes|hu|mɒ|s=4}} * {{hyphenation|hu|anag|ram|ma}} * {{hu-syll|a|nag|ram|ma}} ==={{section|n}}=== {{hu-noun|pl=anagrammák}} # {{lb|hu|linguistics}} [[từ đảo chữ|Từ đảo chữ]]. ===={{section|decl}}==== {{hu-infl-nom|anagrammá|o}}{{hu-pos-tok|anagrammá}} ==={{section|ref}}=== <references/> ==={{section|further}}=== * {{R:ErtSz}} * {{R:Nagyszotar}} =={{langname|lv}}== {{wp|lv:}} ==={{section|n}}=== {{lv-noun|f|4}} # [[từ đảo chữ|Từ đảo chữ]]. ===={{section|decl}}==== {{lv-decl-noun|anagramm|a|4th}} =={{langname|it}}== ==={{section|pron}}=== {{it-pr|anagràmma}} ==={{section|etym}} 1=== Từ {{confix|it|ana|gramma}}. ===={{section|n}}==== {{it-noun|m}} # [[từ đảo chữ|Từ đảo chữ]]. ====={{section|drv}}===== * {{l|it|anagrammare}} ==={{section|etym}} 2=== ===={{section|v}}==== {{head|it|Biến thể hình thái động từ}} # {{inflection of|it|anagrammare||indc|pres|ở|3s|;|impr|ở|2s}} ==={{section|further}}=== * {{R:it:Treccani}} brg3hzauxw0i17fmeyvu9j7999ng16l Phụ lục:Từ kết thúc bằng -ász -ész tiếng Hungary 100 396104 2351350 2026-05-08T08:29:41Z Hiyuune 50834 Trang mới: “__NOTOC__ ---- Dưới đây là danh sách mục từ kết thúc bằng {{mention|hu|-ász}} / {{mention|hu|-ész}} trong tiếng Hungary. ==-ász== * {{l|hu|agarász}}, {{l|hu|aknász}}, {{l|hu|árkász}} * {{l|hu|bányász}}, {{l|hu|barlangász}}, {{l|hu|belgyógyász}}, {{l|hu|borász}}, {{l|hu|bőrgyógyász}} * {{l|hu|cukrász}} * {{l|hu|csíkász}}, {{l|hu|csillagász}} * {{l|hu|éhenkórász}} * {{l|hu|farkász}}, {{l|hu|finnugrász}}, {{l|hu|firkász}}, {{l|hu…” 2351350 wikitext text/x-wiki __NOTOC__ ---- Dưới đây là danh sách mục từ kết thúc bằng {{mention|hu|-ász}} / {{mention|hu|-ész}} trong tiếng Hungary. ==-ász== * {{l|hu|agarász}}, {{l|hu|aknász}}, {{l|hu|árkász}} * {{l|hu|bányász}}, {{l|hu|barlangász}}, {{l|hu|belgyógyász}}, {{l|hu|borász}}, {{l|hu|bőrgyógyász}} * {{l|hu|cukrász}} * {{l|hu|csíkász}}, {{l|hu|csillagász}} * {{l|hu|éhenkórász}} * {{l|hu|farkász}}, {{l|hu|finnugrász}}, {{l|hu|firkász}}, {{l|hu|fodrász}}, {{l|hu|fogász}}, {{l|hu|fülgyógyász}} * {{l|hu|galambász}}, {{l|hu|gazdász}}, {{l|hu|gombász}} * {{l|hu|hadrász}}, {{l|hu|hajhász}}, {{l|hu|halász}}, {{l|hu|hamvász}}, {{l|hu|hangász}}, {{l|hu|hangyász}}, {{l|hu|harcász}}, {{l|hu|hidász}}, {{l|hu|horgász}} * {{l|hu|ideggyógyász}}, {{l|hu|ihász}}, {{l|hu|íjász}} * {{l|hu|jogász}}, {{l|hu|juhász}} * {{l|hu|kanász}}, {{l|hu|kígyász}}, {{l|hu|kohász}}, {{l|hu|kondász}}, {{l|hu|kormász}}, {{l|hu|közgazdász}} * {{l|hu|lovász}}, {{l|hu|légtornász}} * {{l|hu|madarász}}, {{l|hu|mezőgazdász}} * {{l|hu|nemzetgazdász}}, {{l|hu|nőcsábász}}, {{l|hu|nőgyógyász}} * {{l|hu|nyomdász}}, {{l|hu|nyulász}} * {{l|hu|ódondász}}, {{l|hu|olimpiász}} * {{l|hu|pákász}}, {{l|hu|pingász}}, {{l|hu|pulykász}} * {{l|hu|rákász}}, {{l|hu|rongyász}} * {{l|hu|solymász}} * {{l|hu|szabász}}, {{l|hu|szobrász}} * {{l|hu|távirdász}}, {{l|hu|távírász}}, {{l|hu|tikász}}, {{l|hu|tornász}} * {{l|hu|tyúkász}} * {{l|hu|utász}}, {{l|hu|újdondász}} * {{l|hu|üzemgazdász}} * {{l|hu|vadász}}, {{l|hu|varjász}}, {{l|hu|vargányász}} ==-ész== * {{l|hu|bölcsész}}, {{l|hu|bűvész}} * {{l|hu|cipész}} * {{l|hu|csempész}}, {{l|hu|cserkész}}, {{l|hu|csibész}} * {{l|hu|dögész}} * {{l|hu|ebész}}, {{l|hu|egerész}}, {{l|hu|ékszerész}}, {{l|hu|építész}}, {{l|hu|eprész}}, {{l|hu|erdész}} * {{l|hu|fényképész}}, {{l|hu|fülész}}, {{l|hu|füvész}}, {{l|hu|földész}} * {{l|hu|gégész}}, {{l|hu|gépész}} * {{l|hu|gyógyszerész}} * {{l|hu|hegedűművész}} * {{l|hu|ítész}} * {{l|hu|képezdész}}, {{l|hu|kertész}}, {{l|hu|költész}}, {{l|hu|kövész}} * {{l|hu|lelkész}}, {{l|hu|látszerész}}, {{l|hu|lövész}} * {{l|hu|méhész}}, {{l|hu|műszerész}}, {{l|hu|művész}} * {{l|hu|növényész}} * {{l|hu|nyelvész}} * {{l|hu|ökrész}} * {{l|hu|pörész}} * {{l|hu|régész}}, {{l|hu|rendész}}, {{l|hu|rétész}}, {{l|hu|révész}} * {{l|hu|sebész}}, {{l|hu|soltész}} * {{l|hu|szekerész}}, {{l|hu|szemész}}, {{l|hu|szemlész}}, {{l|hu|szinkronszínész}}, {{l|hu|színész}}, {{l|hu|szőlész}}, {{l|hu|szőnyegész}}, {{l|hu|szülész}} * {{l|hu|tehenész}}, {{l|hu|tengerész}}, {{l|hu|térképész}}, {{l|hu|tintász}}, {{l|hu|tőrész}}, {{l|hu|történész}}, {{l|hu|tűzszerész}} * {{l|hu|ügyész}} * {{l|hu|vegyész}} * {{l|hu|zenész}}, {{l|hu|zongoraművész}} ==Tham khảo== * 2009, Péter Iván Horváth, ''Halász, vadász, madarász'' [http://www.e-nyelv.hu/2009-02-01/horvath-peter-ivan-halasz-vadasz-madarasz/], article in Hungarian * {{R:Zaicz 2006}} * {{R:RégiMagyarSzavak 2012}} * ''Magyar tájszavak és népies lexikai elemek adatbázisa'' Tinta Könyvkiadó [[Thể loại:Phụ lục tiếng Hungary]] eon8eyiick62vmf9ekhxp6msgu2g1bf centrorum 0 396105 2351351 2026-05-08T08:34:40Z Hiyuune 50834 + la 2351351 wikitext text/x-wiki =={{langname|la}}== ==={{section|n}}=== {{head|la|Biến thể hình thái danh từ|head=centrōrum}} # {{inflection of|la|centrum||gen|p}} 87eo0n2lt0qm73zybjhtg3smuy013tj vērts 0 396106 2351352 2026-05-08T08:40:59Z Hiyuune 50834 Trang mới: “=={{langname|lv}}== ==={{section|etym}}=== Có thể từ {{bor|lv|de|Wert}}. So sánh với {{cog|lt|ver̃tas}}, {{cog|et|väärt}}. ==={{section|pron}}=== * {{lv-IPA|ˈvǣːɾt͡s|level}} ==={{section|adj}}=== {{lv-adj|vērt|head=vȩ̃rts}} # Có [[giá trị]]. # [[đáng giá|Đáng giá]]. ===={{section|decl}}==== {{lv-decl-adj|vērt}} ===={{section|drv}}==== * {{l|lv|vērtība}} * {{l|lv|vērtīgs}}” 2351352 wikitext text/x-wiki =={{langname|lv}}== ==={{section|etym}}=== Có thể từ {{bor|lv|de|Wert}}. So sánh với {{cog|lt|ver̃tas}}, {{cog|et|väärt}}. ==={{section|pron}}=== * {{lv-IPA|ˈvǣːɾt͡s|level}} ==={{section|adj}}=== {{lv-adj|vērt|head=vȩ̃rts}} # Có [[giá trị]]. # [[đáng giá|Đáng giá]]. ===={{section|decl}}==== {{lv-decl-adj|vērt}} ===={{section|drv}}==== * {{l|lv|vērtība}} * {{l|lv|vērtīgs}} 61cmyexu6c54zl8n988irouuntqipee Mô đun:number list/data/lv 828 396107 2351353 2026-05-08T08:45:50Z Hiyuune 50834 Trang mới: “local export = {numbers = {}} local numbers = export.numbers numbers[0] = { cardinal = "nulle", } numbers[1] = { cardinal = "viens", ordinal = "pirmais" } numbers[2] = { cardinal = "divi", ordinal = "otrais" } numbers[3] = { cardinal = "trīs", ordinal = "trešais" } numbers[4] = { cardinal = "četri", ordinal = "ceturtais" } numbers[5] = { cardinal = "pieci", ordinal = "piektais" } numbers[6] = { cardinal = "seši", ordinal = "sestais" } numbers[7] = { ca…” 2351353 Scribunto text/plain local export = {numbers = {}} local numbers = export.numbers numbers[0] = { cardinal = "nulle", } numbers[1] = { cardinal = "viens", ordinal = "pirmais" } numbers[2] = { cardinal = "divi", ordinal = "otrais" } numbers[3] = { cardinal = "trīs", ordinal = "trešais" } numbers[4] = { cardinal = "četri", ordinal = "ceturtais" } numbers[5] = { cardinal = "pieci", ordinal = "piektais" } numbers[6] = { cardinal = "seši", ordinal = "sestais" } numbers[7] = { cardinal = "septiņi", ordinal = "septītais" } numbers[8] = { cardinal = "astoņi", ordinal = "astotais" } numbers[9] = { cardinal = "deviņi", ordinal = "devītais" } numbers[10] = { cardinal = "desmit", ordinal = "desmitais" } numbers[11] = { cardinal = "vienpadsmit", ordinal = "vienpadsmitais" } numbers[12] = { cardinal = "divpadsmit", ordinal = "divpadsmitais" } numbers[13] = { cardinal = "trīspadsmit", ordinal = "trīspadsmitais" } numbers[14] = { cardinal = "četrpadsmit", ordinal = "četrpadsmitais" } numbers[15] = { cardinal = "piecpadsmit", ordinal = "piecpadsmitais" } numbers[16] = { cardinal = "sešpadsmit", ordinal = "sešpadsmitais" } numbers[17] = { cardinal = "septiņpadsmit", ordinal = "septiņpadsmitais" } numbers[18] = { cardinal = "astoņpadsmit", ordinal = "astoņpadsmitais" } numbers[19] = { cardinal = "deviņpadsmit", ordinal = "deviņpadsmitais" } numbers[20] = { cardinal = "divdesmit", ordinal = "divdesmitais" } numbers[21] = { cardinal = "divdesmit viens", ordinal = "divdesmit pirmais" } numbers[22] = { cardinal = "divdesmit divi", ordinal = "divdesmit otrais" } numbers[23] = { cardinal = "divdesmit trīs", ordinal = "divdesmit trešais" } numbers[24] = { cardinal = "divdesmit četri", ordinal = "divdesmit ceturtais" } numbers[25] = { cardinal = "divdesmit pieci", ordinal = "divdesmit piektais" } numbers[26] = { cardinal = "divdesmit seši", ordinal = "divdesmit sestais" } numbers[27] = { cardinal = "divdesmit septiņi", ordinal = "divdesmit septītais" } numbers[28] = { cardinal = "divdesmit astoņi", ordinal = "divdesmit astotais" } numbers[29] = { cardinal = "divdesmit deviņi", ordinal = "divdesmit devītais" } numbers[30] = { cardinal = "trīsdesmit", ordinal = "trīsdesmitais" } numbers[31] = { cardinal = "trīsdesmit viens", ordinal = "trīsdesmit pirmais" } numbers[32] = { cardinal = "trīsdesmit divi", ordinal = "trīsdesmit otrais" } numbers[33] = { cardinal = "trīsdesmit trīs", ordinal = "trīsdesmit trešais" } numbers[34] = { cardinal = "trīsdesmit četri", ordinal = "trīsdesmit ceturtais" } numbers[35] = { cardinal = "trīsdesmit pieci", ordinal = "trīsdesmit piektais" } numbers[36] = { cardinal = "trīsdesmit seši", ordinal = "trīsdesmit sestais" } numbers[37] = { cardinal = "trīsdesmit septiņi", ordinal = "trīsdesmit septītais" } numbers[38] = { cardinal = "trīsdesmit astoņi", ordinal = "trīsdesmit astotais" } numbers[39] = { cardinal = "trīsdesmit deviņi", ordinal = "trīsdesmit devītais" } numbers[40] = { cardinal = "četrdesmit", ordinal = "četrdesmitais" } numbers[41] = { cardinal = "četrdesmit viens", ordinal = "četrdesmit pirmais" } numbers[42] = { cardinal = "četrdesmit divi", ordinal = "četrdesmit otrais" } numbers[43] = { cardinal = "četrdesmit trīs", ordinal = "četrdesmit trešais" } numbers[44] = { cardinal = "četrdesmit četri", ordinal = "četrdesmit ceturtais" } numbers[45] = { cardinal = "četrdesmit pieci", ordinal = "četrdesmit piektais" } numbers[46] = { cardinal = "četrdesmit seši", ordinal = "četrdesmit sestais" } numbers[47] = { cardinal = "četrdesmit septiņi", ordinal = "četrdesmit septītais" } numbers[48] = { cardinal = "četrdesmit astoņi", ordinal = "četrdesmit astotais" } numbers[49] = { cardinal = "četrdesmit deviņi", ordinal = "četrdesmit devītais" } numbers[50] = { cardinal = "piecdesmit", ordinal = "piecdesmitais" } numbers[51] = { cardinal = "piecdesmit viens", ordinal = "piecdesmit pirmais" } numbers[52] = { cardinal = "piecdesmit divi", ordinal = "piecdesmit otrais" } numbers[53] = { cardinal = "piecdesmit trīs", ordinal = "piecdesmit trešais" } numbers[54] = { cardinal = "piecdesmit četri", ordinal = "piecdesmit ceturtais" } numbers[55] = { cardinal = "piecdesmit pieci", ordinal = "piecdesmit piektais" } numbers[56] = { cardinal = "piecdesmit seši", ordinal = "piecdesmit sestais" } numbers[57] = { cardinal = "piecdesmit septiņi", ordinal = "piecdesmit septītais" } numbers[58] = { cardinal = "piecdesmit astoņi", ordinal = "piecdesmit astotais" } numbers[59] = { cardinal = "piecdesmit deviņi", ordinal = "piecdesmit devītais" } numbers[60] = { cardinal = "sešdesmit", ordinal = "sešdesmitais" } numbers[61] = { cardinal = "sešdesmit viens", ordinal = "sešdesmit pirmais" } numbers[62] = { cardinal = "sešdesmit divi", ordinal = "sešdesmit otrais" } numbers[63] = { cardinal = "sešdesmit trīs", ordinal = "sešdesmit trešais" } numbers[64] = { cardinal = "sešdesmit četri", ordinal = "sešdesmit ceturtais" } numbers[65] = { cardinal = "sešdesmit pieci", ordinal = "sešdesmit piektais" } numbers[66] = { cardinal = "sešdesmit seši", ordinal = "sešdesmit sestais" } numbers[67] = { cardinal = "sešdesmit septiņi", ordinal = "sešdesmit septītais" } numbers[68] = { cardinal = "sešdesmit astoņi", ordinal = "sešdesmit astotais" } numbers[69] = { cardinal = "sešdesmit deviņi", ordinal = "sešdesmit devītais" } numbers[70] = { cardinal = "septiņdesmit", ordinal = "septiņdesmitais" } numbers[71] = { cardinal = "septiņdesmit viens", ordinal = "septiņdesmit pirmais" } numbers[72] = { cardinal = "septiņdesmit divi", ordinal = "septiņdesmit otrais" } numbers[73] = { cardinal = "septiņdesmit trīs", ordinal = "septiņdesmit trešais" } numbers[74] = { cardinal = "septiņdesmit četri", ordinal = "septiņdesmit ceturtais" } numbers[75] = { cardinal = "septiņdesmit pieci", ordinal = "septiņdesmit piektais" } numbers[76] = { cardinal = "septiņdesmit seši", ordinal = "septiņdesmit sestais" } numbers[77] = { cardinal = "septiņdesmit septiņi", ordinal = "septiņdesmit septītais" } numbers[78] = { cardinal = "septiņdesmit astoņi", ordinal = "septiņdesmit astotais" } numbers[79] = { cardinal = "septiņdesmit deviņi", ordinal = "septiņdesmit devītais" } numbers[80] = { cardinal = "astoņdesmit", ordinal = "astoņdesmitais" } numbers[81] = { cardinal = "astoņdesmit viens", ordinal = "astoņdesmit pirmais" } numbers[82] = { cardinal = "astoņdesmit divi", ordinal = "astoņdesmit otrais" } numbers[83] = { cardinal = "astoņdesmit trīs", ordinal = "astoņdesmit trešais" } numbers[84] = { cardinal = "astoņdesmit četri", ordinal = "astoņdesmit ceturtais" } numbers[85] = { cardinal = "astoņdesmit pieci", ordinal = "astoņdesmit piektais" } numbers[86] = { cardinal = "astoņdesmit seši", ordinal = "astoņdesmit sestais" } numbers[87] = { cardinal = "astoņdesmit septiņi", ordinal = "astoņdesmit septītais" } numbers[88] = { cardinal = "astoņdesmit astoņi", ordinal = "astoņdesmit astotais" } numbers[89] = { cardinal = "astoņdesmit deviņi", ordinal = "astoņdesmit devītais" } numbers[90] = { cardinal = "deviņdesmit", ordinal = "deviņdesmitais" } numbers[91] = { cardinal = "deviņdesmit viens", ordinal = "deviņdesmit pirmais" } numbers[92] = { cardinal = "deviņdesmit divi", ordinal = "deviņdesmit otrais" } numbers[93] = { cardinal = "deviņdesmit trīs", ordinal = "deviņdesmit trešais" } numbers[94] = { cardinal = "deviņdesmit četri", ordinal = "deviņdesmit ceturtais" } numbers[95] = { cardinal = "deviņdesmit pieci", ordinal = "deviņdesmit piektais" } numbers[96] = { cardinal = "deviņdesmit seši", ordinal = "deviņdesmit sestais" } numbers[97] = { cardinal = "deviņdesmit septiņi", ordinal = "deviņdesmit septītais" } numbers[98] = { cardinal = "deviņdesmit astoņi", ordinal = "deviņdesmit astotais" } numbers[99] = { cardinal = "deviņdesmit deviņi", ordinal = "deviņdesmit devītais" } numbers[100] = { cardinal = "simts", ordinal = "simtais" } numbers[1000] = { cardinal = "tūkstotis", ordinal = "tūkstošais" } numbers[1000000000] = { cardinal = "miljards" } return export 5ljgpfk978kszbxauvwsjzi7rxs6zfk Mô đun:zh/data/dial-syn/天課 828 396108 2351354 2026-05-08T08:48:09Z Hiyuune 50834 Trang mới: “local export = {} export.list = { ["title"] = "", ["meaning"] = "zakat; [[:w:vi:của bố thí|của bố thí]]", ["note"] = "", ["Classical"] = { "" }, ["Formal"] = { "天課" }, ["Taxonomic"] = { "" }, ["Beijing"] = { "哉卡忒" }, ["Beijing-PG"] = { "" }, ["Beijing-MY"] = { "" }, ["Beijing-HR"] = { "" }, ["Beijing-YQ"] = { "" }, ["Beijing-CP"] = { "" }, ["Beijing-MTG"] = { "" }, ["Beijing-FS"] = { ""…” 2351354 Scribunto text/plain local export = {} export.list = { ["title"] = "", ["meaning"] = "zakat; [[:w:vi:của bố thí|của bố thí]]", ["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"] = { "" }, ["Jingzhou-SS"] = { "" }, ["Malaysia-M"] = { "" }, ["Singapore-M"] = { "" }, ["Taz"] = { "" }, ["Tianjin"] = { "" }, ["Tianjin-JZ"] = { "" }, ["Tianjin-BD"] = { "" }, ["Tianjin-NH"] = { "" }, ["Tianjin-HG"] = { "" }, ["Tianjin-TG"] = { "" }, ["Tianjin-DG"] = { "" }, ["Tianjin-JN"] = { "" }, ["Tianjin-DL"] = { "" }, ["Tianjin-JH"] = { "" }, ["Tianjin-XQ"] = { "" }, ["Tianjin-BC"] = { "" }, ["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"] = { "" }, ["Chengyang"] = { "" }, ["Jimo"] = { "" }, ["Laixi"] = { "" }, ["Pingdu"] = { "" }, ["Jiaozhou"] = { "" }, ["Jiaonan"] = { "" }, ["Hanting"] = { "" }, ["Changyi"] = { "" }, ["Gaomi"] = { "" }, ["Zhucheng"] = { "" }, ["Anqiu"] = { "" }, ["Linqu"] = { "" }, ["Qingzhou"] = { "" }, ["Yishui"] = { "" }, ["Hulin-XL"] = { "" }, ["Linjiang"] = { "" }, ["Ji'an-M"] = { "" }, ["Luoyang"] = { "" }, ["Luoning"] = { "" }, ["Sanmenxia"] = { "" }, ["Lingbao"] = { "" }, ["Luohe"] = { "" }, ["Zhumadian"] = { "" }, ["Biyang"] = { "" }, ["Zhoukou"] = { "" }, ["Dancheng"] = { "" }, ["Xuchang"] = { "" }, ["Changge"] = { "" }, ["Pingdingshan"] = { "" }, ["Lushan-M"] = { "" }, ["Nanyang"] = { "" }, ["Xixia"] = { "" }, ["Dengzhou"] = { "" }, ["Zaozhuang"] = { "" }, ["Ningyang"] = { "" }, ["Jining-M"] = { "" }, ["Linyi"] = { "" }, ["Heze"] = { "" }, ["Daming"] = { "" }, ["Yuncheng"] = { "" }, ["Wenxi"] = { "" }, ["Longxing"] = { "" }, ["Yongji"] = { "" }, ["Wanrong"] = { "" }, ["Ronghe"] = { "" }, ["Linfen"] = { "" }, ["Jixian"] = { "" }, ["Huozhou"] = { "" }, ["Hongtong"] = { "" }, ["Shangqiu"] = { "" }, ["Yongcheng"] = { "" }, ["Yuanyang"] = { "" }, ["Zhengzhou"] = { "" }, ["Kaifeng"] = { "" }, ["Lankao"] = { "" }, ["Changyuan"] = { "" }, ["Xunxian"] = { "" }, ["Puyang"] = { "" }, ["Fanxian"] = { "" }, ["Xinyang"] = { "" }, ["Gushi"] = { "" }, ["Shangluo"] = { "" }, ["Luonan"] = { "" }, ["Danfeng"] = { "" }, ["Shangnan"] = { "" }, ["Shanyang"] = { "" }, ["Zhen'an"] = { "" }, ["Hanbin"] = { "" }, ["Hanbin-XH"] = { "" }, ["Baihe"] = { "" }, ["Baihe-MP"] = { "" }, ["Pingli"] = { "" }, ["Xunyang"] = { "" }, ["Lueyang"] = { "" }, ["Mianxian"] = { "" }, ["Yangxian"] = { "" }, ["Xi'an"] = { "" }, ["Weiyang"] = { "" }, ["Baqiao"] = { "" }, ["Yanliang"] = { "" }, ["Lintong"] = { "" }, ["Chang'an"] = { "" }, ["Huyi"] = { "" }, ["Gaoling"] = { "" }, ["Zhouzhi"] = { "" }, ["Lantian"] = { "" }, ["Xianyang"] = { "" }, ["Xingping"] = { "" }, ["Wugong"] = { "" }, ["Qianxian"] = { "" }, ["Liquan"] = { "" }, ["Jingyang"] = { "" }, ["Sanyuan-M"] = { "" }, ["Yongshou"] = { "" }, ["Changwu"] = { "" }, ["Tongchuan"] = { "" }, ["Yaozhou"] = { "" }, ["Yijun"] = { "" }, ["Weinan"] = { "" }, ["Weinan-HZ"] = { "" }, ["Hancheng"] = { "" }, ["Huayin"] = { "" }, ["Tongguan"] = { "" }, ["Dali-SX"] = { "" }, ["Heyang"] = { "" }, ["Chengcheng"] = { "" }, ["Baishui"] = { "" }, ["Pucheng-M"] = { "" }, ["Fuping"] = { "" }, ["Huanglong"] = { "" }, ["Yichuan"] = { "" }, ["Huangling"] = { "" }, ["Luochuan"] = { "" }, ["Fuxian"] = { "" }, ["Dingbian"] = { "" }, ["Baoji"] = { "" }, ["Baoji-CC"] = { "" }, ["Fengxiang"] = { "" }, ["Qishan"] = { "" }, ["Fufeng"] = { "" }, ["Meixian-M"] = { "" }, ["Taibai"] = { "" }, ["Fengxian-SX"] = { "" }, ["Qianyang"] = { "" }, ["Longxian"] = { "" }, ["Linyou"] = { "" }, ["Tongxin"] = { "" }, ["Yanchi"] = { "" }, ["Guyuan"] = { "" }, ["Xiji"] = { "" }, ["Longde"] = { "" }, ["Jingyuan"] = { "" }, ["Tianshui"] = { "" }, ["Hezuo"] = { "" }, ["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"] = { "則卡提", "栽卡忒", "天課" }, ["Lingwu"] = { "則卡提" }, ["Najiahu"] = { "" }, ["Wuzhong"] = { "" }, ["Zhongwei"] = { "" }, ["Bayanhot"] = { "" }, ["Lanzhou"] = { "" }, ["Jiuquan"] = { "" }, ["Dunhuang"] = { "" }, ["Shandan"] = { "" }, ["Wuwei-GS"] = { "" }, ["Wuwei-GS-ZY"] = { "" }, ["Tianzhu"] = { "" }, ["Hami"] = { "" }, ["Changji"] = { "" }, ["Ürümqi"] = { "" }, ["Dabancheng-XG"] = { "" }, ["Midong-CSZ"] = { "" }, ["Ürümqi-BFG"] = { "" }, ["Jimsar"] = { "" }, ["Chengdu"] = { "" }, ["Xindu"] = { "" }, ["Xindu-XF"] = { "" }, ["Huayang"] = { "" }, ["Pidu"] = { "" }, ["Wenjiang"] = { "" }, ["Shuangliu"] = { "" }, ["Xinjin"] = { "" }, ["Jintang"] = { "" }, ["Pengzhou"] = { "" }, ["Dujiangyan"] = { "" }, ["Chongzhou"] = { "" }, ["Dayi"] = { "" }, ["Pujiang-M"] = { "" }, ["Qionglai"] = { "" }, ["Jianyang-M"] = { "" }, ["Xiaojin"] = { "" }, ["Jinchuan"] = { "" }, ["Songpan"] = { "" }, ["Maoxian"] = { "" }, ["Lixian"] = { "" }, ["Wenchuan"] = { "" }, ["Deyang"] = { "" }, ["Luojiang"] = { "" }, ["Mianzhu"] = { "" }, ["Shifang"] = { "" }, ["Guanghan"] = { "" }, ["Zhongjiang"] = { "" }, ["Ziyang-SC"] = { "" }, ["Anyue"] = { "" }, ["Lezhi"] = { "" }, ["Mianyang"] = { "" }, ["Anzhou"] = { "" }, ["Zitong"] = { "" }, ["Jiangyou"] = { "" }, ["Jiangyou-ZM"] = { "" }, ["Pingwu"] = { "" }, ["Beichuan"] = { "" }, ["Yanting"] = { "" }, ["Santai"] = { "" }, ["Guangyuan"] = { "" }, ["Zhaohua"] = { "" }, ["Cangxi"] = { "" }, ["Jiange"] = { "" }, ["Meishan"] = { "" }, ["Pengshan"] = { "" }, ["Danling"] = { "" }, ["Hongya"] = { "" }, ["Qingshen"] = { "" }, ["Renshou"] = { "" }, ["Luzhou"] = { "" }, ["Naxi"] = { "" }, ["Luxian"] = { "" }, ["Xuyong"] = { "" }, ["Gulin"] = { "" }, ["Hejiang"] = { "" }, ["Yibin"] = { "" }, ["Nanxi"] = { "" }, ["Pingshan-M"] = { "" }, ["Gaoxian"] = { "" }, ["Changning-M"] = { "" }, ["Gongxian"] = { "" }, ["Xingwen-GS"] = { "" }, ["Xingwen-BWS"] = { "" }, ["Jiang'an"] = { "" }, ["Junlian"] = { "" }, ["Leshan"] = { "" }, ["Jiajiang"] = { "" }, ["Emeishan"] = { "" }, ["Ebian"] = { "" }, ["Qianwei"] = { "" }, ["Mabian"] = { "" }, ["Jingyan"] = { "" }, ["Neijiang"] = { "" }, ["Zizhong"] = { "" }, ["Weiyuan"] = { "" }, ["Longchang"] = { "" }, ["Suining-SC"] = { "" }, ["Pengxi"] = { "" }, ["Shehong"] = { "" }, ["Guang'an"] = { "" }, ["Yuechi"] = { "" }, ["Wusheng"] = { "" }, ["Linshui"] = { "" }, ["Nanchong"] = { "" }, ["Nanbu"] = { "" }, ["Langzhong"] = { "" }, ["Yilong"] = { "" }, ["Yingshan"] = { "" }, ["Peng'an"] = { "" }, ["Dazhou"] = { "" }, ["Dazhu"] = { "" }, ["Kaijiang"] = { "" }, ["Wanyuan"] = { "" }, ["Xuanhan"] = { "" }, ["Bazhong"] = { "" }, ["Tongjiang"] = { "" }, ["Nanjiang"] = { "" }, ["Hanyuan"] = { "" }, ["Xichang"] = { "" }, ["Zigong"] = { "" }, ["Fushun"] = { "" }, ["Rongxian-M"] = { "" }, ["Muli"] = { "" }, ["Leibo"] = { "" }, ["Chongqing"] = { "" }, ["Chongqing-JB"] = { "" }, ["Chongqing-JLP"] = { "" }, ["Chongqing-DDK"] = { "" }, ["Chongqing-SPB"] = { "" }, ["Chongqing-BN"] = { "" }, ["Chongqing-NA"] = { "" }, ["Chongqing-QIJ"] = { "" }, ["Chongqing-QJ-WS"] = { "" }, ["Chongqing-YB"] = { "" }, ["Chongqing-BB"] = { "" }, ["Chongqing-NC"] = { "" }, ["Chongqing-WL"] = { "" }, ["Chongqing-DZ"] = { "" }, ["Chongqing-RC"] = { "" }, ["Chongqing-YC"] = { "" }, ["Chongqing-BS"] = { "" }, ["Chongqing-TL"] = { "" }, ["Chongqing-TN"] = { "" }, ["Chongqing-HC"] = { "" }, ["Chongqing-CS"] = { "" }, ["Chongqing-FL"] = { "" }, ["Chongqing-JJ"] = { "" }, ["Chongqing-WZ"] = { "" }, ["Chongqing-SZ"] = { "" }, ["Chongqing-KZ"] = { "" }, ["Chongqing-CK"] = { "" }, ["Chongqing-DJ"] = { "" }, ["Chongqing-LP"] = { "" }, ["Chongqing-FD"] = { "" }, ["Chongqing-ZX"] = { "" }, ["Chongqing-QJ"] = { "" }, ["Chongqing-PS"] = { "" }, ["Chongqing-YY"] = { "" }, ["Chongqing-XS"] = { "" }, ["Chongqing-YNY"] = { "" }, ["Chongqing-WX"] = { "" }, ["Chongqing-FJ"] = { "" }, ["Chongqing-WS"] = { "" }, ["Wuhan"] = { "" }, ["Jiangxia"] = { "" }, ["Caidian"] = { "" }, ["Xinzhou-HB"] = { "" }, ["Huangpi"] = { "" }, ["Hanchuan"] = { "" }, ["Suizhou"] = { "" }, ["Suixian"] = { "" }, ["Yichang"] = { "" }, ["Dangyang"] = { "" }, ["Zhijiang"] = { "" }, ["Yidu"] = { "" }, ["Changyang"] = { "" }, ["Xingshan"] = { "" }, ["Zigui"] = { "" }, ["Wufeng"] = { "" }, ["Enshi"] = { "" }, ["Hefeng"] = { "" }, ["Badong"] = { "" }, ["Xuan'en"] = { "" }, ["Laifeng"] = { "" }, ["Lichuan-M"] = { "" }, ["Jianshi"] = { "" }, ["Xianfeng"] = { "" }, ["Xiangyang"] = { "" }, ["Laohekou"] = { "" }, ["Baokang"] = { "" }, ["Nanzhang"] = { "" }, ["Zaoyang"] = { "" }, ["Yicheng"] = { "" }, ["Gucheng"] = { "" }, ["Jingzhou"] = { "" }, ["Jiangling"] = { "" }, ["Shishou"] = { "" }, ["Gong'an"] = { "" }, ["Songzi"] = { "" }, ["Jingmen"] = { "" }, ["Zhongxiang"] = { "" }, ["Jingshan"] = { "" }, ["Tianmen"] = { "" }, ["Xiantao"] = { "" }, ["Qianjiang"] = { "" }, ["Shennongjia"] = { "" }, ["Shiyan"] = { "" }, ["Zhuxi"] = { "" }, ["Zhushan"] = { "" }, ["Yunxi"] = { "" }, ["Yunyang"] = { "" }, ["Danjiangkou"] = { "" }, ["Fangxian"] = { "" }, ["Lhasa"] = { "" }, ["Guiyang"] = { "" }, ["Huaxi"] = { "" }, ["Zunyi"] = { "" }, ["Tongzi"] = { "" }, ["Renhuai"] = { "" }, ["Bijie"] = { "" }, ["Jinsha-M"] = { "" }, ["Dafang"] = { "" }, ["Weining"] = { "" }, ["Liupanshui"] = { "" }, ["Liuzhi"] = { "" }, ["Xingyi"] = { "" }, ["Anshun"] = { "" }, ["Duyun"] = { "" }, ["Pingtang"] = { "" }, ["Fuquan"] = { "" }, ["Weng'an"] = { "" }, ["Kaili"] = { "" }, ["Liping-GZ"] = { "" }, ["Zhenyuan"] = { "" }, ["Tongren"] = { "" }, ["Sinan"] = { "" }, ["Yuping"] = { "" }, ["Liping"] = { "" }, ["Zhaotong"] = { "" }, ["Shuifu"] = { "" }, ["Daguan"] = { "" }, ["Baoshan-M"] = { "" }, ["Dali"] = { "" }, ["Kunming"] = { "" }, ["Qujing"] = { "" }, ["Wenshan"] = { "" }, ["Mengzi"] = { "" }, ["Lancang"] = { "" }, ["Weixi"] = { "" }, ["Pu'er"] = { "" }, ["Lincang"] = { "" }, ["Guilin"] = { "" }, ["Lingui"] = { "" }, ["Guanyang"] = { "" }, ["Lipu"] = { "" }, ["Pingle"] = { "" }, ["Yangshuo"] = { "" }, ["Liuzhou"] = { "" }, ["Liuzhou-LR"] = { "" }, ["Luzhai"] = { "" }, ["Sanjiang-DZ"] = { "" }, ["Nanning-M"] = { "" }, ["Yongning-FJ"] = { "" }, ["Wuming"] = { "" }, ["Wuming-FC"] = { "" }, ["Binyang-M"] = { "" }, ["Shanglin"] = { "" }, ["Yizhou"] = { "" }, ["Jinchengjiang"] = { "" }, ["Luocheng"] = { "" }, ["Fengshan"] = { "" }, ["Tianlin-LP"] = { "" }, ["Tianlin-PT"] = { "" }, ["Leye"] = { "" }, ["Lingyun"] = { "" }, ["Longlin"] = { "" }, ["Xilin"] = { "" }, ["Xiangzhou-NL"] = { "" }, ["Jishou"] = { "" }, ["Changde"] = { "" }, ["Zhangjiajie"] = { "" }, ["Yongzhou"] = { "" }, ["Chenzhou"] = { "" }, ["Huaihua"] = { "" }, ["Huitong"] = { "" }, ["Xiangtan-JN"] = { "" }, ["Ganzhou-M"] = { "" }, ["Shiquan"] = { "" }, ["Ziyang"] = { "" }, ["Ningshan"] = { "" }, ["Langao"] = { "" }, ["Zhenping"] = { "" }, ["Hanzhong"] = { "" }, ["Nanzheng"] = { "" }, ["Ningqiang"] = { "" }, ["Liuba"] = { "" }, ["Chenggu"] = { "" }, ["Foping"] = { "" }, ["Xixiang"] = { "" }, ["Zhenba"] = { "" }, ["Anji-HB"] = { "" }, ["Kokang"] = { "" }, ["Dagudi"] = { "" }, ["Reshuitang"] = { "" }, ["Mae Salong"] = { "" }, ["Mae Sai"] = { "" }, ["Oudomxay"] = { "" }, ["Siantar"] = { "" }, ["Nanjing"] = { "" }, ["Pukou"] = { "" }, ["Luhe-M"] = { "" }, ["Lishui-M"] = { "" }, ["Yangzhou"] = { "" }, ["Jiangdu"] = { "" }, ["Baoying"] = { "" }, ["Gaoyou"] = { "" }, ["Yizheng"] = { "" }, ["Taizhou-M"] = { "" }, ["Taixing"] = { "" }, ["Jiangyan"] = { "" }, ["Jingjiang-DX"] = { "" }, ["Zhenjiang"] = { "" }, ["Jurong"] = { "" }, ["Yangzhong"] = { "" }, ["Jintan-XG"] = { "" }, ["Lianyungang"] = { "" }, ["Haizhou"] = { "" }, ["Guanyun"] = { "" }, ["Guannan"] = { "" }, ["Huai'an"] = { "" }, ["Huai'an-HA"] = { "" }, ["Huaiyin"] = { "" }, ["Hongze"] = { "" }, ["Lianshui"] = { "" }, ["Xuyi"] = { "" }, ["Jinhu"] = { "" }, ["Xinghua"] = { "" }, ["Nantong"] = { "" }, ["Rugao"] = { "" }, ["Rudong"] = { "" }, ["Hai'an"] = { "" }, ["Yancheng"] = { "" }, ["Dongtai"] = { "" }, ["Binhai"] = { "" }, ["Sheyang"] = { "" }, ["Dafeng"] = { "" }, ["Funing"] = { "" }, ["Jianhu"] = { "" }, ["Xiangshui"] = { "" }, ["Shuyang"] = { "" }, ["Sihong"] = { "" }, ["Siyang"] = { "" }, ["Anqing"] = { "" }, ["Tongcheng"] = { "" }, ["Zongyang"] = { "" }, ["Chizhou"] = { "" }, ["Qingyang"] = { "" }, ["Wuhu"] = { "" }, ["Wuhu-QS"] = { "" }, ["Wanzhi"] = { "" }, ["Jinghu"] = { "" }, ["Fanchang"] = { "" }, ["Wuwei"] = { "" }, ["Hanshan"] = { "" }, ["Hexian"] = { "" }, ["Ma'anshan"] = { "" }, ["Dangtu"] = { "" }, ["Xuancheng"] = { "" }, ["Langxi"] = { "" }, ["Guangde"] = { "" }, ["Tongling"] = { "" }, ["Hefei"] = { "" }, ["Feidong"] = { "" }, ["Feixi"] = { "" }, ["Chaohu"] = { "" }, ["Lujiang"] = { "" }, ["Changfeng"] = { "" }, ["Huainan"] = { "" }, ["Lu'an"] = { "" }, ["Jin'an-QSH"] = { "" }, ["Shucheng"] = { "" }, ["Huoshan"] = { "" }, ["Chuzhou"] = { "" }, ["Lai'an"] = { "" }, ["Quanjiao"] = { "" }, ["Mingguang"] = { "" }, ["Tianchang"] = { "" }, ["Echeng"] = { "" }, ["Huangshi"] = { "" }, ["Huanggang"] = { "" }, ["Hong'an"] = { "" }, ["Macheng"] = { "" }, ["Luotian"] = { "" }, ["Yingshan-HB"] = { "" }, ["Xishui"] = { "" }, ["Huangmei"] = { "" }, ["Wuxue"] = { "" }, ["Qichun"] = { "" }, ["Xiaogan"] = { "" }, ["Anlu"] = { "" }, ["Yingcheng"] = { "" }, ["Yunmeng"] = { "" }, ["Dawu"] = { "" }, ["Guangshui"] = { "" }, ["Zhashui"] = { "" }, ["Jiujiang"] = { "" }, ["Ruichang"] = { "" }, ["Anji-AQ"] = { "" }, ["Jinhua-M-SDJ"] = { "" }, ["Dianbai-Jun"] = { "" }, ["Qinzhou-M"] = { "" }, ["Pinghai-Jun"] = { "" }, ["Ningguo-GK"] = { "" }, ["Changle-QJ"] = { "" }, ["Yanping"] = { "" }, ["Wuping-ZS-Jun"] = { "" }, ["Jiangshan-M-NBD"] = { "" }, ["Kaihua-M-HB"] = { "" }, ["Yushan-M-HY"] = { "" }, ["Juexi"] = { "" }, ["Taiyuan"] = { "" }, ["Jiancaoping"] = { "" }, ["Jinyuan"] = { "" }, ["Qingxu"] = { "" }, ["Loufan"] = { "" }, ["Taigu"] = { "" }, ["Pingyao"] = { "" }, ["Heshun"] = { "" }, ["Qixian"] = { "" }, ["Yangyuan"] = { "" }, ["Datong"] = { "" }, ["Yunzhou"] = { "" }, ["Yunzhou-XCT"] = { "" }, ["Tianzhen"] = { "" }, ["Guangling"] = { "" }, ["Shuozhou"] = { "" }, ["Shanyin"] = { "" }, ["Pinglu"] = { "" }, ["Pingding"] = { "" }, ["Xinzhou"] = { "" }, ["Wutai"] = { "" }, ["Daixian"] = { "" }, ["Wuzhai"] = { "" }, ["Lishi"] = { "" }, ["Shilou"] = { "" }, ["Fenyang"] = { "" }, ["Lanxian"] = { "" }, ["Linxian"] = { "" }, ["Wenshui"] = { "" }, ["Xiaoyi"] = { "" }, ["Fenxi"] = { "" }, ["Xixian"] = { "" }, ["Changzhi"] = { "" }, ["Tunliu"] = { "" }, ["Shangdang"] = { "" }, ["Baochang"] = { "" }, ["Linhe"] = { "" }, ["Pingshun"] = { "" }, ["Zhangzi"] = { "" }, ["Qinxian"] = { "" }, ["Jincheng"] = { "" }, ["Lingchuan"] = { "" }, ["Yangcheng"] = { "" }, ["Gaoping"] = { "" }, ["Jining"] = { "" }, ["Liangcheng"] = { "" }, ["Hohhot"] = { "" }, ["Baotou"] = { "" }, ["Dongsheng"] = { "" }, ["Haibowan"] = { "" }, ["Erenhot"] = { "" }, ["Pingshan"] = { "" }, ["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-HS"] = { "" }, ["Cangnan-JX"] = { "" }, ["Cangnan-PC"] = { "" }, ["Pingyang"] = { "" }, ["Taishun"] = { "" }, ["Wencheng"] = { "" }, ["Lishui"] = { "" }, ["Qingtian"] = { "" }, ["Jinyun"] = { "" }, ["Xuanping"] = { "" }, ["Songyang-XP"] = { "" }, ["Songyang-GS"] = { "" }, ["Yunhe"] = { "" }, ["Jingning"] = { "" }, ["Qingyuan-W"] = { "" }, ["Longquan"] = { "" }, ["Quzhou"] = { "" }, ["Qujiang-DZ"] = { "" }, ["Suichang"] = { "" }, ["Jiangshan"] = { "" }, ["Changshan"] = { "" }, ["Kaihua"] = { "" }, ["Longyou"] = { "" }, ["Jinhua"] = { "" }, ["Tangxi"] = { "" }, ["Yiwu"] = { "" }, ["Yongkang"] = { "" }, ["Pujiang"] = { "" }, ["Dongyang"] = { "" }, ["Pan'an"] = { "" }, ["Wuyi"] = { "" }, ["Lanxi"] = { "" }, ["Shangrao"] = { "" }, ["Shangrao-Rail"] = { "" }, ["Shangrao-ZF"] = { "" }, ["Guangfeng"] = { "" }, ["Yushan"] = { "" }, ["Yanshan-JC"] = { "" }, ["Hengfeng-GY"] = { "" }, ["Xuancheng-YC"] = { "" }, ["Xuancheng-JP"] = { "" }, ["Wuhu-LL"] = { "" }, ["Tongling-W"] = { "" }, ["Nanling"] = { "" }, ["Yi'an-WS"] = { "" }, ["Huangshan"] = { "" }, ["Jingxian"] = { "" }, ["Jingxian-ZJ"] = { "" }, ["Shitai-JZ"] = { "" }, ["Pucheng"] = { "" }, ["Changsha"] = { "" }, ["Yiyang-X"] = { "" }, ["Liuyang-YA"] = { "" }, ["Xiangtan"] = { "" }, ["Xiangtan-CES"] = { "" }, ["Miluo-CL"] = { "" }, ["Xiangxiang"] = { "" }, ["Xiangxiang-MQ"] = { "" }, ["Loudi"] = { "" }, ["Shuangfeng"] = { "" }, ["Xinhua"] = { "" }, ["Lianyuan"] = { "" }, ["Shaoyang"] = { "" }, ["Lengshuitan"] = { "" }, ["Zhuzhou"] = { "" }, ["Longhui"] = { "" }, ["Suining-X"] = { "" }, ["Dongkou-HQ"] = { "" }, ["Wugang"] = { "" }, ["Hengyang"] = { "" }, ["Hengyang County"] = { "" }, ["Hengshan"] = { "" }, ["Hengshan-BG"] = { "" }, ["Qiyang"] = { "" }, ["Quanzhou-X"] = { "" }, ["Guanyang-X"] = { "" }, ["Qinglong-CL"] = { "" }, ["Nanchong-CL"] = { "" }, ["Nanchang"] = { "" }, ["Xinjian-WC"] = { "" }, ["Nanchang-TC"] = { "" }, ["Anyi"] = { "" }, ["Hukou"] = { "" }, ["Lushan"] = { "" }, ["Yongxiu"] = { "" }, ["Gongqingcheng-JY"] = { "" }, ["Xiushui"] = { "" }, ["Pengze"] = { "" }, ["Duchang"] = { "" }, ["Duchang-TT"] = { "" }, ["Duchang-YF"] = { "" }, ["Wuning-QK"] = { "" }, ["Poyang"] = { "" }, ["Poyang-MT"] = { "" }, ["Yugan"] = { "" }, ["Wannian"] = { "" }, ["Yiyang"] = { "" }, ["Hengfeng"] = { "" }, ["Yanshan-HK"] = { "" }, ["Yanshan-YP"] = { "" }, ["Shangrao-SX"] = { "" }, ["Shangrao-HM"] = { "" }, ["Yushan-G"] = { "" }, ["Jingdezhen"] = { "" }, ["Leping"] = { "" }, ["Yichun"] = { "" }, ["Yifeng"] = { "" }, ["Gao'an"] = { "" }, ["Fengxin"] = { "" }, ["Shanggao"] = { "" }, ["Wanzai"] = { "" }, ["Fengcheng"] = { "" }, ["Fengcheng-ST"] = { "" }, ["Xinyu"] = { "" }, ["Fuzhou-G"] = { "" }, ["Linchuan-SDD"] = { "" }, ["Dongxiang"] = { "" }, ["Nancheng"] = { "" }, ["Nanfeng"] = { "" }, ["Yihuang"] = { "" }, ["Lichuan"] = { "" }, ["Chongren"] = { "" }, ["Pingxiang"] = { "" }, ["Lianhua"] = { "" }, ["Luxi"] = { "" }, ["Ji'an"] = { "" }, ["Jishui-LT"] = { "" }, ["Yongfeng"] = { "" }, ["Taihe"] = { "" }, ["Xiajiang"] = { "" }, ["Yongxin"] = { "" }, ["Yingtan"] = { "" }, ["Yujiang"] = { "" }, ["Guixi"] = { "" }, ["Susong"] = { "" }, ["Susong-HT"] = { "" }, ["Susong-GL"] = { "" }, ["Wangjiang"] = { "" }, ["Qianshan"] = { "" }, ["Huaining"] = { "" }, ["Huaining-SP"] = { "" }, ["Yuexi"] = { "" }, ["Taihu"] = { "" }, ["Dongzhi"] = { "" }, ["Shitai"] = { "" }, ["Yangxin"] = { "" }, ["Yangxin-GH"] = { "" }, ["Daye"] = { "" }, ["Xianning"] = { "" }, ["Xianning-MQ"] = { "" }, ["Jiayu"] = { "" }, ["Chongyang"] = { "" }, ["Chibi"] = { "" }, ["Tongshan"] = { "" }, ["Tongcheng-G"] = { "" }, ["Jianli"] = { "" }, ["Yueyang"] = { "" }, ["Yueyang-BX"] = { "" }, ["Linxiang"] = { "" }, ["Pingjiang-XJ"] = { "" }, ["Pingjiang-NJ"] = { "" }, ["Liuyang"] = { "" }, ["Liuyang-DY"] = { "" }, ["Liuyang-FY"] = { "" }, ["Liling-BTT"] = { "" }, ["Liling-BS"] = { "" }, ["Youxian"] = { "" }, ["Chaling"] = { "" }, ["Changning"] = { "" }, ["Changning-TS"] = { "" }, ["Leiyang"] = { "" }, ["Anren"] = { "" }, ["Zixing-XN"] = { "" }, ["Longhui-LDZ"] = { "" }, ["Dongkou"] = { "" }, ["Dongkou-SJ"] = { "" }, ["Jianning"] = { "" }, ["Taining"] = { "" }, ["Hanbin-NT"] = { "" }, ["Jinxian"] = { "" }, ["Jinxi"] = { "" }, ["Le'an"] = { "" }, ["Guangchang"] = { "" }, ["Anfu"] = { "" }, ["Suichuan"] = { "" }, ["Wan'an"] = { "" }, ["Jing'an"] = { "" }, ["Zhangshu"] = { "" }, ["Xingan"] = { "" }, ["Fenyi"] = { "" }, ["Meixian"] = { "" }, ["Xingning"] = { "" }, ["Dabu"] = { "" }, ["Dabu-XH"] = { "" }, ["Dabu-TY"] = { "" }, ["Dabu-GB"] = { "" }, ["Fengshun-TK"] = { "" }, ["Fengshun-LH"] = { "" }, ["Fengshun-HJ"] = { "" }, ["Fengshun-FL"] = { "" }, ["Fengshun-PT"] = { "" }, ["Huizhou"] = { "" }, ["Huizhou-SK"] = { "" }, ["Huizhou-HL"] = { "" }, ["Huiyang"] = { "" }, ["Huidong-PS"] = { "" }, ["Huidong-DL"] = { "" }, ["Dongguan-H"] = { "" }, ["Longmen-PL"] = { "" }, ["Longmen-LX"] = { "" }, ["Boluo"] = { "" }, ["Shenzhen-H"] = { "" }, ["Shenzhen-H-LH"] = { "" }, ["Shenzhen-HG"] = { "" }, ["Zengcheng-ZG"] = { "" }, ["Zhongshan-WGS"] = { "" }, ["Zhongshan-NLHS"] = { "" }, ["Wuhua-SZ"] = { "" }, ["Wuhua-HC"] = { "" }, ["Wuhua-CB"] = { "" }, ["Wuhua-MY"] = { "" }, ["Wuhua-ML"] = { "" }, ["Heyuan"] = { "" }, ["Zijin"] = { "" }, ["Zijin-GZ"] = { "" }, ["Longchuan-TC"] = { "" }, ["Longchuan-SD"] = { "" }, ["Heping-LZ"] = { "" }, ["Lianping"] = { "" }, ["Lianping-ZX"] = { "" }, ["Lianping-LJ"] = { "" }, ["Wengyuan"] = { "" }, ["Nanxiong-ZJ"] = { "" }, ["Qujiang"] = { "" }, ["Lechang-MH"] = { "" }, ["Xinfeng-MT"] = { "" }, ["Xinfeng-DX"] = { "" }, ["Xiaosanjiang"] = { "" }, ["Liannan"] = { "" }, ["Conghua-H"] = { "" }, ["Jiexi"] = { "" }, ["Jiexi-HZ"] = { "" }, ["Luhe"] = { "" }, ["Raoping-XF"] = { "" }, ["Xiuzhuan"] = { "" }, ["Pinghe-JF"] = { "" }, ["Nanjing-ML"] = { "" }, ["Nanjing-BL"] = { "" }, ["Changting"] = { "" }, ["Shanghang"] = { "" }, ["Shanghang-GT"] = { "" }, ["Yongding"] = { "" }, ["Yongding-XY"] = { "" }, ["Yongding-GB"] = { "" }, ["Yongding-HK"] = { "" }, ["Longyan-WA"] = { "" }, ["Wuping"] = { "" }, ["Wuping-ZS"] = { "" }, ["Wuping-Y"] = { "" }, ["Wuping-WD"] = { "" }, ["Pingyu"] = { "" }, ["Liancheng"] = { "" }, ["Liancheng-PT"] = { "" }, ["Liancheng-JX"] = { "" }, ["Liancheng-ZB"] = { "" }, ["Liancheng-LY"] = { "" }, ["Ninghua"] = { "" }, ["Qingliu"] = { "" }, ["Yudu"] = { "" }, ["Ningdu"] = { "" }, ["Ruijin"] = { "" }, ["Shicheng"] = { "" }, ["Shangyou"] = { "" }, ["Sandu"] = { "" }, ["Ganzhou-PL"] = { "" }, ["Nankang"] = { "" }, ["Dayu"] = { "" }, ["Quannan"] = { "" }, ["Dingnan"] = { "" }, ["Longnan"] = { "" }, ["Xunwu"] = { "" }, ["Anyuan"] = { "" }, ["Huichang"] = { "" }, ["Chongyi"] = { "" }, ["Xingguo"] = { "" }, ["Yunhe-JST"] = { "" }, ["Tonggu"] = { "" }, ["Fengxin-ZX"] = { "" }, ["Miaoli"] = { "" }, ["Zaoqiao"] = { "" }, ["Touwu"] = { "" }, ["Nanzhuang"] = { "" }, ["Shitan"] = { "" }, ["Sanwan"] = { "" }, ["Toufen"] = { "" }, ["Gongguan"] = { "" }, ["Taoyuan"] = { "" }, ["Longtan"] = { "" }, ["Zhuolan-SX"] = { "" }, ["Guanxi"] = { "" }, ["Changhua-PT"] = { "" }, ["Liudui"] = { "" }, ["Wuluo"] = { "" }, ["Daluguan"] = { "" }, ["Jiadong"] = { "" }, ["Meinong"] = { "" }, ["Shanlin"] = { "" }, ["Hsinchu"] = { "" }, ["Guanxi-DP"] = { "" }, ["Guanxi-LQW"] = { "" }, ["Xinwu-HL"] = { "" }, ["Dongshi"] = { "" }, ["Raoping"] = { "" }, ["Guanxi-RP"] = { "" }, ["Hukou-RP"] = { "" }, ["Liujia-RP"] = { "" }, ["Zhongli-ZB-RP"] = { "" }, ["Zhongli-XN-RP"] = { "" }, ["Zhongli-GL-RP"] = { "" }, ["Pingzhen-NS-RP"] = { "" }, ["Xinwu-TZ-RP"] = { "" }, ["Guanyin-XP-RP"] = { "" }, ["Zhuolan-RP"] = { "" }, ["Yunlin"] = { "" }, ["Daxi"] = { "" }, ["Guoxing"] = { "" }, ["Hong Kong-H"] = { "" }, ["Tangkou"] = { "" }, ["Sanjia"] = { "" }, ["Sihe"] = { "" }, ["Qianpai"] = { "" }, ["Xindong"] = { "" }, ["Shalang"] = { "" }, ["Xin'an"] = { "" }, ["Shijiao"] = { "" }, ["Qingping"] = { "" }, ["Xihe"] = { "" }, ["Fumian-XS"] = { "" }, ["Luchuan-LC"] = { "" }, ["Luchuan-DQ"] = { "" }, ["Luchuan-SH"] = { "" }, ["Luchuan-WS"] = { "" }, ["Bobai-SH"] = { "" }, ["Bobai-LT"] = { "" }, ["Bobai-LP"] = { "" }, ["Bobai-LJ"] = { "" }, ["Bobai-CT"] = { "" }, ["Tang'an"] = { "" }, ["Beiliu-GH"] = { "" }, ["Beiliu-MM"] = { "" }, ["Xingye-GF"] = { "" }, ["Rongxian-XD"] = { "" }, ["Mashan-PL"] = { "" }, ["Binyang-WL"] = { "" }, ["Hengxian-XY"] = { "" }, ["Guigang-H-WL"] = { "" }, ["Guigang-H-QX"] = { "" }, ["Guigang-H-BT"] = { "" }, ["Guiping-H-JT"] = { "" }, ["Guiping-H-DX"] = { "" }, ["Pingnan-H-GA"] = { "" }, ["Lingui-H-XJ"] = { "" }, ["Lipu-SDT"] = { "" }, ["Lipu-DSG"] = { "" }, ["Pingle-H"] = { "" }, ["Yangshuo-JB"] = { "" }, ["Tianlin-GL"] = { "" }, ["Qinzhou-H"] = { "" }, ["Guidong"] = { "" }, ["Rongchang-PL"] = { "" }, ["Chengdu-H-LT"] = { "" }, ["Longquanyi-H-SL"] = { "" }, ["Qingbaijiang-H-LW"] = { "" }, ["Xindu-H-SBT"] = { "" }, ["Xindu-H-HXC"] = { "" }, ["Xindu-H-XD"] = { "" }, ["Weiyuan-H"] = { "" }, ["Yilong-H"] = { "" }, ["Xichang-H"] = { "" }, ["Sabah-B"] = { "" }, ["Sabah-L"] = { "" }, ["Sabah-HY"] = { "" }, ["Sabah-HP"] = { "" }, ["Kuala Lumpur-H-HY"] = { "" }, ["Kuala Lumpur-H"] = { "" }, ["Senai"] = { "" }, ["Senai-JX"] = { "" }, ["Kuching"] = { "" }, ["Sungai Tapang"] = { "" }, ["Singkawang"] = { "" }, ["Pontianak-MX"] = { "" }, ["Mempawah"] = { "" }, ["Metal"] = { "" }, ["Singapore-MX"] = { "" }, ["Singapore-DB"] = { "" }, ["Belait-H"] = { "" }, ["Bangkok-MX"] = { "" }, ["Bangkok-FS"] = { "" }, ["Bangkok-JX"] = { "" }, ["Yangon-H"] = { "" }, ["Ho Chi Minh City-H"] = { "" }, ["Jixi"] = { "" }, ["Shexian"] = { "" }, ["Shexian-XG"] = { "" }, ["Shexian-DGY"] = { "" }, ["Shexian-SY"] = { "" }, ["Tunxi"] = { "" }, ["Huizhou-HZ"] = { "" }, ["Xiuning"] = { "" }, ["Yixian"] = { "" }, ["Qimen"] = { "" }, ["Qimen-AL-Min"] = { "" }, ["Wuyuan"] = { "" }, ["Wuyuan-QK"] = { "" }, ["Wuyuan-JW"] = { "" }, ["Fuliang"] = { "" }, ["Fuliang-EH"] = { "" }, ["Dexing"] = { "" }, ["Dexing-ZC"] = { "" }, ["Jingde"] = { "" }, ["Zhanda"] = { "" }, ["Chun'an"] = { "" }, ["Sui'an"] = { "" }, ["Jiande"] = { "" }, ["Shouchang"] = { "" }, ["Guangzhou"] = { "" }, ["Hong Kong"] = { "" }, ["HK Weitou"] = { "" }, ["Kam Tin"] = { "" }, ["Shek Pik"] = { "" }, ["Ting Kok"] = { "" }, ["Tung Ping Chau"] = { "" }, ["Sam Mun Tsai"] = { "" }, ["Macau"] = { "" }, ["Macau-Tanka"] = { "" }, ["Guangzhou-XJ"] = { "" }, ["Guangzhou-LX"] = { "" }, ["Guangzhou-HP"] = { "" }, ["Luogang"] = { "" }, ["Guangzhou-LH"] = { "" }, ["Guangzhou-MT"] = { "" }, ["Guangzhou-JS"] = { "" }, ["Guangzhou-XS"] = { "" }, ["Guangzhou-SJ"] = { "" }, ["Guangzhou-JC"] = { "" }, ["Guangzhou-LG"] = { "" }, ["Guangzhou-RH"] = { "" }, ["Guangzhou-ZL"] = { "" }, ["Guangzhou-ZLT"] = { "" }, ["Guangzhou-JF"] = { "" }, ["Panyu"] = { "" }, ["Huadu"] = { "" }, ["Conghua"] = { "" }, ["Zengcheng"] = { "" }, ["Zengcheng-XT"] = { "" }, ["Foshan"] = { "" }, ["Nanhai"] = { "" }, ["Shunde"] = { "" }, ["Sanshui"] = { "" }, ["Gaoming"] = { "" }, ["Zhongshan"] = { "" }, ["Zhongshan-HC"] = { "" }, ["Zhongshan-NL"] = { "" }, ["Zhongshan-CKM"] = { "" }, ["Zhongshan-XL"] = { "" }, ["Zhongshan-DS"] = { "" }, ["Zhongshan-TB"] = { "" }, ["Zhongshan-HL"] = { "" }, ["Zhongshan-DF"] = { "" }, ["Zhongshan-NT"] = { "" }, ["Zhongshan-FS"] = { "" }, ["Zhongshan-SL"] = { "" }, ["Zhongshan-GK"] = { "" }, ["Zhongshan-HP"] = { "" }, ["Zhongshan-SJ"] = { "" }, ["Zhongshan-LW"] = { "" }, ["Zhongshan-MZ"] = { "" }, ["Zhongshan-GZ"] = { "" }, ["Zhongshan-BF"] = { "" }, ["Zhongshan-TZ"] = { "" }, ["Zhongshan-TG"] = { "" }, ["Zhuhai"] = { "" }, ["Zhuhai-TJW"] = { "" }, ["Doumen-T"] = { "" }, ["Doumen-S"] = { "" }, ["Jiangmen"] = { "" }, ["Xinhui"] = { "" }, ["Taishan"] = { "" }, ["Taishan-GH"] = { "" }, ["Kaiping"] = { "" }, ["Enping"] = { "" }, ["Heshan"] = { "" }, ["Heshan-SP"] = { "" }, ["Malan"] = { "" }, ["Malan-BTQ"] = { "" }, ["Malan-MHD"] = { "" }, ["Malan-SZP"] = { "" }, ["Malan-BLH"] = { "" }, ["Dongguan"] = { "" }, ["Shenzhen-C-LH"] = { "" }, ["Shenzhen-NT"] = { "" }, ["Shenzhen-XX"] = { "" }, ["Bao'an"] = { "" }, ["Yantian"] = { "" }, ["Dapeng"] = { "" }, ["Shenzhen-PD"] = { "" }, ["Pingshan-ZM"] = { "" }, ["Ebu-ZM"] = { "" }, ["Longmen"] = { "" }, ["Qingyuan"] = { "" }, ["Fogang"] = { "" }, ["Yingde"] = { "" }, ["Yangshan"] = { "" }, ["Lianshan"] = { "" }, ["Lianshan-YH"] = { "" }, ["Lianzhou"] = { "" }, ["Shaoguan"] = { "" }, ["Qujiang-C"] = { "" }, ["Renhua"] = { "" }, ["Lechang"] = { "" }, ["Gaoyao"] = { "" }, ["Sihui"] = { "" }, ["Guangning"] = { "" }, ["Deqing"] = { "" }, ["Huaiji"] = { "" }, ["Huaiji-LC"] = { "" }, ["Fengkai"] = { "" }, ["Fengkai-JK"] = { "" }, ["Fengkai-LD"] = { "" }, ["Yunfu"] = { "" }, ["Xinxing"] = { "" }, ["Luoding"] = { "" }, ["Luoding-SL"] = { "" }, ["Yunan"] = { "" }, ["Yangjiang"] = { "" }, ["Yangdong"] = { "" }, ["Yangdong-YS"] = { "" }, ["Yangchun"] = { "" }, ["Yangxi"] = { "" }, ["Xinyi"] = { "" }, ["Maoming"] = { "" }, ["Maoming-YJ"] = { "" }, ["Gaozhou"] = { "" }, ["Huazhou"] = { "" }, ["Huazhou-CQ"] = { "" }, ["Zhanjiang"] = { "" }, ["Lianjiang"] = { "" }, ["Lianjiang-CB"] = { "" }, ["Wuchuan"] = { "" }, ["Wuchuan-ML"] = { "" }, ["Nanning"] = { "" }, ["Nanning-Tanka"] = { "" }, ["Wuzhou"] = { "" }, ["Wuzhou-LX"] = { "" }, ["Cangwu-SQ"] = { "" }, ["Cangwu-LB"] = { "" }, ["Tengxian"] = { "" }, ["Yulin"] = { "" }, ["Rongxian"] = { "" }, ["Hepu"] = { "" }, ["Hepu-ST"] = { "" }, ["Guiping"] = { "" }, ["Guiping-JT"] = { "" }, ["Guiping-JK"] = { "" }, ["Guiping-MD"] = { "" }, ["Guiping-ML"] = { "" }, ["Pingnan-PN"] = { "" }, ["Pingnan-DZ"] = { "" }, ["Pingnan-GC"] = { "" }, ["Mengshan"] = { "" }, ["Mengshan-XX"] = { "" }, ["Mengshan-CT"] = { "" }, ["Guigang-GC"] = { "" }, ["Guigang-NJ"] = { "" }, ["Guigang-PD"] = { "" }, ["Beiliu"] = { "" }, ["Beiliu-TL"] = { "" }, ["Beiliu-XC"] = { "" }, ["Baise"] = { "" }, ["Tiandong"] = { "" }, ["Tiandong-LF"] = { "" }, ["Tianyang"] = { "" }, ["Pingguo"] = { "" }, ["Pingguo-SX"] = { "" }, ["Bobai"] = { "" }, ["Lingshan"] = { "" }, ["Pubei"] = { "" }, ["Qinzhou"] = { "" }, ["Qinzhou-XD"] = { "" }, ["Qinzhou-CT"] = { "" }, ["Qinzhou-NS"] = { "" }, ["Qinzhou-XNJ"] = { "" }, ["Beihai"] = { "" }, ["Beihai-NK"] = { "" }, ["Beihai-YP"] = { "" }, ["Beihai-QG"] = { "" }, ["Beihai-QG-CB"] = { "" }, ["Ningming"] = { "" }, ["Hengxian"] = { "" }, ["Pumen"] = { "" }, ["Zhaoping"] = { "" }, ["Fangchenggang-FC"] = { "" }, ["Dongxing"] = { "" }, ["Chongzuo-LT"] = { "" }, ["Fusui-QJ"] = { "" }, ["Lingchuan-C-YJ"] = { "" }, ["Pingle-C-MJ"] = { "" }, ["Pingle-C-SS"] = { "" }, ["Lipu-ZC"] = { "" }, ["Danzhou"] = { "" }, ["Sanya-YL"] = { "" }, ["Kuala Lumpur"] = { "" }, ["Penang-C"] = { "" }, ["Ipoh"] = { "" }, ["Sarikei-C"] = { "" }, ["Singapore-C"] = { "" }, ["Jakarta-C"] = { "" }, ["Ho Chi Minh City"] = { "" }, ["Mong Cai"] = { "" }, ["Phnom Penh-C"] = { "" }, ["Yangon-C"] = { "" }, ["Mandalay-C"] = { "" }, ["Bangkok-C"] = { "" }, ["Betong"] = { "" }, ["Manila-C"] = { "" }, ["Nanning-P"] = { "" }, ["Nanning-P-SJ"] = { "" }, ["Nanning-P-GJY"] = { "" }, ["Nanning-P-ZGL"] = { "" }, ["Nanning-P-XXJD"] = { "" }, ["Nanning-P-SL"] = { "" }, ["Nanning-P-XX"] = { "" }, ["Nanning-P-SC"] = { "" }, ["Binyang"] = { "" }, ["Binyang-XQ"] = { "" }, ["Hengxian-P"] = { "" }, ["Wuxuan-JJ"] = { "" }, ["Wuxuan-ZC"] = { "" }, ["Chongzuo-P"] = { "" }, ["Chongzuo-P-XH"] = { "" }, ["Fusui-P"] = { "" }, ["Liucheng-P"] = { "" }, ["Liucheng-P-GZ"] = { "" }, ["Liucheng-P-DP"] = { "" }, ["Rongshui"] = { "" }, ["Yizhou-P-DS"] = { "" }, ["Luocheng-P"] = { "" }, ["Baise-P"] = { "" }, ["Guilin-P"] = { "" }, ["Guilin-P-CY"] = { "" }, ["Guilin-P-DBZ"] = { "" }, ["Guilin-P-ZY"] = { "" }, ["Guilin-P-DB"] = { "" }, ["Guilin-P-YJ"] = { "" }, ["Guilin-P-QJ"] = { "" }, ["Lingui-P-WT"] = { "" }, ["Lingui-P-HS"] = { "" }, ["Lingui-P-LJ"] = { "" }, ["Lingui-P-LT"] = { "" }, ["Lingchuan-P"] = { "" }, ["Lingchuan-P-GQ"] = { "" }, ["Lingchuan-P-GD"] = { "" }, ["Lingchuan-P-TX"] = { "" }, ["Lingchuan-P-SZ"] = { "" }, ["Lingchuan-P-GP"] = { "" }, ["Lingchuan-P-LT"] = { "" }, ["Guanyang-P"] = { "" }, ["Quanzhou-P"] = { "" }, ["Pingle-P"] = { "" }, ["Pingle-P-XTM"] = { "" }, ["Yangshuo-P"] = { "" }, ["Yangshuo-P-PT"] = { "" }, ["Yongfu-P-JX"] = { "" }, ["Yongfu-P-CS"] = { "" }, ["Zhongshan-GA"] = { "" }, ["Xiamen"] = { "" }, ["Xiamen-HS"] = { "" }, ["Tong'an"] = { "" }, ["Quanzhou"] = { "" }, ["Jinjiang"] = { "" }, ["Nan'an"] = { "" }, ["Shishi"] = { "" }, ["Hui'an"] = { "" }, ["Anxi"] = { "" }, ["Yongchun"] = { "" }, ["Dehua"] = { "" }, ["Zhangzhou"] = { "" }, ["Longhai"] = { "" }, ["Changtai"] = { "" }, ["Hua'an"] = { "" }, ["Nanjing-MN"] = { "" }, ["Pinghe"] = { "" }, ["Zhangpu"] = { "" }, ["Yunxiao"] = { "" }, ["Zhao'an"] = { "" }, ["Zhao'an-SD"] = { "" }, ["Zhao'an-TY"] = { "" }, ["Zhao'an-WS"] = { "" }, ["Dongshan"] = { "" }, ["Taipei"] = { "" }, ["Wanhua"] = { "" }, ["Tamsui"] = { "" }, ["Sanxia"] = { "" }, ["Pingxi"] = { "" }, ["Kaohsiung"] = { "" }, ["Cijin"] = { "" }, ["Hongmaogang"] = { "" }, ["Dalinpu"] = { "" }, ["Tianliao"] = { "" }, ["Cieding"] = { "" }, ["Xinwu-YX"] = { "" }, ["Yilan"] = { "" }, ["Luodong"] = { "" }, ["Toucheng"] = { "" }, ["Lukang"] = { "" }, ["Yongjing-MN"] = { "" }, ["Caotun"] = { "" }, ["Taichung"] = { "" }, ["Wuqi"] = { "" }, ["Tainan"] = { "" }, ["Anping"] = { "" }, ["Shanhua"] = { "" }, ["Jiali"] = { "" }, ["Taitung"] = { "" }, ["Green Island"] = { "" }, ["Hsinchu-MN"] = { "" }, ["Miaoli-MN"] = { "" }, ["Mailiao"] = { "" }, ["Taixi"] = { "" }, ["Lunbei"] = { "" }, ["Chiayi"] = { "" }, ["Chiayi-TB"] = { "" }, ["Chiayi-SS"] = { "" }, ["Chiayi-ZP"] = { "" }, ["Chiayi-DP"] = { "" }, ["Chiayi-ZQ"] = { "" }, ["Chiayi-DL"] = { "" }, ["Chiayi-XK"] = { "" }, ["Chiayi-MX"] = { "" }, ["Chiayi-PZ"] = { "" }, ["Chiayi-LJ"] = { "" }, ["Chiayi-ST"] = { "" }, ["Chiayi-FL"] = { "" }, ["Chiayi-ALS"] = { "" }, ["Chiayi-LC"] = { "" }, ["Chiayi-YZ"] = { "" }, ["Chiayi-XG"] = { "" }, ["Chiayi-MS"] = { "" }, ["Chiayi-DS"] = { "" }, ["Chiayi-BD"] = { "" }, ["Chiayi-WL"] = { "" }, ["Pingtung"] = { "" }, ["Baoli"] = { "" }, ["Liuqiu"] = { "" }, ["Gabulong"] = { "" }, ["Kinmen"] = { "" }, ["Jinsha"] = { "" }, ["Magong"] = { "" }, ["Pengnan"] = { "" }, ["Xiyu"] = { "" }, ["Huxi"] = { "" }, ["Wangan"] = { "" }, ["Cimei"] = { "" }, ["Huayu"] = { "" }, ["Zhongtun"] = { "" }, ["Houliao"] = { "" }, ["Tongliang"] = { "" }, ["Jibei"] = { "" }, ["Malaysia-MN"] = { "" }, ["Melaka"] = { "" }, ["Labuan"] = { "" }, ["Klang"] = { "" }, ["Singapore-MN"] = { "" }, ["Philippine-MN"] = { "" }, ["Medan"] = { "" }, ["Seri Begawan"] = { "" }, ["Ho Chi Minh City-MN"] = { "" }, ["Yangon-MN"] = { "" }, ["Longyan"] = { "" }, ["Shizhong"] = { "" }, ["Zhangping"] = { "" }, ["Yongfu"] = { "" }, ["Datian"] = { "" }, ["Datian-GP"] = { "" }, ["Youxi-JM"] = { "" }, ["Youxi-XQ"] = { "" }, ["Shunchang-PS"] = { "" }, ["Xiapu-SS"] = { "" }, ["Putian-MN"] = { "" }, ["Pingnan"] = { "" }, ["Pingnan-PT"] = { "" }, ["Pingnan-SJ"] = { "" }, ["Guiping-XW"] = { "" }, ["Guiping-DS"] = { "" }, ["Guilin-MN-BYG"] = { "" }, ["Pingle-MN"] = { "" }, ["Qinzhou-MN"] = { "" }, ["Lechang-TT"] = { "" }, ["Renhua-CSB"] = { "" }, ["Yingde-YZ"] = { "" }, ["Yunan-LT"] = { "" }, ["Heyuan-NJ"] = { "" }, ["Hangzhou-PF"] = { "" }, ["Cangnan-MN"] = { "" }, ["Yuhuan-KM"] = { "" }, ["Wenling-RS"] = { "" }, ["Yixing-SB"] = { "" }, ["Guangfeng-NSD"] = { "" }, ["Hengfeng-YJ"] = { "" }, ["Yushan-ZH"] = { "" }, ["Langxi-FL"] = { "" }, ["Chaozhou"] = { "" }, ["Raoping-MN-T"] = { "" }, ["Shantou"] = { "" }, ["Chenghai"] = { "" }, ["Chenghai-DX"] = { "" }, ["Chaoyang"] = { "" }, ["Nan'ao-HZ"] = { "" }, ["Nan'ao-YA"] = { "" }, ["Jieyang"] = { "" }, ["Puning"] = { "" }, ["Lufeng"] = { "" }, ["Haifeng"] = { "" }, ["Fengshun-MN-LH"] = { "" }, ["Fengshun-MN-HJ"] = { "" }, ["Yuen Chau Tsai-MN"] = { "" }, ["Sha Tau Kok-MN"] = { "" }, ["Thailand-MN-T"] = { "" }, ["Chiang Mai-MN-T"] = { "" }, ["Hat Yai-MN-T"] = { "" }, ["Cambodia-MN-T"] = { "" }, ["Ho Chi Minh City-MN-T"] = { "" }, ["Vientiane-MN-T"] = { "" }, ["Johor Bahru"] = { "" }, ["Penang-MN-T"] = { "" }, ["Singapore-MN-T"] = { "" }, ["Batam-MN-T"] = { "" }, ["Pontianak-MN-T"] = { "" }, ["Leizhou"] = { "" }, ["Dianbai-XD"] = { "" }, ["Wenchang"] = { "" }, ["Haikou"] = { "" }, ["Chengmai"] = { "" }, ["Qionghai"] = { "" }, ["Wanning"] = { "" }, ["Tunchang"] = { "" }, ["Singapore-MN-H"] = { "" }, ["Belait-MN-H"] = { "" }, ["Putian"] = { "" }, ["Putian-DH"] = { "" }, ["Putian-JK"] = { "" }, ["Putian-NR"] = { "" }, ["Xianyou"] = { "" }, ["Xianyou-FT"] = { "" }, ["Xianyou-YY"] = { "" }, ["Fuding-AY"] = { "" }, ["Shaxi"] = { "" }, ["Sanxiang"] = { "" }, ["Nanlang"] = { "" }, ["Fuzhou"] = { "" }, ["Changle"] = { "" }, ["Lianjiang-MD"] = { "" }, ["Tailu"] = { "" }, ["Minhou"] = { "" }, ["Fuqing"] = { "" }, ["Pingtan"] = { "" }, ["Yongtai"] = { "" }, ["Minqing"] = { "" }, ["Gutian"] = { "" }, ["Pingnan-MD"] = { "" }, ["Luoyuan"] = { "" }, ["Fu'an"] = { "" }, ["Ningde"] = { "" }, ["Xiapu"] = { "" }, ["Zherong"] = { "" }, ["Shouning"] = { "" }, ["Zhouning"] = { "" }, ["Fuding"] = { "" }, ["Youxi"] = { "" }, ["Youxi-XY"] = { "" }, ["Youxi-YZ"] = { "" }, ["Youxi-TC"] = { "" }, ["Youxi-ZX"] = { "" }, ["Matsu"] = { "" }, ["Taishun-MD"] = { "" }, ["Cangnan-MD"] = { "" }, ["Guanhaiwei"] = { "" }, ["Longyou-LS"] = { "" }, ["Singapore-MD-FQ"] = { "" }, ["Sitiawan-MD-GT"] = { "" }, ["Sibu-MD-MQ"] = { "" }, ["Jian'ou"] = { "" }, ["Dikou"] = { "" }, ["Yanping-XY"] = { "" }, ["Yanping-XD"] = { "" }, ["Songxi"] = { "" }, ["Zhenghe"] = { "" }, ["Zhenqian"] = { "" }, ["Shunchang-YD"] = { "" }, ["Jianyang"] = { "" }, ["Huangkeng"] = { "" }, ["Wuyishan"] = { "" }, ["Shibei"] = { "" }, ["Yong'an"] = { "" }, ["Sanyuan"] = { "" }, ["Shaxian"] = { "" }, ["Yanping-WT"] = { "" }, ["Shaowu"] = { "" }, ["Guangze"] = { "" }, ["Jiangle"] = { "" }, ["Mingxi"] = { "" }, ["Shunchang"] = { "" }, ["Ningde-She"] = { "" }, ["Fu'an-She"] = { "" }, ["Fuding-She"] = { "" }, ["Zhouning-She"] = { "" }, ["Xiapu-She"] = { "" }, ["Shouning-She"] = { "" }, ["Gutian-She"] = { "" }, ["Luoyuan-She"] = { "" }, ["Sanming-She"] = { "" }, ["Shunchang-She"] = { "" }, ["Hua'an-She"] = { "" }, ["Zhangping-She"] = { "" }, ["Guixi-She"] = { "" }, ["Yanshan-She"] = { "" }, ["Wuning-She"] = { "" }, ["Cangnan-She"] = { "" }, ["Jingning-She"] = { "" }, ["Jingning-ZK-She"] = { "" }, ["Lishui-She"] = { "" }, ["Longyou-She"] = { "" }, ["Lin'an-She"] = { "" }, ["Jiande-She"] = { "" }, ["Jinhua-She"] = { "" }, ["Ningguo-She"] = { "" }, ["Chaozhou-She"] = { "" }, ["Fengshun-She"] = { "" }, ["Guzhang-WX"] = { "" }, ["Yuanling-WX"] = { "" }, ["Luxi-WX"] = { "" }, ["Luxi-WX-LJT"] = { "" }, ["Luxi-WX-LJT-2"] = { "" }, ["Chengbu-WX"] = { "" }, ["Jiande-JXYM"] = { "" }, ["Jinhua-JXYM"] = { "" }, ["Lanxi-JXYM"] = { "" }, ["Tunxi-JXYM"] = { "" }, ["Jiangyong"] = { "" }, ["Dong'an"] = { "" }, ["Qujiang-DC"] = { "" }, ["Wujiang-XY"] = { "" }, ["Zhenjiang-SB"] = { "" }, ["Renhua-ZT"] = { "" }, ["Renhua-ST"] = { "" }, ["Ruyuan-GT"] = { "" }, ["Lechang-CL"] = { "" }, ["Lechang-BX"] = { "" }, ["Lechang-HP"] = { "" }, ["Lechang-GT"] = { "" }, ["Lechang-SX"] = { "" }, ["Lianzhou-XZ"] = { "" }, ["Lianzhou-BA"] = { "" }, ["Lianzhou-YC"] = { "" }, ["Lianzhou-XA"] = { "" }, ["Lianzhou-FY"] = { "" }, } return export i4lfw2zavidsjxu3rv7rv69k9gdgbt4 Mô đun:dialect synonyms/ms 828 396109 2351355 2026-05-08T09:00:04Z Hiyuune 50834 Trang mới: “local export = {} export.title = "Regional synonyms of %s" export.columns = { "Region", "Variety", "Words", } export.notes = { "This table shows various regional forms in the Malay language. The classification is based on geographical distribution.", } export.varieties = { { name = "Brunei", text_display = "Brunei", code = "ms", color = "var(--wikt-palette-red-1)", { name = "Standard-BN", text_display = "[[w:Standard Malay|Bruneian standard]]",…” 2351355 Scribunto text/plain local export = {} export.title = "Regional synonyms of %s" export.columns = { "Region", "Variety", "Words", } export.notes = { "This table shows various regional forms in the Malay language. The classification is based on geographical distribution.", } export.varieties = { { name = "Brunei", text_display = "Brunei", code = "ms", color = "var(--wikt-palette-red-1)", { name = "Standard-BN", text_display = "[[w:Standard Malay|Bruneian standard]]", lat = 4.4, long = 114.566667, }, { name = "Palace-BN", text_display = "[[w:Bahasa Istana|Bruneian palace]]", lat = 4.872031, long = 114.920756, }, { name = "Dialect-BN", text_display = "[[w:Brunei Malay|Bruneian dialect]]", lat = 4.916667, long = 114.916667, }, { name = "Kampong Ayer", text_display = "[[w:Kampong Ayer|Kampong Ayer]]", lat = 4.8825, long = 114.9425, }, { name = "Kedayan", text_display = "[[w:Kedayan language|Kedayan]]", lat = 4.849167, long = 114.881667, }, }, { name = "Indonesia", text_display = "Indonesia", code = "ms", color = "var(--wikt-palette-yellow-1)", { name = "Standard-ID", text_display = "[[w:Indonesian language|Indonesian standard]]", lat = -2, long = 118, code = "id", }, { name = "Slang-ID", text_display = "[[w:Indonesian slang|Indonesian slang]]", lat = -6.175, long = 106.8275, code = "id", }, { name = "Ambonese", text_display = "[[w:Ambonese Malay|Ambonese]]", lat = -3.716667, long = 128.183333, code = "abs", }, { name = "Asahan", text_display = "[[w:Asahan Regency|Asahan]]", lat = 3, long = 99.1667, }, { name = "Bacanese", text_display = "[[w:Bacan Malay|Bacanese]]", lat = -0.625946, long = 127.477694, code = "btj", }, { name = "Balinese", text_display = "[[w:Balinese Malay|Balinese]]", lat = -8.36, long = 114.65, code = "mhp", }, { name = "Bangka", text_display = "[[w:Bangka Malay|Bangka]]", lat = -2.133333, long = 106.116667, code = "mfb", }, { name = "Banda", text_display = "[[w:Banda Malay|Banda]]", lat = -4.583333, long = 129.916667, code = "bpq", }, { name = "Berau", text_display = "[[w:Berau Malay|Berau]]", lat = 1.67, long = 117.93, code = "bve", }, { name = "Bilah Panai", text_display = "[[w:Bilah Sultanate|Bilah Panai]]", lat = 2.26667, long = 100.1, }, { name = "Bukit", text_display = "[[w:Bukit Malay|Bukit]]", lat = -2.579722, long = 116.324444, code = "bvu", }, { name = "Central", text_display = "[[w:South Barisan|Tengah]]", lat = -3, long = 102.25, }, { name = "Deli", text_display = "[[w:ms:Bahasa Melayu Deli|Deli]]", lat = 3.55, long = 98.85, }, { name = "Jambi", text_display = "[[w:Jambi Malay|Jambi]]", lat = -2.65, long = 103.13, code = "jax", }, { name = "Kapuas Hulu", text_display = "[[w:Kapuas Hulu, Kapuas|Kapuas Hulu]]", lat = -0.933027, long = 114.019548, }, { name = "Ketapang", text_display = "[[w:Ketapang Regency|Ketapang]]", lat = -1.58333, long = 110.5, }, { name = "Kota Bangun Kutai", text_display = "[[w:id:Bahasa Kutai Kota Bangun|Kutai Kota Bangun]]", lat = -0.2275, long = 116.451389, code = "mqg", }, { name = "Kotawaringin", text_display = "[[w:id:Bahasa Melayu Kotawaringin|Kotawaringin]]", lat = -2.4, long = 111.73333, }, { name = "Kupang", text_display = "[[w:Kupang Malay|Kupang]]", lat = -10.170167, long = 123.60775, code = "mkn", }, { name = "Langkat", text_display = "[[w:Langkat Malay|Langkat]]", lat = 3.77, long = 98.22, }, { name = "Larantuka", text_display = "[[w:Larantuka Malay|Larantuka]]", lat = -8.313333, long = 123.004167, code = "lrt", }, { name = "Makassar", text_display = "[[w:Makassar Malay|Makassar]]", lat = -5.133056, long = 119.413611, code = "mfp", }, { name = "North Moluccan", text_display = "[[w:North Moluccan Malay|North Moluccan]]", lat = 0.78, long = 127.37, code = "max", }, { name = "Manado", text_display = "[[w:Manado Malay|Manado]]", lat = 1.493056, long = 124.841261, code = "xmm", }, { name = "Medan", text_display = "[[w:ms:Bahasa Melayu Medan|Medan]]", lat = 3.589444, long = 98.673889, }, { name = "Papuan", text_display = "[[w:Papuan Malay|Papuan]]", lat = -4, long = 136, code = "pmy", }, { name = "Pontianak", text_display = "[[w:Pontianak Malay|Pontianak]]", lat = -0.0206, long = 109.3414, }, { name = "Riau", text_display = "[[w:Riau Malay language|Riau]]", lat = 0.54, long = 101.45, }, { name = "Sambas", text_display = "[[w:Sambas Malay|Sambas]]", lat = 1.41667, long = 109.33333, }, { name = "Serdang", text_display = "[[w:Serdang Malay|Serdang]]", lat = 3.3667, long = 99.0333, }, { name = "Tenggarong Kutai", text_display = "[[w:ms:Bahasa Melayu Kutai Tenggarong|Kutai Tenggarong]]", lat = -0.7951, long = 117.4631, code = "vkt", }, { name = "Ternate", text_display = "[[w:Ternate|Ternate]]", lat = 0.783333, long = 127.366667, }, }, { name = "Malaysia", text_display = "Malaysia", code = "ms", color = "var(--wikt-palette-blue-1)", { name = "Standard-MY", text_display = "[[w:Malaysian Malay|Malaysian standard]]", lat = 3.780511, long = 102.314362, }, { name = "Palace-MY", text_display = "[[w:Bahasa Istana|Malaysian palace]]", lat = 3.161389, long = 101.663611, }, { name = "Chetty", text_display = "[[w:Malay Chetty creole language|Ceti]]", lat = 2.2034, long = 102.2408, code = "ccm", }, { name = "Johor", text_display = "[[w:Johor|Johor]]", lat = 1.487222, long = 103.781111, }, { name = "Kedah", text_display = "[[w:Kedah Malay|Kedah]]", lat = 6.128333, long = 100.362778, code = "meo", }, { name = "Kelantan", text_display = "[[w:Kelantan Malay|Kelantan]]", lat = 5.25, long = 102, }, { name = "Melaka", text_display = "[[w:Melaka|Melaka]]", lat = 2.2, long = 102.251, }, { name = "Negeri Sembilan", text_display = "[[w:Negeri Sembilan Malay|Negeri Sembilan]]", lat = 2.698056, long = 102.156667, }, { name = "Pahang", text_display = "[[w:Pahang Malay|Pahang]]", lat = 3.75, long = 102.5, }, { name = "Penang", text_display = "[[w:Penang|Penang]]", lat = 5.4025, long = 100.365, }, { name = "Perak", text_display = "[[w:Perak Malay|Perak]]", lat = 4.75, long = 101, }, { name = "Perlis", text_display = "[[w:Perlis|Perlis]]", lat = 6.5, long = 100.25, }, { name = "Sabah", text_display = "[[w:Sabah Malay|Sabah]]", lat = 5.25, long = 117, code = "msi", }, { name = "Sarawak", text_display = "[[w:Sarawak Malay|Sarawak]]", lat = 2.5, long = 113, }, { name = "Terengganu-Inland", text_display = "[[w:Terengganu Malay|Terengganu, Inland]]", lat = 5.083333, long = 102.75, }, { name = "Terengganu-Coastal", text_display = "[[w:Terengganu Malay|Terengganu, Coastal]]", lat = 5.330278, long = 103.140833, }, }, { name = "Singapore", text_display = "Singapore", code = "ms", color = "var(--wikt-palette-green-1)", { name = "Standard-SG", text_display = "[[w:Standard Malay|Singaporean standard]]", lat = 1.3, long = 103.8, }, { name = "Dialect-SG", text_display = "[[w:Singaporean Malay|Singaporean dialect]]", lat = 1.320556, long = 103.886944, }, { name = "Baba-SG", text_display = "[[w:Baba Malay|Baba]]", lat = 1.31078, long = 103.865637, code = "mbf", }, }, { name = "Thailand", text_display = "Thailand", code = "ms", color = "var(--wikt-palette-rose-1)", { name = "Satun", text_display = "[[w:Satun province|Satun]]", lat = 6.623889, long = 100.066944, }, { name = "Pattani", text_display = "[[w:Pattani Malay|Pattani]]", lat = 6.383333, long = 101.416667, code = "mfa", }, }, { name = "Overseas", text_display = "Overseas", code = "ms", color = "var(--wikt-palette-cyan-1)", { name = "Cape", text_display = "[[w:Cape Malays|Cape]]", lat = -33.925278, long = 18.423889, }, { name = "Cocos", text_display = "[[w:Cocos Malay|Cocos]]", lat = -12.1175, long = 96.895, code = "coa", }, { name = "Sri Lanka", text_display = "[[w:Sri Lanka Malay language|Sri Lanka]]", lat = 7, long = 81, code = "sci", }, }, } return export swfcjt3tpxf4h9j2taq2n7hje96jakl 2351356 2351355 2026-05-08T09:06:46Z Hiyuune 50834 2351356 Scribunto text/plain local export = {} export.title = "Phương ngữ đồng nghĩa của %s" export.columns = { "Vùng", "Biến thể", "Từ", } -- export.notes = { -- "This table shows various regional forms in the Malay language. The classification is based on geographical distribution.", -- } export.varieties = { { name = "Brunei", text_display = "Brunei", code = "ms", color = "var(--wikt-palette-red-1);color:inherit", { name = "Standard-BN", text_display = "[[w:Tiếng Mã Lai|Brunei tiêu chuẩn]]", lat = 4.4, long = 114.566667, }, { name = "Palace-BN", text_display = "[[w:Bahasa Istana|Bruneian palace]]", lat = 4.872031, long = 114.920756, }, { name = "Dialect-BN", text_display = "[[w:Tiếng Mã Lai Brunei|phương ngữ Brunei]]", lat = 4.916667, long = 114.916667, }, { name = "Kampong Ayer", text_display = "[[w:Kampong Ayer|Kampong Ayer]]", lat = 4.8825, long = 114.9425, }, { name = "Kedayan", text_display = "[[w:Kedayan language|Kedayan]]", lat = 4.849167, long = 114.881667, }, }, { name = "Indonesia", text_display = "Indonesia", code = "ms", color = "var(--wikt-palette-yellow-1);color:inherit", { name = "Standard-ID", text_display = "[[w:Tiếng Indonesia|Tiếng Indonesia tiêu chuẩn]]", lat = -2, long = 118, code = "id", }, { name = "Slang-ID", text_display = "[[w:en:Indonesian slang|Slang-ID]]", lat = -6.175, long = 106.8275, code = "id", }, { name = "Ambonese", text_display = "[[w:Tiếng Mã Lai Ambo|Ambo]]", lat = -3.716667, long = 128.183333, code = "abs", }, { name = "Asahan", text_display = "[[w:Asahan Regency|Asahan]]", lat = 3, long = 99.1667, }, { name = "Bacanese", text_display = "[[w:Bacan Malay|Bacanese]]", lat = -0.625946, long = 127.477694, code = "btj", }, { name = "Balinese", text_display = "[[w:Balinese Malay|Balinese]]", lat = -8.36, long = 114.65, code = "mhp", }, { name = "Bangka", text_display = "[[w:Bangka Malay|Bangka]]", lat = -2.133333, long = 106.116667, code = "mfb", }, { name = "Banda", text_display = "[[w:Banda Malay|Banda]]", lat = -4.583333, long = 129.916667, code = "bpq", }, { name = "Berau", text_display = "[[w:Berau Malay|Berau]]", lat = 1.67, long = 117.93, code = "bve", }, { name = "Bilah Panai", text_display = "[[w:Bilah Sultanate|Bilah Panai]]", lat = 2.26667, long = 100.1, }, { name = "Bukit", text_display = "[[w:Bukit Malay|Bukit]]", lat = -2.579722, long = 116.324444, code = "bvu", }, { name = "Central", text_display = "[[w:South Barisan|Tengah]]", lat = -3, long = 102.25, }, { name = "Deli", text_display = "[[w:ms:Bahasa Melayu Deli|Deli]]", lat = 3.55, long = 98.85, }, { name = "Jambi", text_display = "[[w:Jambi Malay|Jambi]]", lat = -2.65, long = 103.13, code = "jax", }, { name = "Kapuas Hulu", text_display = "[[w:Kapuas Hulu, Kapuas|Kapuas Hulu]]", lat = -0.933027, long = 114.019548, }, { name = "Ketapang", text_display = "[[w:Ketapang Regency|Ketapang]]", lat = -1.58333, long = 110.5, }, { name = "Kota Bangun Kutai", text_display = "[[w:id:Bahasa Kutai Kota Bangun|Kutai Kota Bangun]]", lat = -0.2275, long = 116.451389, code = "mqg", }, { name = "Kotawaringin", text_display = "[[w:id:Bahasa Melayu Kotawaringin|Kotawaringin]]", lat = -2.4, long = 111.73333, }, { name = "Kupang", text_display = "[[w:Kupang Malay|Kupang]]", lat = -10.170167, long = 123.60775, code = "mkn", }, { name = "Langkat", text_display = "[[w:Langkat Malay|Langkat]]", lat = 3.77, long = 98.22, }, { name = "Larantuka", text_display = "[[w:Larantuka Malay|Larantuka]]", lat = -8.313333, long = 123.004167, code = "lrt", }, { name = "Makassar", text_display = "[[w:Makassar Malay|Makassar]]", lat = -5.133056, long = 119.413611, code = "mfp", }, { name = "North Moluccan", text_display = "[[w:North Moluccan Malay|North Moluccan]]", lat = 0.78, long = 127.37, code = "max", }, { name = "Manado", text_display = "[[w:Manado Malay|Manado]]", lat = 1.493056, long = 124.841261, code = "xmm", }, { name = "Medan", text_display = "[[w:ms:Bahasa Melayu Medan|Medan]]", lat = 3.589444, long = 98.673889, }, { name = "Papuan", text_display = "[[w:Papuan Malay|Papuan]]", lat = -4, long = 136, code = "pmy", }, { name = "Pontianak", text_display = "[[w:Pontianak Malay|Pontianak]]", lat = -0.0206, long = 109.3414, }, { name = "Riau", text_display = "[[w:Riau Malay language|Riau]]", lat = 0.54, long = 101.45, }, { name = "Sambas", text_display = "[[w:Sambas Malay|Sambas]]", lat = 1.41667, long = 109.33333, }, { name = "Serdang", text_display = "[[w:Serdang Malay|Serdang]]", lat = 3.3667, long = 99.0333, }, { name = "Tenggarong Kutai", text_display = "[[w:ms:Bahasa Melayu Kutai Tenggarong|Kutai Tenggarong]]", lat = -0.7951, long = 117.4631, code = "vkt", }, { name = "Ternate", text_display = "[[w:Ternate|Ternate]]", lat = 0.783333, long = 127.366667, }, }, { name = "Malaysia", text_display = "Malaysia", code = "ms", color = "var(--wikt-palette-blue-1);color:inherit", { name = "Standard-MY", text_display = "[[w:Tiếng Mã Lai|Tiếng Mã Lai tiêu chuẩn]]", lat = 3.780511, long = 102.314362, }, { name = "Palace-MY", text_display = "[[w:Bahasa Istana|Malaysian palace]]", lat = 3.161389, long = 101.663611, }, { name = "Chetty", text_display = "[[w:Malay Chetty creole language|Ceti]]", lat = 2.2034, long = 102.2408, code = "ccm", }, { name = "Johor", text_display = "[[w:Johor|Johor]]", lat = 1.487222, long = 103.781111, }, { name = "Kedah", text_display = "[[w:Kedah Malay|Kedah]]", lat = 6.128333, long = 100.362778, code = "meo", }, { name = "Kelantan", text_display = "[[w:Kelantan Malay|Kelantan]]", lat = 5.25, long = 102, }, { name = "Melaka", text_display = "[[w:Melaka|Melaka]]", lat = 2.2, long = 102.251, }, { name = "Negeri Sembilan", text_display = "[[w:Negeri Sembilan Malay|Negeri Sembilan]]", lat = 2.698056, long = 102.156667, }, { name = "Pahang", text_display = "[[w:Pahang Malay|Pahang]]", lat = 3.75, long = 102.5, }, { name = "Penang", text_display = "[[w:Penang|Penang]]", lat = 5.4025, long = 100.365, }, { name = "Perak", text_display = "[[w:Perak Malay|Perak]]", lat = 4.75, long = 101, }, { name = "Perlis", text_display = "[[w:Perlis|Perlis]]", lat = 6.5, long = 100.25, }, { name = "Sabah", text_display = "[[w:Sabah Malay|Sabah]]", lat = 5.25, long = 117, code = "msi", }, { name = "Sarawak", text_display = "[[w:Sarawak Malay|Sarawak]]", lat = 2.5, long = 113, }, { name = "Terengganu-Inland", text_display = "[[w:Terengganu Malay|Terengganu, Inland]]", lat = 5.083333, long = 102.75, }, { name = "Terengganu-Coastal", text_display = "[[w:Terengganu Malay|Terengganu, Coastal]]", lat = 5.330278, long = 103.140833, }, }, { name = "Singapore", text_display = "Singapore", code = "ms", color = "var(--wikt-palette-green-1);color:inherit", { name = "Standard-SG", text_display = "[[w:Tiếng Mã Lai Singapore|Tiếng Mã Lai Singapore tiêu chuẩn]]", lat = 1.3, long = 103.8, }, { name = "Dialect-SG", text_display = "[[w:en:Singaporean Malay|Phương ngữ Singapore]]", lat = 1.320556, long = 103.886944, }, { name = "Baba-SG", text_display = "[[w:Baba Malay|Baba]]", lat = 1.31078, long = 103.865637, code = "mbf", }, }, { name = "Thailand", text_display = "Thái Lan", code = "ms", color = "var(--wikt-palette-rose-1);color:inherit", { name = "Satun", text_display = "[[w:Satun|Satun]]", lat = 6.623889, long = 100.066944, }, { name = "Pattani", text_display = "[[w:Pattani Malay|Pattani]]", lat = 6.383333, long = 101.416667, code = "mfa", }, }, { name = "Overseas", text_display = "Cộng đồng người Mã Lai hải ngoại", code = "ms", color = "var(--wikt-palette-cyan-1);color:inherit", { name = "Cape", text_display = "[[w:Cape Malays|Cape]]", lat = -33.925278, long = 18.423889, }, { name = "Cocos", text_display = "[[w:Cocos Malay|Cocos]]", lat = -12.1175, long = 96.895, code = "coa", }, { name = "Sri Lanka", text_display = "[[w:Tiếng Mã Lai Sri Lanka|Sri Lanka]]", lat = 7, long = 81, code = "sci", }, }, } return export 7vwfmjaghqjkx38a1n4atacdlh21jpa Mô đun:dialect synonyms/rup/mãduã 828 396110 2351357 2026-05-08T09:09:25Z Hiyuune 50834 Trang mới: “-- ALAR map 3 [I.8f] "creier = cerveau" local export = {} export.meaning = "não" export.syns = { ["1"] = { { term = "mãduã", ts = "mặdúu̯ặ" } }, ["10"] = { { term = "mãduã", ts = "mặdúu̯ặ" } }, ["13"] = { { term = "mãduã", ts = "mặdúặ; ~" } }, ["2"] = { { term = "mãduã", ts = "mặdúu̯ặ; -dúvẹ" } }, ["5"] = { { term = "mãduã", ts = "mặdúu̯ặ; -dúi̯" } }, ["11"] = { { term = "mãduã", ts = "mặdúu̯ặ; -dúi̯" } }, […” 2351357 Scribunto text/plain -- ALAR map 3 [I.8f] "creier = cerveau" local export = {} export.meaning = "não" export.syns = { ["1"] = { { term = "mãduã", ts = "mặdúu̯ặ" } }, ["10"] = { { term = "mãduã", ts = "mặdúu̯ặ" } }, ["13"] = { { term = "mãduã", ts = "mặdúặ; ~" } }, ["2"] = { { term = "mãduã", ts = "mặdúu̯ặ; -dúvẹ" } }, ["5"] = { { term = "mãduã", ts = "mặdúu̯ặ; -dúi̯" } }, ["11"] = { { term = "mãduã", ts = "mặdúu̯ặ; -dúi̯" } }, ["12"] = { { term = "mãduã", ts = "mặdúu̯ặ; -dúi̯" } }, ["19"] = { { term = "mãduã", ts = "mặdúu̯ặ; -dúi̯" } }, ["25"] = { { term = "mãduã", ts = "mặdúu̯ặ; -dúi̯" } }, ["29"] = { { term = "mãduã", ts = "mặdúu̯ặ; -dúi̯į" } }, ["17"] = { { term = "mãduã", ts = "mădúă" } }, ["20"] = { { term = "mãduã", ts = "mădúu̯ặ" } }, ["3"] = { { term = "mãduã", ts = "mădúu", q = {"fast"} }, { term = "mãduã", ts = "mâdúu̯â", q = {"slow"} }, }, ["4"] = { { term = "mãduã", ts = "mặdúu" } }, ["9"] = { { term = "mãduã", ts = "mặdúu" } }, ["6"] = { { term = "mãduã", ts = "mâdúu̯â" } }, ["7"] = { { term = "mãduã", ts = "mâdúu" } }, ["8"] = { { term = "mãduã", ts = "mâdúu" } }, ["18"] = { { term = "mãduã", ts = "mădúu" }, { term = "mãduã", ts = "mădúa", q = {"def"} }, }, ["14"] = { { term = "miduã", ts = "midúă; -dúe" } }, ["15"] = { { term = "mãduã", ts = "mặdúă; -dúur" } }, ["16"] = { { term = "mãduã", ts = "mădú; ~" }, { term = "mãdazã", ts = "mădáză", q = {"corr"} }, }, ["21"] = { { term = "minte", ts = "míntį; minţ" } }, ["22"] = { { term = "minte", ts = "míntį; minţ" } }, ["23"] = { { term = "mãduã", ts = "mădúu̯â" } }, ["24"] = { { term = "mãduã", ts = "mâdúu; -dúi̯" }, { term = "mãduã", ts = "mâdúặ; -dúe" }, }, ["26"] = { { term = "minte", ts = "mínte" } }, ["27"] = { { term = "minte", ts = "mínti" } }, ["30"] = { { term = "minte", ts = "mínte" } }, ["28"] = { { term = "minde", ts = "mínde̯a", q = {"def"} } }, ["31"] = { { term = "mãduã", ts = "mâdú<sup>u̯</sup>u" } }, ["32"] = { { term = "minduã", ts = "mindúu̯ă" }, { term = "minde", ts = "mínde" }, }, ["33"] = { { term = "mãduã", ts = "mâdúă" } }, ["35"] = { { term = "mãduã", ts = "mặdúu", q = {"sugg", "hes"} } }, ["36"] = { { term = "miduã", ts = "midúo" } }, ["37"] = { { term = "mãduã", ts = "mădúă" } }, ["38"] = { { term = "mãduã", ts = "mădúă" }, { term = "minte", ts = "mínti" }, }, ["39"] = { { term = "miduã", ts = "midúu" } }, ["49"] = { { term = "miduã", ts = "midúu" } }, ["40"] = { { term = "mãduã", ts = "mâdúu" } }, ["41"] = { { term = "minduã", ts = "mindúu" } }, ["42"] = { { term = "minduã", ts = "mindúu" } }, ["43"] = { { term = "minduã", ts = "mindúu" }, { term = "minde", ts = "mínde̯a", q = {"def"} }, }, ["51"] = { { term = "miduã", ts = "midúă", q = {"slow"} }, { term = "miduã", ts = "midúu", q = {"fast"} }, }, ["52"] = { { term = "mãduã", ts = "mădúu" } }, ["53"] = { { term = "muduã", ts = "mudúă" } }, ["54"] = { { term = "mãduã", ts = "mădúă" } }, ["55"] = { { term = "mãduã", ts = "mădúă" } }, ["58"] = { { term = "mãduã", ts = "mădúă" } }, ["56"] = { { term = "mãduã", ts = "mădúu" }, { term = "[[mãduã|mãdua]] di [[cap]]", ts = "mădúa di cap" }, }, } return export lzfg8l5i6z8dwyqhwdha639my84ae2n