Wiktionary viwiktionary https://vi.wiktionary.org/wiki/Wiktionary:Trang_Ch%C3%ADnh MediaWiki 1.46.0-wmf.24 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 ngất nga ngất nghểu 0 95332 2348649 1315002 2026-04-26T06:26:36Z Hiyuune 50834 không phải là từ láy 2348649 wikitext text/x-wiki =={{langname|vi}}== ==={{section|pron}}=== {{vi-pron}} ==={{section|adj}}=== {{vi-adj|head=ngất nga [[ngất nghểu]]}} # {{like-entry|ngất nghểu}} ==={{section|ref}}=== * {{R:FVDP}} * {{R:Tratu}} tjuktna5bk3lk20tw4k4xrzc9wwq99l 2348660 2348649 2026-04-26T07:14:21Z TheHighFighter2 42988 /* Tiếng Việt */ 2348660 wikitext text/x-wiki =={{langname|vi}}== ==={{section|pron}}=== {{vi-pron}} ==={{section|adj}}=== {{vi-adj|head=ngất nga [[ngất nghểu]]}} # {{vi-rdp of|ngất nghểu}}. ==={{section|further}}=== * {{R:FVDP}} * {{R:Tratu}} rag561t4dspd0iuzvua15lkq6a7rck2 Thảo luận Wiktionary:Thảo luận 5 103987 2348577 2347486 2026-04-26T00:58:59Z MediaWiki message delivery 19980 Mục mới: /* Request for comment (global AI policy) */ 2348577 wikitext text/x-wiki <!-- Xin bắt đầu cuộc thảo luận mói ở CUỐI trang! Cám ơn. --> {{Lưu trữ}} == Upcoming Dark Mode user interface rollout for anonymous Wikimedia sites users == <div lang="en" dir="ltr"> {{int:Hello}} Wikimedians, Apologies if this message is not in your language. {{int:please-translate}}. The [[mw:Special:MyLanguage/Reading/Web|Reader Experience team]] will launch the Dark mode feature for anonymous users on all Wikimedia sites, including yours, on October 29, 2025. [[:en:Special:MyLanguage/Light-on-dark color scheme|Dark mode]] is an option that allows users to view pages in light-coloured text, and icons on a dark background. Once it is available for anonymous users, they can enable it when using various devices. More information on ways to enable it can be found on [[:en:Special:MyLanguage/Wikipedia:Dark mode#Options for anyone|this page]]. Given many pages are still not compatible with dark mode this will be an opt-in feature and not automatically apply to pages. Dark mode requires modifications to content pages and templates, and since our initial launch [https://diff.wikimedia.org/2024/07/17/dark-modes-bright-future-how-dark-mode-will-transform-wikipedias-accessibility/ in July 2024], we have been working with communities and helping them prepare for dark mode. Before the rollout, it is essential that template authors and technical contributors test dark mode and read [[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-04|this page]] to learn how to make pages Dark mode-ready and address any compatibility issues found in templates. We will fix most color compatibility issues only on the most-viewed pages on projects with over 5 million monthly page views. Technical contributors with an account should opt into dark mode currently using preferences or settings and test pages and seek help before the release to ensure everything complies before the enablement. If you have any questions or need help, please [[mw:Special:MyLanguage/Talk:Reading/Web/Accessibility for reading#|contact the Reader Experience team]] for support. Thank you! </div> <bdi lang="en" dir="ltr">[[User:UOzurumba (WMF)|UOzurumba (WMF)]]</bdi> 02:08, ngày 30 tháng 9 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=User:UOzurumba_(WMF)/sandbox_Dark_mode_deployment_mass_message_list_(October_2025)&oldid=29358561 --> == Bản tin Kỹ thuật: Tuần 41-2025 == <section begin="technews-2025-W41"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/41|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Nổi bật trong tuần''' * [[mw:Special:MyLanguage/Help:Edit check#paste|Kiểm tra Nội dung Dán (Paste Check)]] là một tính năng Kiểm tra Sửa đổi mới để giúp phòng tránh và chống lại các hành vi vi phạm bản quyền. Khi biên tập viên dán văn bản vào bài viết, Kiểm tra Nội dung Dán sẽ nhắc họ xác nhận nguồn gốc và giấy phép của nội dung được dán đó. Bắt đầu từ thứ 4, ngày 8 tháng 10, [[phab:T403680|22 wiki sẽ thử nghiệm tính năng Kiểm tra Nội dung Dán]]. Kiểm tra Nội dung Dán sẽ giúp các tình nguyện viên mới hiểu và tuân theo các quy định và hướng dẫn cần thiết để thực hiện những đóng góp mang tính xây dựng cho các dự án Wikipedia. '''Cập nhật cho biên tập viên''' * Các thiết bị di động sẽ hiển thị các bài viết trên trang di động trực tiếp trên tên miền chuẩn (như <code>en.wikipedia.org</code>), thay vì thông qua việc đổi hướng tới tên miền "m" (như <code>en.m.wikipedia.org</code>). Thay đổi này nhằm cải thiện hiệu năng. Nó sẽ được kích hoạt trên các trang Wikipedia trong tuần này. Liên kết URL di động và tùy chọn "Phiên bản máy tính" vẫn sẽ tiếp tục khả dụng. [[mw:Requests for comment/Mobile domain sunsetting/2025 Announcement|Tìm hiểu thêm]]. [https://phabricator.wikimedia.org/T214998] * [[mw:Special:MyLanguage/Help:CirrusSearch#creationdate and lasteditdate|Bộ lọc ngày]] mới, <code dir=ltr>creationdate:</code> và <code dir=ltr>lasteditdate:</code>, nay có sẵn trong bộ máy tìm kiếm của wiki. Những bộ lọc này cho phép người dùng lọc kết quả tìm kiếm theo bản sửa đổi đầu tiên hoặc cuối cùng của trang. Bộ lọc hỗ trợ các toán tử so sánh (v.d. <code dir=ltr>>2024</code>) và ngày dạng tương đối (v.d. <code dir=ltr>today-1d</code>), giúp việc tìm nội dung hoặc trang được cập nhật gần đây trong khoảng năm cụ thể trở nên dễ dàng hơn. [https://phabricator.wikimedia.org/T403593] * [[f:|Wikifunctions]] nay hỗ trợ văn bản giàu tính chất (rich text) trong lời gọi hàm nhúng trên 150 wiki đã kích hoạt nó. Để giới thiệu tính năng này, nhóm đã tạo [[f:Z26333|bảng biến cách tiếng Latin]] mà biên tập viên Wiktionary có thể sử dụng để tự động tạo ra các dạng danh từ, nhằm tạo ra những kết quả rõ ràng và được định dạng — xem một [[f:Wikifunctions:Embedded function calls/Wiktionary tables demonstration|ví dụ đầu ra]] cụ thể. Nếu bạn cần hỗ trợ hay có bất kỳ phản hồi nào, vui lòng [[f:Wikifunctions:Project chat|liên hệ nhóm Wikifunctions]]. [https://phabricator.wikimedia.org/T397402] * Một liên kết sửa đổi nay sẽ hiển thị trong hộp thể loại trên các trang bài viết đối với người dùng đã đăng nhập, khi nhấn vào sẽ khởi động trực tiếp hộp thoại thể loại bằng Trình Soạn thảo Trực quan (VisualEditor). [https://phabricator.wikimedia.org/T291691] * [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:34}} {{PLURAL:34|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, tuần trước đã có vấn đề khi tải các tập tin pdf và hiện nó đã được giải quyết. [https://phabricator.wikimedia.org/T405957] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Trường <code dir=ltr>rev_sha1</code> trong bảng cơ sở dữ liệu bản sửa đổi đang chuẩn bị được loại bỏ để thay thế bằng trường <code dir=ltr>content_sha1</code> trong bảng cơ sở dữ liệu nội dung. Xem [https://lists.wikimedia.org/hyperkitty/list/cloud@lists.wikimedia.org/thread/2D2M3SP4WHR6BXXKTZ2PBLZQYR3EGQVR/ thông báo này] để biết thêm thông tin. * [[mw:Special:MyLanguage/Reading/Web|Nhóm Trải nghiệm Người đọc]] sẽ triển khai giao diện người dùng [[w:en:Light-on-dark color scheme|Chế độ Tối]] trên tất cả các trang Wikimedia vào ngày 29 tháng 10 năm 2025. Tất cả thành viên vô danh trên các trang Wikimedia sẽ có tùy chọn kích hoạt bảng màu có văn bản màu sáng trên nền tối. Chế độ này được thiết kế để cung cấp trải nghiệm đọc thoải mái hơn, đặc biệt trong những trường hợp thiếu sáng. Tác giả bản mẫu và biên tập viên kỹ thuật được khuyến khích [[mw:Special:MyLanguage/Reading/Web/Accessibility for reading/Updates/2024-04|tìm hiểu cách chuẩn bị các trang để tương thích với Chế độ tối]] và giải quyết bất kỳ vấn đề tương thích nào xuất hiện trong các bản mẫu trên wiki của họ trước thời điểm kích hoạt. Vui lòng liên hệ nhóm Web nếu có bất kỳ câu hỏi hay cần sự trợ giúp nào trên [[mw:Talk:Reading/Web/Accessibility for reading#|trang thảo luận này]] trước ngày kích hoạt. [https://phabricator.wikimedia.org/T395628] * Bắt đầu từ thứ 2, ngày 6 tháng 10, các điểm cuối API theo đường dẫn <code>rest.php</code> sẽ được định tuyến lại qua Cổng API nội bộ mới. Mỗi wiki sẽ được cập nhật dựa trên các nhóm phát hành tiêu chuẩn, với tổng lưu lượng truy cập tăng dần theo thời gian. Thay đổi này dự kiến không gây ra bất kỳ sự gián đoạn gì. Nếu phát hiện thấy có bất kỳ vấn đề nào, vui lòng tạo tác vụ Phabricator gửi lên [[phab:tag/serviceops/|bảng của nhóm Vận hành Dịch vụ]]. [https://phabricator.wikimedia.org/T400130] * [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.22|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/41|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2025-W41"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:23, ngày 6 tháng 10 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29400897 --> == <span lang="en" dir="ltr">Have your say: vote for the 2025 Board of Trustees</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Hello all, The voting period for the [[m:Special:MyLanguage/Wikimedia Foundation elections/2025|2025 Board of Trustees election]] is now open. Candidates are running for two (2) seats on the Board. To check your voter eligibility, please visit the [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Voter eligibility guidelines|voter eligibility page]]. Learn more about them by [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Candidates|reading their application statements and watch their candidacy videos]]. When you are ready, go to the [[m:Special:SecurePoll/vote/405|SecurePoll voting page to vote]]. '''The vote is open from October 8 at 00:00 UTC to October 22 at 23:59 UTC.''' Best regards, Abhishek Suryawanshi<br />Chair, Elections Committee<section end="announcement-content" /> </div> [[Thành viên:MediaWiki message delivery|MediaWiki message delivery]] ([[Thảo luận Thành viên:MediaWiki message delivery|thảo luận]]) 04:49, ngày 9 tháng 10 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:RamzyM (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29360896 --> == Bản tin Kỹ thuật: Tuần 42-2025 == <section begin="technews-2025-W42"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/42|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Nổi bật trong tuần''' * Tuần trước, chúng tôi đã tiến hành triển khai những cải tiến về các tính năng bảo mật tài khoản và xác thực hai yếu tố (2FA) trên tất cả các wiki. Những thay đổi đó bao gồm cải tiến giao diện người dùng cho trang [https://auth.wikimedia.org/metawiki/wiki/Special:AccountSecurity Đặc biệt:Bảo mật tài khoản], hỗ trợ nhiều phương thức xác thực 2FA thông qua các ứng dụng xác thực và khóa bảo mật di động (trước đây người dùng chỉ có thể kích hoạt một phương thức xác thực), và mô đun Mã Khôi phục mới giúp giảm thiểu tình trạng khóa tài khoản do mất ứng dụng và thiết bị xác thực hai yếu tố. Là một phần của dự án [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]], quá trình này sẽ tiếp tục trong phần còn lại của năm 2025 để cải thiện nhiều hơn trải nghiệm người dùng, cùng việc thêm hỗ trợ cho mã khóa làm phương thức xác thực thứ hai thay thế. '''Cập nhật cho biên tập viên''' * Một phần khác của dự án Bảo mật tài khoản là cung cấp 2FA cho tất cả người dùng. Bên cạnh biên tập viên có quyền nâng cao, chẳng hạn như bảo quản viên và hành chính viên, 40% biên tập viên nay có quyền truy cập vào 2FA. Bạn có thể kiểm tra xem bạn có quyền truy cập đó không tại [https://auth.wikimedia.org/metawiki/wiki/Special:AccountSecurity Đặc biệt: Bảo mật tài khoản]. Hướng dẫn kích hoạt có trên trang được liên kết theo. Kế hoạch là tiếp tục tăng cường tính khả dụng nếu xác định rằng khả năng hỗ trợ người dùng có thể hỗ trợ việc sử dụng toàn cục của nó. [https://phabricator.wikimedia.org/T400579] * Tuần này, người dùng trên các wiki mà mặc định đã có sẵn tính năng [[mw:Special:MyLanguage/Talk pages project/Usability|Cải tiến Khả năng Sử dụng]] trên trang thảo luận (tất cả ''trừ'' 12 wiki được liệt kê trong tác vụ [[phab:T379264|T379264]]) sẽ có được khả năng gửi lời cảm ơn bình luận trực tiếp trên trang thảo luận mà nó xuất hiện. Trước thay đổi này, việc cảm ơn chỉ có thể được thực hiện bằng cách truy cập lịch sử sửa đổi của trang thảo luận. Bạn có thể [[diffblog:2025/10/13/revolutionizing-gratitude-a-new-era-of-thanking-comments/|tìm hiểu thêm về thay đổi này]]. [https://phabricator.wikimedia.org/T366095] * Người dùng chưa [[Special:Preferences#mw-prefsection-personal-email|xác thực địa chỉ email của mình]] sẽ sớm nhận thông báo hàng tháng nhắc họ làm điều này. Điều này là bởi vì người dùng đã xác thực email của họ có thể dễ dàng khôi phục tài khoản của mình hơn. Những lời nhắc này sẽ không được gửi nếu người dùng không hoạt động hoặc đã loại bỏ email chưa được xác thực khỏi tài khoản của mình. [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Email_confirmation][https://phabricator.wikimedia.org/T58074] * [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, đã có một bản sửa lỗi nhằm giải quyết một lỗi thỉnh thoảng xảy ra khi lưu các đoạn đã được dịch trong công cụ Dịch Nội dung, cùng với đó các thông báo lỗi có liên quan giờ dễ nhìn hơn. [https://phabricator.wikimedia.org/T376531] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Nhóm Công cụ Không được Hỗ trợ đã chọn [[c:Special:MyLanguage/Commons:Video2commons|Video2Commons]] làm công cụ đầu tiên cho chu kỳ thí điểm của họ. Nhóm sẽ tìm hiểu cách để cải tiến và duy trì công cụ này trong những tháng tiếp theo. [[m:Special:MyLanguage/Product and Technology Advisory Council/Unsupported Tools Working Group|Tìm hiểu thêm trên Meta]]. * [[File:Octicons-sync.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.23|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/42|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2025-W42"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:59, ngày 13 tháng 10 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29434481 --> == <span lang="en" dir="ltr">Help us decide the name of the new Abstract Wikipedia project</span> == <div lang="en" dir="ltr"> <section begin="function1"/> {{int:Hello}}. Please help pick a name for the new Abstract Wikipedia wiki project. This project will be a wiki that will enable users to combine functions from [[:f:|Wikifunctions]] and data from Wikidata in order to generate natural language sentences in any supported languages. These sentences can then be used by any Wikipedia (or elsewhere). There will be two rounds of voting, each followed by legal review of candidates, with votes beginning on 20 October and 17 November 2025. Our goal is to have a final project name selected on mid-December 2025. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki. {{Int:Feedback-thanks-title}} <section end="function1"/> </div> -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 11:44, ngày 20 tháng 10 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:Sannita (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29432175 --> == Bản tin Kỹ thuật: Tuần 43-2025 == <section begin="technews-2025-W43"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/43|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' * Để tối ưu hóa cách dữ liệu người dùng được lưu trong cơ sở dữ liệu của chúng tôi, các tùy chọn được lưu của người dùng chưa đăng nhập trong vòng hơn 5 năm và có ít hơn 100 sửa đổi sẽ bị xóa. Khi những người dùng đó quay lại, tùy chọn mặc định sẽ được áp dụng. [https://phabricator.wikimedia.org/T406724] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:20}} {{PLURAL:20|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, đã có một liên kết hỏng từ thông điệp giao diện Đóng góp toàn cục đến trang Đóng góp toàn cục trên XTools mà hiện đã được giải quyết. [https://phabricator.wikimedia.org/T406415] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Việc định tuyến lại toàn bộ lưu lượng đến các điểm cuối API theo cổng <code dir=ltr><nowiki>rest.php</nowiki></code> thông qua một cổng API chung hiện đã hoàn tất. Nếu phát hiện bất kỳ vấn đề nào, vui lòng gửi tác vụ phabricator lên [[phab:tag/serviceops/|bảng tác vụ của nhóm Vận hành Dịch vụ]]. * Các sửa đổi đối với chú thích hoặc từ hạn định Wikidata nay sẽ ít hiển thị thường xuyên hơn trên các mục Thay đổi gần đây và Danh sách theo dõi trên các wiki khác, nhằm giảm bớt các thông báo không cần thiết. Thay đổi này sẽ giảm tổng số lượng các khoản mục 'gây nhiễu'. Bản thân các trang Wikidata sẽ không có sự thay đổi nào. [https://phabricator.wikimedia.org/T401290] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.24|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/43|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2025-W43"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:36, ngày 20 tháng 10 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29478670 --> == Bản tin Kỹ thuật: Tuần 44-2025 == <section begin="technews-2025-W44"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/44|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' * Ứng dụng Wikipedia dành cho iOS đã ra mắt thử nghiệm A/B/C nhằm cải tiến tính năng duyệt theo thẻ cho một số khu vực và ngôn ngữ nhất định. Thử nghiệm mang tên “Nhiều thẻ động hơn” này sẽ khám phá trải nghiệm trên thẻ mới cùng với việc bổ sung đề xuất bài viết ở mục “Bạn có biết” và “Vì bạn đã đọc”. Bạn có thể [[mw:Special:MyLanguage/Wikimedia Apps/Team/iOS/Tabbed Browsing (Tabs)/New Tab Experience and Recommendations Experiment|đọc thêm thông tin trên trang dự án này]]. * Thành viên tự xác nhận trên các wiki [[gitiles:operations/mediawiki-config/+/a2d2aaab9ace84280dd2f4c70a33bb69cd73850f/dblists/small.dblist|nhỏ]] và [[gitiles:operations/mediawiki-config/+/a2d2aaab9ace84280dd2f4c70a33bb69cd73850f/dblists/medium.dblist|vừa]] đã triển khai phần mở rộng CampaignEvents nay có thể sử dụng công cụ [[m:Special:MyLanguage/Event Center/Registration|Đăng ký Sự kiện]] mà không cần quyền Người tổ chức Sự kiện. Tính năng này cho phép người tổ chức kích hoạt việc đăng ký, quản lý người tham gia, và cho phép các thành viên đăng ký chỉ với một cú nhấp chuột thay vì phải ký vào trang sự kiện. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:31}} {{PLURAL:31|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, vấn đề về màu sắc nhấp nháy khi giữ hoặc nhấn phím mũi tên trong phần cài đặt chế độ tối của giao diện Vector 2022 nay đã được giải quyết. [https://phabricator.wikimedia.org/T402285] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Phần mở rộng CampaignEvents sẽ được triển khai trên tất cả những wiki còn lại trong tuần từ ngày 17 tháng 11 năm 2025. Phần mở rộng này hiện bao gồm ba tính năng: Đăng ký Sự kiện, Danh sách Cộng tác, và Danh sách Mời. Trong đợt triển khai này, Danh sách Lời mời sẽ không được kích hoạt cho Wikifunctions và MediaWiki cho đến khi những cộng đồng này yêu cầu kích hoạt. [[m:Special:MyLanguage/CampaignEvents/Deployment status|Truy cập trang thông tin triển khai để biết thêm thông tin]]. * Trải nghiệm chỗ thử REST dựa trên SwaggerUI nay đã có mặt trên tất cả các dự án wiki. Chỗ thử này có thể truy cập được thông qua trang [[{{#special:RestSandbox}}]]. Vui lòng báo cáo bất kỳ vấn đề nào lên bảng tin của nhóm Giao diện MediaWiki, hoặc tham gia thảo luận trên trang [[mw:Special:MyLanguage/MediaWiki Interfaces Team/Feature Feedback/REST Sandbox|khởi động dự án]] này. [https://phabricator.wikimedia.org/project/board/6931/] * Những điểm cuối chuyển đổi với đường dẫn kết thúc bằng dấu gạch chéo trong REST API của MediaWiki hiện đang được đánh dấu là lỗi thời. Chúng vẫn sẽ tiếp tục hoạt động trong thời gian này, tuy nhiên dự kiến chúng sẽ bị loại bỏ vào cuối tháng 1 năm 2026. Toàn bộ người dùng API đang gọi chúng được khuyến khích chuyển sang bản đường dẫn không kết thúc bằng dấu gạch chéo. Cả hai biến thể điểm cuối này đều có thể tìm thấy và thử được sử dụng [https://test.wikipedia.org/w/index.php?api=mw-extra&title=Special%3ARestSandbox Chỗ thử REST]. Xem trang [[mw:API/Deprecation|Ngừng hỗ trợ với REST API MediaWiki]] để biết thêm thông tin chi tiết về các chính sách và thủ tục trong việc ngừng hỗ trợ API. * [[mw:API:REST API/Changelog|Nhật trình thay đổi chuyên biệt nay đã có sẵn cho REST API của MediaWiki]]. Nhật trình thay đổi này cung cấp tổng quan về những thay đổi này, giúp các nhà phát triển dễ dàng theo dõi những cải tiến và lần lặp lại của chúng. Mọi thông báo cũng sẽ tiếp tục được gửi thông qua các kênh truyền thông chính, bao gồm Bản tin Kỹ thuật và danh sách phân phối qua thư điện tử, nhưng nay có thể dễ dàng tham khảo hơn từ một vị trí trung tâm. Nếu bạn có bất kỳ phản hồi nào về định dạng, cấu trúc, hoặc nội dung về nhật trình thay đổi này, vui lòng [[mw:API talk:REST API/Changelog|tham gia thảo luận tại đây]]. * Bảo quản viên nay có thể xóa thể loại theo dõi mà trước đây được thêm bởi phần mở rộng JsonConfig, do nó không còn được sử dụng. Xem các thể loại được liên kết từ [[d:Q130635582#sitelinks-wikipedia|Q130635582]]. Việc vẫn còn trang được liệt kê trên thể loại này là bình thường vì nó chỉ là vấn đề về bộ nhớ đệm, và chúng sẽ tự động được xóa khi các trang đó được sửa đổi trong lần tiếp theo. [https://phabricator.wikimedia.org/T378352] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.25|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/44|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2025-W44"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:31, ngày 27 tháng 10 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29513638 --> == <span lang="en" dir="ltr">Seeking volunteers to join several of the movement’s committees</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Each year, typically from October through December, several of the movement’s committees seek new volunteers. Read more about the committees on their Meta-wiki pages: * [[m:Special:MyLanguage/Affiliations Committee|Affiliations Committee (AffCom)]] * [[m:Special:MyLanguage/Ombuds commission|Ombuds commission (OC)]] * [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Community Resilience and Sustainability/Trust and Safety/Case Review Committee|Case Review Committee (CRC)]] Applications for the committees open on October 30, 2025. Applications for the Affiliations Committee, Ombuds commission and the Case Review Committee close on December 11, 2025. Learn how to apply by [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Committee appointments|visiting the appointment page on Meta-wiki]]. Post to the talk page or email cst[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org with any questions you may have. For the Committee Support team, <section end="announcement-content" /> </div> -[[m:User:MKaur (WMF)| MKaur (WMF)]] 14:14, ngày 30 tháng 10 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:MKaur (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29517125 --> == Bản tin Kỹ thuật: Tuần 45-2025 == <section begin="technews-2025-W45"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/45|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' * Các bảo quản viên giờ đây sẽ thấy rằng [[{{#special:MergeHistory}}]] đã trở nên linh hoạt hơn đáng kể trong việc hợp nhất. Nó có thể hợp nhất các phần được lấy từ giữa lịch sử của trang nguồn (thay vì chỉ từ phần đầu), và chèn các phiên bản vào bất kỳ vị trí nào trong lịch sử của trang đích (thay vì chỉ ở phần đầu). [https://phabricator.wikimedia.org/T382958] * Đối với những người dùng đã kích hoạt "{{int:discussiontools-preference-autotopicsub}}" [[Special:Preferences#mw-prefsection-editing|trong tùy chọn của họ]], việc bắt đầu một chủ đề mới hoặc thêm một phản hồi vào một chủ đề hiện có giờ đây sẽ tự động đăng ký họ theo dõi các phản hồi mới trong chủ đề đó. Trước đây, điều này chỉ xảy ra nếu người dùng sử dụng tiện ích "{{int:Skin-action-addsection}}" hoặc "{{int:Discussiontools-replybutton}}" của DiscussionTools. Khi DiscussionTools mới được ra mắt, các tài khoản hiện có không được tự động bật tính năng theo dõi chủ đề, vì vậy thay đổi này chủ yếu sẽ ảnh hưởng đến các tài khoản mới hơn và những người dùng đã chủ động thay đổi tùy chọn của mình kể từ thời điểm đó. [https://phabricator.wikimedia.org/T290778] * Các mô đun Scribunto giờ đây có thể được dùng để [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#SVG library|tạo ảnh SVG]]. Tính năng này cho phép tạo biểu đồ, đồ họa và các hình minh họa khác một cách linh hoạt thông qua Lua, giúp giảm nhu cầu phải tạo chúng bên ngoài rồi tải lên dưới dạng tập tin. [https://phabricator.wikimedia.org/T405861] * Các trang web của Wikimedia giờ đây sẽ cung cấp cho tất cả người dùng ẩn danh tùy chọn bật chế độ tối, với giao diện chữ sáng trên nền tối. Cải tiến này nhằm mang lại trải nghiệm đọc dễ chịu hơn, đặc biệt là trong môi trường thiếu sáng. [https://phabricator.wikimedia.org/T395628] * Những người dùng có danh sách theo dõi lớn từ lâu đã gặp lỗi quá thời gian khi chỉnh sửa [[Special:EditWatchlist|Special:EditWatchlist]]. Trang này nay sẽ tải các mục theo từng phần nhỏ thay vì tải toàn bộ cùng lúc nhờ bản cập nhật phân trang, giúp mọi người có thể chỉnh sửa danh sách theo dõi mượt mà hơn. Trong quá trình cập nhật cơ sở dữ liệu, tính năng sắp xếp theo thời hạn đã bị loại bỏ vì chậm hơn hơn 100 lần so với sắp xếp theo tên trang. Một [https://meta.wikimedia.org/wiki/Community_Wishlist/W454 yêu cầu từ cộng đồng] đã được tạo để tìm các cách thay thế nhằm khôi phục tính năng sắp xếp theo thời hạn. Nếu bạn thấy tính năng này quan trọng, hãy ủng hộ yêu cầu đó! [https://phabricator.wikimedia.org/T41510] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:31}} {{PLURAL:31|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, việc khắc phục lỗi tô sáng vẫn còn hiển thị sau khi sử dụng tính năng tìm và thay thế của VisualEditor trong quá trình tìm kiếm. [https://phabricator.wikimedia.org/T407318] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Từ năm 2019, [[m:Special:MyLanguage/Wikimedia URL Shortener|Trình rút gọn URL của Wikimedia]] tại https://w.wiki đã có sẵn cho tất cả các wiki của Wikimedia để tạo liên kết ngắn đến bài viết, liên kết cố định, bản so sánh, v.v. Tính năng này có trong thanh bên với tên "Lấy URL rút gọn". Hiện có 30 wiki vẫn đang sử dụng tiện ích mở rộng cũ "ShortUrl". Tiện ích cũ này sẽ sớm bị gỡ bỏ. Điều này có nghĩa là các URL dạng <code>/s/</code> sẽ không còn được hiển thị dưới tiêu đề bài viết thông qua thẻ HTML <code dir=ltr>class="title-shortlink"</code>. Tuy nhiên, các URL dạng <code>/s/</code> vẫn sẽ tiếp tục hoạt động. [https://phabricator.wikimedia.org/T107188] * Vào thứ Năm, ngày 30 tháng 10, các nhóm [[:mw:Special:MyLanguage/MediaWiki Interfaces Team|Giao diện MediaWiki]] và [[:mw:Special:MyLanguage/Wikimedia Site Reliability Engineering|Vận hành Dịch vụ SRE]] đã bắt đầu chuyển hướng lưu lượng của Action API thông qua một cổng API chung. Các wiki riêng lẻ sẽ được cập nhật theo từng nhóm phát hành tiêu chuẩn, với tổng lưu lượng được tăng dần theo thời gian. Thay đổi này được kỳ vọng sẽ không gây ra lỗi hoặc gián đoạn. Nếu bạn phát hiện bất kỳ sự cố nào, vui lòng gửi báo cáo trên bảng [https://phabricator.wikimedia.org/tag/serviceops/ của nhóm Vận hành Dịch vụ]. * Việc triển khai MediaWiki Train sẽ tạm dừng trong hai tuần cuối cùng của năm 2025: ngày 22 và 29 tháng 12. Các khung thời gian backport cũng sẽ tạm ngưng từ thứ Hai, ngày 22 tháng 12 năm 2025 đến thứ Năm, ngày 2 tháng 1 năm 2026. "Backport window" là khoảng thời gian được lên lịch để bổ sung các nội dung như bản vá lỗi và thay đổi cấu hình. Hiện vẫn còn bảy đợt triển khai MediaWiki Train nữa trong năm 2025. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/SMWTEAES4SDLDUSK4HMWNBSKNCXZAWYN/] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.45/wmf.26|MediaWiki]] '''Chuyên sâu''' * Năm 2025, Quỹ Wikimedia báo cáo rằng các hệ thống AI và công cụ tìm kiếm ngày càng sử dụng nội dung từ Wikipedia mà không dẫn người dùng quay lại trang, góp phần khiến lượng lượt xem từ người dùng thực giảm 8% so với năm 2024. Sau khi phát hiện các bot giả dạng người dùng thật, Wikimedia đã cập nhật dữ liệu truy cập để phản ánh sự thay đổi này. Bạn có thể đọc thêm về xu hướng người dùng hiện nay trên Wikipedia trong [[diffblog:2025/10/17/new-user-trends-on-wikipedia/|bài viết trên blog Diff]]. '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/45|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2025-W45"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:34, ngày 3 tháng 11 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29552512 --> == Bản tin Kỹ thuật: Tuần 46-2025 == <section begin="technews-2025-W46"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/46|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' [[File:Talk pages default look (April 2023).jpg|thumb|alt=Hình chụp những thay đổi về mặt trực quan được thực hiện trên trang thảo luận|Ví dụ về trang thảo luận với thiết kế mới, bằng tiếng Pháp.]] * Kể từ ngày 12 tháng 11, người dùng sẽ nhận thấy sự thay đổi về [[m:Special:MyLanguage/Talk pages project/Feature summary#Usability improvements|giao diện của các trang thảo luận]] trên [[Phab:T379264|một số trang Wikipedia]]. Hầu hết [[phab:T392121|toàn bộ các wiki]] đã có được thay đổi về mặt thiết kế này; những thay đổi này sẽ được thực hiện sau trên [[phab:T409297|Wikipedia tiếng Anh]]. Bạn có thể đọc thêm [[diffblog:2024/05/02/making-talk-pages-better-for-everyone/|trên ''Diff'']]. Người dùng có thể chọn không thực hiện thay đổi này [[Special:Preferences#mw-prefsection-editing|trong tùy chọn người dùng của mình]] ở tùy chọn "{{int:discussiontools-preference-visualenhancements}}". [https://phabricator.wikimedia.org/T379264] * MediaWiki nay có thể hiển thị [[mw:Special:MyLanguage/Help:Protection indicators|chỉ báo trên trang]] tự động khi một trang bị khóa. Tính năng này được tắt theo mặc định. Nó có thể được bật theo [[m:Special:MyLanguage/Requesting wiki configuration changes|yêu cầu của cộng đồng]]. [https://phabricator.wikimedia.org/T12347] * Việc sử dụng các nút "{{int:showpreview}}" hoặc "{{int:showdiff}}" trong trình soạn thảo mã nguồn nay sẽ đi kèm một số tham số URL nhất định như '[[mw:Special:MyLanguage/Manual:Parameters to index.php#useskin|useskin]]', '[[mw:Special:MyLanguage/Manual:Parameters to index.php#uselang|uselang]]' và '[[mw:Special:MyLanguage/Help:Section#Editing sections|section]]'. Bản cập nhật này đồng thời cũng sửa một vấn đề mà, nếu trình duyệt bị sập khi đang xem trước sửa đổi một đề mục duy nhất, việc lưu sửa đổi này có thể ghi đè toàn bộ trang chỉ bằng nội dung của đề mục đó. [https://phabricator.wikimedia.org/T62744][https://phabricator.wikimedia.org/T24029][https://phabricator.wikimedia.org/T155097] * Các wiki Wikivoyage có thể dùng [[mw:Special:MyLanguage/Help:Extension:Kartographer#Markers and counters|điểm đánh dấu bản đồ bằng màu trong nội dung văn bản của bài viết]]. Nội dung văn bản của những điểm đánh dấu đó nay sẽ được hiển thị bằng màu đen hoặc trắng tương phản, thay vì luôn luôn là màu trắng. Cộng đồng có thể loại bỏ các phương pháp giải quyết cục bộ cho vấn đề này. [https://phabricator.wikimedia.org/T369454] * Tab Hoạt động trên ứng dụng Wikipedia dành cho Android nay có sẵn cho tất cả người dùng. Tab mới này cung cấp thông tin chuyên sâu được cá nhân hóa về hoạt động đọc, sửa đổi, và quyên góp, đồng thời đơn giản hóa việc điều hướng và giúp cho việc sử dụng ứng dụng trở nên hấp dẫn hơn. [https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/Android/Activity_Tab_Experiment] * Nhóm Phát triển Độc giả (Reader Growth) chuẩn bị khởi động thử nghiệm mang tên "Duyệt hình ảnh" để kiểm tra cách giúp người đọc dễ dàng duyệt và khám phá hình ảnh trên các bài viết Wikipedia hơn. Thử nghiệm này, một thử nghiệm A/B dành riêng cho thiết bị di động, sẽ bắt đầu được thực hiện vào tuần từ ngày 17 tháng 11 và sẽ kéo dài trong bốn tuần, ảnh hưởng đến 0,05% người dùng trên wiki tiếng Anh. Thử nghiệm này đã bắt đầu vào ngày 3 tháng 11 trên các wiki tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Indonesia và tiếng Việt, ảnh hưởng đến tối đa 10% người dùng trên những wiki này. [https://www.mediawiki.org/wiki/Readers/Reader_Growth/WE3.1.3_Image_Browsing] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ như đã khắc phục việc không thể khóa tài khoản trên trang web dành cho di động. [https://phabricator.wikimedia.org/T256185] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * [[wikitech:Help talk:Toolforge/Toolforge standards committee#November 2025 committee nominations|Wikitech đang mở đề cử]] chọn thành viên mới của [[wikitech:Help:Toolforge/Toolforge standards committee|Ủy ban tiêu chuẩn của Toolforge]]. Ủy ban này giám sát [[wikitech:Help:Toolforge/Right to fork policy|Chính sách quyền sử dụng bản sao]] và [[wikitech:Help:Toolforge/Abandoned tool policy|Chính sách cho công cụ bị bỏ rơi]] của Toolforge cùng nhiều nhiệm vụ khác. Đề cử sẽ tiếp tục mở đến hết ngày 28 tháng 11 năm 2025. * [[w:JSON Web Token#Standard fields|Trường bên cung cấp JWT]] trong [[mw:Special:MyLanguage/OAuth/For Developers#OAuth 2|mã truy cập OAuth 2]] dành cho [[m:Special:MyLanguage/Help:Unified login|wiki SUL]] (đăng nhập trung ương) đã được thay đổi thành <code><nowiki>https://meta.wikimedia.org</nowiki></code>. Các mã truy cập cũ vẫn sẽ hoạt động. [https://phabricator.wikimedia.org/T399199] * [[w:JSON Web Token#Standard fields|Trường chủ đề JWT]] trong [[mw:Special:MyLanguage/OAuth/For Developers#OAuth 2|mã truy cập OAuth 2]] sẽ sớm thay đổi từ <code><user id></code> sang <code dir=ltr style="white-space:nowrap">mw:<identity type>:<user id></code>, trong đó <code><identity type></code> thường là <code dir=ltr>CentralAuth:</code><!-- not a typo --> (đối với [[m:Special:MyLanguage/Help:Unified login|wiki SUL]]) hoặc <code dir=ltr style="white-space:nowrap">local:<wiki id></code> (đối với các wiki khác). Điều này là nhằm tránh xung đột giữa các loại ID người dùng khác nhau, và để mã truy cập OAuth 2 và cookie <code>sessionJwt</code> trở nên giống nhau hơn. Các mã truy cập cũ vẫn sẽ hoạt động. [https://phabricator.wikimedia.org/T399199] * Các thông điệp cấm của MediaWiki ([[MediaWiki:Blockedtext|blockedtext]], [[MediaWiki:Blockedtext-partial|blockedtext-partial]], [[MediaWiki:Autoblockedtext|autoblockedtext]], [[MediaWiki:Systemblockedtext|systemblockedtext]], [[MediaWiki:Blockedtext-tempuser|blockedtext-tempuser]], [[MediaWiki:Autoblockedtext-tempuser|autoblockedtext-tempuser]]) nay hỗ trợ thêm các tham số bổ sung nhằm chỉ ra xem người dùng đó có bị cấm sửa đổi trang thảo luận của mình <code><nowiki>$9</nowiki></code> hoặc gửi thư điện tử cho người dùng khác <code><nowiki>$</nowiki><nowiki>10</nowiki></code> hay không. [https://phabricator.wikimedia.org/T285612] * Nhánh <code>REL1_45</code> cho lõi MediaWiki và từng phần mở rộng cùng giao diện trong git của Wikimedia đã được tạo. Đây là bước đầu tiên trong quá trình phát hành phiên bản MediaWiki 1.45.0, được lên kế hoạch triển khai vào cuối tháng 11 năm 2025. Nếu bạn đang thực hiện việc khắc phục lỗi nghiêm trọng hoặc thực hiện tính năng mới, bạn có thể cần phải lưu ý thay đổi này. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/ZUY7TY3Z6XPZWZVAZV63OPO5OW52Q6GE/] * Quy trình tạo bản dump CirrusSearch đã được cập nhật do hiệu suất bị chậm. Nếu bạn gặp bất kỳ sự cố nào khi chuyển sang bản dump thay thế, vui lòng liên hệ với Nhóm Nền tảng Tìm kiếm để được hỗ trợ. [https://phabricator.wikimedia.org/T366248][https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/3KQPOR6ACVN6OVLMLZPIBXQSWQKW4E3K/] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.2|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/46|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2025-W46"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:38, ngày 10 tháng 11 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29606150 --> == Bản tin Kỹ thuật: Tuần 47-2025 == <section begin="technews-2025-W47"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/47|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' * [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đang thử nghiệm tính năng [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4_Reading lists|danh sách đọc trên trang di động]], cho phép người đọc đã đăng nhập chưa thực hiện sửa đổi nào có thể lưu danh sách bài viết riêng tư để đọc sau. Thử nghiệm đang được thực hiện trên các Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Indonesia, và tiếng Việt kể từ tuần ngày 10 tháng 11, và sẽ bắt đầu trên Wikipedia tiếng Anh trong tuần ngày 17 tháng 11. * Người dùng không thể nhận được mã xác nhận qua thư điện tử khi đăng nhập nay có thể nhờ hỗ trợ bằng cách gửi biểu mẫu trên trang đặc biệt mới. Cập nhật này là một phần của sáng kiến [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]]. Nếu tài khoản của bạn có địa chỉ thư điện tử, hãy đảm bảo rằng bạn vẫn có quyền truy cập vào nó. Trong quá trình đăng nhập từ thiết bị hoặc địa điểm mới mà không có 2FA, bạn có thể được yêu cầu nhập mã 6 ký tự được gửi từ thư điện tử để hoàn tất đăng nhập. [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security#Why are you requiring me to enter a code from my email to log in? Can I opt out of this?|Tìm hiểu thêm]]. * Một wiki mới đã được tạo ra: {{int:project-localized-name-group-wikisource}} tiếng [[d:Q13324|Minangkabau]] ([[s:min:|<code>s:min:</code>]]) [https://phabricator.wikimedia.org/T408317] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Là một phần của dự án [[mw:Special:MyLanguage/Parsoid/Parser Unification|Hợp nhất Trình Phân tích Cú pháp]], Nhóm Chuyển đổi Nội dung đã triển khai Parsoid làm trình phân tích cú pháp mặc định cho nhiều trang Wikipedia có lưu lượng truy cập thấp và đang chuẩn bị tiếp tục bước tiếp theo để triển khai đến những trang có lưu lượng truy cập cao. Tin nhắn này là lời mời cho bạn tham gia vào Parsoid, như được miêu tả trong tài liệu [[mw:Special:MyLanguage/Help:Extension:ParserMigration|Extension:ParserMigration]], và tìm ra bất kỳ vấn đề nào mà bạn có thể gặp phải với quy trình làm việc của mình khi sử dụng bot, tiện ích hoặc đoạn mã người dùng. Hãy cho chúng tôi biết thông qua liên kết ''"Báo cáo lỗi hiển thị"'' trên thanh bên Công cụ hoặc tạo một tác vụ phab và gắn thẻ [[phab:project/view/5846|Nhóm Chuyển đổi Nội dung trên Phabricator]]. * Dự án Công cụ Không được Hỗ trợ: Một vài vấn đề với [[:c:Special:MyLanguage/Commons:Video2commons|Video2Commons]] đã được giải quyết, bao gồm lỗi tải lên liên quan đến tên tập tin, nhập video bị đen, và xử lý việc thử lại. Hỗ trợ cho AV1 cũng đã được thêm vào. Những công việc đang được tiến hành tập trung vào tính ổn định của backend, lỗi ffmpeg, nhập phụ đề, xử lý siêu dữ liệu, và tải lên danh sách phát. Để theo dõi các tác vụ cụ thể, hãy kiểm tra [[phab:tag/video2commons/|bảng tác vụ trên Phabricator]]. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.3|MediaWiki]] '''Các cuộc họp và sự kiện''' * Hãy lưu lịch ngay cho Hackathon Wikimedia tiếp theo sẽ diễn ra tại Milan, Ý từ ngày 1–3 tháng 5 năm 2026. Cổng đăng ký sẽ được mở vào tháng 1 năm 2026. [https://pretix.eu/wikimedia/Hackathon-2026/ Đơn đăng ký nhận học bổng hiện đang được mở], và sẽ đóng vào ngày 28 tháng 11 năm 2025. Nếu bạn có bất kỳ câu hỏi nào, vui lòng gửi thư đến <bdi lang="en" dir="ltr">hackathon@wikimedia.org</bdi>. '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/47|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2025-W47"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:26, ngày 17 tháng 11 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29627455 --> == <span lang="en" dir="ltr">Reminder: Help us decide the name of the new Abstract Wikipedia project</span> == <div lang="en" dir="ltr"> <section begin="function2"/> {{int:Hello}}. Reminder: Please help to choose name for the new Abstract Wikipedia wiki project. The finalist vote starts today. The finalists for the name are: <span lang="en" dir="ltr" class="mw-content-ltr">Abstract Wikipedia, Multilingual Wikipedia, Wikiabstracts, Wikigenerator, Proto-Wiki</span>. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki. {{Int:Feedback-thanks-title}} <section end="function2"/> </div> -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 14:23, ngày 20 tháng 11 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:Sannita (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29583860 --> == Bản tin Kỹ thuật: Tuần 48-2025 == <section begin="technews-2025-W48"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/48|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' * Tuần trước, [[mw:Special:MyLanguage/Wikimedia Search Platform|Nhóm Tìm kiếm Wikimedia]] đã tạo lại chức năng của tiện ích "DWIM" (Do What I Mean - Làm những gì bạn muốn) trên máy chủ, cho Wikipedia tiếng Nga và tiếng Do Thái. Tính năng này bổ sung gợi ý đa bàn phím vào gợi ý trên hộp tìm kiếm tiêu chuẩn. Ví dụ, khi tìm kiếm ''<span lang="und" dir="ltr">cxfcnmt</span>'' trên Wikipedia tiếng Nga giờ đây sẽ bổ sung thêm gợi ý cho ''<span lang="ru" dir="ltr">счастье</span>'' ("sự hạnh phúc") mà người dùng có thể có ý định tìm tới. Họ dự kiến sẽ kích hoạt tính năng này trên các wiki khác bằng tiếng Nga và tiếng Do Thái trong tuần này. [https://phabricator.wikimedia.org/T408734] * Cuối tuần này, người dùng [[Special:Preferences#mw-prefsection-betafeatures|tính năng beta]] "{{int:codemirror-beta-feature-title}}" sẽ có thể sử dụng tính năng tô màu cú pháp trong [[mw:Special:MyLanguage/Help:DiscussionTools|Công cụ Thảo luận]]. Điều này yêu cầu phải thiết lập tùy chọn "{{int:discussiontools-preference-sourcemodetoolbar}}". [https://phabricator.wikimedia.org/T407918] * [[mw:Special:MyLanguage/Help:Extension:CampaignEvents|Phần mở rộng chiến dịch sự kiện]] – một bộ công cụ để phối hợp tổ chức sự kiện và các hoạt động cộng tác khác trên wiki nay đã được triển khai tới tất cả các wiki của Wikimedia. Một tính năng mới được gọi là [[m:Special:MyLanguage/CampaignEvents/Collaborative contributions|Đóng góp cộng tác]] cũng đã được thêm vào để giúp những người tổ chức và người tham gia thấy được tác động của những hoạt động đó. Hãy tham gia [[m:Special:MyLanguage/Event:Connection learning session 3|buổi học sắp tới]] để xem tính năng mới đó hoạt động thực tế như thế nào và chia sẻ phản hồi của bạn. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:24}} {{PLURAL:24|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho CodeReviewBot ngừng hoạt động hiện đã được giải quyết. [https://phabricator.wikimedia.org/T410417] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Người dùng API của Wikimedia có thể tham gia nghiên cứu khả năng sử dụng để giúp xác thực thiết kế mới dành cho chỗ thử REST API của Wikimedia. Những người có hứng thú tham gia cần điền vào [https://wikimediafoundation.limesurvey.net/487662 biểu mẫu khảo sát tham gia] này. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/IREJRRWTZTGCYWQHDMSNJFTQAEPOOAE3/] * Nhóm Giao diện MediaWiki đang trong quá trình ngừng hỗ trợ các bảng định dạng (stylesheet) kiểu XSLT trong Action API. Hỗ trợ cho <code dir=ltr>format=xml'''&xlst={stylesheet}'''</code> sẽ bị loại bỏ khỏi các dự án Wikimedia vào cuối tháng 11 năm 2025. Ngoài ra, nó sẽ sớm mặc định bị vô hiệu hóa trong các phiên bản phát hành của MediaWiki: v1.43 (LTS), v1.44, và v1.45. Hỗ trợ cho các bảng định dạng kiểu XSLT sẽ bị loại bỏ hoàn toàn khỏi MediaWiki v1.46 (dự kiến phát hành vào khoảng thời gian từ tháng 4 đến tháng 5 năm 2026). [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/5AX7UWAVVUNUSBOIRHMNOKWOZ5EZI3JX/] * Điểm cuối kế thừa của WDQS ([https://query-legacy-full.wikidata.org/ query-legacy-full.wikidata.org]) sẽ ngừng hoạt động vào cuối tháng 12 năm 2025, và sẽ chính thức bị vô hiệu hóa vào ngày 7 tháng 1 năm 2026. Sau ngày này, người dùng sẽ nhận thấy những yêu cầu đến query.wikidata.org mà yêu cầu toàn bộ biểu đồ bị lỗi hoặc trả về kết quả không hợp lệ nếu chúng không được viết lại để sử dụng liên kết SPARQL. Nhóm khuyên người dùng cần đảm bảo các công cụ và quy trình làm việc sử dụng các điểm cuối WDQS được hỗ trợ (<span dir=ltr><nowiki>https://query.wikidata.org/</nowiki></span> - Biểu đồ chính hoặc <span dir=ltr><nowiki>https://query-scholarly.wikidata.org/</nowiki></span> - Biểu đồ học thuật). Để được hỗ trợ chuyển đổi các trường hợp sử dụng (use case), vui lòng xem lại các trang [[d:Special:MyLanguage/Wikidata:Data_access|Truy cập Dữ liệu]] và [[d:Wikidata:Request_a_query|Yêu cầu Truy vấn]] để biết thêm thông tin và được hỗ trợ về các phương thức truy cập thay thế. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.4|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/48|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2025-W48"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:56, ngày 24 tháng 11 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29702226 --> == Bản tin Kỹ thuật: Tuần 49-2025 == <section begin="technews-2025-W49"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/49|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' * Bảng Nhìn lại Một Năm Wikipedia 2025 sẽ có mặt vào ngày 2 tháng 12 dành cho người dùng ứng dụng Wikipedia trên iOS và Android, gồm thông tin chuyên sâu được cá nhân hóa, những điểm nổi bật để đọc được cập nhật, cùng thiết kế đã được làm mới. Tìm hiểu thêm trên [[mw:Special:MyLanguage/Wikimedia Apps/Team/Wikipedia Year in Review/Updates|trang dự án]] của tính năng nhìn lại này. * Nhóm Tăng trưởng đang nỗ lực cải thiện nội dung và cách trình bày của Email Xác minh được gửi tới người dùng mới để chúng trở nên thân thiện, hữu ích và có thêm nhiều thông tin hơn. Một số văn bản mới đã được soạn thảo cho thử nghiệm A/B và bạn có thể giúp đỡ bằng cách dịch chúng. Xem [[phab:T396155|Phabricator]]. * Tính năng [[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|Thêm liên kết]] nay sẽ được triển khai tới Wikipedia tiếng Nhật, tiếng Urdu và tiếng Trung vào ngày 2 tháng 12. Thêm liên kết được dựa trên mô hình dự đoán nhằm gợi ý liên kết cần được thêm vào bài viết. Trong khi tính năng này đã có mặt trên hầu hết các trang Wikipedia, mô hình dự đoán đó không thể hỗ trợ một số ngôn ngữ nhất định. Một mô hình mới đã được phát triển để xử lý những ngôn ngữ này, và mô hình đó sẽ dần được triển khai sang các trang Wikipedia khác theo thời gian. Nếu bạn muốn được biết thêm thông tin, vui lòng liên hệ [[mw:user:Trizek (WMF)|Trizek (WMF)]]. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:34}} {{PLURAL:34|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà hộp tìm kiếm trên một số trang Commons không hiển thị kết quả nào do việc chuyển đổi từ SpecialSearch sang MediaSearch, hiện đã được giải quyết. [https://phabricator.wikimedia.org/T399476] * Hai wiki mới đã được tạo ra: ** {{int:project-localized-name-group-wikipedia}} tiếng [[d:Q36846|Toki Pona]] ([[w:tok:|<code>w:tok:</code>]]) [https://phabricator.wikimedia.org/T404457] ** {{int:project-localized-name-group-wikiquote}} tiếng [[d:Q33655|Pidgin Nigeria]] ([[q:pcm:|<code>q:pcm:</code>]]) [https://phabricator.wikimedia.org/T408318] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.5|MediaWiki]] '''Chuyên sâu''' * Quỹ Wikimedia đang trong giai đoạn đầu của việc khám phá các phương pháp tiếp cận cho '''Chỉ dẫn bài viết'''. Sáng kiến này nhằm mục đích xác định các phương pháp can thiệp có thể giúp các biên tập viên mới dễ dàng hiểu và áp dụng các quy tắc và chính sách hiện hành của Wikipedia khi tạo bài viết. Dự án đang trong giai đoạn khám phá và thiết kế thử nghiệm giai đoạn đầu. Tất cả các thành viên cộng đồng được khuyến khích [[mw:Special:MyLanguage/Article guidance|tìm hiểu thêm]] về dự án, và chia sẻ suy nghĩ của họ trên [[mw:Special:MyLanguage/Talk:Article guidance|trang thảo luận này]]. '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/49|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2025-W49"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:58, ngày 1 tháng 12 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29732328 --> == Bản tin Kỹ thuật: Tuần 50-2025 == <section begin="technews-2025-W50"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/50|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Nổi bật trong tuần''' * Bất kỳ ai muốn bảo mật tài khoản người dùng của mình nay có thể sử dụng tính năng [[m:Special:MyLanguage/Help:Two-factor authentication|xác thực hai yếu tố]] (2FA). Tính năng này có sẵn cho tất cả người dùng của toàn bộ các dự án Wikimedia. Đây là một phần của sáng kiến [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]]. Sau này, 2FA sẽ được yêu cầu đối với tất cả người dùng có thể thực hiện các hành động mang tính nhạy cảm về bảo mật hoặc quyền riêng tư. '''Cập nhật cho biên tập viên''' * Tiếp nối đợt triển khai lần trước, tính năng [[mw:Special:MyLanguage/Help:Growth/Tools/Add a link|Thêm liên kết]], một tính năng cho phép biên tập viên thêm liên kết được đề xuất trong quá trình sửa đổi, sẽ có mặt trên [[Phab:T410469|33 trang Wikipedia]] kể từ ngày 9 tháng 12. Việc mở rộng này có được nhờ mô hình dự đoán mới nay hỗ trợ tất cả các ngôn ngữ, kể cả những ngôn ngữ mà chưa được đề cập trước đây. Dù tính năng này đã có mặt trên hầu hết các trang Wikipedia được một thời gian, nhưng lần triển khai này sẽ giúp chúng tôi tiến gần hơn đến việc sử dụng mô hình được cải tiến này ở mọi nơi. Nếu bạn có bất kỳ câu hỏi nào hoặc muốn được biết thêm thông tin chi tiết vui lòng liên hệ với [[mw:user:Trizek (WMF)|Trizek (WMF)]]. * Tuần trước, [[mw:Special:MyLanguage/Wikimedia Search Platform|nhóm Nền tảng Tìm kiếm]] đã thêm gợi ý tìm kiếm [[w:vi:Chuyển tự|được chuyển tự]] khi bạn nhập tới các wiki bằng tiếng Georgia. Nếu chỉ có một vài gợi ý tìm kiếm thông thường, thì các truy vấn bằng chữ Latinh hoặc Kirin [[phab:T127003|nay sẽ được viết lại thành chữ Georgia]] để có thể tìm kiếm được nhiều kết quả trùng khớp hơn. Ví dụ, tìm kiếm <bdi lang="ka-Latn" dir="ltr">''bedniereba''</bdi> hoặc <bdi lang="ka-Cyrl" dir="ltr">''бедниереба''</bdi> nay sẽ gợi ý bài viết hiện có về <bdi lang="ka" dir="ltr">ბედნიერება</bdi> ("sự hạnh phúc"). Bạn có thể đề xuất những ngôn ngữ khác mà việc gợi ý được chuyển tự có thể hữu ích [[phab:T375215|trên Phabricator]] để dùng cho quá trình phát triển sau này. * Cuối tuần này, một thử nghiệm có kiểm soát sẽ bắt đầu dành cho các biên tập viên trên 100 trang Wikipedia lớn nhất khi đang thực hiện sửa đổi một đề mục bằng trình soạn thảo trực quan trên trang web di động. 50% số biên tập viên đó sẽ nhận thấy nút "Sửa đổi toàn bộ trang" mới cho phép họ mở rộng phiên sửa đổi của mình lên toàn bộ trang đó. Tính năng này nhằm mục đích giúp người dùng trên trang web di động sửa đổi bất kỳ đề mục nào trong bài viết một cách dễ dàng hơn, bất kể việc họ chạm vào biểu tượng sửa đề mục nào để bắt đầu sửa đổi. Thử nghiệm này sẽ kéo dài khoảng 4 tuần. Bạn có thể tìm hiểu [[phab:T409112|thêm thông tin]] về dự án này. * Cuối tuần này, [[mw:Special:MyLanguage/Readers/Reader Growth|nhóm Tăng trưởng Độc giả]] sẽ khởi động [[mw:Special:MyLanguage/Readers/Reader Growth/WE3.1.14 Expanded Mobile Sections|thử nghiệm trên trang web di động]] để mở rộng tất cả đề mục bài viết theo mặc định (hiện giờ chúng được mặc định thu gọn lại) và ghim tiêu đề của đề mục mà người dùng hiện đang đọc lên đầu trang. Thử nghiệm này sẽ ảnh hưởng tới 10% người dùng trên Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Pháp, tiếng Indonesia và tiếng Việt. [https://phabricator.wikimedia.org/T409485] * [[mw:Special:MyLanguage/Wikimedia Apps/Team/Wikipedia Year in Review/2025 Year in Review|Tổng kết Một Năm Wikipedia 2025]], một tính năng trong ứng dụng Wikipedia dành cho thiết bị di động (iOS và Android) nhằm cung cấp cho người dùng bản tóm tắt được cá nhân hóa về mức độ tương tác của họ với Wikipedia xuyên suốt trong một năm, nay đã có mặt trên ứng dụng iOS và Android. Phiên bản này bao gồm những thông tin chuyên sâu được mở rộng và cá nhân hóa, cải thiện những điểm nổi bật trong quá trình đọc, thông điệp mới cho nhà quyên góp, cùng thiết kế được cập nhật. Hãy mở ứng dụng để xem chuyên mục Tổng kết Năm và khám phá hành trình đọc của bạn trong năm 2025 nhé. * Một lỗi phần mềm xảy ra gần đây khiến cho các sửa đổi được thực hiện bằng Trình Soạn thảo Trực quan thực hiện những thay đổi không mong muốn với mã nguồn wiki, trong đó có việc loại bỏ khoảng trắng và thay thế các dấu cách bằng dấu gạch dưới trong các liên kết wiki bên trong chú thích. Vấn đề này đã được giải quyết một phần vào tuần trước, và việc giải quyết vấn đề vẫn đang tiếp tục được thực hiện. Các biên tập viên sử dụng Trình Soạn thảo Trực quan trong các ngày từ 28 tháng 11 đến 2 tháng 12 nên kiểm tra lại sửa đổi của mình để tìm ra những thay đổi ngoài ý muốn. [https://phabricator.wikimedia.org/T411238] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, vấn đề về việc xử lý không đúng các đường dẫn URL được sao chép từ thanh địa chỉ của người dùng Microsoft Edge đã được giải quyết. [https://phabricator.wikimedia.org/T341281] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Bắt đầu từ tuần này, người dùng [[Special:Preferences#mw-prefsection-betafeatures|tính năng beta]] "{{int:codemirror-beta-feature-title}}" sẽ sử dụng [[mw:Special:MyLanguage/Help:Extension:CodeMirror|CodeMirror]] làm trình sửa đổi dành cho các kiểu nội dung Lua, JavaScript, CSS, JSON và Vue, thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]]. Với thay đổi này, [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Linting|các linter]] sẽ được nâng cấp. Đây là một phần trong nỗ lực lớn hơn nhằm thay thế CodeEditor và mang tới trải nghiệm sửa đổi mã nguồn một cách nhất quán. [https://phabricator.wikimedia.org/T373711] * Các nhà phát triển được khuyến khích tham gia [https://wikimediafoundation.limesurvey.net/552643 Khảo sát Mức độ Hài lòng của Nhà phát triển năm 2025], hiện vẫn đang được mở đến hết ngày 5 tháng 1 năm 2026. Nếu bạn tham gia vào việc xây dựng phần mềm cho hệ sinh thái Wikimedia và muốn chia sẻ kinh nghiệm hoặc phản hồi của mình, thì chúng tôi sẽ rất trân trọng sự tham gia của bạn. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/W4WBKO6Q55UWWCCSFWQATKEXBEHP3QNR/] * Tuần này không có phiên bản MediaWiki mới nào. '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/50|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2025-W50"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:45, ngày 8 tháng 12 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29738112 --> == Bản tin Kỹ thuật: Tuần 51-2025 == <section begin="technews-2025-W51"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/51|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:18}} {{PLURAL:18|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một trong số đó là việc giải quyết vấn đề khi tài khoản tạm thời chèn liên kết URL ngoài, việc này kích hoạt yêu cầu hCaptcha trong nhiều trường hợp hơn so với dự định, và không hiển thị popup cần thiết trong lần thử xuất bản sửa đổi đầu tiên. [https://phabricator.wikimedia.org/T411927] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * <span class="mw-translate-fuzzy">Để cải thiện hiệu suất cho cơ sở dữ liệu và trang web, các liên kết ngoài tới các dự án Wikimedia sẽ không còn được lưu trữ trong cơ sở dữ liệu. Điều này có nghĩa là chúng sẽ không thể được tìm thấy trong [[{{#special:LinkSearch}}]], sẽ không được kiểm tra bởi Danh sách đen về spam hoặc Bộ lọc Sai phạm dưới dạng liên kết mới, và sẽ không có trong bảng <code dir=ltr>externallinks</code> trên các bản sao cơ sở dữ liệu. Trong tương lai nó có thể được mở rộng sang những trang web khác đáng tin cậy được liên kết nhiều trên cơ sở từng wiki, chẳng hạn như liên kết Creative Commons trên Wikimedia Commons.</span> [https://phabricator.wikimedia.org/T405005] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.7|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/51|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2025-W51"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:03, ngày 15 tháng 12 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29796010 --> == Bản tin Kỹ thuật: Tuần 52-2025 == <section begin="technews-2025-W52"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2025/52|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' * Kể từ tháng 1, các bộ lọc sai phạm [[mw:Special:MyLanguage/Extension:AbuseFilter/Access flags|có thể được thiết lập]] để tự động loại bỏ chi tiết bộ lọc chẳng hạn như quy tắc và danh sách các sửa đổi và tác vụ thực hiện được ghi lại. Điều này sẽ giúp người giám sát sử dụng các bộ lọc sai phạm để ngăn chặn doxxing hoặc nội dung khác có thể bị loại bỏ. [https://phabricator.wikimedia.org/T290324] * Số tiếp theo của Bản tin Kỹ thuật sẽ được phát hành vào ngày 12 tháng 1 năm 2026 do trùng vào kỳ nghỉ cuối năm. Xin cảm ơn tất cả các biên dịch viên cùng những người đã gửi nội dung hoặc phản hồi trong năm nay. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:16}} {{PLURAL:16|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, sự cố xảy ra khiến cho ứng dụng bị sập khi chạm vào mục "Bước Đầu tiên" trong mục Nhìn lại Một năm trên ứng dụng Wikipedia dành cho Android nay đã được giải quyết, và tính năng này được mở như mong đợi. [https://phabricator.wikimedia.org/T411546] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Những thành phần giao diện như khác biệt giữa các phiên bản và thể loại được tạo bởi MediaWiki từng có thuộc tính <code dir=ltr>data-mw="interface"</code> để phân biệt với nội dung wiki. Thuộc tính này đã được thay thế bằng <code dir=ltr>data-mw-interface=""</code>, nhằm tránh khả năng gây xung đột với những thuộc tính <code dir=ltr>data-mw</code> khác được tạo bởi Parsoid. [https://phabricator.wikimedia.org/T409187] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Không có phiên bản MediaWiki mới nào trong tuần này hoặc tuần tới. '''Các cuộc họp và sự kiện''' * [[mw:Wikimedia Hackathon Northwestern Europe 2026|Wikimedia Hackathon Tây Bắc Âu năm 2026]] sẽ diễn ra vào các ngày 13-14 tháng 3 năm 2026 tại Arnhem, Hà Lan. Đơn đăng ký vừa được mở vào giữa tháng 12 và sẽ đóng vào giữa tháng 1 hoặc có thể đóng sớm hơn nếu hết chỗ. Do sự kiện giới hạn khoảng 100 người tham gia, chúng tôi khuyến khích bạn đăng ký thật sớm. '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2025/52|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2025-W52"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:45, ngày 22 tháng 12 năm 2025 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29831856 --> == Bản tin Kỹ thuật: Tuần 03-2026 == <section begin="technews-2026-W03"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/03|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Nổi bật trong tuần''' * Quỹ Wikimedia đã chia sẻ một số câu hỏi định hướng cho Kế hoạch Thường niên giai đoạn tháng 7 năm 2026–tháng 6 năm 2027 trên [[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2026-2027/Product & Technology OKRs|Meta]] và ''[[diffblog:2025/12/10/shaping-wikimedia-foundations-2026-2027-annual-goals-key-questions-for-the-wikimedia-movement/|Diff]]''. Những câu hỏi này tập trung vào những xu hướng toàn cầu, những thử nghiệm nhanh và hiệu quả hơn, hỗ trợ tốt hơn cho người mới, tăng cường năng lực cho biên tập viên và người dùng có quyền nâng cao, cải thiện sự cộng tác giữa các dự án, cũng như phát triển và duy trì lượng người đọc. Mọi phản hồi và ý kiến đóng góp đều được hoan nghênh trên [[m:Talk:Wikimedia Foundation Annual Plan/2026-2027|trang thảo luận]]. '''Cập nhật cho biên tập viên''' * Là một phần của công việc hiện do nhóm Công nghệ Cộng đồng thực hênj xoay quanh dự án [[m:Special:MyLanguage/Community Wishlist/W372|Nhiều danh sách theo dõi]] (Multiple watchlists), việc hiển thị của tính năng [[Special:EditWatchlist|Sửa đổi Danh sách theo dõi]] (EditWatchlist) sẽ được cập nhật làm bước đầu tiên hướng tới việc có được nhiều danh sách theo dõi. Ngoài ra, việc phân trang của trang [[Special:Search|Tìm kiếm]] cũng sẽ được cập nhật như là một phần của công việc liên quan đến mong muốn [[m:Special:MyLanguage/Community Wishlist/W186|Cải tiến phân trang / điều hướng trang]]. [https://phabricator.wikimedia.org/T411596] * [[m:Special:GlobalWatchlist|Danh sách theo dõi toàn cục]] là [[mw:Special:MyLanguage/Extension:GlobalWatchlist|phần mở rộng]] của MediaWiki cho phép bạn xem danh sách theo dõi của bạn từ các wiki khác nhau trên cùng một trang. Danh sách này gần đây đã được cập nhật để trông giống như [[Special:Watchlist|Danh sách theo dõi]] thông thường hơn, chẳng hạn như tiền xử lý các tài khoản tạm thời để che giấu địa chỉ IP (trong đó có việc chuyển hướng liên kết người dùng đến các trang đóng góp), in đậm tiêu đề trang, và mở các liên kết trong phần tóm lược sửa đổi và thẻ trong tab trình duyệt mới. [https://phabricator.wikimedia.org/T398361][https://phabricator.wikimedia.org/T298919][https://phabricator.wikimedia.org/T273526][https://phabricator.wikimedia.org/T286309] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, vấn đề mà việc cấm tài khoản toàn cục không có tùy chọn cấm gửi thư điện tử, nay đã được giải quyết, và sẽ có thể sử dụng kể từ tuần ngày 13 tháng 1. [https://phabricator.wikimedia.org/T401293] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * [[mw:Special:MyLanguage/VisualEditor/Citation tool|Công cụ chú thích của Soạn thảo Trực quan]] và [[mw:Special:MyLanguage/Help:Reference Previews|Xem trước Chú thích]] nay hỗ trợ kiểu chú thích dạng "bản đồ". [https://phabricator.wikimedia.org/T411083] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.10|MediaWiki]]/[[mw:MediaWiki 1.46/wmf.11|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/03|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W03"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:33, ngày 12 tháng 1 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29907192 --> == Thank You for Last Year – Join Wiki Loves Ramadan 2026 == Dear Wikimedia communities, We hope you are doing well, and we wish you a happy New Year. ''Last year, we captured light. This year, we’ll capture legacy.'' In 2025, communities around the world shared the glow of Ramadan nights and the warmth of collective iftars. In 2026, ''Wiki Loves Ramadan'' is expanding, bringing more stories, more cultures, and deeper global connections across Wikimedia projects. We invite you to explore the ''Wiki Loves Ramadan 2026'' [[m:Special:MyLanguage/Wiki Loves Ramadan 2026|Meta page]] to learn how you can participate and [[m:Special:MyLanguage/Wiki Loves Ramadan 2026/Participating communities|sign up]] your community. 📷 ''Photo campaign on '' [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan 2026|Wikimedia Commons]] If you have questions about the project, please refer to the FAQs: * [[m:Special:MyLanguage/Wiki Loves Ramadan/FAQ/|Meta-Wiki]] * [[c:Special:MyLanguage/Commons:Wiki Loves Ramadan/FAQ|Wikimedia Commons]] ''Early registration for updates is now open via the '''[[m:Special:RegisterForEvent/2710|Event page]]''''' ''Stay connected and receive updates:'' * [https://t.me/WikiLovesRamadan Telegram channel] * [https://lists.wikimedia.org/postorius/lists/wikilovesramadan.lists.wikimedia.org/ Mailing list] We look forward to collaborating with you and your community. '''The Wiki Loves Ramadan 2026 Organizing Team''' 19:45, ngày 16 tháng 1 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:ZI Jony@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29879549 --> == Bản tin Kỹ thuật: Tuần 04-2026 == <section begin="technews-2026-W04"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/04|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' * Khay được hiển thị trên [[Special:Diff|Đặc biệt:Khác]] trong chế độ xem di động đã được thiết kế lại. Giờ đây nó mặc định được thu gọn, đồng thời tích hợp một liên kết để lùi lại sửa đổi đang được hiển thị trên màn hình, giúp các biên tập viên và người duyệt bài trên điện thoại di động dễ dàng thực hiện tác vụ mà vẫn giữ giao diện thật gọn gàng. [https://phabricator.wikimedia.org/T402297] * [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi từ nhiều wiki khác nhau trên cùng một trang. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] này tiếp tục được cải thiện — nay nó có thể tự động xác định hướng văn bản (nhằm đảm bảo việc hiển thị chính xác các trang web mà có tên miền bất thường) và hiển thị chi tiết phần miêu tả cho các tác vụ được lưu trong nhật trình. Cuối tuần này, một liên kết thường trực mới cho các tác vụ tạo trang cùng các lớp CSS cho từng mục nhập sẽ được thêm vào. [https://phabricator.wikimedia.org/T412505][https://phabricator.wikimedia.org/T287929][https://phabricator.wikimedia.org/T262768][https://phabricator.wikimedia.org/T414135] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:32}} {{PLURAL:32|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà được ghi nhận trước đây trong giao diện Vector 2022 mà các liên kết anchor đích bị che khuất bởi tiêu đề cố định nay đã được giải quyết. [https://phabricator.wikimedia.org/T406114] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Như đã đề cập trong [[m:Special:MyLanguage/Tech/News/2025/44|thông báo ngừng hỗ trợ vào tháng 10 năm 2025]], nhóm Giao diện MediaWiki sẽ bắt đầu loại bỏ toàn bộ điểm cuối chuyển đổi có dấu gạch chéo ở cuối khỏi API REST của MediaWiki vào tuần từ ngày 26 tháng 1. Những thay đổi này dự kiến sẽ được triển khai tới tất cả các wiki chậm nhất vào ngày 30 tháng 1. Tất cả người dùng API đang gọi những điểm cuối này được khuyên chuyển đổi sang những phiên bản không có dấu gạch chéo ở cuối. Cả hai loại biến thể điểm cuối này đều có thể được tìm thấy, so sánh và kiểm tra sử dụng [https://test.wikipedia.org/wiki/Special:RestSandbox Chỗ thử REST]. Nếu bạn có thắc mắc hay gặp bất kỳ sự cố nào, hãy gửi yêu cầu bằng cách tạo một tác vụ trong Phabricator gửi tới [https://phabricator.wikimedia.org/project/view/6931/ bảng tin #MW-Interfaces-Team]. * Tài liệu tham khảo trực quan cho [[mw:Special:MyLanguage/Wikimedia REST API|API REST của Wikimedia]] đã được chuyển. Những yêu cầu đến các tài liệu API trước đây được lưu trữ thông qua [[mw:Special:MyLanguage/RESTBase|RESTBase]] (v.d.: <code dir=ltr>https://en.wikipedia.org/api/rest_v1/</code>) nay được chuyển hướng tới [[w:en:Special:RestSandbox|Chỗ thử REST]]. * [[mw:Special:MyLanguage/Wikidata Platform|Nhóm Nền tảng Wikidata của WMF]] (WDP) đã phát hành [[d:Special:MyLanguage/Wikidata:Wikidata Platform team/Newsletter|bản tin tháng 1 năm 2026]]. Bản tin bao gồm những cập nhật về việc ngừng hoạt động điểm cuối biểu đồ đầy đủ (full-graph) cũ, thay đổi về chính sách User-Agent, thời gian làm việc hàng tháng của kế hoạch chuyển đổi sang Blazegraph, cùng những nỗ lực nhằm giảm thiểu những lỗi hồi quy gây ra bởi việc ngừng điểm cuối cũ. Xin nhắc lại rằng bạn có thể [[m:Special:MyLanguage/Global message delivery/Targets/WDP team updates|đăng ký nhận bản tin WDP đó]]! * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.12|MediaWiki]] '''Các cuộc họp và sự kiện''' * [[mw:Wikimedia Hackathon Northwestern Europe 2026|Cuộc thi Hackathon Wikimedia khu vực Tây Bắc Châu Âu năm 2026]] sẽ diễn ra vào ngày 13-14 tháng 3 năm 2026 tại Arnhem, Hà Lan. Cổng đăng ký đã được mở vào giữa tháng 12 và sẽ sớm đóng lại hoặc đóng ngay khi đã đủ số lượng người tham gia. Đây là cuộc thi hackathon kéo dài hai ngày, tập trung vào mảng kỹ thuật và quy tụ các thành viên Wikimedia từ khắp khu vực. Hy vọng sẽ gặp lại bạn tại đó! '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/04|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W04"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 20:29, ngày 19 tháng 1 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29943403 --> == Rà soát thường niên Bộ Quy tắc Ứng xử Chung và Hướng dẫn Thực thi == <section begin="announcement-content" /> Tôi viết thư này để thông báo với bạn rằng thời gian xem xét hàng năm đối với Bộ Quy tắc Ứng xử và Hướng dẫn Thực thi hiện đã bắt đầu. Bạn có thể đưa ra các đề xuất thay đổi đến hết ngày 9 tháng 2 năm 2026. Đây là bước đầu tiên trong nhiều bước cần thực hiện cho quá trình xem xét hàng năm. [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Đọc thêm thông tin và tìm cuộc thảo luận để tham gia trên trang UCoC trên Meta]]. [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Ủy ban Điều phối Bộ Quy tắc Ứng xử Toàn cầu]] (U4C) là một nhóm toàn cầu chuyên trách việc thực hiện Bộ Quy tắc Ứng xử Toàn cầu một cách công bằng và nhất quán. Đánh giá thường niên này được lên kế hoạch và thực hiện bởi U4C. Để biết thêm thông tin và trách nhiệm của U4C, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|bạn có thể xem Hiến chương U4C]]. Vui lòng chia sẻ thông tin này với các thành viên khác trong cộng đồng của bạn ở bất cứ nơi nào phù hợp. -- Hợp tác với U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]])<section end="announcement-content" /> 21:02, ngày 19 tháng 1 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:Keegan (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> == Bản tin Kỹ thuật: Tuần 05-2026 == <section begin="technews-2026-W05"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/05|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' * Quỹ Wikimedia mời mọi người đóng góp ý kiến cho [[m:Special:MyLanguage/Product and Technology Advisory Council/Year1 Reflections and Proposed Way Forward 2026 Update|đề xuất kế hoạch tương lai]] của [[:m:Special:MyLanguage/Product and Technology Advisory Council|Hội đồng Cố vấn Sản phẩm và Công nghệ]] chậm nhất ngày 28 tháng 2. * Tất cả người dùng đã đăng ký tài khoản nay có thể sử dụng passkey (mã xác thực) cho việc [[m:Special:MyLanguage/Help:Two-factor authentication|xác thực hai yếu tố]] (2FA). Passkey là một cách đơn giản để đăng nhập mà không cần phải sử dụng thiết bị thứ hai. Chúng sẽ xác thực danh tính của người dùng sử dụng vân tay, nhận diện khuôn mặt, hoặc dùng mã PIN. Để thiết lập một passkey, đầu tiên hãy thiết lập phương thức xác thực 2FA thông thường. Hiện tại, để đăng nhập bằng passkey, người dùng cũng phải sử dụng cả mật khẩu. Vào cuối quý này, tính năng đăng nhập không cần mật khẩu sẽ cho phép người dùng đăng nhập chỉ bằng một cú nhấn chuột và passkey. Người dùng có quyền nâng cao cũng sẽ bắt buộc phải kích hoạt xác thực 2FA. Đây là một phần của dự án [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security|Bảo mật Tài khoản]]. * Những người đóng góp chưa đăng ký tài khoản trên các IP hoặc dải IP bị cấm nay có thể tương tác trên wiki để chống lại quyết định cấm trên trang thảo luận thành viên, trừ khi tùy chọn "ngăn người dùng này sửa đổi trang thảo luận của họ" được bật. Điều này giúp giải quyết vấn đề rằng người dùng chưa đăng nhập không thể sử dụng quy trình bỏ cấm mặc định thông qua trang thảo luận thành viên. [https://phabricator.wikimedia.org/T398673] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:20}} {{PLURAL:20|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, phần miêu tả phương thức Xác thực hai yếu tố (2FA) trên trang quản lý đã được cập nhật. Giờ đây nó trở nên rõ ràng và dễ hiểu hơn, giúp người dùng dễ dàng sử dụng hơn. [https://phabricator.wikimedia.org/T332385] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Một biến Bộ lọc Sai phạm mới, <code>account_type</code>, đã được thêm vào để cung cấp một cách đáng tin cậy trong việc xác định loại tài khoản được tạo trong các tác vụ <code>createaccount</code> và <code>autocreateaccount</code>. Là một phần của thay đổi này, biến <code>accountname</code> đã được đổi tên thành <code>account_name</code>, và <code>accountname</code> nay đã lỗi thời. Những người quản lý bộ lọc sai phạm nên cập nhật bất kỳ bộ lọc nào đang sử dụng biến kiểm tra loại tài khoản mã hóa cứng hoặc đã lỗi thời nào nếu có. [https://phabricator.wikimedia.org/T414049] * Các hình thu nhỏ được yêu cầu với kích thước không chuẩn và sử dụng các phương thức không chuẩn như yêu cầu trực tiếp đến <code dir=ltr><nowiki>upload.wikimedia.org/…</nowiki></code> sẽ ngừng hoạt động trong thời gian tới. Thay đổi này nhằm ngăn chặn việc các trình thu thập dữ liệu web và bot từ bên ngoài lạm dụng. Một số người dùng có đoạn mã CSS/JS tùy chỉnh, các bảo quản viên giao diện có thể sửa tiện ích và giao diện cục bộ, cùng người viết công cụ sẽ cần cập nhật đoạn mã của mình để sử dụng kích thước hình thu nhỏ tiêu chuẩn. [[phab:T414805|Thông tin chi tiết, các liên kết tìm kiếm, cùng ví dụ về cách giải quyết chúng có sẵn trong tác vụ này]]. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.13|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/05|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W05"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 21:17, ngày 26 tháng 1 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=29969530 --> == Bản tin Kỹ thuật: Tuần 06-2026 == <section begin="technews-2026-W06"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/06|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' * Tính năng "{{int:pageinfo-toolboxlink}}", một tính năng cung cấp thông tin xác thực về một trang ([{{fullurl:{{FULLPAGENAME}}|action=info}} ví dụ]), nay có thêm cả phần mục lục được tạo tự động. Nếu có trang [[MediaWiki:Pageinfo-header]] được người dùng tạo cục bộ, giờ nó có thể được xóa đi. [https://phabricator.wikimedia.org/T363726] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, Trình Soạn thảo Trực quan trước đây đã thêm chức năng in đậm hoặc nghiêng vào phần miêu tả liên kết, làm cho mã wiki trở nên phức tạp. Vấn đề này hiện đã được giải quyết. [https://phabricator.wikimedia.org/T409669] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Không có bản dump XML nào được tạo ra vào ngày 20 tháng 1. Ngoài ra, kể từ giờ, các bản dump sẽ chỉ được tạo một lần mỗi tháng. [https://phabricator.wikimedia.org/T414389] * Nhóm Giao diện MediaWiki đã ngừng hỗ trợ tất cả điểm cuối chuyển đổi có dấu gạch chéo ở cuối khỏi [https://www.mediawiki.org/wiki/Special:MyLanguage/API:REST%20API API REST của MediaWiki]. Tất cả người dùng API hiện đang gọi những điểm cuối đó được khuyến khích chuyển sang các bản không có dấu gạch chéo ở cuối. Nếu bạn có thắc mắc hoặc gặp bất kỳ sự cố nào, vui lòng gửi tác vụ phabricator tới [https://phabricator.wikimedia.org/project/view/6931/ bảng tin của #MW-Interfaces-Team]. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.14|MediaWiki]] '''Nổi bật trong tuần''' * Xin nhắc tới người dùng rằng Quỹ Wikimedia đã chia sẻ một số câu hỏi định hướng cho Kế hoạch Hàng năm giai đoạn tháng 7 năm 2026–tháng 6 năm 2027 trên [[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2026-2027/Product & Technology OKRs|Meta]] và ''[[diffblog:2025/12/10/shaping-wikimedia-foundations-2026-2027-annual-goals-key-questions-for-the-wikimedia-movement/|Diff]]''. Những câu hỏi này tập trung vào những xu hướng toàn cầu, thử nghiệm nhanh hơn và hiệu quả hơn, hỗ trợ tốt hơn cho người mới, nâng cao năng lực cho biên tập viên và người dùng có quyền nâng cao, cải thiện việc cộng tác giữa các dự án, cũng như phát triển và giữ chân độc giả. Mọi phản hồi và ý kiến đóng góp đều được hoan nghênh trên [[m:Talk:Wikimedia Foundation Annual Plan/2026-2027|trang thảo luận]]. '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/06|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W06"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:43, ngày 2 tháng 2 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30000986 --> == Bản tin Kỹ thuật: Tuần 07-2026 == <section begin="technews-2026-W07"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/07|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' * [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Mục Mong muốn cộng đồng]] <span lang="en" dir="ltr" class="mw-content-ltr">Logged-in contributors who manage large or complex watchlists can now organise and filter watched pages in ways that improve their workflows with the new [[mw:Special:MyLanguage/Help:Watchlist labels|Watchlist labels]] feature. By adding custom labels (for example: pages you created, pages being monitored for vandalism, or discussion pages) users can more quickly identify what needs attention, reduce cognitive load, and respond more efficiently. This improves watchlist usability, especially for highly active editors.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">A new feature available on [[Special:Contributions|Special:Contributions]] shows [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|temporary accounts]] that are likely operated by the same person, and so makes patrolling less time-consuming. Upon checking contributions of a temporary account, users with access to temporary account IP addresses can now see a view of contributions from the related temporary accounts. The feature looks up all the IPs associated with a given temporary account within the data retention period and shows all the contributions of all temporary accounts that have used these IPs. [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts#February 2026: Improvements to the patroller tooling|Learn more]].</span> [https://phabricator.wikimedia.org/T415674] * <span lang="en" dir="ltr" class="mw-content-ltr">When editors preview a wikitext edit, the reminder box that they are only seeing a preview (which is shown at the top), now has a grey/neutral background instead of a yellow/warning background. This makes it easier to distinguish preview notes from actual warnings (for example, edit conflicts or problematic redirect targets), which will now be shown in separate warning or error boxes.</span> [https://phabricator.wikimedia.org/T414742] * <span lang="en" dir="ltr" class="mw-content-ltr">The [[m:Special:GlobalWatchlist|Global Watchlist]] lets you view your watchlists from multiple wikis on one page. The [[mw:Special:MyLanguage/Extension:GlobalWatchlist|extension]] continues to improve — it now properly supports more than one Wikibase site, for example both [[d:|Wikidata]] and [[testwikidata:|testwikidata]]. In addition, issues regarding text direction have been fixed for users who prefer Wikidata or other Wikibase sites in right-to-left (RTL) languages.</span> [https://phabricator.wikimedia.org/T415440][https://phabricator.wikimedia.org/T415458] * <span lang="en" dir="ltr" class="mw-content-ltr">The automatic "magic links" for ISBN, RFC, and PMID numbers have been [[mw:Special:MyLanguage/Help:Magic links|deprecated in wikitext since 2021]] due to inflexibility and difficulties with localization. Several wikis have successfully replaced RFC and PMID magic links with equivalent external links, but a template was often required to replace the functionality of the ISBN magic link. There is now a new [[mw:Special:MyLanguage/Help:Magic words#isbn|built-in parser function]] <code dir=ltr><nowiki>{{#isbn}}</nowiki></code> available to replace the basic functionality of the ISBN magic link. This makes it easier for wikis who wish to migrate off of the deprecated magic link functionality to do so.</span> [https://phabricator.wikimedia.org/T145604] * <span lang="en" dir="ltr" class="mw-content-ltr">Two new wikis have been created:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">a {{int:project-localized-name-group-wikipedia}} in [[d:Q35401|Jju]]</span> ([[w:kaj:|<code>w:kaj:</code>]]) [https://phabricator.wikimedia.org/T413283] ** <span lang="en" dir="ltr" class="mw-content-ltr">a {{int:project-localized-name-group-wikipedia}} in [[d:Q1186896|Nawat]]</span> ([[w:ppl:|<code>w:ppl:</code>]]) [https://phabricator.wikimedia.org/T413273] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * <span lang="en" dir="ltr" class="mw-content-ltr">A new global user group has been created: [[{{int:grouppage-local-bot}}|{{int:group-local-bot}}]]. It will be used internally by the software to allow community bots to bypass rate limits that are applied to abusive [[w:en:Web scraping|web scrapers]]. Accounts that are approved as bots on at least one Wikimedia wiki will be automatically added to this group. It will not change what user permissions the bot has.</span> [https://phabricator.wikimedia.org/T415588] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.15|MediaWiki]] '''Các cuộc họp và sự kiện''' * <span lang="en" dir="ltr" class="mw-content-ltr">The [[mw:Special:MyLanguage/MediaWiki Users and Developers Conference Spring 2026|MediaWiki Users and Developers Conference, Spring 2026]] will be held March 25–27 in Salt Lake City, USA. This event is organized by and for the third-party MediaWiki community. You can propose sessions and register to attend.</span> [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/AZBWVI46SDEB65PGR5J6E4TYOQQEZXM7/] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/07|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W07"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 23:30, ngày 9 tháng 2 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:Quiddity (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30026671 --> == Bản tin Kỹ thuật: Tuần 08-2026 == <section begin="technews-2026-W08"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/08|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Nổi bật trong tuần''' * [[mw:Special:MyLanguage/Wikimedia Site Reliability Engineering|Nhóm SRE]] sẽ tiến hành dọn dẹp phiên bản [[m:Special:MyLanguage/Etherpad|Etherpad]] của Wikimedia, một trình sửa đổi trên web dành cho việc sửa đổi tài liệu cộng tác theo thời gian thực. Tất cả pad sẽ bị xóa vĩnh viễn sau ngày 30 tháng 4 năm 2026 – trường hợp nếu còn dự án vẫn đang được tiến hành di chuyển vào thời điểm đó thì nhóm có thể xem xét lại thời gian đó tùy từng trường hợp. Vui lòng tạo bản sao lưu cục bộ cho bất kỳ nội dung nào mà bạn muốn giữ lại, vì dữ liệu đã bị xóa không thể khôi phục được nữa. Việc dọn dẹp này sẽ giúp giảm bớt kích thước cơ sở dữ liệu và giảm thiểu lãng phí (dấu ấn) cơ sở hạ tầng. Etherpad sẽ tiếp tục hỗ trợ cộng tác theo thời gian thực, nhưng không kỳ vọng vào khả năng lưu trữ lâu dài. Những đợt dọn dẹp khác có thể xảy ra trong tương lai mà không cần báo trước. [https://phabricator.wikimedia.org/T415237] '''Cập nhật cho biên tập viên''' * Nhóm Tìm kiếm Thông tin sẽ triển khai [[mw:Special:MyLanguage/Readers/Information Retrieval/Phase 1|thử nghiệm trên ứng dụng di động dùng Android]] nhằm kiểm tra khả năng tìm kiếm kết hợp, có thể xử lý cả các truy vấn tìm theo ngữ nghĩa và theo từ khóa. Việc cải thiện tìm kiếm trên nền tảng này sẽ giúp người đọc dễ dàng tìm thấy những gì mà họ đang tìm kiếm hơn ngay trên Wikipedia. Thử nghiệm này sẽ bắt đầu được triển khai trước tiên là trên Wikipedia tiếng Hy Lạp vào cuối tháng 2, sau đó là các wiki tiếng Anh, tiếng Pháp và tiếng Bồ Đào Nha vào tháng 3. [https://diff.wikimedia.org/2026/01/08/semantic-search-making-it-easier-to-find-the-information-readers-want/ Đọc thêm] trên blog Diff. [https://www.mediawiki.org/wiki/Readers/Information_Retrieval] * Nhóm Phát triển Độc giả sẽ tiến hành [[mw:Special:MyLanguage/Readers/Reader Growth/WE3.10.2 Mobile Table of Contents|một thử nghiệm]] cho người dùng web trên thiết bị di động nhằm thêm mục lục và tự động mở rộng tất cả các đề mục trong bài viết, nhằm tìm hiểu thêm về những vấn đề về điều hướng mà họ gặp phải. Thử nghiệm này sẽ có mặt trên các Wikipedia tiếng Ả Rập, tiếng Trung, tiếng Anh, tiếng Pháp, tiếng Indonesia và tiếng Việt. * Trước đây, các thông báo đầu trang ([[{{ns:8}}:Sitenotice]] và [[{{ns:8}}:Anonnotice]]) chỉ được hiển thị trên trang web dành cho máy tính để bàn. Giờ đây, chúng sẽ được hiển thị trên mọi nền tảng. Người dùng trên trang web di động nay sẽ thấy được những thông báo này và được thông báo. Các bảo quản viên trang web nên sẵn sàng kiểm tra và sửa các thông báo đầu trang trên các thiết bị di động để tránh xung đột với bài viết. Để từ chối, bảo quản viên giao diện có thể thêm <code dir="ltr">#siteNotice { display: none; }</code> vào [[{{ns:8}}:Minerva.css]]. [https://phabricator.wikimedia.org/T138572][https://phabricator.wikimedia.org/T416644] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:19}} {{PLURAL:19|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề trên [[Special:RecentChanges|Đặc biệt:Thay đổi gần đây]] đã được giải quyết. Trước đây, nhấn vào nút ẩn trên các bộ lọc đang được áp dụng khiến cho nút "xem những thay đổi mới từ…" biến mất, dù nó đáng lẽ phải được hiển thị. Nút này giờ đây sẽ hoạt động như mong đợi. [https://phabricator.wikimedia.org/T406339] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Hiện đã có tài liệu mới giúp biên tập viên gỡ lỗi các tính năng tìm kiếm trên trang. Nó hỗ trợ việc khắc phục sự cố khi các trang xuất hiện trong kết quả tìm kiếm, khi thứ hạng có vẻ không như mong đợi và khi bạn cần kiểm tra nội dung nào đang được lập chỉ mục, giúp việc tìm hiểu và phân tích hành vi tìm kiếm trở nên dễ dàng hơn. [[mw:Help:CirrusSearch/Debug|Tìm hiểu thêm]]. [https://phabricator.wikimedia.org/T411169] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.16|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/08|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W08"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:17, ngày 16 tháng 2 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30086330 --> == Bản tin Kỹ thuật: Tuần 09-2026 == <section begin="technews-2026-W09"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/09|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Nổi bật trong tuần''' * Tính năng [[mw:Special:MyLanguage/Edit check/Reference Check|Kiểm tra Nguồn Tham khảo]] đã được triển khai tới Wikipedia tiếng Anh, điều này có nghĩa là việc triển khai tính năng trên tất cả các trang Wikipedia đã hoàn thành. Tính năng này nhắc những người mới thêm nguồn tham khảo trước khi đăng nội dung mới, giúp giảm thiểu việc lùi sửa liên quan đến các vấn đề nguồn tham khảo phổ biến và cải thiện khả năng kiểm chứng được. Trong quá trình thử nghiệm A/B, tính năng này mang lại hiệu quả rất đáng kể: những người mới có hiển thị Kiểm tra Nguồn Tham khảo có khả năng thêm nguồn tham khảo cao hơn khoảng 2,2 lần trên trang web dành cho máy tính và cao hơn khoảng 17,5 lần trên trang web dành cho di động. [https://analytics.wikimedia.org/published/reports/editing/reference_check_ab_test_report_final_2025.html] '''Cập nhật cho biên tập viên''' * [[mw:Special:MyLanguage/Extension:InterwikiSorting|Phần mở rộng InterwikiSorting]], một phần mở rộng cho phép [[m:Special:MyLanguage/Interwiki sorting order|sắp xếp các liên kết liên wiki]], đã bị gỡ bỏ khỏi Wikipedia. Do đó, những biên tập viên đã bật tính năng sắp xếp liên kết liên wiki ở chế độ không rút gọn (định dạng danh sách đầy đủ) sẽ thấy được rằng các liên kết được sắp xếp lại. Các liên kết từ nay trở đi sẽ được liệt kê theo thứ tự bảng chữ cái dựa trên mã ngôn ngữ. [https://phabricator.wikimedia.org/T253764] * Cuối tuần này, người dùng sửa đổi một đề mục của trang bằng cách sử dụng trình soạn thảo trực quan trên thiết bị di động, sẽ nhìn thấy một nút mới có tên "Sửa đổi toàn bộ trang". Khi chạm vào nút đó, bạn sẽ có thể sửa đổi toàn bộ bài viết. Điều này sẽ giúp ích khi thay đổi bạn muốn thực hiện nằm ngoài đề mục mà bạn mở ban đầu. [https://phabricator.wikimedia.org/T387175][https://phabricator.wikimedia.org/T409112] * [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] đang mời các biên tập viên đánh giá xem chế độ tối có nên tiếp tục được coi là ở giai đoạn "thử nghiệm" (beta) trên wiki của họ hay không, dựa trên kinh nghiệm của họ về mức độ hoạt động tốt hay không của chế độ này trên máy tính và thiết bị di động. Nếu tính năng này được đánh giá là hoàn thiện rồi, thì các biên tập viên có thể cập nhật các thông báo giao diện trong <code dir=ltr>MediaWiki:skin-theme-description</code> và <code dir=ltr>MediaWiki:Vector-night-mode-beta-tag</code> để cho biết rằng chế độ tối đã sẵn sàng và không còn được coi là trong giai đoạn thử nghiệm nữa. * [[mw:Wikimedia_Apps/Team/iOS/Activity_Tab|Tab Hoạt động]] được cải tiến mà hiển thị thông tin chuyên sâu về người dùng nay có sẵn cho tất cả người dùng ứng dụng Wikipedia trên (phiên bản 7.9.0 trở lên). Sau quá trình thử nghiệm A/B trước đây cho thấy tỷ lệ tạo tài khoản trong số những người dùng có quyền truy cập vào tính năng này cao hơn, tính năng này đã được triển khai cho 100% người dùng kèm vài cập nhật. Tab Hoạt động nay hiển thị các bài viết bạn đã sửa đổi trên dòng thời gian, cung cấp thông tin chi tiết về tác động của việc sửa đổi chẳng hạn như số lượng đóng góp và xu hướng xem bài viết, cùng những tùy chọn tùy chỉnh để cải thiện trải nghiệm dành cho người dùng trong ứng dụng. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:21}} {{PLURAL:21|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho [[mw:Special:MyLanguage/Extension:DiscussionTools|Công cụ Thảo luận (DiscussionTools)]] không thể hoạt động trên thiết bị di động, từ đó khôi phục đầy đủ tất cả chức năng. [https://phabricator.wikimedia.org/T415303] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi từ nhiều wiki trên cùng một trang. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] giúp thực hiện được điều này tiếp tục được cải tiến. Cải tiến mới nhất là việc bổ sung [[mw:Extension:GlobalWatchlist#hook|hook mới]], <code dir=ltr>ext.globalwatchlist.rebuild</code>, được kích hoạt sau mỗi lần xây dựng lại danh sách theo dõi. Điều này cho phép bạn chạy các tiện ích và đoạn mã người dùng cho trang Đặc biệt. [https://phabricator.wikimedia.org/T275159] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.17|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/09|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W09"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:03, ngày 23 tháng 2 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30119102 --> == Bản tin Kỹ thuật: Tuần 10-2026 == <section begin="technews-2026-W10"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/10|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Nổi bật trong tuần''' * [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments|Chế độ Sinh nhật]] Wikipedia 25 nay đã có mặt trên các trang Wikipedia tiếng Betawi, tiếng Breton, tiếng Trung, tiếng Séc, tiếng Hà Lan, tiếng Anh, tiếng Pháp, tiếng Gorontalo, tiếng Indonesia, tiếng Ý, tiếng Luxembourg, tiếng Madura, tiếng Sicilia, tiếng Tây Ban Nha, tiếng Thái và tiếng Việt! Tính năng chiến dịch hữu hạn này kỷ niệm 25 năm thành lập Wikipedia cùng linh vật cho ngày sinh nhật, Quả cầu Nhỏ (Baby Globe). Khi được bật, Quả cầu Nhỏ được hiển thị trên [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments/article configuration|~2,500 bài viết]], chờ người đọc khám phá. Cộng đồng có thể chọn bật chế độ Sinh nhật bằng cách đạt đồng thuận từ cộng đồng của mình và yêu cầu một bảo quản viên bật tính năng đó cũng như tùy chỉnh nó thông qua [[m:Special:MyLanguage/Wikipedia 25/Easter egg experiments#Community Configuration Demo|cấu hình cộng đồng]] trên wiki cục bộ. '''Cập nhật cho biên tập viên''' * [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Tham chiếu phụ (sub-referencing)]], một tính năng mới để tái sử dụng nguồn tham khảo với những chi tiết khác đã được triển khai tới Wikipedia tiếng Thụy Điển, Wikipedia tiếng Ba Lan và [[:phab:T418209|một vài trang wiki khác]]. Bạn có thể [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#test|thử tính năng này]] trên những dự án đó hoặc trên testwiki và [https://en.wikipedia.beta.wmcloud.org/wiki/Sub-referencing betawiki]. Kinh nghiệm từ wiki thí điểm đầu tiên Wikipedia tiếng Đức đã được [[:m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing/Learnings|công bố trong báo cáo]]. Hãy liên hệ với nhóm Wikimedia Deutschland nếu bạn [[:m:Talk:WMDE Technical Wishes/Sub-referencing#Pilot wikis|quan tâm đến việc trở thành một wiki thí điểm]]. * [[mw:Special:MyLanguage/Help:Edit check#Paste check|Kiểm tra Chép dán]] (Paste Check) sẽ có mặt trên mọi trang Wikipedia trong tuần này. Tính năng này nhắc những người mới dán các đoạn văn bản mà họ không chắc viết vào Trình Soạn thảo Trực quan cân nhắc xem làm như thế có nguy cơ vi phạm bản quyền hay không. Kiểm tra Chép dán [[mw:Special:MyLanguage/Edit check/Tags|gắn thẻ]] tất cả sửa đổi mà nó hiển thị để có thể xem xét tiếp. Các bảo quản viên cục bộ có thể thiết lập cấu hình cho các khía cạnh khác nhau của tính năng này thông qua [[{{#special:EditChecks}}]]. [[mw:Special:MyLanguage/Edit check/Paste Check#A/B Experiment|Nghiên cứu]] trên 22 wiki cho thấy Kiểm tra Chép dán giúp giảm 18% số lượng sửa đổi bị lùi lại wikis found that so với nhóm đối chứng. Các biên dịch viên có thể [https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-visualeditor-ve-mw-editcheck&filter=&optional=1&action=translate giúp biên dịch] tính năng này cùng những tính năng có liên quan. * [[mw:Special:MyLanguage/Readers/Reader Experience|Nhóm Trải nghiệm Người đọc]] sẽ chuẩn hóa menu người dùng ở góc trên bên phải cho tất cả người dùng di động nhằm giúp nó gần giống trải nghiệm trên máy tính hơn. Hiện tại menu người dùng này chỉ hiển thị cho những người đã bật Chế độ Điều khiển Di động Nâng cao (AMC). Thay đổi duy nhất là một vài nút trước đây ở menu bên trái sẽ chuyển sang góc trên bên phải cho người dùng không bật chế độ AMC. Thay đổi này dự kiến được triển khai vào ngày 9 tháng 3 và nhằm mục đích cải thiện giao diện người dùng. [https://phabricator.wikimedia.org/T413912] * Bắt đầu từ tuần ngày 2 tháng 3, các email được gửi khi thêm, xóa hoặc sửa địa chỉ email của tài khoản sẽ chuyển sang định dạng email HTML đẹp mắt và rõ ràng hơn nhiều so với định dạng email văn bản thuần túy trước đây. [https://phabricator.wikimedia.org/T410807] * Thông báo hiện chỉ giới hạn lưu 2.000 mục lịch sử cho mỗi người dùng, điều này kéo dài trở về năm 2013 khi tính năng này mới được phát hành. Giờ nó sẽ thay đổi thành việc lưu các Thông báo trong 5 năm trở lại đây, nhưng mở rộng lên tối đa 10.000 mục. Điều này sẽ giúp bảo vệ cơ sở hạ tầng và giúp ngăn việc những thông báo xuất hiện gần đây hơn biến mất quá sớm. [https://phabricator.wikimedia.org/T383948] * [[m:Special:GlobalWatchlist|Danh sách Theo dõi Toàn cục]] cho phép bạn xem các danh sách theo dõi của bạn từ nhiều wiki khác nhau trên cùng một trang tiếp tục được cải tiến. Lần cập nhật gần đây nhất cải thiện trải nghiệm sử dụng nhãn. [[mw:Special:MyLanguage/Extension:GlobalWatchlist|Phần mở rộng]] nay cho phép kích hoạt [[mw:Special:MyLanguage/Manual:Language#Fallback languages|hệ thống ngôn ngữ dự phòng]] cho các khoản mục Wikidata không có nhãn bằng ngôn ngữ được xem, đồng thời hiển thị những nhãn đó trong ngôn ngữ Wikidata yêu thích của người dùng nếu không cung cấp tham số URL <code dir=ltr>uselang=</code>. [https://phabricator.wikimedia.org/T373686][https://phabricator.wikimedia.org/T416111] * Nhóm Wikipedia dành cho Android đã bắt đầu cuộc thử nghiệm beta cho tính năng [[mw:Special:MyLanguage/Readers/Information Retrieval/Phase 1|tìm kiếm kết hợp]] (hybrid search) trên Wikipedia tiếng Hy Lạp. Khả năng tìm kiếm kết hợp có thể xử lý cả truy vấn ngữ nghĩa và từ khóa giúp người đọc dễ dàng tìm kiếm những gì họ muốn tìm kiếm ngay trên Wikipedia hơn. * Vì lý do bảo mật, thành viên của một vài nhóm người dùng nhất định [[m:Special:MyLanguage/Mandatory two-factor authentication for users with some extended rights|bắt buộc phải bật tính năng xác thực hai yếu tố]] (2FA). Hiện tại, 2FA bắt buộc phải được bật để sử dụng nhóm người dùng, nhưng không cần phải là để trở thành thành viên nhóm đó. Do mô hình này vẫn còn một vài lỗ hổng, tình hình này sẽ [[phab:T418580|dần dần thay đổi vào tháng 3]]. Các thành viên thuộc những nhóm người dùng đó sẽ không thể tắt phương thức 2FA cuối cùng có trên tài khoản của họ, và sẽ không thể thêm người dùng không dùng 2FA vào những nhóm này. Người dùng vẫn sẽ có thể thêm phương thức xác thực mới hoặc loại bỏ chúng, miễn là còn ít nhất một phương thức được bật. Trong khoảng nửa sau của tháng 3, những người dùng mà không có 2FA sẽ bị loại bỏ khỏi những nhóm này. Điều này áp dụng cho: Bảo quản viên Thông báo Trung ương, kiểm định viên, bảo quản viên giao diện, giám sát viên, nhân viên Wikidata, nhân viên Wikifunctions, bộ phận CNTT của Văn phòng WMF và bộ phận Tin cậy & An toàn của and WMF. Sẽ không có gì thay đổi với những người dùng khác. Xem tác vụ được liên kết để biết khung thời gian triển khai. [https://phabricator.wikimedia.org/T418580] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:27}} {{PLURAL:27|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề ngăn người dùng tạo một phiên bản trong [https://www.wikibase.cloud/ Wikibase.cloud] hiện đã được giải quyết. [https://phabricator.wikimedia.org/T416807] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Để giúp đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng cơ sở hạ tầng một cách hợp lý]], trong tháng tới Quỹ Wikimedia sẽ triển khai giới hạn truy cập API toàn cục trên tất cả các API của chúng tôi. Vào đầu tháng 3, các giới hạn nghiêm ngặt hơn sẽ được áp dụng cho các yêu cầu không xác định từ bên ngoài Toolforge/WMCS và các yêu cầu API được thực hiện từ các trình duyệt web. Vào tháng 4, những giới hạn cao hơn sẽ được áp dụng cho lưu lượng truy cập được xác định. Những giới hạn này được cố ý đặt ở mức cao nhất có thể nhằm giảm thiểu tác động đến cộng đồng. Các bot chạy trong Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào sẽ không bị ảnh hưởng vào lúc này. Tuy vậy, mọi nhà phát triển được khuyến cáo làm theo những lời khuyên thực tiễn được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn truy cập]]. * Điểm cuối Truy vấn Dữ liệu được Liên kết (LDF) của Dịch vụ Truy vấn Wikidata sẽ ngừng hoạt động vào tháng 2. Điểm cuối này phục vụ lưu lượng truy cập hạn chế, lưu lượng này đã được chuyển đổi thành công sang các phương thức truy cập dữ liệu khác phù hợp hơn để hỗ trợ các trường hợp sử dụng (use case) hiện có. Phần cứng được sử dụng để hỗ trợ điểm cuối LDF sẽ được phân bổ lại để hỗ trợ những nỗ lực chuyển đổi hệ thống backend đang diễn ra. [https://phabricator.wikimedia.org/T415696] * Trình phân tích cú pháp Parsoid mới [[mw:Special:MyLanguage/Parsoid/Parser Unification/Updates|tiếp tục được triển khai đến nhiều wiki hơn]], nhằm cải thiện tính bền vững của nền tảng và giúp việc giới thiệu các tính năng đọc và sửa đổi mới trở nên dễ dàng hơn. Parsoid nay là trình phân tích cú pháp mặc định trên 488 trang wiki của WMF (268 trang Wikipedia), hiện chiếm hơn 10% tổng số lượt xem trang Wikipedia. * Quy trình và tiêu chí để [[Special:MyLanguage/Wikimedia Enterprise#Access|yêu cầu quyền truy cập đặc biệt]] vào nguồn cấp dữ liệu khối lượng lớn của API ''Wikimedia Enterprise'' (miễn phí cho các trường hợp sử dụng phù hợp với nhiệm vụ), [[m:Talk:Wikimedia Enterprise#Exceptional access criteria|hiện đã được công bố]]. Điều này nhằm cung cấp tài liệu đầy đủ và rõ ràng hơn cho người dùng. * [https://techblog.wikimedia.org/ Blog Kỹ thuật], một blog dành riêng cho cộng đồng kỹ thuật Wikimedia [https://techblog.wikimedia.org/2026/02/24/a-tech-blog-diff/ sẽ được chuyển] sang [[diffblog:|Diff]], blog tin tức và sự kiện cộng đồng. Việc chuyển đổi dự kiến sẽ được hoàn thành vào tháng 4 năm 2026, sau thời điểm này các bài viết mới sẽ được chấp nhận xuất bản. Người đọc sẽ có thể truy cập các bài đăng – cả bài cũ và mới – trên trang đích này tại https://diff.wikimedia.org/techblog. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.18|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/10|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W10"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 17:51, ngày 2 tháng 3 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30137798 --> == Bản tin Kỹ thuật: Tuần 11-2026 == <section begin="technews-2026-W11"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/11|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Nổi bật trong tuần''' * [[m:Special:MyLanguage/Tech/Server switch|Tất cả các wiki sẽ chuyển sang chế độ chỉ đọc trong vòng vài phút]] vào thứ 4, ngày 25 tháng 3 năm 2026 lúc [https://zonestamp.toolforge.org/1774450800 15:00 UTC]. Điều này là nhằm phục vụ cho việc thử nghiệm chuyển đổi máy chủ cơ sở dữ liệu dự phòng, [[wikitech:Deployments/Yearly calendar|diễn ra hai lần trong một năm]]. Trong quá trình chuyển đổi này, toàn bộ lưu lượng trên các trang web của Wikimedia được chuyển từ trung tâm dữ liệu chính sang trung tâm dữ liệu dự phòng nhằm kiểm tra tính khả dụng và ngăn ngừa việc gián đoạn dịch vụ ngay cả trong những trường hợp khẩn cấp. * Tuần trước, tất cả các wiki đều bị giới hạn ở chế độ chỉ đọc trong vòng 2 giờ đồng hồ, cùng với đó các đoạn mã người dùng và tiện ích cũng không khả dụng trong thời gian được kéo dài. Điều này là do một sự cố bảo mật mà đã được khắc phục sau đó. Chúng tôi đang tiếp tục cố gắng để ngăn điều này tái diễn. Để cập nhật thông tin vui lòng xem [[m:Steward's noticeboard#Statement on Meta about today's user script security incident|bài đăng trên bảng tin của Nhân viên]] ([[m:Special:MyLanguage/Wikimedia Foundation/Product and Technology/Product Safety and Integrity/March 2026 User Script Incident|bản dịch]]). '''Cập nhật cho biên tập viên''' * Người dùng đang gặp phải nhiều lệnh cấm trên thiết bị di động nay sẽ thấy lý do cấm cho từng lần cấm riêng thay vì một thông báo chung chung. Điều này giúp họ hiểu tại sao mình bị cấm và cần thực hiện những bước nào để giải quyết vấn đề. Ví dụ, người dùng bị ảnh hưởng do sử dụng VPN phổ biến (chẳng hạn như [[Special:MyLanguage/Apple iCloud Private Relay|iCloud Private Relay]]) sẽ nhận được hướng dẫn rõ ràng hơn những việc cần làm để bắt đầu lại việc sửa đổi. [https://phabricator.wikimedia.org/T357118] * Cuối tuần này, [[mw:Special:MyLanguage/VisualEditor/Suggestion Mode|Chế độ Đề xuất]] sẽ được cung cấp dưới dạng tính năng beta trong trình soạn thảo trực quan trên tất cả các trang Wikipedia. Tính năng này chủ động đề xuất nhiều loại hành động mà người dùng có thể cân nhắc thực hiện để cải thiện các bài viết trên Wikipedia, đồng thời tìm hiểu về các hướng dẫn có liên quan. Tính năng này có thể được cấu hình cục bộ và cũng có thể được mở rộng cục bộ với bằng việc tùy chỉnh Đề xuất. Cài đặt hiện tại có thể xem được tại trang [[Special:EditChecks]] và có [[mw:Special:MyLanguage/Help:Suggestion mode#For administrators %E2%80%93 local customization|hướng dẫn cách bảo quản viên có thể tùy chỉnh]] các liên kết để chỉ tới những trang hướng dẫn cục bộ. Tính năng này được kết nối với tính năng [[mw:Special:MyLanguage/Help:Edit check|Kiểm tra sửa đổi]], một tính năng đưa ra đề xuất cải thiện trong khi người nào đó viết nội dung mới. Trong tương lai, nhóm Sửa đổi dự kiến đánh giá tác động của tính năng này đối với người dùng mới thông qua một thử nghiệm có kiểm soát. [https://phabricator.wikimedia.org/T404600] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố liên quan đến việc con trỏ bị lệch khi sử dụng tính năng tô sáng cú pháp của CodeMirror, một tính năng giúp mã wiki (wikitext) và mã code dễ đọc hơn, nay đã được giải quyết. Vấn đề này đặc biệt ảnh hưởng đến những người dùng đã định nghĩa quy tắc phông chữ trong stylesheet tùy chỉnh khi tạo chủ đề mới bằng Công cụ Thảo luận. [https://phabricator.wikimedia.org/T418793] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Cập nhật về giới hạn truy vấn API: Để giúp đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng hợp lý cơ sở hạ tầng]], giới hạn truy vấn API toàn cục sẽ được áp dụng trong tuần này cho các yêu cầu không có User-Agent hợp lệ bắt nguồn từ bên ngoài Toolforge/WMCS cùng các yêu cầu chưa được xác thực được thực hiện từ trình duyệt web. Trong tháng 4 tới sẽ thiết lập giới hạn cao hơn cho lưu lượng truy cập được xác định. Các bot chạy trên Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào hiện sẽ không bị ảnh hưởng vì điều này. Tuy vậy, mọi nhà phát triển được khuyến cáo nên tuân theo những hướng dẫn thực tiễn tốt nhất được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn truy vấn]]. * API GraphQL mới đã được phát hành. API này được phát triển như một giải pháp thay thế linh hoạt cho một số tính năng nhất định của Dịch vụ Truy vấn Wikidata (WDQS), nhằm cải thiện trải nghiệm và khả năng thích ứng của nhà phát triển, đồng thời giúp truy cập dữ liệu hiệu quả. Hãy dùng thử và [[d:Wikidata:Wikibase GraphQL#Feedback and development|gửi phản hồi]] của mình. Bạn cũng có thể [https://greatquestion.co/wikimediadeutschland/GraphQLAPI/apply đăng ký tham gia các bài kiểm tra về khả năng sẵn dùng]. * Vào tháng 2 [[m:Special:MyLanguage/Product and Technology Advisory Council/Unsupported Tools Working Group|Nhóm Làm việc cho Công cụ Không được Hỗ trợ PTAC]] đã tiếp tục cải tiến [[commons:Special:MyLanguage/Commons:Video2commons#|Video2Commons]], trong đó sửa các lỗi liên quan đến lỗi xác thực, xử lý tệp lớn, khả năng hiển thị hàng đợi tác vụ và làm rõ hơn hành vi tải lên. Hiện một số lĩnh vực vẫn đang được tiến hành thực hiện, trong đó có những thay đổi liên quan đến việc tải lên từ phía máy chủ đã lỗi thời. Hãy đọc [[m:Special:MyLanguage/Product and Technology Advisory Council/Unsupported Tools Working Group#February 2026|phần cập nhật này]] để tìm hiểu thêm. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.19|MediaWiki]] '''Chuyên sâu''' * Nhóm Hướng dẫn Bài viết mời các biên tập viên Wikipedia có kinh nghiệm từ một số [[mw:Special:MyLanguage/Article guidance/Pilot wikis and collaborators#Collaborators|wiki thí điểm]] được chọn cùng những người đóng góp có quan tâm từ các trang Wikipedia khác điền vào bảng câu hỏi này, có sẵn bằng [https://docs.google.com/forms/d/e/1FAIpQLSfmLeVWnxmsCbPoI_UF2jyRcn73WRGWCVPHzerXb4Cz97X_Ag/viewform tiếng Anh], [https://docs.google.com/forms/d/e/1FAIpQLSd6rzr4XXQw8r4024fE3geTPFe13M_6w7Mitj-YJi0sOlWTAw/viewform?usp=header tiếng Ả Rập], [https://docs.google.com/forms/d/e/1FAIpQLSdok3-RfB18lcugYTUMGkpwmqG_8p760Wv4dCXitOXOszjUDw/viewform?usp=header tiếng Bengali], [https://docs.google.com/forms/d/e/1FAIpQLSfjTfYp4jEo0akA4B1e-Nfg3QZPCudUjhJzHzzDi6AHyAaMGA/viewform?usp=header tiếng Nhật], [https://docs.google.com/forms/d/e/1FAIpQLScteVoI29Aue4xc72dekk-6RYtvmMgQxzMI900UOawrFrSTWg/viewform?usp=header tiếng Bồ Đào Nha], [https://docs.google.com/forms/d/e/1FAIpQLSetdxnYwL3ub2vqA7awCg5hJZPMIYcDPaiTe12rY9h0GYnVlw/viewform?usp=header tiếng Ba Tư] và [https://docs.google.com/forms/d/e/1FAIpQLScNvfJF-Ot-4pzA4qAN771_0QDJ4Li19YcUsaTgSKW8Nc7U_Q/viewform?usp=header tiếng Thổ Nhĩ Kỳ]. Phản hồi của bạn sẽ giúp nhóm tùy chỉnh hướng dẫn cho các biên tập viên ít kinh nghiệm hơn và giúp họ tìm hiểu các chính sách và thực tiễn của cộng đồng khi tạo bài viết. Tìm hiểu thêm [[mw:Special:MyLanguage/Article guidance|trên trang dự án]]. '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/11|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W11"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 18:53, ngày 9 tháng 3 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30213008 --> == Bản tin Kỹ thuật: Tuần 12-2026 == <section begin="technews-2026-W12"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/12|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' * Tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]], còn được biết đến với tên [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror 6]], được sử dụng để tô sáng cú pháp mã wiki kể từ tháng 11 năm 2024. Tính năng này sẽ chính thức kết thúc giai đoạn thử nghiệm beta vào tháng 5 năm 2026 nhằm đưa những cải tiến và [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Features|tính năng]] mới cho tất cả biên tập viên sử dụng trình tô sáng cú pháp tiêu chuẩn. Nếu bạn có bất kỳ câu hỏi hoặc thắc mắc nào về việc kết thúc giai đoạn thử nghiệm beta cho tính năng này, [[mw:Special:MyLanguage/Help talk:Extension:CodeMirror|vui lòng chia sẻ với chúng tôi]]. [https://phabricator.wikimedia.org/T259059] * Một số thay đổi đối với quyền nhóm người dùng cục bộ được tiếp viên trên Meta-Wiki thực hiện và nhật trình về những thay đổi này chỉ được ghi lại trên đó. Giờ đây, thay đổi về quyền liên wiki sẽ được ghi lại trên cả Meta-Wiki và wiki của người dùng mục tiêu để giúp dễ dàng truy cập vào toàn bộ bản ghi thay đổi quyền người dùng trên wiki cục bộ hơn. Những mục nhật trình trước đây về những thay đổi này sẽ được cập nhật trong những tuần tiếp theo. [https://phabricator.wikimedia.org/T6055] * Trên các wiki sử dụng [[m:Special:MyLanguage/Flagged Revisions|Thay đổi Được gắn cờ (Flagged Revisions)]], số lượng thay đổi đang chờ được hiển thị trên [[{{#Special:PendingChanges}}]] trước đây tính cả những trang mà không còn ở trong trạng thái đang chờ xem xét, do chúng đã bị xóa khỏi hệ thống mà không được xem xét lại, v.d. do bị xóa, được di chuyển sang không gian tên khác, hoặc do thay đổi cấu hình wiki. Bộ đếm giờ sẽ được hiển thị chính xác. Trên một số wiki số lượng thay đổi được hiển thị sẽ nhỏ hơn nhiều so với trước đây. Bản thân danh sách các trang sẽ không có thay đổi gì. [https://phabricator.wikimedia.org/T413016] * Ngôn ngữ soạn thảo của Wikifunctions đã được viết lại, tạo ra một phiên bản mới của ngôn ngữ này. Thay đổi này nhằm mục đích tăng cường tính ổn định của dịch vụ bằng cách giảm mức tiêu thụ bộ nhớ của trình điều phối. Việc viết lại này cũng giúp cho phép giảm đáng kể độ trễ, đơn giản hóa mã nguồn và tạo ra các lớp trừu tượng tốt hơn, nhằm mở ra cơ hội bổ sung thêm các tính năng khác trong tương lai. Đọc thêm về [[f:Special:MyLanguage/Wikifunctions:Status updates/2026-03-11|các thay đổi này]]. * Người dùng nay có thể sắp xếp kết quả tìm kiếm theo thứ tự bảng chữ cái dựa trên tiêu đề trang. Lần cập nhật này cung cấp thêm một tùy chọn giúp cho việc tìm kiếm trang trở nên dễ dàng và nhanh chóng hơn. Trước đây, kết quả có thể được sắp xếp theo Ngày sửa đổi, Ngày tạo, hoặc Mức độ liên quan. Để sử dụng tùy chọn mới này, hãy mở 'Tìm kiếm nâng cao' trên trang kết quả tìm kiếm và chọn 'Thứ tự bảng chữ cái' trong mục 'Thứ tự sắp xếp'. [https://phabricator.wikimedia.org/T403775] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:28}} {{PLURAL:28|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến cho Trình tải lên tập tin (UploadWizard) trên Wikimedia Commons không thể nhập tập tin từ Flickr nay đã được giải quyết. [https://phabricator.wikimedia.org/T419263] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Một trang đặc biệt mới, [[{{#special:LintTemplateErrors}}]], đã được tạo ra để liệt kê các trang nhúng được đánh dấu là chứa lỗi lint để giúp người dùng dễ dàng phát hiện chúng hơn. Danh sách được sắp xếp theo số lượng các trang được nhúng mà có lỗi. Ví dụ: [[{{#special:LintTemplateErrors}}/night-mode-unaware-background-color]]. [https://phabricator.wikimedia.org/T170874] * Người dùng tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]] hiện đang sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] để tô sáng cú pháp khi sửa đổi các trang nội dung JavaScript, CSS, JSON, Vue và Lua, trong một khoảng thời gian. Cùng với việc kết thúc thử nghiệm beta cho CodeMirror 6, kế hoạch là thay thế CodeEditor để trở thành trình soạn thảo tiêu chuẩn cho những kiểu nội dung này vào tháng 5 năm 2026. [[mw:Special:MyLanguage/Help talk:Extension:CodeMirror|Mọi phản hồi hoặc ý kiến đóng góp đều được hoan nghênh]]. [https://phabricator.wikimedia.org/T419332] * Các mô đun JavaScript cho [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] JavaScript sẽ sớm được nâng cấp lên CodeMirror 6. Trước thời điểm nâng cấp này, việc tải các mô đun <code dir=ltr>ext.CodeMirror</code> hoặc <code dir=ltr>ext.CodeMirror.lib</code> từ các tiện ích và đoạn mã người dùng đã bị loại bỏ vào tháng 7 năm 2025. Việc sử dụng hook <code dir=ltr>ext.CodeMirror.switch</code> cũng đã bị loại bỏ vào tháng 3 năm 2025. Những người đóng góp nay có thể làm cho các đoạn mã hoặc tiện ích của mình tương thích với CodeMirror 6. Xem [[mw:Special:MyLanguage/Extension:CodeMirror#Gadgets and user scripts|hướng dẫn chuyển đổi]] để biết thêm thông tin. [https://phabricator.wikimedia.org/T373720] * Nhóm Giao diện MediaWiki đang mở rộng phạm vi định nghĩa mô đun API REST để bao gồm cả [[mw:Special:MyLanguage/API:REST API/Extensions|các API mở rộng]]. Mô đun API REST là nhóm các điểm cuối có liên quan mà có thể được quản lý và đánh phiên bản độc lập. Hiện đã có các mô đun cho API [https://phabricator.wikimedia.org/T414470 GrowthExperiments] và [https://phabricator.wikimedia.org/T419053 Wikifunctions]. Khi chúng tôi chuyển đổi các API mở rộng sang cấu trúc này, tài liệu sẽ được chuyển ra khỏi phần đặc tả chính cho OpenAPI của MediaWiki cùng chế độ xem REST Sandbox, và thay vào đó sẽ có thể truy cập được thông qua tùy chọn dành riêng cho mô đun trong menu thả xuống trên [https://test.wikipedia.org/wiki/Special:RestSandbox REST Sandbox] (nghĩa là, [[{{#Special:RestSandbox}}]], có sẵn trên tất cả các dự án wiki). * Phần mở rộng [[mw:Special:MyLanguage/Extension:Scribunto|Scribunto]] cung cấp nhiều thông tin khác nhau về wiki nơi mô đun đang được sử dụng thông qua thư viện [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual|mw.site]]. Kể từ tuần trước, thư viện này cũng cung cấp một [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#mw.site.wikiId|cách]] truy cập [[mw:Special:MyLanguage/Manual:Wiki ID|ID của wiki]] có thể được sử dụng để hỗ trợ bảo trì mô đun liên wiki. [https://phabricator.wikimedia.org/T146616] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.20|MediaWiki]] '''Chuyên sâu''' * [[m:Special:MyLanguage/Coolest Tool Award|Giải thưởng Công cụ Tuyệt vời nhất năm 2026]] nhằm tôn vinh những công cụ xuất sắc do cộng đồng tạo ra, nay đã mở nhận đề cử! Hãy đề cử công cụ yêu thích của bạn bằng cách sử dụng biểu mẫu [https://wikimediafoundation.limesurvey.net/435684?lang=en khảo sát đề cử] trước ngày 23 tháng 3 năm 2026. Để biết thêm thông tin về quyền riêng tư và xử lý dữ liệu, vui lòng xem [[foundation:Special:MyLanguage/Legal:Coolest_Tool_Award_2026_Survey_Privacy_Statement|tuyên bố về quyền riêng tư của khảo sát]]. '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/12|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W12"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:35, ngày 16 tháng 3 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30260505 --> == Bản tin Kỹ thuật: Tuần 13-2026 == <section begin="technews-2026-W13"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/13|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Nổi bật trong tuần''' * Người dùng các trang Wikimedia nay có thể đăng nhập mà không cần mật khẩu bằng cách sử dụng khóa truy cập (passkey). Đây là một phương thức bảo mật sử dụng vân tay, nhận diện khuôn mặt hoặc mã PIN. Với thay đổi này, tất cả người dùng chọn đăng nhập không cần mật khẩu sẽ có thể đăng nhập vào tài khoản của mình một cách dễ dàng, nhanh chóng và an toàn hơn trên mọi thiết bị. Tùy chọn đăng nhập mới bằng khóa truy cập hiện hiển thị dưới dạng gợi ý tự động điền trong trường tên người dùng. [[phab:T417120|Nút "Đăng nhập bằng khóa truy cập"]] bổ sung sẽ sớm được cung cấp cho những người dùng đã bật tùy chọn sử dụng khóa truy cập. Lần cập nhật này sẽ cải thiện bảo mật cũng như trải nghiệm người dùng. [[c:File:Passwordless_login_screencast.webm|Bản ghi lại màn hình]] này sẽ minh họa từng bước quy trình đăng nhập không cần mật khẩu. * [[m:Special:MyLanguage/Tech/Server switch|Tất cả các wiki sẽ chuyển sang chế độ chỉ đọc trong vòng vài phút]] vào thứ 4, ngày 25 tháng 3 năm 2026 lúc [https://zonestamp.toolforge.org/1774450800 15:00 UTC]. Điều này là nhằm phục vụ cho việc thử nghiệm chuyển đổi máy chủ cơ sở dữ liệu dự phòng, [[wikitech:Deployments/Yearly calendar|diễn ra hai lần trong một năm]]. Trong quá trình chuyển đổi này, toàn bộ lưu lượng trên các trang web của Wikimedia được chuyển từ trung tâm dữ liệu chính sang trung tâm dữ liệu dự phòng nhằm kiểm tra tính khả dụng và ngăn ngừa việc gián đoạn dịch vụ ngay cả trong những trường hợp khẩn cấp. '''Cập nhật cho biên tập viên''' * Người dùng các trang web của Wikimedia nay có thể xuất các thông báo cách đây hơn 5 năm của mình bằng cách sử dụng [[toolforge:echo-chamber|công cụ Toolforge mới]]. Điều này sẽ đảm bảo rằng người dùng có thể giữ lại được những thông báo quan trọng và tránh bị mất chúng do việc thay đổi theo kế hoạch nhằm xóa đi các thông báo cũ hơn 5 năm, như đã thông báo trước đó. [https://phabricator.wikimedia.org/T383948] * Các biên tập viên Wikipedia tiếng Indonesia, tiếng Thái, tiếng Thổ Nhĩ Kỳ, và tiếng Anh Đơn giản nay có thể truy cập vào Đặc biệt:Bảng điều khiển cá nhân. Đây là [[mw:Special:MyLanguage/Moderator Tools/Dashboard|phiên bản trải nghiệm sớm]] giúp các biên tập viên mới làm quen với quy trình tuần tra, giúp họ dễ dàng chuyển từ việc sửa đổi sang tham gia vào những công việc kiểm duyệt nâng cao hơn trên dự án của mình. [https://phabricator.wikimedia.org/T402647] * Trang [[vi:Special:Block|Đặc_biệt:Cấm]] nay có hai thay đổi nhỏ về mặt giao diện. Bảo quản viên nay có thể dễ dàng thực hiện lệnh cấm vô hạn thông qua nút chọn (nút radio) chuyên dụng trong mục thời hạn. Ngoài ra, việc chọn thời hạn là vô hạn sẽ cung cấp một bộ lý do phổ biến khác để lựa chọn, nó có thể được thay đổi tại: [[MediaWiki:Ipbreason-indef-dropdown]]. [https://phabricator.wikimedia.org/T401823] * Biên tập viên sử dụng thiết bị di động [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#Logged-out|tại một số wiki]] nay có thể nhìn thấy cải tiến về cảnh báo sửa đổi khi chưa đăng nhập, điều này là nhờ cập nhật gần đây từ nhóm Phát triển. Những thay đổi được phát hành vào tuần trước này là một phần trong những nỗ lực và thử nghiệm đang được thực hiện nhằm nâng cao [[mw:Special:MyLanguage/Contributors/Account Creation Experiments|trải nghiệm trong việc tạo tài khoản trên thiết bị di động]] và từ đó giúp tăng cường sự tham gia của họ. [https://phabricator.wikimedia.org/T408484] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:36}} {{PLURAL:36|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một lỗi khiến người dùng web trên thiết bị di động không thể nhìn thấy thông tin cấm khi có nhiều lệnh cấm đồng thời được áp dụng đã được giải quyết. Họ giờ có thể xem được tin nhắn cho tất cả các lệnh cấm hiện đang được áp dụng cho họ khi họ truy cập Wikipedia. '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Những image (ảnh) được dựng bằng Toolforge sẽ sớm được nâng cấp lên phiên bản buildpack mới, mang đến việc hỗ trợ các phiên bản ngôn ngữ mới hơn cùng những cải tiến và sửa lỗi khác tại thượng nguồn. Nếu bạn sử dụng Dịch vụ Dựng của Toolforge, hãy xem lại [https://lists.wikimedia.org/hyperkitty/list/cloud-announce@lists.wikimedia.org/thread/EMYTA32EV2V5SQ2JIEOD2CL66YFIZEKV/ email cloud-announce] gần đây và cập nhật cấu hình bản dựng của bạn nếu cần để đảm bảo các công cụ của bạn tương thích với phiên bản mới này. [https://wikitech.wikimedia.org/w/index.php?title=Help:Toolforge/Building_container_images&oldid=2392097#Buildpack_environment_upgrade_process][https://phabricator.wikimedia.org/T380127] * Wiki tài liệu [https://api.wikimedia.org/wiki/Main_Page Cổng API] sẽ ngừng hoạt động vào tháng 6 năm 2026. Các khóa API được tạo trên Cổng API sẽ tiếp tục hoạt động bình thường. Các điểm cuối của api.wikimedia.org sẽ dần bị loại bỏ bắt đầu từ tháng 7 năm 2026. Tài liệu trên Cổng API đang được chuyển sang [[mw:Wikimedia APIs|mediawiki.org]]. Tìm hiểu thêm trên [[wikitech:API Portal/Deprecation|trang dự án]]. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.21|MediaWiki]] '''Chuyên sâu''' * [[m:Special:MyLanguage/WMDE Technical Wishes|Nhóm Mong muốn – Kỹ thuật của WMDE]] đang xem xét cải tiến [[m:WMDE Technical Wishes/References/VisualEditor automatic reference names|tên chú thích được tạo tự động trong Trình Soạn thảo Trực quan (VisualEditor)]]. Vui lòng xem qua [[m:WMDE Technical Wishes/References/VisualEditor automatic reference names#Proposed solutions|những giải pháp được đề xuất]] và tham gia vào [[m:Talk:WMDE Technical Wishes/References/VisualEditor automatic reference names#Request for comment|thảo luận này]]. '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/13|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W13"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:51, ngày 23 tháng 3 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:UOzurumba (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30268305 --> == Bản tin Kỹ thuật: Tuần 14-2026 == <section begin="technews-2026-W14"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/14|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Nổi bật trong tuần''' * Phiên bản Beta của [[abstract:|Abstract Wikipedia]] một dự án Wikimedia mới không phụ thuộc ngôn ngữ, đã được khởi động vào tuần trước. Dự án cho phép các cộng đồng xây dựng các bài viết Wikipedia bằng ngôn ngữ mẹ đẻ của họ, và các thành viên khác có thể dễ dàng truy cập các bài viết đó bằng ngôn ngữ của riêng họ. Wiki này hoạt động dựa trên chỉ dẫn từ Wikifunctions và cũng dựa trên nội dung có cấu trúc từ Wikidata. [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-03-26|Đọc thêm]]. '''Cập nhật cho biên tập viên''' * Nhóm Phát triển đang tiến hành thử nghiệm A/B để đánh giá cho một thông điệp rõ ràng hơn, thân thiện hơn với người dùng nhằm khuyến khích việc tạo tài khoản trên wiki. Hiện tại, khi người dùng di động chưa đăng nhập bắt đầu sửa đổi, họ sẽ thấy một thông báo cảnh báo khó chịu, có thể khiến cho họ có cảm giác đột ngột và nản lòng. Điều này cũng làm cho việc sửa đổi bằng tài khoản tạm thời trở thành mặc định thay vì khuyến khích việc tạo tài khoản. Thử nghiệm đang được thực hiện trên mười trang Wikipedia, bao gồm tiếng Ả Rập, tiếng Pháp, tiếng Tây Ban Nha và tiếng Đức. [[mw:Special:MyLanguage/Contributors/Account Creation Experiments#2. Improve logged-out warning message (T415160)|Đọc thêm]]. * Nhóm Ứng dụng Wikimedia đang mời mọi người đóng góp ý kiến về [[mw:Special:MyLanguage/Wikimedia Apps/Team/Future of Editing on the Mobile Apps|việc sửa đổi trên ứng dụng Wikipedia dành cho thiết bị di động nên hoạt động như thế nào]]. Thảo luận tập trung vào việc cải thiện cách người dùng truy cập công cụ sửa đổi khi họ nhấn vào nút "Sửa đổi". Đây là một phần trong nỗ lực rộng lớn hơn nhằm chuyển đổi những người đọc mà có hứng thú với việc sửa đổi sang một con đường thân thiện hơn với người dùng để có thể bắt đầu đóng góp. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:45}} {{PLURAL:45|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố khiến việc lấy chú thích từ kho lưu trữ báo chí lớn [https://www.newspapers.com Newspapers.com] không còn hoạt động, do bị chặn trong các yêu cầu của [[mw:Special:MyLanguage/Citoid|Citoid]], nay đã được khắc phục. [https://phabricator.wikimedia.org/T419903] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.22|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/14|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W14"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 19:25, ngày 30 tháng 3 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30329462 --> == Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226) == Hello everyone, This is a notice regarding an ongoing data migration on Wikidata that may affect your election-related templates and Lua modules (such as <code>Module:Itemgroup/list</code>). '''The Change:'''<br /> Currently, many templates pull electoral maps from Wikidata using the property [[:d:Property:P1846|P1846]], combined with the qualifier [[:d:Property:P180|P180]]: [[:d:Q19571328|Q19571328]]. We are migrating this data (across roughly 4,000 items) to a newly created, dedicated property: '''[[:d:Property:P14226|P14226]]'''. '''What You Need To Do:'''<br /> To ensure your templates and infoboxes do not break or lose their maps, please update your local code to fetch data from [[:d:Property:P14226|P14226]] instead of the old [[:d:Property:P1846|P1846]] + [[:d:Property:P180|P180]] structure. A [[m:Wikidata/Property Migration: P1846 to P14226/List|list of pages]] was generated using Wikimedia Global Search. '''Deadline:'''<br /> We are temporarily retaining the old data on [[:d:Property:P1846|P1846]] to allow for a smooth transition. However, to complete the data cleanup on Wikidata, the old [[:d:Property:P1846|P1846]] statements will be removed after '''May 1, 2026'''. Please update your modules and templates before this date to prevent any disruption to your wiki's election articles. Let us know if you have any questions or need assistance with the query logic. Thank you for your help! [[User:ZI Jony|ZI Jony]] using [[Thành viên:MediaWiki message delivery|MediaWiki message delivery]] ([[Thảo luận Thành viên:MediaWiki message delivery|thảo luận]]) 17:11, ngày 3 tháng 4 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:ZI Jony@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=29941252 --> == Bản tin Kỹ thuật: Tuần 15-2026 == <section begin="technews-2026-W15"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/15|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Cập nhật cho biên tập viên''' * [[mw:Special:MyLanguage/Help:Extension:CampaignEvents|Phần mở rộng CampaignEvents]] nay có thêm tính năng mới nhằm thiết lập mục tiêu nhóm, nhằm cho phép những người tổ chức thiết lập và theo dõi mục tiêu sự kiện chẳng hạn như số lượng bài viết được tạo và số lượng người tham gia đóng góp theo thời gian thực. Tương tự, những người tham gia có thể cùng nhau hướng tới các mục tiêu chung và chứng kiến ​​tác động tập thể của họ khi sự kiện diễn ra. Tính năng này hiện đã có trên tất cả các wiki của Wikimedia. Tìm hiểu thêm trong [[mw:Special:MyLanguage/Help:Extension:CampaignEvents/Registration/Collaborative contributions#Goal setting|trang tài liệu này]]. * [[File:Maki-gift-15.svg|12px|link=|class=skin-invert|Mục Mong muốn cộng đồng]] Tính năng [[mw:Special:MyLanguage/Help:Watchlist labels|gán nhãn danh sách theo dõi]] mới (được công bố trong [[m:Special:MyLanguage/Tech/News/2026/07|Bản tin Kỹ thuật 2026-07]]) nay có sẵn thông qua Trình Soạn thảo Trực quan, trình soạn thảo mã nguồn, và biểu tượng 'sao theo dõi' (hoặc liên kết theo dõi, đối với các giao diện không có biểu tượng hình sao). Trước đây việc gán nhãn như vậy chỉ có thể thực hiện được thông qua [[Special:EditWatchlist|EditWatchlist]]. Ở cả ba nơi đó, đây đều sẽ là trường mới ngay sau sau trường thời điểm hết hạn theo dõi. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:23}} {{PLURAL:23|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà trang thảo luận trên thiết bị di động dùng Parsoid không thể sử dụng được sau đề mục không có tiêu đề, nay đã được giải quyết. [https://phabricator.wikimedia.org/T419171] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|Tính năng chú thích phụ]], một tính năng cho phép biên tập viên thêm thông tin chi tiết vào nguồn tham khảo hiện có mà không cần nhân bản nó, sẽ được triển khai dần dần tới [[phab:T414094|nhiều trang wiki hơn]] vào cuối năm nay. Các wiki sử dụng tiện ích [[mw:Special:MyLanguage/Reference Tooltips|Chú thích nổi]] được khuyến khích cập nhật phiên bản của mình (thường là tại [[m:MediaWiki:Gadget-ReferenceTooltips.js|MediaWiki:Gadget-ReferenceTooltips.js]] như được hiển thị tại [https://en.wikipedia.org/w/index.php?diff=1344408362 đây]) để đảm bảo khả năng tương thích. Các tiện ích khác liên quan đến nguồn tham khảo khác cũng có thể bị ảnh hưởng. [https://phabricator.wikimedia.org/T416304] * Tất cả các phiên bản của Wikinews sẽ bị đóng và chuyển sang chế độ chỉ đọc vào ngày 4 tháng 5 năm 2026. Mọi nội dung vẫn sẽ có thể truy cập được, nhưng sẽ không thể thêm bất kỳ sửa đổi hoặc bài viết mới nào. Việc đóng này đã được Hội đồng Quản trị của Quỹ Wikimedia phê duyệt sau những cuộc thảo luận kéo dài. [[m:Wikimedia Foundation Board noticeboard#Board of Trustees Approves Closure of Wikinews|Đọc thêm]]. * [[:mw:Special:MyLanguage/API:Action API|API Tác vụ]] có một số kiểu định dạng đầu ra được yêu cầu. Một trong số chúng, <bdi lang="zxx" dir="ltr"><code><nowiki>format=php</nowiki></code></bdi>, sẽ sớm bị loại bỏ. Vui lòng đảm bảo rằng các tập lệnh hoặc bot của bạn sử dụng [[mw:Special:MyLanguage/API:Data formats#Output|kiểu định dạng JSON]]. Việc loại bỏ này sẽ chỉ ảnh hưởng đến một số lượng rất nhỏ các tập lệnh người dùng và bot. [https://phabricator.wikimedia.org/T118538] * Trang [[Special:NamespaceInfo|Đặc biệt:NamespaceInfo]] nay có chứa phần viết tắt không gian tên. Ví dụ "WP" cho không gian tên "Project" ("Wikipedia") trên Wikipedia tiếng Đức. [https://phabricator.wikimedia.org/T381455] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.23|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/15|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W15"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 16:19, ngày 6 tháng 4 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30362761 --> == Bản tin Kỹ thuật: Tuần 16-2026 == <section begin="technews-2026-W16"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/16|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Nổi bật trong tuần''' * Các biên tập viên có kinh nghiệm được mời tham gia [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Main_Page thử nghiệm] tính năng [[mw:Special:MyLanguage/Article guidance|Hướng dẫn bài viết]], được thiết kế để giúp các biên tập viên ít kinh nghiệm hơn tạo ra các bài viết Wikipedia có cấu trúc tốt và phù hợp với quy định. Hướng dẫn thử nghiệm [[mw:Special:MyLanguage/Article guidance/Test feature guide|có sẵn tại đây]]. Ngoài ra, sau khi xem xét [https://b24e11a4f1.catalyst.wmcloud.org/wiki/Category:Pages_using_article_guidance bản tóm tắt này], vui lòng cung cấp phản hồi trên [[mw:Talk:Article guidance|trang thảo luận của dự án]]. Dựa trên ý kiến đóng góp của bạn, tính năng này sẽ được tinh chỉnh và chuyển giao cho các trang Wikipedia thí điểm để biên dịch và điều chỉnh cho thích hợp. Hãy xem qua [[c:File:Article Guidance workflow demo - April 2026.webm|video]] giải thích về tính năng này. '''Cập nhật cho biên tập viên''' * Trên hầu hết các trang wiki, tất cả thành viên tự xác nhận nay có thể sử dụng trang [[Special:ChangeContentModel|Đặc biệt:ChangeContentModel]] để [[mw:Special:MyLanguage/Help:ChangeContentModel|tạo trang mới với kiểu nội dung tùy chỉnh]], chẳng hạn như danh sách gửi thông báo rộng rãi, giúp cho định dạng trang tùy chỉnh trở nên dễ tiếp cận hơn. Kiểm tra [[Special:ListGroupRights|Đặc biệt:Quyền nhóm người dùng]] để biết trạng thái trên wiki của bạn. [https://phabricator.wikimedia.org/T248294] * Nhóm Phát triển đã khởi động một [[mw:Special:MyLanguage/Contributors/Account_Creation_Experiments|thử nghiệm tạo tài khoản]] để đánh giá xem việc thêm nút tạo tài khoản vào phần đầu trang web trên thiết bị di động có làm tăng số lượng người đăng ký tài khoản mới và khuyến khích nhiều người dùng thiết bị di động đóng góp vào wiki hay không. Thử nghiệm hiện đang được thực hiện trên Wikipedia tiếng Hindi, tiếng Indonesia, tiếng Bengali, tiếng Thái và tiếng Do Thái, và nhắm mục tiêu vào 10% người dùng web trên di động chưa đăng nhập. * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:30}} {{PLURAL:30|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một sự cố có thể khiến Trình Soạn thảo Trực quan bị kẹt khi tải trên các thiết bị Windows đã tắt hiệu ứng hoạt ảnh, nay đã được giải quyết. [https://phabricator.wikimedia.org/T382856] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Kể từ cuối tuần này, {{int:group-abusefilter}} đã bật tính năng beta [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]] sẽ sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] làm trình soạn thảo tại [[Special:AbuseFilter|Đặc biệt:Bộ lọc sai phạm]]. Đây là một phần trong nỗ lực rộng lớn hơn nhằm mang lại trải nghiệm người dùng nhất quán hơn trên tất cả các trình soạn thảo. [https://phabricator.wikimedia.org/T399673][https://phabricator.wikimedia.org/T419332] * Các công cụ và bot truy cập vào [[mw:Special:MyLanguage/Notifications/API|API Thông báo]] (<bdi lang="zxx" dir="ltr"><code><nowiki>action=query&meta=notifications</nowiki></code></bdi>) sẽ cần phải cập nhật quyền OAuth hoặc BotPassword của mình để bao gồm cả quyền truy cập vào các thông báo riêng tư. [https://phabricator.wikimedia.org/T421991] * Do việc nâng cấp thư viện, việc liệt kê danh sách trên các trang thể loại có thể hiển thị không đúng theo thứ tự bắt đầu từ thứ Hai, ngày 20 tháng 4. Một kịch bản chuyển đổi sẽ được chạy để khắc phục điều này, và sẽ mất từ ​​vài giờ đến vài ngày tùy thuộc vào kích thước của wiki (tối đa một tuần đối với Wikipedia tiếng Anh). [https://phabricator.wikimedia.org/T422544] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Chi tiết cập nhật mã nguồn sắp tới trong tuần này: [[mw:MediaWiki 1.46/wmf.24|MediaWiki]] '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/16|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W16"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:19, ngày 13 tháng 4 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30380527 --> == Bản tin Kỹ thuật: Tuần 17-2026 == <section begin="technews-2026-W17"/><div class="plainlinks"> '''[[m:Special:MyLanguage/Tech/News|Tin tức kỹ thuật]]''' mới nhất từ cộng đồng kỹ thuật Wikimedia. Vui lòng chia sẻ với các thành viên khác về những thay đổi này. Không phải mọi thay đổi đều sẽ ảnh hưởng đến bạn. [[m:Special:MyLanguage/Tech/News/2026/17|Các bản dịch]] của bản tin này cũng có sẵn cho bạn. '''Nổi bật trong tuần''' * Sau hai năm phát triển, [[mw:Special:MyLanguage/Help:Extension:CodeMirror|{{int:codemirror-beta-feature-title}}]], hay còn được biết đến với tên [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror 6]], sẽ được chính thức đưa ra khỏi giai đoạn beta vào thứ 3, ngày 21 tháng 4. Nó mang lại khả năng đọc mã nguồn và mã wiki tốt hơn, giảm thiểu lỗi đánh máy cùng những [[mw:Special:MyLanguage/Help:Extension:CodeMirror|lợi ích]] khác cho tất cả người dùng sử dụng trình tô sáng cú pháp tiêu chuẩn. Xin gửi lời cảm ơn chân thành đến tình nguyện viên [https://phabricator.wikimedia.org/p/Bhsd/ Bhsd] vì đã phát triển nhiều tính năng mới, bao gồm [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Code folding|gấp mã nguồn]], [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Autocompletion|tự động điền]], và [[mw:Special:MyLanguage/Help:Extension:CodeMirror#Linting|kiểm tra lỗi]]. [https://phabricator.wikimedia.org/T259059] * Một bản cập nhật lớn dành cho ứng dụng Wikipedia trên iOS hiện đang được triển khai, nhằm thiết kế lại giao diện để phù hợp với thiết kế trực quan "Liquid Glass" mới nhất của Apple. [https://apps.apple.com/us/app/wikipedia/id324715238 Hãy tải phiên bản mới nhất] và khám phá bản cập nhật này. '''Cập nhật cho biên tập viên''' * [[mw:Special:MyLanguage/Readers/Reader Experience/WE3.3.4 Reading lists|Danh sách đọc]] là một tính năng cho phép người đọc lưu các bài viết vào danh sách để đọc sau. Tính năng này hiện đang trong giai đoạn thử nghiệm beta trên Wikipedia tiếng Ả Rập, tiếng Pháp, tiếng Indonesia, tiếng Việt và tiếng Trung, và được bật mặc định cho tất cả các tài khoản mới trên tất cả các trang Wikipedia. * Một thử nghiệm khám phá việc mở rộng [[mw:Special:MyLanguage/Readers/Reader Growth/Mobile page previews|tính năng Xem trước Trang cho trang web di động]] sẽ được triển khai trong tuần ngày 20 tháng 4 trên các trang Wikipedia tiếng Ả Rập, tiếng Anh, tiếng Pháp, tiếng Ý, tiếng Ba Lan và tiếng Việt. Tính năng Xem trước Trang là pop-up hiển thị hình thu nhỏ kèm liên kết mở toàn bộ bài viết từ liên kết xanh, từ đó cải thiện khả năng tìm kiếm nội dung. Tính năng này hiện đã có sẵn trên máy tính để bàn và trong ứng dụng. [[m:Special:MyLanguage/List of experiments in Product and Technology#Template|Đọc thêm về thử nghiệm này cùng những thử nghiệm khác]]. * Trên một số trang wiki, những biên tập viên đã đăng nhập nhưng chưa [[mw:Special:MyLanguage/Help:Email confirmation|xác nhận địa chỉ thư điện tử (email) của mình]] nay có thể nhìn thấy một biểu ngữ khuyến khích họ làm vậy. Việc xác nhận địa chỉ email cho phép người dùng khôi phục quyền truy cập vào tài khoản nếu họ bị mất quyền truy cập đó. [[mw:Special:MyLanguage/Product Safety and Integrity/Account Security#Encouraging users to confirm their email addresses|Tìm hiểu thêm]]. [https://phabricator.wikimedia.org/T421366] * [[File:Reload icon with two arrows.svg|12px|link=|class=skin-invert|Đề mục định kỳ]] Xem tất cả {{formatnum:15}} {{PLURAL:15|tác vụ}} được tạo bởi cộng đồng đã được [[m:Special:MyLanguage/Tech/News/Recently resolved community tasks|giải quyết vào tuần trước]]. Ví dụ, một vấn đề mà việc sửa đổi các trang wiki rất lớn trong trình soạn thảo mã wiki 2017 gây ra hiện tượng tải chậm, bị trễ khi xem trước và cuộn, cũng như các vấn đề về hiệu suất khi chọn, cắt hay dán nội dung, nay đã được giải quyết. [https://phabricator.wikimedia.org/T184857] '''Cập nhật cho những người đóng góp vào mảng kỹ thuật''' * Là một phần của việc nâng cấp [[mw:Special:MyLanguage/Help:Extension:CodeMirror|CodeMirror]] từ tính năng beta lên làm tính năng chính thức, tất cả người dùng sẽ sử dụng [[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] thay vì [[mw:Special:MyLanguage/Extension:CodeEditor|CodeEditor]] làm trình tô sáng cú pháp khi sửa đổi các trang nội dung bằng JavaScript, CSS, JSON, Vue và Lua. [https://phabricator.wikimedia.org/T419332] * Dịch vụ <code>mirrors.wikimedia.org</code> dành cho người dùng Debian và Ubuntu sẽ kết thúc hỗ trợ và ngừng hoạt động vào ngày 15 tháng 5. Tài nguyên dịch vụ này sẽ được thay thế bằng những tùy chọn mới và tốt hơn. Một số người dùng có thể cần phải chuyển sang máy chủ khác, quá trình này sẽ mất khoảng một phút. [https://lists.wikimedia.org/hyperkitty/list/wikitech-l@lists.wikimedia.org/thread/LJYRIS4WB66HIRCAO4GIDTXCMDVZRBMA/ Bạn có thể đọc thêm]. [https://phabricator.wikimedia.org/T416707] * Bảng <bdi lang="zxx" dir="ltr"><code><nowiki>image</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>oldimage</nowiki></code></bdi> sẽ bị loại bỏ khỏi [[wikitech:Help:Wiki Replicas|wikireplicas]]. Nếu công cụ hoặc truy vấn của bạn truy cập trực tiếp vào <bdi lang="zxx" dir="ltr"><code><nowiki>image</nowiki></code></bdi> hoặc <bdi lang="zxx" dir="ltr"><code><nowiki>oldimage</nowiki></code></bdi>, vui lòng cập nhật chúng để sử dụng bảng <bdi lang="zxx" dir="ltr"><code><nowiki>file</nowiki></code></bdi> và <bdi lang="zxx" dir="ltr"><code><nowiki>filerevision</nowiki></code></bdi> trước ngày 28 tháng 5. [https://phabricator.wikimedia.org/T28741] * Sau việc triển khai những giới hạn tần suất truy cập API toàn cục gần đây đối với lưu lượng truy cập không xác định, Quỹ Wikimedia sẽ tiếp tục nỗ lực đảm bảo việc [[mw:Special:MyLanguage/MediaWiki Product Insights/Responsible Reuse|sử dụng hợp lý cơ sở hạ tầng]] bằng cách áp dụng giới hạn toàn cục đối với lưu lượng truy cập API xác định kể từ tuần cuối cùng của tháng 4. Những giới hạn này được cố ý đặt ở mức cao nhất có thể để giảm thiểu tác động đến cộng đồng. Các bot chạy trong Toolforge/WMCS hoặc có quyền thành viên bot trên bất kỳ wiki nào hiện sẽ không bị ảnh hưởng. Dù vậy, tất cả các nhà phát triển được khuyến cáo nên tuân theo những thực tiễn tốt nhất đã được cập nhật. Để biết thêm thông tin, hãy xem [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits|API Wikimedia/Giới hạn tần suất]] và [[mw:Special:MyLanguage/Wikimedia APIs/Rate limits/FAQ|Câu hỏi Thường gặp]]. * [[mw:Special:MyLanguage/Attribution API|API Ghi công]] hiện có sẵn dưới dạng [[mw:Special:MyLanguage/Wikimedia APIs/Stability policy|tính năng beta]]. API này lấy thông tin nhằm ghi công các bài viết và tập tin phương tiện của Wikimedia bất kỳ chỗ nào mà chúng được sử dụng. Trang tài liệu tham khảo có sẵn thông qua trang đặc biệt Chỗ thử REST có mặt trên tất cả các trang wiki của Wikimedia (chẳng hạn như [https://en.wikipedia.org/w/index.php?api=attribution.v0-beta&title=Special%3ARestSandbox chỗ thử REST trên Wikipedia tiếng Anh]). Hãy chia sẻ phản hồi của bạn trên [[mw:Talk:Attribution API|trang thảo luận dự án]]. * Tuần này không có phiên bản MediaWiki mới nào. '''''[[m:Special:MyLanguage/Tech/News|Tin tức Kỹ thuật]]''' do [[m:Special:MyLanguage/Tech/News/Writers|các biên tập viên Bản tin Kỹ thuật]] chuẩn bị và được đăng bởi [[m:Special:MyLanguage/User:MediaWiki message delivery|bot]]&nbsp;• [[m:Special:MyLanguage/Tech/News#contribute|Đóng góp]]&nbsp;• [[m:Special:MyLanguage/Tech/News/2026/17|Biên dịch]]&nbsp;• [[m:Tech|Nhờ giúp đỡ]]&nbsp;• [[m:Talk:Tech/News|Phản hồi]]&nbsp;• [[m:Global message delivery/Targets/Tech ambassadors|Đăng ký hoặc huỷ đăng ký]].'' </div><section end="technews-2026-W17"/> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15:00, ngày 20 tháng 4 năm 2026 (UTC) <!-- Tin nhắn của Thành viên:STei (WMF)@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Tech_ambassadors&oldid=30432763 --> == Request for comment (global AI policy) == <bdi lang="en" dir="ltr" class="mw-content-ltr"> Apologies for writing in English. {{int:Please-translate}} A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}} [[Thành viên:MediaWiki message delivery|MediaWiki message delivery]] ([[Thảo luận Thành viên:MediaWiki message delivery|thảo luận]]) 00:58, ngày 26 tháng 4 năm 2026 (UTC) </bdi> <!-- Tin nhắn của Thành viên:Codename Noreste@metawiki gửi cho mọi người trong danh sách tại https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 --> 808jrnh0joqndiq5xkycttzv51pk272 0 235175 2348622 2030546 2026-04-26T05:20:45Z Hiyuune 50834 2348622 wikitext text/x-wiki {{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=193|rad=鬲|as=08|sn=18|four=71227|canj=MUMRB|ids=⿱兓鬲}} ===={{section|drv}}==== * {{charlist|sc=Hani|灊}} {{col-top|1|Các ký tự dẫn xuất}} * {{charlist|sc=Hani|𨽨𣠟}} {{col-bottom}} ===={{section|ref}}==== {{Han ref|kx=1459.210|dkj=45695|dj=1992.050|hdz=74589.060|uh=9B35}} =={{langname|ja}}== ==={{section|kanji}}=== {{ja-kanji|grade=|rs=鬲08}} ===={{section|reading}}==== * {{ja-readings|on=せん, ぜん, しん, じん|kun=おおがま}} =={{langname|zh}}== {{zh-forms|alt=𩰿,𩱩,𢑋,𩱠}} ==={{section|glyph origin}}=== {{Han etym}} {{Han compound|兓|鬲|ls=psc|c1=p|c2=s}}. ==={{section|etym}}=== Có khả năng liên quan đến {{och-l|甑}} ({{zh-ref|Wang, 1982}}). ==={{section|pron}}=== {{zh-pron |m=qín,xín |c=cam4,cim4 |mc=y |oc=y |cat=n }} ==={{section|dfn}}=== {{head|zh|Hanzi}} # {{lb|zh|literary}} [[vạc|Vạc]] (để nấu). m9o1xtstfz6rqqjeulvaq376zqkofca Boehmeria nivea 0 243270 2348647 1444335 2026-04-26T06:18:23Z Hiyuune 50834 Đã lùi lại sửa đổi của [[Special:Contributions/Nguyentrongphu|Nguyentrongphu]] ([[User talk:Nguyentrongphu|thảo luận]]) quay về phiên bản cuối của [[User:115.74.65.215|115.74.65.215]] 1443949 wikitext text/x-wiki Cây Boehmeria nivea là cây gai. 9dv0btze3qd7g2dql6gpv5dbavup5px 2348648 2348647 2026-04-26T06:18:38Z Hiyuune 50834 2348648 wikitext text/x-wiki =={{langname|mul}}== [[File:Boehmeria nivea Blanco2.385.png|thumb|'''''Boehmeria nivea''''']] ==={{section|pr-noun}}=== {{taxoninfl|i=1|g=f|head=[[Boehmeria]] {{epinew|niveus|nivea|la}}}} # {{taxon|loài|họ|Urticaceae|cây lá gai}} ===={{section|hyper}}==== * {{sense|loài}} bộ {{--}} {{taxfmt|Rosales|bộ}}; họ {{--}} {{taxfmt|Urticaceae|họ}}; chi {{--}} {{taxfmt|Boehmeria|chi}} ==={{section|ref}}=== * {{pedia|i=1}} * {{specieslite|i=1}} * {{comcatlite|i=1}} * {{R:USDA Plants|BONI2}} * {{R:Tropicos|33400386}} * {{R:ITIS|19122}} * {{R:EOL|594795}} * {{R:NCBI|83906}} * {{R:GRIN|taxonomydetail|7290}} * {{R:TPL|Boehmeria+nivea}} 5b7ld4noi9s6n73grxlhpiuzmc7y8lo Hùng Vương 0 246969 2348581 2317987 2026-04-26T02:37:47Z TheHighFighter2 42988 2348581 wikitext text/x-wiki =={{langname|vi}}== {{-info-}} ==={{ĐM|etym}}=== {{vi-etym-sino|雄王}}. ==={{ĐM|pron}}=== {{vi-pron}} ==={{ĐM|pr-noun}}=== {{vi-proper noun|head=[[hùng|Hùng]] [[vương|Vương]]}} # Danh hiệu chung cho 18 đời [[vua]] của nước [[Văn Lang]]. ===={{ĐM|syn}}==== * [[vua Hùng]] ===={{ĐM|trans}}==== {{trans-top|Vua của nước Văn Lang}} * {{langname|en}}: {{t|en|Hung King}}, {{t|en|Hùng King}} {{trans-bottom}} 8etmgp2mlvhd1lf37jm45u75axl2k4n chên 0 250446 2348630 1993515 2026-04-26T05:51:06Z Hiyuune 50834 2348630 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "chen"}} =={{langname|vi}}== ==={{section|preposition}}=== {{head|vi|Giới từ}} # {{misspelling of|vi|trên}} =={{langname|nan-hbl}}== {{zh-see|錢|poj}} =={{langname|mkh-mvi}}== ==={{section|etym}}=== Từ {{inh|mkh-mvi|mkh-vie-pro|*ɟiːŋ||chân}}, từ {{inh|mkh-mvi|mkh-pro|*ɟuŋ||}} ~ {{mention|mkh-pro|*ɟuəŋ||}} ~ {{mention|mkh-pro|*ɟəŋ||chân}}. ==={{section|n}}=== {{head|mkh-mvi|Danh từ}} # {{lb|mkh-mvi|anatomy}} [[chân|Chân]]. #: {{ux|mkh-mvi|Gót '''chên'''.|Gót chân.}} ===={{section|desc}}==== * {{desc|vi|chân}} ==={{section|ref}}=== * {{R:VBL}} mc3vkxikfs198usey8mr0gm7t7a2rlu 2348631 2348630 2026-04-26T05:52:02Z Hiyuune 50834 2348631 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "chen"}} =={{langname|vi}}== ==={{section|preposition}}=== {{head|vi|Giới từ}} # {{misspelling of|vi|trên}} =={{langname|nan-hbl}}== {{zh-see|錢|poj}} =={{langname|rgn}}== ==={{section|alt}}=== * {{alter|rgn|cân}} ==={{section|n}}=== {{rgn-noun|m|chën}} {{tlb|rgn|Ca}} # [[chó|Chó]]. =={{langname|mkh-mvi}}== ==={{section|etym}}=== Từ {{inh|mkh-mvi|mkh-vie-pro|*ɟiːŋ||chân}}, từ {{inh|mkh-mvi|mkh-pro|*ɟuŋ||}} ~ {{mention|mkh-pro|*ɟuəŋ||}} ~ {{mention|mkh-pro|*ɟəŋ||chân}}. ==={{section|n}}=== {{head|mkh-mvi|Danh từ}} # {{lb|mkh-mvi|anatomy}} [[chân|Chân]]. #: {{ux|mkh-mvi|Gót '''chên'''.|Gót chân.}} ===={{section|desc}}==== * {{desc|vi|chân}} ==={{section|ref}}=== * {{R:VBL}} gmun53yg67t0k43f95z1gbydzh56gne 2348652 2348631 2026-04-26T06:30:17Z TheHighFighter2 42988 "Trên" có thể viết sai thành "chên", nhưng cách viết sai này liệu có phổ biến đến mức có mặt ở đây hay không 2348652 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "chen"}} =={{langname|nan-hbl}}== {{zh-see|錢|poj}} =={{langname|rgn}}== ==={{section|alt}}=== * {{alter|rgn|cân}} ==={{section|n}}=== {{rgn-noun|m|chën}} {{tlb|rgn|Ca}} # [[chó|Chó]]. =={{langname|mkh-mvi}}== ==={{section|etym}}=== Từ {{inh|mkh-mvi|mkh-vie-pro|*ɟiːŋ||chân}}, từ {{inh|mkh-mvi|mkh-pro|*ɟuŋ||}} ~ {{mention|mkh-pro|*ɟuəŋ||}} ~ {{mention|mkh-pro|*ɟəŋ||chân}}. ==={{section|n}}=== {{head|mkh-mvi|Danh từ}} # {{lb|mkh-mvi|anatomy}} [[chân|Chân]]. #: {{ux|mkh-mvi|Gót '''chên'''.|Gót chân.}} ===={{section|desc}}==== * {{desc|vi|chân}} ==={{section|ref}}=== * {{R:VBL}} kq8pd0gxj3itco9rgx7gmteh4t1to0r Mô đun:script utilities 828 256185 2348521 2320287 2026-04-25T14:27:56Z TheHighFighter2 42988 2348521 Scribunto text/plain local export = {} local anchors_module = "Module:anchors" local debug_track_module = "Module:debug/track" local links_module = "Module:links" local munge_text_module = "Module:munge text" local parameters_module = "Module:parameters" local scripts_module = "Module:scripts" local string_utilities_module = "Module:string utilities" local utilities_module = "Module:utilities" local concat = table.concat local insert = table.insert local require = require local toNFD = mw.ustring.toNFD local dump = mw.dumpObject --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function embedded_language_links(...) embedded_language_links = require(links_module).embedded_language_links return embedded_language_links(...) end local function find_best_script_without_lang(...) find_best_script_without_lang = require(scripts_module).findBestScriptWithoutLang return find_best_script_without_lang(...) end local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_script(...) get_script = require(scripts_module).getByCode return get_script(...) end local function language_anchor(...) language_anchor = require(anchors_module).language_anchor return language_anchor(...) end local function munge_text(...) munge_text = require(munge_text_module) return munge_text(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end local function u(...) u = require(string_utilities_module).char return u(...) end local function ugsub(...) ugsub = require(string_utilities_module).gsub return ugsub(...) end local function umatch(...) umatch = require(string_utilities_module).match return umatch(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local m_data local function get_data() m_data, get_data = mw.loadData("Module:script utilities/data"), nil return m_data end --[=[ Modules used: [[Module:script utilities/data]] [[Module:scripts]] [[Module:anchors]] (only when IDs present) [[Module:string utilities]] (only when hyphens in Korean text or spaces in vertical text) [[Module:languages]] [[Module:parameters]] [[Module:utilities]] [[Module:debug/track]] ]=] function export.is_Latin_script(sc) -- Latn, Latf, Latg, pjt-Latn return sc:getCode():find("Lat") and true or false end --[==[{{temp|#invoke:script utilities|lang_t}} This is used by {{temp|lang}} to wrap portions of text in a language tag. See there for more information.]==] do local function get_args(frame) return process_params(frame:getParent().args, { [1] = {required = true, type = "language", default = "und"}, [2] = {required = true, allow_empty = true, default = ""}, ["sc"] = {type = "script"}, ["face"] = true, ["class"] = true, }) end function export.lang_t(frame) local args = get_args(frame) local lang = args[1] local sc = args["sc"] local text = args[2] local cats = {} if sc then -- Track uses of sc parameter. if sc:getCode() == lang:findBestScript(text):getCode() then insert(cats, "Mục từ có mã chữ viết thừa " .. lang:getFullName()) else insert(cats, "Mục từ có mã chữ viết thủ công không thừa " .. lang:getFullName()) end else sc = lang:findBestScript(text) end text = embedded_language_links{ term = text, lang = lang, sc = sc } cats = #cats > 0 and format_categories(cats, lang, "-", nil, nil, sc) or "" local face = args["face"] local class = args["class"] return export.tag_text(text, lang, sc, face, class) .. cats end end -- Ustring turns on the codepoint-aware string matching. The basic string function -- should be used for simple sequences of characters, Ustring function for -- sets – []. local function trackPattern(text, pattern, tracking) if pattern and umatch(text, pattern) then track("script/" .. tracking) end end local function track_text(text, lang, sc) if lang and text then local langCode = lang:getFullCode() -- [[Special:WhatLinksHere/Wiktionary:Tracking/script/ang/acute]] if langCode == "ang" then local decomposed = toNFD(text) local acute = u(0x301) trackPattern(decomposed, acute, "ang/acute") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-phi]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-theta]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-kappa]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-rho]] ϑ, ϰ, ϱ, ϕ should generally be replaced with θ, κ, ρ, φ. ]=] elseif langCode == "el" or langCode == "grc" then trackPattern(text, "ϑ", "Greek/wrong-theta") trackPattern(text, "ϰ", "Greek/wrong-kappa") trackPattern(text, "ϱ", "Greek/wrong-rho") trackPattern(text, "ϕ", "Greek/wrong-phi") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Ancient Greek/spacing-coronis]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Ancient Greek/spacing-smooth-breathing]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Ancient Greek/wrong-apostrophe]] When spacing coronis and spacing smooth breathing are used as apostrophes, they should be replaced with right single quotation marks (’). ]=] if langCode == "grc" then trackPattern(text, u(0x1FBD), "Ancient Greek/spacing-coronis") trackPattern(text, u(0x1FBF), "Ancient Greek/spacing-smooth-breathing") trackPattern(text, "[" .. u(0x1FBD) .. u(0x1FBF) .. "]", "Ancient Greek/wrong-apostrophe", true) end -- [[Special:WhatLinksHere/Wiktionary:Tracking/script/Russian/grave-accent]] elseif langCode == "ru" then local decomposed = toNFD(text) trackPattern(decomposed, u(0x300), "Russian/grave-accent") -- [[Special:WhatLinksHere/Wiktionary:Tracking/script/Chuvash/latin-homoglyph]] elseif langCode == "cv" then trackPattern(text, "[ĂăĔĕÇçŸÿ]", "Chuvash/latin-homoglyph") -- [[Special:WhatLinksHere/Wiktionary:Tracking/script/Tibetan/trailing-punctuation]] elseif langCode == "bo" then trackPattern(text, "[་།]$", "Tibetan/trailing-punctuation") trackPattern(text, "[་།]%]%]$", "Tibetan/trailing-punctuation") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Thai/broken-ae]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Thai/broken-am]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Thai/wrong-rue-lue]] ]=] elseif langCode == "th" then trackPattern(text, "เ".."เ", "Thai/broken-ae") trackPattern(text, "ํ[่้๊๋]?า", "Thai/broken-am") trackPattern(text, "[ฤฦ]า", "Thai/wrong-rue-lue") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/broken-ae]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/broken-am]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/possible-broken-ho-no]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/possible-broken-ho-mo]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/possible-broken-ho-lo]] ]=] elseif langCode == "lo" then trackPattern(text, "ເ".."ເ", "Lao/broken-ae") trackPattern(text, "ໍ[່້໊໋]?າ", "Lao/broken-am") trackPattern(text, "ຫນ", "Lao/possible-broken-ho-no") trackPattern(text, "ຫມ", "Lao/possible-broken-ho-mo") trackPattern(text, "ຫລ", "Lao/possible-broken-ho-lo") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lü/broken-ae]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lü/possible-wrong-sequence]] ]=] elseif langCode == "khb" then trackPattern(text, "ᦵ".."ᦵ", "Lü/broken-ae") trackPattern(text, "[ᦀ-ᦫ][ᦵᦶᦷᦺ]", "Lü/possible-wrong-sequence") end end end local function Kore_ruby(txt) return (ugsub(txt, "([%-".. get_script("Hani"):getCharacters() .. "]+)%(([%-" .. get_script("Hang"):getCharacters() .. "]+)%)", "<ruby>%1<rp>(</rp><rt>%2</rt><rp>)</rp></ruby>")) end --[==[Wraps the given text in HTML tags with appropriate CSS classes (see [[WT:CSS]]) for the [[Module:languages#Language objects|language]] and script. This is required for all non-English text on Wiktionary. The actual tags and CSS classes that are added are determined by the <code>face</code> parameter. It can be one of the following: ; {{code|lua|"term"}} : The text is wrapped in {{code|html|2=<i class="(sc) mention" lang="(lang)">...</i>}}. ; {{code|lua|"head"}} : The text is wrapped in {{code|html|2=<strong class="(sc) headword" lang="(lang)">...</strong>}}. ; {{code|lua|"hypothetical"}} : The text is wrapped in {{code|html|2=<span class="hypothetical-star">*</span><i class="(sc) hypothetical" lang="(lang)">...</i>}}. ; {{code|lua|"bold"}} : The text is wrapped in {{code|html|2=<b class="(sc)" lang="(lang)">...</b>}}. ; {{code|lua|nil}} : The text is wrapped in {{code|html|2=<span class="(sc)" lang="(lang)">...</span>}}. The optional <code>class</code> parameter can be used to specify an additional CSS class to be added to the tag.]==] function export.tag_text(text, lang, sc, face, class, id) if not sc then if lang then sc = lang:findBestScript(text) else sc = find_best_script_without_lang(text) end end track_text(text, lang, sc) -- Replace space characters with newlines in Mongolian-script text, which is written top-to-bottom. if sc:getDirection():find("vertical", nil, true) and text:find(" ", nil, true) then text = munge_text(text, function(txt) -- having extra parentheses makes sure only the first return value gets through return (txt:gsub(" +", "<br>")) end) end -- Hack Korean script text to remove hyphens. -- FIXME: This should be handled in a more general fashion, but needs to -- be efficient by not doing anything if no hyphens are present, and currently this is the only -- language needing such processing. -- 20220221: Also convert 漢字(한자) to ruby, instead of needing [[Template:Ruby]]. if sc:getCode() == "Kore" and text:match("[%-()g]") then local title, display = require("Module:links").get_wikilink_parts(text, true) if title ~= nil then -- special case that the text is a single link, do not munge and preserve affix hyphens if lang and lang:getCode() == "okm" then -- Middle Korean code from [[User:Chom.kwoy]] -- Comment from [[User:Lunabunn]]: -- In Middle Korean orthography, syllable formation is phonemic as opposed to morpheme-boundary-based a la -- modern Korean. As such, for example, if you were to write nam-i, it would be rendered as na.mi so if you -- then put na-mi to indicate particle boundaries as in modern Korean, the hyphen would be misplaced. -- Previously, this was alleviated by specialcasing na--mi but [[User:Theknightwho]] made that resolve to - -- in the Hangul (previously we used to just delete all -s in Hangul processing), so it broke. -- [[User:Chom.kwoy]] implemented a different solution, which is writing -> instead using however many >s to -- shift the hyphen by that number of letters in the romanization. -- By the time we are called, > signs have been converted to &gt; by a call to encode_entities() in -- make_link() in [[Module:links]] (near the bottom of the function). display = display:gsub("&gt;", "") -- 'g' in Middle Korean is a special sign to treat the following ㅇ sign as /G/ instead of null. display = display:gsub("g", "") end if display:find("<") then display = munge_text(display, function(txt) txt = txt:gsub("(.)%-(%-?)(.)", "%1%2%3") txt = Kore_ruby(txt) return txt end) else display = display:gsub("(.)%-(%-?)(.)", "%1%2%3") display = Kore_ruby(display) end text = "[[" .. title .. "|" .. display .. "]]" else text = munge_text(text, function(txt) if lang and lang:getCode() == "okm" then txt = txt:gsub("&gt;", "") txt = txt:gsub("g", "") end if txt == text then -- special case for the entire text being plain txt = txt:gsub("(.)%-(%-?)(.)", "%1%2%3") else txt = txt:gsub("%-(%-?)", "%1") end txt = Kore_ruby(txt) return txt end) end end if sc:getCode() == "Image" then face = nil end if face == "hypothetical" then -- [[Special:WhatLinksHere/Wiktionary:Tracking/script-utilities/face/hypothetical]] track("script-utilities/face/hypothetical") end local data = (m_data or get_data()).faces[face or "plain"] if data == nil then error('Invalid script face "' .. face .. '".') end local tag = data.tag local opening_tag = {tag} if lang and id then insert(opening_tag, 'id="' .. language_anchor(lang, id) .. '"') end local classes = {data.class} -- if the script code is hyphenated (i.e. language code-script code, add the last component as a class as well) -- e.g. ota-Arab adds both Arab and ota-Arab as classes if sc:getCode():find("-", nil, true) then insert(classes, 1, (ugsub(sc:getCode(), ".+%-", ""))) insert(classes, 2, sc:getCode()) else insert(classes, 1, sc:getCode()) end if class and class ~= '' then insert(classes, class) end insert(opening_tag, 'class="' .. concat(classes, ' ') .. '"') -- FIXME: Is it OK to insert the etymology-only lang code and have it fall back to the first part of the -- lang code (by chopping off the '-...' part)? It seems the :lang() selector does this; not sure about -- [lang=...] attributes. if lang then insert(opening_tag, 'lang="' .. lang:getFullCode() .. '"') end -- Add a script wrapper return (data.prefix or "") .. "<" .. concat(opening_tag, " ") .. ">" .. text .. "</" .. tag .. ">" end --[==[Tags the transliteration for given text {translit} and language {lang}. It will add the language, script subtag (as defined in [https://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47 2.2.3]) and [https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir dir] (directional) attributes as needed. The optional <code>kind</code> parameter can be one of the following: ; {{code|lua|"term"}} : tag transliteration for {{temp|mention}} ; {{code|lua|"usex"}} : tag transliteration for {{temp|usex}} ; {{code|lua|"head"}} : tag transliteration for {{temp|head}} ; {{code|lua|"default"}} : default The optional <code>attributes</code> parameter is used to specify additional HTML attributes for the tag.]==] function export.tag_translit(translit, lang, kind, attributes, is_manual) if type(lang) == "table" then -- FIXME: Do better support for etym languages; see https://www.rfc-editor.org/rfc/bcp/bcp47.txt lang = lang.getFullCode and lang:getFullCode() or error("Second argument to tag_translit should be a language code or language object.") end local data = (m_data or get_data()).translit[kind or "default"] local tag = data.tag local opening_tag = {tag} local class = data.class if lang == "ja" then insert(opening_tag, 'class="' .. (class and (class .. " ") or "") .. (is_manual and "manual-tr " or "") .. 'tr"') else insert(opening_tag, 'lang="' .. lang .. '-Latn"') insert(opening_tag, 'class="' .. (class and (class .. " ") or "") .. (is_manual and "manual-tr " or "") .. 'tr Latn"') end local dir = data.dir if dir then insert(opening_tag, 'dir="' .. dir .. '"') end if attributes then track("tag_translit/attributes") insert(opening_tag, attributes) end return "<" .. concat(opening_tag, " ") .. ">" .. translit .. "</" .. tag .. ">" end function export.tag_transcription(transcription, lang, kind, attributes) if type(lang) == "table" then -- FIXME: Do better support for etym languages; see https://www.rfc-editor.org/rfc/bcp/bcp47.txt lang = lang.getFullCode and lang:getFullCode() or error("Second argument to tag_transcription should be a language code or language object.") end local data = (m_data or get_data()).transcription[kind or "default"] local tag = data.tag local opening_tag = {tag} local class = data.class if lang == "ja" then insert(opening_tag, 'class="' .. (class and (class .. " ") or "") .. 'ts"') else insert(opening_tag, 'lang="' .. lang .. '-Latn"') insert(opening_tag, 'class="' .. (class and (class .. " ") or "") .. 'ts Latn"') end local dir = data.dir if dir then insert(opening_tag, 'dir="' .. dir .. '"') end if attributes then track("tag_transcription/attributes") insert(opening_tag, attributes) end return "<" .. concat(opening_tag, " ") .. ">" .. transcription .. "</" .. tag .. ">" end --[==[Tags {def} as a definition. The <code>def</code> parameter must be one of the following: ; {{code|lua|"gloss"}} : The text is wrapped in {{code|html|2=<span class="(mention-gloss">...</span>}}. ; {{code|lua|"non-gloss"}} : The text is wrapped in {{code|html|2=<span class="use-with-mention">...</span>}}. The optional <code>attributes</code> parameter is used to specify additional HTML attributes for the tag.]==] function export.tag_definition(def, kind, attributes) local data = (m_data or get_data()).definition[kind] if data == nil then error("Second argument to tag_definition should specify the kind of definition from the list in [[Module:script utilities/data]].") end local tag = data.tag local opening_tag = {tag} local class = data.class if class then insert(opening_tag, 'class="' .. class .. '"') end if attributes then insert(opening_tag, attributes) end return "<" .. concat(opening_tag, " ") .. ">" .. def .. "</" .. tag .. ">" end --[==[Generates a request to provide a term in its native script, if it is missing. This is used by the {{temp|rfscript}} template as well as by the functions in [[Module:links]]. The function will add entries to one of the subcategories of [[:Category:Requests for native script by language]], and do several checks on the given language and script. In particular: * If the script was given, a subcategory named "Requests for (script) script" is added, but only if the language has more than one script. Otherwise, the main "Requests for native script" category is used. * Nothing is added at all if the language has no scripts other than Latin and its varieties.]==] function export.request_script(lang, sc, usex, nocat, sort_key) local scripts = lang.getScripts and lang:getScripts() or error('The language "' .. lang:getCode() .. '" does not have the method getScripts. It may be unwritten.') -- By default, request for "native" script local cat_script = "bản địa" local disp_script = "chữ viết" -- If the script was not specified, and the language has only one script, use that. if not sc and #scripts == 1 then sc = scripts[1] end -- Is the script known? if sc and sc:getCode() ~= "None" then -- If the script is Latin, return nothing. if export.is_Latin_script(sc) then return "" end if (not scripts[1]) or sc:getCode() ~= scripts[1]:getCode() then disp_script = sc:getCanonicalName() end -- The category needs to be specific to script only if there is chance of ambiguity. This occurs when when the language has multiple scripts (or with codes such as "und"). if (not scripts[1]) or scripts[2] then cat_script = sc:getCanonicalName() end else -- The script is not known. -- Does the language have at least one non-Latin script in its list? local has_nonlatin = false for _, val in ipairs(scripts) do if not export.is_Latin_script(val) then has_nonlatin = true break end end -- If there are no non-Latin scripts, return nothing. if not has_nonlatin and lang:getCode() ~= "und" then return "" end end -- Etymology languages have their own categories, whose parents are the regular language. return "<small>[cần " .. disp_script .. "]</small>" .. (nocat and "" or format_categories("Yêu cầu chữ viết " .. cat_script .. " " .. (usex and "" or "") .. " mục từ " .. lang:getCanonicalName() .. " " .. (usex == "quote" and "quotations" or usex and "usage examples" or ""), lang, sort_key ) ) end --[==[This is used by {{temp|rfscript}}. See there for more information.]==] function export.template_rfscript(frame) local boolean = {type = "boolean"} local args = process_params(frame:getParent().args, { [1] = {required = true, type = "language", default = "und"}, ["sc"] = {type = "script"}, ["usex"] = boolean, ["quote"] = boolean, ["nocat"] = boolean, ["sort"] = true, }) local ret = export.request_script(args[1], args["sc"], args.quote and "quote" or args.usex, args.nocat, args.sort) if ret == "" then error("This language is written in the Latin alphabet. It does not need a native script.") end return ret end function export.checkScript(text, scriptCode, result) local scriptObject = get_script(scriptCode) if not scriptObject then error('The script code "' .. scriptCode .. '" is not recognized.') end local originalText = text -- Remove non-letter characters. text = ugsub(text, "%A+", "") -- Remove all characters of the script in question. text = ugsub(text, "[" .. scriptObject:getCharacters() .. "]+", "") if text ~= "" then if type(result) == "string" then error(result) else error('The text "' .. originalText .. '" contains the letters "' .. text .. '" that do not belong to the ' .. scriptObject:getDisplayForm() .. '.', 2) end end end return export frenrex6do0n4yqwixjbkaiwx34ldj1 2348576 2348521 2026-04-25T22:32:05Z TheHighFighter2 42988 2348576 Scribunto text/plain local export = {} local anchors_module = "Module:anchors" local debug_track_module = "Module:debug/track" local links_module = "Module:links" local munge_text_module = "Module:munge text" local parameters_module = "Module:parameters" local scripts_module = "Module:scripts" local string_utilities_module = "Module:string utilities" local utilities_module = "Module:utilities" local concat = table.concat local insert = table.insert local require = require local toNFD = mw.ustring.toNFD local dump = mw.dumpObject --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function embedded_language_links(...) embedded_language_links = require(links_module).embedded_language_links return embedded_language_links(...) end local function find_best_script_without_lang(...) find_best_script_without_lang = require(scripts_module).findBestScriptWithoutLang return find_best_script_without_lang(...) end local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function get_script(...) get_script = require(scripts_module).getByCode return get_script(...) end local function language_anchor(...) language_anchor = require(anchors_module).language_anchor return language_anchor(...) end local function munge_text(...) munge_text = require(munge_text_module) return munge_text(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function track(...) track = require(debug_track_module) return track(...) end local function u(...) u = require(string_utilities_module).char return u(...) end local function ugsub(...) ugsub = require(string_utilities_module).gsub return ugsub(...) end local function umatch(...) umatch = require(string_utilities_module).match return umatch(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local m_data local function get_data() m_data, get_data = mw.loadData("Module:script utilities/data"), nil return m_data end --[=[ Modules used: [[Module:script utilities/data]] [[Module:scripts]] [[Module:anchors]] (only when IDs present) [[Module:string utilities]] (only when hyphens in Korean text or spaces in vertical text) [[Module:languages]] [[Module:parameters]] [[Module:utilities]] [[Module:debug/track]] ]=] function export.is_Latin_script(sc) -- Latn, Latf, Latg, pjt-Latn return sc:getCode():find("Lat") and true or false end --[==[{{temp|#invoke:script utilities|lang_t}} This is used by {{temp|lang}} to wrap portions of text in a language tag. See there for more information.]==] do local function get_args(frame) return process_params(frame:getParent().args, { [1] = {required = true, type = "language", default = "und"}, [2] = {required = true, allow_empty = true, default = ""}, ["sc"] = {type = "script"}, ["face"] = true, ["class"] = true, }) end function export.lang_t(frame) local args = get_args(frame) local lang = args[1] local sc = args["sc"] local text = args[2] local cats = {} if sc then -- Track uses of sc parameter. if sc:getCode() == lang:findBestScript(text):getCode() then insert(cats, "Mục từ có mã chữ viết thừa " .. lang:getFullName()) else insert(cats, "Mục từ có mã chữ viết thủ công không thừa " .. lang:getFullName()) end else sc = lang:findBestScript(text) end text = embedded_language_links{ term = text, lang = lang, sc = sc } cats = #cats > 0 and format_categories(cats, lang, "-", nil, nil, sc) or "" local face = args["face"] local class = args["class"] return export.tag_text(text, lang, sc, face, class) .. cats end end -- Ustring turns on the codepoint-aware string matching. The basic string function -- should be used for simple sequences of characters, Ustring function for -- sets – []. local function trackPattern(text, pattern, tracking) if pattern and umatch(text, pattern) then track("script/" .. tracking) end end local function track_text(text, lang, sc) if lang and text then local langCode = lang:getFullCode() -- [[Special:WhatLinksHere/Wiktionary:Tracking/script/ang/acute]] if langCode == "ang" then local decomposed = toNFD(text) local acute = u(0x301) trackPattern(decomposed, acute, "ang/acute") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-phi]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-theta]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-kappa]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-rho]] ϑ, ϰ, ϱ, ϕ should generally be replaced with θ, κ, ρ, φ. ]=] elseif langCode == "el" or langCode == "grc" then trackPattern(text, "ϑ", "Greek/wrong-theta") trackPattern(text, "ϰ", "Greek/wrong-kappa") trackPattern(text, "ϱ", "Greek/wrong-rho") trackPattern(text, "ϕ", "Greek/wrong-phi") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Ancient Greek/spacing-coronis]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Ancient Greek/spacing-smooth-breathing]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Ancient Greek/wrong-apostrophe]] When spacing coronis and spacing smooth breathing are used as apostrophes, they should be replaced with right single quotation marks (’). ]=] if langCode == "grc" then trackPattern(text, u(0x1FBD), "Ancient Greek/spacing-coronis") trackPattern(text, u(0x1FBF), "Ancient Greek/spacing-smooth-breathing") trackPattern(text, "[" .. u(0x1FBD) .. u(0x1FBF) .. "]", "Ancient Greek/wrong-apostrophe", true) end -- [[Special:WhatLinksHere/Wiktionary:Tracking/script/Russian/grave-accent]] elseif langCode == "ru" then local decomposed = toNFD(text) trackPattern(decomposed, u(0x300), "Russian/grave-accent") -- [[Special:WhatLinksHere/Wiktionary:Tracking/script/Chuvash/latin-homoglyph]] elseif langCode == "cv" then trackPattern(text, "[ĂăĔĕÇçŸÿ]", "Chuvash/latin-homoglyph") -- [[Special:WhatLinksHere/Wiktionary:Tracking/script/Tibetan/trailing-punctuation]] elseif langCode == "bo" then trackPattern(text, "[་།]$", "Tibetan/trailing-punctuation") trackPattern(text, "[་།]%]%]$", "Tibetan/trailing-punctuation") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Thai/broken-ae]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Thai/broken-am]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Thai/wrong-rue-lue]] ]=] elseif langCode == "th" then trackPattern(text, "เ".."เ", "Thai/broken-ae") trackPattern(text, "ํ[่้๊๋]?า", "Thai/broken-am") trackPattern(text, "[ฤฦ]า", "Thai/wrong-rue-lue") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/broken-ae]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/broken-am]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/possible-broken-ho-no]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/possible-broken-ho-mo]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/possible-broken-ho-lo]] ]=] elseif langCode == "lo" then trackPattern(text, "ເ".."ເ", "Lao/broken-ae") trackPattern(text, "ໍ[່້໊໋]?າ", "Lao/broken-am") trackPattern(text, "ຫນ", "Lao/possible-broken-ho-no") trackPattern(text, "ຫມ", "Lao/possible-broken-ho-mo") trackPattern(text, "ຫລ", "Lao/possible-broken-ho-lo") --[=[ [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lü/broken-ae]] [[Special:WhatLinksHere/Wiktionary:Tracking/script/Lü/possible-wrong-sequence]] ]=] elseif langCode == "khb" then trackPattern(text, "ᦵ".."ᦵ", "Lü/broken-ae") trackPattern(text, "[ᦀ-ᦫ][ᦵᦶᦷᦺ]", "Lü/possible-wrong-sequence") end end end local function Kore_ruby(txt) return (ugsub(txt, "([%-".. get_script("Hani"):getCharacters() .. "]+)%(([%-" .. get_script("Hang"):getCharacters() .. "]+)%)", "<ruby>%1<rp>(</rp><rt>%2</rt><rp>)</rp></ruby>")) end --[==[Wraps the given text in HTML tags with appropriate CSS classes (see [[WT:CSS]]) for the [[Module:languages#Language objects|language]] and script. This is required for all non-English text on Wiktionary. The actual tags and CSS classes that are added are determined by the <code>face</code> parameter. It can be one of the following: ; {{code|lua|"term"}} : The text is wrapped in {{code|html|2=<i class="(sc) mention" lang="(lang)">...</i>}}. ; {{code|lua|"head"}} : The text is wrapped in {{code|html|2=<strong class="(sc) headword" lang="(lang)">...</strong>}}. ; {{code|lua|"hypothetical"}} : The text is wrapped in {{code|html|2=<span class="hypothetical-star">*</span><i class="(sc) hypothetical" lang="(lang)">...</i>}}. ; {{code|lua|"bold"}} : The text is wrapped in {{code|html|2=<b class="(sc)" lang="(lang)">...</b>}}. ; {{code|lua|nil}} : The text is wrapped in {{code|html|2=<span class="(sc)" lang="(lang)">...</span>}}. The optional <code>class</code> parameter can be used to specify an additional CSS class to be added to the tag.]==] function export.tag_text(text, lang, sc, face, class, id) if not sc then if lang then sc = lang:findBestScript(text) else sc = find_best_script_without_lang(text) end end track_text(text, lang, sc) -- Replace space characters with newlines in Mongolian-script text, which is written top-to-bottom. if sc:getDirection():find("vertical", nil, true) and text:find(" ", nil, true) then text = munge_text(text, function(txt) -- having extra parentheses makes sure only the first return value gets through return (txt:gsub(" +", "<br>")) end) end -- Hack Korean script text to remove hyphens. -- FIXME: This should be handled in a more general fashion, but needs to -- be efficient by not doing anything if no hyphens are present, and currently this is the only -- language needing such processing. -- 20220221: Also convert 漢字(한자) to ruby, instead of needing [[Template:Ruby]]. if sc:getCode() == "Kore" and text:match("[%-()g]") then local title, display = require("Module:links").get_wikilink_parts(text, true) if title ~= nil then -- special case that the text is a single link, do not munge and preserve affix hyphens if lang and lang:getCode() == "okm" then -- Middle Korean code from [[User:Chom.kwoy]] -- Comment from [[User:Lunabunn]]: -- In Middle Korean orthography, syllable formation is phonemic as opposed to morpheme-boundary-based a la -- modern Korean. As such, for example, if you were to write nam-i, it would be rendered as na.mi so if you -- then put na-mi to indicate particle boundaries as in modern Korean, the hyphen would be misplaced. -- Previously, this was alleviated by specialcasing na--mi but [[User:Theknightwho]] made that resolve to - -- in the Hangul (previously we used to just delete all -s in Hangul processing), so it broke. -- [[User:Chom.kwoy]] implemented a different solution, which is writing -> instead using however many >s to -- shift the hyphen by that number of letters in the romanization. -- By the time we are called, > signs have been converted to &gt; by a call to encode_entities() in -- make_link() in [[Module:links]] (near the bottom of the function). display = display:gsub("&gt;", "") -- 'g' in Middle Korean is a special sign to treat the following ㅇ sign as /G/ instead of null. display = display:gsub("g", "") end if display:find("<") then display = munge_text(display, function(txt) txt = txt:gsub("(.)%-(%-?)(.)", "%1%2%3") txt = Kore_ruby(txt) return txt end) else display = display:gsub("(.)%-(%-?)(.)", "%1%2%3") display = Kore_ruby(display) end text = "[[" .. title .. "|" .. display .. "]]" else text = munge_text(text, function(txt) if lang and lang:getCode() == "okm" then txt = txt:gsub("&gt;", "") txt = txt:gsub("g", "") end if txt == text then -- special case for the entire text being plain txt = txt:gsub("(.)%-(%-?)(.)", "%1%2%3") else txt = txt:gsub("%-(%-?)", "%1") end txt = Kore_ruby(txt) return txt end) end end if sc:getCode() == "Image" then face = nil end if face == "hypothetical" then -- [[Special:WhatLinksHere/Wiktionary:Tracking/script-utilities/face/hypothetical]] track("script-utilities/face/hypothetical") end local data = (m_data or get_data()).faces[face or "plain"] if data == nil then error('Invalid script face "' .. face .. '".') end local tag = data.tag local opening_tag = {tag} if lang and id then insert(opening_tag, 'id="' .. language_anchor(lang, id) .. '"') end local classes = {data.class} -- if the script code is hyphenated (i.e. language code-script code, add the last component as a class as well) -- e.g. ota-Arab adds both Arab and ota-Arab as classes if sc:getCode():find("-", nil, true) then insert(classes, 1, (ugsub(sc:getCode(), ".+%-", ""))) insert(classes, 2, sc:getCode()) else insert(classes, 1, sc:getCode()) end if class and class ~= '' then insert(classes, class) end insert(opening_tag, 'class="' .. concat(classes, ' ') .. '"') -- FIXME: Is it OK to insert the etymology-only lang code and have it fall back to the first part of the -- lang code (by chopping off the '-...' part)? It seems the :lang() selector does this; not sure about -- [lang=...] attributes. if lang then insert(opening_tag, 'lang="' .. lang:getFullCode() .. '"') end -- Add a script wrapper return (data.prefix or "") .. "<" .. concat(opening_tag, " ") .. ">" .. text .. "</" .. tag .. ">" end --[==[Tags the transliteration for given text {translit} and language {lang}. It will add the language, script subtag (as defined in [https://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47 2.2.3]) and [https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir dir] (directional) attributes as needed. The optional <code>kind</code> parameter can be one of the following: ; {{code|lua|"term"}} : tag transliteration for {{temp|mention}} ; {{code|lua|"usex"}} : tag transliteration for {{temp|usex}} ; {{code|lua|"head"}} : tag transliteration for {{temp|head}} ; {{code|lua|"default"}} : default The optional <code>attributes</code> parameter is used to specify additional HTML attributes for the tag.]==] function export.tag_translit(translit, lang, kind, attributes, is_manual) if type(lang) == "table" then -- FIXME: Do better support for etym languages; see https://www.rfc-editor.org/rfc/bcp/bcp47.txt lang = lang.getFullCode and lang:getFullCode() or error("Second argument to tag_translit should be a language code or language object.") end local data = (m_data or get_data()).translit[kind or "default"] local tag = data.tag local opening_tag = {tag} local class = data.class if lang == "ja" then insert(opening_tag, 'class="' .. (class and (class .. " ") or "") .. (is_manual and "manual-tr " or "") .. 'tr"') else insert(opening_tag, 'lang="' .. lang .. '-Latn"') insert(opening_tag, 'class="' .. (class and (class .. " ") or "") .. (is_manual and "manual-tr " or "") .. 'tr Latn"') end local dir = data.dir if dir then insert(opening_tag, 'dir="' .. dir .. '"') end if attributes then track("tag_translit/attributes") insert(opening_tag, attributes) end return "<" .. concat(opening_tag, " ") .. ">" .. translit .. "</" .. tag .. ">" end function export.tag_transcription(transcription, lang, kind, attributes) if type(lang) == "table" then -- FIXME: Do better support for etym languages; see https://www.rfc-editor.org/rfc/bcp/bcp47.txt lang = lang.getFullCode and lang:getFullCode() or error("Second argument to tag_transcription should be a language code or language object.") end local data = (m_data or get_data()).transcription[kind or "default"] local tag = data.tag local opening_tag = {tag} local class = data.class if lang == "ja" then insert(opening_tag, 'class="' .. (class and (class .. " ") or "") .. 'ts"') else insert(opening_tag, 'lang="' .. lang .. '-Latn"') insert(opening_tag, 'class="' .. (class and (class .. " ") or "") .. 'ts Latn"') end local dir = data.dir if dir then insert(opening_tag, 'dir="' .. dir .. '"') end if attributes then track("tag_transcription/attributes") insert(opening_tag, attributes) end return "<" .. concat(opening_tag, " ") .. ">" .. transcription .. "</" .. tag .. ">" end --[==[Tags {def} as a definition. The <code>def</code> parameter must be one of the following: ; {{code|lua|"gloss"}} : The text is wrapped in {{code|html|2=<span class="(mention-gloss">...</span>}}. ; {{code|lua|"non-gloss"}} : The text is wrapped in {{code|html|2=<span class="use-with-mention">...</span>}}. The optional <code>attributes</code> parameter is used to specify additional HTML attributes for the tag.]==] function export.tag_definition(def, kind, attributes) local data = (m_data or get_data()).definition[kind] if data == nil then error("Second argument to tag_definition should specify the kind of definition from the list in [[Module:script utilities/data]].") end local tag = data.tag local opening_tag = {tag} local class = data.class if class then insert(opening_tag, 'class="' .. class .. '"') end if attributes then insert(opening_tag, attributes) end return "<" .. concat(opening_tag, " ") .. ">" .. def .. "</" .. tag .. ">" end --[==[Generates a request to provide a term in its native script, if it is missing. This is used by the {{temp|rfscript}} template as well as by the functions in [[Module:links]]. The function will add entries to one of the subcategories of [[:Category:Requests for native script by language]], and do several checks on the given language and script. In particular: * If the script was given, a subcategory named "Requests for (script) script" is added, but only if the language has more than one script. Otherwise, the main "Requests for native script" category is used. * Nothing is added at all if the language has no scripts other than Latin and its varieties.]==] function export.request_script(lang, sc, usex, nocat, sort_key) local scripts = lang.getScripts and lang:getScripts() or error('The language "' .. lang:getCode() .. '" does not have the method getScripts. It may be unwritten.') -- By default, request for "native" script local cat_script = "bản địa" local disp_script = "chữ viết" -- If the script was not specified, and the language has only one script, use that. if not sc and #scripts == 1 then sc = scripts[1] end -- Is the script known? if sc and sc:getCode() ~= "None" then -- If the script is Latin, return nothing. if export.is_Latin_script(sc) then return "" end if (not scripts[1]) or sc:getCode() ~= scripts[1]:getCode() then disp_script = sc:getCanonicalName() end -- The category needs to be specific to script only if there is chance of ambiguity. This occurs when when the language has multiple scripts (or with codes such as "und"). if (not scripts[1]) or scripts[2] then cat_script = sc:getCanonicalName() end else -- The script is not known. -- Does the language have at least one non-Latin script in its list? local has_nonlatin = false for _, val in ipairs(scripts) do if not export.is_Latin_script(val) then has_nonlatin = true break end end -- If there are no non-Latin scripts, return nothing. if not has_nonlatin and lang:getCode() ~= "und" then return "" end end -- Etymology languages have their own categories, whose parents are the regular language. return "<small>[cần bổ sung dạng " .. disp_script .. "]</small>" .. (nocat and "" or format_categories("Yêu cầu chữ viết " .. cat_script .. " " .. (usex and "" or "") .. " mục từ " .. lang:getCanonicalName() .. " " .. (usex == "quote" and "quotations" or usex and "usage examples" or ""), lang, sort_key ) ) end --[==[This is used by {{temp|rfscript}}. See there for more information.]==] function export.template_rfscript(frame) local boolean = {type = "boolean"} local args = process_params(frame:getParent().args, { [1] = {required = true, type = "language", default = "und"}, ["sc"] = {type = "script"}, ["usex"] = boolean, ["quote"] = boolean, ["nocat"] = boolean, ["sort"] = true, }) local ret = export.request_script(args[1], args["sc"], args.quote and "quote" or args.usex, args.nocat, args.sort) if ret == "" then error("This language is written in the Latin alphabet. It does not need a native script.") end return ret end function export.checkScript(text, scriptCode, result) local scriptObject = get_script(scriptCode) if not scriptObject then error('The script code "' .. scriptCode .. '" is not recognized.') end local originalText = text -- Remove non-letter characters. text = ugsub(text, "%A+", "") -- Remove all characters of the script in question. text = ugsub(text, "[" .. scriptObject:getCharacters() .. "]+", "") if text ~= "" then if type(result) == "string" then error(result) else error('The text "' .. originalText .. '" contains the letters "' .. text .. '" that do not belong to the ' .. scriptObject:getDisplayForm() .. '.', 2) end end end return export iedx0mpxgf9rjg4fvc3xhto39e65kzq chimie organique 0 258354 2348585 2014379 2026-04-26T03:04:13Z Kelly zhrm 58416 2348585 wikitext text/x-wiki =={{langname|fr}}== {{wp|fr:}} ==={{ĐM|pron}}=== * {{fr-IPA}} * {{audio|fr|LL-Q150 (fra)-GrandCelinien-chimie organique.wav|a=Paris}} * {{audio|fr|LL-Q150 (fra)-Lepticed7-chimie organique.wav|a=Toulouse}} * {{audio|fr|LL-Q150 (fra)-Poslovitch-chimie organique.wav|a=Vosges}} * {{audio|fr|LL-Q150 (fra)-WikiLucas00-chimie organique.wav|a=Lyon}} ==={{ĐM|n}}=== {{fr-noun|f|-}} # [[hóa học hữu cơ|Hóa học hữu cơ]]. #: {{cot|fr|chimie inorganique}} fh27nmfmuplgklez25ypl0ke8s9f2rm Wikipédia 0 261111 2348588 2280501 2026-04-26T03:13:08Z Kelly zhrm 58416 2348588 wikitext text/x-wiki {{also|Wikipedia|wikipedia|Wikipèdia}} =={{langname|pt}}== {{wp|pt:}} ==={{ĐM|etym}}=== {{etymon|pt|id=Wikipedia|:bor|en:Wikipedia<id:encyclopedia>|tree=1|text=+}} ==={{ĐM|pron}}=== {{pt-IPA|Wíkipédia}} * {{audio|pt|Wikipédia.ogg|a=Brazil}} * {{rhymes|pt|ɛd͡ʒiɐ|q1=Brazil|ɛdjɐ|q2=Portugal|s=5}} * {{hyph|pt|Wi|ki|pé|di|a}} ==={{ĐM|pr-noun}}=== {{pt-proper noun|f}} # [[Wikipedia]]. {{C|pt|Website}} =={{langname|hu}}== {{wp|hu:}} ==={{ĐM|pron}}=== * {{hu-IPA}} * {{hyphenation|hu|Wi|ki|pé|dia}} * {{rhymes|hu|jɒ|s=5}} ==={{ĐM|pr-noun}}=== {{head|hu|Danh từ riêng|số nhiều|Wikipédiák}} # [[Wikipedia]]. ===={{ĐM|decl}}==== {{hu-infl-nom|Wikipédiá|o}}{{hu-pos-tok|Wikipédiá}} =={{langname|fr}}== {{wp|fr:}} ==={{ĐM|pron}}=== * {{fr-IPA}} * {{audio|fr|LL-0x010C-fra-Wikipédia.wav}} * {{audio|fr|LL-Q150 (fra)-Opsylac-Wikipédia.wav|a=Grenoble}} * {{audio|fr|LL-Q150 (fra)-Poslovitch-Wikipédia.wav|a=Vosges}} * {{audio|fr|LL-Q150 (fra)-Jérémy-Günther-Heinz Jähnick-Wikipédia.wav|a=Somain}} * {{audio|fr|LL-Q150 (fra)-Bananax47-Wikipédia.wav|a=Agen}} * {{homophones|fr|Wikipédias}} ==={{ĐM|n}}=== {{fr-noun|mf}} # [[Wikipedia]]. {{C|fr|Website|Wiki}} =={{langname|sk}}== {{wp|sk:}} ==={{ĐM|pron}}=== * {{sk-IPA|t=loan|r=1|h=1}} ==={{ĐM|n}}=== {{sk-noun|f}} # [[Wikipedia]]. ===={{ĐM|decl}}==== {{sk-ndecl|f}} ==={{ĐM|further}}=== * {{R:sk:SDK}} nkyxaralh01g0z8yen639a3szfhld4m 2348589 2348588 2026-04-26T03:13:39Z Kelly zhrm 58416 /* {{langname|pt}} */ 2348589 wikitext text/x-wiki {{also|Wikipedia|wikipedia|Wikipèdia}} =={{langname|pt}}== {{wp|pt:}} ==={{ĐM|etym}}=== {{etymon|pt|id=Wikipedia|:bor|en:Wikipedia<id:encyclopedia>|tree=1|text=+}} ==={{ĐM|pron}}=== {{pt-IPA|Wíkipédia}} * {{audio|pt|Wikipédia.ogg|a=Brazil}} * {{rhymes|pt|ɛd͡ʒiɐ|q1=Brazil|ɛdjɐ|q2=Bồ Đào Nha|s=5}} * {{hyph|pt|Wi|ki|pé|di|a}} ==={{ĐM|pr-noun}}=== {{pt-proper noun|f}} # [[Wikipedia]]. {{C|pt|Website}} =={{langname|hu}}== {{wp|hu:}} ==={{ĐM|pron}}=== * {{hu-IPA}} * {{hyphenation|hu|Wi|ki|pé|dia}} * {{rhymes|hu|jɒ|s=5}} ==={{ĐM|pr-noun}}=== {{head|hu|Danh từ riêng|số nhiều|Wikipédiák}} # [[Wikipedia]]. ===={{ĐM|decl}}==== {{hu-infl-nom|Wikipédiá|o}}{{hu-pos-tok|Wikipédiá}} =={{langname|fr}}== {{wp|fr:}} ==={{ĐM|pron}}=== * {{fr-IPA}} * {{audio|fr|LL-0x010C-fra-Wikipédia.wav}} * {{audio|fr|LL-Q150 (fra)-Opsylac-Wikipédia.wav|a=Grenoble}} * {{audio|fr|LL-Q150 (fra)-Poslovitch-Wikipédia.wav|a=Vosges}} * {{audio|fr|LL-Q150 (fra)-Jérémy-Günther-Heinz Jähnick-Wikipédia.wav|a=Somain}} * {{audio|fr|LL-Q150 (fra)-Bananax47-Wikipédia.wav|a=Agen}} * {{homophones|fr|Wikipédias}} ==={{ĐM|n}}=== {{fr-noun|mf}} # [[Wikipedia]]. {{C|fr|Website|Wiki}} =={{langname|sk}}== {{wp|sk:}} ==={{ĐM|pron}}=== * {{sk-IPA|t=loan|r=1|h=1}} ==={{ĐM|n}}=== {{sk-noun|f}} # [[Wikipedia]]. ===={{ĐM|decl}}==== {{sk-ndecl|f}} ==={{ĐM|further}}=== * {{R:sk:SDK}} 2exiowmzqpi3i8jyonvj28asr8p4wl1 vua Hùng 0 270027 2348582 2317988 2026-04-26T02:47:47Z TheHighFighter2 42988 2348582 wikitext text/x-wiki =={{langname|vi}}== {{-info-|Vua Hùng}} ==={{ĐM|pron}}=== {{vi-pron}} ==={{ĐM|pr-noun}}=== {{vi-proper noun|head=[[vua]] [[hùng|Hùng]]}} # {{syn of|vi|Hùng Vương}}. 3f4gjzjy72mhc5e4jf0uxkkuhaoz8h4 Bản mẫu:synonym of 10 275707 2348583 2232209 2026-04-26T02:50:57Z TheHighFighter2 42988 2348583 wikitext text/x-wiki <includeonly>{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!-- -->{{#invoke:form of/templates|form_of_t|đồng nghĩa của|withcap=1}}<!-- -->}}<!-- --></includeonly><noinclude>{{documentation}}</noinclude> elynbgmkyb6m9jnhglg37aouyxxp010 Mô đun:place/locations 828 282249 2348610 2334974 2026-04-26T04:44:38Z Hiyuune 50834 2348610 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 "tỉnh", "bang", "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", "bang", 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 = {"tỉnh", "khu đô thị"}` 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 Châu Âu, 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 == "city"`, so that all cities get it set without explicitly needing to add a group-level setting for this. Note that the condition `default_placetype == "city"` 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 Prefecture, Japan]] 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 `"bang"` 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 = "tỉnh", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, "counties", "huyện", "khu đô thị", "regional municipalities", "rural municipalities", "parishes", "Indian reserves", "census divisions", {type = "townships", prep = "của"}, }, ...}, } 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 = "vùng", container_parent_type = false}, {type = "townships", prep = "của"}, {type = "parish municipalities", cat_as = {{type = "parishes", container_parent_type = "counties"}, "khu đô thị"}}, {type = "township municipalities", cat_as = {{type = "townships", prep = "của"}, "khu đô thị"}}, {type = "village municipalities", cat_as = {{type = "villages", prep = "của"}, "khu đô thị"}}, }, ...}, } 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 Châu Âu, 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 == "city"`, 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 == "city" 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 == "city"` 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 == "city") 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 Châu Âu and Asia as containers, and both Châu Âu 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(", England$"), ``` or (when the political division is part of the key) ``` key_to_placename = make_key_to_placename(", South Korea$", " County$") ``` ]=] 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(", England") ``` (which will convert e.g. `"Hampshire"` into `"Hampshire, England"`) or ``` placename_to_key = make_placename_to_key(", South Korea", " County") ``` (which will convert e.g. `"Gangwon"` or `"Gangwon County"` into `"Gangwon County, South Korea"`). ]=] 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", "tỉnh") ``` which will convert e.g. `"Ontario"` into `{key = "Ontario, Canada", placetype = "tỉnh"}`. ]=] 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"] = {the = true, placetype = "planet", addl_parents = {"Tự nhiên"}, fulldesc = "=the planet [[Earth]] and the features found on it"}, ["Châu Phi"] = {placetype = "continent", container = {key = "Trái Đất", placetype = "planet"}}, ["Lục địa 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 = "Americas"}, ["Châu Mỹ"] = {alias_of = "Lục địa Châu Mỹ"}, ["Bắc Mỹ"] = {placetype = "continent", container = {key = "Lục địa Châu Mỹ", placetype = "supercontinent"}}, ["Caribbean"] = {the = true, placetype = {"continental region", "region"}, container = {key = "Bắc Mỹ", placetype = "continent"}}, ["Central America"] = {placetype = {"continental region", "region"}, container = {key = "Bắc Mỹ", placetype = "continent"}}, ["Nam Mỹ"] = {placetype = "continent", container = {key = "Lục địa Châu Mỹ", placetype = "supercontinent"}}, ["Châu Nam Cực"] = {placetype = "continent", container = {key = "Trái Đất", placetype = "planet"}, fulldesc = "=the territory of [[Antarctica]]"}, ["Đại lục Á Âu"] = {placetype = {"supercontinent", "continent"}, container = {key = "Trái Đất", placetype = "planet"}, keydesc = "[[Eurasia]], i.e. [[Châu Âu]] and [[Asia]] together"}, ["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"}}, ["Oceania"] = {placetype = "continent", container = {key = "Trái Đất", placetype = "planet"}}, ["Melanesia"] = {placetype = {"continental region", "region"}, container = {key = "Oceania", placetype = "continent"}}, ["Micronesia"] = {placetype = {"continental region", "region"}, container = {key = "Oceania", placetype = "continent"}}, ["Polynesia"] = {placetype = {"continental region", "region"}, container = {key = "Oceania", 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 Châu Âu, 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 = {"tỉnh", "huyện"}}, ["Albania"] = {container = "Châu Âu", divs = {"counties", "khu đô thị", "communes", {type = "administrative units", cat_as = "communes"}, }, british_spelling = true}, ["Algeria"] = {container = "Châu Phi", divs = {"tỉnh", "communes", "huyện", "khu đô thị"}}, ["Andorra"] = {container = "Châu Âu", divs = {"parishes"}, british_spelling = true}, ["Angola"] = {container = "Châu Phi", divs = {"tỉnh", "khu đô thị"}}, ["Antigua và Barbuda"] = {container = "Caribbean", divs = {"tỉnh"}, british_spelling = true}, ["Argentina"] = {container = "Nam Mỹ", divs = {"tỉnh", "departments", "khu đô thị"}}, ["Armenia"] = {container = {"Châu Âu", "Châu Á"}, divs = {"tỉnh", "huyện", "khu đô thị"}, british_spelling = true}, ["Republic of Armenia"] = {alias_of = "Armenia"}, -- differs in "the" -- Both a country and continent ["Úc"] = {container = "Oceania", divs = { {type = "bang", 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}, ["Áo"] = {container = "Châu Âu", divs = {"bang", "huyện", "khu đô thị"}, british_spelling = true}, ["Azerbaijan"] = {container = {"Châu Âu", "Châu Á"}, divs = {"huyện", "khu đô thị"}, british_spelling = true}, ["Bahamas"] = {the = true, container = "Caribbean", divs = {"huyện"}, british_spelling = true, wp = "The %l"}, ["Bahrain"] = {container = "Châu Á", divs = {"governorates"}}, ["Bangladesh"] = {container = "Châu Á", divs = {"divisions", "huyện", "khu đô thị"}, british_spelling = true}, ["Barbados"] = {container = "Caribbean", divs = {"parishes"}, british_spelling = true}, ["Belarus"] = {container = "Châu Âu", divs = {"vùng", "huyện"}, british_spelling = true}, ["Bỉ"] = {container = "Châu Âu", divs = {"vùng", "tỉnh", "khu đô thị"}, british_spelling = true}, ["Belize"] = {container = "Central America", divs = {"huyện"}, british_spelling = true}, ["Benin"] = {container = "Châu Phi", divs = {"departments", "communes"}}, ["Bhutan"] = {container = "Châu Á", divs = {"huyện", "gewogs"}}, ["Bolivia"] = {container = "Nam Mỹ", divs = {"tỉnh", "departments", "khu đô thị"}}, ["Bosnia and Herzegovina"] = {container = "Châu Âu", divs = {"entities", "cantons", "khu đô thị"}, british_spelling = true}, ["Bosnia and Hercegovina"] = {alias_of = "Bosnia and Herzegovina", display = true}, ["Bosnia"] = {alias_of = "Bosnia and Herzegovina", display = true}, ["Botswana"] = {container = "Châu Phi", divs = {"huyện", "subdistricts"}, british_spelling = true}, ["Brazil"] = {container = "Nam Mỹ", divs = { "bang", "khu đô thị", "macroregions", {type = "ABBREVIATION_OF states", cat_as = "abbreviations of states"}, }}, ["Brunei"] = {container = "Châu Á", divs = {"huyện", "mukims"}, british_spelling = true}, ["Bulgaria"] = {container = "Châu Âu", divs = {"tỉnh", "khu đô thị"}, british_spelling = true}, ["Burkina Faso"] = {container = "Châu Phi", divs = {"vùng", "departments", "tỉnh"}}, ["Burundi"] = {container = "Châu Phi", divs = {"tỉnh", "communes"}}, ["Campuchia"] = {container = "Châu Á", divs = {"tỉnh", "huyện"}}, ["Cameroon"] = {container = "Châu Phi", divs = {"vùng", "departments"}}, ["Canada"] = {container = "Bắc Mỹ", divs = { {type = "tỉnh", 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", "huyện", "khu đô thị", "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 = "của"}, }, british_spelling = true}, ["Cape Verde"] = {container = "Châu Phi", divs = {"khu đô thị", "parishes"}}, ["Central African Republic"] = {the = true, container = "Châu Phi", divs = {"prefectures", "phó tỉnh"}}, ["Chad"] = {container = "Châu Phi", divs = {"vùng", "departments"}}, ["Chile"] = {container = "Nam Mỹ", divs = {"vùng", "tỉnh", "communes"}}, ["Trung Quốc"] = {container = "Châu Á", divs = { {type = "tỉnh", cat_as = "Tỉnh và khu tự trị"}, {type = "autonomous regions", cat_as = "Tỉnh và khu tự trị"}, {type = "FORMER provinces", cat_as = "Tỉnh cũ"}, "đặc khu hành chính", "tỉnh", {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. "huyện", {type = "FORMER districts", cat_as = "former districts"}, "subdistricts", "townships", "khu đô thị", {type = "direct-administered municipalities", cat_as = "khu đô thị"}, }}, ["People's Republic of China"] = {alias_of = "Trung Quốc"}, -- differs in "the" ["Colombia"] = {container = "Nam Mỹ", divs = {"departments", "khu đô thị"}}, ["Comoros"] = {the = true, container = "Châu Phi", divs = {"autonomous islands"}}, ["Costa Rica"] = {container = "Central America", divs = {"tỉnh", "cantons"}}, ["Croatia"] = {container = "Châu Âu", divs = {"counties", "khu đô thị"}, british_spelling = true}, ["Cuba"] = {container = "Caribbean", divs = {"tỉnh", "khu đô thị"}}, ["Cyprus"] = {container = {"Châu Âu", "Châu Á"}, divs = {"huyện"}, british_spelling = true}, ["Czech Republic"] = {the = true, container = "Châu Âu", divs = {"vùng", "huyện", "khu đô thị"}, british_spelling = true}, ["Czechia"] = {alias_of = "Czech Republic"}, -- differs in "the" ["Cộng hòa Dân chủ Congo"] = {container = "Châu Phi", divs = {"tỉnh", "territories"}}, ["Congo"] = {alias_of = "Cộng hòa Dân chủ Congo", display = true}, ["Đan Mạch"] = {container = "Châu Âu", divs = {"vùng", "khu đô thị", "dependent territories"}, british_spelling = true, -- Wikipedia separates [[w:Denmark]] (constituent country) from [[w:Danish Realm]] (country) }, ["Djibouti"] = {container = "Châu Phi", divs = {"vùng", "huyện"}}, ["Dominica"] = {container = "Caribbean", divs = {"parishes"}, british_spelling = true}, ["Dominican Republic"] = {the = true, container = "Caribbean", divs = {"tỉnh", "khu đô thị"}, keydesc = "the [[Dominican Republic]], the country that shares the [[Caribbean]] island of [[Hispaniola]] with [[Haiti]]"}, ["Đông Timor"] = {container = "Châu Á", divs = {"khu đô thị"}, wp = "Timor-Leste"}, ["Timor-Leste"] = {alias_of = "Đông Timor", display = true}, ["East Timor"] = {alias_of = "Đông Timor", display = true}, ["Ecuador"] = {container = "Nam Mỹ", divs = {"tỉnh", "cantons"}}, ["Ai Cập"] = {container = "Châu Phi", divs = {"governorates", "vùng"}, british_spelling = true}, ["El Salvador"] = {container = "Central America", divs = {"departments", "khu đô thị"}}, ["Guinea Xích Đạo"] = {container = "Châu Phi", divs = {"tỉnh"}}, ["Eritrea"] = {container = "Châu Phi", divs = {"vùng", "subregions"}}, ["Estonia"] = {container = "Châu Âu", divs = {"counties", "khu đô thị"}, british_spelling = true}, ["Eswatini"] = {container = "Châu Phi", british_spelling = true}, ["Swaziland"] = {alias_of = "Eswatini", display = true}, ["Ethiopia"] = {container = "Châu Phi", divs = {"vùng", "zones"}}, ["Federated States of Micronesia"] = {the = true, container = "Micronesia", divs = {"bang"}}, ["Micronesia"] = {alias_of = "Federated States of Micronesia"}, ["Fiji"] = {container = "Melanesia", divs = {"divisions", "tỉnh"}, british_spelling = true}, ["Phần Lan"] = {container = "Châu Âu", divs = {"vùng", "khu đô thị"}, british_spelling = true}, ["Pháp"] = {container = "Châu Âu", divs = {"vùng", "cantons", "collectivities", "communes", {type = "khu đô thị", cat_as = "communes"}, "departments", {type = "prefectures", cat_as = {"prefectures", "departmental capitals"}}, {type = "French prefectures", cat_as = {"prefectures", "departmental capitals"}}, "dependent territories", "territories", "tỉnh", }, british_spelling = true}, ["Gabon"] = {container = "Châu Phi", divs = {"tỉnh", "departments"}}, ["Gambia"] = {the = true, container = "Châu Phi", divs = {"divisions", "huyện"}, british_spelling = true, wp = "The %l"}, ["Georgia"] = {container = {"Châu Âu", "Châu Á"}, divs = {"vùng", "huyện"}, keydesc = "the country of [[Georgia]], in [[Eurasia]]", british_spelling = true, wp = "%l (country)"}, ["Đức"] = {container = "Châu Âu", divs = { "bang", -- 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. "vùng", "khu đô thị", "huyện"}, british_spelling = true}, ["Ghana"] = {container = "Châu Phi", divs = {"vùng", "huyện"}, british_spelling = true}, ["Hy Lạp"] = {container = "Châu Âu", divs = {"vùng", "regional units", "khu đô thị", {type = "peripheries", cat_as = {"vùng"}}, }, british_spelling = true}, ["Grenada"] = {container = "Caribbean", divs = {"parishes"}, british_spelling = true}, ["Guatemala"] = {container = "Central America", divs = {"departments", "khu đô thị"}}, ["Guinea"] = {container = "Châu Phi", divs = {"vùng", "prefectures"}}, ["Guinea-Bissau"] = {container = "Châu Phi", divs = {"vùng"}}, ["Guyana"] = {container = "Nam Mỹ", divs = {"vùng"}, british_spelling = true}, ["Haiti"] = {container = "Caribbean", divs = {"departments", "arrondissements"}}, ["Honduras"] = {container = "Central America", divs = {"departments", "khu đô thị"}}, ["Hungary"] = {container = "Châu Âu", divs = {"counties", "huyện"}, british_spelling = true}, ["Iceland"] = {container = "Châu Âu", divs = {"vùng", "khu đô thị", "counties"}, british_spelling = true}, ["Ấn Độ"] = {container = "Châu Á", divs = { {type = "bang", cat_as = "Bang và lãnh thổ liên bang"}, {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", "huyện", "khu đô thị", }, british_spelling = true}, ["Indonesia"] = {container = "Châu Á", divs = {"regencies", "tỉnh", {type = "ABBREVIATION_OF provinces", cat_as = "abbreviations of provinces"}, }}, ["Iran"] = {container = "Châu Á", divs = {"tỉnh", "counties"}}, ["Iraq"] = {container = "Châu Á", divs = {"governorates", "huyện"}}, ["Ireland"] = {container = "Châu Âu", addl_parents = {"British Isles"}, divs = {"counties", "huyện", "tỉnh"}, british_spelling = true, wp = "Republic of %l"}, ["Republic of Ireland"] = {alias_of = "Ireland"}, -- differs in "the" ["Israel"] = {container = "Châu Á", divs = {"huyện"}}, ["Ý"] = {container = "Châu Âu", divs = { "vùng", "tỉnh", "metropolitan cities", "khu đô thị", {type = "autonomous regions", cat_as = "vùng"}, }, british_spelling = true}, ["Bờ Biển Ngà"] = {container = "Châu Phi", divs = {"huyện", "vùng"}}, -- We should really be using Bờ Biển Ngà (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 = "Caribbean", divs = {"parishes"}, british_spelling = true}, ["Nhật Bản"] = {container = "Châu Á", divs = {"tỉnh", "phó tỉnh", "khu đô thị"}}, ["Jordan"] = {container = "Châu Á", divs = {"governorates"}}, ["Kazakhstan"] = {container = {"Châu Á", "Châu Âu"}, divs = {"vùng", "huyện"}}, ["Kenya"] = {container = "Châu Phi", divs = {"counties"}, british_spelling = true}, ["Kiribati"] = {container = "Micronesia", british_spelling = true}, ["Kosovo"] = {container = "Châu Âu", divs = {"huyện", "khu đô thị"}, british_spelling = true}, ["Kuwait"] = {container = "Châu Á", divs = {"governorates", "areas"}}, ["Kyrgyzstan"] = {container = "Châu Á", divs = {"vùng", "huyện"}}, ["Lào"] = {container = "Châu Á", divs = {"tỉnh", "huyện"}}, ["Latvia"] = {container = "Châu Âu", divs = {"khu đô thị"}, british_spelling = true}, ["Lebanon"] = {container = "Châu Á", divs = {"governorates", "huyện"}}, ["Lesotho"] = {container = "Châu Phi", divs = {"huyện"}, british_spelling = true}, ["Liberia"] = {container = "Châu Phi", divs = {"counties", "huyện"}}, ["Libya"] = {container = "Châu Phi", divs = {"huyện", "khu đô thị"}}, ["Liechtenstein"] = {container = "Châu Âu", divs = {"khu đô thị"}, british_spelling = true}, ["Litva"] = {container = "Châu Âu", divs = {"counties", "khu đô thị"}, british_spelling = true}, ["Luxembourg"] = {container = "Châu Âu", divs = {"cantons", "huyện"}, british_spelling = true}, ["Madagascar"] = {container = "Châu Phi", divs = {"vùng", "huyện"}}, ["Malawi"] = {container = "Châu Phi", divs = {"vùng", "huyện"}, british_spelling = true}, ["Malaysia"] = {container = "Châu Á", divs = {"bang", "federal territories", "huyện"}, british_spelling = true}, ["Maldives"] = {the = true, container = "Châu Á", divs = {"tỉnh", "administrative atolls"}, british_spelling = true}, ["Mali"] = {container = "Châu Phi", divs = {"vùng", "cercles"}}, ["Malta"] = {container = "Châu Âu", divs = {"vùng", "local councils"}, british_spelling = true}, ["Marshall Islands"] = {the = true, container = "Micronesia", divs = {"khu đô thị"}}, ["Mauritania"] = {container = "Châu Phi", divs = {"vùng", "departments"}}, ["Mauritius"] = {container = "Châu Phi", divs = {"huyện"}, british_spelling = true}, ["Mexico"] = {container = "Bắc Mỹ", addl_parents = {"Central America"}, divs = { "bang", "khu đô thị", {type = "ABBREVIATION_OF states", cat_as = "abbreviations of states"}, }}, ["Moldova"] = {container = "Châu Âu", divs = { {type = "huyện", cat_as = "districts and autonomous territorial units"}, {type = "autonomous territorial units", cat_as = "districts and autonomous territorial units"}, "communes", "khu đô thị", }, 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 Châu Âu". bare_category_parent_type = {type = "quốc gia", prep = "của"}, is_city = true, british_spelling = true}, ["Mông Cổ"] = {container = "Châu Á", divs = {"tỉnh", "huyện"}}, ["Montenegro"] = {container = "Châu Âu", divs = {"khu đô thị"}}, ["Maroc"] = {container = "Châu Phi", divs = {"vùng", "prefectures", "tỉnh"}}, ["Mozambique"] = {container = "Châu Phi", divs = {"tỉnh", "huyện"}}, ["Myanmar"] = {container = "Châu Á", divs = {"vùng", "bang", "union territories", {type = "self-administered zones", cat_as = "self-administered areas"}, {type = "self-administered divisions", cat_as = "self-administered areas"}, "huyện"}}, ["Burma"] = {alias_of = "Myanmar"}, -- not display-canonicalizing; has political connotations ["Namibia"] = {container = "Châu Phi", divs = {"vùng", "constituencies"}, british_spelling = true}, ["Nauru"] = {container = "Micronesia", divs = {"huyện"}, british_spelling = true}, ["Nepal"] = {container = "Châu Á", divs = {"tỉnh", "huyện"}}, ["Netherlands"] = {the = true, placetype = {"quốc gia", "constituent country"}, container = "Châu Âu", divs = {"tỉnh", "khu đô thị", {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 = { "vùng", "dependent territories", "territorial authorities", {type = "huyện", cat_as = "territorial authorities"}, }, british_spelling = true}, ["Nicaragua"] = {container = "Central America", divs = {"departments", "khu đô thị"}}, ["Niger"] = {container = "Châu Phi", divs = {"vùng", "departments"}}, ["Nigeria"] = {container = "Châu Phi", divs = { "bang", -- 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 = "bang"}, "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 = {"tỉnh", "counties"}}, ["North Macedonia"] = {container = "Châu Âu", divs = {"vùng", "khu đô thị"}, 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", "khu đô thị", "dependent territories", "huyện", "unincorporated areas"}, british_spelling = true}, ["Oman"] = {container = "Châu Á", divs = {"governorates", "tỉnh"}}, ["Pakistan"] = {container = "Châu Á", divs = { {type = "tỉnh", 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", "huyện", }, british_spelling = true}, ["Palau"] = {container = "Micronesia", divs = {"bang"}}, ["Palestine"] = {container = "Châu Á", divs = {"governorates"}}, ["State of Palestine"] = {alias_of = "Palestine"}, -- differs in "the" ["Panama"] = {container = "Central America", divs = {"tỉnh", "huyện"}}, ["Papua New Guinea"] = {container = "Melanesia", divs = {"tỉnh", "huyện"}, british_spelling = true}, ["Paraguay"] = {container = "Nam Mỹ", divs = {"departments", "huyện"}}, ["Peru"] = {container = "Nam Mỹ", divs = {"vùng", "tỉnh", "huyện"}}, ["Philippines"] = {the = true, container = "Châu Á", divs = {"vùng", "tỉnh", "huyện", "khu đô thị", "barangays"}}, ["Ba Lan"] = {divs = {"voivodeships", "counties", {type = "Polish colonies", cat_as = {{type = "villages", prep = "của"}}}, }, container = "Châu Âu", british_spelling = true}, ["Portugal"] = {container = "Châu Âu", divs = { {type = "autonomous regions", cat_as = "districts and autonomous regions"}, {type = "huyện", cat_as = "districts and autonomous regions"}, "tỉnh", "khu đô thị"}, british_spelling = true}, ["Qatar"] = {container = "Châu Á", divs = {"khu đô thị", "zones"}}, ["Republic of the Congo"] = {the = true, container = "Châu Phi", divs = {"departments", "huyện"}}, ["Congo Republic"] = {alias_of = "Republic of the Congo", display = true}, ["Romania"] = {container = "Châu Âu", divs = { "vùng", "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", "huyện", "federal districts"}, british_spelling = true}, ["Rwanda"] = {container = "Châu Phi", divs = {"tỉnh", "huyện"}}, ["Saint Kitts and Nevis"] = {container = "Caribbean", divs = {"parishes"}, british_spelling = true}, ["Saint Lucia"] = {container = "Caribbean", divs = {"huyện"}, british_spelling = true}, ["Saint Vincent and the Grenadines"] = {container = "Caribbean", divs = {"parishes"}, british_spelling = true}, ["Samoa"] = {container = "Polynesia", divs = {"huyện"}, british_spelling = true}, ["San Marino"] = {container = "Châu Âu", divs = {"khu đô thị"}, british_spelling = true}, ["São Tomé and Príncipe"] = {container = "Châu Phi", divs = {"huyện"}}, ["Ả Rập Xê Út"] = {container = "Châu Á", divs = {"tỉnh", "governorates"}}, ["Sénégal"] = {container = "Châu Phi", divs = {"vùng", "departments"}}, ["Serbia"] = {container = "Châu Âu", divs = {"huyện", "khu đô thị", "autonomous provinces"}}, ["Seychelles"] = {container = "Châu Phi", divs = {"huyện"}, british_spelling = true}, ["Sierra Leone"] = {container = "Châu Phi", divs = {"tỉnh", "huyện"}, british_spelling = true}, ["Singapore"] = {container = "Châu Á", divs = {"huyện"}, british_spelling = true}, ["Slovakia"] = {container = "Châu Âu", divs = {"vùng", "huyện"}}, ["Slovenia"] = {container = "Châu Âu", divs = {"statistical regions", "khu đô thị"}, british_spelling = true}, -- Note: the official name does not include "the" at the beginning, but it sounds strange in -- English to leave it out and it's commonly included, so we include it. ["Solomon Islands"] = {the = true, container = "Melanesia", divs = {"tỉnh"}, british_spelling = true}, ["Somalia"] = {container = "Châu Phi", divs = {"vùng", "huyện"}}, ["South Africa"] = {container = "Châu Phi", divs = { "tỉnh", "huyện", {type = "district municipalities", cat_as = "huyện"}, {type = "metropolitan municipalities", cat_as = "huyện"}, "khu đô thị", }, british_spelling = true}, ["Hàn Quốc"] = {container = "Châu Á", addl_parents = {"Korea"}, divs = {"tỉnh", "counties", "huyện"}}, ["Nam Sudan"] = {container = "Châu Phi", divs = {"vùng", "bang", "counties"}}, ["Tây Ban Nha"] = {container = "Châu Âu", divs = {"autonomous communities", "tỉnh", "khu đô thị", "comarcas", "autonomous cities"}, british_spelling = true}, ["Sri Lanka"] = {container = "Châu Á", divs = {"tỉnh", "huyện"}, british_spelling = true}, ["Sudan"] = {container = "Châu Phi", divs = {"bang", "huyện"}, british_spelling = true}, ["Suriname"] = {container = "Nam Mỹ", divs = {"huyện"}}, ["Thụy Điển"] = {container = "Châu Âu", divs = {"tỉnh", "counties", "khu đô thị"}, british_spelling = true}, ["Switzerland"] = {container = "Châu Âu", divs = {"cantons", "khu đô thị", "huyện"}, british_spelling = true}, ["Syria"] = {container = "Châu Á", divs = {"governorates", "huyện"}}, ["Đài Loan"] = {container = "Châu Á", divs = {"counties", "huyện", "townships", "special municipalities"}}, ["Trung Hoa Dân Quốc"] = {alias_of = "Đài Loan"}, -- differs in "the", different political connotations ["Tajikistan"] = {container = "Châu Á", divs = {"vùng", "huyện"}}, ["Tanzania"] = {container = "Châu Phi", divs = {"vùng", "huyện"}, british_spelling = true}, ["Thái Lan"] = {container = "Châu Á", divs = {"tỉnh", "huyện", "subdistricts"}}, ["Togo"] = {container = "Châu Phi", divs = {"tỉnh", "prefectures"}}, ["Tonga"] = {container = "Polynesia", divs = {"divisions"}, british_spelling = true}, ["Trinidad and Tobago"] = {container = "Caribbean", divs = {"vùng", "khu đô thị"}, british_spelling = true}, ["Tunisia"] = {container = "Châu Phi", divs = {"governorates", "delegations"}}, ["Thổ Nhĩ Kỳ"] = {container = {"Châu Âu", "Châu Á"}, divs = {"tỉnh", "huyện"}}, -- 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 "vùng", {type = "tỉnh", cat_as = "vùng"}, "huyện", "thành phố"}, }, ["Tuvalu"] = {container = "Polynesia", divs = {"atolls"}, british_spelling = true}, ["Uganda"] = {container = "Châu Phi", divs = {"huyện", "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}, ["U.A.E."] = {alias_of = "United Arab Emirates", display = true}, ["United Kingdom"] = {the = true, container = "Châu Âu", addl_parents = {"British Isles"}, divs = {"constituent countries", "counties", "huyện", "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}, ["U.K."] = {alias_of = "United Kingdom", display = true}, ["Hoa Kỳ"] = {container = "Bắc Mỹ", divs = {"counties", "county seats", "bang", "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 = "của"}, -- exist in Pennsylvania and New Jersey "khu đô thị", -- these exist politically at least in Colorado and Connecticut {type = "census-designated places", prep = "của"}, {type = "unincorporated communities", prep = "của"}, -- 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}, ["U.S."] = {alias_of = "Hoa Kỳ", display = true}, ["USA"] = {alias_of = "Hoa Kỳ", display = true}, ["U.S.A."] = {alias_of = "Hoa Kỳ", display = true}, ["United States of America"] = {alias_of = "Hoa Kỳ", display = true}, ["Uruguay"] = {container = "Nam Mỹ", divs = {"departments", "khu đô thị"}}, ["Uzbekistan"] = {container = "Châu Á", divs = {"vùng", "huyện"}}, ["Vanuatu"] = {container = "Melanesia", divs = {"tỉnh"}, british_spelling = true}, ["Vatican City"] = {placetype = {"city-state", "quốc gia"}, container = "Châu Âu", -- We want the first placetype to be 'city-state' so the description of Vatican City says it's a city-state, -- but we want its parent to be "countries in Châu Âu". 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 = {"bang", "khu đô thị"}}, ["Việt Nam"] = {container = "Châu Á", divs = {"tỉnh", "huyện", "khu đô thị", "xã"}}, ["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"}, ["Yemen"] = {container = "Châu Á", divs = {"governorates", "huyện"}}, ["Zambia"] = {container = "Châu Phi", divs = {"tỉnh", "huyện"}, british_spelling = true}, ["Zimbabwe"] = {container = "Châu Phi", divs = {"tỉnh", "huyện"}, 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 = {"Caribbean"}, 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 = {"huyện"}, 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 = {"Caribbean"}, 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", "khu đô thị", "overseas territory", "territory"}, container = "Netherlands", addl_parents = {"Caribbean"}, 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 = {"Caribbean"}, 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 = {"Caribbean"}, 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}, ["Keeling Islands"] = {alias_of = "Cocos Islands", display = 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 = {"Caribbean"}, 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 = {"khu đô thị"}, british_spelling = true, }, -- overseas department and region of France ["Guadeloupe"] = { placetype = {"overseas department", "department", "administrative region", "region"}, container = "Pháp", addl_parents = {"Caribbean"}, 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"}, }, -- đặc khu hành chính của Trung Quốc ["Hồng Kông"] = { placetype = {"đặc khu hành chính", "thành phố"}, container = "Trung Quốc", is_city = 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"}, -- đặc khu hành chính of China ["Ma Cao"] = { placetype = {"đặc khu hành chính", "thành phố"}, container = "Trung Quốc", is_city = true, }, -- overseas department and region of France ["Martinique"] = { placetype = {"overseas department", "department", "administrative region", "region"}, container = "Pháp", divs = {"communes"}, addl_parents = {"Caribbean"}, 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 = {"Caribbean"}, 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 = {"huyện"}, 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 = {"Caribbean"}, divs = {"khu đô thị"}, }, -- 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", "khu đô thị", "overseas territory", "territory"}, container = "Netherlands", addl_parents = {"Caribbean"}, is_city = true, british_spelling = true, }, -- overseas collectivity of France ["Saint Barthélemy"] = { placetype = {"overseas collectivity", "collectivity"}, container = "Pháp", addl_parents = {"Caribbean"}, 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 = {"Caribbean"}, 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", "khu đô thị", "overseas territory", "territory"}, container = "Netherlands", addl_parents = {"Caribbean"}, is_city = true, british_spelling = true, }, -- constituent country of the Netherlands ["Sint Maarten"] = { placetype = {"constituent country", "quốc gia"}, container = "Netherlands", addl_parents = {"Caribbean"}, 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 = {"Caribbean"}, 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", "Caribbean"}, }, -- 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 = {"Caribbean"}, }, ["U.S. Virgin Islands"] = {alias_of = "United States Virgin Islands", display = true}, ["US Virgin Islands"] = {alias_of = "United States Virgin Islands", display = 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 Châu Âu. 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 = {"tỉnh"}}, ["Byzantine Empire"] = { the = true, placetype = {"empire", "quốc gia"}, container = {"Châu Âu", "Châu Phi", "Châu Á"}, addl_parents = {"Ancient Châu Âu", "Ancient Near East"}, divs = { "tỉnh", "themes", }}, ["Roman Empire"] = { the = true, placetype = {"empire", "quốc gia"}, container = {"Châu Âu", "Châu Phi", "Châu Á"}, addl_parents = {"Rome"}, divs = { "tỉnh", {type = "FORMER provinces", cat_as = "tỉnh"}, }}, ["Việt Nam Cộng Hòa"] = {container = "Châu Á", addl_parents = {"Việt Nam"}}, ["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 = {"huyện"}, 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 = { ["Lãnh thổ Thủ đô Úc, Úc"] = {the = true, placetype = "territory"}, ["Jervis Bay Territory, Úc"] = {the = true, placetype = "territory"}, ["New South Wales, Úc"] = {}, ["Northern Territory, Úc"] = {placetype = "territory"}, ["Queensland, Úc"] = {}, ["South Australia, Úc"] = {}, ["Tasmania, Úc"] = {}, ["Victoria, Úc"] = {}, ["Tây Úc, Úc"] = {}, } -- states and territories of Australia export.australia_group = { default_container = "Úc", default_placetype = "bang", 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 = "bang", default_divs = "khu đô thị", 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 = "huyện", 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 = "bang", default_divs = "khu đô thị", data = export.brazil_states, } 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 = "của"}}}, ["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 = "vùng", container_parent_type = false}, {type = "townships", prep = "của"}, {type = "parish municipalities", cat_as = {{type = "parishes", container_parent_type = "counties"}, "khu đô thị"}}, {type = "township municipalities", cat_as = {{type = "townships", prep = "của"}, "khu đô thị"}}, {type = "village municipalities", cat_as = {{type = "villages", prep = "của"}, "khu đô thị"}}, }}, ["Yukon, Canada"] = {placetype = "territory"}, ["Yukon Territory, Canada"] = {alias_of = "Yukon, Canada"}, } -- provinces and territories of Canada export.canada_group = { default_container = "Canada", default_placetype = "tỉnh", 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"] = {}, ["Hà Nam, Trung Quốc"] = {}, ["Hồ Bắc, Trung Quốc"] = {}, ["Hunan, China"] = {}, ["Inner Mongolia, China"] = {placetype = "autonomous region"}, ["Jiangsu, China"] = {}, ["Jiangxi, China"] = {}, ["Jilin, China"] = {}, ["Liaoning, China"] = {}, ["Ningxia, China"] = {placetype = "autonomous region"}, ["Thanh Hải, Trung Quốc"] = {}, ["Thiểm Tây, Trung Quốc"] = {}, ["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 = "tỉnh", default_divs = { "prefectures", "prefecture-level cities", "huyện", "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", "khu đô thị", "city"}}, -- 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 ["Bắc Kinh"] = {placetype = {"direct-administered municipality", "khu đô thị", "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 = "Thiểm Tây"}, -- 12.1 prefectural, 11.9 urban; sub-provincial city; 9.393 urban (13.400 adm-urb including Xianyang) per citypopulation.de ["Xianyang"] = {container = "Thiểm Tây"}, -- 1.193 urban per citypopulation.de; included by citypopulation.de in Xi'an agglomeration ["Chongqing"] = {placetype = {"direct-administered municipality", "khu đô thị", "city"}}, -- 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", "khu đô thị", "city"}}, -- 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 = "Thiểm Tây"}, -- 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(", Trung Quốc", ""), -- 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. "huyện", "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(", Trung Quốc", "tỉnh"), -- 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", "city"}, 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. "huyện", "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 = "khu đô thị", 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 = "khu đô thị", 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 = "khu đô thị", 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 = "bang", default_divs = {"huyện", "khu đô thị"}, 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 = "vùng", data = export.greece_regions, } local india_polity_with_divisions = {"divisions", "huyện"} local india_polity_without_divisions = {"huyện"} -- 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, Ấn Độ"] = {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, Ấn Độ"] = {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 = "bang", 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"] = {}, ["Tây Papua"] = {wp = "%l (tỉnh)"}, ["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 = "tỉnh", -- 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", " Tỉnh$"), placename_to_key = make_placename_to_key(", Iran", " Tỉnh"), default_container = "Iran", default_placetype = "tỉnh", -- 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 (tỉnh)", 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 = "Italy", 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"] = {}, ["Hokkaidō, Nhật Bản"] = {divs = "phó tỉnh", wp = "Hokkaidō"}, ["Hyōgo, Nhật Bản"] = {}, ["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"] = {}, ["Kumamoto, Nhật Bản"] = {}, ["Kyōto, 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"] = {}, ["Okayama, Nhật Bản"] = {}, ["Okinawa, Nhật Bản"] = {}, ["Ōsaka, 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"] = {}, ["Tokyo, 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(", Japan$", " Prefecture$"), placename_to_key = make_placename_to_key(", Nhật Bản", ""), default_container = "Nhật Bản", default_placetype = "tỉnh", data = export.japan_prefectures, } export.laos_provinces = { ["Attapeu, Lào"] = {}, ["Bokeo, Lào"] = {}, ["Bolikhamxai, Lào"] = {}, ["Champasak, Lào"] = {}, ["Houaphanh, Lào"] = {}, ["Khammouane, Lào"] = {}, ["Luang Namtha, Lào"] = {}, ["Luang Prabang, Lào"] = {}, ["Oudomxay, Lào"] = {}, ["Phongsaly, Lào"] = {}, ["Salavan, Lào"] = {}, ["Savannakhet, Lào"] = {}, ["Viêng Chăn, Lào"] = {}, ["Viêng Chăn, Lào"] = {placetype = "tỉnh", wp = "%l"}, ["Sainyabuli, Lào"] = {}, ["Sekong, Lào"] = {}, ["Xaisomboun, Lào"] = {}, ["Xiangkhouang, Lào"] = {}, } -- provinces of Laos export.laos_group = { key_to_placename = make_key_to_placename(", Lào$", {"$", "$"}), placename_to_key = laos_placename_to_key, default_container = "Lào", default_placetype = "tỉnh", -- For obscure reasons, provinces of Iran, Laos, Thailand and Vietnam use lowercase 'province' default_wp = "%e", 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 = "bang", 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 = "bang", 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 = "khu đô thị"}, ["Bălți, Moldova"] = {placetype = "khu đô thị"}, ["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 = "khu đô thị"}, ["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 = "vùng", data = export.morocco_regions, } 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 = "tỉnh", default_divs = "khu đô thị", 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", "city"}, 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", "bang"}, 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 = "bang", 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, Cộng hòa Dân chủ Nhân dân Triều Tiên"] = {}, ["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(", Cộng hòa Dân chủ Nhân dân Triều Tiên", ""), default_container = "Cộng hòa Dân chủ Nhân dân Triều Tiên", default_placetype = "tỉnh", 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 = "tỉnh", 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", "tỉnh"}}, } -- provinces of the Philippines export.philippines_group = { default_container = "Philippines", default_placetype = "tỉnh", default_divs = {"khu đô thị", "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 = "của"}}}, }, 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 = "khu đô thị", 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 = "tỉnh", 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 = "tỉnh", default_divs = "khu đô thị", data = export.south_africa_provinces, } export.south_korea_provinces = { ["North Chungcheong Province, South Korea"] = {}, ["South Chungcheong Province, South Korea"] = {}, ["Gangwon, Hàn Quố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(", Hàn Quốc", ""), default_container = "Hàn Quốc", default_placetype = "tỉnh", 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 = {"khu đô thị", "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 = {"huyện", "townships"}, data = export.taiwan_counties, } export.thailand_provinces = { -- Bangkok (special administrative area) ["Amnat Charoen, Thái Lan"] = {}, ["Ang Thong, Thái Lan"] = {}, ["Bueng Kan, Thái Lan"] = {}, ["Buriram, Thái Lan"] = {}, ["Chachoengsao, Thái Lan"] = {}, ["Chai Nat, Thái Lan"] = {}, ["Chaiyaphum, Thái Lan"] = {}, ["Chanthaburi, Thái Lan"] = {}, ["Chiang Mai, Thái Lan"] = {}, ["Chiang Rai, Thái Lan"] = {}, ["Chonburi, Thái Lan"] = {}, ["Chumphon, Thái Lan"] = {}, ["Kalasin, Thái Lan"] = {}, ["Kamphaeng Phet, Thái Lan"] = {}, ["Kanchanaburi, Thái Lan"] = {}, ["Khon Kaen, Thái Lan"] = {}, ["Krabi, Thái Lan"] = {}, ["Lampang, Thái Lan"] = {}, ["Lamphun, Thái Lan"] = {}, ["Loei, Thái Lan"] = {}, ["Lopburi, Thái Lan"] = {}, ["Mae Hong Son, Thái Lan"] = {}, ["Maha Sarakham, Thái Lan"] = {}, ["Mukdahan, Thái Lan"] = {}, ["Nakhon Nayok, Thái Lan"] = {}, ["Nakhon Pathom, Thái Lan"] = {}, ["Nakhon Phanom, Thái Lan"] = {}, ["Nakhon Ratchasima, Thái Lan"] = {}, ["Nakhon Sawon, Thái Lan"] = {}, ["Nakhon Si Thammarat, Thái Lan"] = {}, ["Nan, Thái Lan"] = {}, ["Narathiwat, Thái Lan"] = {}, ["Nong Bua Lamphu, Thái Lan"] = {}, ["Nong Khai, Thái Lan"] = {}, ["Nonthaburi, Thái Lan"] = {}, ["Pathum Thani, Thái Lan"] = {}, ["Pattani, Thái Lan"] = {}, ["Phang Nga, Thái Lan"] = {}, ["Phatthalung, Thái Lan"] = {}, ["Phayao, Thái Lan"] = {}, ["Phetchabun, Thái Lan"] = {}, ["Phetchaburi, Thái Lan"] = {}, ["Phichit, Thái Lan"] = {}, ["Phitsanulok, Thái Lan"] = {}, ["Phra Nakhon Si Ayutthaya, Thái Lan"] = {}, ["Phrae, Thái Lan"] = {}, ["Phuket, Thái Lan"] = {}, ["Prachinburi, Thái Lan"] = {}, ["Prachuap Khiri Khan, Thái Lan"] = {}, ["Ranong, Thái Lan"] = {}, ["Ratchaburi, Thái Lan"] = {}, ["Rayong, Thái Lan"] = {}, ["Roi Et, Thái Lan"] = {}, ["Sa Kaeo, Thái Lan"] = {}, ["Sakon Nakhon, Thái Lan"] = {}, ["Samut Prakan, Thái Lan"] = {}, ["Samut Sakhon, Thái Lan"] = {}, ["Samut Songkhram, Thái Lan"] = {}, ["Saraburi, Thái Lan"] = {}, ["Satun, Thái Lan"] = {}, ["Sing Buri, Thái Lan"] = {}, ["Sisaket, Thái Lan"] = {}, ["Songkhla, Thái Lan"] = {}, ["Sukhothai, Thái Lan"] = {}, ["Suphan Buri, Thái Lan"] = {}, ["Surat Thani, Thái Lan"] = {}, ["Surin, Thái Lan"] = {}, ["Tak, Thái Lan"] = {}, ["Trang, Thái Lan"] = {}, ["Trat, Thái Lan"] = {}, ["Ubon Ratchathani, Thái Lan"] = {}, ["Udon Thani, Thái Lan"] = {}, ["Uthai Thani, Thái Lan"] = {}, ["Uttaradit, Thái Lan"] = {}, ["Yala, Thái Lan"] = {}, ["Yasothon, Thái Lan"] = {}, } -- provinces of Thailand export.thailand_group = { key_to_placename = make_key_to_placename(", Thailand$", " Province$"), placename_to_key = make_placename_to_key(", Thái Lan", ""), default_container = "Thái Lan", default_placetype = "tỉnh", default_divs = "huyện", -- For obscure reasons, provinces of Iran, Laos, Thailand and Vietnam use lowercase 'province' default_wp = "%e", data = export.thailand_provinces, } export.turkey_provinces = { ["Adana Province, Thổ Nhĩ Kỳ"] = {}, -- code 01 ["Adıyaman Province, Thổ Nhĩ Kỳ"] = {}, -- code 02 ["Afyonkarahisar Province, Thổ Nhĩ Kỳ"] = {}, -- code 03 ["Ağrı Province, Thổ Nhĩ Kỳ"] = {}, -- code 04 ["Amasya Province, Thổ Nhĩ Kỳ"] = {}, -- code 05 ["Ankara Province, Thổ Nhĩ Kỳ"] = {}, -- code 06 ["Antalya Province, Thổ Nhĩ Kỳ"] = {}, -- code 07 ["Artvin Province, Thổ Nhĩ Kỳ"] = {}, -- code 08 ["Aydın Province, Thổ Nhĩ Kỳ"] = {}, -- code 09 ["Balıkesir Province, Thổ Nhĩ Kỳ"] = {}, -- code 10 ["Bilecik Province, Thổ Nhĩ Kỳ"] = {}, -- code 11 ["Bingöl Province, Thổ Nhĩ Kỳ"] = {}, -- code 12 ["Bitlis Province, Thổ Nhĩ Kỳ"] = {}, -- code 13 ["Bolu Province, Thổ Nhĩ Kỳ"] = {}, -- code 14 ["Burdur Province, Thổ Nhĩ Kỳ"] = {}, -- code 15 ["Bursa Province, Thổ Nhĩ Kỳ"] = {}, -- code 16 ["Çanakkale Province, Thổ Nhĩ Kỳ"] = {}, -- code 17 ["Çankırı Province, Thổ Nhĩ Kỳ"] = {}, -- code 18 ["Çorum Province, Thổ Nhĩ Kỳ"] = {}, -- code 19 ["Denizli Province, Thổ Nhĩ Kỳ"] = {}, -- code 20 ["Diyarbakır Province, Thổ Nhĩ Kỳ"] = {}, -- code 21 ["Edirne Province, Thổ Nhĩ Kỳ"] = {}, -- code 22 ["Elazığ Province, Thổ Nhĩ Kỳ"] = {}, -- code 23 ["Elâzığ Province, Thổ Nhĩ Kỳ"] = {alias_of = "Elazığ Province, Thổ Nhĩ Kỳ", display = true}, ["Erzincan Province, Thổ Nhĩ Kỳ"] = {}, -- code 24 ["Erzurum Province, Thổ Nhĩ Kỳ"] = {}, -- code 25 ["Eskişehir Province, Thổ Nhĩ Kỳ"] = {}, -- code 26 ["Gaziantep Province, Thổ Nhĩ Kỳ"] = {}, -- code 27 ["Giresun Province, Thổ Nhĩ Kỳ"] = {}, -- code 28 ["Gümüşhane Province, Thổ Nhĩ Kỳ"] = {}, -- code 29 ["Hakkâri Province, Thổ Nhĩ Kỳ"] = {}, -- code 30 ["Hakkari Province, Thổ Nhĩ Kỳ"] = {alias_of = "Hakkâri Province, Thổ Nhĩ Kỳ", display = true}, ["Hatay Province, Thổ Nhĩ Kỳ"] = {}, -- code 31 ["Isparta Province, Thổ Nhĩ Kỳ"] = {}, -- code 32 ["Mersin Province, Thổ Nhĩ Kỳ"] = {}, -- code 33 -- ["Istanbul Province, Thổ Nhĩ Kỳ"] = {}, -- code 34; this is coextensive with the city itself ["İzmir Province, Thổ Nhĩ Kỳ"] = {}, -- code 35 ["Izmir Province, Thổ Nhĩ Kỳ"] = {alias_of = "İzmir Province, Thổ Nhĩ Kỳ", display = true}, ["Kars Province, Thổ Nhĩ Kỳ"] = {}, -- code 36 ["Kastamonu Province, Thổ Nhĩ Kỳ"] = {}, -- code 37 ["Kayseri Province, Thổ Nhĩ Kỳ"] = {}, -- code 38 ["Kırklareli Province, Thổ Nhĩ Kỳ"] = {}, -- code 39 ["Kırşehir Province, Thổ Nhĩ Kỳ"] = {}, -- code 40 ["Kocaeli Province, Thổ Nhĩ Kỳ"] = {}, -- code 41 ["Konya Province, Thổ Nhĩ Kỳ"] = {}, -- code 42 ["Kütahya Province, Thổ Nhĩ Kỳ"] = {}, -- code 43 ["Malatya Province, Thổ Nhĩ Kỳ"] = {}, -- code 44 ["Manisa Province, Thổ Nhĩ Kỳ"] = {}, -- code 45 ["Kahramanmaraş Province, Thổ Nhĩ Kỳ"] = {}, -- code 46 ["Mardin Province, Thổ Nhĩ Kỳ"] = {}, -- code 47 ["Muğla Province, Thổ Nhĩ Kỳ"] = {}, -- code 48 ["Muş Province, Thổ Nhĩ Kỳ"] = {}, -- code 49 ["Nevşehir Province, Thổ Nhĩ Kỳ"] = {}, -- code 50 ["Niğde Province, Thổ Nhĩ Kỳ"] = {}, -- code 51 ["Ordu Province, Thổ Nhĩ Kỳ"] = {}, -- code 52 ["Rize Province, Thổ Nhĩ Kỳ"] = {}, -- code 53 ["Sakarya Province, Thổ Nhĩ Kỳ"] = {}, -- code 54 ["Samsun Province, Thổ Nhĩ Kỳ"] = {}, -- code 55 ["Siirt Province, Thổ Nhĩ Kỳ"] = {}, -- code 56 ["Sinop Province, Thổ Nhĩ Kỳ"] = {}, -- code 57 ["Sivas Province, Thổ Nhĩ Kỳ"] = {}, -- code 58 ["Tekirdağ Province, Thổ Nhĩ Kỳ"] = {}, -- code 59 ["Tokat Province, Thổ Nhĩ Kỳ"] = {}, -- code 60 ["Trabzon Province, Thổ Nhĩ Kỳ"] = {}, -- code 61 ["Tunceli Province, Thổ Nhĩ Kỳ"] = {}, -- code 62 ["Şanlıurfa Province, Thổ Nhĩ Kỳ"] = {}, -- code 63 ["Uşak Province, Thổ Nhĩ Kỳ"] = {}, -- code 64 ["Van Province, Thổ Nhĩ Kỳ"] = {}, -- code 65 ["Yozgat Province, Thổ Nhĩ Kỳ"] = {}, -- code 66 ["Zonguldak Province, Thổ Nhĩ Kỳ"] = {}, -- code 67 ["Aksaray Province, Thổ Nhĩ Kỳ"] = {}, -- code 68 ["Bayburt Province, Thổ Nhĩ Kỳ"] = {}, -- code 69 ["Karaman Province, Thổ Nhĩ Kỳ"] = {}, -- code 70 ["Kırıkkale Province, Thổ Nhĩ Kỳ"] = {}, -- code 71 ["Batman Province, Thổ Nhĩ Kỳ"] = {}, -- code 72 ["Şırnak Province, Thổ Nhĩ Kỳ"] = {}, -- code 73 ["Bartın Province, Thổ Nhĩ Kỳ"] = {}, -- code 74 ["Ardahan Province, Thổ Nhĩ Kỳ"] = {}, -- code 75 ["Iğdır Province, Thổ Nhĩ Kỳ"] = {}, -- code 76 ["Yalova Province, Thổ Nhĩ Kỳ"] = {}, -- code 77 ["Karabük Province, Thổ Nhĩ Kỳ"] = {}, -- code 78 ["Kilis Province, Thổ Nhĩ Kỳ"] = {}, -- code 79 ["Osmaniye Province, Thổ Nhĩ Kỳ"] = {}, -- code 80 ["Düzce Province, Thổ Nhĩ Kỳ"] = {}, -- code 81 } -- provinces of Turkey export.turkey_group = { key_to_placename = make_key_to_placename(", Thổ Nhĩ Kỳ$", "$"), placename_to_key = make_placename_to_key(", Thổ Nhĩ Kỳ", " Province"), default_container = "Thổ Nhĩ Kỳ", default_placetype = "tỉnh", default_divs = "huyện", 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", "huyện", {type = "local government districts", cat_as = "huyện"}, { type = "local government districts with borough status", cat_as = {"huyện", "boroughs"}, }, {type = "boroughs", cat_as = {"huyện", "boroughs"}}, {type = "civil parishes", container_parent_type = false}, }}, ["Northern Ireland"] = { placetype = {"constituent country", "tỉnh", "quốc gia"}, divs = {"counties", "huyện"}, }, ["Scotland"] = {divs = { {type = "council areas", container_parent_type = false}, "huyện", }}, ["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 = { "huyện", {type = "local government districts", cat_as = "huyện"}, { type = "local government districts with borough status", cat_as = {"huyện", "boroughs"}, }, {type = "boroughs", cat_as = {"huyện", "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 = "city"}, ["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 = "city", wp = "%l, %c"}, ["Pembrokeshire, Wales"] = {placetype = "county"}, ["Powys, Wales"] = {placetype = "county"}, ["Rhondda Cynon Taf, Wales"] = {}, -- ["Swansea, Wales"] = {placetype = "city"}, ["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, Hoa Kỳ"] = {}, ["Alaska, Hoa Kỳ"] = {divs = { {type = "boroughs", container_parent_type = "counties"}, {type = "borough seats", container_parent_type = "county seats"}, }}, ["Arizona, Hoa Kỳ"] = {}, ["Arkansas, Hoa Kỳ"] = {}, ["California, Hoa Kỳ"] = {}, ["Colorado, USA"] = {divs = {"counties", "county seats", "khu đô thị"}}, ["Connecticut, USA"] = {divs = {"counties", "county seats", "khu đô thị"}}, ["Delaware, Hoa Kỳ"] = {}, ["Florida, Hoa Kỳ"] = {}, ["Georgia, USA"] = {wp = "%l (U.S. state)"}, ["Hawaii, Hoa Kỳ"] = {addl_parents = {"Polynesia"}}, ["Idaho, Hoa Kỳ"] = {}, ["Illinois, Hoa Kỳ"] = {}, ["Indiana, Hoa Kỳ"] = {}, ["Iowa, Hoa Kỳ"] = {}, ["Kansas, Hoa Kỳ"] = {}, ["Kentucky, Hoa Kỳ"] = {}, ["Louisiana, USA"] = {divs = { {type = "parishes", container_parent_type = "counties"}, {type = "parish seats", container_parent_type = "county seats"}, }}, ["Maine, Hoa Kỳ"] = {}, ["Maryland, Hoa Kỳ"] = {}, ["Massachusetts, Hoa Kỳ"] = {}, ["Michigan, Hoa Kỳ"] = {}, ["Minnesota, Hoa Kỳ"] = {}, ["Mississippi, Hoa Kỳ"] = {}, ["Missouri, Hoa Kỳ"] = {}, ["Montana, Hoa Kỳ"] = {}, ["Nebraska, Hoa Kỳ"] = {}, ["Nevada, Hoa Kỳ"] = {}, ["New Hampshire, Hoa Kỳ"] = {}, ["New Jersey, USA"] = {divs = { "counties", "county seats", {type = "boroughs", prep = "của"}, }}, ["New Mexico, Hoa Kỳ"] = {}, ["New York, USA"] = {wp = "%l (state)"}, ["North Carolina, Hoa Kỳ"] = {}, ["North Dakota, Hoa Kỳ"] = {}, ["Ohio, Hoa Kỳ"] = {}, ["Oklahoma, Hoa Kỳ"] = {}, ["Oregon, Hoa Kỳ"] = {}, ["Pennsylvania, USA"] = {divs = { "counties", "county seats", {type = "boroughs", prep = "của"}, }}, ["Rhode Island, Hoa Kỳ"] = {}, ["South Carolina, Hoa Kỳ"] = {}, ["South Dakota, Hoa Kỳ"] = {}, ["Tennessee, Hoa Kỳ"] = {}, ["Texas, Hoa Kỳ"] = {}, ["Utah, Hoa Kỳ"] = {}, ["Vermont, Hoa Kỳ"] = {}, ["Virginia, Hoa Kỳ"] = {}, ["Washington, Hoa Kỳ"] = {wp = "%l (state)"}, ["West Virginia, Hoa Kỳ"] = {}, ["Wisconsin, Hoa Kỳ"] = {}, ["Wyoming, Hoa Kỳ"] = {}, } -- states of the United States export.united_states_group = { placename_to_key = make_placename_to_key(", Hoa Kỳ"), default_container = "Hoa Kỳ", default_placetype = "bang", default_divs = {"counties", "county seats"}, addl_divs = { {type = "census-designated places", prep = "của"}, {type = "unincorporated communities", prep = "của"}, }, data = export.united_states_states, } export.vietnam_provinces = { -- [[Northeast (Vietnam)|Northeast]] region ["Bắc Giang, Việt Nam"] = {}, -- capital [[Bắc Giang]] ["Bắc Kạn, Việt Nam"] = {}, -- capital [[Bắc Kạn]] ["Cao Bằng, Việt Nam"] = {}, -- capital [[Cao Bằng]] ["Hà Giang, Việt Nam"] = {}, -- capital [[Hà Giang]] ["Lạng Sơn, Việt Nam"] = {}, -- capital [[Lạng Sơn]] ["Phú Thọ, Việt Nam"] = {}, -- capital [[Việt Trì]] ["Quảng Ninh, Việt Nam"] = {}, -- capital [[Hạ Long]] ["Thái Nguyên, Việt Nam"] = {}, -- capital [[Thái Nguyên]] ["Tuyên Quang, Việt Nam"] = {}, -- capital [[Tuyên Quang]] -- [[Northwest (Vietnam)|Northwest]] region ["Lào Cai, Việt Nam"] = {}, -- capital [[Lào Cai]] ["Yên Bái, Việt Nam"] = {}, -- capital [[Yên Bái]] ["Điện Biên, Việt Nam"] = {}, -- capital [[Điện Biên Phủ]] ["Hoà Bình, Việt Nam"] = {}, -- capital [[Hoà Bình City|Hoà Bình]] ["Lai Châu, Việt Nam"] = {}, -- capital [[Lai Châu]] ["Sơn La, Việt Nam"] = {}, -- capital [[Sơn La]] -- [[Red River Delta]] region ["Bắc Ninh, Việt Nam"] = {}, -- capital [[Bắc Ninh]] ["Hà Nam, Việt Nam"] = {}, -- capital [[Phủ Lý]] ["Hải Dương, Việt Nam"] = {}, -- capital [[Hải Dương]] ["Hưng Yên, Việt Nam"] = {}, -- capital [[Hưng Yên]] ["Nam Định, Việt Nam"] = {}, -- capital [[Nam Định]] ["Ninh Bình, Việt Nam"] = {}, -- capital [[Ninh Bình|Hoa Lư]] ["Thái Bình, Việt Nam"] = {}, -- capital [[Thái Bình]] ["Vĩnh Phúc, Việt Nam"] = {}, -- capital [[Vĩnh Yên]] -- ["Hanoi"] = {placetype = {"municipality", "city"}}, -- capital [[Hoàn Kiếm district]] -- ["Haiphong"] = {placetype = {"municipality", "city"}}, -- capital [[Hồng Bàng district]] -- [[North Central Coast]] region ["Hà Tĩnh, Việt Nam"] = {}, -- capital [[Hà Tĩnh]] ["Nghệ An, Việt Nam"] = {}, -- capital [[Vinh]] ["Quảng Bình, Việt Nam"] = {}, -- capital [[Đồng Hới]] ["Quảng Trị, Việt Nam"] = {}, -- capital [[Đông Hà]] ["Thanh Hóa, Việt Nam"] = {}, -- capital [[Thanh Hoá]] ["Thanh Hoá, Việt Nam"] = {alias_of = "Thanh Hóa, Việt Nam"}, -- capital [[Thanh Hoá]] -- ["Hue"] = {placetype = {"municipality", "city"}, wp = "Huế"}, -- capital [[Thuận Hoá district]] -- [[Central Highlands (Vietnam)|Central Highlands]] region ["Đắk Lắk, Việt Nam"] = {}, -- capital [[Buôn Ma Thuột]] ["Đăk Nông, Việt Nam"] = {}, -- capital [[Gia Nghĩa]] ["Gia Lai, Việt Nam"] = {}, -- capital [[Pleiku]] ["Kon Tum, Việt Nam"] = {}, -- capital [[Kon Tum]] ["Lâm Đồng, Việt Nam"] = {}, -- capital [[Đà Lạt]] -- [[South Central Coast]] region ["Bình Định, Việt Nam"] = {}, -- capital [[Quy Nhon]] ["Bình Thuận, Việt Nam"] = {}, -- capital [[Phan Thiết]] ["Khánh Hòa, Việt Nam"] = {}, -- capital [[Nha Trang]] ["Ninh Thuận, Việt Nam"] = {}, -- capital [[Phan Rang–Tháp Chàm]] ["Phú Yên, Việt Nam"] = {}, -- capital [[Tuy Hoà]] ["Quảng Nam, Việt Nam"] = {}, -- capital [[Tam Kỳ]] ["Quảng Ngãi, Việt Nam"] = {}, -- capital [[Quảng Ngãi]] -- ["Da Nang"] = {placetype = {"municipality", "city"}}, -- capital [[Hải Châu district]] -- [[Southeast (Vietnam)|Southeast]] region ["Bà Rịa–Vũng Tàu, Việt Nam"] = {}, -- capital [[Bà Rịa]] ["Bình Dương, Việt Nam"] = {}, -- capital [[Thủ Dầu Một]] ["Bình Phước, Việt Nam"] = {}, -- capital [[Đồng Xoài]] ["Đồng Nai, Việt Nam"] = {}, -- capital [[Biên Hoà]] ["Tây Ninh, Việt Nam"] = {}, -- capital [[Tây Ninh]] -- ["Ho Chi Minh City"] = {placetype = {"municipality", "city"}}, -- capital [[District 1, Ho Chi Minh City|'''District 1''']] -- [[Mekong Delta]] region ["An Giang, Việt Nam"] = {}, -- capital [[Long Xuyên]] ["Bạc Liêu, Việt Nam"] = {}, -- capital [[Bạc Liêu]] ["Bến Tre, Việt Nam"] = {}, -- capital [[Bến Tre]] ["Cà Mau, Việt Nam"] = {}, -- capital [[Cà Mau]] ["Đồng Tháp, Việt Nam"] = {}, -- capital [[Cao Lãnh City|Cao Lãnh]] ["Hậu Giang, Việt Nam"] = {}, -- capital [[Vị Thanh]] ["Kiên Giang, Việt Nam"] = {}, -- capital [[Rạch Giá]] ["Long An, Việt Nam"] = {}, -- capital [[Tân An]] ["Sóc Trăng, Việt Nam"] = {}, -- capital [[Sóc Trăng]] ["Tiền Giang, Việt Nam"] = {}, -- capital [[Mỹ Tho]] ["Trà Vinh, Việt Nam"] = {}, -- capital [[Trà Vinh]] ["Vĩnh Long, Việt Nam"] = {}, -- capital [[Vĩnh Long]] -- ["Can Tho"] = {placetype = {"municipality", "city"}, 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(", Việt Nam", ""), default_container = "Việt Nam", default_placetype = "tỉnh", -- 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", 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 = "Lãnh thổ Thủ đô Úc, Úc", 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(", Úc", "bang"), 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", "bang"), default_placetype = "city", 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", "tỉnh"), default_placetype = "city", 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 = "city", 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", "bang"), default_placetype = "city", 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(", Ấn Độ", "bang"), 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", "tỉnh"), default_placetype = "city", 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 = "city", 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, Nhật Bản "}, -- 3,697,894 ["Ōsaka (thành phố)"] = {container = "Ōsaka"}, -- 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 = "Ōsaka"}, -- 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(" Tỉnh, Nhật Bản", "tỉnh"), 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", "bang"), default_placetype = "city", 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", "bang"), default_placetype = "city", 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", "tỉnh"), default_placetype = "city", 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", "tỉnh"), default_placetype = "city", 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 = "city", 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", "tỉnh"), default_placetype = "city", 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", "tỉnh"), 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 = "city", data = export.spain_cities, } export.taiwan_cities = { ["Tân Bắc"] = {}, ["Đài Trung"] = {}, ["Cao Hùng"] = {wp = "%l, Đài Loan"}, ["Đài Bắc "] = {}, ["Đào Viên"] = {}, ["Đài Nam"] = {}, -- these last three are not special municipalities ["Gia Nghĩa"] = {placetype = "thành phố"}, ["Tân Trúc"] = {placetype = "thành phố"}, ["Cơ Long"] = {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", "khu đô thị", "thành phố"}, default_is_city = true, default_divs = {"huyện"}, 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 = "city", 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", "bang"), default_placetype = "city", 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 = "city"}, 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"}, ["Hà Nội"] = {}, -- 7,350,000 (Agglomeration) ["Đà Nẵng"] = {}, -- 1,500,000 (Agglomeration) ["Hải Phòng"] = {}, -- 1,450,000 (Agglomeration) -- 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. ["Biên Hòa"] = {}, -- 1,272,235 (2022 city population per Wikipedia) -- 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. ["Cần Thơ"] = {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]] ["Huế"] = {wp = "Huế"}, -- 1,257,000 municipality (2019 census), 840,000 urban (2022 General Statistics Office of Vietnam estimate); -- capital [[Thuận Hóa district]] } export.vietnam_cities_group = { key_to_placename = make_key_to_placename(", Việt Nam$", " thành phố$"), placename_to_key = make_placename_to_key("", ""), default_container = "Việt Nam", default_placetype = "thành phố", default_wp = "%e", data = export.vietnam_cities, } export.ivory_cities = { ["Abidjan"] = {wp = "Abidjan"}, } 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 = "Cộng hòa Dân chủ Congo"}, -- 16,300,000 (City; population of low reliability) ["Lubumbashi"] = {container = "Cộng hòa Dân chủ Congo"}, -- 2,875,000 (City; population of low reliability) ["Mbuji-Mayi"] = {container = "Cộng hòa Dân chủ Congo"}, -- 2,500,000 (City; population of low reliability) ["Kananga"] = {container = "Cộng hòa Dân chủ Congo"}, -- 1,370,000 (City; population of low reliability) ["Kisangani"] = {container = "Cộng hòa Dân chủ Congo"}, -- 1,300,000 (City; population of low reliability) ["Bukavu"] = {container = "Cộng hòa Dân chủ Congo"}, -- 1,100,000 (City; population of low reliability) ["Goma"] = {container = "Cộng hòa Dân chủ Congo"}, -- 1,010,000 (City; population of low reliability) ["Tshikapa"] = {container = "Cộng hòa Dân chủ 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 = "Sénégal"}, -- 4,225,000 (Agglomeration) ["Touba"] = {container = "Sénégal"}, -- 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 = "tỉnh"}}, -- 14,800,000 (Consolidated Urban Area; including Pretoria, Soweto, etc.) ["Cape Town"] = {container = {key = "Western Cape, South Africa", placetype = "tỉnh"}}, -- 5,100,000 (Consolidated Urban Area) ["Durban"] = {container = {key = "KwaZulu-Natal, South Africa", placetype = "tỉnh"}}, -- 3,900,000 (Consolidated Urban Area) ["Pretoria"] = {container = {key = "Gauteng, South Africa", placetype = "tỉnh"}}, -- 2,921,488 (2011 census) ["Port Elizabeth"] = {container = {key = "Eastern Cape, South Africa", placetype = "tỉnh"}, 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) ["Phnôm Pênh"] = {container = "Campuchia"}, -- 2,925,000 (Agglomeration) ["Phnom Penh"] = {alias_of = "Phnôm Pênh", display = true}, ["Siem Reap"] = {container = "Campuchia"}, -- 2,925,000 (Agglomeration) ["Xiêm Riệp"] = {alias_of = "Phnôm Pênh", display = true}, ["Tehran"] = {container = {key = "Tehran Province, Iran", placetype = "tỉnh"}}, -- 16,800,000 (Agglomeration) ["Teheran"] = {alias_of = "Tehran", display = true}, ["Mashhad"] = {container = {key = "Razavi Khorasan Province, Iran", placetype = "tỉnh"}}, -- 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 = "tỉnh"}}, -- 3,425,000 (Agglomeration) ["Esfahan"] = {alias_of = "Isfahan", display = true}, ["Tabriz"] = {container = {key = "East Azerbaijan Province, Iran", placetype = "tỉnh"}}, -- 1,970,000 (Agglomeration) ["Shiraz"] = {container = {key = "Fars Province, Iran", placetype = "tỉnh"}}, -- 1,950,000 (Agglomeration) ["Ahvaz"] = {container = {key = "Khuzestan Province, Iran", placetype = "tỉnh"}}, -- 1,550,000 (Agglomeration) ["Qom"] = {container = {key = "Qom Province, Iran", placetype = "tỉnh"}}, -- 1,450,000 (City) ["Kermanshah"] = {container = {key = "Kermanshah Province, Iran", placetype = "tỉnh"}}, -- 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 = "bang"}, 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) ["Băng Cốc"] = {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, Thái Lan", placetype = "tỉnh"}}, ["Chonburi"] = {container = {key = "Chonburi, Thái Lan", placetype = "tỉnh"}}, -- 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ố", "tỉnh"}, divs = {"huyện"}, container = "Thổ Nhĩ Kỳ"}, -- 15.2 million; 16,000,000 (Agglomeration) ["İstanbul"] = {alias_of = "Istanbul", display = true}, ["Ankara"] = {container = {key = "Ankara Province, Thổ Nhĩ Kỳ", placetype = "tỉnh"}}, -- 5.15 million; 5,200,000 (Agglomeration) ["Izmir"] = {container = {key = "İzmir Province, Thổ Nhĩ Kỳ", placetype = "tỉnh"}, wp = "İzmir"}, -- 2.95 million; 3,025,000 (Agglomeration) ["İzmir"] = {alias_of = "Izmir", display = true}, ["Bursa"] = {container = {key = "Bursa Province, Thổ Nhĩ Kỳ", placetype = "tỉnh"}}, -- 2.02 million; 2,200,000 (Agglomeration) ["Adana"] = {container = {key = "Adana Province, Thổ Nhĩ Kỳ", placetype = "tỉnh"}}, -- 1.77 million; 1,780,000 (Agglomeration) ["Gaziantep"] = {container = {key = "Gaziantep Province, Thổ Nhĩ Kỳ", placetype = "tỉnh"}}, -- 1.71 million; 1,750,000 (Agglomeration) ["Antalya"] = {container = {key = "Antalya Province, Thổ Nhĩ Kỳ", placetype = "tỉnh"}}, -- 1.3 million; 1,400,000 (Agglomeration) ["Konya"] = {container = {key = "Konya Province, Thổ Nhĩ Kỳ", placetype = "tỉnh"}}, -- 1.35 million; 1,390,000 (Agglomeration) ["Diyarbakır"] = {container = {key = "Diyarbakır Province, Thổ Nhĩ Kỳ", placetype = "tỉnh"}}, -- 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, Thổ Nhĩ Kỳ", placetype = "tỉnh"}}, -- 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) ------------------ Châu Âu or Châu Âu-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"}, ["Daugavpils"] = {container = "Latvia"}, ["Amsterdam"] = {container = {key = "North Holland, Netherlands", placetype = "tỉnh"}}, ["Rotterdam"] = {container = {key = "South Holland, Netherlands", placetype = "tỉnh"}}, ["The Hague"] = {container = {key = "South Holland, Netherlands", placetype = "tỉnh"}}, -- 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) ["Tallinn"] = {container = "Estonia"}, ["Tartu"] = {container = "Estonia"}, ["Viljandi"] = {container = "Estonia"}, ["Yamoussoukro"] = {container = "Bờ Biển Ngà"}, ["Kitakyūshū"] = {container = "Nhật Bản"}, ["Nagoya"] = {container = "Nhật Bản"}, ["Vilnius"] = {container = "Litva"}, ["Patnos"] = {container = "Thổ Nhĩ Kỳ"}, ["Bratislava"] = {container = "Slovakia"}, ["Mito"] = {container = "Nhật Bản"}, ["Utsunomiya"] = {container = "Nhật Bản"}, ["Sendai"] = {container = "Nhật Bản"}, ["Hakodate"] = {container = "Nhật Bản"}, ["Kushiro"] = {container = "Nhật Bản"}, ["Abashiri"] = {container = "Nhật Bản"}, ["Kanazawa"] = {container = "Nhật Bản"}, ["Obihiro"] = {container = "Nhật Bản"}, } export.misc_cities_group = { canonicalize_key_container = make_canonicalize_key_container(nil, "quốc gia"), default_placetype = "thành phố", data = export.misc_cities, } export.slovakia_regions = { ["Trenčín, Slovakia"] = {}, } export.slovakia_group = { key_to_placename = make_key_to_placename(", Slovakia$", " Regions$"), placename_to_key = make_placename_to_key(", Slovakia", ""), default_container = "Slovakia", default_placetype = "vùng", default_wp = "%e", data = export.slovakia_regions, } export.turkmenistan_regions = { ["Ahal, Turkmenistan"] = {}, ["Balkan, Turkmenistan"] = {}, ["Daşoguz, Turkmenistan"] = {}, ["Lebap, Turkmenistan"] = {}, ["Mary, Turkmenistan"] = {}, } export.turkmenistan_group = { key_to_placename = make_key_to_placename(", Turkmenistan$", " Regions$"), placename_to_key = make_placename_to_key(", Turkmenistan", ""), default_container = "Turkmenistan", default_placetype = "vùng", default_wp = "%e", data = export.turkmenistan_regions, } export.nepal_regions = { ["Koshi, Nepal"] = {}, ["Madhesh, Nepal"] = {}, ["Bagmati, Nepal"] = {}, ["Gandaki, Nepal"] = {}, ["Lumbini, Nepal"] = {}, ["Karnali, Nepal"] = {}, ["Sudurpashchim, Nepal"] = {}, } export.nepal_group = { key_to_placename = make_key_to_placename(", Nepal$", " Provinces$"), placename_to_key = make_placename_to_key(", Nepal", ""), default_container = "Nepal", default_placetype = "tỉnh", default_wp = "%e", data = export.nepal_regions, } export.mongolia_regions = { ["Bayankhongor, Mông Cổ"] = {}, } export.mongolia_group = { key_to_placename = make_key_to_placename(", Mông Cổ$", " Provinces$"), placename_to_key = make_placename_to_key(", Mông Cổ", ""), default_container = "Mông Cổ", default_placetype = "tỉnh", default_wp = "%e", data = export.mongolia_regions, } --[==[ 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.canada_group, export.china_group, export.china_prefecture_level_cities_group, export.china_prefecture_level_cities_group_2, 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.mongolia_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.slovakia_group, export.turkmenistan_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.nepal_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 8i3gt9rkjszljylrnffmf2m3hierq64 Bản mẫu:cmn-pinyin TOC 10 300885 2348639 2149120 2026-04-26T06:07:14Z Hiyuune 50834 Hiyuune đã đổi [[Bản mẫu:Mandarin pinyin TOC]] thành [[Bản mẫu:cmn-pinyin TOC]] 2149120 wikitext text/x-wiki {{Chinese index TOC}} {{center top}} <span style="text-transform:uppercase">{{charlist|prefix=Phụ lục:Bính âm Hán ngữ/|sep=&#32;-&#32;|abcdefghjklmnopqrstwxyz}}</span> {{center bottom}} ---- <noinclude>[[Thể loại:Bản mẫu mục lục]]</noinclude> mjdy4ei478spu05crbwlz0g5f3galn4 Phụ lục:Bính âm Hán ngữ/m 100 300898 2348638 2149134 2026-04-26T06:06:03Z Hiyuune 50834 2348638 wikitext text/x-wiki {{cmn-pinyin TOC}} {{tocright}} ==M== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[m̄]] : | {{charlist|sc=Hani|嘸}} |- ! style="vertical-align:top;font-size:large" | [[ḿ]] : | {{charlist|sc=Hani|呒呣唔嘸}} |- ! style="vertical-align:top;font-size:large" | [[m̀]] : | {{charlist|sc=Hani|呣}} |} ==MA== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[mā]] : | {{charlist|sc=Hani|妈媽嬤嬷孖抹摩𢳀蚂螞麻}} |- ! style="vertical-align:top;font-size:large" | [[má]] : | {{charlist|sc=Hani|吗嗎嘛𡻤𢋚㦄犘𤳂痲痳𥀏𥉵蔴蟆蟇䗫貊𩀪靡𩔶𩔷䳸麻麽𪐎𪓹𱌈}} |- ! style="vertical-align:top;font-size:large" | [[mǎ]] : | {{charlist|sc=Hani|㐷傌吗嗎榪𰛊溤犸獁玛瑪码碼𥧓蚂螞遤䣕䣖鎷𨰾𨳿𬮡馬马鰢鷌}} |- ! style="vertical-align:top;font-size:large" | [[mà]] : | {{charlist|sc=Hani|傌㑻嗎嘜㜫𰏲𢉿𢊀㨸杩榪𣨜獁𬏜㾺䀛䀣睰𥉊礣祃禡罵蚂螞𧪨貉閁𬮺䧞𩊃駡驀骂𩨲䯦鬕𩶞𪒜}} |- ! style="vertical-align:top;font-size:large" | [[ma]] : | {{charlist|sc=Hani|么亇吗㕰嗎嘛嚜妈媽嫲蟆麻麽}} |} ==MAI== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[mái]] : | {{charlist|sc=Hani|哩埋𫰨㜥𢙑𢠼㦟䁲薶䚑貍𨤢䨪霾𩍃}} |- ! style="vertical-align:top;font-size:large" | [[mǎi]] : | {{charlist|sc=Hani|买咪𪡃嘪𠿆荬蕒買𧹒鷶𱉳}} |- ! style="vertical-align:top;font-size:large" | [[mài]] : | {{charlist|sc=Hani|佅劢勱卖唛売派𱧴𥇯𬑙𥌚𦏢脉𦙻脈𦚡䘑衇䜕𧱘賣迈邁䥑鿏霡霢䨫𩈗𩊍𲋶䮮𪄳鿺麥𪍇麦𪒪}} |- ! style="vertical-align:top;font-size:large" | [[mai]] : | {{charlist|sc=Hani|卖賣}} |} ==MAN== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[mān]] : | {{charlist|sc=Hani|嫚顢颟}} |- ! style="vertical-align:top;font-size:large" | [[mán]] : | {{charlist|sc=Hani|僈㒼埋㙢𰊟姏悗慢慲𰒆𢦈摱𣗊槾樠𤜘㿸瞒瞞𥊑矕䅼𥧭𥲑䊡絻𦔔𰯎䐽䒥蔓蛮蠻𧜞䛲謾谩𧱼䟂蹣𨲛𨲾𩆓鞔顢𩛟饅馒䯶𩬞𩮉䰋鬗鬘𱆆鰻鳗𪈿𪍩𪑪}} |- ! style="vertical-align:top;font-size:large" | [[mǎn]] : | {{charlist|sc=Hani|𡕢㛧屘満满滿𰥠睌矕𥬈𥲈𦎌𧆏螨蟎𧖵襔䜱鏋𩈦𩛎𬲴}} |- ! style="vertical-align:top;font-size:large" | [[màn]] : | {{charlist|sc=Hani|僈㗈墁嫚𡢚𡻩幔幕㡢慢摱𢿜𣁜㬅曼槾漫㵘澫澷𤅎熳獌𥊑䅼縵缦𦔔𬜬蔄蔓䕕蘰𧜞謾谩䝡䝢䡬鄤鏝镘𩅍𩆓}} |} ==MANG== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[māng]] : | {{charlist|sc=Hani|𡘪牤𤛘茫𩛲𬲹}} |- ! style="vertical-align:top;font-size:large" | [[máng]] : | {{charlist|sc=Hani|厖吂哤娏㝑𡩩𡩽尨𡵀㟌㟿㡛庬忙恾㤶朚杗杧𣙷氓汒浝㴇牻狵㻊甿𤰡痝盲盳𥆙瞢𥐞硭𥝕䅒笀䈍𦎨䏵芒茫莽䓼蘉蛖邙𨛌釯鋩铓𩒿駹𮪡𩭒𩷶𱇮鸏䵨龍}} |- ! style="vertical-align:top;font-size:large" | [[mǎng]] : | {{charlist|sc=Hani|𠈵壾㟐㟿㬒朦𣯬汒𣶈漭䁳硥𥤩𥮎𡅖䏵𦜭䒎茻莽莾䖟蟒蠎𩅁𩙸𩪎𪁪𪚢}} |- ! style="vertical-align:top;font-size:large" | [[màng]] : | {{charlist|sc=Hani|吂𠮵㤶𥁃𥭚}} |} ==MAO== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[māo]] : | {{charlist|sc=Hani|𱚦𤚜猫貓}} |- ! style="vertical-align:top;font-size:large" | [[máo]] : | {{charlist|sc=Hani|侔兞務堥㝟嵍𡹰旄枆㮘毛𣬵𣭮㲠氂渵𣹪牦犛𤛖𤝄猫矛𥎟䅦緢罞耗茅茆蛑蝥𧍟蟊𧐟𧒚𧓿𧔨貓𨈥軞𬨁酕𨥨鉾𨦜錨𫓴锚䭷髦髳𩬞𩭾鶜}} |- ! style="vertical-align:top;font-size:large" | [[mǎo]] : | {{charlist|sc=Hani|乮𠔼冇卯夘㚹𡜢峁戼𢨯㧇昴泖𥄸笷茆蓩鉚铆𨺸}} |- ! style="vertical-align:top;font-size:large" | [[mào]] : | {{charlist|sc=Hani|㒵冃冐冒㒻𫤸勖務𠤝媢𢂹㡌帽𢅉𢘅愗𢝌懋㧌描𢯾𢽢㪞旄㫯暓𣊃柕楙𣔺𣨇毛𣬵𬆾毣毷𣯀𣴟𣴼㴘牟㺺𤥰瑁𤲰皃㿞眊䀤瞀𥈆秏𥟪䋃𦀸𫄜耄耗芼茂萺䓮𦳁𦼪蝐袤𧠊覒貇𬥈貌貿贸䡚𬪍鄚鄮𨩩霿䫉𩛨𩫁𲌰𩿂𪃑}} |- ! style="vertical-align:top;font-size:large" | [[mao]] : | {{charlist|sc=Hani|毛}} |} ==ME== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[mē]] : | {{charlist|sc=Hani|嚒}} |- ! style="vertical-align:top;font-size:large" | [[me]] : | {{charlist|sc=Hani|么嚜末没濹癦麼麽}} |} ==MEI== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[méi]] : | {{charlist|sc=Hani|𠪃呅坆坶㙁堳塺娒媒嵋徾攗枚某栂梅楣楳槑𣟸沒没湄湈溦𤈦煤𤚤猸玫㺳珻瑂眉睂矀禖穈䊈糜䍙脄脢腜膴苺莓葿𦼻蘪䜸𧳬𨉭郿𨜘酶䤂鋂鎇𰾄镅霉𩋿䱕𪂜鶥𪃏鹛𪉏𪎭黴}} |- ! style="vertical-align:top;font-size:large" | [[měi]] : | {{charlist|sc=Hani|𠍨凂媄媺嬍嵄挴𢮇楣毎每浼渼𬊖燘䆀美羙䓺䜸躾鎂镁𪎦黣}} |- ! style="vertical-align:top;font-size:large" | [[mèi]] : | {{charlist|sc=Hani|𠊉味嚜妹媒媚寐𡲭抺旀昧㭑櫗氼沬煝痗𤽃眊䀛眛睸祙𥞊䆊𥧴篃䉋蝞袂𧭵谜跊𩈐韎𩎟𱂄𩫍鬽𩲈魅𩲢䰨䰪𩴈墨䵢黴}} |- ! style="vertical-align:top;font-size:large" | [[mei]] : | {{charlist|sc=Hani|妹}} |} ==MEN== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[mēn]] : | {{charlist|sc=Hani|悶𭩛椚闷}} |- ! style="vertical-align:top;font-size:large" | [[mén]] : | {{charlist|sc=Hani|亹们們㡈怋扪捫㨺𣯣𣯩汶𤅣玧璊𫞩瞞穈䊟𰫋菛𧄸虋鍆钔門閅𨳔𨴺门𮤫𩑥䪸䫒𩔉}} |- ! style="vertical-align:top;font-size:large" | [[mèn]] : | {{charlist|sc=Hani|們呇悗𫺓悶惛㥃㦖懑懣暪殙㱪𬇰滿㵍焖燜瞞𧴺闷鞔}} |- ! style="vertical-align:top;font-size:large" | [[men]] : | {{charlist|sc=Hani|们們門门}} |} ==MENG== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[mēng]] : | {{charlist|sc=Hani|擝矇蒙}} |- ! style="vertical-align:top;font-size:large" | [[méng]] : | {{charlist|sc=Hani|儚𠐁𠐧冡㙹夢𡚔嫇尨㠓𢄐幪庬𢟼懜懞𢤘㩚𢿂𣊔曚朦橗檬𣞑氋𣰥氓溕濛獴甍甿𤼁盟䀄𥄁瞑𥉕瞢䁫矇矒𥌯𥌱礞𥣛䇇𥭮䈍䉚𦆟𦊽䑃䑅𦢧艨𦫰䒐莔𰱉萌𦱋𦳶𦴔蒙𦷹蕄𦿏𧀆𧁊蘉𧂛𧂡𧈧虻䗈蝱蟊䙦䙩𧞑𧭊𧲍䟥𫑡鄳鄸𨞫𨢊𨢠𨣘䤓鋂𨨸䥰𨼿雺𩄖霧霿靀顭饛𩟞𱄈𩦺𬴌髳䰒𩴲𩶡鯍䲛𱈛鸏䴌鹲𲎈䴿䵆𱋮黽鼆}} |- ! style="vertical-align:top;font-size:large" | [[měng]] : | {{charlist|sc=Hani|勐𡬆幪𢕙懜懞懵𣓝猛獴瓾𤯻𤱴𤾬𥂂䁅𰥭𥋝矇䏵艋蒙蜢蟒蠓𧓨錳锰𩕱鯭鱦黽鼆𱌆}} |- ! style="vertical-align:top;font-size:large" | [[mèng]] : | {{charlist|sc=Hani|𠖆𠵼𡒯夢夣㜴孟㝱𡬆𡬌懜懵明朚梦𣽭盟䁅𥉕瞢䒐䓝𦿏𧀧蜢䠢䥂𨮒霥𩆽𪅇𪇓𪈆}} |- ! style="vertical-align:top;font-size:large" | [[meng]] : | {{charlist|sc=Hani|掹}} |} ==MI== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[mī]] : | {{charlist|sc=Hani|咪眯瞇}} |- ! style="vertical-align:top;font-size:large" | [[mí]] : | {{charlist|sc=Hani|冞𠞧劘𠵸𡄣𡇒𡝠㜷𡬍𡬐㟜𡾱𢇲弥彌㣆𢘺𢞞戂摩摵擟攠檷濔瀰爢㸏猕獮獼𤦀瓕𥅘眯𥇆𥇎𥈕瞴𥎖祢禰穈𥭫𥮜籋𥵨䉲𥹄糜𥽰䊳𥿫縻䌕𦄐䍘𦖬𦗕𦞟𦟂𦰴蒾䕳䕷蘼袮𧠟詸䛧謎谜𲄀迷𨒲醚䤍𨢥𰼑醾醿𨣾釄𨧮䥸镾𩀶靡𩔢𩞁𩞇𩸹鸍𲍰䴢麊麋麛𪋗𪋢𪎗𪓬𱌅𪕈}} |- ! style="vertical-align:top;font-size:large" | [[mǐ]] : | {{charlist|sc=Hani|侎咪𡓭孊㝥𡬍㠧弭彌𢘺㥝敉𣧲沵洣㳽渳濔瀰灖爾眫眯瞇𥞪米粎𥹫䋛羋脒芈葞蔝䖹𨇻辟銤𨷬靡䭧䱊𲍐𪀿𪎔}} |- ! style="vertical-align:top;font-size:large" | [[mì]] : | {{charlist|sc=Hani|冖冪嘧𡊭塓㜆宓宻密𡲼峚幂幎幦幺𢆯𢞞㨠𢱮㩢㫘𣓔榓樒櫁汨沕泌淧㳴溟㴵滵漞㵋㵥濗熐㸓𤛬𥁑眯眽䁇瞇𥉴𥉿祕秘𥦀𥧧䈼䈿簚𥻒糸䌏䌐𬘮羃𦣥苾蓂蔤𦸡藌䖑蜜𧐎𧕵覓覔覛觅𫌪䛑謐谧𰶨𧱻𧵬𧶡𧷦𧼊𧽨迷䣾䤉𨢎𨣯鑖䮭𬵨鿹𪅮𪑸𪒄鼏}} |} ==MIAN== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[mián]] : | {{charlist|sc=Hani|㒙冥𡒳婂媔嬵宀㝰𡯫𢣔杣棉㮌𰘣檰櫋㰃𣡠眠瞑𬑧𥊿矈矊𥌂矏䃇綿緜緡绵䏃臱芇蝒蠠𧭇𧸨𨲛𨲾䫵䯶𩬞𩮉䰓𪁼}} |- ! style="vertical-align:top;font-size:large" | [[miǎn]] : | {{charlist|sc=Hani|丏俛偭免冕勉勔喕𡕢娩媔㛯㝃㡈𢃮㤁愐㨺𣧾汅沔渑湎㴐澠㻰䀎眄眠𥾝絻緬𰬜缅𱺨腼𦬛莬葂𨟺𨡞䤄䩄靦𩋠鮸𩾃𪏊黽黾}} |- ! style="vertical-align:top;font-size:large" | [[miàn]] : | {{charlist|sc=Hani|冥𡧍𡧒𣅍㰃泯湣㴐牑眄𥄝𥤵糆𥻩𦽃䛉𨉥面靣𩈹麪麫麵麺}} |- ! style="vertical-align:top;font-size:large" | [[mian]] : | {{charlist|sc=Hani|面}} |} ==MIAO== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[miāo]] : | {{charlist|sc=Hani|喵}} |- ! style="vertical-align:top;font-size:large" | [[miáo]] : | {{charlist|sc=Hani|㑤媌嫹㠺描猫瞄䁧緢𰬬苗䖢蜱邈𩳸鱙鶓𪃦鹋𬸙}} |- ! style="vertical-align:top;font-size:large" | [[miǎo]] : | {{charlist|sc=Hani|仯𠋝吵𡙎妙𡡺彯𰒖㦝𢤧𢷕杪淼渺眇秒䅺篎紗緲缈䏚𦳥藐訬邈𪃐}} |- ! style="vertical-align:top;font-size:large" | [[miào]] : | {{charlist|sc=Hani|妙𢆷庙庿廟𢚋玅𤾛眇竗𥭝繆缪}} |} ==MIE== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[miē]] : | {{charlist|sc=Hani|乜吀咩咪哶𠺗孭羋}} |- ! style="vertical-align:top;font-size:large" | [[mié]] : | {{charlist|sc=Hani|𥄲}} |- ! style="vertical-align:top;font-size:large" | [[miè]] : | {{charlist|sc=Hani|㒝𡖺𡞙𡟬幭懱𢦼𢧞𢨖搣㩢櫗滅瀎灭烕𤊾𤏿眜𥉓𥋚䁾𥌨𥣫篾䈼𥵒𥸴𥽘𥾝䌩𦇪𬘔蔑薎𧀅𧂝蠛䘊衊覕𰴕𨣱鑖𰿃䩏𩔠𩱷鱴𱈙鴓𪇴𮭤𪌺𪒍}} |- ! style="vertical-align:top;font-size:large" | [[mie]] : | {{charlist|sc=Hani|咩}} |} ==MIN== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[mín]] : | {{charlist|sc=Hani|姄㞴岷崏㟩㟭㢯忞怋捪㨉旻旼暋民𣱈汶渂𣷠𤇜玟珉琘琝瑉痻𤸅盷盿䁕砇䂥碈䃉䋋緍緡𦈏缗罠苠𦳜𧌙䝧𧵣䟨䡑䡻𰺤鈱錉鍲閔䪸𩔉𩭷䲄鴖𪂆𪉎}} |- ! style="vertical-align:top;font-size:large" | [[mǐn]] : | {{charlist|sc=Hani|𠊟僶冺刡勄呡㞶悯惽愍㥸慜憫抿敃𢼖敏𢽹敯暋㬆𣱉泯𫞗㳷湏湣𣹒潣𤛎𤺖𤿕皿眠𫀓𥜐笢笽𫂃簢緡繩𦌡𦫮𧁋蠠𧲃䟨𨏵鈱閔閩闵闽鰵鳘𪄴黽黾}} |- ! style="vertical-align:top;font-size:large" | [[min]] : | {{charlist|sc=Hani|厸垊}} |} ==MING== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[míng]] : | {{charlist|sc=Hani|冥名嫇㝠明暝朙榠洺溟猽盟眀眳瞑𥌏䄙䆩𥹆䊅𥿨䏃𦡉茗萌蓂螟覭𬢒𬣮𧱴鄍銘铭䫤鳴䳟鸣𱊂𪗸}} |- ! style="vertical-align:top;font-size:large" | [[mǐng]] : | {{charlist|sc=Hani|佲𠋶凕姳嫇㟰慏㫥溟皿𥥊酩𩣶}} |- ! style="vertical-align:top;font-size:large" | [[mìng]] : | {{charlist|sc=Hani|名命𡥸椧䒌𦫭𧟠詺𪂤}} |- ! style="vertical-align:top;font-size:large" | [[ming]] : | {{charlist|sc=Hani|掵明}} |} ==MIU== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[miǔ]] : | {{charlist|sc=Hani|𨱯}} |- ! style="vertical-align:top;font-size:large" | [[miù]] : | {{charlist|sc=Hani|嘐繆缪謬谬}} |} ==MO== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[mō]] : | {{charlist|sc=Hani|摸摹}} |- ! style="vertical-align:top;font-size:large" | [[mó]] : | {{charlist|sc=Hani|么劘𠻚𰈶嚤嚩嚰嫫𡠜𡡉嬷尛𡾉庅戂摩摸摹𢳀撫擵攠无𬂠模橅𣻕𭴊無𤋂𤹴𥂓磨䃺糢䊳膜𦟟藦蘑謨謩譕谟𨆽𨟖𨰞𨱱饃𩞁𩟠饝䭩馍𬳔髍䯢𩪮魔魹麽}} |- ! style="vertical-align:top;font-size:large" | [[mǒ]] : | {{charlist|sc=Hani|𠄮𡢜懡𢣗抹𣋟䩋䯢𩪮𪎠}} |- ! style="vertical-align:top;font-size:large" | [[mò]] : | {{charlist|sc=Hani|万伯𠇱佰冒𠆮劰𠡞𠢓勿𠬛唜嗼嘿𡈗圽𡊉塻妺𡠜嫼寞𱚯𡻟帓帕帞𢄏𢊗𢐖𢗿抹昧昩暯末枺㱄歾歿殁𣧒𣧣㱳沒没沫𣶊湐漠㵹瀎㶬黙㷬㷵爅狢㹮獏𤣻瘼百皌𤿖𥄕眜眿眽瞐瞙䁼䁿砞磨𥕓礳𥙎秣𥞪𥬎𥱹粖𥽘絈𥿉絔縸𦅔纆𬙊耱𦔭脉䏞脈𦥦艒𦫕茉䒬𦮅莈莫蓦藐𧀅藦蛨蟆蟔䘃𧕤𧕥袜袹𧠓𧥟䜆𧰱貃貈貉貊貌貘𧻙𧼟𧿴鄚銆鏌镆陌𩃁𩄻靺鞨𩌧𩎟𩐻𩑦𩑷𬱕䬴𩢖𩢷𩥔驀䮬𮹅魩䱅𱇚𩿣䳮𱊓𲎉䴲𪍇𪍤𱋊𬹍𪏟墨默𪒂𪒇}} |- ! style="vertical-align:top;font-size:large" | [[mo]] : | {{charlist|sc=Hani|怽摸沫磨莫麿}} |} ==MOU== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[mōu]] : | {{charlist|sc=Hani|哞}} |- ! style="vertical-align:top;font-size:large" | [[móu]] : | {{charlist|sc=Hani|件侔劺𠥨呣堥婺𢃱恈𢜯敄㭌桙毋𣫬洠牟眸瞴𥿵䋷繆缪䏬𦭷蛑䗋𧎄𧎻蟱袤謀谋䜼踎鉾鍪䥐𨴍鞪𩢫𩶢䱕鴾𱉲麰𮮇}} |- ! style="vertical-align:top;font-size:large" | [[mǒu]] : | {{charlist|sc=Hani|𠀱厶某畝䍒𦊋𦊎䍙𦋡𦳑}} |- ! style="vertical-align:top;font-size:large" | [[mòu]] : | {{charlist|sc=Hani|𥆆𦺒}} |- ! style="vertical-align:top;font-size:large" | [[mou]] : | {{charlist|sc=Hani|謀谋}} |} ==MU== {| lang="zh" |- ! style="vertical-align:top;font-size:large" | [[mú]] : | {{charlist|sc=Hani|墲𢘃𢜯模母毪氁𤚅獏𨡭𨢢䱯}} |- ! style="vertical-align:top;font-size:large" | [[mǔ]] : | {{charlist|sc=Hani|亩𭈈𠺖坶姆姥娒㟂峔𢜯𢟨拇母𣳠牡牳𤝕畆畒畝畞畮𤵝砪胟茻𧩒𧬏𧰷𧿹踇𨈶鉧䥈𬭁𩡨𩬍𪎫}} |- ! style="vertical-align:top;font-size:large" | [[mù]] : | {{charlist|sc=Hani|仫凩募嘿坶㙁墓婺㜈𡵬幕幙㣎慔慕㧅𣈊暮木朰朷楘樢毣沐炑牟牧狇𤝂㾇目𥄈䀲睦穆𥣸𥰻䊾𦃤縸繆𫄲䑵艒苜莫莯𦱒萺蚞𧚀𨍎𨎸鉬钼雮霂𬰃鞪𩵦𩶖𩶩𫠏鶩}} |- ! style="vertical-align:top;font-size:large" | [[mu]] : | {{charlist|sc=Hani|拇}} |} {{cln|cmn|Phụ lục}} 1clth5bcx8k5we1y8yvroezhxyqzsn8 Bản mẫu:vi-etym-redup 10 301747 2348666 2270613 2026-04-26T08:20:09Z TheHighFighter2 42988 2348666 wikitext text/x-wiki {{#invoke:checkparams|error}}<!-- Validate template parameters -->{{#switch:{{{1|l-}}}<!-- -->|a2=[[Phụ lục:Từ láy tiếng Việt#Láy -a 1|Từ láy ''-a'' (thanh C)]] của {{mention|vi|{{{2|mục từ}}}|t={{{t|{{{gloss|{{{3|}}}}}}}}}}}<includeonly>[[Thể loại:Từ láy -a (thanh C) tiếng Việt]]</includeonly><!-- -->|a3=[[Phụ lục:Từ láy tiếng Việt#Láy -a 2|Từ láy ''-a'' (thanh A)]] của {{mention|vi|{{{2|mục từ}}}|t={{{t|{{{gloss|{{{3|}}}}}}}}}}}<includeonly>[[Thể loại:Từ láy -a (thanh A) tiếng Việt]]</includeonly><!-- -->|o1=[[Phụ lục:Từ láy tiếng Việt#Láy -o 1|Từ láy ''-o'' (thanh A)]] của {{mention|vi|{{{2|mục từ}}}|t={{{t|{{{gloss|{{{3|}}}}}}}}}}}<includeonly>[[Thể loại:Từ láy -o (thanh A) tiếng Việt]]</includeonly><!-- -->|o2=[[Phụ lục:Từ láy tiếng Việt#Láy -o 2|Từ láy ''-o'' (thanh B)]] của {{mention|vi|{{{2|mục từ}}}|t={{{t|{{{gloss|{{{3|}}}}}}}}}}}<includeonly>[[Thể loại:Từ láy -o (thanh B) tiếng Việt]]</includeonly><!-- -->|oi1=[[Phụ lục:Từ láy tiếng Việt#Láy -oi 1|Từ láy ''-oi'' (thanh A)]] của {{mention|vi|{{{2|mục từ}}}|t={{{t|{{{gloss|{{{3|}}}}}}}}}}}<includeonly>[[Thể loại:Từ láy -oi (thanh A) tiếng Việt]]</includeonly><!-- -->|oi2=[[Phụ lục:Từ láy tiếng Việt#Láy -oi 2|Từ láy ''-oi'' (thanh C)]] của {{mention|vi|{{{2|mục từ}}}|t={{{t|{{{gloss|{{{3|}}}}}}}}}}}<includeonly>[[Thể loại:Từ láy -oi (thanh C) tiếng Việt]]</includeonly><!-- -->|ung2=[[Phụ lục:Từ láy tiếng Việt#Láy -ung 2|Từ láy ''-ung'' (thanh A)]] của {{mention|vi|{{{2|mục từ}}}|t={{{t|{{{gloss|{{{3|}}}}}}}}}}}<includeonly>[[Thể loại:Từ láy -ung (thanh A) tiếng Việt]]</includeonly><!-- -->|full=[[Phụ lục:Từ láy tiếng Việt#Từ láy toàn bộ|Từ láy toàn bộ]] của {{mention|vi|{{{2|mục từ}}}|t={{{t|{{{gloss|{{{3|}}}}}}}}}}}<includeonly>[[Thể loại:Từ láy tiếng Việt]]</includeonly><!-- -->|AABB=[[Phụ lục:Từ láy tiếng Việt#Láy AABB|Từ láy loại AABB]] của {{mention|vi|{{{2|mục từ}}}|t={{{t|{{{gloss|{{{3|}}}}}}}}}}}<includeonly>[[Thể loại:Từ láy loại AABB tiếng Việt]]</includeonly><!-- -->|ap=Biến đổi nguyên âm {{rdp|vi|{{{2|mục từ}}}|t={{{t|{{{gloss|{{{3|}}}}}}}}}|nocap=1|nocat=1}}<includeonly>{{cln|vi|Từ láy biến đổi nguyên âm}}</includeonly><!-- -->|tri=[[Phụ lục:Từ láy tiếng Việt#Láy ba âm tiết|Láy ba âm tiết]] của {{mention|vi|{{{2|mục từ}}}|t={{{t|{{{gloss|{{{3|}}}}}}}}}}}<includeonly>[[Thể loại:Từ láy ba âm tiết tiếng Việt]]</includeonly><!-- -->|[[Phụ lục:Từ láy tiếng Việt#Láy {{{1|l-}}}|Từ láy ''{{{1|l-}}}'']] của {{mention|vi|{{{2|mục từ}}}|t={{{t|{{{gloss|{{{3|}}}}}}}}}}}<includeonly>[[Thể loại:Từ láy {{{1|l-}}} tiếng Việt]]</includeonly>}}<noinclude>{{documentation}}</noinclude> httn4vidrnemoibc1b4ne4bs018nk66 Thể loại:Mục từ tiếng Chaura 14 307113 2348522 2167864 2026-04-25T15:48:25Z WhoAlone 40420 2348522 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Số tiếng Chaura 14 307116 2348539 2167870 2026-04-25T15:55:57Z WhoAlone 40420 2348539 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Sanënyö 0 307182 2348524 2168143 2026-04-25T15:49:38Z WhoAlone 40420 2348524 wikitext text/x-wiki {{-crv-}} {{-pr-noun-}} {{head|crv|Danh từ riêng}} # [[người]] Chaura. # [[tiếng]] Chaura. {{C|crv|Tên dân tộc|Tên ngôn ngữ}} 3w3lu3f9qft80zrrvjrvx7apuuuj1bo Thể loại:Danh từ tiếng Chaura 14 307184 2348523 2168145 2026-04-25T15:48:48Z WhoAlone 40420 2348523 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx râk 0 307203 2348541 2217046 2026-04-25T15:57:13Z WhoAlone 40420 2348541 wikitext text/x-wiki {{-crv-}} {{-noun-}} {{head|crv|Danh từ}} # [[nước]]. {{-references-}} * ''Comparative list of words and numerals in the six dialects of the Nicobar islands'', in ''A Dictionary of the Central Nicobarese Language'' {{C|crv|Nước}} =={{langname|ncb}}== ==={{ĐM|noun}}=== {{head|ncb|Danh từ}} # {{label|ncb|Nancowry}} [[nước]]. #:{{synonym|ncb|dâk}} ==={{ĐM|ref}}=== * [http://www.sealang.net/monkhmer/database/retrieve.pl?language=Nancowry&sort=gloss&format=html Tiếng Nicobar Trung (Nancowry)] tại Cơ sở Dữ liệu Môn-Khmer 2q6jlsjeosmvxtyrmsyhxommijtswnk Bambus 0 311802 2348516 2295541 2026-04-25T14:01:56Z TheHighFighter2 42988 /* Hậu duệ */ 2348516 wikitext text/x-wiki {{also|bambus}} =={{langname|de}}== ==={{section|pron}}=== * {{audio|de|De-Bambus.ogg|a=Berlin}} ==={{section|n}}=== {{de-noun|m,ses}} # [[tre|Tre]]. ===={{section|decl}}==== {{de-ndecl|m,ses}} ===={{section|desc}}==== * {{desc|bor=1|cs|bambus}} * {{desc|bor=1|da|bambus}} * {{desc|bor=1|fo|bambus}} * {{desc|bor=1|hu|bambusz}} * {{desc|bor=1|is|bambus}} * {{desc|bor=1|lv|bambuss}} * {{desc|bor=1|mk|бамбус}} * {{desc|bor=1|pl|bambus}} * {{desc|bor=1|ro|bambus}} * {{desc|bor=1|sh|-}} ** {{desc|sh|бамбус|sclang=1}} ** {{desc|sh|bambus|sclang=1}} * {{desc|bor=1|sk|bambus}} * {{desc|bor=1|sl|bambus}} ==={{section|further}}=== * {{R:de:Duden}} * {{R:de:DWDS}} e2pe6ne8cqzfh1ltp6ulch4xy7lutbo 航空宇宙 0 323701 2348570 2248049 2026-04-25T16:18:22Z WhoAlone 40420 2348570 wikitext text/x-wiki =={{langname|vì}}== {{vi-hantutab}} ==={{ĐM|join}}=== {{vi-noun|sc=Hani}} # {{vi-Han form of|hàng không vũ trụ}} ==Tiếng Nhật== {{wp|lang=ja}} {{ja-kanjitab|こう|くう|う|ちゅう|yomi=on}} ===Từ nguyên=== {{com+|ja|航空|宇宙|t1=hàng không|t2=vũ trụ|sort=こうくううちゅう}} ===Cách phát âm=== {{ja-pron|こうくううちゅう}} ===Danh từ=== {{ja-noun|こうくううちゅう}} # [[hàng không vũ trụ|Hàng không vũ trụ]] {{C|ja|Hàng không vũ trụ}} lk8vnb11hh3t6k8i6qwai2l5rfx25nj 2348571 2348570 2026-04-25T16:18:33Z WhoAlone 40420 2348571 wikitext text/x-wiki =={{langname|vi}}== {{vi-hantutab}} ==={{ĐM|join}}=== {{vi-noun|sc=Hani}} # {{vi-Han form of|hàng không vũ trụ}} ==Tiếng Nhật== {{wp|lang=ja}} {{ja-kanjitab|こう|くう|う|ちゅう|yomi=on}} ===Từ nguyên=== {{com+|ja|航空|宇宙|t1=hàng không|t2=vũ trụ|sort=こうくううちゅう}} ===Cách phát âm=== {{ja-pron|こうくううちゅう}} ===Danh từ=== {{ja-noun|こうくううちゅう}} # [[hàng không vũ trụ|Hàng không vũ trụ]] {{C|ja|Hàng không vũ trụ}} hils5rkb0t5osgj059evpy0werrr2lq 2348572 2348571 2026-04-25T16:18:44Z WhoAlone 40420 /* Danh từ */ 2348572 wikitext text/x-wiki =={{langname|vi}}== {{vi-hantutab}} ==={{ĐM|noun}}=== {{vi-noun|sc=Hani}} # {{vi-Han form of|hàng không vũ trụ}} ==Tiếng Nhật== {{wp|lang=ja}} {{ja-kanjitab|こう|くう|う|ちゅう|yomi=on}} ===Từ nguyên=== {{com+|ja|航空|宇宙|t1=hàng không|t2=vũ trụ|sort=こうくううちゅう}} ===Cách phát âm=== {{ja-pron|こうくううちゅう}} ===Danh từ=== {{ja-noun|こうくううちゅう}} # [[hàng không vũ trụ|Hàng không vũ trụ]] {{C|ja|Hàng không vũ trụ}} 067tb1sbzerofof9tsda5rk8jo1jplc Thể loại:Số tiếng Nicobar Nam 14 325617 2348558 2203856 2026-04-25T16:09:57Z WhoAlone 40420 2348558 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Từ láy -e tiếng Việt 14 326523 2348668 2270615 2026-04-26T08:25:37Z TheHighFighter2 42988 TheHighFighter2 đã đổi [[Thể loại:Từ láy âm -e tiếng Việt]] thành [[Thể loại:Từ láy -e tiếng Việt]] (đã tắt đổi hướng) 2270612 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx köl-vīö hu-līṅö 0 331555 2348534 2215781 2026-04-25T15:54:09Z WhoAlone 40420 2348534 wikitext text/x-wiki =={{langname|crv}}== ==={{ĐM|pron}}=== * {{IPA4|crv|/kɑlʋiːə xulĩːə/}} ==={{ĐM|noun}}=== {{head|crv|Danh từ}} # [[bà]]. #:{{synonym|crv|yōm hu-līṅö}} ==={{ĐM|ref}}=== * V.R. Rajasingh. (2019) ''[https://drive.google.com/open?id=1sJ_kFSvTHaxp24iH3Sx90jPm83fBXV8l Nicobarese-Hindi-English Dictionary (Pū-Sanënyö-Luröö-Mūöt-Lamôngsĕ-Tökahāṅilāhngö-Hindi-English)]'' {{C|crv|Gia đình}} 8ati71g8761mfjci7dpxiczeod6lnf1 yōm hu-līṅö 0 331556 2348535 2215782 2026-04-25T15:54:21Z WhoAlone 40420 2348535 wikitext text/x-wiki =={{langname|crv}}== ==={{ĐM|pron}}=== * {{IPA4|crv|/joˑm xulĩːə/}} ==={{ĐM|noun}}=== {{head|crv|Danh từ}} # [[bà]]. #:{{synonym|crv|köl-vīö hu-līṅö}} ==={{ĐM|ref}}=== * V.R. Rajasingh. (2019) ''[https://drive.google.com/open?id=1sJ_kFSvTHaxp24iH3Sx90jPm83fBXV8l Nicobarese-Hindi-English Dictionary (Pū-Sanënyö-Luröö-Mūöt-Lamôngsĕ-Tökahāṅilāhngö-Hindi-English)]'' {{C|crv|Gia đình}} ekcm5gjxezkwazmaqitevapssfmzq66 yôp pin-lāng 0 331558 2348552 2215784 2026-04-25T16:07:41Z WhoAlone 40420 2348552 wikitext text/x-wiki =={{langname|nik}}== ==={{ĐM|pron}}=== * {{IPA4|nik|/jɔˑp pinlɑˑŋ/}} ==={{ĐM|noun}}=== {{head|nik|Danh từ}} # {{label|nik|Lamôngsĕ}} [[bà]]. ==={{ĐM|ref}}=== * V.R. Rajasingh. (2019) ''[https://drive.google.com/open?id=1sJ_kFSvTHaxp24iH3Sx90jPm83fBXV8l Nicobarese-Hindi-English Dictionary (Pū-Sanënyö-Luröö-Mūöt-Lamôngsĕ-Tökahāṅilāhngö-Hindi-English)]'' {{C|nik|Gia đình}} 0atbqbkiqb2doiqd79lyx73ykp16tzj rië pööp 0 332177 2348560 2216887 2026-04-25T16:11:23Z WhoAlone 40420 2348560 wikitext text/x-wiki =={{langname|nik}}== ==={{ĐM|pron}}=== * {{IPA4|nik|/ɹiɛː pəːpə/}} ==={{ĐM|noun}}=== {{head|nik|Danh từ}} # {{label|nik|Lamôngsĕ}} [[nước uống]]. ==={{ĐM|ref}}=== * V.R. Rajasingh. (2019) ''[https://drive.google.com/open?id=1sJ_kFSvTHaxp24iH3Sx90jPm83fBXV8l Nicobarese-Hindi-English Dictionary (Pū-Sanënyö-Luröö-Mūöt-Lamôngsĕ-Tökahāṅilāhngö-Hindi-English)]'' {{C|nik|Nước}} grxhdwyo2l5dy7f8z7pmnalfdkph97a شمندوفر 0 349531 2348517 2247124 2026-04-25T14:04:43Z TheHighFighter2 42988 /* Hậu duệ */ 2348517 wikitext text/x-wiki =={{langname|ota}}== ==={{ĐM|alt}}=== * {{alter|ota|شمندفر<tr:şümendefer, şömendefer, şimendefer, şemendefer, şümendifer, şömendifer, şimendifer, şemendifer>}} * {{alter|ota|شمندیفر<tr:şümendifer, şömendifer, şimendifer, şemendifer>}} ==={{ĐM|etym}}=== {{bor+|ota|fr|chemin de fer}}. ==={{ĐM|n}}=== {{head|ota|Danh từ|tr=şümendüfer, şömendüfer, şimendüfer, şemendüfer}} # [[đường sắt|Đường sắt]] ===={{ĐM|desc}}==== * {{desc|tr|şimendifer<l:archaic>|alts=1}} {{C|ota|Vận tải đường sắt}} h5tddryuik5219pnfizagtf0vw40c1h Mô đun:category tree/lang/vi 828 354136 2348663 2270614 2026-04-26T07:26:22Z TheHighFighter2 42988 2348663 Scribunto text/plain local labels = {} local rdp_types_app = { "-a", "-ang", "-ap", "-âp", "-ăn", "-e", "-eo", "-ơm", "-iêm", "-it", "-inh", "-oi", "-ôi", "-ui", "-ung", "l-", "ch-", "t-", "b-" } local rdp_types_special = { a2 = {"-a reduplications (C tone)", "''-a'' reduplication (C tone)", "-a reduplication 2"}, o1 = {"-o reduplications (A tone)", "''-o'' reduplication (A tone)", "-o reduplication 1"}, o2 = {"-o reduplications (B tone)", "''-o'' reduplication (B tone)", "-o reduplication 2"}, oi1 = {"-oi reduplications (A tone)", "''-oi'' reduplication (A tone)", "-oi reduplication 1"}, oi2 = {"-oi reduplications (C tone)", "''-oi'' reduplication (C tone)", "-oi reduplication 2"}, ung2 = {"-ung reduplications (A tone)", "''-ung'' reduplication (A tone)", "-ung reduplication 2"} } for i, rpd_type in pairs(rdp_types_app) do labels["Từ láy " .. rpd_type] = { description = "Các từ tiếng Việt trải qua quá trình [[Phụ lục:Từ láy tiếng Việt#Láy " .. rpd_type .. "|láy ''" .. rpd_type .. "'']].", parents = {{name = "Từ láy", sort = mw.ustring.gsub( rpd_type, "%-", "") }}, } end for rpd_type, info in pairs(rdp_types_special) do labels[info[1]] = { description = "Vietnamese terms that underwent [[Appendix:Vietnamese reduplication#" .. info[3] .. "|" .. info[2] .. "]].", parents = {{name = "reduplications", sort = rpd_type }}, } end labels["diminutive reduplications"] = { description = "Vietnamese terms that underwent [[Appendix:Vietnamese reduplication#Adjectives|diminutive reduplication]].", parents = {{name = "reduplications", sort = "diminutive"}}, } labels["home names"] = { description = "Vietnamese {{l|vi|tên tục|home names}}.", parents = {{name = "given names", sort = "home names"}}, } labels["Tiếng Việt"] = { description = "Vietnamese terms that underwent [[Appendix:Vietnamese reduplication#Adjectives|diminutive reduplication]].", parents = {{name = "reduplications", sort = "diminutive"}}, } return {LABELS = labels} m03yggclxw9jahls91jzvf0h4osmz1b 𐎶𐎠𐏃 0 358591 2348518 2267493 2026-04-25T14:12:30Z TheHighFighter2 42988 /* Tiếng Ba Tư cổ */ 2348518 wikitext text/x-wiki =={{langname|peo}}== ==={{ĐM|etym}}=== {{etymon|peo|id=mặt trăng|:inh|ira-pro:*mā́Hah<id:mặt trăng>|tree=1}} Từ {{inherited|peo|ira-pro|*mā́Hah}}, từ {{inherited|peo|iir-pro|*mā́Has}}, từ {{inherited|peo|ine-pro|*mḗh₁n̥s}}. ==={{ĐM|n}}=== {{head|peo|Danh từ|ts=māhaʰ|g=m}} # [[tháng|Tháng]]. # [[Mặt Trăng]]. ===={{ĐM|desc}}==== * {{desc|pal|-}} *: {{desc|pal|𐫖𐫀𐫆|sclang=1}} *: {{desc|pal|tr=mʾh|sc=Phlv|sclang=1}} *: {{desctree|pal|𐭡𐭩𐭥𐭧|tr=BYRH|sclang=1}} {{c|peo|Tự nhiên|Thời gian|Thiên văn học}} 8cqotz0ajbtvo5t6985aweotc38ij58 0 359909 2348626 2271186 2026-04-26T05:38:21Z Hiyuune 50834 2348626 wikitext text/x-wiki {{also|钱|銭}} {{character info}} =={{langname|mul}}== {{Han simplified forms|錢|銭|钱}} ==={{ĐM|han}}=== {{Han char|rn=167|rad=金|as=08|sn=16|four=83153|canj=CII|ids=⿰釒戔}} ===={{ĐM|ref}}==== {{Han ref|kx=1311.050|dkj=40563|dj=1812.140|hdz=64217.100|uh=9322}} =={{langname|zh}}== {{zh-forms|s=钱|alt=銭}} ==={{ĐM|glyph origin}}=== {{Han etym}} {{Han compound|金|t1=vật chất; vàng; tiền|戔|ls=psc|c1=s|c2=p}}. ==={{ĐM|etym}}=== {{rfe|zh}} ==={{ĐM|pron}} 1=== {{zh-pron |m=qián,er=y |m-s=qian2 |m-x=qián |m-nj=cién |dg=чян1 |c=cin4,cin4-2 |c-dg=cin4 |c-t=ten3,ten3* |g=qien2 |h=pfs=chhièn;hrs=h:cien;gd=qiên2 |j=qie1 |mb=cîng |md=cièng |mn=ml,jj,na,ha,yc,zp,ct,tw,kl:chîⁿ/ml,jj,na,yc,tw:chiân/ha:chên/tw:chhiân |mn_note=chîⁿ - ngôn ngữ bản địa (bao gồm cả tên họ); chiân/chên - ngôn ngữ văn chương; chhiân - có giới hạn (ví dụ: {{lang|zh|一錢,二緣,三媠,四少年}}) |mn-t=zin5 |mn-l=ji5/qieng5 |mn-l_note=ji5 - ngôn ngữ bản địa; qieng5 - ngôn ngữ văn chương |px=pt,jk,nr,dh,xy,yy,ft:zing2/pt,jk,xy,yy,ft:zeng2 |px_note=zing2 - ngôn ngữ bản địa (ví dụ: {{zh-l|*有錢}}, {{zh-l|*錢包}}); zeng2 - ngôn ngữ văn chương (ví dụ: {{zh-l|[[一]][[文]][[錢]]}}, {{zh-l|*錢塘}}) |sp=zin4 |w=sh:6zhi;jd,sz,ks,cz:2zie;sj:2zi;jx:2jie;hz,sx,zs:2jien;fy:2jiaen;nb:2ji;fy:2diaen;sx:2dien;sx:2lien |w-j=2dzian,2die |w_note=2diaen/2dien/2lien - “đồng xu” 2die (Jinhua) - “mace” |x=zienn2 |ma=y |mc=1 |oc=1,2 |cat=n,cls,pn }} ===={{ĐM|dfn}}==== {{head|zh|Hanzi}} # [[tiền|Tiền]]. #: {{zh-x|我 沒有 錢。|Tôi không có '''tiền'''.}} # [[tiền tệ|Tiền tệ]]; [[tiền xu]]. #: {{zh-x|古 錢|tiền xu cổ}} #: {{zh-x|銅錢|đồng xu}} # [[giá|Giá]]; [[phí]]. # [[mace]]: đơn vị đo tiền [[truyền thống]]. # {{surname|zh|xlit=Qian}} ====={{ĐM|syn}}===== {{zh-dial}} ===={{ĐM|com}}==== {{col3|zh|零錢|付錢|佣錢|使錢|便錢|保錢|倒錢|借錢|值錢|偏錢|價錢|儭錢|儹錢|公錢|冥錢|出錢|分錢|利錢|制錢|力錢|匯錢|口錢|古錢|喜錢|報錢|墊錢|大錢|女錢|媒錢|子錢|存錢|定錢|尋錢|小錢|工錢|差錢|弄錢|彩錢|息錢|意錢|慳錢|憨錢|房錢|打錢|找錢|把錢|折錢|拜錢|挑錢|捐錢|掏錢|掙錢|掛錢|換錢|摟錢|撈錢|撚錢|撥錢|擱錢|攢錢|攤錢|攧錢|斂錢|料錢|會錢|月錢|有錢|本錢|村錢|杖錢|楮錢|榆錢|母錢|毛錢|沙錢|洋錢|洗錢|活錢|混錢|渡錢|湊錢|熱錢|犀錢|現錢|用錢|瘞錢|白錢|省錢|私錢|稱錢|節錢|箱錢|簸錢|紙錢|綠錢|綺錢|耍錢|腳錢|臭錢|臺錢|船錢|花錢|苔錢|茶錢|莢錢|落錢|行錢|襯錢|要錢|見錢|課錢|費錢|貼錢|賞錢|賠錢|賣錢|賭錢|賺錢|贏錢|趁錢|車錢|輸錢|退錢|送錢|連錢|過錢|還錢|酒錢|金錢|銀錢|銅錢|錢包|錢坫|錢垛|錢市|錢布|錢帛|錢幣|錢引|錢文|錢會|錢櫃|錢泳|錢潮|錢灃|錢票|錢穀|錢筒|錢糧|錢紙|錢荒|錢莊|錢袋|錢財|錢起|錢通|錢鈔|錢鋪|錢陌|錢龍|長錢|門錢|閒錢|青錢|領錢|頭錢|飛錢|飯錢|香錢|髒錢|麴錢|黃錢|黑錢|倆錢兒|免苦錢|中用錢|向錢看|好看錢|倒包錢|合子錢|下本錢|恩養錢|常例錢|使用錢|五銖錢|夜合錢|墊背錢|守錢奴|三銖錢|學課錢|外來錢|底子錢|工顧錢|乾茶錢|不值錢|公事錢|一毛錢|壓歲錢|印子錢|冤苦錢|冤枉錢|後手錢|守錢虜|大價錢|墊箱錢|保頭錢|標手錢|有錢人|揪心錢|日事錢|目子錢|房宿錢|日頭錢|烈紙錢|搖錢樹|洗手錢|永樂錢|杖頭錢|燒埋錢|牌錢樹|私房錢|本分錢|房飯錢|拜見錢|燈油錢|看錢奴|撒紙錢|昧心錢|打業錢|錢樹子|開門錢|車腳錢|肉裡錢|買命錢|長歲錢|買路錢|箱底錢|蟻鼻錢|錢塘潮|腳步錢|金錢豹|身丁錢|金錢棒|錢串子|錢多多|馬口錢|茶水錢|貼本錢|馬錢子|鵝眼錢|齋襯錢|黃邊錢|鄧通錢|錢褡子|零用錢|賠錢貨|陪錢貨|血汗錢|鑽錢眼|錢龍宴|錢板兒|錢塘江|錢兒癬|風流錢|開手錢|糟錢兒|金錢板|鞋底錢|過門錢|連錢驄|連錢草|買閒錢|香油錢|賭錢廠|賣花錢|買服錢|謝媒錢|草鞋錢|錢鋪|錢橋|錢寨|錢塘|錢崗一|錢崗二|錢當|偌濟錢<tr:gōa-chē chîⁿ>|錢七|溪錢|nan:了錢<tr:liáu-chîⁿ>|nan:討錢<tr:thó-chîⁿ>|nan:儉錢<tr:khiām-chîⁿ>|倓錢|錢爐|鑄錢局|錢王祠}} ===={{ĐM|desc}}==== {{CJKV||せん|s=銭|jt=mace|전|kt=mace|tiền|vt=tiền}} ''Khác'': * {{desc|bor=1|en|Qian|Chien|Tsien|Chin}} * {{desc|bor=1|hmx-pro|*dzi̯en|t=tiền}} * {{desc|bor=1|th|สิน|t=tiền}} * {{desc|bor=1|ms|ci|t=mace}} * {{desc|bor=1|mn|цэн}} * {{desc|bor=1|za|cienz|t=tiền}} ==={{ĐM|pron}} 2=== {{zh-pron |m=jiǎn |c=zin2 |dial=n |mc=2 |oc=n,1 |cat=n }} ===={{ĐM|dfn}}==== {{head|zh|Hanzi}} # {{lb|zh|obs-std}} Một loại [[dụng cụ]] [[nông nghiệp]]. ==={{ĐM|ref}}=== * {{R:yue:Hanzi}} * {{thcwd|12022}} * {{R:cpx:PHDB|entry=錢|pp=213}} shx10np75u85lpdw681uu5y2owwyfqv 2348635 2348626 2026-04-26T05:58:05Z Hiyuune 50834 /* Định nghĩa */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]) 2348635 wikitext text/x-wiki {{also|钱|銭}} {{character info}} =={{langname|mul}}== {{Han simplified forms|錢|銭|钱}} ==={{ĐM|han}}=== {{Han char|rn=167|rad=金|as=08|sn=16|four=83153|canj=CII|ids=⿰釒戔}} ===={{ĐM|ref}}==== {{Han ref|kx=1311.050|dkj=40563|dj=1812.140|hdz=64217.100|uh=9322}} =={{langname|zh}}== {{zh-forms|s=钱|alt=銭}} ==={{ĐM|glyph origin}}=== {{Han etym}} {{Han compound|金|t1=vật chất; vàng; tiền|戔|ls=psc|c1=s|c2=p}}. ==={{ĐM|etym}}=== {{rfe|zh}} ==={{ĐM|pron}} 1=== {{zh-pron |m=qián,er=y |m-s=qian2 |m-x=qián |m-nj=cién |dg=чян1 |c=cin4,cin4-2 |c-dg=cin4 |c-t=ten3,ten3* |g=qien2 |h=pfs=chhièn;hrs=h:cien;gd=qiên2 |j=qie1 |mb=cîng |md=cièng |mn=ml,jj,na,ha,yc,zp,ct,tw,kl:chîⁿ/ml,jj,na,yc,tw:chiân/ha:chên/tw:chhiân |mn_note=chîⁿ - ngôn ngữ bản địa (bao gồm cả tên họ); chiân/chên - ngôn ngữ văn chương; chhiân - có giới hạn (ví dụ: {{lang|zh|一錢,二緣,三媠,四少年}}) |mn-t=zin5 |mn-l=ji5/qieng5 |mn-l_note=ji5 - ngôn ngữ bản địa; qieng5 - ngôn ngữ văn chương |px=pt,jk,nr,dh,xy,yy,ft:zing2/pt,jk,xy,yy,ft:zeng2 |px_note=zing2 - ngôn ngữ bản địa (ví dụ: {{zh-l|*有錢}}, {{zh-l|*錢包}}); zeng2 - ngôn ngữ văn chương (ví dụ: {{zh-l|[[一]][[文]][[錢]]}}, {{zh-l|*錢塘}}) |sp=zin4 |w=sh:6zhi;jd,sz,ks,cz:2zie;sj:2zi;jx:2jie;hz,sx,zs:2jien;fy:2jiaen;nb:2ji;fy:2diaen;sx:2dien;sx:2lien |w-j=2dzian,2die |w_note=2diaen/2dien/2lien - “đồng xu” 2die (Jinhua) - “mace” |x=zienn2 |ma=y |mc=1 |oc=1,2 |cat=n,cls,pn }} ===={{ĐM|dfn}}==== {{head|zh|Hanzi}} # [[tiền|Tiền]]; [[tiền mặt]]. #: {{zh-x|我 沒有 錢。|Tôi không có '''tiền'''.}} # [[tiền tệ|Tiền tệ]]; [[tiền xu]]. #: {{zh-x|古 錢|tiền xu cổ}} #: {{zh-x|銅錢|đồng xu}} # [[giá|Giá]]; [[phí]]. # [[mace]]: đơn vị đo tiền [[truyền thống]]. # {{surname|zh|xlit=Qian}} ====={{ĐM|syn}}===== {{zh-dial}} ===={{ĐM|com}}==== {{col3|zh|零錢|付錢|佣錢|使錢|便錢|保錢|倒錢|借錢|值錢|偏錢|價錢|儭錢|儹錢|公錢|冥錢|出錢|分錢|利錢|制錢|力錢|匯錢|口錢|古錢|喜錢|報錢|墊錢|大錢|女錢|媒錢|子錢|存錢|定錢|尋錢|小錢|工錢|差錢|弄錢|彩錢|息錢|意錢|慳錢|憨錢|房錢|打錢|找錢|把錢|折錢|拜錢|挑錢|捐錢|掏錢|掙錢|掛錢|換錢|摟錢|撈錢|撚錢|撥錢|擱錢|攢錢|攤錢|攧錢|斂錢|料錢|會錢|月錢|有錢|本錢|村錢|杖錢|楮錢|榆錢|母錢|毛錢|沙錢|洋錢|洗錢|活錢|混錢|渡錢|湊錢|熱錢|犀錢|現錢|用錢|瘞錢|白錢|省錢|私錢|稱錢|節錢|箱錢|簸錢|紙錢|綠錢|綺錢|耍錢|腳錢|臭錢|臺錢|船錢|花錢|苔錢|茶錢|莢錢|落錢|行錢|襯錢|要錢|見錢|課錢|費錢|貼錢|賞錢|賠錢|賣錢|賭錢|賺錢|贏錢|趁錢|車錢|輸錢|退錢|送錢|連錢|過錢|還錢|酒錢|金錢|銀錢|銅錢|錢包|錢坫|錢垛|錢市|錢布|錢帛|錢幣|錢引|錢文|錢會|錢櫃|錢泳|錢潮|錢灃|錢票|錢穀|錢筒|錢糧|錢紙|錢荒|錢莊|錢袋|錢財|錢起|錢通|錢鈔|錢鋪|錢陌|錢龍|長錢|門錢|閒錢|青錢|領錢|頭錢|飛錢|飯錢|香錢|髒錢|麴錢|黃錢|黑錢|倆錢兒|免苦錢|中用錢|向錢看|好看錢|倒包錢|合子錢|下本錢|恩養錢|常例錢|使用錢|五銖錢|夜合錢|墊背錢|守錢奴|三銖錢|學課錢|外來錢|底子錢|工顧錢|乾茶錢|不值錢|公事錢|一毛錢|壓歲錢|印子錢|冤苦錢|冤枉錢|後手錢|守錢虜|大價錢|墊箱錢|保頭錢|標手錢|有錢人|揪心錢|日事錢|目子錢|房宿錢|日頭錢|烈紙錢|搖錢樹|洗手錢|永樂錢|杖頭錢|燒埋錢|牌錢樹|私房錢|本分錢|房飯錢|拜見錢|燈油錢|看錢奴|撒紙錢|昧心錢|打業錢|錢樹子|開門錢|車腳錢|肉裡錢|買命錢|長歲錢|買路錢|箱底錢|蟻鼻錢|錢塘潮|腳步錢|金錢豹|身丁錢|金錢棒|錢串子|錢多多|馬口錢|茶水錢|貼本錢|馬錢子|鵝眼錢|齋襯錢|黃邊錢|鄧通錢|錢褡子|零用錢|賠錢貨|陪錢貨|血汗錢|鑽錢眼|錢龍宴|錢板兒|錢塘江|錢兒癬|風流錢|開手錢|糟錢兒|金錢板|鞋底錢|過門錢|連錢驄|連錢草|買閒錢|香油錢|賭錢廠|賣花錢|買服錢|謝媒錢|草鞋錢|錢鋪|錢橋|錢寨|錢塘|錢崗一|錢崗二|錢當|偌濟錢<tr:gōa-chē chîⁿ>|錢七|溪錢|nan:了錢<tr:liáu-chîⁿ>|nan:討錢<tr:thó-chîⁿ>|nan:儉錢<tr:khiām-chîⁿ>|倓錢|錢爐|鑄錢局|錢王祠}} ===={{ĐM|desc}}==== {{CJKV||せん|s=銭|jt=mace|전|kt=mace|tiền|vt=tiền}} ''Khác'': * {{desc|bor=1|en|Qian|Chien|Tsien|Chin}} * {{desc|bor=1|hmx-pro|*dzi̯en|t=tiền}} * {{desc|bor=1|th|สิน|t=tiền}} * {{desc|bor=1|ms|ci|t=mace}} * {{desc|bor=1|mn|цэн}} * {{desc|bor=1|za|cienz|t=tiền}} ==={{ĐM|pron}} 2=== {{zh-pron |m=jiǎn |c=zin2 |dial=n |mc=2 |oc=n,1 |cat=n }} ===={{ĐM|dfn}}==== {{head|zh|Hanzi}} # {{lb|zh|obs-std}} Một loại [[dụng cụ]] [[nông nghiệp]]. ==={{ĐM|ref}}=== * {{R:yue:Hanzi}} * {{thcwd|12022}} * {{R:cpx:PHDB|entry=錢|pp=213}} b5tskqj2pviz6vprgxybl6jx4cye74n Thể loại:Từ láy b- tiếng Việt 14 379081 2348667 2319231 2026-04-26T08:22:46Z TheHighFighter2 42988 TheHighFighter2 đã đổi [[Thể loại:Từ láy âm b- tiếng Việt]] thành [[Thể loại:Từ láy b- tiếng Việt]] (đã tắt đổi hướng) 2319231 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx 0 394662 2348515 2348484 2026-04-25T13:56:57Z TheHighFighter2 42988 /* Đa ngữ */ 2348515 wikitext text/x-wiki {{also|艱}} {{character info}} =={{langname|mul}}== {{stroke order|[[Hình:艰-writing.png|280px|艰]]}} ==={{section|han}}=== {{Han char|rn=138|rad=艮|as=02|sn=8|four=|canj=EAV|ids=⿰又艮}} # [[gian khổ|Gian khổ]], [[khó khăn]]. ===={{section|ref}}==== * {{Han ref|kx=1013.261|hdz=53171.010|uh=8270}} {{-}} =={{langname|zh}}== {{zh-see|艱}} pbelhtvqfkk9bvfwv17p5or3qwfyg3o Thể loại:Tiếng Amahuaca 14 394754 2348513 2026-04-25T13:39:05Z Kelly zhrm 58416 Trang mới: “{{auto cat|Brasil|Peru}}” 2348513 wikitext text/x-wiki {{auto cat|Brasil|Peru}} qq40cpyf41boak6bdxy9wkiyioqg0z8 Thể loại:Bản mẫu cách phát âm tiếng Quốc tế ngữ 14 394755 2348514 2026-04-25T13:41:15Z Kelly zhrm 58416 Trang mới: “{{auto cat}}” 2348514 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Danh từ giống đực tiếng Ba Tư cổ 14 394756 2348519 2026-04-25T14:12:58Z TheHighFighter2 42988 Trang mới: “{{auto cat}}” 2348519 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Danh từ theo giống tiếng Ba Tư cổ 14 394757 2348520 2026-04-25T14:13:40Z TheHighFighter2 42988 Trang mới: “{{auto cat}}” 2348520 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Tên ngôn ngữ 14 394758 2348525 2026-04-25T15:50:09Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348525 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Danh sách chủ đề thuộc nhóm tên gọi 14 394759 2348526 2026-04-25T15:50:24Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348526 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Tất cả chủ đề 14 394760 2348527 2026-04-25T15:50:39Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348527 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Ngôn ngữ 14 394761 2348528 2026-04-25T15:51:05Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348528 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Danh sách chủ đề thuộc nhóm liên quan 14 394762 2348529 2026-04-25T15:51:20Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348529 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Giao tiếp 14 394763 2348530 2026-04-25T15:51:36Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348530 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Mục từ có cách phát âm IPA tiếng Chaura 14 394764 2348531 2026-04-25T15:52:38Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348531 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Bảo trì mục từ tiếng Chaura 14 394765 2348532 2026-04-25T15:52:51Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348532 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Mục từ có chứa nhiều từ tiếng Chaura 14 394766 2348533 2026-04-25T15:53:19Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348533 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Gia đình 14 394767 2348536 2026-04-25T15:54:50Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348536 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Mọi người 14 394768 2348537 2026-04-25T15:55:03Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348537 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Con người 14 394769 2348538 2026-04-25T15:55:13Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348538 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Chức năng ngữ nghĩa tiếng Chaura 14 394770 2348540 2026-04-25T15:56:13Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348540 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Nước 14 394771 2348542 2026-04-25T15:58:02Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348542 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Chất lỏng 14 394772 2348543 2026-04-25T15:59:15Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348543 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Danh sách chủ đề thuộc nhóm tập hợp 14 394773 2348544 2026-04-25T15:59:29Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348544 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Vật chất 14 394774 2348545 2026-04-25T15:59:44Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348545 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Tự nhiên 14 394775 2348546 2026-04-25T16:00:00Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348546 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Hóa học 14 394776 2348547 2026-04-25T16:00:20Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348547 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:crv:Khoa học 14 394777 2348548 2026-04-25T16:00:35Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348548 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Mục từ có cách phát âm IPA tiếng Nicobar Nam 14 394778 2348549 2026-04-25T16:06:28Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348549 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Bảo trì mục từ tiếng Nicobar Nam 14 394779 2348550 2026-04-25T16:06:43Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348550 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Mục từ có chứa nhiều từ tiếng Nicobar Nam 14 394780 2348551 2026-04-25T16:07:07Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348551 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:nik:Gia đình 14 394781 2348553 2026-04-25T16:07:57Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348553 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:nik:Danh sách chủ đề thuộc nhóm liên quan 14 394782 2348554 2026-04-25T16:08:15Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348554 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:nik:Tất cả chủ đề 14 394783 2348555 2026-04-25T16:08:29Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348555 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:nik:Mọi người 14 394784 2348556 2026-04-25T16:08:58Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348556 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:nik:Con người 14 394785 2348557 2026-04-25T16:09:09Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348557 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Chức năng ngữ nghĩa tiếng Nicobar Nam 14 394786 2348559 2026-04-25T16:10:13Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348559 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:nik:Nước 14 394787 2348561 2026-04-25T16:11:34Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348561 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:nik:Chất lỏng 14 394788 2348562 2026-04-25T16:11:48Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348562 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:nik:Danh sách chủ đề thuộc nhóm tập hợp 14 394789 2348563 2026-04-25T16:11:59Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348563 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:nik:Vật chất 14 394790 2348564 2026-04-25T16:12:17Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348564 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:nik:Hóa học 14 394791 2348565 2026-04-25T16:12:31Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348565 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:nik:Khoa học 14 394792 2348566 2026-04-25T16:12:45Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348566 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:nik:Tự nhiên 14 394793 2348567 2026-04-25T16:13:06Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348567 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx qièruò 0 394794 2348568 2026-04-25T16:16:08Z WhoAlone 40420 Trang mới: “=={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|怯弱}}” 2348568 wikitext text/x-wiki =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|怯弱}} 4dis3ai7v79h0qszcrkdodb99julxns quèruò 0 394795 2348569 2026-04-25T16:16:24Z WhoAlone 40420 Trang mới: “=={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|怯弱}}” 2348569 wikitext text/x-wiki =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|怯弱}} 4dis3ai7v79h0qszcrkdodb99julxns Thể loại:Mục từ có cách phát âm IPA tiếng Gaddang 14 394796 2348573 2026-04-25T16:20:10Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348573 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Bảo trì mục từ tiếng Gaddang 14 394797 2348574 2026-04-25T16:20:19Z WhoAlone 40420 Trang mới: “{{auto cat}}” 2348574 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Thể loại:Mục từ có cây từ nguyên tiếng Ba Tư cổ 14 394798 2348575 2026-04-25T22:11:04Z TheHighFighter2 42988 Trang mới: “{{auto cat}}” 2348575 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx dinh luỹ 0 394799 2348578 2026-04-26T01:52:28Z Phan Trong Nghia 50745 Trang mới: “=={{langname|vi}}== ==={{section|pron}}=== {{vi-pron}} ==={{section|noun}}=== # Công trình [[quân sự]] [[kiên cố]], thường là một phần của [[thành trì]] được [[xây dựng]] nhô ra để [[phòng thủ]] và [[tấn công]]. # Vị trí [[kiên cố]], [[trung tâm]] [[quyền lực]] hoặc nơi tập trung lực lượng của một [[tổ chức]], hệ [[tư tưởng]]. {{trans-top|{{pagename}}}} * {{langname|en}}: {{t+|en|stronghold}}. {{tran…” 2348578 wikitext text/x-wiki =={{langname|vi}}== ==={{section|pron}}=== {{vi-pron}} ==={{section|noun}}=== # Công trình [[quân sự]] [[kiên cố]], thường là một phần của [[thành trì]] được [[xây dựng]] nhô ra để [[phòng thủ]] và [[tấn công]]. # Vị trí [[kiên cố]], [[trung tâm]] [[quyền lực]] hoặc nơi tập trung lực lượng của một [[tổ chức]], hệ [[tư tưởng]]. {{trans-top|{{pagename}}}} * {{langname|en}}: {{t+|en|stronghold}}. {{trans-bottom}} 9uvwupvz9t5ix3hlim18g2kt0l8mdm7 2348579 2348578 2026-04-26T01:53:02Z Phan Trong Nghia 50745 2348579 wikitext text/x-wiki =={{langname|vi}}== ==={{section|pron}}=== {{vi-pron}} ==={{section|noun}}=== {{vi-noun}} # Công trình [[quân sự]] [[kiên cố]], thường là một phần của [[thành trì]] được [[xây dựng]] nhô ra để [[phòng thủ]] và [[tấn công]]. # Vị trí [[kiên cố]], [[trung tâm]] [[quyền lực]] hoặc nơi tập trung lực lượng của một [[tổ chức]], hệ [[tư tưởng]]. {{trans-top|{{pagename}}}} * {{langname|en}}: {{t+|en|stronghold}}. {{trans-bottom}} 5u9yzlhl5h7c0f2sid3lbaog0ub5df9 2348584 2348579 2026-04-26T02:59:17Z Kelly zhrm 58416 2348584 wikitext text/x-wiki =={{langname|vi}}== ==={{section|pron}}=== {{vi-pron}} ==={{section|noun}}=== {{vi-noun}} # Công trình [[quân sự]] [[kiên cố]], thường là một phần của [[thành trì]] được [[xây dựng]] nhô ra để [[phòng thủ]] và [[tấn công]]. # Vị trí [[kiên cố]], [[trung tâm]] [[quyền lực]] hoặc nơi tập trung lực lượng của một [[tổ chức]], hệ [[tư tưởng]]. ===={{section|trans}}==== {{trans-top|{{pagename}}}} * {{langname|en}}: {{t+|en|stronghold}}. {{trans-bottom}} 41g04njbpb78wlh4uczefo3dob5x8be đoản 0 394800 2348580 2026-04-26T02:09:54Z Phan Trong Nghia 50745 Trang mới: “=={{langname|vi}}== ==={{section|pron}}=== {{vi-pron}} ==={{section|adj}}=== {{vi-adj}} # Ngắn, [[ăn ở]] không có hậu. {{trans-top|{{pagename}}}} * {{langname|en}}: {{t+|en|short}}. {{trans-bottom}}” 2348580 wikitext text/x-wiki =={{langname|vi}}== ==={{section|pron}}=== {{vi-pron}} ==={{section|adj}}=== {{vi-adj}} # Ngắn, [[ăn ở]] không có hậu. {{trans-top|{{pagename}}}} * {{langname|en}}: {{t+|en|short}}. {{trans-bottom}} 765uk6ebfhlad984ttg30rcjp23uirx śłöfa 0 394801 2348586 2026-04-26T03:06:04Z TheHighFighter2 42988 Trang mới: “=={{langname|wym}}== ==={{ĐM|alt}}=== * {{alt|wym|šłȫfa}} ==={{ĐM|etym}}=== Từ {{inh|wym|gmh|slāfen}}, từ {{inh|wym|goh|slāfan}}, từ {{inh|wym|gmw-pro|*slāpan}}, từ {{inh|wym|gem-pro|*slēpaną|t=ngủ}}. ==={{ĐM|verb}}=== {{head|wym|verb}} # [[ngủ|Ngủ]].” 2348586 wikitext text/x-wiki =={{langname|wym}}== ==={{ĐM|alt}}=== * {{alt|wym|šłȫfa}} ==={{ĐM|etym}}=== Từ {{inh|wym|gmh|slāfen}}, từ {{inh|wym|goh|slāfan}}, từ {{inh|wym|gmw-pro|*slāpan}}, từ {{inh|wym|gem-pro|*slēpaną|t=ngủ}}. ==={{ĐM|verb}}=== {{head|wym|verb}} # [[ngủ|Ngủ]]. p6dlks45mj2v9gk0akpc7rpzvblo9qw Thể loại:Động từ tiếng Wymysorys 14 394802 2348587 2026-04-26T03:07:17Z TheHighFighter2 42988 Trang mới: “{{auto cat}}” 2348587 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx blȧjśtift 0 394803 2348590 2026-04-26T03:14:49Z TheHighFighter2 42988 Trang mới: “{{also|blajštift}} =={{langname|wym}}== [[File:Penciltip.JPG|thumb|blȧjśtift]] ==={{ĐM|etym}}=== Từ {{compound|wym|blȧj|śtift}}. ==={{ĐM|noun}}=== {{wym-noun|g=n}} # [[bút chì|Bút chì]]. {{C|wym|Vật dụng viết}}” 2348590 wikitext text/x-wiki {{also|blajštift}} =={{langname|wym}}== [[File:Penciltip.JPG|thumb|blȧjśtift]] ==={{ĐM|etym}}=== Từ {{compound|wym|blȧj|śtift}}. ==={{ĐM|noun}}=== {{wym-noun|g=n}} # [[bút chì|Bút chì]]. {{C|wym|Vật dụng viết}} tg1g809rp2en3pp3h842v5riut59sdw Wikipédias 0 394804 2348591 2026-04-26T03:16:44Z Kelly zhrm 58416 Trang mới: “{{also|Wikipedias}} =={{langname|pt}}== ==={{ĐM|n}}=== {{head|pt|Biến thể hình thái danh từ}} # {{plural of|pt|Wikipédia}} =={{langname|fr}}== ==={{ĐM|pron}}=== * {{fr-IPA|Wikipédia}} * {{homophones|fr|Wikipédia}} ==={{ĐM|n}}=== {{head|fr|Biến thể hình thái danh từ|g=mf}} # {{plural of|fr|Wikipédia}}” 2348591 wikitext text/x-wiki {{also|Wikipedias}} =={{langname|pt}}== ==={{ĐM|n}}=== {{head|pt|Biến thể hình thái danh từ}} # {{plural of|pt|Wikipédia}} =={{langname|fr}}== ==={{ĐM|pron}}=== * {{fr-IPA|Wikipédia}} * {{homophones|fr|Wikipédia}} ==={{ĐM|n}}=== {{head|fr|Biến thể hình thái danh từ|g=mf}} # {{plural of|fr|Wikipédia}} 45x3mehq18o8pt9sbm8pwge8dyhmgjx błüt 0 394805 2348592 2026-04-26T03:20:51Z TheHighFighter2 42988 Trang mới: “=={{langname|wym}}== ==={{ĐM|etym}}=== {{dercat|wym|gmw-pro|gem-pro|inh=1}} Từ {{inh|wym|gmh|-}} và {{inh|wym|goh|bluot}}. ==={{ĐM|pron}}=== * {{audio|wym|Wym-błüt (wersja Józefa Gary).ogg}} ==={{ĐM|noun}}=== {{wym-noun|g=n}} # [[máu|Máu]]. ===={{ĐM|der}}==== * {{l|wym|błütöm}} * {{l|wym|błütwiyśt}} {{C|wym|Dịch cơ thể}}” 2348592 wikitext text/x-wiki =={{langname|wym}}== ==={{ĐM|etym}}=== {{dercat|wym|gmw-pro|gem-pro|inh=1}} Từ {{inh|wym|gmh|-}} và {{inh|wym|goh|bluot}}. ==={{ĐM|pron}}=== * {{audio|wym|Wym-błüt (wersja Józefa Gary).ogg}} ==={{ĐM|noun}}=== {{wym-noun|g=n}} # [[máu|Máu]]. ===={{ĐM|der}}==== * {{l|wym|błütöm}} * {{l|wym|błütwiyśt}} {{C|wym|Dịch cơ thể}} 0jolboxt2wlt2bipth7ifjgvhkmciqh bǡsuł 0 394806 2348593 2026-04-26T03:28:42Z TheHighFighter2 42988 Trang mới: “=={{langname|wym}}== [[File:Chisel wood 24mm.jpg|thumb|bǡsuł]] ==={{ĐM|noun}}=== {{wym-noun|g=m|pl=bǡsułn}} # Cái [[đục]].” 2348593 wikitext text/x-wiki =={{langname|wym}}== [[File:Chisel wood 24mm.jpg|thumb|bǡsuł]] ==={{ĐM|noun}}=== {{wym-noun|g=m|pl=bǡsułn}} # Cái [[đục]]. echr4gvdasu7hp7rbgtiaje8dkptuxu Thể loại:Danh từ giống đực tiếng Wymysorys 14 394807 2348594 2026-04-26T03:29:29Z TheHighFighter2 42988 Trang mới: “{{auto cat}}” 2348594 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx haltaog 0 394808 2348595 2026-04-26T03:37:19Z TheHighFighter2 42988 Trang mới: “=={{langname|wym}}== ==={{ĐM|pron}}=== * {{audio|wym|Wym-haltaog (wersja Józefa Gary).ogg}} ==={{ĐM|noun}}=== {{wym-noun|m}} # [[ngày lễ|Ngày lễ]], [[ngày nghỉ]]. {{C|wym|Lịch}}” 2348595 wikitext text/x-wiki =={{langname|wym}}== ==={{ĐM|pron}}=== * {{audio|wym|Wym-haltaog (wersja Józefa Gary).ogg}} ==={{ĐM|noun}}=== {{wym-noun|m}} # [[ngày lễ|Ngày lễ]], [[ngày nghỉ]]. {{C|wym|Lịch}} qodrkub4byllw5pltl6g6r491zoewn2 ᰑᰨᰉᰬᰯ 0 394809 2348596 2026-04-26T04:28:17Z Hiyuune 50834 Trang mới: “=={{langname|lep}}== ==={{section|etym}}=== Từ {{compound|lep|ᰑᰨ|t1=răng|lang2=sit-pro|*rV-ŋil|t2=nướu}}. ==={{section|pron}}=== * {{lep-IPA}} ==={{section|n}}=== {{head|lep|Danh từ}} # [[nướu|Nướu]] [[răng]]. ==={{section|further}}=== * {{R:lep:LEED|508}}” 2348596 wikitext text/x-wiki =={{langname|lep}}== ==={{section|etym}}=== Từ {{compound|lep|ᰑᰨ|t1=răng|lang2=sit-pro|*rV-ŋil|t2=nướu}}. ==={{section|pron}}=== * {{lep-IPA}} ==={{section|n}}=== {{head|lep|Danh từ}} # [[nướu|Nướu]] [[răng]]. ==={{section|further}}=== * {{R:lep:LEED|508}} 2jl768e1yl7czuw7s6gff0w28oatt9r ngan4 0 394810 2348597 2026-04-26T04:29:19Z Hiyuune 50834 Trang mới: “=={{langname|yue}}== ==={{section|pron}}=== * {{IPA4|yue|/ŋɐn˩/}} ==={{section|rom}}=== {{yue-jyut}} # {{yue-jyutping of|嚚}} # {{yue-jyutping of|銀}}” 2348597 wikitext text/x-wiki =={{langname|yue}}== ==={{section|pron}}=== * {{IPA4|yue|/ŋɐn˩/}} ==={{section|rom}}=== {{yue-jyut}} # {{yue-jyutping of|嚚}} # {{yue-jyutping of|銀}} 3cy7w0qphmswvq05t73x7yt2894r6on han2 0 394811 2348598 2026-04-26T04:31:24Z Hiyuune 50834 Trang mới: “=={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{alternative spelling of|cmn|hán}} =={{langname|yue}}== ==={{ĐM|rom}}=== {{yue-jyut}} # {{yue-jyutping of|懇}} # {{yue-jyutping of|豤}} # {{yue-jyutping of|狠}} # {{yue-jyutping of|很}}” 2348598 wikitext text/x-wiki =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{alternative spelling of|cmn|hán}} =={{langname|yue}}== ==={{ĐM|rom}}=== {{yue-jyut}} # {{yue-jyutping of|懇}} # {{yue-jyutping of|豤}} # {{yue-jyutping of|狠}} # {{yue-jyutping of|很}} 3wslq34tvpf17rl8i0jjc83cefyf3ff hang2 0 394812 2348599 2026-04-26T04:32:30Z Hiyuune 50834 Trang mới: “=={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{alternative spelling of|cmn|háng}} =={{langname|yue}}== ==={{ĐM|pron}}=== * {{IPA4|yue|/hɐŋ˩˥/}} ==={{ĐM|rom}}=== {{yue-jyut}} # {{yue-jyutping of|啃}}” 2348599 wikitext text/x-wiki =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{alternative spelling of|cmn|háng}} =={{langname|yue}}== ==={{ĐM|pron}}=== * {{IPA4|yue|/hɐŋ˩˥/}} ==={{ĐM|rom}}=== {{yue-jyut}} # {{yue-jyutping of|啃}} 0kcz30g58ht7ozhsqbzakbcsj09d8rq ken3 0 394813 2348600 2026-04-26T04:33:02Z Hiyuune 50834 Trang mới: “{{also|Phụ lục:Biến thể của "ken"}} =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{alternative spelling of|cmn|kěn}}” 2348600 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "ken"}} =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{alternative spelling of|cmn|kěn}} bt9b88wync799peesjr6x7w7fdggu9j kěn 0 394814 2348601 2026-04-26T04:33:47Z Hiyuune 50834 Trang mới: “{{also|Phụ lục:Biến thể của "ken"}} =={{langname|cmn}}== ==={{ĐM|alt}}=== * {{alt|cmn|ken||nonstandard}} ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|啃}} # {{cmn-pinyin of|墾}} # {{cmn-pinyin of|懇}} # {{cmn-pinyin of|肎}} # {{cmn-pinyin of|肯}} # {{cmn-pinyin of|肻}} # {{cmn-pinyin of|豤}} # {{cmn-pinyin of|錹}} # {{cmn-pinyin of|頍}} # {{cmn-pinyin of|颀}} # {{cmn-pinyin of|齗}} # {{cmn-pinyin of|齦}} # {{cmn-pinyin of|龂}} # {{cmn-piny…” 2348601 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "ken"}} =={{langname|cmn}}== ==={{ĐM|alt}}=== * {{alt|cmn|ken||nonstandard}} ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|啃}} # {{cmn-pinyin of|墾}} # {{cmn-pinyin of|懇}} # {{cmn-pinyin of|肎}} # {{cmn-pinyin of|肯}} # {{cmn-pinyin of|肻}} # {{cmn-pinyin of|豤}} # {{cmn-pinyin of|錹}} # {{cmn-pinyin of|頍}} # {{cmn-pinyin of|颀}} # {{cmn-pinyin of|齗}} # {{cmn-pinyin of|齦}} # {{cmn-pinyin of|龂}} # {{cmn-pinyin of|龈}} a78b3kdiqpi3zz6u8e8e1y12tbr6ns6 0 394815 2348602 2026-04-26T04:34:36Z Hiyuune 50834 Trang mới: “{{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=211|rad=齿|as=4|sn=12|canj=YUHML|four=22721|ids=⿰齿斤}} ===={{section|ref}}==== * {{Han ref|uh=9F82}} * [http://chardb.iis.sinica.edu.tw/char/27663 International Encoded Han Character and Variants Database (國際電腦漢字及異體字知識庫)] =={{langname|zh}}== ==={{section|glyph origin}}=== {{Han simp|齗|f=齒|t=齿}}. ==={{section|dfn}}=== {{zh-see|齗}}” 2348602 wikitext text/x-wiki {{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=211|rad=齿|as=4|sn=12|canj=YUHML|four=22721|ids=⿰齿斤}} ===={{section|ref}}==== * {{Han ref|uh=9F82}} * [http://chardb.iis.sinica.edu.tw/char/27663 International Encoded Han Character and Variants Database (國際電腦漢字及異體字知識庫)] =={{langname|zh}}== ==={{section|glyph origin}}=== {{Han simp|齗|f=齒|t=齿}}. ==={{section|dfn}}=== {{zh-see|齗}} mh3hqitjbjfone55mymdr4qc5sjvymu 0 394816 2348603 2026-04-26T04:36:50Z Hiyuune 50834 Trang mới: “{{also|龂}} {{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=211|rad=齒|as=04|sn=19|four=22721|canj=YUHML|ids=⿰齒斤}} # [[nướu|Nướu]] [[răng]]. # [[tranh chấp|Tranh chấp]]. ===={{section|ref}}==== * {{Han ref|kx=1532.270|dkj=48600|dj=2071.030|hdz=74790.010|uh=9F57}} =={{langname|ja}}== ==={{section|kanji}}=== {{ja-kanji|grade=|rs=齒04}} ===={{section|reading}}==== * {{ja-readings|on=きん, ぎん|kun=はぐき}} =={{lan…” 2348603 wikitext text/x-wiki {{also|龂}} {{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=211|rad=齒|as=04|sn=19|four=22721|canj=YUHML|ids=⿰齒斤}} # [[nướu|Nướu]] [[răng]]. # [[tranh chấp|Tranh chấp]]. ===={{section|ref}}==== * {{Han ref|kx=1532.270|dkj=48600|dj=2071.030|hdz=74790.010|uh=9F57}} =={{langname|ja}}== ==={{section|kanji}}=== {{ja-kanji|grade=|rs=齒04}} ===={{section|reading}}==== * {{ja-readings|on=きん, ぎん|kun=はぐき}} =={{langname|zh}}== {{zh-forms|s=龂}} ==={{section|glyph origin}}=== {{Han etym}} ==={{section|pron}}=== {{zh-pron |m=yǎn |c=ngan4 |mc=y |oc=y |cat= }} ==={{section|dfn}}=== {{head|zh|Hanzi}} # [[nướu|Nướu]] [[răng]]. # [[tranh chấp|Tranh chấp]]. ===={{section|com}}==== {{col3|zh|齗齗}} rsy8dg1vwkxwkh46ie34aeqv6uv9n2s 0 394817 2348604 2026-04-26T04:38:05Z Hiyuune 50834 Trang mới: “{{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=92|rad=牙|as=06|sn=10|canj=MHAV|four=|ids=⿰牙艮}} ===={{section|ref}}==== {{Han ref|kx=0695.070|hdz=21420.070|uh=3E27}} =={{langname|zh}}== {{zh-see|齦|v|âm thanh của răng}}” 2348604 wikitext text/x-wiki {{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=92|rad=牙|as=06|sn=10|canj=MHAV|four=|ids=⿰牙艮}} ===={{section|ref}}==== {{Han ref|kx=0695.070|hdz=21420.070|uh=3E27}} =={{langname|zh}}== {{zh-see|齦|v|âm thanh của răng}} pzdgxqxz3d5e5vursucu8h2owckx6ii gaau1 0 394818 2348605 2026-04-26T04:39:12Z Hiyuune 50834 Trang mới: “=={{langname|yue}}== ==={{section|pron}}=== * {{IPA4|yue|/kaːu˥/}} ==={{section|rom}}=== {{yue-jyut}} # {{yue-jyutping of|交}} # {{yue-jyutping of|教}}” 2348605 wikitext text/x-wiki =={{langname|yue}}== ==={{section|pron}}=== * {{IPA4|yue|/kaːu˥/}} ==={{section|rom}}=== {{yue-jyut}} # {{yue-jyutping of|交}} # {{yue-jyutping of|教}} 6nng5h5yugup2dw7yl35wlmmczlerjl qian3 0 394819 2348606 2026-04-26T04:39:54Z Hiyuune 50834 Trang mới: “=={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{alternative spelling of|cmn|qiǎn}}” 2348606 wikitext text/x-wiki =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{alternative spelling of|cmn|qiǎn}} 0f9y5mm6244krgiweypp88z4g5jagvd qiǎn 0 394820 2348607 2026-04-26T04:40:49Z Hiyuune 50834 Trang mới: “{{also|Phụ lục:Biến thể của "qian"}} =={{langname|cmn}}== ==={{ĐM|pron}}=== * {{audio|cmn|Zh-qiǎn.ogg}} ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|唊}} # {{cmn-pinyin of|嗕}} # {{cmn-pinyin of|嵰}} # {{cmn-pinyin of|撖}} # {{cmn-pinyin of|槏}} # {{cmn-pinyin of|淺}} # {{cmn-pinyin of|繾}} # {{cmn-pinyin of|肶}} # {{cmn-pinyin of|蜸}} # {{cmn-pinyin of|譴}} # {{cmn-pinyin of|遣}} # {{cmn-pinyin of|齠}} # {{cmn-pinyin of|嗛}} # {{cmn-piny…” 2348607 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "qian"}} =={{langname|cmn}}== ==={{ĐM|pron}}=== * {{audio|cmn|Zh-qiǎn.ogg}} ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|唊}} # {{cmn-pinyin of|嗕}} # {{cmn-pinyin of|嵰}} # {{cmn-pinyin of|撖}} # {{cmn-pinyin of|槏}} # {{cmn-pinyin of|淺}} # {{cmn-pinyin of|繾}} # {{cmn-pinyin of|肶}} # {{cmn-pinyin of|蜸}} # {{cmn-pinyin of|譴}} # {{cmn-pinyin of|遣}} # {{cmn-pinyin of|齠}} # {{cmn-pinyin of|嗛}} # {{cmn-pinyin of|膁|肷}} # {{cmn-pinyin of|𥳐}} 90obnade60l76s7oegnvh8yrm3t42bx qian 0 394821 2348608 2026-04-26T04:41:41Z Hiyuune 50834 Trang mới: “{{also|Phụ lục:Biến thể của "qian"}} =={{langname|cmn}}== ==={{section|rom}}=== {{cmn-pinyin|notr=1}} # {{nonstandard spelling of|cmn|sc=Latn|qiān}} # {{nonstandard spelling of|cmn|sc=Latn|qián}} # {{nonstandard spelling of|cmn|sc=Latn|qiǎn}} # {{nonstandard spelling of|cmn|sc=Latn|qiàn}} ===={{section|usage}}==== * {{cmn-toneless-note}}” 2348608 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "qian"}} =={{langname|cmn}}== ==={{section|rom}}=== {{cmn-pinyin|notr=1}} # {{nonstandard spelling of|cmn|sc=Latn|qiān}} # {{nonstandard spelling of|cmn|sc=Latn|qián}} # {{nonstandard spelling of|cmn|sc=Latn|qiǎn}} # {{nonstandard spelling of|cmn|sc=Latn|qiàn}} ===={{section|usage}}==== * {{cmn-toneless-note}} klh06ayshdxdvqjg2m9i9814f4eui8u Qian 0 394822 2348609 2026-04-26T04:43:47Z Hiyuune 50834 Trang mới: “{{also|Phụ lục:Biến thể của "qian"}} =={{langname|en}}== {{wp|en:}} ==={{section|pron}}=== * {{enPR|chyĕn}}<ref name="seltzer">''cf.'' {{cite-book|en|year=1952|chapter=Kienhsien or Ch’ien-hsien|editor=Leon E. Seltzer|title=The Columbia Lippincott Gazetteer of the World|url=https://archive.org/details/columbialippinco00selt/|location=Morningside Heights, NY|publisher={{w|Columbia University Press}}|oclc=802473294|page=943|pageurl=https://archive.org/details/c…” 2348609 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "qian"}} =={{langname|en}}== {{wp|en:}} ==={{section|pron}}=== * {{enPR|chyĕn}}<ref name="seltzer">''cf.'' {{cite-book|en|year=1952|chapter=Kienhsien or Ch’ien-hsien|editor=Leon E. Seltzer|title=The Columbia Lippincott Gazetteer of the World|url=https://archive.org/details/columbialippinco00selt/|location=Morningside Heights, NY|publisher={{w|Columbia University Press}}|oclc=802473294|page=943|pageurl=https://archive.org/details/columbialippinco00selt/page/943/|column=2}}</ref> ==={{section|etym}} 1=== Từ {{bor|en|cmn-pinyin|-}} của {{bor|en|cmn|錢|tr=Qián}}. ===={{section|pr-noun}}==== {{en-proper noun|s}} # {{surname|en}}. ==={{section|etym}} 2=== {{commonscat|Qian County}} Từ {{bor|en|cmn-pinyin|-}} của {{bor|en|cmn|乾//|tr=Qián}}. ===={{section|pr-noun}}==== {{en-proper noun}} # {{place|en|hạt|prefecture-level city/Xianyang|p/Thiểm Tây|c/Trung Quốc}}. d3gd5ta520yosypwrbij5v5fwf1zq7a 2348611 2348609 2026-04-26T04:45:30Z Hiyuune 50834 /* Danh từ riêng */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]) 2348611 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "qian"}} =={{langname|en}}== {{wp|en:}} ==={{section|pron}}=== * {{enPR|chyĕn}}<ref name="seltzer">''cf.'' {{cite-book|en|year=1952|chapter=Kienhsien or Ch’ien-hsien|editor=Leon E. Seltzer|title=The Columbia Lippincott Gazetteer of the World|url=https://archive.org/details/columbialippinco00selt/|location=Morningside Heights, NY|publisher={{w|Columbia University Press}}|oclc=802473294|page=943|pageurl=https://archive.org/details/columbialippinco00selt/page/943/|column=2}}</ref> ==={{section|etym}} 1=== Từ {{bor|en|cmn-pinyin|-}} của {{bor|en|cmn|錢|tr=Qián}}. ===={{section|pr-noun}}==== {{en-proper noun|s}} # {{surname|en}}. ==={{section|etym}} 2=== {{commonscat|Qian County}} Từ {{bor|en|cmn-pinyin|-}} của {{bor|en|cmn|乾//|tr=Qián}}. ===={{section|pr-noun}}==== {{en-proper noun}} # {{place|en|hạt|p/Thiểm Tây|c/Trung Quốc}}. sd6pfbktjspmiuu2xhco9rut2k1494e 2348632 2348611 2026-04-26T05:52:35Z TheHighFighter2 42988 /* Tiếng Anh */ 2348632 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "qian"}} =={{langname|en}}== {{wp|en:}} ==={{section|pron}}=== * {{enPR|chyĕn}}<ref name="seltzer">''cf.'' {{cite-book|en|year=1952|chapter=Kienhsien or Ch’ien-hsien|editor=Leon E. Seltzer|title=The Columbia Lippincott Gazetteer of the World|url=https://archive.org/details/columbialippinco00selt/|location=Morningside Heights, NY|publisher={{w|Columbia University Press}}|oclc=802473294|page=943|pageurl=https://archive.org/details/columbialippinco00selt/page/943/|column=2}}</ref> ==={{section|etym}} 1=== Từ {{bor|en|cmn-pinyin|-}} của {{bor|en|cmn|錢|tr=Qián}}. ===={{section|pr-noun}}==== {{en-proper noun|s}} # {{surname|en}}. ==={{section|etym}} 2=== {{commonscat|Qian County}} Từ {{bor|en|cmn-pinyin|-}} của {{bor|en|cmn|乾//|tr=Qián}}. ===={{section|pr-noun}}==== {{en-proper noun}} # {{place|en|huyện|p/Thiểm Tây|c/Trung Quốc}}. ==={{section|ref}}=== <references/> ==={{section|anagram}}=== * {{anagrams|en|a=ainq|Iqan}} fv0odey9hk8xy2c4fhfee982b87c0fm qiàn 0 394823 2348612 2026-04-26T05:09:27Z Hiyuune 50834 Trang mới: “{{also|Phụ lục:Biến thể của "qian"}} =={{langname|cmn}}== ==={{section|pron}}=== * {{audio|cmn|Zh-qiàn.ogg}} ==={{section|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|倩}} # {{cmn-pinyin of|傔}} # {{cmn-pinyin of|儙}} # {{cmn-pinyin of|刋}} # {{cmn-pinyin of|嗕}} # {{cmn-pinyin of|塹}} # {{cmn-pinyin of|壍}} # {{cmn-pinyin of|嵌}} # {{cmn-pinyin of|悓}} # {{cmn-pinyin of|慊}} # {{cmn-pinyin of|棈}} # {{cmn-pinyin of|槧}} # {{cmn-pinyin of|欠}} # {{…” 2348612 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "qian"}} =={{langname|cmn}}== ==={{section|pron}}=== * {{audio|cmn|Zh-qiàn.ogg}} ==={{section|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|倩}} # {{cmn-pinyin of|傔}} # {{cmn-pinyin of|儙}} # {{cmn-pinyin of|刋}} # {{cmn-pinyin of|嗕}} # {{cmn-pinyin of|塹}} # {{cmn-pinyin of|壍}} # {{cmn-pinyin of|嵌}} # {{cmn-pinyin of|悓}} # {{cmn-pinyin of|慊}} # {{cmn-pinyin of|棈}} # {{cmn-pinyin of|槧}} # {{cmn-pinyin of|欠}} # {{cmn-pinyin of|歉}} # {{cmn-pinyin of|牱}} # {{cmn-pinyin of|牻}} # {{cmn-pinyin of|皘}} # {{cmn-pinyin of|篏}} # {{cmn-pinyin of|篟}} # {{cmn-pinyin of|綪}} # {{cmn-pinyin of|縲}} # {{cmn-pinyin of|纣}} # {{cmn-pinyin of|芉}} # {{cmn-pinyin of|芡}} # {{cmn-pinyin of|茜}} # {{cmn-pinyin of|蒨}} # {{cmn-pinyin of|蔳}} # {{cmn-pinyin of|謕}} # {{cmn-pinyin of|谞}} # {{cmn-pinyin of|輤}} # {{cmn-pinyin of|遡}} # {{cmn-pinyin of|㐸}} 3qns4agkswnwso80d70qm2ur45mv1kq Phụ lục:Biến thể của "qian" 100 394824 2348613 2026-04-26T05:11:03Z Hiyuune 50834 Trang mới: “{{wp|en:Qian<dab!>}} Từ “ang” xuất hiện trong nhiều ngôn ngữ với nhiều biến thể về cách [[chữ hoa|viết hoa]], thêm [[dấu câu]] và [[dấu phụ]]. ==Viết hoa và dấu câu== {{top2}} * [[qian]] * [[Qian]] {{bottom}} ==Dấu phụ== {{top2}} * [[qiān]] * [[qiāŋ]] * [[qián]], [[Qián]] * [[qiáŋ]] * [[qiàn]] * [[qiàŋ]] * [[qiǎn]] * [[qiǎŋ]] {{bottom}} ==Số== {{top2}} * [[qian1]] * [[qian2]] * [[qian3]] * [[qian4]] {{bott…” 2348613 wikitext text/x-wiki {{wp|en:Qian<dab!>}} Từ “ang” xuất hiện trong nhiều ngôn ngữ với nhiều biến thể về cách [[chữ hoa|viết hoa]], thêm [[dấu câu]] và [[dấu phụ]]. ==Viết hoa và dấu câu== {{top2}} * [[qian]] * [[Qian]] {{bottom}} ==Dấu phụ== {{top2}} * [[qiān]] * [[qiāŋ]] * [[qián]], [[Qián]] * [[qiáŋ]] * [[qiàn]] * [[qiàŋ]] * [[qiǎn]] * [[qiǎŋ]] {{bottom}} ==Số== {{top2}} * [[qian1]] * [[qian2]] * [[qian3]] * [[qian4]] {{bottom}} ==Xem thêm== * [[Phụ lục:Biến thể của "q"]] * [[Phụ lục:Biến thể của "i"]] * [[Phụ lục:Biến thể của "a"]] * [[Phụ lục:Biến thể của "n"]] 7ij5hcq2ogonj52nwz8ekhggcfremq9 2348629 2348613 2026-04-26T05:46:13Z TheHighFighter2 42988 2348629 wikitext text/x-wiki {{wp|en:Qian<dab!>}} Từ “qian” xuất hiện trong nhiều ngôn ngữ với nhiều biến thể về cách [[chữ hoa|viết hoa]], thêm [[dấu câu]] và [[dấu phụ]]. ==Viết hoa và dấu câu== {{top2}} * [[qian]] * [[Qian]] {{bottom}} ==Dấu phụ== {{top2}} * [[qiān]] * [[qiāŋ]] * [[qián]], [[Qián]] * [[qiáŋ]] * [[qiàn]] * [[qiàŋ]] * [[qiǎn]] * [[qiǎŋ]] {{bottom}} ==Số== {{top2}} * [[qian1]] * [[qian2]] * [[qian3]] * [[qian4]] {{bottom}} ==Xem thêm== * [[Phụ lục:Biến thể của "q"]] * [[Phụ lục:Biến thể của "i"]] * [[Phụ lục:Biến thể của "a"]] * [[Phụ lục:Biến thể của "n"]] p9u4bs1zexdknnsbtw3bhxd79ipk7n0 qiāng 0 394825 2348614 2026-04-26T05:12:51Z Hiyuune 50834 Trang mới: “{{also|qiang|qiáng|qiàng|qiǎng}} =={{langname|cmn}}== ==={{ĐM|alt}}=== * {{alt|cmn|qiang||nonstandard}} * {{alt|cmn|qiāŋ}} ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|嗆}} # {{cmn-pinyin of|尅}} # {{cmn-pinyin of|将}} # {{cmn-pinyin of|將}} # {{cmn-pinyin of|嶈}} # {{cmn-pinyin of|戕}} # {{cmn-pinyin of|戗}} # {{cmn-pinyin of|戞}} # {{cmn-pinyin of|抢}} # {{cmn-pinyin of|掣}} # {{cmn-pinyin of|斨}} # {{cmn-pinyin of|枪}} # {{cmn-pinyin of|椌}}…” 2348614 wikitext text/x-wiki {{also|qiang|qiáng|qiàng|qiǎng}} =={{langname|cmn}}== ==={{ĐM|alt}}=== * {{alt|cmn|qiang||nonstandard}} * {{alt|cmn|qiāŋ}} ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|嗆}} # {{cmn-pinyin of|尅}} # {{cmn-pinyin of|将}} # {{cmn-pinyin of|將}} # {{cmn-pinyin of|嶈}} # {{cmn-pinyin of|戕}} # {{cmn-pinyin of|戗}} # {{cmn-pinyin of|戞}} # {{cmn-pinyin of|抢}} # {{cmn-pinyin of|掣}} # {{cmn-pinyin of|斨}} # {{cmn-pinyin of|枪}} # {{cmn-pinyin of|椌}} # {{cmn-pinyin of|槍}} # {{cmn-pinyin of|溬}} # {{cmn-pinyin of|牄}} # {{cmn-pinyin of|猐}} # {{cmn-pinyin of|玱}} # {{cmn-pinyin of|瑲}} # {{cmn-pinyin of|矼}} # {{cmn-pinyin of|箉}} # {{cmn-pinyin of|篬}} # {{cmn-pinyin of|羌}} # {{cmn-pinyin of|羗}} # {{cmn-pinyin of|羫}} # {{cmn-pinyin of|腔}} # {{cmn-pinyin of|蜣}} # {{cmn-pinyin of|謒}} # {{cmn-pinyin of|蹌}} # {{cmn-pinyin of|蹡}} # {{cmn-pinyin of|鎗}} # {{cmn-pinyin of|鏘}} # {{cmn-pinyin of|鏹}} # {{cmn-pinyin of|錆}} # {{cmn-pinyin of|锵}} # {{cmn-pinyin of|镪}} # {{cmn-pinyin of|鶥}} # {{cmn-pinyin of|鸠}} # {{cmn-pinyin of|搴}} dqocc7c3wr6sh1ovi8ew1z3ueufrcwd qiang 0 394826 2348615 2026-04-26T05:13:20Z Hiyuune 50834 Trang mới: “{{also|qiáng|qiàng|qiāng|qiǎng}} =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin|notr=1}} # {{nonstandard spelling of|cmn|sc=Latn|qiāng}} # {{nonstandard spelling of|cmn|sc=Latn|qiáng}} # {{nonstandard spelling of|cmn|sc=Latn|qiǎng}} # {{nonstandard spelling of|cmn|sc=Latn|qiàng}}” 2348615 wikitext text/x-wiki {{also|qiáng|qiàng|qiāng|qiǎng}} =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin|notr=1}} # {{nonstandard spelling of|cmn|sc=Latn|qiāng}} # {{nonstandard spelling of|cmn|sc=Latn|qiáng}} # {{nonstandard spelling of|cmn|sc=Latn|qiǎng}} # {{nonstandard spelling of|cmn|sc=Latn|qiàng}} 9t985sm8t0vnbm2pl2vvdm7rqdc20f4 qiāŋ 0 394827 2348616 2026-04-26T05:13:22Z Hiyuune 50834 Trang mới: “{{also|Phụ lục:Biến thể của "qian"}} =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin|notr=1}} # {{rare sp|cmn|sc=Latn|qiāng}}” 2348616 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "qian"}} =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin|notr=1}} # {{rare sp|cmn|sc=Latn|qiāng}} gb2qm5eh8tssns9aavsqagiemh0u22c qiàŋ 0 394828 2348617 2026-04-26T05:15:45Z Hiyuune 50834 Trang mới: “{{also|Phụ lục:Biến thể của "qian"}} =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin|notr=1}} # {{rare sp|cmn|sc=Latn|qiàng}}” 2348617 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "qian"}} =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin|notr=1}} # {{rare sp|cmn|sc=Latn|qiàng}} teitbq96jugliwwbl4g4ieclbnpx1pv qiàng 0 394829 2348618 2026-04-26T05:16:20Z Hiyuune 50834 Trang mới: “{{also|qiang|qiáng|qiāng|qiǎng}} =={{langname|cmn}}== ==={{section|alt}}=== * {{alt|cmn|qiang||nonstandard}} * {{alt|cmn|qiàŋ}} ==={{section|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|呛}} # {{cmn-pinyin of|唴}} # {{cmn-pinyin of|嗅}} # {{cmn-pinyin of|戗}} # {{cmn-pinyin of|戞}} # {{cmn-pinyin of|熗}} # {{cmn-pinyin of|羻}} # {{cmn-pinyin of|跃}} # {{cmn-pinyin of|蹋}} # {{cmn-pinyin of|蹝}} # {{cmn-pinyin of|鎑}} # {{cmn-pinyin of|蹌}}” 2348618 wikitext text/x-wiki {{also|qiang|qiáng|qiāng|qiǎng}} =={{langname|cmn}}== ==={{section|alt}}=== * {{alt|cmn|qiang||nonstandard}} * {{alt|cmn|qiàŋ}} ==={{section|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|呛}} # {{cmn-pinyin of|唴}} # {{cmn-pinyin of|嗅}} # {{cmn-pinyin of|戗}} # {{cmn-pinyin of|戞}} # {{cmn-pinyin of|熗}} # {{cmn-pinyin of|羻}} # {{cmn-pinyin of|跃}} # {{cmn-pinyin of|蹋}} # {{cmn-pinyin of|蹝}} # {{cmn-pinyin of|鎑}} # {{cmn-pinyin of|蹌}} 0kpj04v50hsux94ltkqemxc1bjysvq9 qiang4 0 394830 2348619 2026-04-26T05:16:41Z Hiyuune 50834 Trang mới: “=={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{alternative spelling of|cmn|qiàng}}” 2348619 wikitext text/x-wiki =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{alternative spelling of|cmn|qiàng}} 8bze7noruavjiptidot5qpcpg6ljiud qián 0 394831 2348620 2026-04-26T05:17:25Z Hiyuune 50834 Trang mới: “{{also|Phụ lục:Biến thể của "qian"}} =={{langname|cmn}}== ==={{ĐM|pron}}=== * {{audio|cmn|Zh-qián.ogg}} ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|乾}} # {{cmn-pinyin of|仱}} # {{cmn-pinyin of|前}} # {{cmn-pinyin of|媊}} # {{cmn-pinyin of|岒}} # {{cmn-pinyin of|忴}} # {{cmn-pinyin of|扲}} # {{cmn-pinyin of|玪}} # {{cmn-pinyin of|拑}} # {{cmn-pinyin of|掮}} # {{cmn-pinyin of|揵}} # {{cmn-pinyin of|某}} # {{cmn-pinyin of|榩}} # {{cmn-piny…” 2348620 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "qian"}} =={{langname|cmn}}== ==={{ĐM|pron}}=== * {{audio|cmn|Zh-qián.ogg}} ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|乾}} # {{cmn-pinyin of|仱}} # {{cmn-pinyin of|前}} # {{cmn-pinyin of|媊}} # {{cmn-pinyin of|岒}} # {{cmn-pinyin of|忴}} # {{cmn-pinyin of|扲}} # {{cmn-pinyin of|玪}} # {{cmn-pinyin of|拑}} # {{cmn-pinyin of|掮}} # {{cmn-pinyin of|揵}} # {{cmn-pinyin of|某}} # {{cmn-pinyin of|榩}} # {{cmn-pinyin of|歬}} # {{cmn-pinyin of|涔}} # {{cmn-pinyin of|渐}} # {{cmn-pinyin of|漧}} # {{cmn-pinyin of|漳}} # {{cmn-pinyin of|潛}} # {{cmn-pinyin of|濳}} # {{cmn-pinyin of|濽}} # {{cmn-pinyin of|灊}} # {{cmn-pinyin of|煓}} # {{cmn-pinyin of|燂}} # {{cmn-pinyin of|燃}} # {{cmn-pinyin of|燖}} # {{cmn-pinyin of|爏}} # {{cmn-pinyin of|犇}} # {{cmn-pinyin of|等}} # {{cmn-pinyin of|箝}} # {{cmn-pinyin of|腨}} # {{cmn-pinyin of|荥}} # {{cmn-pinyin of|葥}} # {{cmn-pinyin of|蔾}} # {{cmn-pinyin of|虔}} # {{cmn-pinyin of|赶}} # {{cmn-pinyin of|鈐}} # {{cmn-pinyin of|鉗}} # {{cmn-pinyin of|錢}} # {{cmn-pinyin of|鍻}} # {{cmn-pinyin of|钤}} # {{cmn-pinyin of|钳}} # {{cmn-pinyin of|雂}} # {{cmn-pinyin of|騚}} # {{cmn-pinyin of|鬵}} # {{cmn-pinyin of|鰬}} # {{cmn-pinyin of|黔}} # {{cmn-pinyin of|黚}} pj39ajgqprfayb80szy7w7u680l6y7q qian2 0 394832 2348621 2026-04-26T05:18:14Z Hiyuune 50834 Trang mới: “=={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{alternative spelling of|cmn|qián}}” 2348621 wikitext text/x-wiki =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{alternative spelling of|cmn|qián}} rmqrhz1z15ate9r0ovgkoq2gnxiem3k 𢑋 0 394833 2348623 2026-04-26T05:22:37Z Hiyuune 50834 Trang mới: “{{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=57|rad=弓|as=21|sn=24|four=|canj=|ids=⿱兓䰜}} ===={{section|ref}}==== * {{Han ref|kx=0362.021|dkj=|dj=|hdz=21006.030|uh=2244B}} =={{langname|zh}}== {{zh-see|鬵|v}}” 2348623 wikitext text/x-wiki {{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=57|rad=弓|as=21|sn=24|four=|canj=|ids=⿱兓䰜}} ===={{section|ref}}==== * {{Han ref|kx=0362.021|dkj=|dj=|hdz=21006.030|uh=2244B}} =={{langname|zh}}== {{zh-see|鬵|v}} 8k6jfv46p03cdtokww27epqnh0usgov 𩰿 0 394834 2348624 2026-04-26T05:25:52Z Hiyuune 50834 Trang mới: “{{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=193|rad=鬲|as=08|sn=18|four=|canj=|ids=⿱㚘鬲}} ===={{section|ref}}==== {{Han ref|kx=1459.230|dkj=|dj=|hdz=74589.040|uh=29C3F}} =={{langname|zh}}== {{zh-see|鬵|v}}” 2348624 wikitext text/x-wiki {{character info}} =={{langname|mul}}== ==={{section|han}}=== {{Han char|rn=193|rad=鬲|as=08|sn=18|four=|canj=|ids=⿱㚘鬲}} ===={{section|ref}}==== {{Han ref|kx=1459.230|dkj=|dj=|hdz=74589.040|uh=29C3F}} =={{langname|zh}}== {{zh-see|鬵|v}} 0e8vqgqehpnwhri57rg5r5n6unwak1j Qián 0 394835 2348625 2026-04-26T05:29:22Z Hiyuune 50834 Trang mới: “{{also|Phụ lục:Biến thể của "qian"}} =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|錢}}” 2348625 wikitext text/x-wiki {{also|Phụ lục:Biến thể của "qian"}} =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|錢}} ec3kdh83zn37qrtu5xmmpv2952adgqf 0 394836 2348627 2026-04-26T05:40:24Z Hiyuune 50834 Trang mới: “{{also|銭|錢}} {{character info}} =={{langname|mul}}== {{stroke order|strokes=10}} {{Han simplified forms|錢|銭|钱}} ==={{ĐM|han}}=== {{Han char|rn=167|rad=钅|as=05|sn=10|four=83750|canj=CIJ|ids=⿰钅戋}} ===={{ĐM|drv}}==== * {{l|mul|篯}} ===={{ĐM|ref}}==== * {{Han ref|kx=1328.061|hdz=64182.020|uh=94B1}} {{-}} =={{langname|zh}}== ==={{ĐM|glyph origin}}=== {{Han simp|錢|f=釒|t=钅|f2=戔|t2=戋}}; so sánh với {{mention|zh|残}}. ==={{ĐM|dfn}}=== {{z…” 2348627 wikitext text/x-wiki {{also|銭|錢}} {{character info}} =={{langname|mul}}== {{stroke order|strokes=10}} {{Han simplified forms|錢|銭|钱}} ==={{ĐM|han}}=== {{Han char|rn=167|rad=钅|as=05|sn=10|four=83750|canj=CIJ|ids=⿰钅戋}} ===={{ĐM|drv}}==== * {{l|mul|篯}} ===={{ĐM|ref}}==== * {{Han ref|kx=1328.061|hdz=64182.020|uh=94B1}} {{-}} =={{langname|zh}}== ==={{ĐM|glyph origin}}=== {{Han simp|錢|f=釒|t=钅|f2=戔|t2=戋}}; so sánh với {{mention|zh|残}}. ==={{ĐM|dfn}}=== {{zh-see|錢}} htc7pob3fjd7ob2l9h2pl64a8bnthvm Bản mẫu:ru-generate-noun-forms 10 394837 2348628 2026-04-26T05:45:07Z Hiyuune 50834 Trang mới: “{{#invoke:ru-noun|generate_forms}}<!-- --><noinclude>{{documentation}}</noinclude>” 2348628 wikitext text/x-wiki {{#invoke:ru-noun|generate_forms}}<!-- --><noinclude>{{documentation}}</noinclude> 9btqjitpcs34640nd8x6vq45sc1d5uv Bản mẫu:rgn-noun 10 394838 2348633 2026-04-26T05:55:06Z Hiyuune 50834 Trang mới: “{{#invoke:checkparams|warn}}<!-- Validate template parameters -->{{head|rgn|Danh từ<!-- -->|g={{#switch: {{{1|{{{g|}}}}}} <!-- -->| m | mf | f = {{{1|{{{g|}}}}}}<!-- -->| #default = <!-- -->}}<!-- -->|{{#switch: {{{2|{{{pl|x}}}}}}<!-- -->| - = [[Phụ lục:Từ điển thuật ngữ#không đếm được|không đếm được]]<!-- -->| ~ = [[Phụ lục:Từ điển thuật ngữ#không biến cách|không biến cách]]<!-- -->| st = danh từ chỉ c…” 2348633 wikitext text/x-wiki {{#invoke:checkparams|warn}}<!-- Validate template parameters -->{{head|rgn|Danh từ<!-- -->|g={{#switch: {{{1|{{{g|}}}}}} <!-- -->| m | mf | f = {{{1|{{{g|}}}}}}<!-- -->| #default = <!-- -->}}<!-- -->|{{#switch: {{{2|{{{pl|x}}}}}}<!-- -->| - = [[Phụ lục:Từ điển thuật ngữ#không đếm được|không đếm được]]<!-- -->| ~ = [[Phụ lục:Từ điển thuật ngữ#không biến cách|không biến cách]]<!-- -->| st = danh từ chỉ có số ít<!-- -->| = <small>vui lòng cung cấp dạng số nhiều<includeonly>{{cln|rgn|Yêu cầu chú ý liên quan đến mục từ}}</includeonly></small><!-- -->| ? = <!-- -->| pt = danh từ chỉ có số nhiều<!-- -->| plural <!-- -->}}<!-- -->|{{#switch: {{{2|{{{pl|x}}}}}}<!-- -->| - = <!-- -->| x = <!-- -->| pt = <!-- -->| st = <!-- -->| ~ = <!-- -->| {{{2|{{{pl|}}}}}}<!-- -->}}<!-- -->|{{#if: {{{f|}}} | giống cái}}|{{{f|}}}<!-- -->|{{#if: {{{fpl|}}} | giống cái số nhiều}}|{{{fpl|}}}<!-- -->|{{#if: {{{pl2|}}} | ngôi thứ hai số nhiều}}|{{{pl2|}}}<!-- -->}}<noinclude>{{tài liệu}}{{tcat|hw}}</noinclude> 2z85fmlpdzn3m3v98tr4bycodwbdmqg 2348634 2348633 2026-04-26T05:56:07Z Hiyuune 50834 2348634 wikitext text/x-wiki {{#invoke:checkparams|warn}}<!-- Validate template parameters -->{{head|rgn|Danh từ<!-- -->|g={{#switch: {{{1|{{{g|}}}}}} <!-- -->| m | mf | f = {{{1|{{{g|}}}}}}<!-- -->| #default = <!-- -->}}<!-- -->|{{#switch: {{{2|{{{pl|x}}}}}}<!-- -->| - = [[Phụ lục:Từ điển thuật ngữ#không đếm được|không đếm được]]<!-- -->| ~ = [[Phụ lục:Từ điển thuật ngữ#không biến cách|không biến cách]]<!-- -->| st = danh từ chỉ có số ít<!-- -->| = <small>vui lòng cung cấp dạng số nhiều<includeonly>{{cln|rgn|Yêu cầu chú ý liên quan đến mục từ}}</includeonly></small><!-- -->| ? = <!-- -->| pt = danh từ chỉ có số nhiều<!-- -->| số nhiều <!-- -->}}<!-- -->|{{#switch: {{{2|{{{pl|x}}}}}}<!-- -->| - = <!-- -->| x = <!-- -->| pt = <!-- -->| st = <!-- -->| ~ = <!-- -->| {{{2|{{{pl|}}}}}}<!-- -->}}<!-- -->|{{#if: {{{f|}}} | giống cái}}|{{{f|}}}<!-- -->|{{#if: {{{fpl|}}} | giống cái số nhiều}}|{{{fpl|}}}<!-- -->|{{#if: {{{pl2|}}} | ngôi thứ hai số nhiều}}|{{{pl2|}}}<!-- -->}}<noinclude>{{tài liệu}}{{tcat|hw}}</noinclude> ct82jwqjtyrn21r6hb16yj99d10eady чян 0 394839 2348636 2026-04-26T05:59:45Z Hiyuune 50834 Trang mới: “=={{langname|dng}}== ==={{section|etym}}=== Cùng gốc với {{cog|zh|錢}}. ==={{section|n}}=== {{head|dng|Danh từ}} # [[tiền|Tiền]], [[tiền mặt]]. # [[tiền tệ|Tiền tệ]], [[đồng xu]].” 2348636 wikitext text/x-wiki =={{langname|dng}}== ==={{section|etym}}=== Cùng gốc với {{cog|zh|錢}}. ==={{section|n}}=== {{head|dng|Danh từ}} # [[tiền|Tiền]], [[tiền mặt]]. # [[tiền tệ|Tiền tệ]], [[đồng xu]]. ng322ph2pxnjv23oqjs7thkn2jsrqvj бортники 0 394840 2348637 2026-04-26T06:03:48Z Hiyuune 50834 + ru 2348637 wikitext text/x-wiki =={{langname|ru}}== ==={{section|pron}}=== * {{ru-IPA|бо́ртники}} ==={{section|n}}=== {{head|ru|Biến thể hình thái danh từ|head=бо́ртники|g=m-an-p}} # {{inflection of|ru|бо́ртник||nom|p}} 4rauf6ee524riq8n9pdnoxoyp60bmw6 Bản mẫu:Mandarin pinyin TOC 10 394841 2348640 2026-04-26T06:07:14Z Hiyuune 50834 Hiyuune đã đổi [[Bản mẫu:Mandarin pinyin TOC]] thành [[Bản mẫu:cmn-pinyin TOC]] 2348640 wikitext text/x-wiki #đổi [[Bản mẫu:cmn-pinyin TOC]] lg4cw4s8nrnc1va0ppckr093qjccwpi 苧麻 0 394842 2348641 2026-04-26T06:11:42Z Hiyuune 50834 Trang mới: “=={{langname|zh}}== {{zh-forms|s=苎麻|alt=紵麻}} ==={{section|pron}}=== {{zh-pron |m=zhùmá |c=cyu5 maa4 |h=gd=cu1 ma2 |j=zu3 ma1 |mn=xm:tōe-môa |cat=n }} ==={{section|n}}=== {{head|zh|noun}} # [[cây|Cây]] [[lá]] [[gai]]. ===={{section|syn}}==== {{zh-dial}}” 2348641 wikitext text/x-wiki =={{langname|zh}}== {{zh-forms|s=苎麻|alt=紵麻}} ==={{section|pron}}=== {{zh-pron |m=zhùmá |c=cyu5 maa4 |h=gd=cu1 ma2 |j=zu3 ma1 |mn=xm:tōe-môa |cat=n }} ==={{section|n}}=== {{head|zh|noun}} # [[cây|Cây]] [[lá]] [[gai]]. ===={{section|syn}}==== {{zh-dial}} r1cmlehqkcg7upsl2ku4ch7351vp4mn 2348646 2348641 2026-04-26T06:15:29Z Hiyuune 50834 /* Tiếng Trung Quốc */ (sử dụng [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]) 2348646 wikitext text/x-wiki =={{langname|ja}}== {{ja-kanjitab|ちょ|ま|yomi=kanon,o}} ==={{section|n}}=== {{ja-noun|ちょま}} # {{syn of|ja|苧|tr=karamushi|t=cây lá gai, {{taxfmt|Boehmeria nivea|loài}}}} =={{langname|zh}}== {{zh-forms|s=苎麻|alt=紵麻}} ==={{section|pron}}=== {{zh-pron |m=zhùmá |c=cyu5 maa4 |h=gd=cu1 ma2 |j=zu3 ma1 |mn=xm:tōe-môa |cat=n }} ==={{section|n}}=== {{head|zh|noun}} # [[cây|Cây]] [[lá]] [[gai]]. ===={{section|syn}}==== {{zh-dial}} f4ueeninc2x5yxr4oqdvesaj3jyspip 苎麻 0 394843 2348642 2026-04-26T06:11:43Z Hiyuune 50834 Trang mới: “=={{langname|zh}}== {{zh-see|苧麻}}” 2348642 wikitext text/x-wiki =={{langname|zh}}== {{zh-see|苧麻}} gya0un39gfbpoh9eopf6bxuokikvuoc tōe-môa 0 394844 2348643 2026-04-26T06:12:36Z Hiyuune 50834 Trang mới: “=={{langname|nan-hbl}}== {{zh-see|苧麻|poj}}” 2348643 wikitext text/x-wiki =={{langname|nan-hbl}}== {{zh-see|苧麻|poj}} m7irhje5zk0dds23eyjev9qjj16scid zhùmá 0 394845 2348644 2026-04-26T06:13:19Z Hiyuune 50834 Trang mới: “=={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|苧麻}}” 2348644 wikitext text/x-wiki =={{langname|cmn}}== ==={{ĐM|rom}}=== {{cmn-pinyin}} # {{cmn-pinyin of|苧麻}} lyrjjq4g4cre4z8tfkgyhfqng3p5vx3 Mô đun:zh/data/dial-syn/苧麻 828 394846 2348645 2026-04-26T06:14:03Z Hiyuune 50834 Trang mới: “local export = {} export.list = { ["title"] = "", ["meaning"] = "cây lá gai", ["note"] = "", ["Classical"] = { "" }, ["Formal"] = { "苧麻" }, ["Taxonomic"] = { "苧麻" }, ["Beijing"] = { "" }, ["Beijing-PG"] = { "" }, ["Beijing-MY"] = { "" }, ["Beijing-HR"] = { "" }, ["Beijing-YQ"] = { "" }, ["Beijing-CP"] = { "" }, ["Beijing-MTG"] = { "" }, ["Beijing-FS"] = { "" }, ["Taiwan"] = { "苧麻" }, ["T…” 2348645 Scribunto text/plain local export = {} export.list = { ["title"] = "", ["meaning"] = "cây lá gai", ["note"] = "", ["Classical"] = { "" }, ["Formal"] = { "苧麻" }, ["Taxonomic"] = { "苧麻" }, ["Beijing"] = { "" }, ["Beijing-PG"] = { "" }, ["Beijing-MY"] = { "" }, ["Beijing-HR"] = { "" }, ["Beijing-YQ"] = { "" }, ["Beijing-CP"] = { "" }, ["Beijing-MTG"] = { "" }, ["Beijing-FS"] = { "" }, ["Taiwan"] = { "苧麻" }, ["Tianjin-WQ"] = { "" }, ["Langfang"] = { "" }, ["Chengde"] = { "" }, ["Ulan Hot"] = { "" }, ["Tongliao"] = { "" }, ["Chifeng"] = { "" }, ["Hailar"] = { "" }, ["Heihe"] = { "" }, ["Nenjiang"] = { "" }, ["Mohe"] = { "" }, ["Qiqihar"] = { "" }, ["Tailai"] = { "" }, ["Jixian-HLJ"] = { "" }, ["Lanxi-M"] = { "" }, ["Boli"] = { "" }, ["Jiayin"] = { "" }, ["Muling"] = { "" }, ["Dongning"] = { "" }, ["Ning'an"] = { "" }, ["Linkou"] = { "" }, ["Zhaozhou"] = { "" }, ["Zhaodong"] = { "" }, ["Jixi-M"] = { "" }, ["Mishan"] = { "" }, ["Harbin"] = { "苧麻" }, ["Shangzhi"] = { "" }, ["Yingchengzi"] = { "" }, ["Jiamusi"] = { "" }, ["Tongjiang-M"] = { "" }, ["Baicheng"] = { "" }, ["Da'an"] = { "" }, ["Songyuan"] = { "" }, ["Changchun"] = { "" }, ["Yushu"] = { "" }, ["Jilin"] = { "" }, ["Siping"] = { "" }, ["Liaoyuan"] = { "" }, ["Dunhua"] = { "" }, ["Hunchun"] = { "" }, ["Baishan"] = { "" }, ["Tonghua"] = { "" }, ["Shenyang"] = { "" }, ["Anshan"] = { "" }, ["Tieling"] = { "" }, ["Jinzhou"] = { "" }, ["Malaysia-M"] = { "" }, ["Singapore-M"] = { "" }, ["Taz"] = { "" }, ["Tianjin"] = { "" }, ["Tianjin-JZ"] = { "" }, ["Tianjin-BD"] = { "" }, ["Tianjin-NH"] = { "" }, ["Tianjin-HG"] = { "" }, ["Tianjin-TG"] = { "" }, ["Tianjin-DG"] = { "" }, ["Tianjin-JN"] = { "" }, ["Tianjin-DL"] = { "" }, ["Tianjin-JH"] = { "" }, ["Tianjin-XQ"] = { "" }, ["Tianjin-BC"] = { "" }, ["Tangshan"] = { "" }, ["Qinhuangdao"] = { "" }, ["Cangzhou"] = { "" }, ["Xianxian"] = { "" }, ["Xianxian-XY"] = { "" }, ["Baoding"] = { "" }, ["Dingxing"] = { "" }, ["Xiong'an"] = { "" }, ["Shijiazhuang"] = { "" }, ["Xingtai"] = { "" }, ["Hengshui"] = { "" }, ["Lijin"] = { "" }, ["Binzhou"] = { "" }, ["Wudi"] = { "" }, ["Weicheng"] = { "" }, ["Fangzi"] = { "" }, ["Changle-WF"] = { "" }, ["Shouguang"] = { "" }, ["Rizhao"] = { "" }, ["Wulian"] = { "" }, ["Jinan"] = { "" }, ["Zhangqiu"] = { "" }, ["Liaocheng"] = { "" }, ["Dezhou"] = { "" }, ["Tai'an"] = { "" }, ["Xintai"] = { "" }, ["Zibo"] = { "" }, ["Zichuan"] = { "" }, ["Boshan"] = { "" }, ["Yinan"] = { "" }, ["Dalian"] = { "" }, ["Dandong"] = { "" }, ["Yantai"] = { "" }, ["Muping"] = { "" }, ["Laizhou"] = { "" }, ["Weihai"] = { "" }, ["Rongcheng"] = { "" }, ["Qingdao"] = { "" }, ["Hanting"] = { "" }, ["Changyi"] = { "" }, ["Gaomi"] = { "" }, ["Zhucheng"] = { "" }, ["Anqiu"] = { "" }, ["Linqu"] = { "" }, ["Qingzhou"] = { "" }, ["Yishui"] = { "" }, ["Hulin-XL"] = { "" }, ["Linjiang"] = { "" }, ["Ji'an-M"] = { "" }, ["Luoyang"] = { "" }, ["Luoning"] = { "" }, ["Sanmenxia"] = { "" }, ["Lingbao"] = { "" }, ["Luohe"] = { "" }, ["Zhumadian"] = { "" }, ["Biyang"] = { "" }, ["Zhoukou"] = { "" }, ["Dancheng"] = { "" }, ["Xuchang"] = { "" }, ["Changge"] = { "" }, ["Pingdingshan"] = { "" }, ["Lushan-M"] = { "" }, ["Nanyang"] = { "" }, ["Xixia"] = { "" }, ["Dengzhou"] = { "" }, ["Zaozhuang"] = { "" }, ["Ningyang"] = { "" }, ["Jining-M"] = { "" }, ["Linyi"] = { "" }, ["Heze"] = { "" }, ["Daming"] = { "" }, ["Yuncheng"] = { "" }, ["Wenxi"] = { "" }, ["Longxing"] = { "" }, ["Yongji"] = { "" }, ["Wanrong"] = { "麻" }, ["Ronghe"] = { "" }, ["Linfen"] = { "" }, ["Jixian"] = { "" }, ["Huozhou"] = { "" }, ["Hongtong"] = { "" }, ["Shangqiu"] = { "" }, ["Yongcheng"] = { "" }, ["Yuanyang"] = { "" }, ["Zhengzhou"] = { "" }, ["Kaifeng"] = { "" }, ["Lankao"] = { "" }, ["Changyuan"] = { "" }, ["Xunxian"] = { "" }, ["Puyang"] = { "" }, ["Fanxian"] = { "" }, ["Xinyang"] = { "" }, ["Gushi"] = { "" }, ["Shangluo"] = { "" }, ["Luonan"] = { "" }, ["Danfeng"] = { "" }, ["Shangnan"] = { "" }, ["Shanyang"] = { "" }, ["Zhen'an"] = { "" }, ["Hanbin"] = { "" }, ["Hanbin-XH"] = { "" }, ["Baihe"] = { "" }, ["Baihe-MP"] = { "" }, ["Pingli"] = { "" }, ["Xunyang"] = { "" }, ["Lueyang"] = { "" }, ["Mianxian"] = { "" }, ["Yangxian"] = { "" }, ["Xi'an"] = { "苧麻" }, ["Weiyang"] = { "" }, ["Baqiao"] = { "" }, ["Yanliang"] = { "" }, ["Lintong"] = { "" }, ["Chang'an"] = { "" }, ["Huyi"] = { "" }, ["Gaoling"] = { "" }, ["Zhouzhi"] = { "" }, ["Lantian"] = { "" }, ["Xianyang"] = { "" }, ["Xingping"] = { "" }, ["Wugong"] = { "" }, ["Qianxian"] = { "" }, ["Liquan"] = { "" }, ["Jingyang"] = { "" }, ["Sanyuan-M"] = { "" }, ["Yongshou"] = { "" }, ["Changwu"] = { "" }, ["Tongchuan"] = { "" }, ["Yaozhou"] = { "" }, ["Yijun"] = { "" }, ["Weinan"] = { "" }, ["Weinan-HZ"] = { "" }, ["Hancheng"] = { "" }, ["Huayin"] = { "" }, ["Tongguan"] = { "" }, ["Dali-SX"] = { "" }, ["Heyang"] = { "" }, ["Chengcheng"] = { "" }, ["Baishui"] = { "" }, ["Pucheng-M"] = { "" }, ["Fuping"] = { "" }, ["Huanglong"] = { "" }, ["Yichuan"] = { "" }, ["Huangling"] = { "" }, ["Luochuan"] = { "" }, ["Fuxian"] = { "" }, ["Dingbian"] = { "" }, ["Baoji"] = { "" }, ["Baoji-CC"] = { "" }, ["Fengxiang"] = { "" }, ["Qishan"] = { "" }, ["Fufeng"] = { "" }, ["Meixian-M"] = { "" }, ["Taibai"] = { "" }, ["Fengxian-SX"] = { "" }, ["Qianyang"] = { "" }, ["Longxian"] = { "" }, ["Linyou"] = { "" }, ["Tongxin"] = { "" }, ["Yanchi"] = { "" }, ["Guyuan"] = { "" }, ["Xiji"] = { "" }, ["Longde"] = { "" }, ["Jingyuan"] = { "" }, ["Tianshui"] = { "" }, ["Xining"] = { "苧麻" }, ["Menyuan"] = { "" }, ["Yanqi"] = { "" }, ["Xuzhou"] = { "苧麻" }, ["Xuzhou-JW"] = { "" }, ["Pizhou"] = { "" }, ["Suining"] = { "" }, ["Peixian"] = { "" }, ["Xinyi-M"] = { "" }, ["Fengxian-M"] = { "" }, ["Suqian"] = { "" }, ["Ganyu"] = { "" }, ["Donghai"] = { "" }, ["Fuyang"] = { "" }, ["Bengbu"] = { "" }, ["Suzhou-M"] = { "" }, ["Huaibei"] = { "" }, ["Bozhou"] = { "" }, ["Guangde-QC"] = { "" }, ["Qimen-AL-Jun"] = { "" }, ["Anji-HN"] = { "" }, ["Gansu-DG"] = { "" }, ["Shaanxi-DG"] = { "" }, ["Yinchuan"] = { "" }, ["Wuzhong"] = { "" }, ["Zhongwei"] = { "" }, ["Bayanhot"] = { "" }, ["Lanzhou"] = { "" }, ["Jiuquan"] = { "" }, ["Dunhuang"] = { "" }, ["Shandan"] = { "" }, ["Tianzhu"] = { "" }, ["Hami"] = { "" }, ["Changji"] = { "" }, ["Ürümqi"] = { "" }, ["Dabancheng-XG"] = { "" }, ["Midong-CSZ"] = { "" }, ["Ürümqi-BFG"] = { "" }, ["Jimsar"] = { "" }, ["Chengdu"] = { "" }, ["Xindu"] = { "" }, ["Xindu-XF"] = { "" }, ["Huayang"] = { "" }, ["Pidu"] = { "" }, ["Wenjiang"] = { "" }, ["Shuangliu"] = { "" }, ["Xinjin"] = { "" }, ["Jintang"] = { "" }, ["Pengzhou"] = { "" }, ["Dujiangyan"] = { "" }, ["Chongzhou"] = { "" }, ["Dayi"] = { "" }, ["Pujiang-M"] = { "" }, ["Qionglai"] = { "" }, ["Jianyang-M"] = { "" }, ["Xiaojin"] = { "" }, ["Jinchuan"] = { "" }, ["Songpan"] = { "" }, ["Maoxian"] = { "" }, ["Lixian"] = { "" }, ["Wenchuan"] = { "" }, ["Deyang"] = { "" }, ["Luojiang"] = { "" }, ["Mianzhu"] = { "" }, ["Shifang"] = { "" }, ["Guanghan"] = { "" }, ["Zhongjiang"] = { "" }, ["Ziyang-SC"] = { "" }, ["Anyue"] = { "" }, ["Lezhi"] = { "" }, ["Mianyang"] = { "" }, ["Anzhou"] = { "" }, ["Zitong"] = { "" }, ["Jiangyou"] = { "" }, ["Jiangyou-ZM"] = { "" }, ["Pingwu"] = { "" }, ["Beichuan"] = { "" }, ["Yanting"] = { "" }, ["Santai"] = { "" }, ["Guangyuan"] = { "" }, ["Zhaohua"] = { "" }, ["Cangxi"] = { "" }, ["Jiange"] = { "" }, ["Meishan"] = { "" }, ["Pengshan"] = { "" }, ["Danling"] = { "" }, ["Hongya"] = { "" }, ["Qingshen"] = { "" }, ["Renshou"] = { "" }, ["Luzhou"] = { "" }, ["Naxi"] = { "" }, ["Luxian"] = { "" }, ["Xuyong"] = { "" }, ["Gulin"] = { "" }, ["Hejiang"] = { "" }, ["Yibin"] = { "" }, ["Nanxi"] = { "" }, ["Pingshan-M"] = { "" }, ["Gaoxian"] = { "" }, ["Changning-M"] = { "" }, ["Gongxian"] = { "" }, ["Xingwen-GS"] = { "" }, ["Xingwen-BWS"] = { "" }, ["Jiang'an"] = { "" }, ["Junlian"] = { "" }, ["Leshan"] = { "" }, ["Jiajiang"] = { "" }, ["Emeishan"] = { "" }, ["Ebian"] = { "" }, ["Qianwei"] = { "" }, ["Mabian"] = { "" }, ["Jingyan"] = { "" }, ["Neijiang"] = { "" }, ["Zizhong"] = { "" }, ["Weiyuan"] = { "" }, ["Longchang"] = { "" }, ["Suining-SC"] = { "" }, ["Pengxi"] = { "" }, ["Shehong"] = { "" }, ["Guang'an"] = { "" }, ["Yuechi"] = { "" }, ["Wusheng"] = { "" }, ["Linshui"] = { "" }, ["Nanchong"] = { "" }, ["Nanbu"] = { "" }, ["Langzhong"] = { "" }, ["Yilong"] = { "" }, ["Yingshan"] = { "" }, ["Peng'an"] = { "" }, ["Dazhou"] = { "" }, ["Dazhu"] = { "" }, ["Kaijiang"] = { "" }, ["Wanyuan"] = { "" }, ["Xuanhan"] = { "" }, ["Bazhong"] = { "" }, ["Tongjiang"] = { "" }, ["Nanjiang"] = { "" }, ["Hanyuan"] = { "" }, ["Xichang"] = { "" }, ["Zigong"] = { "" }, ["Fushun"] = { "" }, ["Rongxian-M"] = { "" }, ["Muli"] = { "" }, ["Leibo"] = { "" }, ["Chongqing"] = { "" }, ["Chongqing-JB"] = { "" }, ["Chongqing-JLP"] = { "" }, ["Chongqing-DDK"] = { "" }, ["Chongqing-SPB"] = { "" }, ["Chongqing-BN"] = { "" }, ["Chongqing-NA"] = { "" }, ["Chongqing-QIJ"] = { "" }, ["Chongqing-QJ-WS"] = { "" }, ["Chongqing-YB"] = { "" }, ["Chongqing-BB"] = { "" }, ["Chongqing-NC"] = { "" }, ["Chongqing-WL"] = { "" }, ["Chongqing-DZ"] = { "" }, ["Chongqing-RC"] = { "" }, ["Chongqing-YC"] = { "" }, ["Chongqing-BS"] = { "" }, ["Chongqing-TL"] = { "" }, ["Chongqing-TN"] = { "" }, ["Chongqing-HC"] = { "" }, ["Chongqing-CS"] = { "" }, ["Chongqing-FL"] = { "" }, ["Chongqing-JJ"] = { "" }, ["Chongqing-WZ"] = { "" }, ["Chongqing-SZ"] = { "" }, ["Chongqing-KZ"] = { "" }, ["Chongqing-CK"] = { "" }, ["Chongqing-DJ"] = { "" }, ["Chongqing-LP"] = { "" }, ["Chongqing-FD"] = { "" }, ["Chongqing-ZX"] = { "" }, ["Chongqing-QJ"] = { "" }, ["Chongqing-PS"] = { "" }, ["Chongqing-YY"] = { "" }, ["Chongqing-XS"] = { "" }, ["Chongqing-YNY"] = { "" }, ["Chongqing-WX"] = { "" }, ["Chongqing-FJ"] = { "" }, ["Chongqing-WS"] = { "" }, ["Wuhan"] = { "" }, ["Jiangxia"] = { "" }, ["Caidian"] = { "" }, ["Xinzhou-HB"] = { "" }, ["Huangpi"] = { "" }, ["Hanchuan"] = { "" }, ["Suizhou"] = { "" }, ["Suixian"] = { "" }, ["Yichang"] = { "" }, ["Dangyang"] = { "" }, ["Zhijiang"] = { "" }, ["Yidu"] = { "" }, ["Changyang"] = { "" }, ["Xingshan"] = { "" }, ["Zigui"] = { "" }, ["Wufeng"] = { "" }, ["Enshi"] = { "" }, ["Hefeng"] = { "" }, ["Badong"] = { "" }, ["Xuan'en"] = { "" }, ["Laifeng"] = { "" }, ["Lichuan-M"] = { "" }, ["Jianshi"] = { "" }, ["Xianfeng"] = { "" }, ["Xiangyang"] = { "" }, ["Laohekou"] = { "" }, ["Baokang"] = { "" }, ["Nanzhang"] = { "" }, ["Zaoyang"] = { "" }, ["Yicheng"] = { "" }, ["Gucheng"] = { "" }, ["Jingzhou"] = { "" }, ["Jingzhou-SS"] = { "" }, ["Jiangling"] = { "" }, ["Shishou"] = { "" }, ["Gong'an"] = { "" }, ["Songzi"] = { "" }, ["Jingmen"] = { "" }, ["Zhongxiang"] = { "" }, ["Jingshan"] = { "" }, ["Tianmen"] = { "" }, ["Xiantao"] = { "" }, ["Qianjiang"] = { "" }, ["Shennongjia"] = { "" }, ["Shiyan"] = { "" }, ["Zhuxi"] = { "" }, ["Zhushan"] = { "" }, ["Yunxi"] = { "" }, ["Yunyang"] = { "" }, ["Danjiangkou"] = { "" }, ["Fangxian"] = { "" }, ["Lhasa"] = { "" }, ["Guiyang"] = { "" }, ["Huaxi"] = { "" }, ["Zunyi"] = { "" }, ["Tongzi"] = { "" }, ["Renhuai"] = { "" }, ["Bijie"] = { "" }, ["Jinsha-M"] = { "" }, ["Dafang"] = { "" }, ["Weining"] = { "" }, ["Liupanshui"] = { "" }, ["Liuzhi"] = { "" }, ["Xingyi"] = { "" }, ["Anshun"] = { "" }, ["Duyun"] = { "" }, ["Pingtang"] = { "" }, ["Fuquan"] = { "" }, ["Weng'an"] = { "" }, ["Kaili"] = { "" }, ["Liping-GZ"] = { "" }, ["Zhenyuan"] = { "" }, ["Tongren"] = { "" }, ["Sinan"] = { "" }, ["Yuping"] = { "" }, ["Liping"] = { "" }, ["Zhaotong"] = { "" }, ["Baoshan-M"] = { "" }, ["Dali"] = { "" }, ["Kunming"] = { "" }, ["Qujing"] = { "" }, ["Wenshan"] = { "" }, ["Mengzi"] = { "" }, ["Lancang"] = { "" }, ["Weixi"] = { "" }, ["Pu'er"] = { "" }, ["Lincang"] = { "" }, ["Guilin"] = { "" }, ["Lingui"] = { "" }, ["Guanyang"] = { "" }, ["Lipu"] = { "" }, ["Pingle"] = { "" }, ["Yangshuo"] = { "" }, ["Liuzhou"] = { "青麻", "元麻" }, ["Liuzhou-LR"] = { "" }, ["Luzhai"] = { "" }, ["Sanjiang-DZ"] = { "" }, ["Nanning-M"] = { "" }, ["Yongning-FJ"] = { "" }, ["Wuming"] = { "" }, ["Wuming-FC"] = { "" }, ["Binyang-M"] = { "" }, ["Shanglin"] = { "" }, ["Yizhou"] = { "" }, ["Jinchengjiang"] = { "" }, ["Luocheng"] = { "" }, ["Fengshan"] = { "" }, ["Tianlin-LP"] = { "" }, ["Tianlin-PT"] = { "" }, ["Leye"] = { "" }, ["Lingyun"] = { "" }, ["Longlin"] = { "" }, ["Xilin"] = { "" }, ["Xiangzhou-NL"] = { "" }, ["Qinzhou-M"] = { "" }, ["Jishou"] = { "" }, ["Changde"] = { "" }, ["Zhangjiajie"] = { "" }, ["Yongzhou"] = { "" }, ["Chenzhou"] = { "" }, ["Huaihua"] = { "" }, ["Huitong"] = { "" }, ["Xiangtan-JN"] = { "" }, ["Ganzhou-M"] = { "" }, ["Shiquan"] = { "" }, ["Ziyang"] = { "" }, ["Ningshan"] = { "" }, ["Langao"] = { "" }, ["Zhenping"] = { "" }, ["Hanzhong"] = { "" }, ["Nanzheng"] = { "" }, ["Ningqiang"] = { "" }, ["Liuba"] = { "" }, ["Chenggu"] = { "" }, ["Foping"] = { "" }, ["Xixiang"] = { "" }, ["Zhenba"] = { "" }, ["Anji-HB"] = { "" }, ["Kokang"] = { "" }, ["Dagudi"] = { "" }, ["Reshuitang"] = { "" }, ["Mae Salong"] = { "" }, ["Mae Sai"] = { "" }, ["Oudomxay"] = { "" }, ["Siantar"] = { "" }, ["Nanjing"] = { "苧麻" }, ["Pukou"] = { "" }, ["Luhe-M"] = { "" }, ["Lishui-M"] = { "" }, ["Yangzhou"] = { "剝皮麻" }, ["Jiangdu"] = { "" }, ["Baoying"] = { "" }, ["Gaoyou"] = { "" }, ["Yizheng"] = { "" }, ["Taizhou-M"] = { "" }, ["Taixing"] = { "" }, ["Jiangyan"] = { "" }, ["Jingjiang-DX"] = { "" }, ["Zhenjiang"] = { "" }, ["Jurong"] = { "" }, ["Yangzhong"] = { "" }, ["Lianyungang"] = { "" }, ["Haizhou"] = { "" }, ["Guanyun"] = { "" }, ["Guannan"] = { "" }, ["Huai'an"] = { "" }, ["Huai'an-HA"] = { "" }, ["Huaiyin"] = { "" }, ["Hongze"] = { "" }, ["Lianshui"] = { "" }, ["Xuyi"] = { "" }, ["Jinhu"] = { "" }, ["Xinghua"] = { "" }, ["Nantong"] = { "" }, ["Rugao"] = { "" }, ["Rudong"] = { "" }, ["Hai'an"] = { "" }, ["Yancheng"] = { "" }, ["Dongtai"] = { "" }, ["Binhai"] = { "" }, ["Sheyang"] = { "" }, ["Dafeng"] = { "" }, ["Funing"] = { "" }, ["Jianhu"] = { "" }, ["Xiangshui"] = { "" }, ["Shuyang"] = { "" }, ["Sihong"] = { "" }, ["Siyang"] = { "" }, ["Anqing"] = { "" }, ["Tongcheng"] = { "" }, ["Zongyang"] = { "" }, ["Chizhou"] = { "" }, ["Qingyang"] = { "" }, ["Wuhu"] = { "" }, ["Wuhu-QS"] = { "" }, ["Wanzhi"] = { "" }, ["Jinghu"] = { "" }, ["Fanchang"] = { "" }, ["Wuwei"] = { "" }, ["Hanshan"] = { "" }, ["Hexian"] = { "" }, ["Ma'anshan"] = { "" }, ["Dangtu"] = { "" }, ["Xuancheng"] = { "" }, ["Tongling"] = { "" }, ["Hefei"] = { "" }, ["Feidong"] = { "" }, ["Feixi"] = { "" }, ["Chaohu"] = { "" }, ["Lujiang"] = { "" }, ["Changfeng"] = { "" }, ["Huainan"] = { "" }, ["Lu'an"] = { "" }, ["Jin'an-QSH"] = { "" }, ["Shucheng"] = { "" }, ["Huoshan"] = { "" }, ["Chuzhou"] = { "" }, ["Lai'an"] = { "" }, ["Quanjiao"] = { "" }, ["Mingguang"] = { "" }, ["Tianchang"] = { "" }, ["Echeng"] = { "" }, ["Huangshi"] = { "" }, ["Huanggang"] = { "" }, ["Hong'an"] = { "" }, ["Macheng"] = { "" }, ["Luotian"] = { "" }, ["Yingshan-HB"] = { "" }, ["Xishui"] = { "" }, ["Huangmei"] = { "" }, ["Wuxue"] = { "" }, ["Qichun"] = { "" }, ["Xiaogan"] = { "" }, ["Anlu"] = { "" }, ["Yingcheng"] = { "" }, ["Yunmeng"] = { "" }, ["Dawu"] = { "" }, ["Guangshui"] = { "" }, ["Zhashui"] = { "" }, ["Jiujiang"] = { "" }, ["Ruichang"] = { "" }, ["Anji-AQ"] = { "" }, ["Najiahu"] = { "" }, ["Dianbai-Jun"] = { "" }, ["Ningguo-GK"] = { "" }, ["Langxi"] = { "" }, ["Changle-QJ"] = { "" }, ["Yanping"] = { "" }, ["Jiangshan-M-NBD"] = { "" }, ["Kaihua-M-HB"] = { "" }, ["Yushan-M-HY"] = { "" }, ["Juexi"] = { "" }, ["Taiyuan"] = { "苧麻" }, ["Jiancaoping"] = { "" }, ["Jinyuan"] = { "" }, ["Qingxu"] = { "" }, ["Loufan"] = { "" }, ["Taigu"] = { "" }, ["Pingyao"] = { "" }, ["Heshun"] = { "" }, ["Qixian"] = { "" }, ["Yangyuan"] = { "" }, ["Datong"] = { "" }, ["Yunzhou"] = { "" }, ["Yunzhou-XCT"] = { "" }, ["Tianzhen"] = { "" }, ["Guangling"] = { "" }, ["Shuozhou"] = { "" }, ["Shanyin"] = { "" }, ["Pinglu"] = { "" }, ["Pingding"] = { "" }, ["Xinzhou"] = { "" }, ["Wutai"] = { "" }, ["Daixian"] = { "" }, ["Wuzhai"] = { "" }, ["Lishi"] = { "" }, ["Shilou"] = { "" }, ["Fenyang"] = { "" }, ["Lanxian"] = { "" }, ["Linxian"] = { "" }, ["Wenshui"] = { "" }, ["Xiaoyi"] = { "" }, ["Fenxi"] = { "" }, ["Xixian"] = { "" }, ["Changzhi"] = { "" }, ["Tunliu"] = { "" }, ["Baochang"] = { "" }, ["Linhe"] = { "" }, ["Pingshun"] = { "" }, ["Zhangzi"] = { "" }, ["Qinxian"] = { "" }, ["Jincheng"] = { "" }, ["Lingchuan"] = { "" }, ["Yangcheng"] = { "" }, ["Gaoping"] = { "" }, ["Jining"] = { "" }, ["Liangcheng"] = { "" }, ["Hohhot"] = { "" }, ["Baotou"] = { "" }, ["Dongsheng"] = { "" }, ["Haibowan"] = { "" }, ["Erenhot"] = { "" }, ["Pingshan"] = { "" }, ["Zhangjiakou"] = { "" }, ["Chongli"] = { "" }, ["Handan"] = { "" }, ["Linzhang"] = { "" }, ["Anyang"] = { "" }, ["Linzhou"] = { "" }, ["Hebi"] = { "" }, ["Xinxiang"] = { "" }, ["Jiaozuo"] = { "" }, ["Qinyang"] = { "" }, ["Wenxian"] = { "" }, ["Wuzhi"] = { "" }, ["Jiyuan"] = { "" }, ["Suide"] = { "" }, ["Zizhou"] = { "" }, ["Mizhi"] = { "" }, ["Jiaxian"] = { "" }, ["Wubu"] = { "" }, ["Shenmu"] = { "" }, ["Fugu"] = { "" }, ["Yulin-J"] = { "" }, ["Hengshan-J"] = { "" }, ["Jingbian"] = { "" }, ["Yan'an"] = { "" }, ["Ansai"] = { "" }, ["Ganquan"] = { "" }, ["Zhidan"] = { "" }, ["Wuqi-J"] = { "" }, ["Qingjian"] = { "" }, ["Zichang"] = { "" }, ["Yanchuan"] = { "" }, ["Yanchang"] = { "" }, ["Shanghai"] = { "苧麻" }, ["Yangpu"] = { "" }, ["Xinzhuang"] = { "" }, ["Zhenru"] = { "" }, ["Songjiang"] = { "" }, ["Chuansha"] = { "" }, ["Nanhui"] = { "" }, ["Zhoupu"] = { "" }, ["Huinan"] = { "" }, ["Fengxian"] = { "" }, ["Jinshan"] = { "" }, ["Qingpu"] = { "" }, ["Jiading"] = { "" }, ["Baoshan-SCD"] = { "" }, ["Baoshan-LD"] = { "" }, ["Baoshan-YP"] = { "" }, ["Chongming"] = { "" }, ["Suzhou"] = { "" }, ["Shengpu"] = { "" }, ["Xishan"] = { "" }, ["Wujiang-SL"] = { "" }, ["Wujiang-LL"] = { "" }, ["Wujiang-SZ"] = { "" }, ["Wuxi"] = { "" }, ["Changshu"] = { "" }, ["Kunshan"] = { "" }, ["Taicang"] = { "" }, ["Zhangjiagang"] = { "" }, ["Tongzhou"] = { "" }, ["Qidong"] = { "" }, ["Qidong-LS"] = { "" }, ["Haimen"] = { "" }, ["Haimen-SJ"] = { "" }, ["Rudong-W"] = { "" }, ["Jiaxing"] = { "" }, ["Jiashan"] = { "" }, ["Pinghu"] = { "" }, ["Haining-YG"] = { "" }, ["Haining-XS"] = { "" }, ["Tongxiang"] = { "" }, ["Haiyan"] = { "" }, ["Changzhou"] = { "" }, ["Liyang"] = { "" }, ["Jintan"] = { "" }, ["Yixing"] = { "" }, ["Danyang"] = { "大麻" }, ["Danyang-TJQ"] = { "" }, ["Jingjiang"] = { "" }, ["Jiangyin"] = { "" }, ["Gaochun"] = { "" }, ["Gaochun-ZB"] = { "" }, ["Huzhou"] = { "" }, ["Huzhou-SL"] = { "" }, ["Changxing"] = { "" }, ["Anji"] = { "" }, ["Anji-XF"] = { "" }, ["Deqing-W"] = { "" }, ["Deqing-GT"] = { "" }, ["Hangzhou"] = { "苧麻" }, ["Yuhang"] = { "" }, ["Lin'an"] = { "" }, ["Lin'an-CH"] = { "" }, ["Lin'an-YQ"] = { "" }, ["Fuyang-W"] = { "" }, ["Fuyang-XD"] = { "" }, ["Xiaoshan"] = { "" }, ["Tonglu"] = { "" }, ["Fenshui-WS"] = { "" }, ["Shaoxing"] = { "" }, ["Shaoxing-KQ"] = { "" }, ["Shangyu"] = { "" }, ["Zhuji"] = { "" }, ["Zhuji-WJJ"] = { "" }, ["Shengzhou"] = { "" }, ["Shengzhou-CR"] = { "" }, ["Shengzhou-TP"] = { "" }, ["Xinchang"] = { "" }, ["Ningbo"] = { "苧麻" }, ["Zhenhai"] = { "" }, ["Fenghua"] = { "" }, ["Beilun"] = { "" }, ["Yinzhou"] = { "" }, ["Yuyao"] = { "" }, ["Cixi"] = { "" }, ["Xiangshan"] = { "" }, ["Ninghai"] = { "" }, ["Zhoushan"] = { "" }, ["Dinghai"] = { "" }, ["Daishan"] = { "" }, ["Shengsi"] = { "" }, ["Jiaojiang"] = { "" }, ["Huangyan"] = { "" }, ["Tiantai"] = { "" }, ["Xianju"] = { "" }, ["Sanmen"] = { "" }, ["Linhai"] = { "" }, ["Wenling"] = { "" }, ["Yuhuan"] = { "" }, ["Yuhuan-DMY"] = { "" }, ["Yuhuan-CM"] = { "" }, ["Wenzhou"] = { "苧" }, ["Yueqing"] = { "" }, ["Yongjia"] = { "" }, ["Yongjia-FL"] = { "" }, ["Rui'an"] = { "" }, ["Longgang"] = { "" }, ["Dongtou"] = { "" }, ["Cangnan-JX"] = { "" }, ["Pingyang"] = { "" }, ["Taishun"] = { "" }, ["Wencheng"] = { "" }, ["Lishui"] = { "" }, ["Qingtian"] = { "" }, ["Jinyun"] = { "" }, ["Xuanping"] = { "" }, ["Songyang-XP"] = { "" }, ["Songyang-GS"] = { "" }, ["Yunhe"] = { "" }, ["Jingning"] = { "" }, ["Qingyuan-W"] = { "" }, ["Longquan"] = { "" }, ["Quzhou"] = { "" }, ["Qujiang-DZ"] = { "" }, ["Suichang"] = { "" }, ["Jiangshan"] = { "" }, ["Changshan"] = { "" }, ["Kaihua"] = { "" }, ["Longyou"] = { "" }, ["Jinhua"] = { "青麻" }, ["Tangxi"] = { "" }, ["Yiwu"] = { "" }, ["Yongkang"] = { "" }, ["Pujiang"] = { "" }, ["Dongyang"] = { "" }, ["Pan'an"] = { "" }, ["Wuyi"] = { "" }, ["Lanxi"] = { "" }, ["Shangrao"] = { "" }, ["Shangrao-Rail"] = { "" }, ["Guangfeng"] = { "" }, ["Yushan"] = { "" }, ["Xuancheng-YC"] = { "" }, ["Xuancheng-JP"] = { "" }, ["Wuhu-LL"] = { "" }, ["Tongling-W"] = { "" }, ["Nanling"] = { "" }, ["Yi'an-WS"] = { "" }, ["Huangshan"] = { "" }, ["Jingxian"] = { "" }, ["Jingxian-ZJ"] = { "" }, ["Shitai-JZ"] = { "" }, ["Pucheng"] = { "" }, ["Changsha"] = { "" }, ["Yiyang-X"] = { "" }, ["Liuyang-YA"] = { "" }, ["Xiangtan"] = { "" }, ["Miluo-CL"] = { "" }, ["Xiangxiang"] = { "" }, ["Xiangxiang-MQ"] = { "" }, ["Loudi"] = { "苧麻" }, ["Shuangfeng"] = { "" }, ["Xinhua"] = { "" }, ["Lianyuan"] = { "" }, ["Shaoyang"] = { "" }, ["Lengshuitan"] = { "" }, ["Zhuzhou"] = { "" }, ["Longhui"] = { "" }, ["Suining-X"] = { "" }, ["Dongkou-HQ"] = { "" }, ["Wugang"] = { "" }, ["Hengyang"] = { "" }, ["Hengshan"] = { "" }, ["Hengshan-BG"] = { "" }, ["Qiyang"] = { "" }, ["Quanzhou-X"] = { "" }, ["Guanyang-X"] = { "" }, ["Qinglong-CL"] = { "" }, ["Nanchong-CL"] = { "" }, ["Nanchang"] = { "" }, ["Xinjian-WC"] = { "" }, ["Nanchang-TC"] = { "" }, ["Anyi"] = { "" }, ["Hukou"] = { "" }, ["Lushan"] = { "" }, ["Yongxiu"] = { "" }, ["Gongqingcheng-JY"] = { "" }, ["Xiushui"] = { "" }, ["Pengze"] = { "" }, ["Duchang"] = { "" }, ["Duchang-TT"] = { "" }, ["Duchang-YF"] = { "" }, ["Wuning-QK"] = { "" }, ["Poyang"] = { "" }, ["Poyang-MT"] = { "" }, ["Yugan"] = { "" }, ["Wannian"] = { "" }, ["Yiyang"] = { "" }, ["Hengfeng"] = { "" }, ["Yanshan-HK"] = { "" }, ["Yanshan-YP"] = { "" }, ["Shangrao-SX"] = { "" }, ["Shangrao-HM"] = { "" }, ["Jingdezhen"] = { "" }, ["Leping"] = { "" }, ["Yichun"] = { "" }, ["Yifeng"] = { "" }, ["Gao'an"] = { "" }, ["Fengxin"] = { "" }, ["Shanggao"] = { "" }, ["Wanzai"] = { "" }, ["Fengcheng"] = { "" }, ["Fengcheng-ST"] = { "" }, ["Xinyu"] = { "" }, ["Fuzhou-G"] = { "" }, ["Linchuan-SDD"] = { "" }, ["Dongxiang"] = { "" }, ["Nancheng"] = { "" }, ["Nanfeng"] = { "" }, ["Yihuang"] = { "" }, ["Lichuan"] = { "苧麻" }, ["Chongren"] = { "" }, ["Pingxiang"] = { "苧麻" }, ["Lianhua"] = { "" }, ["Luxi"] = { "" }, ["Ji'an"] = { "" }, ["Jishui-LT"] = { "" }, ["Yongfeng"] = { "" }, ["Taihe"] = { "" }, ["Xiajiang"] = { "" }, ["Yongxin"] = { "" }, ["Yingtan"] = { "" }, ["Yujiang"] = { "" }, ["Guixi"] = { "" }, ["Susong"] = { "" }, ["Susong-HT"] = { "" }, ["Susong-GL"] = { "" }, ["Wangjiang"] = { "" }, ["Qianshan"] = { "" }, ["Huaining"] = { "" }, ["Huaining-SP"] = { "" }, ["Yuexi"] = { "" }, ["Taihu"] = { "" }, ["Dongzhi"] = { "" }, ["Shitai"] = { "" }, ["Yangxin"] = { "" }, ["Yangxin-GH"] = { "" }, ["Daye"] = { "" }, ["Xianning"] = { "" }, ["Xianning-MQ"] = { "" }, ["Jiayu"] = { "" }, ["Chongyang"] = { "" }, ["Chibi"] = { "" }, ["Tongshan"] = { "" }, ["Tongcheng-G"] = { "" }, ["Jianli"] = { "" }, ["Yueyang"] = { "" }, ["Yueyang-BX"] = { "" }, ["Linxiang"] = { "" }, ["Pingjiang-XJ"] = { "" }, ["Pingjiang-NJ"] = { "" }, ["Liuyang"] = { "" }, ["Liuyang-DY"] = { "" }, ["Liuyang-FY"] = { "" }, ["Liling-BTT"] = { "" }, ["Liling-BS"] = { "" }, ["Youxian"] = { "" }, ["Chaling"] = { "" }, ["Changning"] = { "" }, ["Changning-TS"] = { "" }, ["Leiyang"] = { "" }, ["Anren"] = { "" }, ["Zixing-XN"] = { "" }, ["Longhui-LDZ"] = { "" }, ["Dongkou"] = { "" }, ["Dongkou-SJ"] = { "" }, ["Jianning"] = { "" }, ["Taining"] = { "" }, ["Hanbin-NT"] = { "" }, ["Jinxian"] = { "" }, ["Jinxi"] = { "" }, ["Le'an"] = { "" }, ["Guangchang"] = { "" }, ["Anfu"] = { "" }, ["Suichuan"] = { "" }, ["Wan'an"] = { "" }, ["Jing'an"] = { "" }, ["Zhangshu"] = { "" }, ["Xingan"] = { "" }, ["Fenyi"] = { "" }, ["Meixian"] = { "苧麻", "苧仔" }, --苧仔 written as 苧兒 ["Xingning"] = { "" }, ["Dabu-XH"] = { "" }, ["Dabu-GB"] = { "" }, ["Fengshun-TK"] = { "" }, ["Fengshun-LH"] = { "" }, ["Fengshun-HJ"] = { "" }, ["Fengshun-FL"] = { "" }, ["Fengshun-PT"] = { "" }, ["Huizhou"] = { "" }, ["Huizhou-SK"] = { "" }, ["Huizhou-HL"] = { "" }, ["Huiyang"] = { "" }, ["Huidong-PS"] = { "" }, ["Huidong-DL"] = { "" }, ["Dongguan-H"] = { "" }, ["Longmen-PL"] = { "" }, ["Longmen-LX"] = { "" }, ["Boluo"] = { "" }, ["Shenzhen-H"] = { "" }, ["Shenzhen-H-LH"] = { "" }, ["Zengcheng-ZG"] = { "" }, ["Zhongshan-WGS"] = { "" }, ["Zhongshan-NLHS"] = { "" }, ["Wuhua-SZ"] = { "" }, ["Wuhua-HC"] = { "" }, ["Wuhua-CB"] = { "" }, ["Wuhua-MY"] = { "" }, ["Wuhua-ML"] = { "" }, ["Heyuan"] = { "" }, ["Zijin"] = { "" }, ["Zijin-GZ"] = { "" }, ["Longchuan-TC"] = { "" }, ["Longchuan-SD"] = { "" }, ["Heping-LZ"] = { "" }, ["Lianping"] = { "" }, ["Lianping-ZX"] = { "" }, ["Lianping-LJ"] = { "" }, ["Wengyuan"] = { "" }, ["Nanxiong-ZJ"] = { "" }, ["Qujiang"] = { "" }, ["Xinfeng-MT"] = { "" }, ["Xinfeng-DX"] = { "" }, ["Xiaosanjiang"] = { "" }, ["Liannan"] = { "" }, ["Conghua-H"] = { "" }, ["Jiexi"] = { "" }, ["Luhe"] = { "" }, ["Raoping-XF"] = { "" }, ["Xiuzhuan"] = { "" }, ["Pinghe-JF"] = { "" }, ["Nanjing-ML"] = { "" }, ["Nanjing-BL"] = { "" }, ["Changting"] = { "" }, ["Shanghang"] = { "" }, ["Yongding"] = { "" }, ["Yongding-XY"] = { "" }, ["Yongding-GB"] = { "" }, ["Yongding-HK"] = { "" }, ["Wuping"] = { "" }, ["Wuping-ZS"] = { "" }, ["Wuping-Y"] = { "" }, ["Wuping-WD"] = { "" }, ["Pingyu"] = { "" }, ["Liancheng"] = { "" }, ["Liancheng-PT"] = { "" }, ["Liancheng-JX"] = { "" }, ["Liancheng-ZB"] = { "" }, ["Liancheng-LY"] = { "" }, ["Ninghua"] = { "" }, ["Qingliu"] = { "" }, ["Yudu"] = { "苧麻" }, ["Ningdu"] = { "" }, ["Ruijin"] = { "" }, ["Shicheng"] = { "" }, ["Shangyou"] = { "" }, ["Sandu"] = { "" }, ["Ganzhou-PL"] = { "" }, ["Nankang"] = { "" }, ["Dayu"] = { "" }, ["Quannan"] = { "" }, ["Dingnan"] = { "" }, ["Longnan"] = { "" }, ["Xunwu"] = { "" }, ["Anyuan"] = { "" }, ["Huichang"] = { "" }, ["Chongyi"] = { "" }, ["Xingguo"] = { "" }, ["Yunhe-JST"] = { "" }, ["Tonggu"] = { "" }, ["Fengxin-ZX"] = { "" }, ["Taoyuan"] = { "" }, ["Miaoli"] = { "苧仔" }, ["Zaoqiao"] = { "" }, ["Touwu"] = { "" }, ["Nanzhuang"] = { "" }, ["Shitan"] = { "" }, ["Sanwan"] = { "" }, ["Toufen"] = { "" }, ["Gongguan"] = { "" }, ["Zhuolan-SX"] = { "" }, ["Liudui"] = { "苧仔" }, ["Wuluo"] = { "" }, ["Meinong"] = { "" }, ["Shanlin"] = { "" }, ["Hsinchu"] = { "苧仔" }, ["Dongshi"] = { "苧", "苧麻" }, ["Raoping"] = { "" }, --苧仔, 苧? ["Zhuolan-RP"] = { "" }, ["Yunlin"] = { "苧" }, ["Guoxing"] = { "" }, ["Hong Kong-H"] = { "" }, ["Tangkou"] = { "" }, ["Sanjia"] = { "" }, ["Sihe"] = { "" }, ["Qianpai"] = { "" }, ["Xindong"] = { "" }, ["Shalang"] = { "" }, ["Xin'an"] = { "" }, ["Shijiao"] = { "" }, ["Qingping"] = { "" }, ["Xihe"] = { "" }, ["Fumian-XS"] = { "" }, ["Luchuan-LC"] = { "" }, ["Luchuan-DQ"] = { "" }, ["Luchuan-SH"] = { "" }, ["Bobai-SH"] = { "" }, ["Bobai-LT"] = { "" }, ["Bobai-LP"] = { "" }, ["Bobai-LJ"] = { "" }, ["Bobai-CT"] = { "" }, ["Tang'an"] = { "" }, ["Beiliu-GH"] = { "" }, ["Beiliu-MM"] = { "" }, ["Xingye-GF"] = { "" }, ["Rongxian-XD"] = { "" }, ["Mashan-PL"] = { "" }, ["Binyang-WL"] = { "" }, ["Hengxian-XY"] = { "" }, ["Lingui-H-XJ"] = { "" }, ["Lipu-SDT"] = { "" }, ["Lipu-DSG"] = { "" }, ["Pingle-H"] = { "" }, ["Yangshuo-JB"] = { "" }, ["Tianlin-GL"] = { "" }, ["Qinzhou-H"] = { "" }, ["Guidong"] = { "" }, ["Rongchang-PL"] = { "" }, ["Chengdu-H-LT"] = { "" }, ["Longquanyi-H-SL"] = { "" }, ["Qingbaijiang-H-LW"] = { "" }, ["Xindu-H-SBT"] = { "" }, ["Xindu-H-HXC"] = { "" }, ["Xindu-H-XD"] = { "" }, ["Weiyuan-H"] = { "" }, ["Yilong-H"] = { "" }, ["Xichang-H"] = { "" }, ["Sabah-B"] = { "" }, ["Sabah-L"] = { "" }, ["Sabah-HY"] = { "" }, ["Sabah-HP"] = { "" }, ["Kuala Lumpur-H-HY"] = { "" }, ["Kuala Lumpur-H"] = { "" }, ["Senai"] = { "" }, ["Senai-JX"] = { "" }, ["Kuching"] = { "" }, ["Sungai Tapang"] = { "" }, ["Singkawang"] = { "" }, ["Pontianak-MX"] = { "" }, ["Mempawah"] = { "" }, ["Metal"] = { "" }, ["Singapore-MX"] = { "" }, ["Singapore-DB"] = { "" }, ["Belait-H"] = { "" }, ["Bangkok-MX"] = { "" }, ["Bangkok-FS"] = { "" }, ["Bangkok-JX"] = { "" }, ["Yangon-H"] = { "" }, ["Ho Chi Minh City-H"] = { "" }, ["Jixi"] = { "苧麻" }, ["Shexian"] = { "" }, ["Shexian-XG"] = { "" }, ["Shexian-DGY"] = { "" }, ["Tunxi"] = { "" }, ["Huizhou-HZ"] = { "" }, ["Xiuning"] = { "" }, ["Yixian"] = { "" }, ["Qimen"] = { "" }, ["Qimen-AL-Min"] = { "" }, ["Wuyuan"] = { "" }, ["Fuliang"] = { "" }, ["Dexing"] = { "" }, ["Jingde"] = { "" }, ["Zhanda"] = { "" }, ["Chun'an"] = { "" }, ["Sui'an"] = { "" }, ["Jiande"] = { "" }, ["Shouchang"] = { "" }, ["Guangzhou"] = { "白麻" }, ["Hong Kong"] = { "" }, ["HK Weitou"] = { "" }, ["Kam Tin"] = { "" }, ["Shek Pik"] = { "" }, ["Ting Kok"] = { "" }, ["Tung Ping Chau"] = { "" }, ["Macau"] = { "" }, ["Panyu"] = { "" }, ["Huadu"] = { "" }, ["Conghua"] = { "" }, ["Zengcheng"] = { "" }, ["Foshan"] = { "" }, ["Nanhai"] = { "" }, ["Shunde"] = { "" }, ["Sanshui"] = { "" }, ["Gaoming"] = { "" }, ["Zhongshan"] = { "" }, ["Zhongshan-HC"] = { "" }, ["Zhongshan-NL"] = { "" }, ["Zhongshan-CKM"] = { "" }, ["Zhongshan-XL"] = { "" }, ["Zhongshan-DS"] = { "" }, ["Zhongshan-TB"] = { "" }, ["Zhongshan-HL"] = { "" }, ["Zhongshan-DF"] = { "" }, ["Zhongshan-NT"] = { "" }, ["Zhongshan-FS"] = { "" }, ["Zhongshan-SL"] = { "" }, ["Zhongshan-GK"] = { "" }, ["Zhongshan-HP"] = { "" }, ["Zhongshan-SJ"] = { "" }, ["Zhongshan-LW"] = { "" }, ["Zhongshan-MZ"] = { "" }, ["Zhongshan-GZ"] = { "" }, ["Zhongshan-BF"] = { "" }, ["Zhongshan-TZ"] = { "" }, ["Zhuhai"] = { "" }, ["Doumen-T"] = { "" }, ["Doumen-S"] = { "" }, ["Jiangmen"] = { "" }, ["Xinhui"] = { "" }, ["Taishan"] = { "" }, ["Taishan-GH"] = { "" }, ["Kaiping"] = { "" }, ["Enping"] = { "" }, ["Heshan"] = { "" }, ["Malan"] = { "" }, ["Malan-BTQ"] = { "" }, ["Malan-MHD"] = { "" }, ["Malan-SZP"] = { "" }, ["Malan-BLH"] = { "" }, ["Dongguan"] = { "苧麻" }, ["Shenzhen-C-LH"] = { "" }, ["Bao'an"] = { "" }, ["Dapeng"] = { "" }, ["Shenzhen-PD"] = { "" }, ["Pingshan-ZM"] = { "" }, ["Ebu-ZM"] = { "" }, ["Qingyuan"] = { "" }, ["Fogang"] = { "" }, ["Yingde"] = { "" }, ["Yangshan"] = { "" }, ["Lianshan"] = { "" }, ["Lianshan-YH"] = { "" }, ["Lianzhou"] = { "" }, ["Shaoguan"] = { "" }, ["Qujiang-C"] = { "" }, ["Renhua"] = { "" }, ["Lechang"] = { "" }, ["Gaoyao"] = { "" }, ["Sihui"] = { "" }, ["Guangning"] = { "" }, ["Deqing"] = { "" }, ["Huaiji"] = { "" }, ["Fengkai"] = { "" }, ["Yunfu"] = { "" }, ["Xinxing"] = { "" }, ["Luoding"] = { "" }, ["Yunan"] = { "" }, ["Yangjiang"] = { "" }, ["Yangdong"] = { "" }, ["Yangdong-YS"] = { "" }, ["Yangchun"] = { "" }, ["Yangxi"] = { "" }, ["Xinyi"] = { "" }, ["Maoming"] = { "" }, ["Maoming-YJ"] = { "" }, ["Gaozhou"] = { "" }, ["Huazhou"] = { "" }, ["Huazhou-CQ"] = { "" }, ["Zhanjiang"] = { "" }, ["Lianjiang"] = { "" }, ["Wuchuan"] = { "" }, ["Nanning"] = { "苧麻" }, ["Nanning-Tanka"] = { "" }, ["Wuzhou"] = { "" }, ["Cangwu-LB"] = { "" }, ["Yulin"] = { "" }, ["Rongxian"] = { "" }, ["Hepu"] = { "" }, ["Hepu-ST"] = { "" }, ["Guiping"] = { "" }, ["Guiping-JT"] = { "" }, ["Guiping-JK"] = { "" }, ["Guiping-MD"] = { "" }, ["Guiping-ML"] = { "" }, ["Pingnan-PN"] = { "" }, ["Pingnan-DZ"] = { "" }, ["Mengshan"] = { "" }, ["Mengshan-XX"] = { "" }, ["Mengshan-CT"] = { "" }, ["Guigang-GC"] = { "" }, ["Guigang-NJ"] = { "" }, ["Guigang-PD"] = { "" }, ["Beiliu"] = { "" }, ["Beiliu-TL"] = { "" }, ["Beiliu-XL"] = { "" }, ["Baise"] = { "" }, ["Tiandong"] = { "" }, ["Tiandong-LF"] = { "" }, ["Tianyang"] = { "" }, ["Pingguo"] = { "" }, ["Pingguo-SX"] = { "" }, ["Bobai"] = { "" }, ["Lingshan"] = { "" }, ["Pubei"] = { "" }, ["Qinzhou"] = { "" }, ["Qinzhou-XD"] = { "" }, ["Qinzhou-CT"] = { "" }, ["Qinzhou-NS"] = { "" }, ["Qinzhou-XNJ"] = { "" }, ["Beihai"] = { "" }, ["Beihai-NK"] = { "" }, ["Beihai-YP"] = { "" }, ["Beihai-QG"] = { "" }, ["Beihai-QG-CB"] = { "" }, ["Ningming"] = { "" }, ["Hengxian"] = { "" }, ["Pumen"] = { "" }, ["Fangchenggang-FC"] = { "" }, ["Dongxing"] = { "" }, ["Chongzuo-LT"] = { "" }, ["Fusui-QJ"] = { "" }, ["Lingchuan-C-YJ"] = { "" }, ["Pingle-C-MJ"] = { "" }, ["Pingle-C-SS"] = { "" }, ["Lipu-ZC"] = { "" }, ["Danzhou"] = { "" }, ["Sanya-YL"] = { "" }, ["Kuala Lumpur"] = { "" }, ["Penang-C"] = { "" }, ["Ipoh"] = { "" }, ["Sarikei-C"] = { "" }, ["Singapore-C"] = { "" }, ["Jakarta-C"] = { "" }, ["Ho Chi Minh City"] = { "" }, ["Mong Cai"] = { "" }, ["Phnom Penh-C"] = { "" }, ["Yangon-C"] = { "" }, ["Mandalay-C"] = { "" }, ["Bangkok-C"] = { "" }, ["Betong"] = { "" }, ["Manila-C"] = { "" }, ["Nanning-P"] = { "苧麻" }, ["Nanning-P-SJ"] = { "" }, ["Nanning-P-GJY"] = { "" }, ["Nanning-P-ZGL"] = { "" }, ["Nanning-P-XXJD"] = { "" }, ["Nanning-P-SL"] = { "" }, ["Nanning-P-XX"] = { "" }, ["Nanning-P-SC"] = { "" }, ["Binyang"] = { "" }, ["Binyang-XQ"] = { "" }, ["Hengxian-P"] = { "" }, ["Wuxuan-JJ"] = { "" }, ["Chongzuo-P"] = { "" }, ["Liucheng-P"] = { "" }, ["Liucheng-P-GZ"] = { "" }, ["Yizhou-P-DS"] = { "" }, ["Luocheng-P"] = { "" }, ["Guilin-P"] = { "" }, ["Guilin-P-CY"] = { "" }, ["Guilin-P-DBZ"] = { "" }, ["Guilin-P-ZY"] = { "" }, ["Guilin-P-DB"] = { "" }, ["Guilin-P-YJ"] = { "" }, ["Guilin-P-QJ"] = { "" }, ["Lingui-P-WT"] = { "" }, ["Lingui-P-HS"] = { "" }, ["Lingui-P-LJ"] = { "" }, ["Lingui-P-LT"] = { "" }, ["Lingchuan-P"] = { "" }, ["Lingchuan-P-GQ"] = { "" }, ["Lingchuan-P-GD"] = { "" }, ["Lingchuan-P-TX"] = { "" }, ["Lingchuan-P-SZ"] = { "" }, ["Lingchuan-P-GP"] = { "" }, ["Lingchuan-P-LT"] = { "" }, ["Guanyang-P"] = { "" }, ["Quanzhou-P"] = { "" }, ["Pingle-P"] = { "" }, ["Pingle-P-XTM"] = { "" }, ["Yangshuo-P"] = { "" }, ["Yangshuo-P-PT"] = { "" }, ["Yongfu-P-JX"] = { "" }, ["Yongfu-P-CS"] = { "" }, ["Zhongshan-GA"] = { "" }, ["Xiamen"] = { "苧仔" }, ["Xiamen-HS"] = { "" }, ["Tong'an"] = { "" }, ["Quanzhou"] = { "" }, ["Jinjiang"] = { "苧仔" }, ["Nan'an"] = { "" }, ["Shishi"] = { "" }, ["Hui'an"] = { "" }, ["Anxi"] = { "" }, ["Yongchun"] = { "" }, ["Dehua"] = { "" }, ["Zhangzhou"] = { "" }, ["Longhai"] = { "" }, ["Changtai"] = { "" }, ["Hua'an"] = { "" }, ["Nanjing-MN"] = { "" }, ["Pinghe"] = { "" }, ["Zhangpu"] = { "" }, ["Yunxiao"] = { "" }, ["Zhao'an"] = { "苧仔" }, ["Zhao'an-SD"] = { "" }, ["Zhao'an-TY"] = { "" }, ["Zhao'an-WS"] = { "" }, ["Dongshan"] = { "" }, ["Taipei"] = { "" }, ["Wanhua"] = { "" }, ["Tamsui"] = { "苧仔" }, ["Sanxia"] = { "" }, ["Pingxi"] = { "" }, ["Kaohsiung"] = { "" }, ["Cijin"] = { "苧仔" }, ["Hongmaogang"] = { "" }, ["Dalinpu"] = { "苧仔" }, ["Tianliao"] = { "" }, ["Yilan"] = { "" }, ["Luodong"] = { "苧仔" }, ["Toucheng"] = { "苧仔" }, ["Lukang"] = { "" }, ["Yongjing-MN"] = { "" }, ["Taichung"] = { "" }, ["Wuqi"] = { "" }, ["Tainan"] = { "" }, ["Anping"] = { "苧仔" }, ["Shanhua"] = { "" }, ["Taitung"] = { "" }, ["Green Island"] = { "" }, ["Hsinchu-MN"] = { "" }, ["Miaoli-MN"] = { "" }, ["Mailiao"] = { "" }, ["Chiayi"] = { "" }, ["Chiayi-DS"] = { "" }, ["Baoli"] = { "苧仔" }, ["Liuqiu"] = { "" }, ["Kinmen"] = { "" }, ["Jinsha"] = { "" }, ["Magong"] = { "" }, ["Pengnan"] = { "" }, ["Xiyu"] = { "" }, ["Huxi"] = { "" }, ["Wangan"] = { "" }, ["Cimei"] = { "" }, ["Huayu"] = { "" }, ["Zhongtun"] = { "" }, ["Houliao"] = { "" }, ["Tongliang"] = { "" }, ["Jibei"] = { "" }, ["Malaysia-MN"] = { "" }, ["Melaka"] = { "" }, ["Labuan"] = { "" }, ["Singapore-MN"] = { "" }, ["Philippine-MN"] = { "" }, ["Medan"] = { "" }, ["Seri Begawan"] = { "" }, ["Ho Chi Minh City-MN"] = { "" }, ["Yangon-MN"] = { "" }, ["Longyan"] = { "" }, ["Zhangping"] = { "" }, ["Yongfu"] = { "" }, ["Datian"] = { "" }, ["Datian-GP"] = { "" }, ["Youxi-JM"] = { "" }, ["Youxi-XQ"] = { "" }, ["Shunchang-PS"] = { "" }, ["Pingnan"] = { "" }, ["Pingnan-PT"] = { "" }, ["Pingnan-SJ"] = { "" }, ["Guiping-XW"] = { "" }, ["Guiping-DS"] = { "" }, ["Guilin-MN-BYG"] = { "" }, ["Pingle-MN"] = { "" }, ["Qinzhou-MN"] = { "" }, ["Lechang-TT"] = { "" }, ["Renhua-CSB"] = { "" }, ["Yingde-YZ"] = { "" }, ["Yunan-LT"] = { "" }, ["Hangzhou-PF"] = { "" }, ["Cangnan-MN"] = { "" }, ["Yuhuan-KM"] = { "" }, ["Wenling-RS"] = { "" }, ["Yixing-SB"] = { "" }, ["Langxi-FL"] = { "" }, ["Chaozhou"] = { "" }, ["Raoping-MN-T"] = { "" }, ["Shantou"] = { "麻苧" }, ["Chenghai"] = { "" }, ["Chenghai-DX"] = { "" }, ["Chaoyang"] = { "" }, ["Nan'ao-HZ"] = { "" }, ["Nan'ao-YA"] = { "" }, ["Jieyang"] = { "" }, ["Puning"] = { "" }, ["Lufeng"] = { "" }, ["Haifeng"] = { "" }, ["Fengshun-MN-LH"] = { "" }, ["Fengshun-MN-HJ"] = { "" }, ["Yuen Chau Tsai-MN"] = { "" }, ["Sha Tau Kok-MN"] = { "" }, ["Thailand-MN-T"] = { "" }, ["Chiang Mai-MN-T"] = { "" }, ["Hat Yai-MN-T"] = { "" }, ["Cambodia-MN-T"] = { "" }, ["Ho Chi Minh City-MN-T"] = { "" }, ["Vientiane-MN-T"] = { "" }, ["Johor Bahru"] = { "" }, ["Penang-MN-T"] = { "" }, ["Singapore-MN-T"] = { "" }, ["Batam-MN-T"] = { "" }, ["Pontianak-MN-T"] = { "" }, ["Leizhou"] = { "" }, ["Dianbai-XD"] = { "" }, ["Wenchang"] = { "" }, ["Haikou"] = { "" }, ["Chengmai"] = { "" }, ["Qionghai"] = { "" }, ["Wanning"] = { "" }, ["Tunchang"] = { "" }, ["Singapore-MN-H"] = { "" }, ["Belait-MN-H"] = { "" }, ["Putian"] = { "" }, ["Putian-DH"] = { "" }, ["Putian-JK"] = { "" }, ["Putian-NR"] = { "" }, ["Xianyou"] = { "" }, ["Xianyou-FT"] = { "" }, ["Xianyou-YY"] = { "" }, ["Fuding-AY"] = { "" }, ["Shaxi"] = { "" }, ["Sanxiang"] = { "" }, ["Fuzhou"] = { "苧" }, ["Changle"] = { "" }, ["Lianjiang-MD"] = { "" }, ["Fuqing"] = { "" }, ["Pingtan"] = { "" }, ["Yongtai"] = { "" }, ["Minqing"] = { "" }, ["Gutian"] = { "" }, ["Pingnan-MD"] = { "" }, ["Luoyuan"] = { "" }, ["Fu'an"] = { "" }, ["Ningde"] = { "" }, ["Xiapu"] = { "" }, ["Zherong"] = { "" }, ["Shouning"] = { "" }, ["Zhouning"] = { "" }, ["Fuding"] = { "" }, ["Youxi"] = { "" }, ["Youxi-XY"] = { "" }, ["Youxi-YZ"] = { "" }, ["Youxi-TC"] = { "" }, ["Youxi-ZX"] = { "" }, ["Matsu"] = { "" }, ["Taishun-MD"] = { "" }, ["Cangnan-MD"] = { "" }, ["Guanhaiwei"] = { "" }, ["Singapore-MD-FQ"] = { "" }, ["Sitiawan-MD-GT"] = { "" }, ["Sibu-MD-MQ"] = { "" }, ["Jian'ou"] = { "" }, ["Dikou"] = { "" }, ["Yanping-XY"] = { "" }, ["Songxi"] = { "" }, ["Zhenghe"] = { "" }, ["Zhenqian"] = { "" }, ["Shunchang-YD"] = { "" }, ["Jianyang"] = { "" }, ["Huangkeng"] = { "" }, ["Wuyishan"] = { "" }, ["Shibei"] = { "" }, ["Yong'an"] = { "" }, ["Sanyuan"] = { "" }, ["Shaxian"] = { "" }, ["Yanping-WT"] = { "" }, ["Shaowu"] = { "" }, ["Guangze"] = { "" }, ["Jiangle"] = { "" }, ["Mingxi"] = { "" }, ["Shunchang"] = { "" }, ["Ningde-She"] = { "" }, ["Fu'an-She"] = { "" }, ["Fuding-She"] = { "" }, ["Zhouning-She"] = { "" }, ["Xiapu-She"] = { "" }, ["Shouning-She"] = { "" }, ["Gutian-She"] = { "" }, ["Luoyuan-She"] = { "" }, ["Sanming-She"] = { "" }, ["Shunchang-She"] = { "" }, ["Hua'an-She"] = { "" }, ["Guixi-She"] = { "" }, ["Yanshan-She"] = { "" }, ["Cangnan-She"] = { "" }, ["Jingning-She"] = { "" }, ["Jingning-ZK-She"] = { "" }, ["Lishui-She"] = { "" }, ["Longyou-She"] = { "" }, ["Lin'an-She"] = { "" }, ["Jiande-She"] = { "" }, ["Ningguo-She"] = { "" }, ["Chaozhou-She"] = { "" }, ["Fengshun-She"] = { "" }, ["Guzhang-WX"] = { "" }, ["Yuanling-WX"] = { "" }, ["Luxi-WX"] = { "" }, ["Luxi-WX-LJT"] = { "" }, ["Luxi-WX-LJT-2"] = { "" }, ["Chengbu-WX"] = { "" }, ["Jiande-JXYM"] = { "" }, ["Jinhua-JXYM"] = { "" }, ["Lanxi-JXYM"] = { "" }, ["Tunxi-JXYM"] = { "" }, ["Jiangyong"] = { "" }, ["Dong'an"] = { "" }, ["Qujiang-DC"] = { "" }, ["Wujiang-XY"] = { "" }, ["Zhenjiang-SB"] = { "" }, ["Renhua-ZT"] = { "" }, ["Renhua-ST"] = { "" }, ["Ruyuan-GT"] = { "" }, ["Lechang-CL"] = { "" }, ["Lechang-BX"] = { "" }, ["Lechang-HP"] = { "" }, ["Lechang-GT"] = { "" }, ["Lechang-SX"] = { "" }, } return export gw0itf6vd639spfmm0jk6a5w42jm7hl Bản mẫu:R:USDA Plants 10 394847 2348650 2026-04-26T06:29:07Z Hiyuune 50834 Trang mới: “{{#invoke:checkparams|error}}<!-- Validate template parameters -->[http://plants.sc.egov.usda.gov/plant-profile/{{{1}}} {{#if:{{{noi|}}}|{{{2|{{pagename}}}}}|''{{{2|{{pagename}}}}}''}}] trong cơ sở dữ liệu của USDA Plants<noinclude>{{tài liệu}}</noinclude>” 2348650 wikitext text/x-wiki {{#invoke:checkparams|error}}<!-- Validate template parameters -->[http://plants.sc.egov.usda.gov/plant-profile/{{{1}}} {{#if:{{{noi|}}}|{{{2|{{pagename}}}}}|''{{{2|{{pagename}}}}}''}}] trong cơ sở dữ liệu của USDA Plants<noinclude>{{tài liệu}}</noinclude> iivcmzr6l8lvr65no4zeboy2sdtpv9m Bản mẫu:R:Tropicos 10 394848 2348651 2026-04-26T06:30:09Z Hiyuune 50834 Trang mới: “{{#invoke:checkparams|error}}<!-- Validate template parameters -->[http://www.tropicos.org/Name/{{{1}}} {{#if:{{{noi|}}}|{{{2|{{pagename}}}}}|''{{{2|{{pagename}}}}}''}}] trong {{w|Tropicos}}<noinclude>{{tài liệu}}</noinclude>” 2348651 wikitext text/x-wiki {{#invoke:checkparams|error}}<!-- Validate template parameters -->[http://www.tropicos.org/Name/{{{1}}} {{#if:{{{noi|}}}|{{{2|{{pagename}}}}}|''{{{2|{{pagename}}}}}''}}] trong {{w|Tropicos}}<noinclude>{{tài liệu}}</noinclude> cnovq0xqngwidk14x766h560csz02wd Bản mẫu:R:TPL 10 394849 2348653 2026-04-26T06:31:23Z Hiyuune 50834 Trang mới: “{{#invoke:checkparams|warn}}<!-- Validate template parameters -->[http://www.theplantlist.org/tpl1.1/search?q={{urlencode:{{{1|{{pagename}}}}}}} {{#if:{{{noi|}}}|{{{1|{{pagename}}}}}|''{{{1|{{pagename}}}}}''}}] trong [http://www.theplantlist.org/ The Plant List]<noinclude>{{tài liệu}}</noinclude>” 2348653 wikitext text/x-wiki {{#invoke:checkparams|warn}}<!-- Validate template parameters -->[http://www.theplantlist.org/tpl1.1/search?q={{urlencode:{{{1|{{pagename}}}}}}} {{#if:{{{noi|}}}|{{{1|{{pagename}}}}}|''{{{1|{{pagename}}}}}''}}] trong [http://www.theplantlist.org/ The Plant List]<noinclude>{{tài liệu}}</noinclude> omxyofctfcy9jzq3c3x1lrhm8serpxk Bản mẫu:ug-proper noun 10 394850 2348654 2026-04-26T06:36:13Z Hiyuune 50834 Trang mới: “{{#invoke:ug-headword|show|Danh từ riêng}}<!-- --><noinclude>{{tài liệu}}{{tcat|hw}}</noinclude>” 2348654 wikitext text/x-wiki {{#invoke:ug-headword|show|Danh từ riêng}}<!-- --><noinclude>{{tài liệu}}{{tcat|hw}}</noinclude> px8kklbxkqu3rrzksth034qsolq05mv لىۋان 0 394851 2348655 2026-04-26T06:36:31Z Hiyuune 50834 Trang mới: “=={{langname|ug}}== ==={{section|etym}}=== Từ {{bor|ug|ru|Лива́н}}. ==={{section|pron}}=== {{ug-pron}} ==={{section|pr-noun}}=== {{ug-proper noun}} # [[Liban]]. ==={{section|further}}=== * {{R:ug:Schwarz}} {{C|ug|Quốc gia của Châu Á}}” 2348655 wikitext text/x-wiki =={{langname|ug}}== ==={{section|etym}}=== Từ {{bor|ug|ru|Лива́н}}. ==={{section|pron}}=== {{ug-pron}} ==={{section|pr-noun}}=== {{ug-proper noun}} # [[Liban]]. ==={{section|further}}=== * {{R:ug:Schwarz}} {{C|ug|Quốc gia của Châu Á}} qj9tthdoyxwbhl6f70zjdfj8p56np7i गरमी 0 394852 2348656 2026-04-26T06:37:58Z Hiyuune 50834 + hi 2348656 wikitext text/x-wiki {{also|गर्मी|ग्राम|गर्म}} =={{section|etym}}== ==={{section|etym}}=== {{suffix|hi|गरम|ई|pos=Danh từ}}. ==={{section|n}}=== {{hi-noun|f}} # {{alternative spelling of|hi|गर्मी}} ===={{section|decl}}==== {{hi-ndecl|<F>}} 8v0kae7ng0bke9fjqty0khn2bsh3q0q 2348662 2348656 2026-04-26T07:20:26Z TheHighFighter2 42988 /* Tiếng Hindi */ 2348662 wikitext text/x-wiki {{also|गर्मी|ग्राम|गर्म}} =={{langname|hi}}== ==={{section|etym}}=== {{suffix|hi|गरम|ई|pos=Danh từ}}. ==={{section|n}}=== {{hi-noun|f}} # {{alternative spelling of|hi|गर्मी}} ===={{section|decl}}==== {{hi-ndecl|<F>}} dz6iig2avs5xo8ccsafhcz8adescwbh गरमियाँ 0 394853 2348657 2026-04-26T06:39:14Z Hiyuune 50834 + hi 2348657 wikitext text/x-wiki =={{langname|hi}}== ==={{section|pron}}=== * {{hi-IPA}} ==={{section|n}}=== {{hi-head|Biến thể hình thái danh từ}} # {{infl of|hi|गरमी||dir|p}} 7xk20o3qyz7hg2b7lk2yqdgw4x1xlid Bản mẫu:vi-rdp of 10 394854 2348658 2026-04-26T07:00:25Z TheHighFighter2 42988 Trang mới: “{{form of|vi|{{#switch:{{{type|{{#invoke:vi-adj|rdp_type|{{PAGENAME}}}}}}}|dim=[[Phụ lục:Từ láy tiếng Việt#Tính từ|láy {{#if:{{{aug|}}}|tăng nghĩa|giảm ngĩa}}]]<includeonly>[[Thể loại:Từ láy {{#if:{{{aug|}}}|tăng nghĩa|giảm nghĩa}} tiếng Việt]]</includeonly>|aug=[[Phụ lục:Từ láy tiếng Việt#Láy -a|láy ''&#8209;a'']]<includeonly>[[Thể loại:Từ láy -a tiếng Việt]]</includeonly>}}|{{{1|}}}}}<!--- ---><noinclude> {{do…” 2348658 wikitext text/x-wiki {{form of|vi|{{#switch:{{{type|{{#invoke:vi-adj|rdp_type|{{PAGENAME}}}}}}}|dim=[[Phụ lục:Từ láy tiếng Việt#Tính từ|láy {{#if:{{{aug|}}}|tăng nghĩa|giảm ngĩa}}]]<includeonly>[[Thể loại:Từ láy {{#if:{{{aug|}}}|tăng nghĩa|giảm nghĩa}} tiếng Việt]]</includeonly>|aug=[[Phụ lục:Từ láy tiếng Việt#Láy -a|láy ''&#8209;a'']]<includeonly>[[Thể loại:Từ láy -a tiếng Việt]]</includeonly>}}|{{{1|}}}}}<!--- ---><noinclude> {{documentation}}</noinclude> ied7ydq1bfoxh2jyueb0m8dcxys0gj2 2348659 2348658 2026-04-26T07:09:05Z TheHighFighter2 42988 2348659 wikitext text/x-wiki {{form of|vi|{{#switch:{{{type|{{#invoke:vi-adj|rdp_type|{{PAGENAME}}}}}}}|dim=[[Phụ lục:Từ láy tiếng Việt#Tính từ|láy {{#if:{{{aug|}}}|tăng nghĩa|giảm ngĩa}}]]<includeonly>[[Thể loại:Từ láy {{#if:{{{aug|}}}|tăng nghĩa|giảm nghĩa}} tiếng Việt]]</includeonly>|aug=[[Phụ lục:Từ láy tiếng Việt#Láy -a|láy ''&#8209;a'']]<includeonly>[[Thể loại:Từ láy âm -a tiếng Việt]]</includeonly>}}|{{{1|}}}}}<!--- ---><noinclude> {{documentation}}</noinclude> ior145h5swdoeu9nwsn8hjram4wsxvx 2348665 2348659 2026-04-26T07:28:20Z TheHighFighter2 42988 Đã lùi lại sửa đổi [[Special:Diff/2348659|2348659]] của [[Special:Contributions/TheHighFighter2|TheHighFighter2]] ([[User talk:TheHighFighter2|thảo luận]]) 2348665 wikitext text/x-wiki {{form of|vi|{{#switch:{{{type|{{#invoke:vi-adj|rdp_type|{{PAGENAME}}}}}}}|dim=[[Phụ lục:Từ láy tiếng Việt#Tính từ|láy {{#if:{{{aug|}}}|tăng nghĩa|giảm ngĩa}}]]<includeonly>[[Thể loại:Từ láy {{#if:{{{aug|}}}|tăng nghĩa|giảm nghĩa}} tiếng Việt]]</includeonly>|aug=[[Phụ lục:Từ láy tiếng Việt#Láy -a|láy ''&#8209;a'']]<includeonly>[[Thể loại:Từ láy -a tiếng Việt]]</includeonly>}}|{{{1|}}}}}<!--- ---><noinclude> {{documentation}}</noinclude> ied7ydq1bfoxh2jyueb0m8dcxys0gj2 Thể loại:Từ láy -a tiếng Việt 14 394855 2348661 2026-04-26T07:15:28Z TheHighFighter2 42988 Trang mới: “{{auto cat}}” 2348661 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx 2348664 2348661 2026-04-26T07:27:14Z TheHighFighter2 42988 TheHighFighter2 đã đổi [[Thể loại:Từ láy âm -a tiếng Việt]] thành [[Thể loại:Từ láy -a tiếng Việt]] (đã tắt đổi hướng) 2348661 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx köch 0 394856 2348669 2026-04-26T08:37:18Z TheHighFighter2 42988 Trang mới: “{{also|koch|Koch}} =={{langname|wym}}== [[File:Quanjude roastduck.JPG|thumb|köch]] ==={{ĐM|pron}}=== * {{audio|wym|Wym-köch (wersja Józefa Gary).ogg}} ==={{ĐM|noun}}=== {{wym-noun|m|pl=kech}} # [[đầu bếp|Đầu bếp]].” 2348669 wikitext text/x-wiki {{also|koch|Koch}} =={{langname|wym}}== [[File:Quanjude roastduck.JPG|thumb|köch]] ==={{ĐM|pron}}=== * {{audio|wym|Wym-köch (wersja Józefa Gary).ogg}} ==={{ĐM|noun}}=== {{wym-noun|m|pl=kech}} # [[đầu bếp|Đầu bếp]]. an6vklo9oqlikj6qvjfsopsgi90hmf1 伊波 0 394857 2348670 2026-04-26T09:30:24Z Hiyuune 50834 Trang mới: “=={{langname|ja}}== {{ja-kanjitab|い|なみ|yomi=ok}}{{ja-kanjitab|い|は|yomi=o}} ==={{section|pr-noun}}=== {{ja-pos|proper|いなみ|いは}} # {{surname|ja|sort=いなみ}}” 2348670 wikitext text/x-wiki =={{langname|ja}}== {{ja-kanjitab|い|なみ|yomi=ok}}{{ja-kanjitab|い|は|yomi=o}} ==={{section|pr-noun}}=== {{ja-pos|proper|いなみ|いは}} # {{surname|ja|sort=いなみ}} 2kfdbsv8ensdxdqr4u0naa8iwc6l31i